From 395eb15cd1b6a4238485cd39df27655545ac0835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=E5=85=88=E7=94=9F?= <1211120248@qq.com> Date: Tue, 14 Jul 2026 23:41:39 +0800 Subject: [PATCH] feat: refine screen2 map experience --- ...iTi-14435b65-balabala-1784043664472.woff2} | Bin ...-Bold-6401fd0d-balabala-1784043664472.ttf} | Bin ...Bold-a95023f2-balabala-1784043664472.woff} | Bin ...old-fa4a258d-balabala-1784043664472.woff2} | Bin ...FeatureInfoPanel-479e79c5-1784043664472.js | 3 + ...oPanel-84703f43-balabala-1784043664472.css | 1 + .../LayerPanel-4a87f4f0-1784043664472.js | 1 + ...rPanel-7a55b2bc-balabala-1784043664472.css | 1 + ...artChartRenderer-4a1f392b-1783995319167.js | 2 - ...artChartRenderer-7992758b-1784043664472.js | 2 + ...derer-7a3a96b9-balabala-1784043664472.css} | 0 ...itcher-589da7c9-balabala-1784043664472.css | 1 + .../TopicSwitcher-f0c08774-1784043664472.js | 2 + ... area-b57940eb-balabala-1784043664472.png} | Bin docs/assets/assets-93f7396b-1784043664472.js | 1 + ...=> bg-3acb94e3-balabala-1784043664472.png} | Bin ...w-big-180b7071-balabala-1784043664472.svg} | 0 ...small-19304179-balabala-1784043664472.svg} | 0 ...nu-bg-b465793d-balabala-1784043664472.png} | Bin ...u-btn-ee5c8064-balabala-1784043664472.png} | Bin ...hover-df33e514-balabala-1784043664472.png} | Bin .../chartTheme-0e0a1707-1783995319167.js | 3881 ---- .../chartTheme-95a980bb-1784043664472.js | 1 + ...rLine-1a2cbc0f-balabala-1784043664472.png} | Bin ...arrow-3a8a61f3-balabala-1784043664472.svg} | 0 ...arrow-a3c5270d-balabala-1784043664472.svg} | 0 ...-line-162bc0d5-balabala-1784043664472.svg} | 0 docs/assets/data-3d6664cd-1784043664472.js | 458 + docs/assets/data-5aa1bc1b-1784043664472.js | 16380 ++++++++++++++ docs/assets/data-5c83c66b-1784043664472.js | 1 + docs/assets/data-b0a5f9a8-1784043664472.js | 1 + docs/assets/data-b5a92f08-1784043664472.js | 1 + docs/assets/data-defd9b10-1784043664472.js | 1 + ...aturePanelLayout-93409244-1784043664472.js | 1 + ...yline6-525edf67-balabala-1784043664472.png | Bin 0 -> 20243 bytes ...us_bg-b6803e2d-balabala-1784043664472.png} | Bin ...ve_bg-cf41417a-balabala-1784043664472.png} | Bin .../geoserver-6574cb91-1784043664472.js | 1 + ...er-bg-65b38012-balabala-1784043664472.png} | Bin ...guang-3c5dfda5-balabala-1784043664472.png} | Bin ...icon1-6f7c222f-balabala-1784043664472.png} | Bin ...icon2-4f77ccec-balabala-1784043664472.png} | Bin docs/assets/index-0060e718-1784043664472.js | 2 + .../index-089a3dd0-balabala-1784043664472.css | 1 + .../index-11333eca-balabala-1784043664472.css | 1 + ...index-148a2898-balabala-1784043664472.css} | 2 +- ...783995319167.js => index-1784043664472.js} | 4 +- .../index-41d168c2-balabala-1784043664472.css | 1 + ...index-46ddbb9a-balabala-1784043664472.css} | 2 +- docs/assets/index-4921f42e-1784043664472.js | 112 + .../index-51731c25-balabala-1784043664472.css | 1 + .../index-5afedc21-balabala-1784043664472.css | 1 + .../index-6e1f3341-balabala-1784043664472.css | 1 + .../index-6fbdaf34-balabala-1784043664472.css | 1 + docs/assets/index-7103e996-1784043664472.js | 4 + .../index-7c335907-balabala-1784043664472.css | 1 + docs/assets/index-82127856-1784043664472.js | 1 + docs/assets/index-8532142c-1784043664472.js | 1 + docs/assets/index-89c6439f-1783995319167.js | 17858 ---------------- ...index-8d752fbe-balabala-1784043664472.css} | 0 docs/assets/index-98e33e33-1784043664472.js | 116 + ...index-99bb110d-balabala-1784043664472.css} | 2 +- ...167.js => index-a29410f4-1784043664472.js} | 2 +- .../index-c36df85d-balabala-1784043664472.css | 1 + docs/assets/index-c7da184e-1784043664472.js | 2 + docs/assets/index-cd04b5b9-1784043664472.js | 1 + docs/assets/index-d0c7091a-1784043664472.js | 16 + docs/assets/index-d2259c0a-1783995319167.js | 2 - docs/assets/index-d9d7aa94-1784043664472.js | 2 + .../index-e174cf85-balabala-1784043664472.css | 1 + docs/assets/index-e3442fcf-1784043664472.js | 88 + docs/assets/index-e521f518-1784043664472.js | 13 + docs/assets/index-e9f36657-1784043664472.js | 15 + .../index-f5d1da98-balabala-1783995319167.css | 1 - .../index.esm.min-c54f6e6e-1784043664472.js | 17 + ...layout-b708cd9c-balabala-1784043664472.css | 1 + ... leaf-7be9efef-balabala-1784043664472.png} | Bin ...kuang-5d6bd1ae-balabala-1784043664472.svg} | 0 .../live-scene-1-16ce1514-1784043664472.js | 871 + ...ene-1-786cdd0a-balabala-1784043664472.png} | Bin .../livestockData-36ec0ae2-1784043664472.js | 1 + ...u-btn-91a961cf-balabala-1784043664472.png} | Bin ...hover-62eba0bb-balabala-1784043664472.png} | Bin ...an-bg-8c848b8f-balabala-1784043664472.png} | Bin docs/assets/openApi-928665d4-1784043664472.js | 1 + ... park-ee0533e0-balabala-1784043664472.png} | Bin ...Line2-d4134d4b-balabala-1784043664472.png} | Bin ...kuang-b1937caf-balabala-1784043664472.svg} | 0 ...ring2-a1b91808-balabala-1784043664472.png} | Bin ...ring3-fe0f60d7-balabala-1784043664472.png} | Bin ...ring4-f2e324d6-balabala-1784043664472.png} | Bin ...rder1-2ce8e0ef-balabala-1784043664472.png} | Bin ...rder2-7496b968-balabala-1784043664472.png} | Bin ...guang-ccf84a88-balabala-1784043664472.svg} | 0 .../screen2Standard-15e4461a-1784043664472.js | 3764 ++++ ...andard-cdb21878-balabala-1784043664472.css | 1 + ...stack-7a426057-balabala-1784043664472.png} | Bin ...e-zs1-c15a5ee8-balabala-1784043664472.svg} | 0 ... town-f8c0c9cc-balabala-1784043664472.png} | Bin ...wnshipBoundaries-1b068bef-1784043664472.js | 42 + ...-base-03c7f2cb-balabala-1784043664472.png} | Bin docs/assets/yakApi-032bf70c-1784043664472.js | 1 + ...yield-66e9af79-balabala-1784043664472.png} | Bin docs/index.html | 4 +- src/assets/style/v21-polish.scss | 458 + src/components/CesiumMap/index.vue | 32 +- src/components/mMenuItem/index.vue | 15 +- src/config/ecologicalProtection.js | 7 + src/config/layers.js | 93 +- src/utils/featurePanelLayout.js | 82 + src/views/ecologicalProtection/data.js | 11 +- src/views/ecologicalProtection/index.vue | 48 +- .../components/BusinessPanelRenderer.vue | 19 +- .../components/FeatureInfoPanel.vue | 60 +- .../forestGrassWet/components/LayerPanel.vue | 51 +- src/views/forestGrassWet/index.vue | 211 +- src/views/forestGrassWet/layout.scss | 129 + src/views/forestGrassWet/map.js | 2 +- src/views/forestGrassWet/map.vue | 2 +- src/views/gdMap/assets.js | 4 +- src/views/gdMap/map.js | 334 +- src/views/gdMap/map.vue | 12 + src/views/home/index.vue | 441 +- src/views/pastureManagement/index.vue | 48 +- src/views/platform/index.vue | 111 +- src/views/yakIndustryChain/index.vue | 1 + src/views/yakManagement/YakOlMap.vue | 2 +- src/views/yakManagement/index.vue | 1 + 128 files changed, 23457 insertions(+), 22416 deletions(-) rename docs/assets/{AlibabaPuHuiTi-14435b65-balabala-1783995319167.woff2 => AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-6401fd0d-balabala-1783995319167.ttf => AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-a95023f2-balabala-1783995319167.woff => AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-fa4a258d-balabala-1783995319167.woff2 => AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2} (100%) create mode 100644 docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js create mode 100644 docs/assets/FeatureInfoPanel-84703f43-balabala-1784043664472.css create mode 100644 docs/assets/LayerPanel-4a87f4f0-1784043664472.js create mode 100644 docs/assets/LayerPanel-7a55b2bc-balabala-1784043664472.css delete mode 100644 docs/assets/SmartChartRenderer-4a1f392b-1783995319167.js create mode 100644 docs/assets/SmartChartRenderer-7992758b-1784043664472.js rename docs/assets/{SmartChartRenderer-7a3a96b9-balabala-1783995319167.css => SmartChartRenderer-7a3a96b9-balabala-1784043664472.css} (100%) create mode 100644 docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css create mode 100644 docs/assets/TopicSwitcher-f0c08774-1784043664472.js rename docs/assets/{area-b57940eb-balabala-1783995319167.png => area-b57940eb-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/assets-93f7396b-1784043664472.js rename docs/assets/{bg-3acb94e3-balabala-1783995319167.png => bg-3acb94e3-balabala-1784043664472.png} (100%) rename docs/assets/{bottom-menu-arrow-big-180b7071-balabala-1783995319167.svg => bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg} (100%) rename docs/assets/{bottom-menu-arrow-small-19304179-balabala-1783995319167.svg => bottom-menu-arrow-small-19304179-balabala-1784043664472.svg} (100%) rename docs/assets/{bottom-menu-bg-b465793d-balabala-1783995319167.png => bottom-menu-bg-b465793d-balabala-1784043664472.png} (100%) rename docs/assets/{bottom-menu-btn-ee5c8064-balabala-1783995319167.png => bottom-menu-btn-ee5c8064-balabala-1784043664472.png} (100%) rename docs/assets/{bottom-menu-btn-hover-df33e514-balabala-1783995319167.png => bottom-menu-btn-hover-df33e514-balabala-1784043664472.png} (100%) delete mode 100644 docs/assets/chartTheme-0e0a1707-1783995319167.js create mode 100644 docs/assets/chartTheme-95a980bb-1784043664472.js rename docs/assets/{chinaBlurLine-1a2cbc0f-balabala-1783995319167.png => chinaBlurLine-1a2cbc0f-balabala-1784043664472.png} (100%) rename docs/assets/{content-bottom-left-arrow-3a8a61f3-balabala-1783995319167.svg => content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg} (100%) rename docs/assets/{content-bottom-right-arrow-a3c5270d-balabala-1783995319167.svg => content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg} (100%) rename docs/assets/{content-middle-line-162bc0d5-balabala-1783995319167.svg => content-middle-line-162bc0d5-balabala-1784043664472.svg} (100%) create mode 100644 docs/assets/data-3d6664cd-1784043664472.js create mode 100644 docs/assets/data-5aa1bc1b-1784043664472.js create mode 100644 docs/assets/data-5c83c66b-1784043664472.js create mode 100644 docs/assets/data-b0a5f9a8-1784043664472.js create mode 100644 docs/assets/data-b5a92f08-1784043664472.js create mode 100644 docs/assets/data-defd9b10-1784043664472.js create mode 100644 docs/assets/featurePanelLayout-93409244-1784043664472.js create mode 100644 docs/assets/flyline6-525edf67-balabala-1784043664472.png rename docs/assets/{focus_bg-b6803e2d-balabala-1783995319167.png => focus_bg-b6803e2d-balabala-1784043664472.png} (100%) rename docs/assets/{focus_move_bg-cf41417a-balabala-1783995319167.png => focus_move_bg-cf41417a-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/geoserver-6574cb91-1784043664472.js rename docs/assets/{header-bg-65b38012-balabala-1783995319167.png => header-bg-65b38012-balabala-1784043664472.png} (100%) rename docs/assets/{huiguang-3c5dfda5-balabala-1783995319167.png => huiguang-3c5dfda5-balabala-1784043664472.png} (100%) rename docs/assets/{icon1-6f7c222f-balabala-1783995319167.png => icon1-6f7c222f-balabala-1784043664472.png} (100%) rename docs/assets/{icon2-4f77ccec-balabala-1783995319167.png => icon2-4f77ccec-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/index-0060e718-1784043664472.js create mode 100644 docs/assets/index-089a3dd0-balabala-1784043664472.css create mode 100644 docs/assets/index-11333eca-balabala-1784043664472.css rename docs/assets/{chartTheme-73f6d8d0-balabala-1783995319167.css => index-148a2898-balabala-1784043664472.css} (85%) rename docs/assets/{index-1783995319167.js => index-1784043664472.js} (99%) create mode 100644 docs/assets/index-41d168c2-balabala-1784043664472.css rename docs/assets/{index-695ff00c-balabala-1783995319167.css => index-46ddbb9a-balabala-1784043664472.css} (97%) create mode 100644 docs/assets/index-4921f42e-1784043664472.js create mode 100644 docs/assets/index-51731c25-balabala-1784043664472.css create mode 100644 docs/assets/index-5afedc21-balabala-1784043664472.css create mode 100644 docs/assets/index-6e1f3341-balabala-1784043664472.css create mode 100644 docs/assets/index-6fbdaf34-balabala-1784043664472.css create mode 100644 docs/assets/index-7103e996-1784043664472.js create mode 100644 docs/assets/index-7c335907-balabala-1784043664472.css create mode 100644 docs/assets/index-82127856-1784043664472.js create mode 100644 docs/assets/index-8532142c-1784043664472.js delete mode 100644 docs/assets/index-89c6439f-1783995319167.js rename docs/assets/{index-8d752fbe-balabala-1783995319167.css => index-8d752fbe-balabala-1784043664472.css} (100%) create mode 100644 docs/assets/index-98e33e33-1784043664472.js rename docs/assets/{index-6fef048d-balabala-1783995319167.css => index-99bb110d-balabala-1784043664472.css} (97%) rename docs/assets/{index-0cc2c5ef-1783995319167.js => index-a29410f4-1784043664472.js} (62%) create mode 100644 docs/assets/index-c36df85d-balabala-1784043664472.css create mode 100644 docs/assets/index-c7da184e-1784043664472.js create mode 100644 docs/assets/index-cd04b5b9-1784043664472.js create mode 100644 docs/assets/index-d0c7091a-1784043664472.js delete mode 100644 docs/assets/index-d2259c0a-1783995319167.js create mode 100644 docs/assets/index-d9d7aa94-1784043664472.js create mode 100644 docs/assets/index-e174cf85-balabala-1784043664472.css create mode 100644 docs/assets/index-e3442fcf-1784043664472.js create mode 100644 docs/assets/index-e521f518-1784043664472.js create mode 100644 docs/assets/index-e9f36657-1784043664472.js delete mode 100644 docs/assets/index-f5d1da98-balabala-1783995319167.css create mode 100644 docs/assets/index.esm.min-c54f6e6e-1784043664472.js create mode 100644 docs/assets/layout-b708cd9c-balabala-1784043664472.css rename docs/assets/{leaf-7be9efef-balabala-1783995319167.png => leaf-7be9efef-balabala-1784043664472.png} (100%) rename docs/assets/{left-kuang-5d6bd1ae-balabala-1783995319167.svg => left-kuang-5d6bd1ae-balabala-1784043664472.svg} (100%) create mode 100644 docs/assets/live-scene-1-16ce1514-1784043664472.js rename docs/assets/{live-scene-1-786cdd0a-balabala-1783995319167.png => live-scene-1-786cdd0a-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/livestockData-36ec0ae2-1784043664472.js rename docs/assets/{menu-btn-91a961cf-balabala-1783995319167.png => menu-btn-91a961cf-balabala-1784043664472.png} (100%) rename docs/assets/{menu-btn-hover-62eba0bb-balabala-1783995319167.png => menu-btn-hover-62eba0bb-balabala-1784043664472.png} (100%) rename docs/assets/{ocean-bg-8c848b8f-balabala-1783995319167.png => ocean-bg-8c848b8f-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/openApi-928665d4-1784043664472.js rename docs/assets/{park-ee0533e0-balabala-1783995319167.png => park-ee0533e0-balabala-1784043664472.png} (100%) rename docs/assets/{pathLine2-d4134d4b-balabala-1783995319167.png => pathLine2-d4134d4b-balabala-1784043664472.png} (100%) rename docs/assets/{right-kuang-b1937caf-balabala-1783995319167.svg => right-kuang-b1937caf-balabala-1784043664472.svg} (100%) rename docs/assets/{ring2-a1b91808-balabala-1783995319167.png => ring2-a1b91808-balabala-1784043664472.png} (100%) rename docs/assets/{ring3-fe0f60d7-balabala-1783995319167.png => ring3-fe0f60d7-balabala-1784043664472.png} (100%) rename docs/assets/{ring4-f2e324d6-balabala-1783995319167.png => ring4-f2e324d6-balabala-1784043664472.png} (100%) rename docs/assets/{rotationBorder1-2ce8e0ef-balabala-1783995319167.png => rotationBorder1-2ce8e0ef-balabala-1784043664472.png} (100%) rename docs/assets/{rotationBorder2-7496b968-balabala-1783995319167.png => rotationBorder2-7496b968-balabala-1784043664472.png} (100%) rename docs/assets/{saoguang-ccf84a88-balabala-1783995319167.svg => saoguang-ccf84a88-balabala-1784043664472.svg} (100%) create mode 100644 docs/assets/screen2Standard-15e4461a-1784043664472.js create mode 100644 docs/assets/screen2Standard-cdb21878-balabala-1784043664472.css rename docs/assets/{stack-7a426057-balabala-1783995319167.png => stack-7a426057-balabala-1784043664472.png} (100%) rename docs/assets/{title-zs1-c15a5ee8-balabala-1783995319167.svg => title-zs1-c15a5ee8-balabala-1784043664472.svg} (100%) rename docs/assets/{town-f8c0c9cc-balabala-1783995319167.png => town-f8c0c9cc-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/townshipBoundaries-1b068bef-1784043664472.js rename docs/assets/{xiangfa-breeding-base-03c7f2cb-balabala-1783995319167.png => xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png} (100%) create mode 100644 docs/assets/yakApi-032bf70c-1784043664472.js rename docs/assets/{yield-66e9af79-balabala-1783995319167.png => yield-66e9af79-balabala-1784043664472.png} (100%) create mode 100644 src/assets/style/v21-polish.scss create mode 100644 src/config/ecologicalProtection.js create mode 100644 src/utils/featurePanelLayout.js create mode 100644 src/views/forestGrassWet/layout.scss diff --git a/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1783995319167.woff2 b/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2 similarity index 100% rename from docs/assets/AlibabaPuHuiTi-14435b65-balabala-1783995319167.woff2 rename to docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2 diff --git a/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1783995319167.ttf b/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1783995319167.ttf rename to docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf diff --git a/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1783995319167.woff b/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1783995319167.woff rename to docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff diff --git a/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1783995319167.woff2 b/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2 similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1783995319167.woff2 rename to docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2 diff --git a/docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js b/docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js new file mode 100644 index 0000000..55405e7 --- /dev/null +++ b/docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js @@ -0,0 +1,3 @@ +var Qn=Object.defineProperty,es=Object.defineProperties;var as=Object.getOwnPropertyDescriptors;var pn=Object.getOwnPropertySymbols;var ns=Object.prototype.hasOwnProperty,ss=Object.prototype.propertyIsEnumerable;var gn=(b,K,p)=>K in b?Qn(b,K,{enumerable:!0,configurable:!0,writable:!0,value:p}):b[K]=p,Ae=(b,K)=>{for(var p in K||(K={}))ns.call(K,p)&&gn(b,p,K[p]);if(pn)for(var p of pn(K))ss.call(K,p)&&gn(b,p,K[p]);return b},Fe=(b,K)=>es(b,as(K));import{g as v,o as s,c as t,j as N,F as x,y as $,a as r,t as u,J as P,n as j,q as ts,h as ls,w as Ma,C as Ue,B as I,x as ja,f as J,s as hn,H as yn,e as he,T as rs,d as ye}from"./index-1784043664472.js";import{K as ua,M as os}from"./screen2Standard-15e4461a-1784043664472.js";import{_ as us}from"./index-e3442fcf-1784043664472.js";import{d as is,e as fn}from"./townshipBoundaries-1b068bef-1784043664472.js";const cs={key:0,class:"business-stat-empty"},ds=["data-chart-tooltip"],_s={class:"business-stat-rank"},vs={class:"business-stat-main"},ps={class:"business-stat-name"},gs={class:"business-stat-bar"},hs={class:"business-stat-value"},ys={key:0},bn={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(b){const K=b,p=v(()=>{const L=K.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...L,1)});function Ve(L){const D=Number(L.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/p.value*100))}function fe(L){const D=(L==null?void 0:L.value)===void 0||(L==null?void 0:L.value)===null||(L==null?void 0:L.value)===""?"--":L.value,y=(L==null?void 0:L.unit)||"",C=[`数值:${D}${y}`];return L!=null&&L.extra&&C.push(String(L.extra)),[(L==null?void 0:L.name)||"数据",...C].join(` +`)}return(L,D)=>(s(),t("div",{class:j(["business-stat-list",{"is-compact":b.compact,"is-dense":b.rows.length>10}])},[b.rows.length?N("",!0):(s(),t("div",cs,"暂无业务统计数据")),(s(!0),t(x,null,$(b.rows,(y,C)=>(s(),t("div",{key:y.key||y.name,class:"business-stat-row","data-chart-tooltip":fe(y)},[r("div",_s,u(C+1),1),r("div",vs,[r("div",ps,u(y.name),1),r("div",gs,[r("span",{style:P({width:`${Ve(y)}%`})},null,4)])]),r("div",hs,[r("strong",null,u(y.value),1),r("em",null,u(y.unit),1),y.extra?(s(),t("span",ys,u(y.extra),1)):N("",!0)])],8,ds))),128))],2))}};const fs={key:0,class:"business-panel-empty"},bs={key:2,class:"business-metrics"},xs=["data-chart-tooltip"],ks={key:3,class:"business-icon-metrics"},ws=["data-chart-tooltip"],$s={class:"business-icon-metric-copy"},Ms={key:0},js={key:4,class:"business-spotlight"},Ns=["data-chart-tooltip"],Cs={class:"business-spotlight-side"},Ss=["data-chart-tooltip"],Ls={key:0},Ts={key:1,class:"business-panel-empty"},Ps={key:0,class:"business-ring-visual"},qs={class:"business-ring-chart",viewBox:"0 0 160 160",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},zs=["stroke","stroke-dasharray","stroke-dashoffset","data-chart-tooltip"],As={class:"business-ring-inner"},Fs={key:1,class:"business-donut-visual"},Vs={class:"business-three-pie-center"},Bs={class:"business-donut-legend"},Rs=["data-chart-tooltip"],Ys={key:1,class:"business-panel-empty"},ms={class:"business-rose-visual"},Is={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Gs={class:"business-rose-guides"},Ks=["x1","y1","x2","y2","stroke"],Ws={class:"business-rose-segments"},Ds=["d","fill","stroke","data-chart-tooltip"],Us={class:"business-rose-labels"},Os=["x","y","text-anchor"],Hs={class:"business-donut-legend business-rose-legend"},Xs=["data-chart-tooltip"],Es={key:1,class:"business-panel-empty"},Js={key:7,class:"business-structure"},Zs={class:"business-structure-overview"},Qs={class:"business-structure-band"},et=["title","data-chart-tooltip"],at={class:"business-structure-list"},nt=["data-chart-tooltip"],st={key:1,class:"business-panel-empty"},tt={key:8,class:"business-capacity"},lt=["data-chart-tooltip"],rt={class:"business-capacity-band"},ot=["title","data-chart-tooltip"],ut={class:"business-capacity-list"},it=["data-chart-tooltip"],ct=["data-chart-tooltip"],dt={key:1,class:"business-panel-empty"},_t=["data-chart-tooltip"],vt={key:0,class:"business-bar-rank"},pt={class:"business-bar-name"},gt={class:"business-bar-track"},ht={key:0},yt={key:1},ft={key:0,class:"business-column-trend",viewBox:"0 0 320 90",preserveAspectRatio:"none","aria-hidden":"true"},bt=["points"],xt=["points"],kt=["cx","cy"],wt={key:1,class:"business-column-unit"},$t=["data-hover-value","title","data-chart-tooltip"],Mt={class:"business-column-value"},jt={key:0},Nt={key:0,class:"business-project-search"},Ct=["placeholder"],St={class:"business-project-frame"},Lt=["tabindex","onClick","onKeydown"],Tt=["title"],Pt={key:0},qt={key:0},zt=["onClick","onKeydown"],At={key:2},Ft=["aria-label"],Vt={key:4},Bt={key:0,class:"business-project-empty"},Rt={key:12,class:"business-project-ledger"},Yt={class:"business-project-search"},mt=["placeholder"],It={class:"business-project-ledger__summary"},Gt={class:"business-project-ledger__summary-main"},Kt={key:0,class:"business-project-ledger__pager"},Wt=["disabled"],Dt=["disabled"],Ut=["tabindex","onClick","onKeydown"],Ot={class:"business-project-ledger__info"},Ht=["title"],Xt=["title"],Et=["onClick","onKeydown"],Jt={key:1,class:"business-project-ledger__unlocated"},Zt={key:0,class:"business-project-empty"},Qt={key:13,class:"business-spec-grid"},el={class:"business-spec-grid__index"},al=["title"],nl={class:"business-spec-grid__count"},sl={key:0},tl={class:"business-spec-grid__specs"},ll=["title"],rl={key:0},ol={key:0,class:"business-support-matrix__note"},ul={class:"business-support-matrix__head"},il={key:0},cl={class:"business-support-matrix__body"},dl=["title"],_l=["title"],vl={class:"business-table-head"},pl={class:"business-table-body"},gl=["data-chart-tooltip"],hl={class:"business-table-name"},yl={class:"business-table-value"},fl={key:0},bl={class:"business-stack-legend"},xl={key:0,class:"business-stack-unit"},kl={class:"business-stack-chart"},wl=["data-hover-value","title","data-chart-tooltip"],$l={key:0,class:"business-stack-total"},Ml={key:0},jl={class:"business-stack-track"},Nl=["data-chart-tooltip"],Cl={key:0,class:"business-column-unit business-peak-unit"},Sl=["data-hover-value","title","data-chart-tooltip"],Ll={key:0},Tl={key:18,class:"business-line"},Pl={viewBox:"0 0 320 86",preserveAspectRatio:"none","aria-hidden":"true"},ql=["points"],zl=["points"],Al=["cx","cy"],Fl=["cx","cy","onMouseenter"],Vl=["onMouseenter"],Bl={key:0},Rl=["data-chart-tooltip"],Yl={class:"business-balance-gauge-head"},ml={class:"business-balance-gauge-ring"},Il={class:"business-balance-gauge-value"},Gl={key:0},Kl={class:"business-balance-gauge-name"},Wl={key:0,class:"business-balance-gauge-extra"},Dl=["data-chart-tooltip"],Ul={class:"business-gauge-visual"},Ol={viewBox:"0 0 152 96",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Hl=["stroke-dasharray"],Xl={class:"business-gauge-value"},El={key:0},Jl={class:"business-gauge-name"},Zl={key:0,class:"business-gauge-extra"},Ql=["data-chart-tooltip"],er={key:0},ar={class:"business-split-band"},nr=["data-chart-tooltip"],sr={class:"business-split-list"},tr=["data-chart-tooltip"],xn=3e3,xr={__name:"BusinessPanelRenderer",props:{panel:{type:Object,default:()=>({rows:[]})},compact:{type:Boolean,default:!1},columnLabelStandard:{type:Boolean,default:!1},visualVersion:{type:String,default:"legacy"}},emits:["row-select"],setup(b,{emit:K}){const p=b,Ve=K,fe=[ua.accentCyan,ua.accentMint,ua.accentWater,ua.accentOrange,"#16b6e8","#a8fbff"],L=["#43d9ff","#46e6ad","#f0c35a","#6ba7ff","#a78bfa","#ff8c78"],D=v(()=>p.visualVersion==="v21"?L:fe),y=v(()=>{var e;return((e=p.panel)==null?void 0:e.type)||"rank"}),C=v(()=>{var e;return(((e=p.panel)==null?void 0:e.rows)||[]).filter(a=>a==null?void 0:a.name)}),G=v(()=>C.value.map(e=>Fe(Ae({},e),{value:F(e)})).filter(e=>e.value>0)),Be=v(()=>C.value.map(e=>F(e)).filter(e=>e>0)),Re=v(()=>Math.max(...Be.value,1)),Z=v(()=>Be.value.reduce((e,a)=>e+a,0)),Ce=v(()=>C.value.filter(e=>F(e)>0)),Oe=v(()=>{var e;return["raceBar","raceBarNoWrap","raceBarRelaxed","degradation"].includes((e=p.panel)==null?void 0:e.variant)}),V=v(()=>y.value==="line"?C.value.filter(e=>(e==null?void 0:e.value)!==void 0&&(e==null?void 0:e.value)!==null&&(e==null?void 0:e.value)!==""):C.value.filter(e=>F(e)>0)),Ye=v(()=>V.value),ae=v(()=>y.value!=="column"?"":Ba()),me=v(()=>y.value!=="peak"?"":Ba()),oe=v(()=>C.value.filter(e=>F(e)>0)),ce=v(()=>{var e;return V.value.slice(0,((e=p.panel)==null?void 0:e.limit)||8)}),Se=v(()=>{var e;return C.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=p.panel)==null?void 0:e.limit)||6)}),be=v(()=>{var e;return C.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=p.panel)==null?void 0:e.limit)||3)}),ne=v(()=>{var e;return((e=p.panel)==null?void 0:e.segments)||[]}),de=v(()=>C.value.filter(e=>{var a;return we(e)>0||((a=p.panel)==null?void 0:a.showZero)===!0})),ia=v(()=>Math.max(...de.value.map(e=>we(e)),1)),O=ye(""),xe=ye(null),ca=[{key:"name",label:"项目名称",field:"name",width:"45%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"13%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"20%",className:"business-project-col-category"},{key:"scale",label:"规模",field:"value",width:"22%",align:"right",strong:!0,unitField:"unit",className:"business-project-col-scale"}],Le=v(()=>{var a;return(Array.isArray((a=p.panel)==null?void 0:a.columns)&&p.panel.columns.length?p.panel.columns:ca).map((l,_)=>({key:l.key||l.field||`column-${_}`,label:l.label||l.title||l.name||"",field:l.field||l.dataIndex||l.key,fields:l.fields||[],width:l.width,align:l.align,strong:!!l.strong,unit:l.unit,unitField:l.unitField,fallback:l.fallback,format:l.format,icon:l.icon,action:l.action,className:l.className}))}),He=v(()=>{var e;return((e=p.panel)==null?void 0:e.rowSelectOnClick)!==!1}),_e=v(()=>{var e;return((e=p.panel)==null?void 0:e.searchPlaceholder)||"搜索项目"}),Xe=v(()=>{var e;return((e=p.panel)==null?void 0:e.emptyText)||"无匹配项目"}),Ie=v(()=>{var a;const e=Array.isArray((a=p.panel)==null?void 0:a.searchKeys)?p.panel.searchKeys:[];return e.length?e:[...Le.value.flatMap(l=>[l.field,...l.fields||[]]),"projectName","category","year","measure","townships","metric"].filter(Boolean)}),Ge=v(()=>{const e=Ua(O.value);return e?C.value.filter(a=>Ua(zn(a)).includes(e)):An(C.value)}),se=ye(1),Te=v(()=>{var e;return Math.max(1,Number((e=p.panel)==null?void 0:e.pageSize)||15)}),Ee=v(()=>Ge.value),ke=v(()=>Math.max(1,Math.ceil(Ee.value.length/Te.value))),Ke=v(()=>{const e=Math.min(se.value,ke.value),a=Math.max(0,e-1)*Te.value;return Ee.value.slice(a,a+Te.value)}),da=v(()=>Math.max(1,Ke.value.length)),Je=v(()=>{var e;return((e=p.panel)==null?void 0:e.summaryValue)||H(C.value.length)}),Ze=v(()=>{var e;return((e=p.panel)==null?void 0:e.summaryLabel)||"条建设台账"}),Qe=v(()=>C.value.filter(e=>e==null?void 0:e.canLocate).length),o=v(()=>C.value.filter(e=>e==null?void 0:e.name)),i=v(()=>C.value.filter(e=>e==null?void 0:e.name)),d=v(()=>{var e;return!!((e=p.panel)!=null&&e.showTotal)}),w=v(()=>C.value.find(e=>["forage-total","wetland-yield-total"].includes(e.key))||C.value[0]),k=v(()=>C.value.filter(e=>["forage-edible","forage-unavailable","wetland-yield-edible","wetland-yield-unavailable"].includes(e.key))),S=v(()=>C.value.find(e=>["forage-top-town","wetland-yield-top-town"].includes(e.key))),f=ye(0),q=ye(null),B=ye(null),U=ye(!0),Q=ye({visible:!1,x:0,y:0,title:"",lines:[]});let ue=null,ve=null;const kn=v(()=>{var e,a;return`${((e=p.panel)==null?void 0:e.key)||((a=p.panel)==null?void 0:a.title)||"pie"}-${G.value.map(l=>`${l.name}:${l.value}`).join("|")}`}),wn=v(()=>{const _=typeof window=="undefined"?1920:window.innerWidth,h=typeof window=="undefined"?1080:window.innerHeight,g=Math.min(_-190-8,Q.value.x+14),M=Math.min(h-82-8,Q.value.y+14);return{left:`${Math.max(8,g)}px`,top:`${Math.max(8,M)}px`}}),W=v(()=>{const e=Na.value;return e?f.value%e:0}),Na=v(()=>{var e;return y.value==="structure"?oe.value.length:y.value==="donut"||y.value==="rose"?G.value.length:y.value==="bar"&&((e=p.panel)==null?void 0:e.variant)==="capacity"?k.value.length:y.value==="bar"||y.value==="column"?V.value.length:y.value==="table"?Ye.value.length:y.value==="line"?V.value.length:y.value==="balanceGaugeGrid"?be.value.length:y.value==="gauge"?Se.value.length:y.value==="stackColumn"?de.value.length:y.value==="split"?Ce.value.length:0}),Ca=v(()=>G.value[W.value]||G.value[0]);v(()=>oe.value[W.value]||oe.value[0]);const Pe=v(()=>C.value[0]),$n=v(()=>C.value.slice(0,4).map((e,a)=>Fe(Ae({},e),{icon:Hn(e,a)}))),Mn=v(()=>oe.value.map((e,a)=>Fe(Ae({},e),{displayIndex:a}))),_a=v(()=>{var e;return y.value!=="donut"?"standard":((e=p.panel)==null?void 0:e.variant)==="ring"?"ring":"three"}),jn=v(()=>{const e=G.value,a=e.length;if(!a)return[];const l=52,_=2*Math.PI*l,h=e.reduce((z,R)=>z+F(R),0)||1,g=a>1?Math.min(12,Math.max(7,_*.028)):0;let M=0;return e.map((z,R)=>{const E=F(z)/h*_,ee=a>1?Math.max(5,E-g):_,je=M+(a>1?g/2:0);return M+=E,{key:z.key||z.name||R,index:R,item:z,color:m(R),dasharray:`${ee.toFixed(2)} ${_.toFixed(2)}`,dashoffset:`${(-je).toFixed(2)}`}})}),va=v(()=>{const e=G.value,a=e.length;if(!a)return[];const l=Math.max(...e.map(g=>F(g)),1),_=360/a,h=Math.min(8,_*.16);return e.map((g,M)=>{const z=F(g),R=M===W.value,T=36+Math.sqrt(z/l)*31+(R?5:0),E=17,ee=-90+M*_+h/2,je=-90+(M+1)*_-h/2,Ne=(ee+je)/2,la=Me(75,75,T+3,Ne),ra=Me(75,75,T+15,Ne),oa=Me(75,75,T+20,Ne);return{key:g.key||g.name||M,index:M,item:g,color:m(M),path:On(75,75,E,T,ee,je),lineStart:la,lineEnd:ra,label:oa,anchor:Math.cos(Ne*Math.PI/180)>=0?"start":"end"}})});ts(()=>{En(),wa()}),ls(()=>{Jn(),$a()}),Ma(()=>{var e;return[(e=p.panel)==null?void 0:e.key,C.value.length]},()=>{f.value=0,q.value=null,O.value="",se.value=1,xe.value=null,sa(),wa()}),Ma(O,()=>{se.value=1}),Ma(U,()=>{wa()});const te=v(()=>{const e=V.value,a=320,l=66,_=10,h=e.length>1?a/(e.length-1):a,g=e.map(T=>F(T)).filter(T=>Number.isFinite(T)&&T>=0),M=g.length?Math.min(...g):0,z=g.length?Math.max(...g):1,R=Math.max(z-M,z*.08,1);return e.map((T,E)=>{const ee=F(T);return{x:Math.round(E*h),y:Math.round(_+l-(ee-M)/R*l),item:T}})}),Sa=v(()=>te.value.map(e=>`${e.x},${e.y}`).join(" ")),Nn=v(()=>te.value.length?`0,86 ${Sa.value} 320,86`:""),La=v(()=>{var e,a;return y.value==="column"&&(((e=p.panel)==null?void 0:e.lineOverlay)===!0||((a=p.panel)==null?void 0:a.variant)==="trendColumn")&&V.value.length>1}),pa=v(()=>{if(!La.value)return[];const e=V.value,a=e.map(T=>F(T)).filter(T=>Number.isFinite(T)&&T>=0),l=Math.max(...a,1),_=Math.min(...a,0),h=Math.max(l-_,l*.08,1),g=320,M=9,z=67,R=e.length>1?g/(e.length-1):0;return e.map((T,E)=>{const ee=F(T);return{key:T.key||T.name||E,x:Number((E*R).toFixed(2)),y:Number((M+z-(ee-_)/h*z).toFixed(2))}})}),Ta=v(()=>pa.value.map(e=>`${e.x},${e.y}`).join(" ")),Cn=v(()=>pa.value.length?`0,82 ${Ta.value} 320,82`:""),Pa=v(()=>V.value),qa=v(()=>({gridTemplateColumns:`repeat(${Math.max(Pa.value.length,1)}, minmax(0, 1fr))`})),za=v(()=>Number.isInteger(q.value)?te.value[q.value]:null),Aa=v(()=>te.value.length?Number.isInteger(q.value)?q.value:W.value:0),qe=v(()=>za.value?za.value:te.value[Aa.value]||te.value[0]),Sn=v(()=>{const e=qe.value;if(!e)return{};const a=e.x/320*100;return{left:`${Math.min(84,Math.max(16,a))}%`,top:"6px",transform:"translateX(-50%)"}});function F(e){const a=Number(e==null?void 0:e.value);if(!Number.isNaN(a)&&a>0)return a;const l=Number(e==null?void 0:e.percent);return Number.isNaN(l)?0:l}function we(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return ne.value.reduce((l,_)=>l+(Number(a[_.key])||0),0)}function Fa(e){const a=we(e),l=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return a?ne.value.map((_,h)=>{var z,R,T;const g=Number(l[_.key])||0,M=((z=p.panel)==null?void 0:z.variant)==="dual"||((R=p.panel)==null?void 0:R.variant)==="parkSlim"||((T=p.panel)==null?void 0:T.sharedScale)===!0?ia.value:a;return Fe(Ae({},_),{value:g,percent:Math.max(g>0?3:0,g/Math.max(M,1)*100),color:Va(_,h)})}):[]}function Va(e,a){var l;return(l=p.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:m(a)}function H(e){const a=Number(e);return Number.isNaN(a)?"--":Number.isInteger(a)?`${a}`:`${Number(a.toFixed(2))}`}function A(e){return(e==null?void 0:e.displayValue)!==void 0&&(e==null?void 0:e.displayValue)!==null&&(e==null?void 0:e.displayValue)!==""?e.displayValue:(e==null?void 0:e.value)===void 0||(e==null?void 0:e.value)===null||(e==null?void 0:e.value)===""?"--":H(e.value)}function pe(e){var _;const a=(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||"";if(!a)return"";const l=String((_=A(e))!=null?_:"");return l&&l.endsWith(String(a))?"":a}function Ba(){const e=[...new Set(V.value.map(a=>(a==null?void 0:a.displayUnit)||(a==null?void 0:a.unit)).filter(Boolean))];return e.length===1?e[0]:""}function Ra(e){const a=pe(e);return a?ae.value===a?"":a:""}function Ya(e){const a=pe(e);return a?me.value===a?"":a:""}function ge(e){return String(e||"").trim().replace(/\s+/g,"").replace(/[乡镇]$/u,"")}function Ln(e){return Array.from(ge(e)).slice(0,3).join("")}function ea(e){var a;return((a=p.panel)==null?void 0:a.labelMode)==="horizontal"?ge(e):p.columnLabelStandard?Ln(e):ge(e)}function aa(e){const a=ge(e==null?void 0:e.name)||"数据",l=pe(e);return`${a}:${A(e)}${l}`}function ga(e,a=[]){return[ge(e)||"数据",...a.filter(l=>l!=null&&String(l).trim()!=="").map(l=>String(l))].join(` +`)}function X(e,a=[]){if(!e)return"";const l=pe(e),_=A(e),h=[];return _!=="--"&&h.push(`数值:${_}${l}`),e.extra&&h.push(String(e.extra)),ga(e.name,[...h,...a])}function na(e){return X(e,[`占比:${ka(e)}`])}function ma(e){return X(e,[`占比:${ba(e)}`])}function Ia(e){return X(e,[`占比:${xa(e)}`])}function Tn(e){var h;const a=$e(e),l=Fa(e).filter(g=>g.value>0).map(g=>`${g.name}:${g.valuePrefix||""}${H(g.value)}${a}`),_=((h=p.panel)==null?void 0:h.totalLabel)||"合计";return ga(e==null?void 0:e.name,[`${_}:${ha(e)}${H(we(e))}${a}`,...l])}function Pn(e,a){const l=$e(e);return ga(`${ge(e==null?void 0:e.name)} ${(a==null?void 0:a.name)||""}`,[`数值:${(a==null?void 0:a.valuePrefix)||""}${H((a==null?void 0:a.value)||0)}${l}`])}function Ga(e){return X(e,[`状态:${fa(e)}`])}function Ka(e){const a=Z.value?`${H(F(e)/Z.value*100)}%`:"--";return X(e,[`占比:${a}`])}function qn(e){var h,g,M;const a=(g=(h=e.target)==null?void 0:h.closest)==null?void 0:g.call(h,"[data-chart-tooltip], [data-hover-value]");if(!a||!((M=B.value)!=null&&M.contains(a))){sa();return}const l=a.getAttribute("data-chart-tooltip")||a.getAttribute("data-hover-value")||"",_=String(l).split(/\n+/).map(z=>z.trim()).filter(Boolean);if(!_.length){sa();return}Q.value={visible:!0,x:e.clientX,y:e.clientY,title:_[0],lines:_.slice(1)}}function sa(){Q.value.visible&&(Q.value={visible:!1,x:0,y:0,title:"",lines:[]})}function Wa(e){const a=ge(e==null?void 0:e.name)||"数据",l=$e(e);return`${a}:${ha(e)}${H(we(e))}${l}`}function $e(e){var a;return(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||((a=p.panel)==null?void 0:a.unit)||""}function ha(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return ne.value.some(l=>(l==null?void 0:l.valuePrefix)&&Number(a[l.key])>0)?"≥":""}function Da(){var e,a,l;return((e=p.panel)==null?void 0:e.showValue)===!0||((a=p.panel)==null?void 0:a.variant)==="dual"||((l=p.panel)==null?void 0:l.variant)==="parkSlim"}function Ua(e){return String(e||"").trim().toLowerCase()}function zn(e){const a=Ie.value.map(l=>Oa(e,{field:l})).filter(l=>l!=null);return[e==null?void 0:e.searchText,...a].filter(Boolean).join(" ")}function An(e=[]){var l;const a=Number((l=p.panel)==null?void 0:l.maxRows);return!Number.isFinite(a)||a<=0?e:e.slice(0,a)}function Oa(e,a){const l=[a==null?void 0:a.field,...(a==null?void 0:a.fields)||[]].filter(Boolean);for(const _ of l){const h=String(_).split(".").reduce((g,M)=>g==null?void 0:g[M],e);if(h!=null&&h!=="")return h}}function We(e,a){const l=Oa(e,a);if((a==null?void 0:a.format)==="townVillage"){const _=String((e==null?void 0:e.town)||"").trim(),h=String((e==null?void 0:e.village)||"").trim();return[_,h].filter(Boolean).join(" / ")||(a==null?void 0:a.fallback)||"--"}return l==null||l===""?(a==null?void 0:a.fallback)||"--":(a==null?void 0:a.format)==="number"?H(l):(a==null?void 0:a.format)==="displayValue"?A({value:l}):String(l)}function Ha(e,a){return a!=null&&a.unitField&&(e!=null&&e[a.unitField])?e[a.unitField]:(a==null?void 0:a.unit)||""}function Xa(e){return{"business-project-name":(e==null?void 0:e.key)==="name","business-project-locate":(e==null?void 0:e.key)==="locate","is-right":(e==null?void 0:e.align)==="right","is-center":(e==null?void 0:e.align)==="center","is-strong":e==null?void 0:e.strong}}function ya(e,a={}){(a==null?void 0:a.action)==="locate"&&le(e,!0)}function le(e,a=!1){!a&&!He.value||(e==null?void 0:e.canLocate)!==!1&&(xe.value=(e==null?void 0:e.key)||(e==null?void 0:e.name)||null,Ve("row-select",e))}function Ea(e=0){const a=se.value+Number(e||0);se.value=Math.max(1,Math.min(ke.value,a))}function Ja(e={}){return e.ledgerName||e.name||"--"}function Za(e={}){return e.ledgerLocation||[e.town,e.village].filter(Boolean).join(" · ")||"--"}function Qa(e={},a={}){var _,h,g,M;const l=Number((M=(g=(_=e==null?void 0:e.segments)==null?void 0:_[a.key])!=null?g:(h=e==null?void 0:e.values)==null?void 0:h[a.key])!=null?M:0);return!Number.isFinite(l)||l<=0?"—":`${(a==null?void 0:a.valuePrefix)||""}${H(l)}`}function en(e={}){const a=ne.value.map(h=>{var g,M,z,R;return Number((R=(z=(g=e==null?void 0:e.segments)==null?void 0:g[h.key])!=null?z:(M=e==null?void 0:e.values)==null?void 0:M[h.key])!=null?R:0)}),l=a.reduce((h,g)=>h+(Number.isFinite(g)&&g>0?g:0),0);return l?`${ne.value.some((h,g)=>(h==null?void 0:h.valuePrefix)&&a[g]>0)?"≥":""}${H(l)}`:"—"}function Fn(e){const a=e==null?void 0:e.currentTarget;if(!a||a.scrollWidth<=a.clientWidth)return;e.preventDefault();const l=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;a.scrollLeft+=l}function ze(e){var g,M;const a=Number(e==null?void 0:e.scaleValue);if(!(y.value==="column"&&((g=p.panel)==null?void 0:g.variant)==="plain")&&!Number.isNaN(a)&&a>0)return Math.max(8,Math.min(100,Math.round(a)));const _=F(e);if(!_)return 8;const h=y.value==="column"&&((M=p.panel)==null?void 0:M.variant)==="plain"?Math.max(...Be.value,_):Re.value;return Math.max(8,Math.round(_/h*100))}function Vn(e,a){const l=ze(e),_=Math.max(.04,Math.min(.1,l/360));return{"--heat-color":m(a),"--heat-bg":ie(m(a),_)}}function re(e){const a=Number(e==null?void 0:e.value);return Number.isFinite(a)?a:0}function Bn(){var l;const e=Number((l=p.panel)==null?void 0:l.max);if(Number.isFinite(e)&&e>0)return e;const a=Math.max(...Se.value.map(_=>re(_)),100);return Math.max(a,100)}function an(e){const a=re(e),l=Bn();return!l||a<=0?0:Number(Math.min(100,a/l*100).toFixed(1))}function Rn(e){return Number((-180+an(e)*1.8).toFixed(1))}function Yn(e,a){var l;return(l=p.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:m(a)}function mn(e){const a=Math.max(0,re(e)),l=Math.max(5,...be.value.map(_=>Math.max(0,re(_))));return Math.max(6,Math.min(100,Number((a/l*100).toFixed(1))))}function In(e){const a=re(e),l=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return a>20||/严重|重度|高超载/.test(l)?"#8bf7ff":a>10||/中度|预警/.test(l)?"#48cfff":a>5||/轻度/.test(l)?"#b9fbff":a<=0||/总体可控|合理|正常|达标|无超载/.test(l)?"#24f6c4":"#30dcff"}function Gn(e){return{"--balance-color":In(e),"--balance-progress":`${mn(e)}%`}}function fa(e){if(e!=null&&e.status||e!=null&&e.level)return e.status||e.level;const a=re(e);return a<0?"合理":a<=5?"基本实现草畜平衡":a<=10?"轻度超载":a>100?"高超载":"超载预警"}function ie(e,a=.2){const l=String(e||"").replace("#","");if(l.length!==6)return`rgba(48, 220, 255, ${a})`;const _=parseInt(l,16),h=_>>16&255,g=_>>8&255,M=_&255;return`rgba(${h}, ${g}, ${M}, ${a})`}function Kn(e){const a=te.value.length;if(!a)return;const l=e.currentTarget.getBoundingClientRect(),_=l.width?(e.clientX-l.left)/l.width:0,h=Math.min(a-1,Math.max(0,Math.round(_*(a-1))));q.value=h}function Wn(e){const a=F(e);return!Z.value||!a?0:Math.max(6,a/Z.value*100)}function nn(e){const a=F(e);return!Z.value||!a?0:Math.max(2,a/Z.value*100)}function ba(e){if(!e)return"--";if(e.extra)return e.extra;const a=F(e);return!Z.value||!a?"--":`${H(a/Z.value*100)}%`}function sn(){const e=F(w.value);return e>0?e:k.value.reduce((a,l)=>a+F(l),0)}function Dn(e){const a=sn(),l=F(e);return!a||!l?0:Math.max(6,l/a*100)}function xa(e){const a=sn(),l=F(e);return!a||!l?"--":`${H(l/a*100)}%`}function ta(e,a){return["forage-edible","wetland-yield-edible"].includes(e==null?void 0:e.key)?"#24f6c4":["forage-unavailable","wetland-yield-unavailable"].includes(e==null?void 0:e.key)?"#8bf7ff":m(a)}function ka(e){const a=F(e),l=Number(e==null?void 0:e.count)||Z.value;return!a||!l?"0%":`${H(a/l*100)}%`}function Un(e){const a=F(e),l=Number(e==null?void 0:e.count)||Z.value;return!a||!l?0:a/l*100}function Me(e,a,l,_){const h=_*Math.PI/180;return{x:Number((e+l*Math.cos(h)).toFixed(2)),y:Number((a+l*Math.sin(h)).toFixed(2))}}function On(e,a,l,_,h,g){const M=Me(e,a,_,h),z=Me(e,a,_,g),R=Me(e,a,l,g),T=Me(e,a,l,h),E=g-h>180?1:0;return[`M ${M.x} ${M.y}`,`A ${_} ${_} 0 ${E} 1 ${z.x} ${z.y}`,`L ${R.x} ${R.y}`,`A ${l} ${l} 0 ${E} 0 ${T.x} ${T.y}`,"Z"].join(" ")}function m(e){return D.value[e%D.value.length]}function De(e,a={}){var l;return(l=p.panel)!=null&&l.preserveColors&&(a!=null&&a.color||a!=null&&a.fillColor)?a.color||a.fillColor:m(e)}function Hn(e,a){if(e!=null&&e.icon)return String(e.icon).replace(/[^a-z0-9-]/gi,"");const l=String((e==null?void 0:e.name)||"");return l.includes("利用率")||l.includes("占比")?"rate":l.includes("重度")||l.includes("退化")?"risk":l.includes("可食")||l.includes("供给")?"leaf":l.includes("不可")?"stack":l.includes("产量")||l.includes("鲜草")?"yield":l.includes("乡镇")?"town":l.includes("面积")?"area":["yield","leaf","rate","risk"][a%4]}function Xn(){$a();const e=Na.value;U.value&&(e<2||(ue=window.setInterval(()=>{f.value=(f.value+1)%e},xn)))}function wa(){U.value?Xn():$a()}function $a(){ue&&(window.clearInterval(ue),ue=null)}function En(){tn(),!(!B.value||typeof window.IntersectionObserver!="function")&&(ve=new IntersectionObserver(e=>{const a=e[0];U.value=!!(a!=null&&a.isIntersecting)&&ln()}),ve.observe(B.value),window.requestAnimationFrame(tn))}function Jn(){var e;(e=ve==null?void 0:ve.disconnect)==null||e.call(ve),ve=null}function tn(){U.value=ln()}function ln(){const e=B.value;return e?!!(e.offsetParent||e.getClientRects().length):!0}function rn(e,a={}){const l=De(e,a);return`linear-gradient(90deg, ${ie(l,.08)} 0%, ${ie(l,.58)} 48%, ${l} 82%, rgba(248,255,255,0.86) 100%)`}function Zn(e,a={}){var _,h;if(((_=p.panel)==null?void 0:_.variant)==="water"){const g=De(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.92) 0%, ${ie(g,.88)} 18%, ${ie(g,.68)} 58%, rgba(47, 151, 255, 0.18) 100%)`}if(((h=p.panel)==null?void 0:h.variant)==="plain"){const g=De(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${ie(g,.84)} 18%, ${ie(g,.64)} 74%, ${ie(g,.1)} 100%)`}const l=De(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${l} 18%, ${ie(l,.62)} 72%, rgba(50, 220, 255, 0.08) 100%)`}return(e,a)=>{var l,_,h,g,M,z,R,T,E,ee,je,Ne,la,ra,oa,on,un,cn,dn,_n,vn;return s(),t("div",{ref_key:"panelRef",ref:B,class:j(["business-panel",[`is-${y.value}`,`is-${_a.value}`,`is-${b.visualVersion}`,{"is-compact":b.compact,"is-column-label-standard":b.columnLabelStandard,"is-column-label-horizontal":((l=p.panel)==null?void 0:l.labelMode)==="horizontal"}]]),onMousemove:qn,onMouseleave:sa},[C.value.length?y.value==="rank"?(s(),Ue(bn,{key:1,rows:C.value,compact:""},null,8,["rows"])):y.value==="metric"?(s(),t("div",bs,[(s(!0),t(x,null,$(C.value.slice(0,4),n=>(s(),t("div",{key:n.key||n.name,class:"business-metric-item","data-chart-tooltip":X(n)},[r("span",null,u(n.name),1),r("strong",null,u(A(n)),1),r("em",null,u(n.unit),1)],8,xs))),128))])):y.value==="iconMetric"?(s(),t("div",ks,[(s(!0),t(x,null,$($n.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-icon-metric-item",`is-tone-${c%D.value.length}`]),"data-chart-tooltip":X(n)},[r("i",{class:j(["business-icon-metric-mark",`is-${n.icon}`])},[...a[6]||(a[6]=[r("span",null,null,-1)])],2),r("div",$s,[r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),n.unit?(s(),t("em",Ms,u(n.unit),1)):N("",!0)])])],10,ws))),128))])):y.value==="spotlight"?(s(),t("div",js,[Pe.value?(s(),t(x,{key:0},[r("div",{class:"business-spotlight-main","data-chart-tooltip":X(Pe.value)},[r("span",null,u(Pe.value.name),1),r("strong",null,[I(u(A(Pe.value)),1),r("em",null,u(Pe.value.unit),1)]),r("small",null,u(Pe.value.extra||((_=b.panel)==null?void 0:_.note)||"核心业务指标"),1)],8,Ns),r("div",Cs,[(s(!0),t(x,null,$(C.value.slice(1,4),(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-spotlight-chip","data-chart-tooltip":X(n)},[r("i",{style:P({borderColor:m(c+1)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),r("em",null,u(n.unit),1)]),n.extra?(s(),t("small",Ls,u(n.extra),1)):N("",!0)],8,Ss))),128))])],64)):(s(),t("div",Ts,"暂无业务统计数据"))])):y.value==="donut"?(s(),t("div",{key:5,class:j(["business-donut",[`is-variant-${_a.value}`,{"is-dense":G.value.length>5}]])},[G.value.length?(s(),t(x,{key:0},[_a.value==="ring"?(s(),t("div",Ps,[(s(),t("svg",qs,[a[7]||(a[7]=r("circle",{class:"business-ring-halo",cx:"80",cy:"80",r:"39"},null,-1)),a[8]||(a[8]=r("circle",{class:"business-ring-track",cx:"80",cy:"80",r:"52"},null,-1)),(s(!0),t(x,null,$(jn.value,n=>(s(),t("circle",{key:n.key,class:j(["business-ring-segment",{"is-active":n.index===W.value}]),cx:"80",cy:"80",r:"52",stroke:n.color,"stroke-dasharray":n.dasharray,"stroke-dashoffset":n.dashoffset,style:P({color:n.color}),"data-chart-tooltip":na(n.item)},null,14,zs))),128))])),r("div",As,[r("strong",null,u(ka(Ca.value)),1),r("span",null,u(((h=Ca.value)==null?void 0:h.name)||"结构占比"),1)])])):(s(),t("div",Fs,[(s(),Ue(os,{key:kn.value,data:G.value,delay:xn,colors:D.value,opacity:.62,class:"business-three-pie"},{default:ja(({data:n})=>[r("div",Vs,[r("strong",null,u(ka(n)),1),r("span",null,u((n==null?void 0:n.name)||"结构占比"),1)])]),_:1},8,["data","colors"]))])),r("div",Bs,[(s(!0),t(x,null,$(G.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-donut-row",{"is-active":c===W.value}]),style:P({"--row-color":m(c),"--row-percent":`${Math.max(4,Un(n))}%`}),"data-chart-tooltip":na(n)},[r("i",{style:P({borderColor:m(c)})},null,4),r("span",null,u(n.name),1),r("strong",null,u(A(n)),1),r("em",null,u(n.unit),1)],14,Rs))),128))])],64)):(s(),t("div",Ys,"暂无业务统计数据"))],2)):y.value==="rose"?(s(),t("div",{key:6,class:j(["business-rose",{"is-dense":G.value.length>5}])},[G.value.length?(s(),t(x,{key:0},[r("div",ms,[(s(),t("svg",Is,[r("g",Gs,[(s(!0),t(x,null,$(va.value,n=>(s(),t("line",{key:`guide-${n.key}`,x1:n.lineStart.x,y1:n.lineStart.y,x2:n.lineEnd.x,y2:n.lineEnd.y,stroke:n.color},null,8,Ks))),128))]),r("g",Ws,[(s(!0),t(x,null,$(va.value,n=>(s(),t("path",{key:n.key,class:j(["business-rose-segment",{"is-active":n.index===W.value}]),d:n.path,fill:n.color,stroke:n.color,"data-chart-tooltip":na(n.item)},null,10,Ds))),128))]),a[9]||(a[9]=r("circle",{class:"business-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),a[10]||(a[10]=r("circle",{class:"business-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r("g",Us,[(s(!0),t(x,null,$(va.value,n=>(s(),t("text",{key:`label-${n.key}`,x:n.label.x,y:n.label.y,"text-anchor":n.anchor},u(n.item.name),9,Os))),128))])]))]),r("div",Hs,[(s(!0),t(x,null,$(G.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-donut-row business-rose-row",{"is-active":c===W.value}]),"data-chart-tooltip":na(n)},[r("i",{style:P({borderColor:m(c),background:m(c),color:m(c)})},null,4),r("span",null,u(n.name),1),r("strong",null,u(A(n)),1),r("em",null,u(n.unit),1)],10,Xs))),128))])],64)):(s(),t("div",Es,"暂无业务统计数据"))],2)):y.value==="structure"?(s(),t("div",Js,[oe.value.length?(s(),t(x,{key:0},[r("div",Zs,[r("div",Qs,[(s(!0),t(x,null,$(oe.value,(n,c)=>(s(),t("i",{key:n.key||n.name,class:j({"is-active":c===W.value}),style:P({width:`${nn(n)}%`,background:m(c),color:m(c)}),title:`${n.name}:${A(n)}${n.unit||""} ${ba(n)}`,"data-chart-tooltip":ma(n)},null,14,et))),128))])]),r("div",at,[(s(!0),t(x,null,$(Mn.value,n=>(s(),t("div",{key:n.key||n.name,class:j(["business-structure-row",{"is-active":n.displayIndex===W.value}]),style:P({"--row-color":m(n.displayIndex),"--row-percent":`${Math.max(4,nn(n))}%`}),"data-chart-tooltip":ma(n)},[r("i",{style:P({background:m(n.displayIndex),color:m(n.displayIndex)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),r("em",null,u(n.unit),1)]),r("small",null,u(ba(n)),1)],14,nt))),128))])],64)):(s(),t("div",st,"暂无业务统计数据"))])):y.value==="bar"&&((g=b.panel)==null?void 0:g.variant)==="capacity"?(s(),t("div",tt,[w.value?(s(),t(x,{key:0},[r("div",{class:"business-capacity-head","data-chart-tooltip":X(w.value)},[r("span",null,u(w.value.name),1),r("strong",null,[I(u(A(w.value)),1),r("em",null,u(w.value.unit),1)])],8,lt),r("div",rt,[(s(!0),t(x,null,$(k.value,(n,c)=>(s(),t("i",{key:n.key||n.name,class:j({"is-active":c===W.value}),style:P({width:`${Dn(n)}%`,background:ta(n,c),color:ta(n,c)}),title:`${n.name}:${A(n)}${n.unit||""} ${xa(n)}`,"data-chart-tooltip":Ia(n)},null,14,ot))),128))]),r("div",ut,[(s(!0),t(x,null,$(k.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-capacity-row",{"is-active":c===W.value}]),"data-chart-tooltip":Ia(n)},[r("i",{style:P({background:ta(n,c),color:ta(n,c)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),r("em",null,u(n.unit),1)]),r("small",null,u(xa(n)),1)],10,it))),128))]),S.value?(s(),t("div",{key:0,class:"business-capacity-town","data-chart-tooltip":X(S.value)},[r("span",null,u(S.value.name),1),r("strong",null,[I(u(A(S.value)),1),r("em",null,u(S.value.unit),1)])],8,ct)):N("",!0)],64)):(s(),t("div",dt,"暂无业务统计数据"))])):y.value==="bar"?(s(),t("div",{key:9,class:j(["business-bars",{"is-dense":V.value.length>=5,"is-long":V.value.length>10,"is-scrollable":V.value.length>10,"is-single":((M=b.panel)==null?void 0:M.span)===1,"is-distribution":((z=b.panel)==null?void 0:z.variant)==="distribution","is-capacity":((R=b.panel)==null?void 0:R.variant)==="capacity","is-rank-bar":((T=b.panel)==null?void 0:T.variant)==="rankBar","is-park-bar":((E=b.panel)==null?void 0:E.variant)==="parkBar","is-race-bar":Oe.value,"is-few-rows":Oe.value&&V.value.length<=3,"is-degradation":((ee=b.panel)==null?void 0:ee.variant)==="degradation","is-race-nowrap":((je=b.panel)==null?void 0:je.variant)==="raceBarNoWrap","is-race-relaxed":((Ne=b.panel)==null?void 0:Ne.variant)==="raceBarRelaxed"}]),style:P({"--bar-row-count":Math.max(V.value.length,1)}),onWheel:a[0]||(a[0]=J(()=>{},["stop"]))},[(s(!0),t(x,null,$(V.value,(n,c)=>{var Y;return s(),t("div",{key:n.key||n.name,class:j(["business-bar-row",{"is-active":c===W.value}]),style:P({"--bar-color":De(c,n)}),"data-chart-tooltip":X(n)},[((Y=b.panel)==null?void 0:Y.variant)==="rankBar"?(s(),t("span",vt,u(c+1),1)):N("",!0),r("span",pt,u(n.name),1),r("div",gt,[r("i",{style:P({width:`${ze(n)}%`,background:rn(c,n)})},null,4)]),r("strong",null,[I(u(A(n))+" ",1),n.unit?(s(),t("em",ht,u(n.unit),1)):N("",!0),n.extra?(s(),t("small",yt,u(n.extra),1)):N("",!0)])],14,_t)}),128))],38)):y.value==="column"?(s(),t("div",{key:10,class:j(["business-columns",[`is-variant-${((la=b.panel)==null?void 0:la.variant)||"solid"}`,{"is-dense":V.value.length>6,"is-scrollable":V.value.length>6&&((ra=b.panel)==null?void 0:ra.scrollable)!==!1,"has-unit-label":!!ae.value}]]),onWheel:J(Fn,["stop"])},[La.value?(s(),t("svg",ft,[r("polyline",{class:"business-column-trend-area",points:Cn.value},null,8,bt),r("polyline",{class:"business-column-trend-line",points:Ta.value},null,8,xt),(s(!0),t(x,null,$(pa.value,n=>(s(),t("circle",{key:n.key,class:"business-column-trend-dot",cx:n.x,cy:n.y,r:"2.3"},null,8,kt))),128))])):N("",!0),ae.value?(s(),t("small",wt,"单位:"+u(ae.value),1)):N("",!0),(s(!0),t(x,null,$(V.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-column-item",{"is-active":c===W.value,"is-zero":(n==null?void 0:n.zero)===!0||(n==null?void 0:n.isZero)===!0}]),"data-hover-value":aa(n),title:aa(n),"data-chart-tooltip":X(n)},[r("div",{class:"business-column-track",style:P({"--column-percent":`${ze(n)}%`})},[r("i",{style:P({height:`${ze(n)}%`,background:Zn(c,n),"--column-load-delay":`${c*.075}s`})},null,4),r("strong",Mt,[I(u(A(n)),1),Ra(n)?(s(),t("em",jt,u(Ra(n)),1)):N("",!0)])],4),r("span",null,u(ea(n.name)),1)],10,$t))),128))],34)):y.value==="projectTable"?(s(),t("div",{key:11,class:j(["business-project-table",{"is-without-search":((oa=b.panel)==null?void 0:oa.showSearch)===!1,"is-fill-rows":((on=b.panel)==null?void 0:on.fillRows)===!0}])},[((un=b.panel)==null?void 0:un.showSearch)!==!1?(s(),t("div",Nt,[hn(r("input",{"onUpdate:modelValue":a[1]||(a[1]=n=>O.value=n),type:"search",placeholder:_e.value},null,8,Ct),[[yn,O.value]])])):N("",!0),r("div",St,[r("table",null,[r("colgroup",null,[(s(!0),t(x,null,$(Le.value,n=>(s(),t("col",{key:n.key,class:j(n.className),style:P({width:n.width||void 0})},null,6))),128))]),r("thead",null,[r("tr",null,[(s(!0),t(x,null,$(Le.value,n=>(s(),t("th",{key:n.key,class:j(Xa(n))},u(n.label),3))),128))])]),r("tbody",null,[(s(!0),t(x,null,$(Ge.value,n=>(s(),t("tr",{key:n.key||n.name,class:j({"is-active":xe.value===(n.key||n.name)}),tabindex:He.value?0:-1,onClick:c=>le(n),onKeydown:[he(J(c=>le(n),["prevent"]),["enter"]),he(J(c=>le(n),["prevent"]),["space"])]},[(s(!0),t(x,null,$(Le.value,c=>(s(),t("td",{key:c.key,class:j(Xa(c)),title:We(n,c)},[c.strong?(s(),t("strong",Pt,[I(u(We(n,c)),1),Ha(n,c)?(s(),t("em",qt,u(Ha(n,c)),1)):N("",!0)])):c.action==="locate"&&n.canLocate?(s(),t("button",{key:1,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:J(Y=>ya(n,c),["stop"]),onKeydown:[he(J(Y=>ya(n,c),["stop","prevent"]),["enter"]),he(J(Y=>ya(n,c),["stop","prevent"]),["space"])]},[...a[11]||(a[11]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,zt)):c.action==="locate"?(s(),t("span",At,"--")):c.icon&&We(n,c)!=="--"?(s(),t("span",{key:3,class:j(["business-project-cell-icon",`business-project-cell-icon--${c.icon}`]),role:"img","aria-label":We(n,c)},null,10,Ft)):(s(),t("span",Vt,u(We(n,c)),1))],10,Tt))),128))],42,Lt))),128))])]),Ge.value.length?N("",!0):(s(),t("div",Bt,u(Xe.value),1))])],2)):y.value==="projectLedger"?(s(),t("div",Rt,[r("div",Yt,[hn(r("input",{"onUpdate:modelValue":a[2]||(a[2]=n=>O.value=n),type:"search",placeholder:_e.value},null,8,mt),[[yn,O.value]])]),r("div",It,[r("div",Gt,[r("strong",null,u(Je.value),1),r("span",null,u(Ze.value),1)]),r("small",null,"已定位 "+u(Qe.value)+" 处",1),ke.value>1?(s(),t("div",Kt,[r("button",{type:"button",class:"business-project-ledger__page-button is-previous",title:"上一页","aria-label":"上一页",disabled:se.value<=1,onClick:a[3]||(a[3]=n=>Ea(-1))},[...a[12]||(a[12]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Wt),r("span",null,u(se.value)+" / "+u(ke.value),1),r("button",{type:"button",class:"business-project-ledger__page-button is-next",title:"下一页","aria-label":"下一页",disabled:se.value>=ke.value,onClick:a[4]||(a[4]=n=>Ea(1))},[...a[13]||(a[13]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Dt)])):N("",!0)]),r("div",{class:"business-project-ledger__list business-project-frame",style:P({"--ledger-row-count":da.value})},[(s(!0),t(x,null,$(Ke.value,n=>(s(),t("div",{key:n.key||n.name,class:j(["business-project-ledger__row",{"is-active":xe.value===(n.key||n.name),"is-locatable":n.canLocate,"is-unlocated":n.canLocate===!1}]),tabindex:n.canLocate?0:-1,onClick:c=>le(n),onKeydown:[he(J(c=>le(n),["prevent"]),["enter"]),he(J(c=>le(n),["prevent"]),["space"])]},[r("div",Ot,[r("strong",{title:Ja(n)},u(Ja(n)),9,Ht),r("div",null,[r("span",{title:Za(n)},u(Za(n)),9,Xt)])]),n.canLocate?(s(),t("button",{key:0,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:J(c=>le(n,!0),["stop"]),onKeydown:[he(J(c=>le(n,!0),["stop","prevent"]),["enter"]),he(J(c=>le(n,!0),["stop","prevent"]),["space"])]},[...a[14]||(a[14]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,Et)):(s(),t("span",Jt,"暂无坐标"))],42,Ut))),128)),Ke.value.length?N("",!0):(s(),t("div",Zt,u(Xe.value),1))],4)])):y.value==="specGrid"?(s(),t("div",Qt,[(s(!0),t(x,null,$(o.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-spec-grid__row"},[r("span",el,u(String(c+1).padStart(2,"0")),1),r("span",{class:"business-spec-grid__name",title:n.name},u(n.name),9,al),r("strong",nl,[I(u(A(n)),1),n.unit?(s(),t("em",sl,u(n.unit),1)):N("",!0)]),r("div",tl,[(s(!0),t(x,null,$(n.specs||[],Y=>(s(),t("span",{key:Y.label,title:`${Y.label} ${H(Y.value)}${Y.unit||""}`},[r("small",null,u(Y.label),1),r("strong",null,[I(u(H(Y.value)),1),Y.unit?(s(),t("em",rl,u(Y.unit),1)):N("",!0)])],8,ll))),128))])]))),128))])):y.value==="supportMatrix"?(s(),t("div",{key:14,class:j(["business-support-matrix",{"is-with-total":d.value}])},[(cn=b.panel)!=null&&cn.note?(s(),t("small",ol,u(b.panel.note),1)):N("",!0),r("div",ul,[a[15]||(a[15]=r("span",null,"乡镇",-1)),d.value?(s(),t("span",il,u(((dn=b.panel)==null?void 0:dn.totalLabel)||"合计"),1)):N("",!0),(s(!0),t(x,null,$(ne.value,n=>(s(),t("span",{key:n.key},u(n.headerName||n.name),1))),128))]),r("div",cl,[(s(!0),t(x,null,$(i.value,n=>(s(),t("div",{key:n.key||n.name},[r("span",null,u(ge(n.name)),1),d.value?(s(),t("strong",{key:0,class:"business-support-matrix__total",title:en(n)},u(en(n)),9,dl)):N("",!0),(s(!0),t(x,null,$(ne.value,c=>(s(),t("strong",{key:c.key,title:Qa(n,c)},u(Qa(n,c)),9,_l))),128))]))),128))])],2)):y.value==="table"?(s(),t("div",{key:15,class:j(["business-table",{"is-dense":Ye.value.length>8}])},[r("div",vl,[(s(),t(x,null,$(2,n=>r("div",{key:n,class:"business-table-head-group"},[...a[16]||(a[16]=[r("span",null,"乡镇",-1),r("span",null,"亩产",-1)])])),64))]),r("div",pl,[(s(!0),t(x,null,$(Ye.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-table-row",{"is-active":c===W.value}]),"data-chart-tooltip":X(n)},[r("span",hl,u(n.name),1),r("div",yl,[r("strong",null,[I(u(A(n)),1),n.unit?(s(),t("em",fl,u(n.unit),1)):N("",!0)]),r("i",null,[r("b",{style:P({width:`${ze(n)}%`,background:rn(c)})},null,4)])])],10,gl))),128))])],2)):y.value==="stackColumn"?(s(),t("div",{key:16,class:j(["business-stack-columns",[`is-variant-${((_n=b.panel)==null?void 0:_n.variant)||"standard"}`,{"is-dense":de.value.length>6,"is-with-values":Da()}]])},[r("div",bl,[(s(!0),t(x,null,$(ne.value,(n,c)=>(s(),t("span",{key:n.key||n.name},[r("i",{style:P({background:Va(n,c)})},null,4),I(u(n.name),1)]))),128)),$e(de.value[0])?(s(),t("small",xl,"单位:"+u($e(de.value[0])),1)):N("",!0)]),r("div",kl,[(s(!0),t(x,null,$(de.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-stack-item",{"is-active":c===W.value}]),"data-hover-value":Wa(n),title:Wa(n),"data-chart-tooltip":Tn(n)},[Da()&&we(n)>0?(s(),t("strong",$l,[I(u(ha(n))+u(H(we(n))),1),$e(n)?(s(),t("em",Ml,u($e(n)),1)):N("",!0)])):N("",!0),r("div",jl,[(s(!0),t(x,null,$(Fa(n),(Y,pr)=>(s(),t("i",{key:Y.key||Y.name,style:P({height:`${Y.percent}%`,background:Y.color,color:Y.color}),"data-chart-tooltip":Pn(n,Y)},null,12,Nl))),128))]),r("span",null,u(ea(n.name)),1)],10,wl))),128))])],2)):y.value==="peak"?(s(),t("div",{key:17,class:j(["business-peaks",{"is-dense":V.value.length>5}])},[me.value?(s(),t("small",Cl,"单位:"+u(me.value),1)):N("",!0),(s(!0),t(x,null,$(V.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-peak-item",style:P({"--peak-height":`${ze(n)}%`,"--peak-color":m(c)}),"data-hover-value":aa(n),title:aa(n),"data-chart-tooltip":X(n)},[r("strong",null,[I(u(A(n)),1),Ya(n)?(s(),t("em",Ll,u(Ya(n)),1)):N("",!0)]),a[17]||(a[17]=r("div",{class:"business-peak-stage"},[r("i")],-1)),r("span",null,u(ea(n.name)),1)],12,Sl))),128))],2)):y.value==="line"?(s(),t("div",Tl,[r("div",{class:"business-line-chart",onMousemove:Kn,onMouseleave:a[5]||(a[5]=n=>q.value=null)},[(s(),t("svg",Pl,[a[18]||(a[18]=r("path",{class:"business-line-grid",d:"M0 18H320M0 44H320M0 70H320"},null,-1)),r("polyline",{class:"business-line-area",points:Nn.value},null,8,ql),r("polyline",{class:"business-line-stroke",points:Sa.value},null,8,zl),(s(!0),t(x,null,$(te.value,(n,c)=>(s(),t("circle",{key:c,cx:n.x,cy:n.y,r:"3",class:j(["business-line-dot",{"is-active":c===Aa.value}])},null,10,Al))),128)),(s(!0),t(x,null,$(te.value,(n,c)=>(s(),t("circle",{key:`hit-${c}`,cx:n.x,cy:n.y,r:"13",class:"business-line-hit",onMouseenter:Y=>q.value=c},null,40,Fl))),128))])),r("div",{class:"business-line-hover-zones",style:P(qa.value)},[(s(!0),t(x,null,$(te.value,(n,c)=>(s(),t("i",{key:`zone-${c}`,onMouseenter:Y=>q.value=c},null,40,Vl))),128))],4),qe.value?(s(),t("div",{key:0,class:"business-line-tooltip",style:P(Sn.value)},[r("span",null,u(qe.value.item.name),1),r("strong",null,[I(u(A(qe.value.item)),1),qe.value.item.unit?(s(),t("em",Bl,u(qe.value.item.unit),1)):N("",!0)])],4)):N("",!0)],32),r("div",{class:"business-line-labels",style:P(qa.value)},[(s(!0),t(x,null,$(Pa.value,n=>(s(),t("span",{key:n.key||n.name},u(ea(n.name)),1))),128))],4)])):y.value==="balanceGaugeGrid"?(s(),t("div",{key:19,class:j(["business-balance-gauge-grid",{"is-single":be.value.length===1}])},[(s(!0),t(x,null,$(be.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-balance-gauge-card",{"is-active":c===W.value}]),style:P(Gn(n)),"data-chart-tooltip":Ga(n)},[r("div",Yl,[r("strong",null,u(fa(n)),1)]),r("div",ml,[r("div",Il,[r("strong",null,u(A(n)),1),pe(n)?(s(),t("em",Gl,u(pe(n)),1)):N("",!0)])]),r("div",Kl,u(n.name),1),n.extra?(s(),t("div",Wl,u(n.extra),1)):N("",!0)],14,Rl))),128))],2)):y.value==="gauge"?(s(),t("div",{key:20,class:j(["business-gauges",{"is-dense":Se.value.length>3}])},[(s(!0),t(x,null,$(Se.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-gauge-item",{"is-active":c===W.value,"is-safe":re(n)<=0,"is-low-rate":re(n)>0&&re(n)<5,"is-alert":re(n)>100}]),style:P({"--gauge-color":Yn(n,c),"--needle-rotate":`${Rn(n)}deg`}),"data-chart-tooltip":Ga(n)},[r("div",Ul,[(s(),t("svg",Ol,[a[19]||(a[19]=r("path",{class:"business-gauge-track",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100"},null,-1)),r("path",{class:"business-gauge-progress",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100","stroke-dasharray":`${an(n)} 100`},null,8,Hl),a[20]||(a[20]=r("path",{class:"business-gauge-glow",d:"M38 76 A38 38 0 0 1 114 76"},null,-1))])),a[21]||(a[21]=r("i",{class:"business-gauge-needle"},null,-1)),a[22]||(a[22]=r("b",{class:"business-gauge-pivot"},null,-1)),r("div",Xl,[r("strong",null,[I(u(A(n)),1),pe(n)?(s(),t("em",El,u(pe(n)),1)):N("",!0)]),r("small",null,u(fa(n)),1)])]),r("span",Jl,u(n.name),1),n.extra?(s(),t("small",Zl,u(n.extra),1)):N("",!0)],14,Dl))),128))],2)):y.value==="heat"?(s(),t("div",{key:21,class:j(["business-heat",{"is-dense":ce.value.length>6}])},[(s(!0),t(x,null,$(ce.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-heat-cell",style:P(Vn(n,c)),"data-chart-tooltip":X(n)},[a[23]||(a[23]=r("i",null,null,-1)),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),n.unit?(s(),t("em",er,u(n.unit),1)):N("",!0)])],12,Ql))),128))],2)):y.value==="split"?(s(),t("div",{key:22,class:j(["business-split",{"is-dense":Ce.value.length>8||((vn=b.panel)==null?void 0:vn.variant)==="compact"}])},[r("div",ar,[(s(!0),t(x,null,$(Ce.value,(n,c)=>(s(),t("i",{key:n.key||n.name,style:P({width:`${Wn(n)}%`,background:m(c)}),"data-chart-tooltip":Ka(n)},null,12,nr))),128))]),r("div",sr,[(s(!0),t(x,null,$(Ce.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-split-row","data-chart-tooltip":Ka(n)},[r("span",null,[r("i",{style:P({background:m(c)})},null,4),I(u(n.name),1)]),r("strong",null,u(A(n))+u(n.unit),1)],8,tr))),128))])],2)):(s(),Ue(bn,{key:23,rows:C.value,compact:""},null,8,["rows"])):(s(),t("div",fs,"暂无业务统计数据")),(s(),Ue(rs,{to:"body"},[Q.value.visible?(s(),t("div",{key:0,class:j(["business-chart-tooltip",`is-${b.visualVersion}`]),style:P(wn.value)},[r("strong",null,u(Q.value.title),1),(s(!0),t(x,null,$(Q.value.lines,n=>(s(),t("span",{key:n},u(n),1))),128))],6)):N("",!0)]))],34)}}};const lr={class:"feature-info-actions"},rr={key:0},or={class:"feature-info"},ur={key:0,class:"feature-info-state",role:"status","aria-live":"polite"},ir={key:1,class:"feature-info-state",role:"status"},cr={key:2,class:"feature-info-state",role:"status"},dr={key:0,class:"feature-table"},_r=["title"],vr={key:1,class:"feature-info-state is-inline"},kr={__name:"FeatureInfoPanel",props:{feature:{type:Object,default:null},empty:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},height:{type:Number,default:380},width:{type:Number,default:430},compactGrassland:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:["close"],setup(b,{emit:K}){const p=b,Ve=K,fe=[[["townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在乡镇"],[["village_name","cunName","cun_name","cun","c_name","cmc"],"所在村"],[["full_name"],"所在区域"],[["land_number","patch_no"],"图斑编号"],[["areaWanMu","area_wan_mu","area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area"],"图斑面积"]],L=[[["investigator"],"调查人"],[["survey_time","dc_rq","sjnf","delimitation_year"],"调查时间"],[["adjust_opinion_name"],"调整意见"],[["adjust_reason"],"调整原因"]],D=[[["pastureName","pasture_name"],"所属牧场"],[["recognizedYakCount","recognized_yak_count","yakCount","yak_count"],"牦牛数量"],[["acreage","area_mu","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"草场面积"],[["grasslandAreaMu","grassland_area_mu"],"草地面积"],[["wetlandAreaMu","wetland_area_mu"],"湿地面积"],[["otherAreaMu","other_area_mu"],"其他面积"],[["resourceFreshMuYield","resource_fresh_mu_yield"],"综合鲜草亩产"],[["resourceDryMuYield","resource_dry_mu_yield"],"综合干草亩产"],[["grasslandVegetationCover","grassland_vegetation_cover"],"草地植被盖度"],[["fullName","full_name","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在区域"]],C={"artificial-grassland":[[["plot_name","name"],"图斑名称"],[["plot_code"],"图斑编号"],[["town","town_name"],"所在乡镇"],[["plot_category"],"图斑类别"],[["data_status"],"数据状态"],[["source_type"],"资料类型"],[["data_source"],"数据来源"]],woodland:[[["dlmc","layer_class_name"],"地类名称"],...fe,[["qsdwmc"],"权属单位"],[["zldwmc"],"坐落单位"],[["lin_ban"],"林班"],[["xiao_ban"],"小班"],[["ld_qs","tdsyqs","qsxz","ownership_name","ownership"],"土地权属"],[["gjgyl_bhdj","bh_dj","protection_level_name","protection_level"],"保护等级"],[["sen_lin_lb","forest_type"],"森林类别"],[["lin_zhong","forest_category"],"林种"],[["zl_dj","quality_level_name","quality_level"],"质量等级"],[["you_shi_sz","tree_species","dominant_tree_species"],"优势树种"],[["qi_yuan","origin"],"起源"],[["ling_zu"],"龄组"],[["yu_bi_du"],"郁闭度"],[["pingjun_sg"],"平均树高"],[["mei_gq_zs"],"每公顷株数"],[["mei_gq_xj"],"每公顷蓄积"],[["huo_lm_xj"],"活立木蓄积"],[["sheng_wu_l"],"生物量"],[["tan_chu_l"],"碳储量"],[["stqwmc"],"生态区位"],[["po_du","slope"],"坡度"],[["po_wei"],"坡位"],[["tu_ceng_hd","soil_depth"],"土层厚度"],...L],grassland:[...D,[["pastureName","pasture_name"],"所属牧场"],...fe,[["land_class_name","landUseName","land_use_name","landUse","land_use"],"地类名称"],[["landType","land_type"],"资源大类"],[["resourceType","resource_type"],"资源类别"],[["grasslandCategory","grassland_category_name","grassland category","base_grass"],"草原类别"],[["basic_type_name"],"基本草原类型"],[["grassTypeName","grass_type_name","grassland_type_name","grassType","grass_type"],"草原类"],[["grassMinType","grass_min_type"],"草原型"],[["grasslandLevelName","grassland_level_name","grasslandLevel","grassland_level","level_name","level"],"草原级别"],[["degradationLevelName","degradation_level_name","degradationLevel","degradation_level"],"退化等级"],[["vegetationStructureName","vegetation_structure_name","vegetationStructure","vegetation_structure"],"植被结构"],[["vegetationCover","vegetation_cover"],"植被盖度"],[["lbmjbl"],"裸斑面积比例"],[["dominanceLevel","dominance_level"],"优势度"],[["dominantGrassSpecies","dominant_grass_species"],"优势草种"],[["functionalCategory","functional_category"],"功能类别"],[["xcYield","xc_yield"],"鲜草产量"],[["xcMuYield","xc_mu_yield","xbXcMuYield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["xbXcYield","xb_xc_yield"],"小班鲜草产量"],[["xbXcMuYield","xb_xc_mu_yield"],"小班鲜草亩产"],[["gcYield","gc_yield"],"干草产量"],[["gcMuYield","gc_mu_yield","xbGcMuYield","xb_gc_mu_yield"],"干草亩产"],[["xbGcYield","xb_gc_yield"],"小班干草产量"],[["xbGcMuYield","xb_gc_mu_yield"],"小班干草亩产"],[["elevation"],"海拔"],[["landformName","landform_name","landform"],"地貌"],[["slope"],"坡度"],[["aspect"],"坡向"],[["soilDepth","soil_depth","tu_ceng_hd"],"土层厚度"],[["soil texture"],"土壤质地"],[["sddl"],"三调地类"],[["hqlm"],"划区轮牧"],[["cdsyq"],"草地所有权"],[["cdsyq2"],"草地使用权"],[["cdjjq"],"草地经营权"],...L],wetland:[[["grass_min_type","grassland_category_name","grassland_type_name","land_class_name","land_use_name"],"湿地类型"],...fe,[["grass_type_name","grass_type"],"湿地草地型"],[["grassland_level_name","grassland_level","level_name","level"],"湿地级别"],[["vegetation_structure_name","vegetation_structure"],"植被结构"],[["vegetation_cover"],"植被盖度"],[["dominant_grass_species"],"优势草种"],[["functional_category"],"功能类别"],[["xc_yield","xb_xc_yield"],"鲜草产量"],[["xc_mu_yield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["edible_xc_yield"],"可食鲜草产量"],[["edible_xc_mu_yield"],"可食鲜草亩产"],[["gc_yield","xb_gc_yield"],"干草产量"],[["elevation"],"海拔"],[["landform_name","landform"],"地貌"],[["soil_depth","tu_ceng_hd"],"土层厚度"],...L],ecological:[[["type"],"管控分区"],[["project_name","projectName","name"],"项目名称"],[["project_category","projectCategory"],"项目类型"],[["company"],"实施单位"],[["leader"],"负责人"],[["project_status","projectStatus","status"],"项目状态"],[["full_name","fullName"],"所在区域"],[["address"],"项目地址"],[["measure_type"],"措施类型"],[["feature_role"],"要素类型"],[["township"],"涉及乡镇"],[["year"],"建设年份"],[["progress_count","progressCount"],"进度记录"],[["totalAcreage"],"总面积"],[["cdAcreage"],"草地面积"],[["sdAcreage"],"湿地面积"],[["area_mu"],"治理面积"],[["length_meter"],"工程长度"],[["cdScl"],"草地生产力"],[["sdScl"],"湿地生产力"],[["geometry_type"],"几何类型"]]},G={land_type:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},landType:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},vegetation_structure:{1:"草本型"},landform:{2:"平原",5:"中山",6:"高山"},land_use:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},sddl:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},ld_qs:{10:"集体林地",20:"国有或其他"},qsxz:{10:"集体林地",20:"国有或其他"},tdsyqs:{10:"集体林地",20:"国有或其他"},gjgyl_bhdj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},bh_dj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},zl_dj:{2:"二级质量",3:"三级质量",4:"四级质量",5:"五级质量"},po_wei:{1:"脊部",2:"上坡",3:"中坡",4:"下坡",5:"谷地",6:"平地"}},Be=new Set(["lin_zhong","sen_lin_lb","you_shi_sz","qi_yuan","ling_zu","po_xiang","tu_rang_lx","ownership","ownership_name","protection_level","forest_category","forest_type","quality_level","origin","tree_species","dominant_tree_species","base_grass","degradation_level","land_class","grass_type"]),Re={xiang:"所在乡镇",xzqdm:"所在乡镇",xzqmc:"所在乡镇",town_code:"所在乡镇",area_code:"所在乡镇",areaCode:"所在乡镇",cun:"所在村",cmc:"所在村",c_name:"所在村",acreage:"图斑面积",mj:"图斑面积",xbmj:"小班面积",tbdlmj:"图斑地类面积",geomj:"图斑面积",tbmj:"图斑面积",shape_area:"图斑面积",area_mu:"图斑面积",pastureName:"所属牧场",pasture_name:"所属牧场",pastureAcreage:"牧场面积",pasture_acreage:"牧场面积",relationAcreage:"关系面积",relation_acreage:"关系面积",pastureOverlapAcreage:"重叠面积",pasture_overlap_acreage:"重叠面积",relatedPastureCount:"关联牧场数",related_pasture_count:"关联牧场数",relatedPastureNames:"关联牧场",related_pasture_names:"关联牧场",yakCount:"牦牛数量",yak_count:"牦牛数量",recognizedYakCount:"牦牛数量",recognized_yak_count:"牦牛数量",grasslandAreaMu:"草地面积",grassland_area_mu:"草地面积",wetlandAreaMu:"湿地面积",wetland_area_mu:"湿地面积",otherAreaMu:"其他面积",other_area_mu:"其他面积",grasslandAreaPercent:"草地占比",grassland_area_percent:"草地占比",wetlandAreaPercent:"湿地占比",wetland_area_percent:"湿地占比",otherAreaPercent:"其他占比",other_area_percent:"其他占比",resourceFreshMuYield:"综合鲜草亩产",resource_fresh_mu_yield:"综合鲜草亩产",resourceDryMuYield:"综合干草亩产",resource_dry_mu_yield:"综合干草亩产",resourceFreshYieldJin:"鲜草产量",resource_fresh_yield_jin:"鲜草产量",resourceDryYieldJin:"干草产量",resource_dry_yield_jin:"干草产量",grasslandVegetationCover:"草地植被盖度",grassland_vegetation_cover:"草地植被盖度",grass_min_type:"草原型",grassMinType:"草原型",grass_type:"草原类",grassType:"草原类",grass_type_name:"草原类",grassTypeName:"草原类",grassland_type_name:"草原类",patch_no:"图斑编号",land_number:"图斑编号",grassland_level:"草原级别",grasslandLevel:"草原级别",grassland_level_name:"草原级别",grasslandLevelName:"草原级别",level:"等级",level_name:"等级",land_class_name:"地类名称",land_use_name:"地类名称",landUseName:"地类名称",landUse:"地类名称",basic_type_name:"草原类型",grassland_category_name:"草原类别",grasslandCategory:"草原类别",degradation_level:"退化等级",degradationLevel:"退化等级",degradation_level_name:"退化等级",degradationLevelName:"退化等级",vegetation_structure:"植被结构",vegetationStructure:"植被结构",vegetation_structure_name:"植被结构",vegetationStructureName:"植被结构",xc_yield:"鲜草产量",xcYield:"鲜草产量",gc_yield:"干草产量",gcYield:"干草产量",xc_mu_yield:"鲜草亩产",xcMuYield:"鲜草亩产",gc_mu_yield:"干草亩产",gcMuYield:"干草亩产",mu_yield:"亩产",edible_xc_yield:"可食鲜草产量",edible_xc_mu_yield:"可食鲜草亩产",dlmc:"地类名称",qsdwmc:"权属单位",zldwmc:"坐落单位",lin_ban:"林班",xiao_ban:"小班",ld_qs:"土地权属",tdsyqs:"土地权属",qsxz:"土地权属",gjgyl_bhdj:"保护等级",bh_dj:"保护等级",sen_lin_lb:"森林类别",lin_zhong:"林种",zl_dj:"质量等级",you_shi_sz:"优势树种",qi_yuan:"起源",cdsyq:"草地所有权",cdsyq2:"草地使用权",cdjjq:"草地经营权",resource_type:"资源类型","grassland category":"草原类别",dominant_grass_species:"优势草种",functional_category:"功能类别",functionalCategory:"功能类别",vegetation_cover:"植被盖度",vegetationCover:"植被盖度",xb_xc_yield:"小班鲜草产量",xbXcYield:"小班鲜草产量",xb_gc_yield:"小班干草产量",xbGcYield:"小班干草产量",base_grass:"基本草原",hqlm:"划区轮牧",elevation:"海拔",soil_depth:"土层厚度","soil texture":"土壤质地",aspect:"坡向",slope:"坡度",landform:"地貌",landform_name:"地貌",sddl:"三调地类",dominance_level:"优势度",investigator:"调查人",survey_time:"调查时间",land_type:"土地类型",landType:"土地类型",status:"状态",type:"类型",xb_gc_mu_yield:"干草亩产",xbGcMuYield:"干草亩产",xb_xc_mu_yield:"鲜草亩产",xbXcMuYield:"鲜草亩产",grass_yield:"草地产量",grassYield:"草地产量",full_name:"所在区域",fullName:"所在区域",gyl_bhlx:"公益林保护类型",ling_zu:"龄组",yu_bi_du:"郁闭度",pingjun_xj:"平均胸径",mei_gq_zs:"每公顷株数",mei_gq_xj:"每公顷蓄积",stqwmc:"生态区位",lyfq:"林业分区",qykz:"区域控制",po_wei:"坡位",tu_rang_zd:"土壤质地",zzsxmc:"主导属性",lin_chang:"林场",di_mao:"地貌",jt_qw:"交通区位",zbfglx:"植被覆盖类型",disaster_c:"灾害类型",dispe:"病虫害",pingjun_sg:"平均树高",huo_lm_xj:"活立木蓄积",sheng_wu_l:"生物量",tan_chu_l:"碳储量",g_cheng_lb:"工程类别",shi_quan_d:"事权等级",sf_tbq:"是否特别区",td_th_lx:"土地退化类型",project_name:"项目名称",projectName:"项目名称",project_category:"项目类型",projectCategory:"项目类型",company:"实施单位",leader:"负责人",project_status:"项目状态",projectStatus:"项目状态",address:"项目地址",conclusion:"工程结论",progress_count:"进度记录",progressCount:"进度记录",measure_type:"措施类型",measureType:"措施类型",feature_role:"要素类型",featureRole:"要素类型",township:"涉及乡镇",year:"建设年份",length_meter:"工程长度",lengthMeter:"工程长度",geometry_type:"几何类型",geometryType:"几何类型",totalAcreage:"总面积",cdAcreage:"草地面积",sdAcreage:"湿地面积",cdScl:"草地生产力",sdScl:"湿地生产力"},Z=new Set(Object.keys(Re)),Ce=new Set(["pingjun_sg","pingjun_xj","mei_gq_zs","mei_gq_xj","huo_lm_xj","sheng_wu_l","tan_chu_l","yu_bi_du","grass_yield","xb_xc_yield","xb_xc_mu_yield","xc_mu_yield","xb_gc_yield","xb_gc_mu_yield","gc_mu_yield"]),Oe=new Set(["xb_xc_yield","xb_gc_yield","grass_yield","gc_yield","xc_yield","yield","output","remark1","remark2","remark3","remark4","remark5","remarks"]),V=new Set(["full_name","fullName","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town","town_code","areaCode","area_code"]),Ye=[...is].sort((o,i)=>i.length-o.length),ae=v(()=>{var o;return((o=p.feature)==null?void 0:o.properties)||{}}),me=v(()=>{var o,i,d;return((i=(o=p.feature)==null?void 0:o.feature)==null?void 0:i.geometry)||((d=p.feature)==null?void 0:d.geometry)||null}),oe=v(()=>{var d,w;const o=String(((w=(d=p.feature)==null?void 0:d.layer)==null?void 0:w.key)||"").toLowerCase(),i=ae.value;return o.includes("artificial-grassland")||String(i.stageKey||"")==="artificial-grassland"}),ce=v(()=>{var S,f,q,B,U;const o=String(((S=p.feature)==null?void 0:S.id)||"").toLowerCase(),i=String(((q=(f=p.feature)==null?void 0:f.layer)==null?void 0:q.key)||"").toLowerCase(),d=String(((U=(B=p.feature)==null?void 0:B.layer)==null?void 0:U.layerName)||"").toLowerCase(),w=`${i} ${d}`,k=ae.value;return oe.value?"artificial-grassland":w.includes("national-park")||w.includes("restoration")||k.project_name||k.project_category||k.totalAcreage?"ecological":k.dlmc||o.includes("woodland")||o.includes("t_woodland")||w.includes("woodland")?"woodland":w.includes("wetland")||w.includes("shidi")||o.includes("shidi")||k.land_type==="shidi"||k.landType==="shidi"||k.land_type==="湿地"||k.landType==="湿地"||k.land_type===2||k.landType===2||k.landType==="2"?"wetland":w.includes("grassland")||w.includes("caodi")||k.grassland_category_name||k.grasslandCategory||k.basic_type_name||o.includes("caodi")||k.land_type==="caodi"||k.landType==="caodi"||k.land_type===1||k.landType===1||k.landType==="1"?"grassland":"woodland"}),Se=v(()=>{const o=[],i=new Set,d=ce.value==="grassland",w=(d||ce.value==="wetland")&&p.compactGrassland;(w?D:C[ce.value]||C.woodland).forEach(([f,q])=>{const B=ia(ae.value,f,q,i);B&&!o.some(U=>U.label===B.label)&&(o.push(B),i.add(B.sourceKey))});const S=d?"草场面积":"图斑面积";return!oe.value&&!o.some(f=>f.label===S||f.label==="图斑面积")&&de(o,i,S,Ke(me.value),"geometry-area"),w?o.slice(0,10):(Object.entries(ae.value).forEach(([f,q])=>{if(i.has(f)||Ee(f,q))return;const B=xe(f,q);O(B)&&(o.some(U=>U.value===B||U.label===(Re[f]||Qe(f)))||(o.push({key:`fallback-${f}`,sourceKey:f,label:Re[f]||Qe(f),value:B}),i.add(f)))}),o)}),be=v(()=>Se.value.map((o,i)=>Fe(Ae({},o),{displayOrder:ne(o,i)})).sort((o,i)=>o.displayOrder-i.displayOrder));function ne(o,i){const d=(o==null?void 0:o.label)||"",w=String((o==null?void 0:o.sourceKey)||"").toLowerCase();return["所属牧场","牦牛数量","草场面积","草地面积","湿地面积","其他面积","综合鲜草亩产","综合干草亩产","草地植被盖度","所在区域","牧场面积","关系面积","重叠面积","关联牧场数","关联牧场"].includes(d)||["图斑名称","所在乡镇","所在村","所在区域","图斑编号","图斑类别","数据状态","资料类型","数据来源","图斑面积","小班面积","图斑地类面积","地类名称","湿地类型"].includes(d)?i:["基本草原类型","草原类型","草原类","草原型","湿地草地型","草原级别","湿地级别","退化等级","功能类别","保护等级","森林类别","林种","质量等级","优势树种","起源","龄组"].includes(d)?100+i:d.includes("产量")||d.includes("亩产")||d.includes("植被")||d.includes("优势草种")||d.includes("优势度")||d.includes("海拔")||d.includes("地貌")||d.includes("坡")||d.includes("土壤")||d.includes("郁闭度")||d.includes("树高")||d.includes("蓄积")||d.includes("生物量")||d.includes("碳储量")?200+i:d.includes("权属")||d.includes("所有权")||d.includes("使用权")||d.includes("经营权")||d.includes("调查")||d.includes("调整")||d.includes("划区")||d.includes("单位")||w.includes("owner")||w.includes("qsdw")||w.includes("zldw")?300+i:150+i}function de(o,i,d,w,k){!O(w)||o.some(S=>S.label===d||S.value===w)||(o.push({key:`static-${k}`,sourceKey:k,label:d,value:w}),i.add(k))}function ia(o,i,d,w=new Set){for(const k of i)if(!(w.has(k)||Te(k))&&O(o==null?void 0:o[k])){const S=xe(k,o[k]);if(!O(S))continue;return{key:`${d}-${k}`,sourceKey:k,label:d,value:S}}return null}function O(o){return o!=null&&o!==""&&o!==" "&&o!=="null"&&o!=="undefined"}function xe(o,i){var k;if(!O(i))return"";if((k=G[o])!=null&&k[String(i)])return G[o][String(i)];if(V.has(o))return ca(o,i);if(["cun","village_code"].includes(o)&&_e(i))return"";if(["grassland_level","grasslandLevel","level"].includes(o)&&Xe(i))return ce.value==="wetland"?`${Number(i)}级湿地`:`${Number(i)}级草原`;if(Be.has(o)&&_e(i)||ke(o,i))return"";if(Ge(o))return se(i);if(typeof i=="number"||/^-?\d+(\.\d+)?$/.test(String(i))){const S=Number(i);if(S===0&&Ce.has(o))return"";const f=Number.isInteger(S)?`${S}`:`${Number(S.toFixed(2))}`;if(["xbmj","tbdlmj","geomj","area_square_meter"].includes(o))return`${Ie(S/666.6667)} 亩`;if(["grasslandAreaMu","grassland_area_mu","wetlandAreaMu","wetland_area_mu","otherAreaMu","other_area_mu"].includes(o)){const B=(o.startsWith("grassland")?["grasslandAreaPercent","grassland_area_percent"]:o.startsWith("wetland")?["wetlandAreaPercent","wetland_area_percent"]:["otherAreaPercent","other_area_percent"]).map(Q=>{var ue;return(ue=ae.value)==null?void 0:ue[Q]}).find(O),U=O(B)&&Number.isFinite(Number(B))?`(${Number(Number(B).toFixed(2))}%)`:"";return`${f} 亩${U}`}return["acreage","mj","area_mu","pastureAcreage","pasture_acreage","relationAcreage","relation_acreage","pastureOverlapAcreage","pasture_overlap_acreage"].includes(o)?`${f} 亩`:["recognizedYakCount","recognized_yak_count","yakCount","yak_count"].includes(o)?`${f} 头`:["relatedPastureCount","related_pasture_count"].includes(o)?`${f} 个`:["length_meter"].includes(o)?`${f} 米`:["totalAcreage","cdAcreage","sdAcreage"].includes(o)?`${f} 万亩`:["cdScl","sdScl"].includes(o)?`${f} 万吨`:["areaWanMu","area_wan_mu"].includes(o)?`${f} 万亩`:["xc_yield","xcYield","xb_xc_yield","xbXcYield","gc_yield","gcYield","xb_gc_yield","xbGcYield","edible_xc_yield","grass_yield","grassYield","resourceFreshYieldJin","resource_fresh_yield_jin","resourceDryYieldJin","resource_dry_yield_jin"].includes(o)?`${f} 斤`:["mu_yield","xc_mu_yield","xcMuYield","gc_mu_yield","gcMuYield","xb_xc_mu_yield","xbXcMuYield","xb_gc_mu_yield","xbGcMuYield","edible_xc_mu_yield","resourceFreshMuYield","resource_fresh_mu_yield","resourceDryMuYield","resource_dry_mu_yield"].includes(o)?`${f} 斤/亩`:["vegetation_cover","vegetationCover","grasslandVegetationCover","grassland_vegetation_cover","lbmjbl","yu_bi_du"].includes(o)?`${f}%`:["elevation","tu_ceng_hd","soilDepth","soil_depth","pingjun_sg"].includes(o)?`${f} 米`:["po_du","slope"].includes(o)?`${f}°`:f}const w=String(i);return ce.value==="wetland"&&["grassland_level","grasslandLevel","level"].includes(o)?w.replace(/草原/g,"湿地"):w}function ca(o,i){if(["xiang","xzqdm","town_code","area_code","areaCode"].includes(o)){const d=He(i);if(d)return d}return Le(i)}function Le(o){const i=String(o||"").trim();if(!i)return"";const d=i.replace(/\s+/g,""),w=fn(d);if(w)return w;const k=Ye.find(q=>d.includes(q));if(k)return d.slice(d.indexOf(k));const S=d.indexOf("红原县");if(S>=0)return d.slice(S+3)||d;const f=d.match(/县(.+)$/);return(f==null?void 0:f[1])||i}function He(o){const i=String(o||"").trim();if(!i)return"";const d=i.replace(/\D/g,""),w=fn(d||i);return w||(_e(i)?"":i)}function _e(o){return/^[0-9A-Za-z_-]{1,12}$/.test(String(o).trim())}function Xe(o){return/^-?\d+(\.\d+)?$/.test(String(o).trim())}function Ie(o){return Number.isInteger(o)?`${o}`:`${Number(o.toFixed(2))}`}function Ge(o){return["survey_time","dc_rq","create_time","update_time"].includes(String(o))}function se(o){const i=String(o);return/^\d{4}-\d{2}-\d{2}/.test(i)?i.slice(0,10):i}function Te(o){const i=String(o).toLowerCase();return["geom","wkt","geometry","the_geom","raw_properties"].includes(i)||["bsm","ysdm","gid","id","objectid","object_id","fid","key_uid"].includes(i)||["shape_leng","shape_length","length","perimeter"].includes(i)?!0:["xzqdm","area_code","town_code","patch_no","land_number","plot_code"].includes(i)?!1:["di_lei","qykz","stqw","lyfq","tbybh","patch_code"].includes(i)||i.endsWith("_code")||i.endsWith("dm")||i.endsWith("_id")||["create_by","create_time","update_by","update_time"].includes(i)?!0:i.includes("geom")||i.includes("boundary")||i.includes("wkb")}function Ee(o,i){var w;if(Te(o)||!O(i))return!0;const d=String(o).toLowerCase();return!!(Oe.has(d)||d.includes("number")||d.includes("patch_no")||!Z.has(o)||_e(i)&&!((w=G[o])!=null&&w[String(i)])&&!["xiang","xzqdm","town_code","area_code","cun","land_type","grassland_level","level","gjgyl_bhdj","bh_dj","ld_qs","qsxz","tdsyqs","zl_dj"].includes(o))}function ke(o,i){var d;return!_e(i)||(d=G[o])!=null&&d[String(i)]?!1:["resource_type","grassland category","functional_category","aspect","soil_depth","soil texture","cdsyq","cdsyq2","cdjjq"].includes(o)}function Ke(o){const i=da(o);if(!i)return"";const d=i/666.6667;return d>=1e4?`${Ie(d/1e4)} 万亩`:`${Ie(d)} 亩`}function da(o){return o!=null&&o.coordinates?o.type==="Polygon"?Je(o.coordinates):o.type==="MultiPolygon"?o.coordinates.reduce((i,d)=>i+Je(d),0):0:0}function Je(o=[]){if(!o.length)return 0;const[i,...d]=o,w=Math.abs(Ze(i)),k=d.reduce((S,f)=>S+Math.abs(Ze(f)),0);return Math.max(0,w-k)}function Ze(o=[]){if(o.length<3)return 0;const i=o.reduce((S,f)=>S+Number((f==null?void 0:f[1])||0),0)/o.length,d=111320,w=d*Math.cos(i*Math.PI/180);let k=0;for(let S=0;Si.toUpperCase())}return(o,i)=>(s(),Ue(us,{class:"feature-info-card",title:"图斑详情",width:b.width,height:b.height},{extra:ja(()=>[r("div",lr,[b.feature&&!b.loading?(s(),t("span",rr,"已选图斑")):N("",!0),b.closable?(s(),t("button",{key:1,type:"button","aria-label":"关闭图斑详情",title:"关闭图斑详情",onClick:i[0]||(i[0]=J(d=>Ve("close"),["stop"]))}," 关闭 ")):N("",!0)])]),default:ja(()=>[r("div",or,[b.loading?(s(),t("div",ur,"正在查询图斑信息")):b.empty?(s(),t("div",ir,"当前点击位置未查询到图斑")):b.feature?(s(),t(x,{key:3},[be.value.length?(s(),t("div",dr,[(s(!0),t(x,null,$(be.value,d=>(s(),t("div",{key:d.key,class:"feature-row"},[r("span",null,u(d.label),1),r("strong",{title:d.value},u(d.value),9,_r)]))),128))])):(s(),t("div",vr,"当前图斑暂无可展示的业务字段"))],64)):(s(),t("div",cr,"点击地图图层查看图斑/要素信息"))])]),_:1},8,["width","height"]))}};export{kr as _,xr as a}; diff --git a/docs/assets/FeatureInfoPanel-84703f43-balabala-1784043664472.css b/docs/assets/FeatureInfoPanel-84703f43-balabala-1784043664472.css new file mode 100644 index 0000000..0161775 --- /dev/null +++ b/docs/assets/FeatureInfoPanel-84703f43-balabala-1784043664472.css @@ -0,0 +1 @@ +.business-stat-list{height:100%;padding:14px 16px;box-sizing:border-box;overflow-y:auto}.business-stat-list::-webkit-scrollbar{width:3px}.business-stat-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-stat-list.is-compact{padding:6px 14px}.business-stat-list.is-compact .business-stat-row{height:30px;gap:8px;grid-template-columns:22px minmax(0,1fr) 104px}.business-stat-list.is-compact .business-stat-rank{width:19px;height:19px;font-size:11px;line-height:17px}.business-stat-list.is-compact .business-stat-name{font-size:12px}.business-stat-list.is-compact .business-stat-bar{height:4px;margin-top:5px}.business-stat-list.is-compact .business-stat-value strong{font-size:15px}.business-stat-list.is-compact .business-stat-value em,.business-stat-list.is-compact .business-stat-value span{font-size:10px}.business-stat-list.is-compact.is-dense{padding:4px 12px 6px}.business-stat-list.is-compact.is-dense .business-stat-row{height:20px;gap:6px;grid-template-columns:19px minmax(0,1fr) 92px}.business-stat-list.is-compact.is-dense .business-stat-rank{width:16px;height:16px;font-size:10px;line-height:14px}.business-stat-list.is-compact.is-dense .business-stat-name{font-size:11px;line-height:13px}.business-stat-list.is-compact.is-dense .business-stat-bar{height:3px;margin-top:2px}.business-stat-list.is-compact.is-dense .business-stat-value strong{font-size:13px;line-height:15px}.business-stat-list.is-compact.is-dense .business-stat-value em{font-size:10px}.business-stat-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#e0faffd1;font-size:14px}.business-stat-row{display:grid;grid-template-columns:28px minmax(0,1fr) 96px;align-items:center;gap:10px;height:38px;border-bottom:1px solid rgba(48,220,255,.18)}.business-stat-rank{width:22px;height:22px;border:1px solid rgba(48,220,255,.58);background:rgba(48,220,255,.18);color:#7ff7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:20px;text-align:center;box-shadow:0 0 4px #30dcff2e}.business-stat-main{min-width:0}.business-stat-name{color:#ecfcfff0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-stat-bar{height:5px;margin-top:7px;background:rgba(48,220,255,.14);overflow:hidden;box-shadow:inset 0 0 0 1px #30dcff0f}.business-stat-bar span{display:block;height:100%;background:linear-gradient(90deg,#14f1b2,#30dcff);box-shadow:0 0 6px #30dcff5c}.business-stat-value{min-width:0;text-align:right}.business-stat-value strong{color:#38f8ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:700;text-shadow:0 0 4px rgba(48,220,255,.32)}.business-stat-value em{margin-left:3px;color:#eefdffb8;font-size:11px;font-style:normal}.business-stat-value span{display:block;margin-top:2px;color:#eefdffad;font-size:10px;line-height:12px;white-space:normal}.business-stat-list,.business-stat-list span,.business-stat-list strong,.business-stat-list em,.business-stat-name,.business-stat-rank,.business-stat-empty{color:#fff!important;text-shadow:none!important}.business-panel{width:100%;min-width:0;height:100%;box-sizing:border-box;overflow:hidden}.business-chart-tooltip{position:fixed;z-index:9999;min-width:148px;max-width:220px;padding:8px 10px;pointer-events:none;color:#e5fcffe6;border:1px solid rgba(48,220,255,.44);background:linear-gradient(135deg,rgba(6,33,49,.96),rgba(2,18,30,.92)),radial-gradient(circle at 12% 0%,rgba(36,246,196,.22),transparent 54%);box-shadow:inset 0 0 12px #30dcff14,0 0 10px #30dcff24;backdrop-filter:blur(3px)}.business-chart-tooltip strong{display:block;max-width:100%;color:#fff;font-size:13px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-chart-tooltip span{display:block;margin-top:4px;color:#dcf8ffc7;font-size:12px;line-height:15px;white-space:nowrap}.business-panel-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#ffffff85;font-size:14px}@keyframes businessDataPulse{0%,to{filter:brightness(1);box-shadow:0 0 5px #24f6c414}50%{filter:brightness(1.12);box-shadow:0 0 9px #24f6c429}}@keyframes businessDataSweep{0%{transform:translate(-130%)}to{transform:translate(130%)}}@keyframes businessColumnReload{0%,8%{opacity:.46;transform:scaleY(.22);filter:saturate(.82) brightness(.72);box-shadow:0 0 4px #30dcff14}20%{opacity:.82;transform:scaleY(.72);filter:saturate(1.08) brightness(1.02);box-shadow:0 0 7px #30dcff29}34%{opacity:1;transform:scaleY(1);filter:saturate(1.12) brightness(1.06);box-shadow:0 0 9px #30dcff38}54%{opacity:1;transform:scaleY(1);filter:saturate(1.02) brightness(1.02);box-shadow:0 0 7px #30dcff29}to{opacity:.74;transform:scaleY(.9);filter:saturate(.96) brightness(.92);box-shadow:0 0 5px #30dcff1a}}@keyframes businessColumnReloadCap{0%,16%{opacity:0;transform:skew(-36deg) translateY(9px)}30%{opacity:.9;transform:skew(-36deg) translateY(0)}48%,to{opacity:0;transform:skew(-36deg) translateY(-9px)}}@keyframes businessLineFlow{to{stroke-dashoffset:-28}}@keyframes businessDotPulse{0%,to{r:3;opacity:.82}50%{r:4.8;opacity:1}}@keyframes businessActiveDotPulse{0%,to{r:5.2}50%{r:7}}.business-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;padding:8px 14px 9px;box-sizing:border-box}.business-metric-item{min-width:0;padding:8px 10px;background:linear-gradient(135deg,rgba(22,90,108,.62),rgba(5,26,40,.68));border:1px solid rgba(48,220,255,.18)}.business-metric-item span{display:block;color:#ffffff9e;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-metric-item strong{display:inline-block;margin-top:5px;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:22px;line-height:24px}.business-metric-item em{margin-left:4px;color:#ffffff94;font-size:11px;font-style:normal}.business-icon-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:8px 10px;height:100%;padding:8px 14px 9px;box-sizing:border-box;overflow:hidden}.business-icon-metric-item{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:8px;min-width:0;min-height:0;padding:7px 8px;box-sizing:border-box;overflow:hidden;border:1px solid rgba(48,220,255,.16);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02)),linear-gradient(180deg,rgba(8,41,56,.72),rgba(4,20,32,.66))}.business-icon-metric-item:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:#24f6c4;box-shadow:0 0 10px #24f6c4b3}.business-icon-metric-item.is-tone-1:before{background:#32dcff;box-shadow:0 0 10px #32dcffb3}.business-icon-metric-item.is-tone-2:before{background:rgba(48,220,255,.86);box-shadow:0 0 8px #30dcff3d}.business-icon-metric-item.is-tone-3:before{background:rgba(25,255,198,.74);box-shadow:0 0 8px #19ffc633}.business-icon-metric-mark{position:relative;display:block;width:42px;height:42px;border:1px solid rgba(48,220,255,.4);border-radius:8px;background:radial-gradient(circle at 50% 42%,rgba(36,246,196,.25),rgba(36,246,196,.04) 64%),linear-gradient(135deg,rgba(48,220,255,.22),rgba(4,24,36,.28));box-shadow:inset 0 0 16px #30dcff29,0 0 12px #30dcff24;overflow:hidden}.business-icon-metric-mark:before,.business-icon-metric-mark:after,.business-icon-metric-mark span,.business-icon-metric-mark span:before,.business-icon-metric-mark span:after{content:"";position:absolute;box-sizing:border-box}.business-icon-metric-mark.is-yield span{left:12px;right:12px;bottom:9px;height:22px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#7dfdff,#20d8ff 54%,rgba(36,246,196,.42));box-shadow:0 0 10px #20d8ff94}.business-icon-metric-mark.is-yield:before,.business-icon-metric-mark.is-yield:after{bottom:9px;width:6px;height:16px;border-radius:6px 6px 3px 3px;background:rgba(126,226,105,.72)}.business-icon-metric-mark.is-yield:before{left:7px}.business-icon-metric-mark.is-yield:after{right:7px}.business-icon-metric-mark.is-leaf span{left:10px;top:10px;width:22px;height:22px;border-radius:22px 4px;background:linear-gradient(135deg,rgba(139,247,255,.92),rgba(48,220,255,.72));transform:rotate(-24deg);box-shadow:0 0 12px #24f6c485}.business-icon-metric-mark.is-leaf span:after{left:10px;top:3px;width:2px;height:18px;border-radius:2px;background:rgba(3,45,43,.5);transform:rotate(44deg)}.business-icon-metric-mark.is-rate:before{left:9px;top:10px;width:24px;height:24px;border:4px solid rgba(50,220,255,.32);border-top-color:#ffffffe0;border-right-color:#24f6c4;border-radius:50%;transform:rotate(38deg)}.business-icon-metric-mark.is-rate span{left:20px;top:20px;width:12px;height:3px;border-radius:3px;background:#ffffff;transform:rotate(-30deg);transform-origin:left center;box-shadow:0 0 8px #fff9}.business-icon-metric-mark.is-risk:before{left:10px;top:9px;width:22px;height:22px;border-left:3px solid rgba(48,220,255,.84);border-bottom:3px solid rgba(48,220,255,.84);transform:rotate(-45deg);box-shadow:-4px 4px 8px #30dcff2e}.business-icon-metric-mark.is-risk span{left:20px;top:13px;width:3px;height:16px;border-radius:3px;background:rgba(255,255,255,.9);box-shadow:0 0 6px #30dcff38}.business-icon-metric-mark.is-town span,.business-icon-metric-mark.is-town span:before,.business-icon-metric-mark.is-town span:after,.business-icon-metric-mark.is-town:before{width:9px;height:9px;border-radius:2px;background:#32dcff;box-shadow:0 0 9px #32dcff80}.business-icon-metric-mark.is-town span{left:10px;top:10px}.business-icon-metric-mark.is-town span:before{left:13px;top:0}.business-icon-metric-mark.is-town span:after{left:0;top:13px}.business-icon-metric-mark.is-town:before{left:23px;top:23px;border:2px solid #24f6c4;background:transparent}.business-icon-metric-mark.is-area:before{left:8px;top:13px;width:26px;height:16px;border:2px solid #24f6c4;transform:skew(-18deg);background:linear-gradient(135deg,rgba(36,246,196,.34),rgba(50,220,255,.06))}.business-icon-metric-mark.is-area span{left:13px;top:19px;width:16px;height:2px;background:#32dcff;box-shadow:0 5px #32dcffb3}.business-icon-metric-mark.is-stack span,.business-icon-metric-mark.is-stack span:before,.business-icon-metric-mark.is-stack span:after{left:10px;width:22px;height:5px;border-radius:5px;background:linear-gradient(90deg,#32dcff,#24f6c4);box-shadow:0 0 9px #24f6c457}.business-icon-metric-mark.is-stack span{top:12px}.business-icon-metric-mark.is-stack span:before{top:8px}.business-icon-metric-mark.is-stack span:after{top:16px;background:linear-gradient(90deg,rgba(139,247,255,.9),rgba(48,220,255,.7))}.business-icon-metric-copy{min-width:0}.business-icon-metric-copy span{display:block;min-width:0;color:#dcf8ffc2;font-size:12px;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-icon-metric-copy strong{display:block;margin-top:3px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;line-height:22px;font-weight:800;text-shadow:0 0 14px rgba(48,220,255,.42);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.business-icon-metric-copy strong em{margin-left:3px;color:#ffffff94;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-spotlight{display:grid;grid-template-columns:142px minmax(0,1fr);gap:12px;height:100%;padding:10px 14px;box-sizing:border-box;overflow:hidden}.business-spotlight-main{position:relative;min-width:0;padding:13px 10px 10px;border:1px solid rgba(48,220,255,.22);background:radial-gradient(circle at 50% 38%,rgba(36,246,196,.26),rgba(36,246,196,.03) 62%),linear-gradient(180deg,rgba(48,220,255,.12),rgba(4,22,34,.36));text-align:center}.business-spotlight-main:before,.business-spotlight-main:after{content:"";position:absolute;left:18px;right:18px;height:1px;background:linear-gradient(90deg,rgba(48,220,255,0),rgba(48,220,255,.8),rgba(48,220,255,0))}.business-spotlight-main:before{top:8px}.business-spotlight-main:after{bottom:8px}.business-spotlight-main span,.business-spotlight-main small{display:block;overflow:hidden;color:#d2f5ffb8;font-size:12px;line-height:16px;white-space:nowrap;text-overflow:ellipsis}.business-spotlight-main strong{display:block;margin:10px 0 6px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:30px;line-height:32px;font-weight:800;text-shadow:0 0 18px rgba(48,220,255,.48);white-space:nowrap}.business-spotlight-main strong em{margin-left:4px;color:#ffffffa3;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:11px;font-style:normal;font-weight:500}.business-spotlight-main small{color:#c9fbffd1}.business-spotlight-side{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;min-width:0}.business-spotlight-chip{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-areas:"dot name" "dot value" "dot note";align-content:center;gap:1px 8px;min-width:0;padding:8px 10px;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.09),rgba(48,220,255,.02));box-sizing:border-box}.business-spotlight-chip i{grid-area:dot;align-self:center;width:8px;height:28px;border-left:3px solid #24f6c4}.business-spotlight-chip span,.business-spotlight-chip small{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.business-spotlight-chip span{grid-area:name;color:#ffffffb3;font-size:11px;line-height:14px}.business-spotlight-chip strong{grid-area:value;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:20px;white-space:nowrap}.business-spotlight-chip strong em{margin-left:3px;color:#ffffff8f;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-spotlight-chip small{grid-area:note;color:#c9fbffb8;font-size:10px;line-height:12px}.business-donut{display:grid;grid-template-columns:136px minmax(0,1fr);align-items:stretch;gap:8px;height:100%;padding:7px 13px 8px 14px;box-sizing:border-box}.business-donut.is-dense{grid-template-columns:126px minmax(0,1fr);padding:6px 12px 7px}.business-donut.is-dense .business-donut-visual{width:126px;height:120px}.business-donut.is-dense .business-donut-legend{justify-content:flex-start;gap:3px}.business-donut.is-dense .business-donut-row{min-height:20px;grid-template-columns:12px minmax(0,1fr) 52px 28px;gap:5px}.business-donut.is-dense .business-donut-row span{font-size:11px;line-height:13px}.business-donut.is-dense .business-donut-row strong{font-size:13px;line-height:15px}.business-donut.is-dense .business-donut-row em{font-size:10px}.business-donut.is-variant-ring{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:11px;padding:8px 13px 8px 15px}.business-donut.is-variant-ring .business-donut-legend{justify-content:stretch;gap:6px}.business-donut.is-variant-ring .business-donut-row{flex:1 1 0;grid-template-columns:12px minmax(0,1fr) max-content max-content;gap:5px;min-height:22px;padding:0 1px}.business-donut.is-variant-ring .business-donut-row i{width:8px;height:8px;border-width:2px;background:rgba(5,28,42,.86)}.business-donut.is-variant-ring .business-donut-row strong{font-size:16px;line-height:18px}.business-donut.is-variant-ring.is-dense{grid-template-columns:148px minmax(0,1fr);gap:10px;padding:5px 12px 6px 14px}.business-donut.is-variant-ring.is-dense .business-ring-visual{width:148px;height:148px}.business-donut.is-variant-ring.is-dense .business-ring-chart{width:144px;height:144px}.business-donut.is-variant-ring.is-dense .business-ring-inner{top:37px;right:32px;bottom:35px;left:32px}.business-donut.is-variant-ring.is-dense .business-ring-inner strong{font-size:22px;line-height:24px}.business-donut.is-variant-ring.is-dense .business-ring-inner span{max-width:74px;font-size:11px;line-height:13px}.business-donut.is-variant-ring.is-dense .business-donut-legend{align-self:center;justify-content:center;height:auto;max-height:100%;gap:5px}.business-donut.is-variant-ring.is-dense .business-donut-row{flex:1 1 0;grid-template-columns:10px minmax(0,1fr) max-content max-content;gap:5px;min-height:21px;padding:2px}.business-donut.is-variant-ring.is-dense .business-donut-row i{width:8px;height:8px;border-width:1px}.business-donut.is-variant-ring.is-dense .business-donut-row span{font-size:12px;line-height:15px}.business-donut.is-variant-ring.is-dense .business-donut-row strong{font-size:15px;line-height:17px}.business-donut.is-variant-ring.is-dense .business-donut-row em{font-size:10px}.business-donut-visual{position:relative;align-self:center;width:136px;height:136px;min-width:0}.business-rose{display:grid;grid-template-columns:158px minmax(0,1fr);align-items:center;gap:4px;height:100%;padding:4px 12px 7px 8px;box-sizing:border-box}.business-rose-visual{position:relative;width:158px;height:136px;min-width:0}.business-rose-visual svg{width:100%;height:100%;overflow:visible}.business-rose-segment{opacity:.92;stroke-width:1.5;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;transition:opacity .3s ease,filter .3s ease,transform .3s ease;filter:drop-shadow(0 2px 2px rgba(0,10,18,.34)) drop-shadow(0 0 5px rgba(48,220,255,.18))}.business-rose-segment.is-active{opacity:1;transform:scale(1.035);filter:drop-shadow(0 3px 5px rgba(0,10,18,.42)) drop-shadow(0 0 10px rgba(36,246,196,.42))}.business-rose-guides line{stroke-width:1;stroke-opacity:.5}.business-rose-labels text{fill:#e2fcffad;font-size:10px;font-weight:600;dominant-baseline:middle}.business-rose-glow{fill:#24f6c41a;stroke:#30dcff3d;stroke-width:1;filter:drop-shadow(0 0 8px rgba(36,246,196,.26))}.business-rose-hole{fill:#03121ef0;stroke:#e3fdff38;stroke-width:1.2}.business-rose-legend{gap:6px;padding-right:0}.business-rose-row{grid-template-columns:13px minmax(0,1fr) 56px 28px;gap:7px;min-height:23px}.business-rose-row i{width:10px;height:10px;border-width:1px;box-shadow:0 0 7px currentColor}.business-three-pie{width:100%;height:100%}.business-three-pie-center{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;height:auto;color:#fff;text-align:center;text-shadow:0 0 10px rgba(0,0,0,.96);pointer-events:none}.business-three-pie-center strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;line-height:22px;font-weight:800;letter-spacing:0;transform:translateY(-2px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-three-pie-center span{max-width:86px;margin-top:0;color:#fffffff5;font-size:10px;line-height:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-ring-visual{position:relative;display:flex;align-items:center;justify-content:center;width:132px;height:132px;min-width:0;isolation:isolate}.business-ring-visual:before{content:"";position:absolute;left:11px;right:11px;bottom:12px;height:24px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.24),rgba(48,220,255,0) 72%);filter:blur(2px);pointer-events:none}.business-ring-chart{position:relative;z-index:1;width:128px;height:128px;overflow:visible}.business-ring-halo{fill:#041622e0;stroke:#30dcff29;stroke-width:1;filter:none}.business-ring-track,.business-ring-segment{fill:none;transform:rotate(-90deg);transform-origin:80px 80px}.business-ring-track{stroke:#30dcff1f;stroke-width:22}.business-ring-segment{stroke-width:22;stroke-linecap:round;opacity:.9;transition:stroke-width .35s ease,opacity .35s ease,filter .35s ease;filter:none}.business-ring-segment.is-active{stroke-width:24;opacity:1;filter:none}.business-ring-inner{position:absolute;top:33px;right:30px;bottom:31px;left:30px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;text-shadow:none;pointer-events:none}.business-ring-inner strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:22px;line-height:24px;font-weight:800;letter-spacing:0}.business-ring-inner span{display:none;max-width:70px;margin-top:2px;color:#fffffff0;font-size:11px;line-height:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-donut-legend{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;gap:7px;overflow-y:auto;padding-right:2px}.business-donut-legend::-webkit-scrollbar{width:3px}.business-donut-legend::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-donut-row{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr) 58px 28px;align-items:center;gap:8px;min-height:24px;padding:0 2px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.055);transition:background .35s ease,border-color .35s ease}.business-donut-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.2;pointer-events:none}.business-donut-row i{position:relative;z-index:1;width:10px;height:10px;border:2px solid #24f6c4;border-radius:50%;box-sizing:border-box}.business-donut-row span{position:relative;z-index:1;min-width:0;color:#ffffffe0;font-size:13px;line-height:15px;font-weight:700;white-space:normal}.business-donut-row strong{position:relative;z-index:1;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:800;line-height:20px;text-align:right}.business-donut-row em{position:relative;z-index:1;color:#ffffff85;font-size:11px;font-style:normal;white-space:nowrap}.business-donut-row.is-active{border-color:#30dcff38;background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04))}.business-donut-row.is-active span,.business-donut-row.is-active strong{color:#fff}.business-donut-row.is-active i{box-shadow:none;transform:scale(1.2)}.business-structure{display:grid;grid-template-rows:32px minmax(0,1fr);gap:7px;height:100%;padding:8px 13px 9px;box-sizing:border-box;overflow:hidden}.business-structure-overview{display:flex;align-items:center;min-width:0}.business-structure-band{display:flex;align-self:center;width:100%;height:25px;padding:4px;background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(36,246,196,.035));border:1px solid rgba(48,220,255,.2);box-shadow:inset 0 0 0 1px #30dcff06}.business-structure-band i{position:relative;display:block;min-width:7px;height:100%;box-shadow:none;overflow:hidden}.business-structure-band i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);opacity:0;transform:translate(-130%)}.business-structure-band i.is-active{z-index:1}.business-structure-band i.is-active:before{opacity:1;animation:businessDataSweep 1.8s ease-in-out infinite}.business-structure-focus{min-width:0;padding:6px 8px;background:linear-gradient(135deg,rgba(36,246,196,.16),rgba(48,220,255,.05));border:1px solid rgba(48,220,255,.18)}.business-structure-focus span{display:block;color:#ffffff85;font-size:10px;line-height:12px}.business-structure-focus strong{display:block;min-width:0;margin-top:1px;color:#fff;font-size:12px;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-structure-focus em{display:inline-block;margin-top:3px;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:17px;line-height:18px;font-style:normal;font-weight:800}.business-structure-focus small{display:block;margin-top:1px;color:#c9fbffd1;font-size:11px;line-height:13px}.business-structure-list{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(22px,1fr);align-content:stretch;gap:5px;min-height:0;overflow:hidden;padding-right:0}.business-structure-list::-webkit-scrollbar{width:3px}.business-structure-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-structure-row{position:relative;display:grid;grid-template-columns:9px minmax(0,1fr) 70px 42px;align-items:center;gap:5px;min-height:0;padding:0 7px;overflow:hidden;background:rgba(48,220,255,.04);border:1px solid rgba(48,220,255,.08);transition:border-color .3s ease,background .3s ease}.business-structure-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.11;pointer-events:none}.business-structure-row i{position:relative;z-index:1;width:7px;height:7px;box-shadow:none}.business-structure-row span{position:relative;z-index:1;min-width:0;color:#ffffffc2;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-structure-row strong{position:relative;z-index:1;color:#dffcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:13px;text-align:right;white-space:nowrap}.business-structure-row strong em{margin-left:2px;color:#ffffff80;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-structure-row small{position:relative;z-index:1;color:#c9fbffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:12px;text-align:right;white-space:nowrap}.business-structure-row.is-active{background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.04));border-color:#24f6c45c}.business-structure-row.is-active span,.business-structure-row.is-active strong{color:#fff}.business-capacity{display:grid;grid-template-rows:22px 40px minmax(34px,1fr) 18px;gap:5px;height:100%;padding:8px 14px 7px;box-sizing:border-box;overflow:hidden}.business-capacity-head,.business-capacity-town{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0}.business-capacity-head{padding-bottom:3px;border-bottom:1px solid rgba(48,220,255,.12)}.business-capacity-head span,.business-capacity-town span{min-width:0;color:#dcf8ffc2;font-size:11px;line-height:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-capacity-head strong,.business-capacity-town strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:16px;font-weight:800;white-space:nowrap;text-shadow:none}.business-capacity-head strong em,.business-capacity-town strong em{margin-left:3px;color:#ffffff8f;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-capacity-band{display:flex;align-self:center;height:32px;padding:5px;border:1px solid rgba(48,220,255,.2);background:linear-gradient(90deg,rgba(48,220,255,.11),rgba(48,220,255,.03));box-shadow:inset 0 0 0 1px #30dcff08}.business-capacity-band i{position:relative;display:block;min-width:8px;height:100%;box-shadow:none;overflow:hidden}.business-capacity-band i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);opacity:0;transform:translate(-130%)}.business-capacity-band i.is-active{z-index:1}.business-capacity-band i.is-active:before{opacity:1;animation:businessDataSweep 1.8s ease-in-out infinite}.business-capacity-list{display:grid;align-content:center;gap:4px;min-height:0}.business-capacity-row{display:grid;grid-template-columns:9px minmax(0,1fr) 66px 40px;align-items:center;gap:5px;min-width:0}.business-capacity-row i{width:7px;height:7px;box-shadow:none}.business-capacity-row span{min-width:0;color:#ffffffc2;font-size:10px;line-height:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-capacity-row strong{color:#dffcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:13px;text-align:right;white-space:nowrap}.business-capacity-row strong em{margin-left:2px;color:#ffffff80;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-capacity-row small{color:#c9fbffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:12px;text-align:right;white-space:nowrap}.business-capacity-row.is-active span,.business-capacity-row.is-active strong,.business-capacity-row.is-active small{color:#fff}.business-capacity-row.is-active i{transform:scale(1.24)}.business-capacity-town{min-width:0;padding-top:3px;border-top:1px solid rgba(48,220,255,.1)}.business-capacity-town strong{color:#24f6c4;font-size:12px;line-height:13px;text-shadow:none}.business-bars{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(var(--bar-row-count, 1),minmax(0,1fr));gap:6px;width:100%;min-width:0;height:100%;padding:8px 14px 9px;box-sizing:border-box;overflow:hidden;scrollbar-width:none}.business-bars::-webkit-scrollbar{display:none}.business-bars::-webkit-scrollbar-thumb{background:transparent}.business-bars.is-dense{gap:4px;padding:5px 14px 6px}.business-bars.is-dense .business-bar-row{min-height:0}.business-bars.is-dense .business-bar-name{font-size:11px;line-height:12px}.business-bars.is-dense .business-bar-track{height:5px;margin-top:2px}.business-bars.is-long{gap:2px;padding:3px 14px 4px}.business-bars.is-long .business-bar-row{min-height:0}.business-bars.is-long .business-bar-name{font-size:10px;line-height:11px}.business-bars.is-long .business-bar-track{height:4px;margin-top:1px;padding:1px}.business-bars.is-long .business-bar-row strong{font-size:12px;line-height:12px}.business-bars.is-long .business-bar-row strong em,.business-bars.is-long .business-bar-row strong small{font-size:10px}.business-bars.is-single{gap:5px;padding:6px 14px}.business-bars.is-single .business-bar-row{min-height:22px}.business-bars.is-single .business-bar-name{font-size:11px;line-height:13px}.business-bars.is-single .business-bar-track{height:5px;margin-top:2px;padding:1px}.business-bars.is-single .business-bar-row strong{font-size:13px;line-height:14px}.business-bars.is-single .business-bar-row strong em,.business-bars.is-single .business-bar-row strong small{font-size:10px}.business-bars.is-distribution{gap:4px;padding:6px 14px 7px}.business-bars.is-distribution .business-bar-row{min-height:0;padding:0 0 2px;border-bottom:1px solid rgba(48,220,255,.07)}.business-bars.is-distribution .business-bar-name{position:relative;padding-left:11px;color:#e7faffd6;font-size:11px;line-height:13px}.business-bars.is-distribution .business-bar-name:before{content:"";position:absolute;left:0;top:4px;width:5px;height:5px;border-radius:50%;background:#24f6c4;box-shadow:none}.business-bars.is-distribution .business-bar-track{height:7px;margin-top:4px;padding:1px;border-color:#30dcff2e;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.03))}.business-bars.is-distribution .business-bar-row strong{color:#fff;font-size:12px;line-height:15px;text-shadow:none}.business-bars.is-distribution.is-long{gap:3px;padding:5px 14px 6px}.business-bars.is-distribution.is-long .business-bar-row{min-height:22px}.business-bars.is-distribution.is-long .business-bar-name{font-size:11px;line-height:12px}.business-bars.is-capacity{gap:12px;padding:12px 16px 10px;overflow:hidden}.business-bars.is-capacity .business-bar-row{grid-template-columns:minmax(0,1fr) auto;min-height:24px;padding:0;border-bottom:0}.business-bars.is-capacity .business-bar-name{padding-left:0;color:#e8faffd1;font-size:11px;line-height:13px}.business-bars.is-capacity .business-bar-name:before{display:none}.business-bars.is-capacity .business-bar-track{height:5px;margin-top:5px;padding:1px;border-color:#acbfbc38;background:rgba(115,208,255,.05)}.business-bars.is-capacity .business-bar-track i{min-width:10px;box-shadow:none}.business-bars.is-capacity .business-bar-row strong{color:#24f6c4;font-size:12px;line-height:13px;text-shadow:none}.business-bars.is-rank-bar{gap:2px;padding:3px 14px 2px;overflow:hidden}.business-bars.is-rank-bar .business-bar-row{position:relative;grid-template-columns:26px minmax(0,1fr) auto;grid-template-areas:"rank name value" "rank track track";align-items:center;min-height:18px;gap:1px 8px;padding:1px 0 2px;border-bottom:1px solid rgba(48,220,255,.075)}.business-bars.is-rank-bar .business-bar-rank{grid-area:rank;display:flex;width:18px;height:18px;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.28);background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(36,246,196,.055)),rgba(4,28,42,.52);color:#e8fcffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;font-weight:800;box-shadow:inset 0 0 10px #30dcff14}.business-bars.is-rank-bar .business-bar-name{color:#f5fdfff0;font-size:11px;line-height:13px;font-weight:700}.business-bars.is-rank-bar .business-bar-track{position:relative;height:5px;margin-top:0;padding:1px;overflow:hidden;border-color:#30dcff33;background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 28px),linear-gradient(90deg,rgba(48,220,255,.13),rgba(36,246,196,.035))}.business-bars.is-rank-bar .business-bar-track i{min-width:12px;box-shadow:inset 0 0 5px #ffffff29}.business-bars.is-rank-bar .business-bar-track i:before{content:"";position:absolute;right:0;top:-2px;width:3px;height:calc(100% + 4px);background:rgba(255,255,255,.86);box-shadow:none}.business-bars.is-rank-bar .business-bar-row strong{color:#fff;font-size:13px;line-height:14px;text-shadow:none}.business-bars.is-rank-bar .business-bar-row strong em,.business-bars.is-rank-bar .business-bar-row strong small{color:#eefdffc7;font-size:10px}.business-bars.is-rank-bar .business-bar-row.is-active .business-bar-rank{border-color:#30dcff7a;color:#c9fbff;box-shadow:inset 0 0 12px #30dcff14,0 0 3px #30dcff14}.business-bars.is-park-bar{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:16px 18px 15px;overflow:hidden}.business-bars.is-park-bar .business-bar-row{grid-template-columns:68px minmax(0,1fr) 88px;grid-template-areas:"name track value";align-items:center;min-height:32px;gap:10px;padding:0;border-bottom:0}.business-bars.is-park-bar .business-bar-name{position:relative;min-width:0;padding-left:13px;overflow:hidden;color:#f6feffeb;font-size:12px;line-height:15px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.business-bars.is-park-bar .business-bar-name:before{content:"";position:absolute;left:0;top:5px;width:6px;height:6px;background:var(--bar-color, #30dcff);box-shadow:0 0 3px var(--bar-color, #30dcff)}.business-bars.is-park-bar .business-bar-track{position:relative;height:12px;margin-top:0;padding:0;overflow:visible;border:1px solid rgba(48,220,255,.12);background:repeating-linear-gradient(90deg,rgba(216,250,255,.09) 0 1px,transparent 1px 44px),linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025));box-shadow:none}.business-bars.is-park-bar .business-bar-track i{position:relative;height:100%;min-width:14px;box-shadow:inset 0 1px #fff3}.business-bars.is-park-bar .business-bar-track i:after{content:"";position:absolute;right:-2px;top:-2px;width:4px;height:calc(100% + 4px);border-radius:2px;background:rgba(248,255,255,.82);box-shadow:0 0 4px #f8ffff38}.business-bars.is-park-bar .business-bar-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;font-weight:800;text-align:left;white-space:nowrap;text-shadow:0 0 5px rgba(255,255,255,.18)}.business-bars.is-park-bar .business-bar-row strong em{margin-left:3px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:11px;font-style:normal;font-weight:600}.business-bars.is-park-bar .business-bar-row strong small{display:block;margin-top:2px;color:#eefdff9e;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:12px;font-weight:700}.business-bars.is-park-bar .business-bar-row.is-active .business-bar-name,.business-bars.is-park-bar .business-bar-row.is-active strong{color:#fff}.business-bars.is-park-bar .business-bar-row.is-active .business-bar-track i{animation:none}.business-bars.is-race-bar{display:flex;flex-direction:column;justify-content:flex-start;gap:5px;padding:8px 10px 8px 13px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.46) rgba(48,220,255,.08)}.business-bars.is-race-bar::-webkit-scrollbar{width:4px}.business-bars.is-race-bar::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.business-bars.is-race-bar::-webkit-scrollbar-thumb{background:rgba(48,220,255,.46);border-radius:4px}.business-bars.is-race-bar .business-bar-row{grid-template-columns:112px minmax(0,1fr) 96px;grid-template-areas:"name track value";align-items:center;min-height:28px;gap:7px;padding:0;border-bottom:0}.business-bars.is-race-bar .business-bar-name{position:relative;padding-left:13px;color:#f0fdffeb;font-size:11px;line-height:12px;font-weight:700;white-space:normal;word-break:break-all;overflow:visible;text-overflow:clip}.business-bars.is-race-bar .business-bar-name:before{content:"";position:absolute;left:0;top:4px;width:7px;height:7px;background:var(--bar-color, currentColor);box-shadow:none}.business-bars.is-race-bar .business-bar-track{position:relative;height:22px;margin-top:0;padding:0;overflow:visible;border:0;background:repeating-linear-gradient(90deg,rgba(214,250,255,.12) 0 1px,transparent 1px 52px),linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025))}.business-bars.is-race-bar .business-bar-track:before{content:"";position:absolute;left:0;top:-8px;bottom:-8px;width:1px;background:rgba(213,247,255,.32)}.business-bars.is-race-bar .business-bar-track i{position:relative;height:100%;min-width:18px;box-shadow:inset 0 1px #ffffff38}.business-bars.is-race-bar .business-bar-row:nth-child(1) .business-bar-name{color:#24f6c4}.business-bars.is-race-bar .business-bar-row:nth-child(2) .business-bar-name{color:#32dcff}.business-bars.is-race-bar .business-bar-row:nth-child(3) .business-bar-name{color:#8bf7ff}.business-bars.is-race-bar .business-bar-row strong{grid-area:value;color:#fff;font-size:14px;line-height:16px;text-align:left;text-shadow:none}.business-bars.is-race-bar .business-bar-row strong em{margin-left:3px;color:#eefdffb8;font-size:11px}.business-bars.is-race-bar .business-bar-row strong small{display:block;margin:1px 0 0;color:#eefdffb8;font-size:10px;line-height:11px}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation){display:grid;grid-template-rows:repeat(var(--bar-row-count, 1),minmax(0,1fr));align-content:stretch;gap:2px;padding:5px 8px 6px 12px;overflow:hidden;scrollbar-width:none}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row{grid-template-columns:64px minmax(52px,1fr) 90px;grid-template-areas:"name track value";min-height:0;gap:5px;align-items:center}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-name{padding-left:10px;color:#f0fdffe6;font-size:10px;line-height:12px;white-space:nowrap;word-break:keep-all}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-name:before{top:3px;width:5px;height:5px}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-track{height:8px;background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.025))}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-track:before{top:-3px;bottom:-3px;background:rgba(213,247,255,.2)}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-track i{min-width:8px}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row strong{overflow:visible;color:#fff;font-size:12px;line-height:13px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row strong em,.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row strong small{display:inline;margin-left:3px;color:#eefdffb8;font-size:10px;line-height:13px}.business-bars.is-race-bar.is-few-rows{display:flex;justify-content:center;gap:13px;padding:15px 12px 16px 13px}.business-bars.is-race-bar.is-few-rows .business-bar-row{min-height:42px;grid-template-columns:112px minmax(0,1fr) 96px;gap:9px}.business-bars.is-race-bar.is-few-rows .business-bar-name{padding-left:15px;font-size:12px;line-height:15px;word-break:keep-all;white-space:nowrap}.business-bars.is-race-bar.is-few-rows .business-bar-name:before{top:4px;width:8px;height:8px}.business-bars.is-race-bar.is-few-rows .business-bar-track{height:25px}.business-bars.is-race-bar.is-few-rows .business-bar-track:before{top:-9px;bottom:-9px}.business-bars.is-race-bar.is-few-rows .business-bar-row strong{font-size:15px;line-height:17px}.business-bars.is-race-bar.is-few-rows .business-bar-row strong em{font-size:11px}.business-bars.is-race-bar.is-few-rows .business-bar-row strong small{margin-top:2px;font-size:11px;line-height:12px}.business-bars.is-race-bar.is-degradation{display:flex;justify-content:flex-start;gap:10px;padding:13px 15px 9px 14px}.business-bars.is-race-bar.is-degradation .business-bar-row{grid-template-columns:118px minmax(0,1fr) 104px;min-height:38px;gap:10px}.business-bars.is-race-bar.is-degradation .business-bar-name{padding-left:14px;font-size:12px;line-height:15px;word-break:keep-all;white-space:nowrap}.business-bars.is-race-bar.is-degradation .business-bar-name:before{top:4px;width:8px;height:8px}.business-bars.is-race-bar.is-degradation .business-bar-track{height:25px;background:repeating-linear-gradient(90deg,rgba(214,250,255,.1) 0 1px,transparent 1px 44px),linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.025))}.business-bars.is-race-bar.is-degradation .business-bar-track:before{top:-6px;bottom:-6px}.business-bars.is-race-bar.is-degradation .business-bar-row strong{font-size:16px;line-height:17px}.business-bars.is-race-bar.is-degradation .business-bar-row strong em{font-size:12px}.business-bars.is-race-bar.is-degradation .business-bar-row strong small{margin-top:3px;font-size:12px;line-height:13px}.business-bars.is-race-nowrap .business-bar-row{grid-template-columns:172px minmax(0,1fr) 88px;gap:7px}.business-bars.is-race-nowrap .business-bar-name{font-size:12px;line-height:14px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:clip}.business-bars.is-race-relaxed{justify-content:center;gap:11px;padding:14px 14px 15px}.business-bars.is-race-relaxed .business-bar-row{grid-template-columns:168px minmax(0,1fr) 94px;min-height:42px;gap:8px}.business-bars.is-race-relaxed .business-bar-name{font-size:13px;line-height:16px}.business-bars.is-race-relaxed .business-bar-track{height:27px}.business-bars.is-race-relaxed .business-bar-track:before{top:-10px;bottom:-10px}.business-bars.is-race-relaxed .business-bar-row strong{font-size:15px;line-height:17px}.business-bars.is-race-relaxed .business-bar-row strong small{margin-top:2px;font-size:11px;line-height:12px}.business-bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name value" "track track";align-items:end;gap:2px 10px;min-height:0;max-height:none}.business-bar-name{grid-area:name;min-width:0;color:#ffffffc7;font-size:12px;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-bar-track{grid-area:track;height:7px;margin-top:4px;padding:2px;background:rgba(48,220,255,.08);border:1px solid rgba(48,220,255,.16)}.business-bar-track i{position:relative;display:block;height:100%;min-width:8px;box-shadow:none;overflow:hidden}.business-bar-track i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:0;transform:translate(-130%)}.business-bar-row.is-active .business-bar-track i{animation:none}.business-bar-row.is-active .business-bar-track i:after{opacity:0;animation:none}.business-bar-row.is-active .business-bar-name,.business-bar-row.is-active strong{color:#fff}.business-bar-row strong,.business-split-row strong{grid-area:value;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;text-align:right;line-height:15px;white-space:nowrap}.business-bar-row strong em,.business-bar-row strong small,.business-split-row strong em,.business-split-row strong small{margin-left:2px;color:#ffffff8a;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-bar-row strong small,.business-split-row strong small{display:inline;margin-left:4px;line-height:15px;white-space:nowrap}.business-bar-row strong{overflow:hidden;text-overflow:ellipsis}.business-columns{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));align-items:stretch;gap:5px;height:100%;padding:32px 12px 8px;box-sizing:border-box;overflow:hidden}.business-columns:before{content:"";position:absolute;left:12px;right:12px;top:50px;bottom:41px;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(159,220,230,.22) 0 1px,transparent 1px 17px);opacity:0}.business-columns::-webkit-scrollbar{height:3px}.business-columns::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-columns.is-dense{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));grid-auto-rows:minmax(0,1fr);gap:4px;padding:34px 10px 8px}.business-columns.is-dense .business-column-item{grid-template-rows:minmax(38px,1fr) 28px;min-width:0}.business-columns.is-dense .business-column-item strong{width:100%;font-size:11px;line-height:15px;text-align:center}.business-columns.is-dense .business-column-item span{max-width:100%;font-size:10px;line-height:12px;white-space:nowrap}.business-columns.is-dense .business-column-track{width:8px;height:100%;min-height:20px}.business-columns.is-variant-pin{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:5px;padding:8px 9px 7px}.business-columns.is-variant-pin:before{opacity:.56}.business-columns.is-variant-pin .business-column-item{position:relative;z-index:1;grid-template-rows:minmax(62px,1fr) 26px}.business-columns.is-variant-pin .business-column-item strong{position:relative;z-index:2;min-width:42px;padding-bottom:2px;color:#e8fcff;font-size:11px;line-height:14px;text-shadow:0 0 9px rgba(255,255,255,.36)}.business-columns.is-variant-pin .business-column-item strong:after{content:"";position:absolute;left:50%;bottom:-4px;width:18px;height:1px;border-top:1px dashed rgba(220,250,255,.62);transform:translate(-2px) rotate(12deg);transform-origin:left center}.business-columns.is-variant-pin .business-column-item span{max-width:48px;color:#ebfcffc7;font-size:10px;line-height:11px;-webkit-line-clamp:2}.business-columns.is-variant-pin .business-column-track{width:7px;height:74px;min-height:46px;border:0;background:linear-gradient(180deg,rgba(48,220,255,.07),rgba(48,220,255,.02))}.business-columns.is-variant-pin .business-column-track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(48,220,255,.22);transform:translate(-50%)}.business-columns.is-variant-pin .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:21px;height:6px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.34),rgba(48,220,255,0) 72%);transform:translate(-50%)}.business-columns.is-variant-pin .business-column-track i{left:1px;right:1px;border-radius:6px 6px 2px 2px;box-shadow:0 0 3px #32dcff29}.business-columns.is-variant-pin .business-column-track i:before{left:50%;right:auto;top:-6px;width:9px;height:9px;border:2px solid #c9fcff;border-radius:2px;background:rgba(3,27,41,.9);box-shadow:0 0 3px #30dcff2e;transform:translate(-50%) rotate(45deg);filter:none}.business-columns.is-variant-pin .business-column-track i:after{display:none}.business-columns.is-variant-slim{grid-template-columns:repeat(auto-fit,minmax(26px,1fr));gap:6px;padding:24px 10px 6px}.business-columns.is-variant-slim.is-dense{gap:4px;padding:34px 10px 8px}.business-columns.is-variant-slim .business-column-track{width:8px}.business-columns.is-variant-slim .business-column-track i{border-radius:1px 1px 0 0}.business-columns.is-variant-water{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:6px;padding:20px 13px 7px}.business-columns.is-variant-water:before{top:40px;bottom:38px;opacity:.52;background:repeating-linear-gradient(to bottom,rgba(117,232,255,.18) 0 1px,transparent 1px 18px)}.business-columns.is-variant-water .business-column-item{grid-template-rows:minmax(70px,1fr) 30px}.business-columns.is-variant-water .business-column-item strong{color:#f4feff;font-size:11px;line-height:15px;text-shadow:0 0 10px rgba(168,251,255,.36)}.business-columns.is-variant-water .business-column-item span{color:#ebfcffe0;font-size:10px;line-height:12px}.business-columns.is-variant-water .business-column-track{width:10px;min-height:56px;border:0;border-radius:10px 10px 3px 3px;background:linear-gradient(180deg,rgba(49,220,255,.11),rgba(47,151,255,.025)),rgba(7,35,52,.34);box-shadow:inset 0 0 10px #31dcff14,0 0 10px #31dcff14}.business-columns.is-variant-water .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:25px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(168,251,255,.34),rgba(49,220,255,0) 72%);transform:translate(-50%)}.business-columns.is-variant-water .business-column-track i{left:2px;right:2px;min-height:9px;border-radius:10px 10px 3px 3px;box-shadow:0 0 4px #31dcff29,inset 0 1px #ffffff52}.business-columns.is-variant-water .business-column-track i:before{left:50%;right:auto;top:-4px;width:15px;height:6px;border-radius:50%;background:rgba(220,255,255,.88);box-shadow:0 0 3px #a8fbff33;transform:translate(-50%);filter:none}.business-columns.is-variant-water .business-column-track i:after{display:none}.business-columns.is-variant-age{grid-template-columns:repeat(5,minmax(48px,1fr));gap:10px;padding:34px 18px 14px}.business-columns.is-variant-age:before{top:56px;bottom:46px;opacity:.36}.business-columns.is-variant-age .business-column-item{grid-template-rows:minmax(96px,1fr) 28px;min-width:0}.business-columns.is-variant-age .business-column-item strong{width:100%;color:#fff;font-size:13px;line-height:18px;text-align:center}.business-columns.is-variant-age .business-column-item span{max-width:none;color:#ffffffe6;font-size:12px;line-height:16px;white-space:nowrap;-webkit-line-clamp:1}.business-columns.is-variant-age .business-column-track{width:10px;height:92px;min-height:72px;border-color:#30dcff38;background:linear-gradient(180deg,rgba(48,220,255,.1),rgba(48,220,255,.03)),rgba(5,31,44,.38)}.business-columns.is-variant-age .business-column-track i{left:2px;right:2px;min-height:9px;border-radius:3px 3px 0 0}.business-columns.is-variant-projectYear{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:25px 14px 9px 8px}.business-columns.is-variant-projectYear:before{top:47px;bottom:43px;opacity:.42}.business-columns.is-variant-projectYear .business-column-item{grid-template-rows:minmax(90px,1fr) 26px;min-width:0}.business-columns.is-variant-projectYear .business-column-item strong{color:#fff;font-size:11px;line-height:18px;text-align:center;text-shadow:0 0 9px rgba(255,255,255,.28)}.business-columns.is-variant-projectYear .business-column-item span{max-width:none;color:#f0fdffe6;font-size:10px;line-height:15px;white-space:nowrap;-webkit-line-clamp:1}.business-columns.is-variant-projectYear .business-column-track{width:8px;height:92px;min-height:74px;border:1px solid rgba(48,220,255,.18);background:linear-gradient(180deg,rgba(48,220,255,.1),rgba(48,220,255,.025)),rgba(5,29,42,.3);box-shadow:inset 0 0 12px #30dcff14,0 0 10px #30dcff14}.business-columns.is-variant-projectYear .business-column-track:after{content:"";position:absolute;left:50%;bottom:-6px;width:18px;height:8px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.38),rgba(48,220,255,0) 72%);transform:translate(-50%)}.business-columns.is-variant-projectYear .business-column-track i{left:2px;right:2px;min-height:12px;border-radius:4px 4px 1px 1px;box-shadow:0 0 4px #24f6c429,inset 0 1px #ffffff42}.business-columns.is-variant-projectYear .business-column-track i:before{height:8px;top:-5px;transform:skew(-32deg)}.business-columns.is-variant-projectYear .business-column-track i:after{display:none}.business-columns.is-variant-compact{grid-template-columns:repeat(auto-fit,minmax(30px,1fr));gap:7px;padding:24px 12px 8px}.business-columns.is-variant-compact:before{top:44px;bottom:37px;opacity:.48}.business-columns.is-variant-compact .business-column-item{grid-template-rows:minmax(70px,1fr) 28px}.business-columns.is-variant-compact .business-column-item strong{font-size:12px;line-height:16px}.business-columns.is-variant-compact .business-column-item span{max-width:52px;font-size:10px;line-height:12px;-webkit-line-clamp:2}.business-columns.is-variant-compact .business-column-track{width:8px;min-height:56px;border-color:#24f6c42e;background:linear-gradient(180deg,rgba(36,246,196,.08),rgba(48,220,255,.02)),rgba(4,26,38,.34)}.business-columns.is-variant-compact .business-column-track i{left:2px;right:2px;min-height:10px;border-radius:3px 3px 0 0;box-shadow:0 0 4px #24f6c424,inset 0 1px #ffffff38}.business-columns.is-variant-townCompact{grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;padding:26px 10px 8px}.business-columns.is-variant-townCompact:before{top:47px;bottom:50px;opacity:.5}.business-columns.is-variant-townCompact .business-column-item{grid-template-rows:minmax(72px,1fr) 42px;min-width:0}.business-columns.is-variant-townCompact .business-column-item strong{width:max-content;max-width:46px;font-size:10px;line-height:14px;transform:translate(0)}.business-columns.is-variant-townCompact .business-column-item span{align-self:start;max-width:none;height:38px;color:#ffffffe6;font-size:11px;line-height:13px;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:0;white-space:nowrap;-webkit-line-clamp:unset}.business-columns.is-variant-townCompact .business-column-track{width:8px;min-height:54px;border-color:#24f6c42e;background:linear-gradient(180deg,rgba(36,246,196,.08),rgba(48,220,255,.02)),rgba(4,26,38,.34)}.business-columns.is-variant-townCompact .business-column-track i{left:2px;right:2px;min-height:9px;border-radius:3px 3px 0 0;box-shadow:0 0 4px #24f6c424,inset 0 1px #ffffff38}.business-columns.is-variant-plain{grid-template-columns:repeat(auto-fit,minmax(25px,1fr));gap:7px;padding:18px 14px 7px}.business-columns.is-variant-plain:before{top:37px;bottom:36px;opacity:.62}.business-columns.is-variant-plain .business-column-item{position:relative;z-index:1;grid-template-rows:minmax(70px,1fr) 28px}.business-columns.is-variant-plain .business-column-item strong{color:#f4fcffe0;font-size:11px;line-height:15px}.business-columns.is-variant-plain .business-column-item span{max-width:44px;color:#ffffffd1;font-size:10px;line-height:12px;-webkit-line-clamp:2}.business-columns.is-variant-plain .business-column-track{width:6px;height:100%;min-height:54px;border:0;background:rgba(67,130,96,.1);box-shadow:none}.business-columns.is-variant-plain .business-column-track i{left:0;right:0;min-height:7px;border-radius:2px 2px 0 0;box-shadow:0 0 3px #24f6c41f,inset 0 1px #ffffff3d}.business-columns.is-variant-plain .business-column-track i:before,.business-columns.is-variant-plain .business-column-track i:after{display:none}.business-columns.is-dense.is-scrollable{display:flex;flex-flow:row nowrap;align-items:stretch;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.46) rgba(48,220,255,.08)}.business-columns.is-dense.is-scrollable::-webkit-scrollbar{height:4px}.business-columns.is-dense.is-scrollable::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.business-columns.is-dense.is-scrollable::-webkit-scrollbar-thumb{background:rgba(48,220,255,.46);border-radius:4px}.business-columns.is-dense.is-scrollable .business-column-item{flex:0 0 54px;width:54px;min-width:54px;height:100%}.business-columns.is-dense.is-scrollable.is-variant-slim .business-column-item{flex-basis:50px;width:50px;min-width:50px}.business-columns.is-dense.is-scrollable.is-variant-plain .business-column-item{flex-basis:48px;width:48px;min-width:48px}.business-columns.has-unit-label{padding-top:44px}.business-columns.has-unit-label:before{top:60px}.business-columns.has-unit-label .business-column-unit{left:12px;right:12px;top:4px;text-align:right}.business-columns.has-unit-label.is-variant-pin{padding-top:38px}.business-columns.has-unit-label.is-variant-pin:before{top:54px}.business-columns.has-unit-label.is-variant-plain,.business-columns.has-unit-label.is-variant-slim,.business-columns.has-unit-label.is-variant-age,.business-columns.has-unit-label.is-variant-townCompact,.business-columns.has-unit-label.is-variant-compact{padding-top:42px}.business-columns.has-unit-label.is-variant-plain:before,.business-columns.has-unit-label.is-variant-slim:before,.business-columns.has-unit-label.is-variant-age:before,.business-columns.has-unit-label.is-variant-townCompact:before,.business-columns.has-unit-label.is-variant-compact:before{top:58px}.business-column-item{display:grid;grid-template-rows:minmax(70px,1fr) 38px;justify-items:center;min-width:0}.business-column-item strong{color:#d9fbff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;white-space:nowrap}.business-column-item strong em{margin-left:2px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-column-item span{align-self:center;max-width:76px;color:#ffffffa8;font-size:10px;line-height:12px;text-align:center;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.business-column-item.is-active strong,.business-column-item.is-active span{color:#fff}.business-column-item.is-active .business-column-track i{animation:none}.business-column-unit{position:absolute;right:14px;top:2px;z-index:2;padding:1px 6px;background:linear-gradient(90deg,rgba(4,23,34,0),rgba(4,23,34,.72));color:#eefdffb8;font-size:10px;line-height:14px;pointer-events:none}.business-column-trend{position:absolute;left:16px;right:16px;top:45px;bottom:48px;z-index:3;width:calc(100% - 32px);height:calc(100% - 93px);overflow:visible;pointer-events:none}.business-columns.has-unit-label .business-column-trend{top:59px;height:calc(100% - 107px)}.business-column-trend-area{fill:#8bf7ff0e;stroke:none}.business-column-trend-line{fill:none;stroke:#8bf7ffe0;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7 6;filter:none}.business-column-trend-dot{fill:#f7feff;stroke:#8bf7ff;stroke-width:1.1;filter:none}.business-columns.is-variant-slim .business-column-track i,.business-columns.is-variant-slim .business-column-item.is-active .business-column-track i{transform:scaleY(1);transform-origin:center bottom;animation:none;animation-delay:var(--column-load-delay, 0s);animation-fill-mode:both;will-change:transform,opacity,filter}.business-columns.is-variant-slim .business-column-track i:before,.business-columns.is-variant-slim .business-column-item.is-active .business-column-track i:before{animation:none;animation-delay:var(--column-load-delay, 0s);animation-fill-mode:both}.business-column-track{position:relative;width:8px;height:72px;align-self:end;background:linear-gradient(180deg,rgba(48,220,255,.08),rgba(48,220,255,.02));border:1px solid rgba(48,220,255,.14)}.business-column-track i{position:absolute;left:0;right:0;bottom:0;min-height:8px;box-shadow:0 0 3px #30dcff24}.business-column-track i:before,.business-column-track i:after{content:"";position:absolute;left:0;right:0;height:7px;background:inherit;transform:skew(-36deg)}.business-column-track i:before{top:-4px;filter:brightness(1.35)}.business-column-track i:after{bottom:-4px;filter:brightness(.72)}.business-column-track .business-column-value{position:absolute;left:50%;bottom:calc(var(--column-percent, 0%) + 8px);z-index:4;min-width:32px;max-width:58px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:14px;font-weight:800;letter-spacing:0;text-align:center;text-shadow:none;white-space:nowrap;transform:translate(-50%);pointer-events:none}.business-column-track .business-column-value em{margin-left:1px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:600}.business-table{display:grid;grid-template-rows:18px minmax(0,1fr);gap:4px;height:100%;padding:7px 12px 8px;box-sizing:border-box;overflow:hidden}.business-table-head{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:center;padding:0 5px;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.03))}.business-table-head-group{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:4px}.business-table-head-group span{color:#beebf5b3;font-size:10px;line-height:16px;white-space:nowrap}.business-table-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:3px 7px;min-height:0}.business-table-row{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:4px;min-width:0;min-height:0;padding:1px 5px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);box-sizing:border-box}.business-table-row:nth-child(2n){background:rgba(36,246,196,.035)}.business-table-row.is-active{border-color:#24f6c457;background:linear-gradient(90deg,rgba(36,246,196,.15),rgba(48,220,255,.04));animation:businessDataPulse 1.8s ease-in-out infinite}.business-table-row.is-active .business-table-name,.business-table-row.is-active strong{color:#fff}.business-table-name{min-width:0;color:#ebfcffc7;font-size:10px;line-height:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-table-row strong{display:block;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:12px;text-align:right;white-space:nowrap}.business-table-row strong em{display:none}.business-table-value{min-width:0}.business-table-value i{position:relative;display:block;height:3px;min-width:0;margin-top:2px;background:rgba(48,220,255,.08);border:1px solid rgba(48,220,255,.16);overflow:hidden}.business-table-value i b{position:relative;display:block;height:100%;min-width:5px;box-shadow:0 0 10px #30dcff61;overflow:hidden}.business-table-value i b:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);opacity:0;transform:translate(-130%)}.business-table-row.is-active .business-table-value i b:after{opacity:1;animation:businessDataSweep 1.8s ease-in-out infinite}.business-project-table{display:grid;grid-template-rows:28px minmax(0,1fr);gap:7px;height:100%;padding:7px 10px 8px;box-sizing:border-box;overflow:hidden}.business-project-table.is-without-search{grid-template-rows:minmax(0,1fr)}.business-project-table.is-fill-rows .business-project-frame{overflow:hidden}.business-project-table.is-fill-rows .business-project-frame table{height:100%}.business-project-search{min-width:0}.business-project-search input{width:100%;height:28px;padding:0 10px;border:1px solid rgba(48,220,255,.22);outline:none;color:#fff;font-size:12px;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.035));box-sizing:border-box}.business-project-search input::placeholder{color:#e8fcff8f}.business-project-search input:focus{border-color:#24f6c48a;box-shadow:0 0 14px #24f6c424}.business-project-search input::-webkit-search-decoration,.business-project-search input::-webkit-search-cancel-button{display:none}.business-project-frame{position:relative;min-height:0;border:1px solid rgba(48,220,255,.16);background:rgba(5,26,39,.26);overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.45) rgba(48,220,255,.08)}.business-project-frame::-webkit-scrollbar{width:5px}.business-project-frame::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.business-project-frame::-webkit-scrollbar-thumb{background:rgba(48,220,255,.44)}.business-project-frame table{width:100%;table-layout:fixed;border-collapse:collapse}.business-project-frame thead{position:sticky;top:0;z-index:2;background:#0d3144;box-shadow:0 1px #30dcff33}.business-project-frame th,.business-project-frame td{height:28px;padding:0 6px;color:#f6feffeb;font-size:11px;line-height:14px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid rgba(48,220,255,.09)}.business-project-frame tbody td{height:auto;min-height:32px;padding-top:3px;padding-bottom:3px;line-height:13px;white-space:normal;word-break:break-all;overflow:visible;text-overflow:clip}.business-project-frame th{height:25px;color:#beebf5c7;font-weight:500;background:linear-gradient(90deg,rgba(48,220,255,.16),rgba(48,220,255,.04))}.business-project-frame tbody tr{cursor:pointer;background:rgba(48,220,255,.025);transition:background .18s ease,box-shadow .18s ease}.business-project-frame tbody tr:nth-child(2n){background:rgba(36,246,196,.026)}.business-project-frame tbody tr:hover,.business-project-frame tbody tr:focus-visible,.business-project-frame tbody tr.is-active{outline:none;background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.055));box-shadow:inset 2px 0 #24f6c4d1}.business-project-frame td:nth-child(2),.business-project-frame td:nth-child(4),.business-project-frame th:nth-child(2),.business-project-frame th:nth-child(4){text-align:right}.business-project-frame th.is-right,.business-project-frame td.is-right{text-align:right}.business-project-frame th.is-center,.business-project-frame td.is-center{text-align:center}.business-project-frame strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:14px;white-space:nowrap}.business-project-frame em{margin-left:2px;color:#eefdffb8;font-size:10px;font-style:normal}.business-project-frame .business-project-locate{color:var(--screen-icon-primary, #30dcff);font-weight:600;text-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.business-project-frame .business-project-locate-button{display:inline-flex;width:24px;height:24px;padding:0;align-items:center;justify-content:center;border:0;color:var(--screen-icon-primary, #30dcff);cursor:pointer;background:transparent}.business-project-frame .business-project-locate-button:hover,.business-project-frame .business-project-locate-button:focus-visible{outline:none;color:#fff;filter:drop-shadow(0 0 4px var(--screen-icon-glow, rgba(48, 220, 255, .22)))}.business-project-frame .business-project-cell-icon{display:inline-flex;position:relative;width:18px;height:18px;align-items:center;justify-content:center;color:var(--screen-icon-primary, #30dcff);vertical-align:middle}.business-project-frame .business-project-cell-icon--locate{border:1.5px solid currentColor;border-radius:50%;background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.08);box-shadow:0 0 6px var(--screen-icon-glow, rgba(48, 220, 255, .22)),inset 0 0 7px #30dcff1a}.business-project-frame .business-project-cell-icon--locate:before{position:absolute;top:4px;right:4px;bottom:4px;left:4px;content:"";border:1px solid currentColor;border-radius:50%;opacity:.76}.business-project-frame .business-project-cell-icon--locate:after{position:absolute;width:3px;height:3px;content:"";border-radius:50%;background:#ffffff;box-shadow:0 0 7px #ffffffb8}.business-project-frame tbody tr.is-active .business-project-cell-icon--locate{color:var(--screen-icon-primary, #30dcff);background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.1);box-shadow:0 0 7px var(--screen-icon-glow, rgba(48, 220, 255, .22)),inset 0 0 7px #30dcff1f}.business-project-frame tbody tr.is-active .business-project-cell-icon--locate:after{background:#ffffff;box-shadow:0 0 8px #ffffffdb}.business-project-col-name{width:45%}.business-project-col-year{width:13%}.business-project-col-category{width:20%}.business-project-col-scale{width:22%}.business-project-empty{position:absolute;top:25px;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ffffff94;font-size:12px;pointer-events:none}.business-project-ledger{display:grid;grid-template-rows:28px 30px minmax(0,1fr);gap:7px;height:100%;padding:7px 10px 8px;box-sizing:border-box;overflow:hidden}.business-project-ledger__summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;min-width:0;padding:0 8px;border-left:2px solid #24f6c4;background:linear-gradient(90deg,rgba(36,246,196,.14),rgba(48,220,255,.04))}.business-project-ledger__summary-main{display:flex;align-items:baseline;min-width:0;gap:4px}.business-project-ledger__summary strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;line-height:22px;font-weight:800;text-shadow:0 0 10px rgba(36,246,196,.26)}.business-project-ledger__summary span,.business-project-ledger__summary small{overflow:hidden;color:#dff8ffad;font-size:11px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.business-project-ledger__summary small{color:#c9fbffc2}.business-project-ledger__pager{display:inline-flex;align-items:center;justify-content:end;gap:3px;min-width:0}.business-project-ledger__pager>span{min-width:26px;color:#d8f7fcb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:14px;text-align:center;white-space:nowrap}.business-project-ledger__page-button{display:inline-flex;width:18px;height:18px;padding:0;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.24);color:#d2f7ffdb;cursor:pointer;background:rgba(48,220,255,.06)}.business-project-ledger__page-button i{display:block;width:5px;height:5px;border-bottom:1px solid currentColor;border-left:1px solid currentColor;transform:rotate(45deg)}.business-project-ledger__page-button.is-next i{transform:rotate(225deg)}.business-project-ledger__page-button:hover:not(:disabled),.business-project-ledger__page-button:focus-visible:not(:disabled){outline:none;border-color:#24f6c4bd;color:#fff;background:rgba(36,246,196,.16)}.business-project-ledger__page-button:disabled{opacity:.3;cursor:default}.business-project-ledger__list{display:grid;grid-template-rows:repeat(var(--ledger-row-count, 15),minmax(0,1fr));padding-bottom:2px;overflow:hidden}.business-project-ledger__row{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;min-height:0;padding:5px 5px 5px 9px;border-bottom:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.022);box-sizing:border-box;outline:none}.business-project-ledger__row:nth-child(2n){background:rgba(36,246,196,.025)}.business-project-ledger__row.is-locatable{cursor:pointer}.business-project-ledger__row.is-locatable:hover,.business-project-ledger__row.is-locatable:focus-visible,.business-project-ledger__row.is-active{background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.055));box-shadow:inset 2px 0 #24f6c4d1}.business-project-ledger__row.is-unlocated{opacity:.66}.business-project-ledger__row .business-project-locate-button{justify-self:center}.business-project-ledger__row.is-active .business-project-cell-icon--locate{color:var(--screen-icon-primary, #30dcff);background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.1);box-shadow:0 0 7px var(--screen-icon-glow, rgba(48, 220, 255, .22)),inset 0 0 7px #30dcff1f}.business-project-ledger__row.is-active .business-project-cell-icon--locate:after{background:#ffffff;box-shadow:0 0 8px #ffffffdb}.business-project-ledger__info{display:grid;min-width:0;gap:4px}.business-project-ledger__info>strong{overflow:hidden;color:#f6fefff5;font-size:13px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.business-project-ledger__info>div{min-width:0}.business-project-ledger__info span{display:block;min-width:0;overflow:hidden;color:#cdeff8a8;font-size:11px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.business-project-ledger__unlocated{justify-self:center;color:#d6ebf17a;font-size:10px;line-height:12px;white-space:nowrap}.business-spec-grid{display:grid;grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:6px;height:100%;padding:7px 11px 9px;box-sizing:border-box;overflow:hidden}.business-spec-grid__row{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;grid-template-rows:minmax(18px,1fr) 23px;grid-template-areas:"index name count" "index specs count";column-gap:9px;align-items:center;min-width:0;padding:5px 8px 5px 7px;border:1px solid rgba(48,220,255,.16);border-left:2px solid rgba(36,246,196,.82);background:linear-gradient(90deg,rgba(22,119,135,.2),rgba(48,220,255,.025) 72%),rgba(2,23,35,.26);box-sizing:border-box}.business-spec-grid__row:nth-child(2){border-left-color:#30dcffe6}.business-spec-grid__row:nth-child(3){border-left-color:#8bf7ffc7}.business-spec-grid__index{grid-area:index;display:grid;width:24px;height:24px;place-items:center;align-self:center;border:1px solid rgba(36,246,196,.38);background:rgba(36,246,196,.08);color:#a4ffeceb;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;font-weight:800;line-height:1}.business-spec-grid__row:nth-child(2) .business-spec-grid__index{border-color:#30dcff70;background:rgba(48,220,255,.09);color:#b7f7fff2}.business-spec-grid__row:nth-child(3) .business-spec-grid__index{border-color:#8bf7ff6b;background:rgba(139,247,255,.08);color:#c9fbfff2}.business-spec-grid__name{grid-area:name;min-width:0;overflow:hidden;color:#f4fefff0;font-size:13px;line-height:17px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.business-spec-grid__count{grid-area:count;align-self:stretch;display:flex;min-width:53px;padding-left:10px;align-items:center;border-left:1px solid rgba(48,220,255,.18);color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:25px;line-height:27px;font-weight:800;text-align:right;white-space:nowrap;text-shadow:0 0 11px rgba(48,220,255,.36)}.business-spec-grid__count em{margin-left:2px;color:#e4faffa8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-spec-grid__specs{grid-area:specs;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0}.business-spec-grid__specs>span{display:flex;align-items:baseline;min-width:0;gap:4px;padding:2px 5px;background:rgba(2,33,45,.36)}.business-spec-grid__specs small,.business-spec-grid__specs strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-spec-grid__specs small{color:#d3f3faa8;font-size:10px;line-height:11px}.business-spec-grid__specs strong{color:#91faeffa;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:14px;font-weight:800}.business-spec-grid__specs strong em{margin-left:1px;color:#dcf9ff94;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-support-matrix{display:grid;grid-template-rows:16px 24px minmax(0,1fr);gap:4px;height:100%;padding:7px 11px 8px;box-sizing:border-box;overflow:hidden}.business-support-matrix__note{display:block;overflow:hidden;color:#d1f1f89e;font-size:10px;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.business-support-matrix__head,.business-support-matrix__body>div{display:grid;grid-template-columns:76px repeat(3,minmax(0,1fr));align-items:center;min-width:0}.business-support-matrix__head{border:1px solid rgba(48,220,255,.17);background:linear-gradient(90deg,rgba(48,220,255,.17),rgba(48,220,255,.06))}.business-support-matrix__head span{min-width:0;padding:0 5px;overflow:hidden;color:#e0f9ffc7;font-size:10px;line-height:13px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.business-support-matrix__head span:first-child{text-align:left}.business-support-matrix.is-with-total .business-support-matrix__head,.business-support-matrix.is-with-total .business-support-matrix__body>div{grid-template-columns:58px 50px repeat(3,minmax(0,1fr))}.business-support-matrix.is-with-total .business-support-matrix__head span:nth-child(2){color:#c9fbffdb}.business-support-matrix.is-with-total .business-support-matrix__total{color:#c9fbff;text-shadow:0 0 8px rgba(48,220,255,.2)}.business-support-matrix__body{display:grid;grid-template-rows:repeat(10,minmax(0,1fr));min-height:0;overflow:hidden;border:1px solid rgba(48,220,255,.1);border-top:0}.business-support-matrix__body>div{min-height:0;border-bottom:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.018)}.business-support-matrix__body>div:nth-child(2n){background:rgba(36,246,196,.025)}.business-support-matrix__body>div:last-child{border-bottom:0}.business-support-matrix__body span,.business-support-matrix__body strong{min-width:0;padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-support-matrix__body span{color:#edfdffd9;font-size:11px;line-height:14px}.business-support-matrix__body strong{color:#6df2e7f0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:14px;font-weight:800;text-align:center}.business-stack-columns{display:grid;grid-template-rows:24px minmax(0,1fr);gap:5px;height:100%;padding:8px 12px 6px;box-sizing:border-box;overflow:hidden}.business-stack-columns.is-dense .business-stack-chart{gap:4px}.business-stack-columns.is-dense .business-stack-track{width:18px}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-item{grid-template-rows:16px minmax(42px,1fr) 36px}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-total{grid-row:1}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-track{grid-row:2}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-item>span{grid-row:3}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-total{align-self:end;max-width:100%;overflow:hidden;color:#f5fdfff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;font-weight:800;line-height:15px;text-align:center;text-overflow:clip;white-space:nowrap;text-shadow:0 0 8px rgba(48,220,255,.3)}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-total em{margin-left:1px;color:#ebfcff9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-stack-columns.is-dense.is-with-values:not(.is-variant-dual) .business-stack-item{grid-template-rows:15px minmax(40px,1fr) 36px}.business-stack-columns.is-dense.is-with-values:not(.is-variant-dual) .business-stack-total{font-size:10px;line-height:14px}.business-stack-columns.is-dense.is-with-values:not(.is-variant-dual) .business-stack-total em{display:none}.business-stack-columns.is-variant-dual{grid-template-rows:24px minmax(0,1fr);gap:4px;padding:8px 14px 7px}.business-stack-columns.is-variant-dual .business-stack-legend{justify-content:center;gap:14px;padding-right:0}.business-stack-columns.is-variant-dual .business-stack-legend span{color:#f5fdffe6;font-size:11px;line-height:16px}.business-stack-columns.is-variant-dual .business-stack-legend i{width:8px;height:8px;border-radius:50%}.business-stack-columns.is-variant-dual .business-stack-chart{position:relative;grid-template-columns:repeat(auto-fit,minmax(62px,1fr));align-items:stretch;gap:14px;padding:1px 4px 0}.business-stack-columns.is-variant-dual .business-stack-chart:before{content:"";position:absolute;left:4px;right:4px;top:25px;bottom:31px;background:repeating-linear-gradient(to bottom,rgba(159,220,230,.15) 0 1px,transparent 1px 18px);pointer-events:none}.business-stack-columns.is-variant-dual .business-stack-item{position:relative;z-index:1;grid-template-rows:18px minmax(62px,1fr) 27px;justify-items:center;min-width:0}.business-stack-columns.is-variant-dual .business-stack-item.is-active .business-stack-track i{animation:businessDataPulse 1.8s ease-in-out infinite}.business-stack-columns.is-variant-dual .business-stack-item.is-active span,.business-stack-columns.is-variant-dual .business-stack-item.is-active strong{color:#fff}.business-stack-columns.is-variant-dual .business-stack-total{align-self:end;color:#f5fdffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:16px;white-space:nowrap;text-shadow:0 0 8px rgba(255,255,255,.22)}.business-stack-columns.is-variant-dual .business-stack-total em{margin-left:2px;color:#f5fdffad;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-stack-columns.is-variant-dual .business-stack-track{position:relative;align-self:end;width:25px;height:100%;min-height:58px;max-height:94px;overflow:visible;border:1px solid rgba(48,220,255,.14);background:linear-gradient(180deg,rgba(48,220,255,.09),rgba(48,220,255,.025)),rgba(5,30,42,.24);box-shadow:inset 0 0 10px #30dcff0d}.business-stack-columns.is-variant-dual .business-stack-track:after{content:"";position:absolute;left:50%;bottom:-6px;width:42px;height:8px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.34),rgba(48,220,255,0) 72%);transform:translate(-50%);pointer-events:none}.business-stack-columns.is-variant-dual .business-stack-track i{position:relative;display:block;min-height:3px;box-shadow:0 0 14px color-mix(in srgb,currentColor 44%,transparent),inset 0 1px #ffffff3d}.business-stack-columns.is-variant-dual .business-stack-track i:last-child:before{content:"";position:absolute;left:0;right:0;top:-5px;height:8px;background:inherit;filter:brightness(1.22);transform:skew(-32deg);transform-origin:left bottom}.business-stack-columns.is-variant-dual .business-stack-item span{max-width:60px;color:#fafeffd1;font-size:11px;line-height:13px;white-space:nowrap;-webkit-line-clamp:1}.business-stack-columns.is-variant-parkSlim{grid-template-rows:24px minmax(0,1fr);gap:2px;padding:5px 20px 6px}.business-stack-columns.is-variant-parkSlim .business-stack-legend{justify-content:center;gap:22px;padding-right:0}.business-stack-columns.is-variant-parkSlim .business-stack-legend span{color:#f5fdffe0;font-size:11px;line-height:16px;font-weight:700}.business-stack-columns.is-variant-parkSlim .business-stack-legend i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 3px currentColor}.business-stack-columns.is-variant-parkSlim .business-stack-unit{margin-left:6px;color:#ebfcffc7;font-size:11px;font-weight:700}.business-stack-columns.is-variant-parkSlim .business-stack-chart{position:relative;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:30px;padding:1px 10px 0}.business-stack-columns.is-variant-parkSlim .business-stack-chart:before{content:"";position:absolute;left:8px;right:8px;top:26px;bottom:41px;background:repeating-linear-gradient(to bottom,rgba(194,238,246,.14) 0 1px,transparent 1px 22px);pointer-events:none}.business-stack-columns.is-variant-parkSlim .business-stack-item{position:relative;z-index:1;grid-template-rows:18px minmax(86px,1fr) 40px;min-width:0;overflow:visible}.business-stack-columns.is-variant-parkSlim .business-stack-total{align-self:end;color:#fafefff5;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:16px;font-weight:800;white-space:nowrap;text-shadow:0 0 5px rgba(255,255,255,.2)}.business-stack-columns.is-variant-parkSlim .business-stack-total em{margin-left:2px;color:#ebfcffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-stack-columns.is-variant-parkSlim .business-stack-track{position:relative;align-self:end;width:18px;height:100%;min-height:78px;max-height:118px;overflow:visible;border:0;background:linear-gradient(180deg,rgba(48,220,255,.1),rgba(48,220,255,.035));box-shadow:none}.business-stack-columns.is-variant-parkSlim .business-stack-track:before{content:"";position:absolute;left:50%;bottom:0;width:38px;height:1px;background:linear-gradient(90deg,transparent,rgba(180,248,255,.35),transparent);transform:translate(-50%)}.business-stack-columns.is-variant-parkSlim .business-stack-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:34px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.22),rgba(48,220,255,0) 72%);transform:translate(-50%);pointer-events:none}.business-stack-columns.is-variant-parkSlim .business-stack-track i{position:relative;display:block;min-height:3px;box-shadow:inset 0 1px #ffffff47,0 0 3px color-mix(in srgb,currentColor 32%,transparent)}.business-stack-columns.is-variant-parkSlim .business-stack-track i:first-child{border-radius:0 0 8px 8px}.business-stack-columns.is-variant-parkSlim .business-stack-track i:last-child{border-radius:8px 8px 0 0}.business-stack-columns.is-variant-parkSlim .business-stack-track i:last-child:before{content:"";position:absolute;left:2px;right:2px;top:-4px;height:6px;border-radius:50%;background:rgba(238,255,255,.82);box-shadow:0 0 4px #eeffff5c}.business-stack-columns.is-variant-parkSlim .business-stack-item span{align-self:center;width:18px;height:40px;color:#fafeffeb;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0;text-align:center;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;overflow:visible;-webkit-line-clamp:unset}.business-stack-columns.is-variant-parkSlim .business-stack-item.is-active .business-stack-track i{animation:none}.business-stack-columns.is-variant-parkSlim .business-stack-item.is-active span,.business-stack-columns.is-variant-parkSlim .business-stack-item.is-active strong{color:#fff}.business-stack-legend{display:flex;justify-content:center;gap:9px;min-width:0;overflow:hidden}.business-stack-legend span{display:inline-flex;align-items:center;gap:4px;min-width:0;color:#ffffffd1;font-size:10px;line-height:14px;white-space:nowrap}.business-stack-legend i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px currentColor}.business-stack-unit{align-self:center;margin-left:2px;color:#d8f7fc9e;font-size:10px;line-height:14px;white-space:nowrap}.business-stack-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(24px,1fr));align-items:stretch;gap:6px;min-height:0}.business-stack-item{display:grid;grid-template-rows:minmax(42px,1fr) 36px;justify-items:center;min-width:0}.business-stack-item span{align-self:center;max-width:100%;color:#ffffffb8;font-size:10px;line-height:12px;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-line;word-break:keep-all}.business-stack-track{display:flex;flex-direction:column-reverse;align-self:end;width:20px;height:100%;min-height:48px;max-height:96px;background:linear-gradient(180deg,rgba(48,220,255,.09),rgba(48,220,255,.02));border:1px solid rgba(48,220,255,.12);overflow:hidden}.business-stack-track i{display:block;min-height:2px;box-shadow:0 0 10px #30dcff57}.business-panel.is-column-label-standard .business-columns{grid-template-columns:repeat(auto-fit,minmax(20px,1fr));padding:20px 12px 8px}.business-panel.is-column-label-standard .business-columns.is-dense.is-scrollable{display:grid;grid-template-columns:repeat(auto-fit,minmax(20px,1fr));align-items:stretch;gap:4px;overflow-x:hidden;overflow-y:visible;overscroll-behavior-x:auto;scrollbar-width:none}.business-panel.is-column-label-standard .business-columns.is-dense.is-scrollable::-webkit-scrollbar{display:none}.business-panel.is-column-label-standard .business-columns.is-dense.is-scrollable .business-column-item{flex:none;width:auto;min-width:0;height:auto}.business-panel.is-column-label-standard .business-columns:before{top:36px;bottom:44px}.business-panel.is-column-label-standard .business-columns.is-variant-slim,.business-panel.is-column-label-standard .business-columns.is-variant-plain,.business-panel.is-column-label-standard .business-columns.is-variant-age,.business-panel.is-column-label-standard .business-columns.is-variant-water,.business-panel.is-column-label-standard .business-columns.is-variant-compact{padding-top:20px}.business-panel.is-column-label-standard .business-columns.is-dense,.business-panel.is-column-label-standard .business-columns.is-variant-slim.is-dense{padding-top:22px}.business-panel.is-column-label-standard .business-columns.has-unit-label,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-plain,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-slim,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-age,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-water,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-townCompact,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-compact{padding-top:34px}.business-panel.is-column-label-standard .business-columns.has-unit-label:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-plain:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-slim:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-age:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-water:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-townCompact:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-compact:before{top:50px}.business-panel.is-column-label-standard .business-column-item{position:relative;grid-template-rows:minmax(70px,1fr) 42px;overflow:visible}.business-panel.is-column-label-standard .business-column-item span,.business-panel.is-column-label-standard .business-stack-item span,.business-panel.is-column-label-standard .business-peak-item span{display:block;align-self:center;width:18px;height:42px;max-width:none;color:#ffffffe6;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0;text-align:center;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;overflow:hidden;text-overflow:clip;-webkit-line-clamp:unset;word-break:keep-all}.business-panel.is-column-label-standard .business-column-track{align-self:end}.business-panel.is-column-label-standard .business-column-item:after,.business-panel.is-column-label-standard .business-stack-item:after,.business-panel.is-column-label-standard .business-peak-item:after{content:attr(data-hover-value);position:absolute;left:50%;top:0;z-index:8;max-width:128px;padding:4px 8px;border:1px solid rgba(36,246,196,.46);background:rgba(3,24,36,.94);box-shadow:0 0 14px #24f6c442;color:#fff;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;pointer-events:none;transform:translate(-50%,2px);transition:opacity .16s ease,transform .16s ease}.business-panel.is-column-label-standard .business-column-item:hover:after,.business-panel.is-column-label-standard .business-stack-item:hover:after,.business-panel.is-column-label-standard .business-peak-item:hover:after{opacity:1;transform:translate(-50%)}.business-panel.is-column-label-standard .business-peaks,.business-panel.is-column-label-standard .business-peaks.is-dense{grid-template-columns:repeat(auto-fit,minmax(20px,1fr));gap:4px;padding:34px 10px 8px;overflow:hidden}.business-panel.is-column-label-standard .business-peak-item,.business-panel.is-column-label-standard .business-peaks.is-dense .business-peak-item{position:relative;grid-template-rows:minmax(44px,1fr) 42px;min-width:0;overflow:visible}.business-panel.is-column-label-standard .business-peaks.is-dense .business-peak-item span{width:18px;height:42px;max-height:none;line-height:16px;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap}.business-panel.is-column-label-standard .business-peak-stage{align-self:end;min-height:42px}.business-panel.is-column-label-standard .business-peaks.is-dense .business-peak-stage{min-height:42px}.business-panel.is-column-label-standard .business-line{grid-template-rows:minmax(0,1fr) 42px}.business-panel.is-column-label-standard .business-line-labels{align-items:start}.business-panel.is-column-label-standard .business-line-labels span{display:block;justify-self:center;width:18px;height:42px;color:#ffffffe6;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0;text-align:center;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;overflow:hidden;text-overflow:clip;word-break:keep-all}.business-panel.is-column-label-standard .business-stack-columns{grid-template-rows:22px minmax(0,1fr);padding-bottom:7px}.business-panel.is-column-label-standard .business-stack-item{position:relative;grid-template-rows:minmax(44px,1fr) 42px;overflow:visible}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns{padding-bottom:9px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-slim,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear{padding-bottom:14px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:8px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-column-item,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-plain .business-column-item{grid-template-rows:minmax(70px,1fr) 28px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear .business-column-item,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-slim .business-column-item{grid-template-rows:minmax(76px,1fr) 24px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-column-item span,.business-panel.is-column-label-standard.is-column-label-horizontal .business-line-labels span{width:auto;height:auto;max-width:68px;color:#ffffffe6;font-size:12px;line-height:14px;writing-mode:horizontal-tb;text-orientation:mixed;white-space:nowrap;overflow:visible;text-overflow:clip}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear .business-column-item span,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-slim .business-column-item span{max-width:72px;font-size:12px;line-height:15px}.business-peaks{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:8px;height:100%;padding:8px 15px 7px;box-sizing:border-box;overflow:hidden}.business-peak-unit{right:15px}.business-peaks.is-dense{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:8px 8px 7px}.business-peak-item{display:grid;grid-template-rows:18px minmax(0,1fr) 22px;justify-items:center;min-width:0}.business-peak-item strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:16px;text-shadow:0 0 12px rgba(48,220,255,.45);white-space:nowrap}.business-peak-item strong em{margin-left:2px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-peak-item span{align-self:center;max-width:100%;color:#ffffffad;font-size:10px;line-height:12px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-peaks.is-dense .business-peak-item{grid-template-rows:17px minmax(0,1fr) 24px}.business-peaks.is-dense .business-peak-item strong{font-size:11px;line-height:15px;transform:scale(.92);transform-origin:center top}.business-peaks.is-dense .business-peak-item span{line-height:11px;white-space:pre-line;writing-mode:horizontal-tb;max-height:24px}.business-peak-stage{position:relative;width:100%;min-height:62px;align-self:stretch}.business-peak-stage:before{content:"";position:absolute;left:8px;right:8px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.6),transparent)}.business-peak-stage i{position:absolute;left:50%;bottom:0;width:34px;height:var(--peak-height);min-height:20px;max-height:100%;transform:translate(-50%);background:radial-gradient(ellipse at 50% 100%,var(--peak-color) 0,rgba(36,246,196,.26) 22%,rgba(36,246,196,0) 62%),linear-gradient(180deg,var(--peak-color),rgba(36,246,196,.04));clip-path:polygon(50% 0,68% 32%,78% 100%,22% 100%,32% 32%);filter:drop-shadow(0 0 9px rgba(48,220,255,.42))}.business-peak-stage i:after{content:"";position:absolute;left:50%;top:0;width:5px;height:5px;border-radius:50%;background:#ffffff;box-shadow:0 0 9px var(--peak-color);transform:translate(-50%)}.business-peaks.is-dense .business-peak-stage{min-height:58px}.business-peaks.is-dense .business-peak-stage:before{left:4px;right:4px}.business-peaks.is-dense .business-peak-stage i{width:24px}.business-line{display:grid;grid-template-rows:minmax(0,1fr) 31px;gap:2px;height:100%;padding:6px 10px;box-sizing:border-box;overflow:hidden}.business-line-chart{position:relative;min-height:0;background:linear-gradient(180deg,rgba(48,220,255,.08),rgba(48,220,255,.02));border:1px solid rgba(48,220,255,.1);overflow:visible}.business-line-chart svg{width:100%;height:100%}.business-line-grid{stroke:#ffffff1a;stroke-width:1}.business-line-area{fill:#30dcff21;stroke:none}.business-line-stroke{fill:none;stroke:#8bf7ff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 7;animation:businessLineFlow 2.2s linear infinite}.business-line-dot{fill:#fff;stroke:#8bf7ff;stroke-width:1.6;animation:businessDotPulse 2.2s ease-in-out infinite;transition:r .28s ease,fill .28s ease,stroke .28s ease,stroke-width .28s ease,filter .28s ease;transform-box:fill-box;transform-origin:center}.business-line-dot.is-active{r:5.6;fill:#fff;stroke:#fff;stroke-width:2.2;filter:drop-shadow(0 0 4px rgba(255,255,255,.76)) drop-shadow(0 0 9px rgba(139,247,255,.62));animation:businessActiveDotPulse 1.35s ease-in-out infinite}.business-line-hit{fill:transparent;stroke:transparent;cursor:pointer;pointer-events:all}.business-line-hover-zones{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;z-index:1}.business-line-hover-zones i{display:block;min-width:0;cursor:pointer}.business-line-tooltip{position:absolute;z-index:3;min-width:86px;padding:5px 8px;border:1px solid rgba(48,220,255,.34);background:rgba(3,18,30,.9);box-shadow:0 0 14px #30dcff38;transform:translate(-50%,calc(-100% - 8px));pointer-events:none;transition:left .28s ease,top .28s ease,transform .28s ease}.business-line-tooltip span{display:block;color:#dcf8ffc7;font-size:10px;line-height:12px;white-space:nowrap}.business-line-tooltip strong{display:block;margin-top:2px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:16px;line-height:18px}.business-line-tooltip strong em{margin-left:3px;color:#ffffff9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-line-labels{display:grid;gap:2px;min-width:0;align-items:start;min-height:0;overflow:hidden}.business-line-labels span{min-width:0;color:#ffffff9e;font-size:10px;line-height:12px;text-align:center;overflow:visible;text-overflow:clip;white-space:pre-line;writing-mode:horizontal-tb;justify-self:center;max-height:none}.business-heat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:7px;height:100%;padding:8px 14px 9px;box-sizing:border-box;overflow:hidden}.business-heat.is-dense{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px 10px 9px}.business-heat.is-dense .business-heat-cell{grid-template-rows:12px 16px 22px;gap:2px;padding:6px 4px 5px}.business-heat.is-dense .business-heat-cell strong{font-size:14px;line-height:16px}.business-heat-cell{position:relative;display:grid;grid-template-rows:12px 16px minmax(20px,auto);align-items:center;align-content:center;justify-items:center;gap:3px;min-width:0;min-height:0;padding:6px 5px 5px;border:1px solid rgba(62,226,255,.2);background:linear-gradient(180deg,var(--heat-bg),rgba(48,220,255,.018)),rgba(6,30,45,.32);box-shadow:inset 0 0 0 1px #30dcff06;overflow:hidden}.business-heat-cell i{width:7px;height:7px;border:1px solid var(--heat-color);border-radius:50%;background:rgba(48,220,255,.08);box-shadow:none}.business-heat-cell span{max-width:100%;color:#e2f9ffc7;font-size:10px;line-height:11px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.business-heat-cell strong{max-width:100%;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-heat-cell strong em{margin-left:2px;color:#f6fdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-split{display:grid;grid-template-rows:42px minmax(0,1fr);gap:10px;height:100%;padding:13px 16px;box-sizing:border-box;overflow:hidden}.business-split.is-dense{grid-template-rows:18px minmax(0,1fr);gap:4px;padding:6px 10px}.business-split.is-dense .business-split-band{height:auto}.business-split.is-dense .business-split-list{grid-auto-rows:minmax(0,1fr);height:auto;gap:2px;overflow:hidden}.business-split.is-dense .business-split-row{min-height:0;padding:0 5px}.business-split.is-dense .business-split-row span{font-size:10px;line-height:11px}.business-split.is-dense .business-split-row strong{font-size:11px;line-height:12px}.business-split-band{display:flex;height:auto;padding:3px;background:rgba(48,220,255,.07);border:1px solid rgba(62,226,255,.2)}.business-split-band i{display:block;min-width:8px;height:100%}.business-split-list{display:grid;grid-auto-rows:minmax(26px,1fr);gap:6px;min-height:0;height:auto;overflow-y:auto;padding-right:3px}.business-split-list::-webkit-scrollbar{width:3px}.business-split-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-split-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:26px;padding:0 9px;background:rgba(48,220,255,.035);border:1px solid rgba(62,226,255,.16)}.business-split-row span{display:flex;align-items:center;min-width:0;color:#ffffffb8;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-split-row span i{flex:0 0 auto;width:8px;height:8px;margin-right:7px}.business-panel{color:#f4feff}.business-panel-empty{color:#e0faffd1}.business-metric-item,.business-icon-metric-item,.business-spotlight-main,.business-spotlight-chip,.business-structure-focus,.business-structure-row,.business-line-chart,.business-heat-cell,.business-split-row{border-color:#3ce1ff33;background-color:#061e2d61;box-shadow:inset 0 0 0 1px #30dcff0a}.business-metric-item span,.business-icon-metric-copy span,.business-spotlight-main span,.business-spotlight-chip span,.business-donut-row span,.business-structure-focus span,.business-structure-row span,.business-bar-name,.business-column-item span,.business-peak-item span,.business-line-labels span,.business-heat-cell span,.business-split-row span{color:#ecfcffeb}.business-icon-metric-copy strong,.business-spotlight-main strong,.business-donut-row strong,.business-structure-focus strong,.business-structure-row strong,.business-column-item strong,.business-peak-item strong,.business-heat-cell strong{color:#fff;text-shadow:0 0 4px rgba(48,220,255,.28)}.business-metric-item strong,.business-spotlight-chip strong,.business-bar-row strong,.business-split-row strong,.business-structure-focus em{color:#38f8ff;text-shadow:0 0 4px rgba(48,220,255,.32)}.business-metric-item em,.business-icon-metric-copy strong em,.business-spotlight-main strong em,.business-spotlight-chip strong em,.business-donut-row em,.business-structure-row strong em,.business-bar-row strong em,.business-bar-row strong small,.business-heat-cell strong em{color:#eefdffb8}.business-spotlight-main small,.business-spotlight-chip small,.business-structure-focus small,.business-structure-row small{color:#c9fbffeb}.business-bar-track,.business-column-track,.business-split-band{border-color:#48e4ff42;background:rgba(60,225,255,.12);box-shadow:inset 0 0 0 1px #30dcff0d}.business-bar-track i,.business-column-track i,.business-split-band i{box-shadow:0 0 3px #30dcff1f}.business-bars.is-capacity .business-bar-name{color:#ecfcffeb}.business-bars.is-capacity .business-bar-row strong{color:#24f6c4;text-shadow:0 0 4px rgba(36,246,196,.3)}.business-line-grid{stroke:#d5f7ff33}.business-line-area{fill:#30dcff29}.business-line-stroke{filter:drop-shadow(0 0 2px rgba(139,247,255,.42))}.business-line-dot{filter:drop-shadow(0 0 2px rgba(48,220,255,.46))}.business-line-dot.is-active{filter:drop-shadow(0 0 4px rgba(255,255,255,.72)) drop-shadow(0 0 9px rgba(139,247,255,.62))}.business-panel,.business-panel span,.business-panel strong,.business-panel em,.business-panel small{color:#fff;text-shadow:none}.business-panel .business-bar-name,.business-panel .business-donut-row span,.business-panel .business-structure-row span,.business-panel .business-column-item span,.business-panel .business-peak-item span,.business-panel .business-line-labels span,.business-panel .business-heat-cell span,.business-panel .business-split-row span,.business-panel .business-icon-metric-copy span,.business-panel .business-spotlight-chip span,.business-panel .business-bar-row strong,.business-panel .business-split-row strong,.business-panel .business-metric-item strong,.business-panel .business-spotlight-chip strong,.business-panel .business-structure-focus em{color:#fff}.business-panel .business-bar-name,.business-panel .business-bar-row strong,.business-panel .business-bar-row strong em,.business-panel .business-bar-row strong small,.business-panel .business-column-unit,.business-panel .business-donut-row span,.business-panel .business-donut-row strong,.business-panel .business-donut-row em,.business-panel .business-icon-metric-copy span,.business-panel .business-icon-metric-copy strong,.business-panel .business-icon-metric-copy strong em,.business-panel .business-line-labels span,.business-panel .business-metric-item span,.business-panel .business-metric-item strong,.business-panel .business-metric-item em,.business-panel .business-spotlight-main span,.business-panel .business-spotlight-main strong,.business-panel .business-spotlight-main strong em,.business-panel .business-spotlight-main small,.business-panel .business-spotlight-chip span,.business-panel .business-spotlight-chip strong,.business-panel .business-spotlight-chip strong em,.business-panel .business-spotlight-chip small,.business-panel .business-structure-focus span,.business-panel .business-structure-focus strong,.business-panel .business-structure-focus em,.business-panel .business-structure-focus small,.business-panel .business-structure-row span,.business-panel .business-structure-row strong,.business-panel .business-structure-row strong em,.business-panel .business-structure-row small,.business-panel .business-column-item strong,.business-panel .business-peak-item strong,.business-panel .business-heat-cell strong,.business-panel .business-heat-cell strong em,.business-panel .business-split-row strong{color:var(--screen-color-text-strong, #ffffff)!important;text-shadow:none!important}.business-panel .business-column-item span,.business-panel .business-peak-item span,.business-panel .business-heat-cell span,.business-panel .business-split-row span{color:var(--screen-color-text-secondary, rgba(246, 253, 255, .9))!important;text-shadow:none!important}.business-panel .business-column-unit{color:var(--screen-color-text-muted, rgba(240, 252, 255, .86))!important}.business-project-frame th,.business-project-frame td{font-size:var(--screen-table-body-size, 11px)!important;line-height:13px!important}.business-project-frame strong,.business-project-ledger__info>strong,.business-support-matrix__body strong,.business-table-row strong{font-size:var(--screen-table-value-size, 12px)!important;line-height:14px!important}.business-project-ledger__summary strong{font-size:18px!important;line-height:20px!important}.business-project-ledger__info>span,.business-project-ledger__info span,.business-spec-grid__specs small,.business-support-matrix__head span,.business-support-matrix__body span,.business-table-name{font-size:10px!important;line-height:13px!important}.business-spec-grid__name{font-size:11px!important;line-height:14px!important}.business-spec-grid__index{width:22px!important;height:22px!important;font-size:11px!important}.business-spec-grid__count{min-width:46px!important;font-size:20px!important;line-height:22px!important}.business-spec-grid__specs strong{font-size:11px!important;line-height:13px!important}.business-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.business-balance-gauge-grid.is-single{grid-template-columns:minmax(0,1fr);padding:12px 16px 14px}.business-balance-gauge-grid.is-single .business-balance-gauge-card{width:min(230px,100%);justify-self:center;grid-template-rows:30px minmax(92px,1fr) 24px;padding:10px 16px 12px}.business-balance-gauge-grid.is-single .business-balance-gauge-ring{width:min(122px,56%)}.business-balance-gauge-grid.is-single .business-balance-gauge-value strong{font-size:26px;line-height:30px}.business-balance-gauge-grid.is-single .business-balance-gauge-name{font-size:16px}.business-balance-gauge-grid.is-single .business-balance-gauge-extra{display:none}.business-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:30px minmax(70px,1fr) 22px 16px;justify-items:center;padding:9px 7px 8px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.business-balance-gauge-card:before{position:absolute;top:8px;right:8px;bottom:8px;left:8px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.business-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.business-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.business-balance-gauge-head strong{width:100%;overflow:hidden;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-overflow:ellipsis;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent);white-space:nowrap}.business-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(92px,82%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.business-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.business-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.business-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.business-balance-gauge-value strong{color:#fff!important;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:22px;line-height:26px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)!important}.business-balance-gauge-value em{margin-left:2px;color:#eefdffc2!important;font-size:11px;font-style:normal;font-weight:800}.business-balance-gauge-name,.business-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.business-balance-gauge-name{color:#fff!important;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)!important}.business-balance-gauge-extra{color:#eefdffa8!important;font-size:11px;line-height:16px;font-weight:700}.business-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:100%;padding:9px 12px 8px;box-sizing:border-box;overflow:hidden}.business-gauges.is-dense{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:7px;padding:8px 12px}.business-gauge-item{position:relative;display:grid;grid-template-rows:minmax(0,1fr) 17px 14px;align-items:center;justify-items:center;min-width:0;min-height:0;padding:6px 4px 5px;border:1px solid rgba(48,220,255,.17);background:radial-gradient(circle at 50% 58%,rgba(48,220,255,.15),rgba(48,220,255,.02) 64%),linear-gradient(180deg,rgba(48,220,255,.09),rgba(5,26,39,.34));box-shadow:inset 0 0 18px #30dcff14;overflow:hidden}.business-gauge-item:before{content:"";position:absolute;left:14px;right:14px;bottom:31px;height:18px;border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--gauge-color) 48%,transparent),rgba(48,220,255,0));filter:blur(2px);opacity:.58;pointer-events:none}.business-gauge-item.is-active{border-color:color-mix(in srgb,var(--gauge-color) 58%,rgba(48,220,255,.22));box-shadow:inset 0 0 20px #30dcff1a,0 0 10px color-mix(in srgb,var(--gauge-color) 26%,transparent)}.business-gauge-item.is-alert{background:radial-gradient(circle at 50% 58%,rgba(255,191,90,.17),rgba(48,220,255,.02) 66%),linear-gradient(180deg,rgba(48,220,255,.08),rgba(5,26,39,.34))}.business-gauge-item.is-safe{background:radial-gradient(circle at 50% 58%,rgba(36,246,196,.15),rgba(48,220,255,.02) 66%),linear-gradient(180deg,rgba(48,220,255,.08),rgba(5,26,39,.34))}.business-gauge-item.is-low-rate:before{opacity:.34}.business-gauge-item.is-low-rate .business-gauge-progress{stroke-width:6;stroke-linecap:butt;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--gauge-color) 66%,transparent))}.business-gauge-item.is-low-rate .business-gauge-needle{width:18px;height:3px;opacity:.86}.business-gauge-item.is-low-rate .business-gauge-pivot{width:7px;height:7px}.business-gauge-visual{position:relative;align-self:end;width:100%;max-width:116px;height:82px;min-width:0}.business-gauge-visual svg{position:absolute;left:0;top:0;width:100%;height:72px;overflow:visible}.business-gauge-track,.business-gauge-progress,.business-gauge-glow{fill:none;stroke-linecap:round}.business-gauge-track{stroke:#aaeeff2b;stroke-width:10}.business-gauge-progress{stroke:var(--gauge-color);stroke-width:10;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--gauge-color) 72%,transparent))}.business-gauge-glow{stroke:#30dcff29;stroke-width:1.5;stroke-dasharray:3 6}.business-gauge-needle{position:absolute;left:50%;top:64px;width:42px;height:2px;border-radius:2px;background:linear-gradient(90deg,#ffffff 0%,var(--gauge-color) 76%,rgba(255,255,255,0));box-shadow:0 0 7px color-mix(in srgb,var(--gauge-color) 72%,transparent);transform:rotate(var(--needle-rotate));transform-origin:2px 50%}.business-gauge-pivot{position:absolute;left:50%;top:64px;width:9px;height:9px;border:2px solid rgba(255,255,255,.88);border-radius:50%;background:var(--gauge-color);box-shadow:0 0 8px color-mix(in srgb,var(--gauge-color) 72%,transparent);transform:translate(-50%,-50%)}.business-gauge-value{position:absolute;left:0;right:0;top:28px;text-align:center;pointer-events:none}.business-gauge-value strong{display:block;color:#fff!important;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:19px;font-weight:800;text-shadow:0 0 8px rgba(48,220,255,.42)!important;white-space:nowrap}.business-gauge-value strong em{margin-left:2px;color:#eefdffc2!important;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-gauge-value small{display:block;margin-top:2px;color:var(--gauge-color)!important;font-size:10px;line-height:12px;white-space:nowrap}.business-gauge-name,.business-gauge-extra{position:relative;z-index:1;display:block;max-width:100%;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.business-gauge-name{color:#fff!important;font-size:12px;line-height:16px;font-weight:700}.business-gauge-extra{color:#eefdffad!important;font-size:10px;line-height:13px}.business-icon-metric-item{border-color:#30dcff29!important;background:linear-gradient(90deg,rgba(48,220,255,.075),rgba(48,220,255,.02)),linear-gradient(180deg,rgba(8,41,56,.7),rgba(4,20,32,.62))!important}.business-icon-metric-item:before{background:var(--screen-icon-primary, #30dcff)!important;box-shadow:0 0 5px var(--screen-icon-glow, rgba(48, 220, 255, .22))!important}.business-icon-metric-item.is-tone-1:before,.business-icon-metric-item.is-tone-2:before,.business-icon-metric-item.is-tone-3:before{background:var(--screen-icon-primary, #30dcff)!important;box-shadow:0 0 5px var(--screen-icon-glow, rgba(48, 220, 255, .22))!important}.business-icon-metric-mark{width:var(--screen-icon-size, 42px)!important;height:var(--screen-icon-size, 42px)!important;border-color:var(--screen-icon-border, rgba(48, 220, 255, .42))!important;background:radial-gradient(circle at 50% 42%,rgba(48,220,255,.16),rgba(48,220,255,.035) 64%),linear-gradient(135deg,rgba(48,220,255,.15),rgba(4,24,36,.24))!important;box-shadow:inset 0 0 12px #30dcff1a,0 0 5px var(--screen-icon-glow, rgba(48, 220, 255, .22))!important}.business-icon-metric-mark:before,.business-icon-metric-mark:after,.business-icon-metric-mark span,.business-icon-metric-mark span:before,.business-icon-metric-mark span:after{border-color:var(--screen-icon-primary, #30dcff)!important;background:var(--screen-icon-primary, #30dcff)!important;background-color:var(--screen-icon-primary, #30dcff)!important;box-shadow:0 0 4px #30dcff33!important}.business-icon-metric-mark.is-yield span,.business-icon-metric-mark.is-leaf span,.business-icon-metric-mark.is-stack span,.business-icon-metric-mark.is-stack span:before,.business-icon-metric-mark.is-stack span:after{background:linear-gradient(180deg,rgba(139,247,255,.96),rgba(48,220,255,.76))!important}.business-icon-metric-mark.is-rate:before{background:transparent!important;border-width:3px!important;border-color:#30dcffb8!important;border-top-color:#ffffffdb!important}.business-icon-metric-mark.is-area:before{background:linear-gradient(135deg,rgba(48,220,255,.28),rgba(48,220,255,.08))!important}.business-icon-metric-mark.is-risk:before{background:transparent!important;border-left-color:var(--screen-icon-primary, #30dcff)!important;border-bottom-color:var(--screen-icon-primary, #30dcff)!important}.business-project-cell-icon,.business-project-cell-icon--locate,tbody tr.is-active .business-project-cell-icon--locate{color:var(--screen-icon-primary, #30dcff)!important;filter:none!important}.business-project-cell-icon:hover,.business-project-cell-icon:focus-visible{color:#fff!important;filter:none!important}.business-project-cell-icon--locate,tbody tr.is-active .business-project-cell-icon--locate{background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.08)!important;box-shadow:0 0 5px #30dcff3d,inset 0 0 5px #30dcff1a!important}tbody tr.is-active .business-project-cell-icon--locate:after{background:#ffffff!important;box-shadow:0 0 5px #ffffff7a!important}.feature-info-actions{display:flex;align-items:center;gap:8px}.feature-info-actions span{color:#91f6ffc7;font-size:11px;line-height:22px}.feature-info-actions button{height:24px;min-width:48px;padding:0 10px;border:1px solid rgba(112,231,255,.34);background:rgba(7,31,46,.78);color:#eefdffdb;font-size:11px;line-height:22px;cursor:pointer}.feature-info-actions button:hover,.feature-info-actions button:focus-visible{border-color:#7ef5ffc2;background:rgba(34,135,157,.42);color:#fff;outline:none}.feature-info{display:block;height:100%;padding:10px 12px 12px;box-sizing:border-box;overflow:hidden}.feature-info-state{height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff85;font-size:14px;text-align:center}.feature-info-state.is-inline{height:190px}.feature-table{display:flex;flex-direction:column;height:100%;max-height:100%;padding-right:5px;overflow-y:auto}.feature-table::-webkit-scrollbar{width:4px}.feature-table::-webkit-scrollbar-thumb{background:rgba(48,220,255,.32)}.feature-row{display:grid;grid-template-columns:108px minmax(0,1fr);min-height:34px;align-items:stretch;border:1px solid rgba(48,220,255,.13);border-top:0;background:rgba(5,24,37,.56)}.feature-row:first-child{border-top:1px solid rgba(48,220,255,.13)}.feature-row span{display:flex;align-items:center;padding:7px 10px;border-right:1px solid rgba(48,220,255,.13);background:rgba(48,220,255,.08);color:#ffffff8f;font-size:12px;line-height:18px}.feature-row strong{display:flex;align-items:center;min-width:0;padding:7px 11px;color:#effcfff0;font-size:13px;font-weight:600;line-height:18px;word-break:break-word}.feature-row:first-child strong,.feature-row:nth-child(2) strong{color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px} diff --git a/docs/assets/LayerPanel-4a87f4f0-1784043664472.js b/docs/assets/LayerPanel-4a87f4f0-1784043664472.js new file mode 100644 index 0000000..d3bb8db --- /dev/null +++ b/docs/assets/LayerPanel-4a87f4f0-1784043664472.js @@ -0,0 +1 @@ +import{g as o,o as r,C as P,x as q,a as u,n as g,c as s,F as h,y as k,f as m,t as b,j as A,J as z}from"./index-1784043664472.js";import{_ as H}from"./index-e3442fcf-1784043664472.js";import{b as j}from"./townshipBoundaries-1b068bef-1784043664472.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],I=["onClick"],J={key:0,class:"layer-panel-empty"},R={class:"layer-panel-legend"},$=["disabled","title","onClick"],G={class:"legend-name"},Q={key:0,class:"legend-check"},U={key:1,class:"layer-panel-empty is-legend"},Z={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:232},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(y,{emit:V}){const t=y,p=V,v=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),f=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),d=o(()=>Array.isArray(t.legends)?t.legends:[]),L=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),C=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),B=o(()=>d.value.filter(_).length>1),K=o(()=>d.value.length===1),x=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),O=o(()=>{const n=t.legendOnly?0:v.value.length+f.value.length,l=t.compact?d.value.length:Math.ceil(d.value.length/2),e=n?n*32:30,a=d.value.length?30+Math.max(28,l*28):28;return Math.max(172,Math.min(520,96+e+a))}),M=o(()=>t.compact?t.height||O.value:t.height?t.height:430);function T(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const i=new Set(L.value);i.has(l)?i.delete(l):i.add(l),p("update:modelValue",Array.from(i));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return L.value.includes(String(n))}function N(n,l){var a,i;(i=(a=n.currentTarget)==null?void 0:a.blur)==null||i.call(a);const e=new Set(C.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function w(n){return C.value.includes(String(n))}function F(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),c(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function _(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function c(n){return B.value&&_(n)}return(n,l)=>(r(),P(H,{title:x.value,width:y.width,height:M.value},{default:q(()=>[u("div",{class:g(["layer-panel",{"is-legend-only":y.legendOnly,"is-compact":y.compact}])},[y.legendOnly?A("",!0):(r(),s("div",D,[(r(!0),s(h,null,k(v.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=m(()=>{},["prevent"])),onClick:a=>T(a,e.key)},[u("span",null,b(e.name),1),l[3]||(l[3]=u("i",null,null,-1))],42,E))),128)),(r(!0),s(h,null,k(f.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":w(e.key),"is-checked":w(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=m(()=>{},["prevent"])),onClick:a=>N(a,e.key)},[u("span",null,b(e.name),1),l[4]||(l[4]=u("i",null,null,-1))],42,I))),128)),!v.value.length&&!f.value.length?(r(),s("div",J,"暂无图层配置")):A("",!0)])),u("div",R,[l[5]||(l[5]=u("div",{class:"layer-panel-section-title"},"图例",-1)),d.value.length?(r(),s("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":K.value}])},[(r(!0),s(h,null,k(d.value,e=>(r(),s("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":c(e)&&e.key===y.selectedLegendKey,"is-checkable":c(e),"is-disabled":!c(e)}]),type:"button",disabled:!c(e),title:e.name,onMousedown:l[2]||(l[2]=m(()=>{},["prevent"])),onClick:a=>F(a,e)},[u("span",{class:"legend-swatch",style:z({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),u("span",G,b(e.name),1),c(e)?(r(),s("i",Q)):A("",!0)],42,$))),128))],2)):(r(),s("div",U,"暂无图例"))])],2)]),_:1},8,["title","width","height"]))}};export{Z as _}; diff --git a/docs/assets/LayerPanel-7a55b2bc-balabala-1784043664472.css b/docs/assets/LayerPanel-7a55b2bc-balabala-1784043664472.css new file mode 100644 index 0000000..c504cfe --- /dev/null +++ b/docs/assets/LayerPanel-7a55b2bc-balabala-1784043664472.css @@ -0,0 +1 @@ +.layer-panel{display:grid;grid-template-rows:minmax(150px,210px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.layer-panel.is-legend-only{grid-template-rows:minmax(0,1fr);gap:0;padding:10px 12px 12px}.layer-panel.is-legend-only .layer-panel-legend{padding-top:0;border-top:0}.layer-panel.is-legend-only .layer-panel-section-title{display:none}.layer-panel.is-legend-only .layer-panel-legend-grid{grid-template-columns:1fr;justify-content:stretch;gap:8px;max-height:100%;padding-right:0;overflow:hidden}.layer-panel.is-legend-only .layer-panel-legend-row{min-height:28px;padding:4px 2px}.layer-panel.is-compact{grid-template-rows:minmax(0,1fr) auto;gap:10px;padding:8px 10px 10px}.layer-panel.is-compact .layer-panel-list{gap:5px;padding-right:4px;overflow-y:auto}.layer-panel.is-compact .layer-panel-item{height:28px;flex-basis:28px;padding:0 9px;font-size:12px}.layer-panel.is-compact .layer-panel-legend{padding-top:9px}.layer-panel.is-compact .layer-panel-section-title{margin-bottom:7px;font-size:12px;line-height:16px}.layer-panel.is-compact .layer-panel-section-title:before{top:4px}.layer-panel.is-compact .layer-panel-legend-grid{grid-template-columns:1fr;gap:6px;max-height:none;padding-right:0;overflow:visible}.layer-panel.is-compact .layer-panel-legend-row{grid-template-columns:20px minmax(0,1fr);align-items:center;min-height:26px;padding:3px 0}.layer-panel.is-compact .layer-panel-legend-row.is-checkable{grid-template-columns:20px minmax(0,1fr) 14px}.layer-panel.is-compact .legend-swatch,.layer-panel.is-compact .legend-check{justify-self:center;margin-top:0}.layer-panel.is-compact .legend-name{display:block;line-height:16px;white-space:nowrap;text-overflow:clip;-webkit-line-clamp:unset}.layer-panel-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto}.layer-panel-item{display:flex;align-items:center;justify-content:space-between;height:27px;flex:0 0 27px;padding:0 9px;border:1px solid rgba(48,220,255,.22);background:rgba(3,20,32,.58);color:#ffffffbd;font-size:12px;cursor:pointer}.layer-panel-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-panel-item i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.layer-panel-item.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.layer-panel-item.is-checked i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.layer-panel-item.is-checked:not(.is-active){color:#ffffffe0;border-color:#30dcff6b;background:rgba(3,20,32,.72)}.layer-panel-item.is-overlay i{border-radius:1px}.layer-panel-item.is-overlay.is-checked i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.layer-panel-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.layer-panel-section-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.layer-panel-section-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.layer-panel-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto}.layer-panel-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.layer-panel-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;background:transparent;color:inherit;text-align:left;cursor:pointer}.layer-panel-legend-row:disabled{opacity:1}.layer-panel-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.layer-panel-legend-row.is-selected{border-color:#30dcff6b;background:rgba(48,220,255,.08)}.layer-panel-legend-row.is-selected .legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffc2}.layer-panel-legend-row.is-selected .legend-check:after{opacity:1}.layer-panel-legend-row.is-disabled{cursor:default}.layer-panel .legend-swatch{width:15px;height:10px;margin-top:3px;border:1px solid;box-shadow:0 0 12px #30dcff2e}.layer-panel .legend-name{display:-webkit-box;min-width:0;color:#ffffffd1;font-size:12px;line-height:14px;overflow:hidden;word-break:break-all;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical}.layer-panel .legend-check{position:relative;width:11px;height:11px;margin-top:2px;border:1px solid rgba(255,255,255,.4);border-radius:2px}.layer-panel .legend-check:after{content:"";position:absolute;left:3px;top:1px;width:3px;height:6px;border:solid rgba(3,20,32,.95);border-width:0 1px 1px 0;opacity:0;transform:rotate(45deg)}.layer-panel-empty{color:#ffffff85;line-height:48px;text-align:center}.layer-panel-empty.is-legend{line-height:28px}.layer-panel-list,.layer-panel-legend-grid{scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.42) rgba(48,220,255,.08)}.layer-panel-list::-webkit-scrollbar,.layer-panel-legend-grid::-webkit-scrollbar{width:4px}.layer-panel-list::-webkit-scrollbar-thumb,.layer-panel-legend-grid::-webkit-scrollbar-thumb{background:rgba(48,220,255,.42)}.layer-panel-list::-webkit-scrollbar-track,.layer-panel-legend-grid::-webkit-scrollbar-track{background:rgba(48,220,255,.08)} diff --git a/docs/assets/SmartChartRenderer-4a1f392b-1783995319167.js b/docs/assets/SmartChartRenderer-4a1f392b-1783995319167.js deleted file mode 100644 index 35d1e0a..0000000 --- a/docs/assets/SmartChartRenderer-4a1f392b-1783995319167.js +++ /dev/null @@ -1,2 +0,0 @@ -var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{e as p,h as Z,j as F,L as b,o as h,c as g,a as y,t as x,g as _,b as V,u as E,n as j}from"./index-1783995319167.js";import{aK as q}from"./chartTheme-0e0a1707-1783995319167.js";const G={class:"smart-chart-header"},I={key:0},K={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} -{d}%`},labelLine:{lineStyle:{color:"rgba(223, 250, 255, 0.42)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:t.map((e,n)=>({name:e.name,value:e.value,itemStyle:{color:l[n%l.length]}}))}]}}function $(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(255, 215, 108, 0.52)"}}}),xAxis:{type:"category",boundaryGap:!1,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"line",smooth:!0,symbol:"circle",symbolSize:8,lineStyle:{width:3,color:"#30dcff"},itemStyle:{color:"#ffd76c",borderColor:"#041522",borderWidth:2},areaStyle:{color:new b(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.24)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}])},label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function c(){return{trigger:"item",backgroundColor:"rgba(2, 13, 22, 0.94)",borderColor:"rgba(48, 220, 255, 0.34)",borderWidth:1,textStyle:{color:"#fff",fontSize:12},formatter:t=>{const e=(i.chart.rows||[]).find(s=>s.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",f=e!=null&&e.extra?`
${e.extra}`:"";return`${t.marker}${t.name}: ${u(t.value)}${n}${f}`}}}function v(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function B(t){const e=String(t||"").trim();if(!e||/^(数据)?来源[::]/.test(e)||e.includes("固定展示"))return"";const n=new RegExp(A,"g"),f=new RegExp(`统计${A}`,"g"),s=e.replace(f,"统计数据").replace(n,"数据").replace(/来源[::]\s*openApi\s*统计库\s*[a-zA-Z0-9_./:-]*[,,、]?\s*/gi,"").replace(/openApi\s*统计库\s*/gi,"").replace(/\b[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+){2,}\b/g,"").replace(/[,,、]\s*[,,、]+/g,",").replace(/^[\s,,、::]+|[\s,,、]+$/g,"");return!s||/^来源[::]?$/.test(s)||O(s)?"":s}function O(t){return/^[a-zA-Z0-9_./:-]+$/.test(t)&&(t.includes("_")||t.length>24)}function u(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}return(t,e)=>(h(),g("div",{class:j(["smart-chart-card",{"is-horizontal":w.value}])},[y("div",G,[y("div",null,[y("strong",null,x(a.chart.title),1),S.value?(h(),g("span",I,x(S.value),1)):_("",!0)]),a.chart.unit?(h(),g("em",K,x(a.chart.unit),1)):_("",!0)]),V(E(q),{class:"smart-chart",option:k.value,autoresize:""},null,8,["option"])],2))}};export{Q as default}; diff --git a/docs/assets/SmartChartRenderer-7992758b-1784043664472.js b/docs/assets/SmartChartRenderer-7992758b-1784043664472.js new file mode 100644 index 0000000..425427d --- /dev/null +++ b/docs/assets/SmartChartRenderer-7992758b-1784043664472.js @@ -0,0 +1,2 @@ +var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,L as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1784043664472.js";import{H as j}from"./index.esm.min-c54f6e6e-1784043664472.js";const G={class:"smart-chart-header"},I={key:0},M={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} +{d}%`},labelLine:{lineStyle:{color:"rgba(223, 250, 255, 0.42)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:t.map((e,n)=>({name:e.name,value:e.value,itemStyle:{color:l[n%l.length]}}))}]}}function $(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(255, 215, 108, 0.52)"}}}),xAxis:{type:"category",boundaryGap:!1,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"line",smooth:!0,symbol:"circle",symbolSize:8,lineStyle:{width:3,color:"#30dcff"},itemStyle:{color:"#ffd76c",borderColor:"#041522",borderWidth:2},areaStyle:{color:new b(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.24)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}])},label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function c(){return{trigger:"item",backgroundColor:"rgba(2, 13, 22, 0.94)",borderColor:"rgba(48, 220, 255, 0.34)",borderWidth:1,textStyle:{color:"#fff",fontSize:12},formatter:t=>{const e=(i.chart.rows||[]).find(s=>s.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",f=e!=null&&e.extra?`
${e.extra}`:"";return`${t.marker}${t.name}: ${u(t.value)}${n}${f}`}}}function v(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function B(t){const e=String(t||"").trim();if(!e||/^(数据)?来源[::]/.test(e)||e.includes("固定展示"))return"";const n=new RegExp(A,"g"),f=new RegExp(`统计${A}`,"g"),s=e.replace(f,"统计数据").replace(n,"数据").replace(/来源[::]\s*openApi\s*统计库\s*[a-zA-Z0-9_./:-]*[,,、]?\s*/gi,"").replace(/openApi\s*统计库\s*/gi,"").replace(/\b[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+){2,}\b/g,"").replace(/[,,、]\s*[,,、]+/g,",").replace(/^[\s,,、::]+|[\s,,、]+$/g,"");return!s||/^来源[::]?$/.test(s)||O(s)?"":s}function O(t){return/^[a-zA-Z0-9_./:-]+$/.test(t)&&(t.includes("_")||t.length>24)}function u(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}return(t,e)=>(g(),h("div",{class:E(["smart-chart-card",{"is-horizontal":w.value}])},[y("div",G,[y("div",null,[y("strong",null,x(a.chart.title),1),S.value?(g(),h("span",I,x(S.value),1)):_("",!0)]),a.chart.unit?(g(),h("em",M,x(a.chart.unit),1)):_("",!0)]),V(q(j),{class:"smart-chart",option:k.value,autoresize:""},null,8,["option"])],2))}};export{Q as default}; diff --git a/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1783995319167.css b/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784043664472.css similarity index 100% rename from docs/assets/SmartChartRenderer-7a3a96b9-balabala-1783995319167.css rename to docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784043664472.css diff --git a/docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css b/docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css new file mode 100644 index 0000000..1401bb8 --- /dev/null +++ b/docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css @@ -0,0 +1 @@ +.topic-switcher{display:flex;align-items:flex-start;justify-content:center;width:600px;height:52px;padding-top:10px;background:url(./bottom-menu-bg-b465793d-balabala-1784043664472.png) no-repeat center bottom;background-size:100% 52px;pointer-events:all}.topic-switcher-arrow{display:flex;align-items:center;height:30px;margin:0 12px}.topic-switcher-arrow.is-reverse{transform:scaleX(-1)}.topic-switcher-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.topic-switcher-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.topic-switcher-menu{display:flex;gap:4px}.topic-switcher-item{position:relative;width:var(--topic-item-width, 112px);height:32px;padding:0;border:0;background:url(./bottom-menu-btn-ee5c8064-balabala-1784043664472.png) no-repeat;background-size:100% 100%;color:#fff;cursor:pointer;overflow:hidden}.topic-switcher-item:hover,.topic-switcher-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784043664472.png) no-repeat;background-size:100% 100%}.topic-switcher .topic-name{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;padding:0 5px;text-align:center;white-space:nowrap}.topic-switcher .topic-name,.topic-switcher .topic-title,.topic-switcher .topic-name small{padding-top:0;font-size:16px;font-weight:700;line-height:18px;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-switcher .topic-name.has-sub-name{gap:1px}.topic-switcher .topic-name small{display:block;max-width:100%;overflow:hidden;font-size:10px;font-weight:600;line-height:11px;text-overflow:ellipsis} diff --git a/docs/assets/TopicSwitcher-f0c08774-1784043664472.js b/docs/assets/TopicSwitcher-f0c08774-1784043664472.js new file mode 100644 index 0000000..089d682 --- /dev/null +++ b/docs/assets/TopicSwitcher-f0c08774-1784043664472.js @@ -0,0 +1,2 @@ +var Fe=Object.defineProperty,Qe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var oe=(d,t,e)=>t in d?Fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ae=(d,t)=>{for(var e in t||(t={}))He.call(t,e)&&oe(d,e,t[e]);if(ie)for(var e of ie(t))ve.call(t,e)&&oe(d,e,t[e]);return d},ce=(d,t)=>Qe(d,Pe(t));import{ao as Ke,ap as ee,aq as Se,z as re,w as G,ar as Ae,as as v,p as Y,C as D,at as y,au as je,f as Ve,d as Ye,a as H,S as U,av as B,a6 as Be,a7 as X,V as O,aw as Xe,ax as Je,O as be,ay as ke,az as We,aA as qe,v as Le,aB as Me,R as te,m as ze,aC as W,L as _e,h as De,D as Ze,aD as $e,aE as et,b as tt,aF as st,H as nt,E as rt,a5 as At,G as q,_ as it,am as ot,Z as at,aG as ct,aH as ut,aI as lt,aJ as Ne,aK as ue,a8 as Ue,N as dt,aL as ft,aM as ht,aN as pt,u as gt,aO as mt,aP as Tt,aQ as Et,ad as Rt,aR as le,aS as de,aT as fe,aU as he,aa as wt,af as Ct,aV as xt,aW as It}from"./screen2Standard-15e4461a-1784043664472.js";import{_ as pe,a as ge}from"./index-d0c7091a-1784043664472.js";import{f as me}from"./townshipBoundaries-1b068bef-1784043664472.js";import{g as yt,o as K,c as j,a as S,F as St,y as Bt,n as Te,J as bt,t as Ee,j as kt}from"./index-1784043664472.js";class Lt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Is(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new re;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new cs(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Dt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={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_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Nt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Xt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Jt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Wt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,u=s.byteStride,l=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,u,l,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*u);return n.decodeGltfBuffer(new Uint8Array(f),c,u,l,s.mode,s.filter),f})})}else return null}}class qt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),u=c.isGroup?c.children:[c],l=a[0].count,f=[];for(const h of u){const g=new X,p=new O,m=new Ue,E=new O(1,1,1),w=new Xe(h.geometry,h.material,l);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const as=new X;class cs{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Dt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new ke(this.options.manager):this.textureLoader=new We(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Y(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return N(A,o,s),M(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(k,b[x*i+1]),i>=3&&p.setZ(k,b[x*i+2]),i>=4&&p.setW(k,b[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const l=(A.samplers||{})[n.sampler]||{};return c.magFilter=xe[l.magFilter]||Le,c.minFilter=xe[l.minFilter]||Me,c.wrapS=Ie[l.wrapS]||te,c.wrapT=Ie[l.wrapT]||te,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(u){a=!0;const l=new Blob([u],{type:n.mimeType});return i=o.createObjectURL(l),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(u){return new Promise(function(l,f){let h=l;e.isImageBitmapLoader===!0&&(h=function(g){const p=new le(g);p.needsUpdate=!0,l(p)}),e.load(v.resolveURL(u,A.path),h,void 0,f)})}).then(function(u){return a===!0&&o.revokeObjectURL(i),u.userData.mimeType=n.mimeType||os(n.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),u});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new ze,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new _e,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return De}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const u=s[T.KHR_MATERIALS_UNLIT];n=u.getMaterialType(),a.push(u.extendParams(o,A,e))}else{const u=A.pbrMetallicRoughness||{};if(o.color=new D(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;o.color.setRGB(l[0],l[1],l[2],y),o.opacity=l[3]}u.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",u.baseColorTexture,U)),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),n=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=Ze);const c=A.alphaMode||_.OPAQUE;if(c===_.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===_.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new Be(1,1),A.normalTexture.scale!==void 0)){const u=A.normalTexture.scale;o.normalScale.set(u,u)}if(A.occlusionTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==H){const u=A.emissiveFactor;o.emissive=new D().setRGB(u[0],u[1],u[2],y)}return A.emissiveTexture!==void 0&&n!==H&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,U)),Promise.all(a).then(function(){const u=new n(o);return A.name&&(u.name=A.name),M(u,A),e.associations.set(u,{materials:t}),A.extensions&&N(s,u,A),u})}createUniqueName(t){const e=$e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return ye(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&As(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),M(m,A),p.extensions&&N(s,m,p),e.assignFinalMaterial(m),u.push(m)}for(let f=0,h=u.length;f1?c=new q:a.length===1?c=a[0]:c=new be,c!==a[0])for(let u=0,l=a.length;u{const u=new Map;for(const[l,f]of s.associations)(l instanceof W||l instanceof le)&&u.set(l,f);return c.traverse(l=>{const f=s.associations.get(l);f!=null&&u.set(l,f)}),u};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];L[A.path]===L.weights?t.traverse(function(l){l.morphTargetInfluences&&i.push(l.name?l.name:l.uuid)}):i.push(o);let a;switch(L[A.path]){case L.weights:a=fe;break;case L.rotation:a=he;break;case L.position:case L.scale:a=de;break;default:switch(r.itemSize){case 1:a=fe;break;case 2:case 3:default:a=de;break}break}const c=s.interpolation!==void 0?ss[s.interpolation]:Ne,u=this._getArrayFromAccessor(r);for(let l=0,f=i.length;l{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,U).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if($.has(t)){const i=$.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),$.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new re;t.index&&e.setIndex(new G(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ds.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const u=c.draco,l=new u.Decoder;try{const f=e(u,l,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{u.destroy(l)}});break}};function e(n,o,i,a){const c=a.attributeIDs,u=a.attributeTypes;let l,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)l=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,l);else if(h===n.POINT_CLOUD)l=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[u[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(l,w);else{if(w=o.GetAttributeId(l,n[c[p]]),w===-1)continue;E=o.GetAttribute(l,w)}const R=s(n,o,l,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,l)),n.destroy(l),g}function r(n,o,i){const c=i.num_faces()*3,u=c*4,l=n._malloc(u);o.GetTrianglesUInt32Array(i,u,l);const f=new Uint32Array(n.HEAPF32.buffer,l,c).slice();return n._free(l),{array:f,itemSize:1}}function s(n,o,i,a,c,u){const l=u.num_components(),h=i.num_points()*l,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,u,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:l}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let V={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const fs=Object.values(V);class ys extends Lt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new It;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:Mt,name:"GLTFLoader"},{loader:ke,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new ls;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&V[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof Ae&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[V[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(ce(ae({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:fs.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===V.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Ss="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",Bs=""+new URL("pathLine2-d4134d4b-balabala-1784043664472.png",import.meta.url).href,bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ls=""+new URL("ocean-bg-8c848b8f-balabala-1784043664472.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784043664472.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784043664472.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784043664472.png",import.meta.url).href,Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Gs=""+new URL("huiguang-3c5dfda5-balabala-1784043664472.png",import.meta.url).href,Fs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Hs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",vs=""+new URL("focus_bg-b6803e2d-balabala-1784043664472.png",import.meta.url).href,Ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",js=""+new URL("focus_move_bg-cf41417a-balabala-1784043664472.png",import.meta.url).href;const hs={class:"topic-switcher"},ps={class:"topic-switcher-menu"},gs=["onPointerup","onClick"],ms={class:"topic-title"},Ts={key:0},Vs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>me}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=yt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:me});function o(i,a){var u,l;if((l=(u=i.currentTarget)==null?void 0:u.blur)==null||l.call(u),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(K(),j("div",hs,[a[0]||(a[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1)),S("div",ps,[(K(!0),j(St,null,Bt(n.value,c=>(K(),j("button",{key:c.key,class:Te(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:bt({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",onPointerup:u=>o(u,c.key),onClick:u=>o(u,c.key)},[S("span",{class:Te(["topic-name",{"has-sub-name":c.subName}])},[S("span",ms,Ee(c.name),1),c.subName?(K(),j("small",Ts,Ee(c.subName),1)):kt("",!0)],2)],46,gs))),128))]),a[1]||(a[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1))]))}};export{Lt as E,ys as R,Vs as _,bs as a,Bs as b,Ds as c,Os as d,Ns as e,Fs as f,Us as g,Gs as h,Qs as i,Ps as j,Hs as k,vs as l,Ks as m,js as n,Ls as o,Ss as p,Is as q,Ms as r,ks as s}; diff --git a/docs/assets/area-b57940eb-balabala-1783995319167.png b/docs/assets/area-b57940eb-balabala-1784043664472.png similarity index 100% rename from docs/assets/area-b57940eb-balabala-1783995319167.png rename to docs/assets/area-b57940eb-balabala-1784043664472.png diff --git a/docs/assets/assets-93f7396b-1784043664472.js b/docs/assets/assets-93f7396b-1784043664472.js new file mode 100644 index 0000000..5f4e11f --- /dev/null +++ b/docs/assets/assets-93f7396b-1784043664472.js @@ -0,0 +1 @@ +var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-15e4461a-1784043664472.js";import{R as x,p as u,a as g,b as l,h as f,r as L,c as A,g as B,d as N,e as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-f0c08774-1784043664472.js";import{g as n,a as h,H as q,C as G}from"./index-0060e718-1784043664472.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; diff --git a/docs/assets/bg-3acb94e3-balabala-1783995319167.png b/docs/assets/bg-3acb94e3-balabala-1784043664472.png similarity index 100% rename from docs/assets/bg-3acb94e3-balabala-1783995319167.png rename to docs/assets/bg-3acb94e3-balabala-1784043664472.png diff --git a/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1783995319167.svg b/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-big-180b7071-balabala-1783995319167.svg rename to docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg diff --git a/docs/assets/bottom-menu-arrow-small-19304179-balabala-1783995319167.svg b/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784043664472.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-small-19304179-balabala-1783995319167.svg rename to docs/assets/bottom-menu-arrow-small-19304179-balabala-1784043664472.svg diff --git a/docs/assets/bottom-menu-bg-b465793d-balabala-1783995319167.png b/docs/assets/bottom-menu-bg-b465793d-balabala-1784043664472.png similarity index 100% rename from docs/assets/bottom-menu-bg-b465793d-balabala-1783995319167.png rename to docs/assets/bottom-menu-bg-b465793d-balabala-1784043664472.png diff --git a/docs/assets/bottom-menu-btn-ee5c8064-balabala-1783995319167.png b/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784043664472.png similarity index 100% rename from docs/assets/bottom-menu-btn-ee5c8064-balabala-1783995319167.png rename to docs/assets/bottom-menu-btn-ee5c8064-balabala-1784043664472.png diff --git a/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1783995319167.png b/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784043664472.png similarity index 100% rename from docs/assets/bottom-menu-btn-hover-df33e514-balabala-1783995319167.png rename to docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784043664472.png diff --git a/docs/assets/chartTheme-0e0a1707-1783995319167.js b/docs/assets/chartTheme-0e0a1707-1783995319167.js deleted file mode 100644 index e086efa..0000000 --- a/docs/assets/chartTheme-0e0a1707-1783995319167.js +++ /dev/null @@ -1,3881 +0,0 @@ -var Wp=Object.defineProperty,Xp=Object.defineProperties;var qp=Object.getOwnPropertyDescriptors;var qs=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var Ao=Math.pow,Qc=(r,t,e)=>t in r?Wp(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,ae=(r,t)=>{for(var e in t||(t={}))th.call(t,e)&&Qc(r,e,t[e]);if(qs)for(var e of qs(t))eh.call(t,e)&&Qc(r,e,t[e]);return r},jr=(r,t)=>Xp(r,qp(t));var nh=(r,t)=>{var e={};for(var n in r)th.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&qs)for(var n of qs(r))t.indexOf(n)<0&&eh.call(r,n)&&(e[n]=r[n]);return e};var ih=(r,t,e)=>new Promise((n,i)=>{var s=l=>{try{a(e.next(l))}catch(c){i(c)}},o=l=>{try{a(e.throw(l))}catch(c){i(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(r,t)).next())});import{O as Yp,i as Ys,e as Xn,P as Ff,w as $s,Q as rh,h as Bf,f as $p,R as sh,s as js,S as jp,U as Zp,j as Kp,V as Jp,u as Qp,W as tm,o as hs,c as us,a as Bt,D as wo,t as em,r as Tl,g as nm,l as Ro,d as im,_ as rm,L as rc}from"./index-1783995319167.js";function Wn(r){if(r===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}function zf(r,t){r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.__proto__=t}/*! - * GSAP 3.15.0 - * https://gsap.com - * - * @license Copyright 2008-2026, GreenSock. All rights reserved. - * Subject to the terms at https://gsap.com/standard-license - * @author: Jack Doyle, jack@greensock.com -*/var ln={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},bs={duration:.5,overwrite:!1,delay:0},sc,Ie,le,_n=1e8,re=1/_n,Al=Math.PI*2,sm=Al/4,am=0,kf=Math.sqrt,om=Math.cos,lm=Math.sin,Re=function(t){return typeof t=="string"},me=function(t){return typeof t=="function"},jn=function(t){return typeof t=="number"},ac=function(t){return typeof t=="undefined"},In=function(t){return typeof t=="object"},$e=function(t){return t!==!1},oc=function(){return typeof window!="undefined"},Zs=function(t){return me(t)||Re(t)},Vf=typeof ArrayBuffer=="function"&&ArrayBuffer.isView||function(){},ke=Array.isArray,cm=/random\([^)]+\)/g,hm=/,\s*/g,ah=/(?:-?\.?\d|\.)+/gi,Hf=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,Er=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,Co=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,Gf=/[+-]=-?[.\d]+/,um=/[^,'"\[\]\s]+/gi,fm=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,ue,Rn,wl,lc,cn={},za={},Wf,Xf=function(t){return(za=Ur(t,cn))&&Qe},cc=function(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")},Es=function(t,e){return!e&&console.warn(t)},qf=function(t,e){return t&&(cn[t]=e)&&za&&(za[t]=e)||cn},Ts=function(){return 0},dm={suppressEvents:!0,isStart:!0,kill:!1},Ua={suppressEvents:!0,kill:!1},pm={suppressEvents:!0},hc={},pi=[],Rl={},Yf,rn={},Po={},oh=30,Na=[],uc="",fc=function(t){var e=t[0],n,i;if(In(e)||me(e)||(t=[t]),!(n=(e._gsap||{}).harness)){for(i=Na.length;i--&&!Na[i].targetTest(e););n=Na[i]}for(i=t.length;i--;)t[i]&&(t[i]._gsap||(t[i]._gsap=new md(t[i],n)))||t.splice(i,1);return t},Hi=function(t){return t._gsap||fc(gn(t))[0]._gsap},$f=function(t,e,n){return(n=t[e])&&me(n)?t[e]():ac(n)&&t.getAttribute&&t.getAttribute(e)||n},je=function(t,e){return(t=t.split(",")).forEach(e)||t},ye=function(t){return Math.round(t*1e5)/1e5||0},he=function(t){return Math.round(t*1e7)/1e7||0},Cr=function(t,e){var n=e.charAt(0),i=parseFloat(e.substr(2));return t=parseFloat(t),n==="+"?t+i:n==="-"?t-i:n==="*"?t*i:t/i},mm=function(t,e){for(var n=e.length,i=0;t.indexOf(e[i])<0&&++ia;)o=o._prev;return o?(e._next=o._next,o._next=e):(e._next=t[n],t[n]=e),e._next?e._next._prev=e:t[i]=e,e._prev=o,e.parent=e._dp=t,e},ao=function(t,e,n,i){n===void 0&&(n="_first"),i===void 0&&(i="_last");var s=e._prev,o=e._next;s?s._next=o:t[n]===e&&(t[n]=o),o?o._prev=s:t[i]===e&&(t[i]=s),e._next=e._prev=e.parent=null},yi=function(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove&&t.parent.remove(t),t._act=0},Gi=function(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var n=t;n;)n._dirty=1,n=n.parent;return t},vm=function(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t},Cl=function(t,e,n,i){return t._startAt&&(Ie?t._startAt.revert(Ua):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,i))},xm=function r(t){return!t||t._ts&&r(t.parent)},ch=function(t){return t._repeat?Nr(t._tTime,t=t.duration()+t._rDelay)*t:0},Nr=function(t,e){var n=Math.floor(t=he(t/e));return t&&n===t?n-1:n},Ha=function(t,e){return(t-e._start)*e._ts+(e._ts>=0?0:e._dirty?e.totalDuration():e._tDur)},oo=function(t){return t._end=he(t._start+(t._tDur/Math.abs(t._ts||t._rts||re)||0))},lo=function(t,e){var n=t._dp;return n&&n.smoothChildTiming&&t._ts&&(t._start=he(n._time-(t._ts>0?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),oo(t),n._dirty||Gi(n,t)),t},Qf=function(t,e){var n;if((e._time||!e._dur&&e._initted||e._startre)&&e.render(n,!0)),Gi(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur=0&&n.totalTime(n._tTime),n=n._dp;t._zTime=-re}},Pn=function(t,e,n,i){return e.parent&&yi(e),e._start=he((jn(n)?n:n||t!==ue?dn(t,n,e):t._time)+e._delay),e._end=he(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),Jf(t,e,"_first","_last",t._sort?"_start":0),Pl(e)||(t._recent=e),i||Qf(t,e),t._ts<0&&lo(t,t._tTime),t},td=function(t,e){return(cn.ScrollTrigger||cc("scrollTrigger",e))&&cn.ScrollTrigger.create(e,t)},ed=function(t,e,n,i,s){if(mc(t,e,s),!t._initted)return 1;if(!n&&t._pt&&!Ie&&(t._dur&&t.vars.lazy!==!1||!t._dur&&t.vars.lazy)&&Yf!==sn.frame)return pi.push(t),t._lazy=[s,i],1},ym=function r(t){var e=t.parent;return e&&e._ts&&e._initted&&!e._lock&&(e.rawTime()<0||r(e))},Pl=function(t){var e=t.data;return e==="isFromStart"||e==="isStart"},Mm=function(t,e,n,i){var s=t.ratio,o=e<0||!e&&(!t._start&&ym(t)&&!(!t._initted&&Pl(t))||(t._ts<0||t._dp._ts<0)&&!Pl(t))?0:1,a=t._rDelay,l=0,c,h,u;if(a&&t._repeat&&(l=Bs(0,t._tDur,e),h=Nr(l,a),t._yoyo&&h&1&&(o=1-o),h!==Nr(t._tTime,a)&&(s=1-o,t.vars.repeatRefresh&&t._initted&&t.invalidate())),o!==s||Ie||i||t._zTime===re||!e&&t._zTime){if(!t._initted&&ed(t,e,i,n,l))return;for(u=t._zTime,t._zTime=e||(n?re:0),n||(n=e&&!u),t.ratio=o,t._from&&(o=1-o),t._time=0,t._tTime=l,c=t._pt;c;)c.r(o,c.d),c=c._next;e<0&&Cl(t,e,n,!0),t._onUpdate&&!n&&an(t,"onUpdate"),l&&t._repeat&&!n&&t.parent&&an(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===o&&(o&&yi(t,1),!n&&!Ie&&(an(t,o?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)},Sm=function(t,e,n){var i;if(n>e)for(i=t._first;i&&i._start<=n;){if(i.data==="isPause"&&i._start>e)return i;i=i._next}else for(i=t._last;i&&i._start>=n;){if(i.data==="isPause"&&i._start0&&!i&&lo(t,t._tTime=t._tDur*a),t.parent&&oo(t),n||Gi(t.parent,t),t},hh=function(t){return t instanceof qe?Gi(t):Or(t,t._dur)},bm={_start:0,endTime:Ts,totalDuration:Ts},dn=function r(t,e,n){var i=t.labels,s=t._recent||bm,o=t.duration()>=_n?s.endTime(!1):t._dur,a,l,c;return Re(e)&&(isNaN(e)||e in i)?(l=e.charAt(0),c=e.substr(-1)==="%",a=e.indexOf("="),l==="<"||l===">"?(a>=0&&(e=e.replace(/=/,"")),(l==="<"?s._start:s.endTime(s._repeat>=0))+(parseFloat(e.substr(1))||0)*(c?(a<0?s:n).totalDuration()/100:1)):a<0?(e in i||(i[e]=o),i[e]):(l=parseFloat(e.charAt(a-1)+e.substr(a+1)),c&&n&&(l=l/100*(ke(n)?n[0]:n).totalDuration()),a>1?r(t,e.substr(0,a-1),n)+l:o+l)):e==null?o:+e},_s=function(t,e,n){var i=jn(e[1]),s=(i?2:1)+(t<2?0:1),o=e[s],a,l;if(i&&(o.duration=e[1]),o.parent=n,t){for(a=o,l=n;l&&!("immediateRender"in a);)a=l.vars.defaults||{},l=$e(l.vars.inherit)&&l.parent;o.immediateRender=$e(a.immediateRender),t<2?o.runBackwards=1:o.startAt=e[s-1]}return new Se(e[0],o,e[s+1])},Ai=function(t,e){return t||t===0?e(t):e},Bs=function(t,e,n){return ne?e:n},ze=function(t,e){return!Re(t)||!(e=fm.exec(t))?"":e[1]},Em=function(t,e,n){return Ai(n,function(i){return Bs(t,e,i)})},Ll=[].slice,nd=function(t,e){return t&&In(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&In(t[0]))&&!t.nodeType&&t!==Rn},Tm=function(t,e,n){return n===void 0&&(n=[]),t.forEach(function(i){var s;return Re(i)&&!e||nd(i,1)?(s=n).push.apply(s,gn(i)):n.push(i)})||n},gn=function(t,e,n){return le&&!e&&le.selector?le.selector(t):Re(t)&&!n&&(wl||!Fr())?Ll.call((e||lc).querySelectorAll(t),0):ke(t)?Tm(t,n):nd(t)?Ll.call(t,0):t?[t]:[]},Dl=function(t){return t=gn(t)[0]||Es("Invalid scope")||{},function(e){var n=t.current||t.nativeElement||t;return gn(e,n.querySelectorAll?n:n===t?Es("Invalid scope")||lc.createElement("div"):t)}},id=function(t){return t.sort(function(){return .5-Math.random()})},rd=function(t){if(me(t))return t;var e=In(t)?t:{each:t},n=Wi(e.ease),i=e.from||0,s=parseFloat(e.base)||0,o={},a=i>0&&i<1,l=isNaN(i)||a,c=e.axis,h=i,u=i;return Re(i)?h=u={center:.5,edges:.5,end:1}[i]||0:!a&&l&&(h=i[0],u=i[1]),function(f,d,_){var g=(_||e).length,p=o[g],m,y,v,S,w,R,b,U,F;if(!p){if(F=e.grid==="auto"?0:(e.grid||[1,_n])[1],!F){for(b=-_n;b<(b=_[F++].getBoundingClientRect().left)&&Fb&&(b=w),wg?g-1:c?c==="y"?g/F:F:Math.max(F,g/F))||0)*(i==="edges"?-1:1),p.b=g<0?s-g:s,p.u=ze(e.amount||e.each)||0,n=n&&g<0?Bm(n):n}return g=(p[f]-p.min)/p.max||0,he(p.b+(n?n(g):g)*p.v)+p.u}},Il=function(t){var e=Math.pow(10,((t+"").split(".")[1]||"").length);return function(n){var i=he(Math.round(parseFloat(n)/t)*t*e);return(i-i%1)/e+(jn(n)?0:ze(n))}},sd=function(t,e){var n=ke(t),i,s;return!n&&In(t)&&(i=n=t.radius||_n,t.values?(t=gn(t.values),(s=!jn(t[0]))&&(i*=i)):t=Il(t.increment)),Ai(e,n?me(t)?function(o){return s=t(o),Math.abs(s-o)<=i?s:o}:function(o){for(var a=parseFloat(s?o.x:o),l=parseFloat(s?o.y:0),c=_n,h=0,u=t.length,f,d;u--;)s?(f=t[u].x-a,d=t[u].y-l,f=f*f+d*d):f=Math.abs(t[u]-a),fi?s-o:o)})},As=function(t){return t.replace(cm,function(e){var n=e.indexOf("[")+1,i=e.substring(n||7,n?e.indexOf("]"):e.length-1).split(hm);return ad(n?i:+i[0],n?0:+i[1],+i[2]||1e-5)})},ld=function(t,e,n,i,s){var o=e-t,a=i-n;return Ai(s,function(l){return n+((l-t)/o*a||0)})},Lm=function r(t,e,n,i){var s=isNaN(t+e)?0:function(d){return(1-d)*t+d*e};if(!s){var o=Re(t),a={},l,c,h,u,f;if(n===!0&&(i=1)&&(n=null),o)t={p:t},e={p:e};else if(ke(t)&&!ke(e)){for(h=[],u=t.length,f=u-2,c=1;c(a=Math.abs(a))&&(l=o,s=a);return l},an=function(t,e,n){var i=t.vars,s=i[e],o=le,a=t._ctx,l,c,h;if(s)return l=i[e+"Params"],c=i.callbackScope||t,n&&pi.length&&ka(),a&&(le=a),h=l?s.apply(c,l):s.call(c),le=o,h},fs=function(t){return yi(t),t.scrollTrigger&&t.scrollTrigger.kill(!!Ie),t.progress()<1&&an(t,"onInterrupt"),t},Tr,cd=[],hd=function(t){if(t)if(t=!t.name&&t.default||t,oc()||t.headless){var e=t.name,n=me(t),i=e&&!n&&t.init?function(){this._props=[]}:t,s={init:Ts,render:vc,add:pc,kill:$m,modifier:Ym,rawVars:0},o={targetTest:0,get:0,getSetter:gc,aliases:{},register:0};if(Fr(),t!==i){if(rn[e])return;hn(i,hn(Va(t,s),o)),Ur(i.prototype,Ur(s,Va(t,o))),rn[i.prop=e]=i,t.targetTest&&(Na.push(i),hc[e]=1),e=(e==="css"?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}qf(e,i),t.register&&t.register(Qe,i,Ze)}else cd.push(t)},ie=255,ds={aqua:[0,ie,ie],lime:[0,ie,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,ie],navy:[0,0,128],white:[ie,ie,ie],olive:[128,128,0],yellow:[ie,ie,0],orange:[ie,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[ie,0,0],pink:[ie,192,203],cyan:[0,ie,ie],transparent:[ie,ie,ie,0]},Lo=function(t,e,n){return t+=t<0?1:t>1?-1:0,(t*6<1?e+(n-e)*t*6:t<.5?n:t*3<2?e+(n-e)*(2/3-t)*6:e)*ie+.5|0},ud=function(t,e,n){var i=t?jn(t)?[t>>16,t>>8&ie,t&ie]:0:ds.black,s,o,a,l,c,h,u,f,d,_;if(!i){if(t.substr(-1)===","&&(t=t.substr(0,t.length-1)),ds[t])i=ds[t];else if(t.charAt(0)==="#"){if(t.length<6&&(s=t.charAt(1),o=t.charAt(2),a=t.charAt(3),t="#"+s+s+o+o+a+a+(t.length===5?t.charAt(4)+t.charAt(4):"")),t.length===9)return i=parseInt(t.substr(1,6),16),[i>>16,i>>8&ie,i&ie,parseInt(t.substr(7),16)/255];t=parseInt(t.substr(1),16),i=[t>>16,t>>8&ie,t&ie]}else if(t.substr(0,3)==="hsl"){if(i=_=t.match(ah),!e)l=+i[0]%360/360,c=+i[1]/100,h=+i[2]/100,o=h<=.5?h*(c+1):h+c-h*c,s=h*2-o,i.length>3&&(i[3]*=1),i[0]=Lo(l+1/3,s,o),i[1]=Lo(l,s,o),i[2]=Lo(l-1/3,s,o);else if(~t.indexOf("="))return i=t.match(Hf),n&&i.length<4&&(i[3]=1),i}else i=t.match(ah)||ds.transparent;i=i.map(Number)}return e&&!_&&(s=i[0]/ie,o=i[1]/ie,a=i[2]/ie,u=Math.max(s,o,a),f=Math.min(s,o,a),h=(u+f)/2,u===f?l=c=0:(d=u-f,c=h>.5?d/(2-u-f):d/(u+f),l=u===s?(o-a)/d+(ot||m<0)&&(n+=m-e),i+=m,w=i-n,v=w-o,(v>0||y)&&(R=++u.frame,f=w-u.time*1e3,u.time=w=w/1e3,o+=v+(v>=s?4:s-v),S=1),y||(l=c(g)),S)for(d=0;d=m&&d--},_listeners:a},u}(),Fr=function(){return!ws&&sn.wake()},jt={},Im=/^[\d.\-M][\d.\-,\s]/,Um=/["']/g,Nm=function(t){for(var e={},n=t.substr(1,t.length-3).split(":"),i=n[0],s=1,o=n.length,a,l,c;s1&&n.config?n.config.apply(null,~t.indexOf("{")?[Nm(e[1])]:Om(t).split(",").map(Zf)):jt._CE&&Im.test(t)?jt._CE("",t):n},Bm=function(t){return function(e){return 1-t(1-e)}},Wi=function(t,e){return t&&(me(t)?t:jt[t]||Fm(t))||e},Ji=function(t,e,n,i){n===void 0&&(n=function(l){return 1-e(1-l)}),i===void 0&&(i=function(l){return l<.5?e(l*2)/2:1-e((1-l)*2)/2});var s={easeIn:e,easeOut:n,easeInOut:i},o;return je(t,function(a){jt[a]=cn[a]=s,jt[o=a.toLowerCase()]=n;for(var l in s)jt[o+(l==="easeIn"?".in":l==="easeOut"?".out":".inOut")]=jt[a+"."+l]=s[l]}),s},pd=function(t){return function(e){return e<.5?(1-t(1-e*2))/2:.5+t((e-.5)*2)/2}},Do=function r(t,e,n){var i=e>=1?e:1,s=(n||(t?.3:.45))/(e<1?e:1),o=s/Al*(Math.asin(1/i)||0),a=function(h){return h===1?1:i*Math.pow(2,-10*h)*lm((h-o)*s)+1},l=t==="out"?a:t==="in"?function(c){return 1-a(1-c)}:pd(a);return s=Al/s,l.config=function(c,h){return r(t,c,h)},l},Io=function r(t,e){e===void 0&&(e=1.70158);var n=function(o){return o?--o*o*((e+1)*o+e)+1:0},i=t==="out"?n:t==="in"?function(s){return 1-n(1-s)}:pd(n);return i.config=function(s){return r(t,s)},i};je("Linear,Quad,Cubic,Quart,Quint,Strong",function(r,t){var e=t<5?t+1:t;Ji(r+",Power"+(e-1),t?function(n){return Math.pow(n,e)}:function(n){return n},function(n){return 1-Math.pow(1-n,e)},function(n){return n<.5?Math.pow(n*2,e)/2:1-Math.pow((1-n)*2,e)/2})});jt.Linear.easeNone=jt.none=jt.Linear.easeIn;Ji("Elastic",Do("in"),Do("out"),Do());(function(r,t){var e=1/t,n=2*e,i=2.5*e,s=function(a){return a0?n+(n+this._rDelay)*this._repeat:n):this.totalDuration()&&this._dur},t.totalDuration=function(n){return arguments.length?(this._dirty=0,Or(this,this._repeat<0?n:(n-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},t.totalTime=function(n,i){if(Fr(),!arguments.length)return this._tTime;var s=this._dp;if(s&&s.smoothChildTiming&&this._ts){for(lo(this,n),!s._dp||s.parent||Qf(s,this);s&&s.parent;)s.parent._time!==s._start+(s._ts>=0?s._tTime/s._ts:(s.totalDuration()-s._tTime)/-s._ts)&&s.totalTime(s._tTime,!0),s=s.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&n0||!this._tDur&&!n)&&Pn(this._dp,this,this._start-this._delay)}return(this._tTime!==n||!this._dur&&!i||this._initted&&Math.abs(this._zTime)===re||!this._initted&&this._dur&&n||!n&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=n),jf(this,n,i)),this},t.time=function(n,i){return arguments.length?this.totalTime(Math.min(this.totalDuration(),n+ch(this))%(this._dur+this._rDelay)||(n?this._dur:0),i):this._time},t.totalProgress=function(n,i){return arguments.length?this.totalTime(this.totalDuration()*n,i):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.rawTime()>=0&&this._initted?1:0},t.progress=function(n,i){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&!(this.iteration()&1)?1-n:n)+ch(this),i):this.duration()?Math.min(1,this._time/this._dur):this.rawTime()>0?1:0},t.iteration=function(n,i){var s=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(n-1)*s,i):this._repeat?Nr(this._tTime,s)+1:1},t.timeScale=function(n,i){if(!arguments.length)return this._rts===-re?0:this._rts;if(this._rts===n)return this;var s=this.parent&&this._ts?Ha(this.parent._time,this):this._tTime;return this._rts=+n||0,this._ts=this._ps||n===-re?0:this._rts,this.totalTime(Bs(-Math.abs(this._delay),this.totalDuration(),s),i!==!1),oo(this),vm(this)},t.paused=function(n){return arguments.length?(this._ps!==n&&(this._ps=n,n?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Fr(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,this.progress()===1&&Math.abs(this._zTime)!==re&&(this._tTime-=re)))),this):this._ps},t.startTime=function(n){if(arguments.length){this._start=he(n);var i=this.parent||this._dp;return i&&(i._sort||!this.parent)&&Pn(i,this,this._start-this._delay),this}return this._start},t.endTime=function(n){return this._start+($e(n)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},t.rawTime=function(n){var i=this.parent||this._dp;return i?n&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?Ha(i.rawTime(n),this):this._tTime:this._tTime},t.revert=function(n){n===void 0&&(n=pm);var i=Ie;return Ie=n,dc(this)&&(this.timeline&&this.timeline.revert(n),this.totalTime(-.01,n.suppressEvents)),this.data!=="nested"&&n.kill!==!1&&this.kill(),Ie=i,this},t.globalTime=function(n){for(var i=this,s=arguments.length?n:i.rawTime();i;)s=i._start+s/(Math.abs(i._ts)||1),i=i._dp;return!this.parent&&this._sat?this._sat.globalTime(n):s},t.repeat=function(n){return arguments.length?(this._repeat=n===1/0?-2:n,hh(this)):this._repeat===-2?1/0:this._repeat},t.repeatDelay=function(n){if(arguments.length){var i=this._time;return this._rDelay=n,hh(this),i?this.time(i):this}return this._rDelay},t.yoyo=function(n){return arguments.length?(this._yoyo=n,this):this._yoyo},t.seek=function(n,i){return this.totalTime(dn(this,n),$e(i))},t.restart=function(n,i){return this.play().totalTime(n?-this._delay:0,$e(i)),this._dur||(this._zTime=-re),this},t.play=function(n,i){return n!=null&&this.seek(n,i),this.reversed(!1).paused(!1)},t.reverse=function(n,i){return n!=null&&this.seek(n||this.totalDuration(),i),this.reversed(!0).paused(!1)},t.pause=function(n,i){return n!=null&&this.seek(n,i),this.paused(!0)},t.resume=function(){return this.paused(!1)},t.reversed=function(n){return arguments.length?(!!n!==this.reversed()&&this.timeScale(-this._rts||(n?-re:0)),this):this._rts<0},t.invalidate=function(){return this._initted=this._act=0,this._zTime=-re,this},t.isActive=function(){var n=this.parent||this._dp,i=this._start,s;return!!(!n||this._ts&&this._initted&&n.isActive()&&(s=n.rawTime(!0))>=i&&s1?(i?(o[n]=i,s&&(o[n+"Params"]=s),n==="onUpdate"&&(this._onUpdate=i)):delete o[n],this):o[n]},t.then=function(n){var i=this,s=i._prom;return new Promise(function(o){var a=me(n)?n:Kf,l=function(){var h=i.then;i.then=null,s&&s(),me(a)&&(a=a(i))&&(a.then||a===i)&&(i.then=h),o(a),i.then=h};i._initted&&i.totalProgress()===1&&i._ts>=0||!i._tTime&&i._ts<0?l():i._prom=l})},t.kill=function(){fs(this)},r}();hn(Rs.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-re,_prom:0,_ps:!1,_rts:1});var qe=function(r){zf(t,r);function t(n,i){var s;return n===void 0&&(n={}),s=r.call(this,n)||this,s.labels={},s.smoothChildTiming=!!n.smoothChildTiming,s.autoRemoveChildren=!!n.autoRemoveChildren,s._sort=$e(n.sortChildren),ue&&Pn(n.parent||ue,Wn(s),i),n.reversed&&s.reverse(),n.paused&&s.paused(!0),n.scrollTrigger&&td(Wn(s),n.scrollTrigger),s}var e=t.prototype;return e.to=function(i,s,o){return _s(0,arguments,this),this},e.from=function(i,s,o){return _s(1,arguments,this),this},e.fromTo=function(i,s,o,a){return _s(2,arguments,this),this},e.set=function(i,s,o){return s.duration=0,s.parent=this,ms(s).repeatDelay||(s.repeat=0),s.immediateRender=!!s.immediateRender,new Se(i,s,dn(this,o),1),this},e.call=function(i,s,o){return Pn(this,Se.delayedCall(0,i,s),o)},e.staggerTo=function(i,s,o,a,l,c,h){return o.duration=s,o.stagger=o.stagger||a,o.onComplete=c,o.onCompleteParams=h,o.parent=this,new Se(i,o,dn(this,l)),this},e.staggerFrom=function(i,s,o,a,l,c,h){return o.runBackwards=1,ms(o).immediateRender=$e(o.immediateRender),this.staggerTo(i,s,o,a,l,c,h)},e.staggerFromTo=function(i,s,o,a,l,c,h,u){return a.startAt=o,ms(a).immediateRender=$e(a.immediateRender),this.staggerTo(i,s,a,l,c,h,u)},e.render=function(i,s,o){var a=this._time,l=this._dirty?this.totalDuration():this._tDur,c=this._dur,h=i<=0?0:he(i),u=this._zTime<0!=i<0&&(this._initted||!c),f,d,_,g,p,m,y,v,S,w,R,b;if(this!==ue&&h>l&&i>=0&&(h=l),h!==this._tTime||o||u){if(a!==this._time&&c&&(h+=this._time-a,i+=this._time-a),f=h,S=this._start,v=this._ts,m=!v,u&&(c||(a=this._zTime),(i||!s)&&(this._zTime=i)),this._repeat){if(R=this._yoyo,p=c+this._rDelay,this._repeat<-1&&i<0)return this.totalTime(p*100+i,s,o);if(f=he(h%p),h===l?(g=this._repeat,f=c):(w=he(h/p),g=~~w,g&&g===w&&(f=c,g--),f>c&&(f=c)),w=Nr(this._tTime,p),!a&&this._tTime&&w!==g&&this._tTime-w*p-this._dur<=0&&(w=g),R&&g&1&&(f=c-f,b=1),g!==w&&!this._lock){var U=R&&w&1,F=U===(R&&g&1);if(g=a&&i>=0)for(d=this._first;d;){if(_=d._next,(d._act||f>=d._start)&&d._ts&&y!==d){if(d.parent!==this)return this.render(i,s,o);if(d.render(d._ts>0?(f-d._start)*d._ts:(d._dirty?d.totalDuration():d._tDur)+(f-d._start)*d._ts,s,o),f!==this._time||!this._ts&&!m){y=0,_&&(h+=this._zTime=-re);break}}d=_}else{d=this._last;for(var x=i<0?i:f;d;){if(_=d._prev,(d._act||x<=d._end)&&d._ts&&y!==d){if(d.parent!==this)return this.render(i,s,o);if(d.render(d._ts>0?(x-d._start)*d._ts:(d._dirty?d.totalDuration():d._tDur)+(x-d._start)*d._ts,s,o||Ie&&dc(d)),f!==this._time||!this._ts&&!m){y=0,_&&(h+=this._zTime=x?-re:re);break}}d=_}}if(y&&!s&&(this.pause(),y.render(f>=a?0:-re)._zTime=f>=a?1:-1,this._ts))return this._start=S,oo(this),this.render(i,s,o);this._onUpdate&&!s&&an(this,"onUpdate",!0),(h===l&&this._tTime>=this.totalDuration()||!h&&a)&&(S===this._start||Math.abs(v)!==Math.abs(this._ts))&&(this._lock||((i||!c)&&(h===l&&this._ts>0||!h&&this._ts<0)&&yi(this,1),!s&&!(i<0&&!a)&&(h||a||!l)&&(an(this,h===l&&i>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(h0)&&this._prom())))}return this},e.add=function(i,s){var o=this;if(jn(s)||(s=dn(this,s,i)),!(i instanceof Rs)){if(ke(i))return i.forEach(function(a){return o.add(a,s)}),this;if(Re(i))return this.addLabel(i,s);if(me(i))i=Se.delayedCall(0,i);else return this}return this!==i?Pn(this,i,s):this},e.getChildren=function(i,s,o,a){i===void 0&&(i=!0),s===void 0&&(s=!0),o===void 0&&(o=!0),a===void 0&&(a=-_n);for(var l=[],c=this._first;c;)c._start>=a&&(c instanceof Se?s&&l.push(c):(o&&l.push(c),i&&l.push.apply(l,c.getChildren(!0,s,o)))),c=c._next;return l},e.getById=function(i){for(var s=this.getChildren(1,1,1),o=s.length;o--;)if(s[o].vars.id===i)return s[o]},e.remove=function(i){return Re(i)?this.removeLabel(i):me(i)?this.killTweensOf(i):(i.parent===this&&ao(this,i),i===this._recent&&(this._recent=this._last),Gi(this))},e.totalTime=function(i,s){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=he(sn.time-(this._ts>0?i/this._ts:(this.totalDuration()-i)/-this._ts))),r.prototype.totalTime.call(this,i,s),this._forcing=0,this):this._tTime},e.addLabel=function(i,s){return this.labels[i]=dn(this,s),this},e.removeLabel=function(i){return delete this.labels[i],this},e.addPause=function(i,s,o){var a=Se.delayedCall(0,s||Ts,o);return a.data="isPause",this._hasPause=1,Pn(this,a,dn(this,i))},e.removePause=function(i){var s=this._first;for(i=dn(this,i);s;)s._start===i&&s.data==="isPause"&&yi(s),s=s._next},e.killTweensOf=function(i,s,o){for(var a=this.getTweensOf(i,o),l=a.length;l--;)ci!==a[l]&&a[l].kill(i,s);return this},e.getTweensOf=function(i,s){for(var o=[],a=gn(i),l=this._first,c=jn(s),h;l;)l instanceof Se?mm(l._targets,a)&&(c?(!ci||l._initted&&l._ts)&&l.globalTime(0)<=s&&l.globalTime(l.totalDuration())>s:!s||l.isActive())&&o.push(l):(h=l.getTweensOf(a,s)).length&&o.push.apply(o,h),l=l._next;return o},e.tweenTo=function(i,s){s=s||{};var o=this,a=dn(o,i),l=s,c=l.startAt,h=l.onStart,u=l.onStartParams,f=l.immediateRender,d,_=Se.to(o,hn({ease:s.ease||"none",lazy:!1,immediateRender:!1,time:a,overwrite:"auto",duration:s.duration||Math.abs((a-(c&&"time"in c?c.time:o._time))/o.timeScale())||re,onStart:function(){if(o.pause(),!d){var p=s.duration||Math.abs((a-(c&&"time"in c?c.time:o._time))/o.timeScale());_._dur!==p&&Or(_,p,0,1).render(_._time,!0,!0),d=1}h&&h.apply(_,u||[])}},s));return f?_.render(0):_},e.tweenFromTo=function(i,s,o){return this.tweenTo(s,hn({startAt:{time:dn(this,i)}},o))},e.recent=function(){return this._recent},e.nextLabel=function(i){return i===void 0&&(i=this._time),uh(this,dn(this,i))},e.previousLabel=function(i){return i===void 0&&(i=this._time),uh(this,dn(this,i),1)},e.currentLabel=function(i){return arguments.length?this.seek(i,!0):this.previousLabel(this._time+re)},e.shiftChildren=function(i,s,o){o===void 0&&(o=0);var a=this._first,l=this.labels,c;for(i=he(i);a;)a._start>=o&&(a._start+=i,a._end+=i),a=a._next;if(s)for(c in l)l[c]>=o&&(l[c]+=i);return Gi(this)},e.invalidate=function(i){var s=this._first;for(this._lock=0;s;)s.invalidate(i),s=s._next;return r.prototype.invalidate.call(this,i)},e.clear=function(i){i===void 0&&(i=!0);for(var s=this._first,o;s;)o=s._next,this.remove(s),s=o;return this._dp&&(this._time=this._tTime=this._pTime=0),i&&(this.labels={}),Gi(this)},e.totalDuration=function(i){var s=0,o=this,a=o._last,l=_n,c,h,u;if(arguments.length)return o.timeScale((o._repeat<0?o.duration():o.totalDuration())/(o.reversed()?-i:i));if(o._dirty){for(u=o.parent;a;)c=a._prev,a._dirty&&a.totalDuration(),h=a._start,h>l&&o._sort&&a._ts&&!o._lock?(o._lock=1,Pn(o,a,h-a._delay,1)._lock=0):l=h,h<0&&a._ts&&(s-=h,(!u&&!o._dp||u&&u.smoothChildTiming)&&(o._start+=he(h/o._ts),o._time-=h,o._tTime-=h),o.shiftChildren(-h,!1,-1/0),l=0),a._end>s&&a._ts&&(s=a._end),a=c;Or(o,o===ue&&o._time>s?o._time:s,1,1),o._dirty=0}return o._tDur},t.updateRoot=function(i){if(ue._ts&&(jf(ue,Ha(i,ue)),Yf=sn.frame),sn.frame>=oh){oh+=ln.autoSleep||120;var s=ue._first;if((!s||!s._ts)&&ln.autoSleep&&sn._listeners.length<2){for(;s&&!s._ts;)s=s._next;s||sn.sleep()}}},t}(Rs);hn(qe.prototype,{_lock:0,_hasPause:0,_forcing:0});var zm=function(t,e,n,i,s,o,a){var l=new Ze(this._pt,t,e,0,1,Md,null,s),c=0,h=0,u,f,d,_,g,p,m,y;for(l.b=n,l.e=i,n+="",i+="",(m=~i.indexOf("random("))&&(i=As(i)),o&&(y=[n,i],o(y,t,e),n=y[0],i=y[1]),f=n.match(Co)||[];u=Co.exec(i);)_=u[0],g=i.substring(c,u.index),d?d=(d+1)%5:g.substr(-5)==="rgba("&&(d=1),_!==f[h++]&&(p=parseFloat(f[h-1])||0,l._pt={_next:l._pt,p:g||h===1?g:",",s:p,c:_.charAt(1)==="="?Cr(p,_)-p:parseFloat(_)-p,m:d&&d<4?Math.round:0},c=Co.lastIndex);return l.c=c")}),v.duration();else{w={};for(b in _)b==="ease"||b==="easeEach"||Gm(b,_[b],w,_.easeEach);for(b in w)for(W=w[b].sort(function(N,Y){return N.t-Y.t}),k=0,S=0;Sl-re&&!h?l:ic&&(f=c)),m=this._yoyo&&_&1,m&&(f=c-f),p=Nr(this._tTime,g),f===a&&!o&&this._initted&&_===p)return this._tTime=u,this;_!==p&&this.vars.repeatRefresh&&!m&&!this._lock&&f!==g&&this._initted&&(this._lock=o=1,this.render(he(g*_),!0).invalidate()._lock=0)}if(!this._initted){if(ed(this,h?i:f,o,s,u))return this._tTime=0,this;if(a!==this._time&&!(o&&this.vars.repeatRefresh&&_!==p))return this;if(c!==this._dur)return this.render(i,s,o)}if(this._rEase){var S=f0||!u&&this._ts<0)&&yi(this,1),!s&&!(h&&!a)&&(u||a||m)&&(an(this,u===l?"onComplete":"onReverseComplete",!0),this._prom&&!(u0)&&this._prom()))}return this},e.targets=function(){return this._targets},e.invalidate=function(i){return(!i||!this.vars.runBackwards)&&(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(i),r.prototype.invalidate.call(this,i)},e.resetTo=function(i,s,o,a,l){ws||sn.wake(),this._ts||this.play();var c=Math.min(this._dur,(this._dp._time-this._start)*this._ts),h;return this._initted||mc(this,c),h=this._ease(c/this._dur),Vm(this,i,s,o,a,h,c,l)?this.resetTo(i,s,o,a,1):(lo(this,0),this.parent||Jf(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},e.kill=function(i,s){if(s===void 0&&(s="all"),!i&&(!s||s==="all"))return this._lazy=this._pt=0,this.parent?fs(this):this.scrollTrigger&&this.scrollTrigger.kill(!!Ie),this;if(this.timeline){var o=this.timeline.totalDuration();return this.timeline.killTweensOf(i,s,ci&&ci.vars.overwrite!==!0)._first||fs(this),this.parent&&o!==this.timeline.totalDuration()&&Or(this,this._dur*this.timeline._tDur/o,0,1),this}var a=this._targets,l=i?gn(i):a,c=this._ptLookup,h=this._pt,u,f,d,_,g,p,m;if((!s||s==="all")&&gm(a,l))return s==="all"&&(this._pt=0),fs(this);for(u=this._op=this._op||[],s!=="all"&&(Re(s)&&(g={},je(s,function(y){return g[y]=1}),s=g),s=Hm(a,s)),m=a.length;m--;)if(~l.indexOf(a[m])){f=c[m],s==="all"?(u[m]=s,_=f,d={}):(d=u[m]=u[m]||{},_=s);for(g in _)p=f&&f[g],p&&((!("kill"in p.d)||p.d.kill(g)===!0)&&ao(this,p,"_pt"),delete f[g]),d!=="all"&&(d[g]=1)}return this._initted&&!this._pt&&h&&fs(this),this},t.to=function(i,s){return new t(i,s,arguments[2])},t.from=function(i,s){return _s(1,arguments)},t.delayedCall=function(i,s,o,a){return new t(s,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:i,onComplete:s,onReverseComplete:s,onCompleteParams:o,onReverseCompleteParams:o,callbackScope:a})},t.fromTo=function(i,s,o){return _s(2,arguments)},t.set=function(i,s){return s.duration=0,s.repeatDelay||(s.repeat=0),new t(i,s)},t.killTweensOf=function(i,s,o){return ue.killTweensOf(i,s,o)},t}(Rs);hn(Se.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0});je("staggerTo,staggerFrom,staggerFromTo",function(r){Se[r]=function(){var t=new qe,e=Ll.call(arguments,0);return e.splice(r==="staggerFromTo"?5:4,0,0),t[r].apply(t,e)}});var _c=function(t,e,n){return t[e]=n},xd=function(t,e,n){return t[e](n)},Wm=function(t,e,n,i){return t[e](i.fp,n)},Xm=function(t,e,n){return t.setAttribute(e,n)},gc=function(t,e){return me(t[e])?xd:ac(t[e])&&t.setAttribute?Xm:_c},yd=function(t,e){return e.set(e.t,e.p,Math.round((e.s+e.c*t)*1e6)/1e6,e)},qm=function(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},Md=function(t,e){var n=e._pt,i="";if(!t&&e.b)i=e.b;else if(t===1&&e.e)i=e.e;else{for(;n;)i=n.p+(n.m?n.m(n.s+n.c*t):Math.round((n.s+n.c*t)*1e4)/1e4)+i,n=n._next;i+=e.c}e.set(e.t,e.p,i,e)},vc=function(t,e){for(var n=e._pt;n;)n.r(t,n.d),n=n._next},Ym=function(t,e,n,i){for(var s=this._pt,o;s;)o=s._next,s.p===i&&s.modifier(t,e,n),s=o},$m=function(t){for(var e=this._pt,n,i;e;)i=e._next,e.p===t&&!e.op||e.op===t?ao(this,e,"_pt"):e.dep||(n=1),e=i;return!n},jm=function(t,e,n,i){i.mSet(t,e,i.m.call(i.tween,n,i.mt),i)},Sd=function(t){for(var e=t._pt,n,i,s,o;e;){for(n=e._next,i=s;i&&i.pr>e.pr;)i=i._next;(e._prev=i?i._prev:o)?e._prev._next=e:s=e,(e._next=i)?i._prev=e:o=e,e=n}t._pt=s},Ze=function(){function r(e,n,i,s,o,a,l,c,h){this.t=n,this.s=s,this.c=o,this.p=i,this.r=a||yd,this.d=l||this,this.set=c||_c,this.pr=h||0,this._next=e,e&&(e._prev=this)}var t=r.prototype;return t.modifier=function(n,i,s){this.mSet=this.mSet||this.set,this.set=jm,this.m=n,this.mt=s,this.tween=i},r}();je(uc+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger,easeReverse",function(r){return hc[r]=1});cn.TweenMax=cn.TweenLite=Se;cn.TimelineLite=cn.TimelineMax=qe;ue=new qe({sortChildren:!1,defaults:bs,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0});ln.stringFilter=dd;var Xi=[],Oa={},Zm=[],dh=0,Km=0,Uo=function(t){return(Oa[t]||Zm).map(function(e){return e()})},Nl=function(){var t=Date.now(),e=[];t-dh>2&&(Uo("matchMediaInit"),Xi.forEach(function(n){var i=n.queries,s=n.conditions,o,a,l,c;for(a in i)o=Rn.matchMedia(i[a]).matches,o&&(l=1),o!==s[a]&&(s[a]=o,c=1);c&&(n.revert(),l&&e.push(n))}),Uo("matchMediaRevert"),e.forEach(function(n){return n.onMatch(n,function(i){return n.add(null,i)})}),dh=t,Uo("matchMedia"))},bd=function(){function r(e,n){this.selector=n&&Dl(n),this.data=[],this._r=[],this.isReverted=!1,this.id=Km++,e&&this.add(e)}var t=r.prototype;return t.add=function(n,i,s){me(n)&&(s=i,i=n,n=me);var o=this,a=function(){var c=le,h=o.selector,u;return c&&c!==o&&c.data.push(o),s&&(o.selector=Dl(s)),le=o,u=i.apply(o,arguments),me(u)&&o._r.push(u),le=c,o.selector=h,o.isReverted=!1,u};return o.last=a,n===me?a(o,function(l){return o.add(null,l)}):n?o[n]=a:a},t.ignore=function(n){var i=le;le=null,n(this),le=i},t.getTweens=function(){var n=[];return this.data.forEach(function(i){return i instanceof r?n.push.apply(n,i.getTweens()):i instanceof Se&&!(i.parent&&i.parent.data==="nested")&&n.push(i)}),n},t.clear=function(){this._r.length=this.data.length=0},t.kill=function(n,i){var s=this;if(n?function(){for(var a=s.getTweens(),l=s.data.length,c;l--;)c=s.data[l],c.data==="isFlip"&&(c.revert(),c.getChildren(!0,!0,!1).forEach(function(h){return a.splice(a.indexOf(h),1)}));for(a.map(function(h){return{g:h._dur||h._delay||h._sat&&!h._sat.vars.immediateRender?h.globalTime(0):-1/0,t:h}}).sort(function(h,u){return u.g-h.g||-1/0}).forEach(function(h){return h.t.revert(n)}),l=s.data.length;l--;)c=s.data[l],c instanceof qe?c.data!=="nested"&&(c.scrollTrigger&&c.scrollTrigger.revert(),c.kill()):!(c instanceof Se)&&c.revert&&c.revert(n);s._r.forEach(function(h){return h(n,s)}),s.isReverted=!0}():this.data.forEach(function(a){return a.kill&&a.kill()}),this.clear(),i)for(var o=Xi.length;o--;)Xi[o].id===this.id&&Xi.splice(o,1)},t.revert=function(n){this.kill(n||{})},r}(),Jm=function(){function r(e){this.contexts=[],this.scope=e,le&&le.data.push(this)}var t=r.prototype;return t.add=function(n,i,s){In(n)||(n={matches:n});var o=new bd(0,s||this.scope),a=o.conditions={},l,c,h;le&&!o.selector&&(o.selector=le.selector),this.contexts.push(o),i=o.add("onMatch",i),o.queries=n;for(c in n)c==="all"?h=1:(l=Rn.matchMedia(n[c]),l&&(Xi.indexOf(o)<0&&Xi.push(o),(a[c]=l.matches)&&(h=1),l.addListener?l.addListener(Nl):l.addEventListener("change",Nl)));return h&&i(o,function(u){return o.add(null,u)}),this},t.revert=function(n){this.kill(n||{})},t.kill=function(n){this.contexts.forEach(function(i){return i.kill(n,!0)})},r}(),Ga={registerPlugin:function(){for(var t=arguments.length,e=new Array(t),n=0;n1){var i=t.map(function(h){return Qe.quickSetter(h,e,n)}),s=i.length;return function(h){for(var u=s;u--;)i[u](h)}}t=t[0]||{};var o=rn[e],a=Hi(t),l=a.harness&&(a.harness.aliases||{})[e]||e,c=o?function(h){var u=new o;Tr._pt=0,u.init(t,n?h+n:h,Tr,0,[t]),u.render(1,u),Tr._pt&&vc(1,Tr)}:a.set(t,l);return o?c:function(h){return c(t,l,n?h+n:h,a,1)}},quickTo:function(t,e,n){var i,s=Qe.to(t,hn((i={},i[e]="+=0.1",i.paused=!0,i.stagger=0,i),n||{})),o=function(l,c,h){return s.resetTo(e,l,c,h)};return o.tween=s,o},isTweening:function(t){return ue.getTweensOf(t,!0).length>0},defaults:function(t){return t&&t.ease&&(t.ease=Wi(t.ease,bs.ease)),lh(bs,t||{})},config:function(t){return lh(ln,t||{})},registerEffect:function(t){var e=t.name,n=t.effect,i=t.plugins,s=t.defaults,o=t.extendTimeline;(i||"").split(",").forEach(function(a){return a&&!rn[a]&&!cn[a]&&Es(e+" effect requires "+a+" plugin.")}),Po[e]=function(a,l,c){return n(gn(a),hn(l||{},s),c)},o&&(qe.prototype[e]=function(a,l,c){return this.add(Po[e](a,In(l)?l:(c=l)&&{},this),c)})},registerEase:function(t,e){jt[t]=Wi(e)},parseEase:function(t,e){return arguments.length?Wi(t,e):jt},getById:function(t){return ue.getById(t)},exportRoot:function(t,e){t===void 0&&(t={});var n=new qe(t),i,s;for(n.smoothChildTiming=$e(t.smoothChildTiming),ue.remove(n),n._dp=0,n._time=n._tTime=ue._time,i=ue._first;i;)s=i._next,(e||!(!i._dur&&i instanceof Se&&i.vars.onComplete===i._targets[0]))&&Pn(n,i,i._start-i._delay),i=s;return Pn(ue,n,0),n},context:function(t,e){return t?new bd(t,e):le},matchMedia:function(t){return new Jm(t)},matchMediaRefresh:function(){return Xi.forEach(function(t){var e=t.conditions,n,i;for(i in e)e[i]&&(e[i]=!1,n=1);n&&t.revert()})||Nl()},addEventListener:function(t,e){var n=Oa[t]||(Oa[t]=[]);~n.indexOf(e)||n.push(e)},removeEventListener:function(t,e){var n=Oa[t],i=n&&n.indexOf(e);i>=0&&n.splice(i,1)},utils:{wrap:Cm,wrapYoyo:Pm,distribute:rd,random:ad,snap:sd,normalize:Rm,getUnit:ze,clamp:Em,splitColor:ud,toArray:gn,selector:Dl,mapRange:ld,pipe:Am,unitize:wm,interpolate:Lm,shuffle:id},install:Xf,effects:Po,ticker:sn,updateRoot:qe.updateRoot,plugins:rn,globalTimeline:ue,core:{PropTween:Ze,globals:qf,Tween:Se,Timeline:qe,Animation:Rs,getCache:Hi,_removeLinkedListItem:ao,reverting:function(){return Ie},context:function(t){return t&&le&&(le.data.push(t),t._ctx=le),le},suppressOverwrites:function(t){return sc=t}}};je("to,from,fromTo,delayedCall,set,killTweensOf",function(r){return Ga[r]=Se[r]});sn.add(qe.updateRoot);Tr=Ga.to({},{duration:0});var Qm=function(t,e){for(var n=t._pt;n&&n.p!==e&&n.op!==e&&n.fp!==e;)n=n._next;return n},t_=function(t,e){var n=t._targets,i,s,o;for(i in e)for(s=n.length;s--;)o=t._ptLookup[s][i],o&&(o=o.d)&&(o._pt&&(o=Qm(o,i)),o&&o.modifier&&o.modifier(e[i],t,n[s],i))},No=function(t,e){return{name:t,headless:1,rawVars:1,init:function(i,s,o){o._onInit=function(a){var l,c;if(Re(s)&&(l={},je(s,function(h){return l[h]=1}),s=l),e){l={};for(c in s)l[c]=e(s[c]);s=l}t_(a,s)}}}},Qe=Ga.registerPlugin({name:"attr",init:function(t,e,n,i,s){var o,a,l;this.tween=n;for(o in e)l=t.getAttribute(o)||"",a=this.add(t,"setAttribute",(l||0)+"",e[o],i,s,0,0,o),a.op=o,a.b=l,this._props.push(o)},render:function(t,e){for(var n=e._pt;n;)Ie?n.set(n.t,n.p,n.b,n):n.r(t,n.d),n=n._next}},{name:"endArray",headless:1,init:function(t,e){for(var n=e.length;n--;)this.add(t,n,t[n]||0,e[n],0,0,0,0,0,1)}},No("roundProps",Il),No("modifiers"),No("snap",sd))||Ga;Se.version=qe.version=Qe.version="3.15.0";Wf=1;oc()&&Fr();jt.Power0;jt.Power1;jt.Power2;jt.Power3;jt.Power4;jt.Linear;jt.Quad;jt.Cubic;jt.Quart;jt.Quint;jt.Strong;jt.Elastic;jt.Back;jt.SteppedEase;jt.Bounce;jt.Sine;jt.Expo;jt.Circ;/*! - * CSSPlugin 3.15.0 - * https://gsap.com - * - * Copyright 2008-2026, GreenSock. All rights reserved. - * Subject to the terms at https://gsap.com/standard-license - * @author: Jack Doyle, jack@greensock.com -*/var ph,hi,Pr,xc,ki,mh,yc,e_=function(){return typeof window!="undefined"},Zn={},Oi=180/Math.PI,Lr=Math.PI/180,tr=Math.atan2,_h=1e8,Mc=/([A-Z])/g,n_=/(left|right|width|margin|padding|x)/i,i_=/[\s,\(]\S/,Dn={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},Ol=function(t,e){return e.set(e.t,e.p,Math.round((e.s+e.c*t)*1e4)/1e4+e.u,e)},r_=function(t,e){return e.set(e.t,e.p,t===1?e.e:Math.round((e.s+e.c*t)*1e4)/1e4+e.u,e)},s_=function(t,e){return e.set(e.t,e.p,t?Math.round((e.s+e.c*t)*1e4)/1e4+e.u:e.b,e)},a_=function(t,e){return e.set(e.t,e.p,t===1?e.e:t?Math.round((e.s+e.c*t)*1e4)/1e4+e.u:e.b,e)},o_=function(t,e){var n=e.s+e.c*t;e.set(e.t,e.p,~~(n+(n<0?-.5:.5))+e.u,e)},Ed=function(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)},Td=function(t,e){return e.set(e.t,e.p,t!==1?e.b:e.e,e)},l_=function(t,e,n){return t.style[e]=n},c_=function(t,e,n){return t.style.setProperty(e,n)},h_=function(t,e,n){return t._gsap[e]=n},u_=function(t,e,n){return t._gsap.scaleX=t._gsap.scaleY=n},f_=function(t,e,n,i,s){var o=t._gsap;o.scaleX=o.scaleY=n,o.renderTransform(s,o)},d_=function(t,e,n,i,s){var o=t._gsap;o[e]=n,o.renderTransform(s,o)},fe="transform",Ke=fe+"Origin",p_=function r(t,e){var n=this,i=this.target,s=i.style,o=i._gsap;if(t in Zn&&s){if(this.tfm=this.tfm||{},t!=="transform")t=Dn[t]||t,~t.indexOf(",")?t.split(",").forEach(function(a){return n.tfm[a]=qn(i,a)}):this.tfm[t]=o.x?o[t]:qn(i,t),t===Ke&&(this.tfm.zOrigin=o.zOrigin);else return Dn.transform.split(",").forEach(function(a){return r.call(n,a,e)});if(this.props.indexOf(fe)>=0)return;o.svg&&(this.svgo=i.getAttribute("data-svg-origin"),this.props.push(Ke,e,"")),t=fe}(s||e)&&this.props.push(t,e,s[t])},Ad=function(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))},m_=function(){var t=this.props,e=this.target,n=e.style,i=e._gsap,s,o;for(s=0;s=0?gh[o]:"")+t},Bl=function(){e_()&&window.document&&(ph=window,hi=ph.document,Pr=hi.documentElement,ki=Fl("div")||{style:{}},Fl("div"),fe=Br(fe),Ke=fe+"Origin",ki.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",Rd=!!Br("perspective"),yc=Qe.core.reverting,xc=1)},vh=function(t){var e=t.ownerSVGElement,n=Fl("svg",e&&e.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),i=t.cloneNode(!0),s;i.style.display="block",n.appendChild(i),Pr.appendChild(n);try{s=i.getBBox()}catch(o){}return n.removeChild(i),Pr.removeChild(n),s},xh=function(t,e){for(var n=e.length;n--;)if(t.hasAttribute(e[n]))return t.getAttribute(e[n])},Cd=function(t){var e,n;try{e=t.getBBox()}catch(i){e=vh(t),n=1}return e&&(e.width||e.height)||n||(e=vh(t)),e&&!e.width&&!e.x&&!e.y?{x:+xh(t,["x","cx","x1"])||0,y:+xh(t,["y","cy","y1"])||0,width:0,height:0}:e},Pd=function(t){return!!(t.getCTM&&(!t.parentNode||t.ownerSVGElement)&&Cd(t))},Mi=function(t,e){if(e){var n=t.style,i;e in Zn&&e!==Ke&&(e=fe),n.removeProperty?(i=e.substr(0,2),(i==="ms"||e.substr(0,6)==="webkit")&&(e="-"+e),n.removeProperty(i==="--"?e:e.replace(Mc,"-$1").toLowerCase())):n.removeAttribute(e)}},ui=function(t,e,n,i,s,o){var a=new Ze(t._pt,e,n,0,1,o?Td:Ed);return t._pt=a,a.b=i,a.e=s,t._props.push(n),a},yh={deg:1,rad:1,turn:1},__={grid:1,flex:1},Si=function r(t,e,n,i){var s=parseFloat(n)||0,o=(n+"").trim().substr((s+"").length)||"px",a=ki.style,l=n_.test(e),c=t.tagName.toLowerCase()==="svg",h=(c?"client":"offset")+(l?"Width":"Height"),u=100,f=i==="px",d=i==="%",_,g,p,m;if(i===o||!s||yh[i]||yh[o])return s;if(o!=="px"&&!f&&(s=r(t,e,n,"px")),m=t.getCTM&&Pd(t),(d||o==="%")&&(Zn[e]||~e.indexOf("adius")))return _=m?t.getBBox()[l?"width":"height"]:t[h],ye(d?s/_*u:s/100*_);if(a[l?"width":"height"]=u+(f?o:i),g=i!=="rem"&&~e.indexOf("adius")||i==="em"&&t.appendChild&&!c?t:t.parentNode,m&&(g=(t.ownerSVGElement||{}).parentNode),(!g||g===hi||!g.appendChild)&&(g=hi.body),p=g._gsap,p&&d&&p.width&&l&&p.time===sn.time&&!p.uncache)return ye(s/p.width*u);if(d&&(e==="height"||e==="width")){var y=t.style[e];t.style[e]=u+i,_=t[h],y?t.style[e]=y:Mi(t,e)}else(d||o==="%")&&!__[on(g,"display")]&&(a.position=on(t,"position")),g===t&&(a.position="static"),g.appendChild(ki),_=ki[h],g.removeChild(ki),a.position="absolute";return l&&d&&(p=Hi(g),p.time=sn.time,p.width=g[h]),ye(f?_*s/u:_&&s?u/_*s:0)},qn=function(t,e,n,i){var s;return xc||Bl(),e in Dn&&e!=="transform"&&(e=Dn[e],~e.indexOf(",")&&(e=e.split(",")[0])),Zn[e]&&e!=="transform"?(s=Ps(t,i),s=e!=="transformOrigin"?s[e]:s.svg?s.origin:Xa(on(t,Ke))+" "+s.zOrigin+"px"):(s=t.style[e],(!s||s==="auto"||i||~(s+"").indexOf("calc("))&&(s=Wa[e]&&Wa[e](t,e,n)||on(t,e)||$f(t,e)||(e==="opacity"?1:0))),n&&!~(s+"").trim().indexOf(" ")?Si(t,e,s,n)+n:s},g_=function(t,e,n,i){if(!n||n==="none"){var s=Br(e,t,1),o=s&&on(t,s,1);o&&o!==n?(e=s,n=o):e==="borderColor"&&(n=on(t,"borderTopColor"))}var a=new Ze(this._pt,t.style,e,0,1,Md),l=0,c=0,h,u,f,d,_,g,p,m,y,v,S,w;if(a.b=n,a.e=i,n+="",i+="",i.substring(0,6)==="var(--"&&(i=on(t,i.substring(4,i.indexOf(")")))),i==="auto"&&(g=t.style[e],t.style[e]=i,i=on(t,e)||i,g?t.style[e]=g:Mi(t,e)),h=[n,i],dd(h),n=h[0],i=h[1],f=n.match(Er)||[],w=i.match(Er)||[],w.length){for(;u=Er.exec(i);)p=u[0],y=i.substring(l,u.index),_?_=(_+1)%5:(y.substr(-5)==="rgba("||y.substr(-5)==="hsla(")&&(_=1),p!==(g=f[c++]||"")&&(d=parseFloat(g)||0,S=g.substr((d+"").length),p.charAt(1)==="="&&(p=Cr(d,p)+S),m=parseFloat(p),v=p.substr((m+"").length),l=Er.lastIndex-v.length,v||(v=v||ln.units[e]||S,l===i.length&&(i+=v,a.e+=v)),S!==v&&(d=Si(t,e,g,v)||0),a._pt={_next:a._pt,p:y||c===1?y:",",s:d,c:m-d,m:_&&_<4||e==="zIndex"?Math.round:0});a.c=l-1;)a=s[c],Zn[a]&&(l=1,a=a==="transformOrigin"?Ke:fe),Mi(n,a);l&&(Mi(n,fe),o&&(o.svg&&n.removeAttribute("transform"),i.scale=i.rotate=i.translate="none",Ps(n,1),o.uncache=1,Ad(i)))}},Wa={clearProps:function(t,e,n,i,s){if(s.data!=="isFromStart"){var o=t._pt=new Ze(t._pt,e,n,0,0,x_);return o.u=i,o.pr=-10,o.tween=s,t._props.push(n),1}}},Cs=[1,0,0,1,0,0],Ld={},Dd=function(t){return t==="matrix(1, 0, 0, 1, 0, 0)"||t==="none"||!t},Sh=function(t){var e=on(t,fe);return Dd(e)?Cs:e.substr(7).match(Hf).map(ye)},Sc=function(t,e){var n=t._gsap||Hi(t),i=t.style,s=Sh(t),o,a,l,c;return n.svg&&t.getAttribute("transform")?(l=t.transform.baseVal.consolidate().matrix,s=[l.a,l.b,l.c,l.d,l.e,l.f],s.join(",")==="1,0,0,1,0,0"?Cs:s):(s===Cs&&!t.offsetParent&&t!==Pr&&!n.svg&&(l=i.display,i.display="block",o=t.parentNode,(!o||!t.offsetParent&&!t.getBoundingClientRect().width)&&(c=1,a=t.nextElementSibling,Pr.appendChild(t)),s=Sh(t),l?i.display=l:Mi(t,"display"),c&&(a?o.insertBefore(t,a):o?o.appendChild(t):Pr.removeChild(t))),e&&s.length>6?[s[0],s[1],s[4],s[5],s[12],s[13]]:s)},zl=function(t,e,n,i,s,o){var a=t._gsap,l=s||Sc(t,!0),c=a.xOrigin||0,h=a.yOrigin||0,u=a.xOffset||0,f=a.yOffset||0,d=l[0],_=l[1],g=l[2],p=l[3],m=l[4],y=l[5],v=e.split(" "),S=parseFloat(v[0])||0,w=parseFloat(v[1])||0,R,b,U,F;n?l!==Cs&&(b=d*p-_*g)&&(U=S*(p/b)+w*(-g/b)+(g*y-p*m)/b,F=S*(-_/b)+w*(d/b)-(d*y-_*m)/b,S=U,w=F):(R=Cd(t),S=R.x+(~v[0].indexOf("%")?S/100*R.width:S),w=R.y+(~(v[1]||v[0]).indexOf("%")?w/100*R.height:w)),i||i!==!1&&a.smooth?(m=S-c,y=w-h,a.xOffset=u+(m*d+y*g)-m,a.yOffset=f+(m*_+y*p)-y):a.xOffset=a.yOffset=0,a.xOrigin=S,a.yOrigin=w,a.smooth=!!i,a.origin=e,a.originIsAbsolute=!!n,t.style[Ke]="0px 0px",o&&(ui(o,a,"xOrigin",c,S),ui(o,a,"yOrigin",h,w),ui(o,a,"xOffset",u,a.xOffset),ui(o,a,"yOffset",f,a.yOffset)),t.setAttribute("data-svg-origin",S+" "+w)},Ps=function(t,e){var n=t._gsap||new md(t);if("x"in n&&!e&&!n.uncache)return n;var i=t.style,s=n.scaleX<0,o="px",a="deg",l=getComputedStyle(t),c=on(t,Ke)||"0",h,u,f,d,_,g,p,m,y,v,S,w,R,b,U,F,x,E,k,W,I,O,N,Y,X,$,Z,J,ut,bt,V,Q;return h=u=f=g=p=m=y=v=S=0,d=_=1,n.svg=!!(t.getCTM&&Pd(t)),l.translate&&((l.translate!=="none"||l.scale!=="none"||l.rotate!=="none")&&(i[fe]=(l.translate!=="none"?"translate3d("+(l.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(l.rotate!=="none"?"rotate("+l.rotate+") ":"")+(l.scale!=="none"?"scale("+l.scale.split(" ").join(",")+") ":"")+(l[fe]!=="none"?l[fe]:"")),i.scale=i.rotate=i.translate="none"),b=Sc(t,n.svg),n.svg&&(n.uncache?(X=t.getBBox(),c=n.xOrigin-X.x+"px "+(n.yOrigin-X.y)+"px",Y=""):Y=!e&&t.getAttribute("data-svg-origin"),zl(t,Y||c,!!Y||n.originIsAbsolute,n.smooth!==!1,b)),w=n.xOrigin||0,R=n.yOrigin||0,b!==Cs&&(E=b[0],k=b[1],W=b[2],I=b[3],h=O=b[4],u=N=b[5],b.length===6?(d=Math.sqrt(E*E+k*k),_=Math.sqrt(I*I+W*W),g=E||k?tr(k,E)*Oi:0,y=W||I?tr(W,I)*Oi+g:0,y&&(_*=Math.abs(Math.cos(y*Lr))),n.svg&&(h-=w-(w*E+R*W),u-=R-(w*k+R*I))):(Q=b[6],bt=b[7],Z=b[8],J=b[9],ut=b[10],V=b[11],h=b[12],u=b[13],f=b[14],U=tr(Q,ut),p=U*Oi,U&&(F=Math.cos(-U),x=Math.sin(-U),Y=O*F+Z*x,X=N*F+J*x,$=Q*F+ut*x,Z=O*-x+Z*F,J=N*-x+J*F,ut=Q*-x+ut*F,V=bt*-x+V*F,O=Y,N=X,Q=$),U=tr(-W,ut),m=U*Oi,U&&(F=Math.cos(-U),x=Math.sin(-U),Y=E*F-Z*x,X=k*F-J*x,$=W*F-ut*x,V=I*x+V*F,E=Y,k=X,W=$),U=tr(k,E),g=U*Oi,U&&(F=Math.cos(U),x=Math.sin(U),Y=E*F+k*x,X=O*F+N*x,k=k*F-E*x,N=N*F-O*x,E=Y,O=X),p&&Math.abs(p)+Math.abs(g)>359.9&&(p=g=0,m=180-m),d=ye(Math.sqrt(E*E+k*k+W*W)),_=ye(Math.sqrt(N*N+Q*Q)),U=tr(O,N),y=Math.abs(U)>2e-4?U*Oi:0,S=V?1/(V<0?-V:V):0),n.svg&&(Y=t.getAttribute("transform"),n.forceCSS=t.setAttribute("transform","")||!Dd(on(t,fe)),Y&&t.setAttribute("transform",Y))),Math.abs(y)>90&&Math.abs(y)<270&&(s?(d*=-1,y+=g<=0?180:-180,g+=g<=0?180:-180):(_*=-1,y+=y<=0?180:-180)),e=e||n.uncache,n.x=h-((n.xPercent=h&&(!e&&n.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-h)?-50:0)))?t.offsetWidth*n.xPercent/100:0)+o,n.y=u-((n.yPercent=u&&(!e&&n.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-u)?-50:0)))?t.offsetHeight*n.yPercent/100:0)+o,n.z=f+o,n.scaleX=ye(d),n.scaleY=ye(_),n.rotation=ye(g)+a,n.rotationX=ye(p)+a,n.rotationY=ye(m)+a,n.skewX=y+a,n.skewY=v+a,n.transformPerspective=S+o,(n.zOrigin=parseFloat(c.split(" ")[2])||!e&&n.zOrigin||0)&&(i[Ke]=Xa(c)),n.xOffset=n.yOffset=0,n.force3D=ln.force3D,n.renderTransform=n.svg?M_:Rd?Id:y_,n.uncache=0,n},Xa=function(t){return(t=t.split(" "))[0]+" "+t[1]},Oo=function(t,e,n){var i=ze(e);return ye(parseFloat(e)+parseFloat(Si(t,"x",n+"px",i)))+i},y_=function(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,Id(t,e)},Pi="0deg",Zr="0px",Li=") ",Id=function(t,e){var n=e||this,i=n.xPercent,s=n.yPercent,o=n.x,a=n.y,l=n.z,c=n.rotation,h=n.rotationY,u=n.rotationX,f=n.skewX,d=n.skewY,_=n.scaleX,g=n.scaleY,p=n.transformPerspective,m=n.force3D,y=n.target,v=n.zOrigin,S="",w=m==="auto"&&t&&t!==1||m===!0;if(v&&(u!==Pi||h!==Pi)){var R=parseFloat(h)*Lr,b=Math.sin(R),U=Math.cos(R),F;R=parseFloat(u)*Lr,F=Math.cos(R),o=Oo(y,o,b*F*-v),a=Oo(y,a,-Math.sin(R)*-v),l=Oo(y,l,U*F*-v+v)}p!==Zr&&(S+="perspective("+p+Li),(i||s)&&(S+="translate("+i+"%, "+s+"%) "),(w||o!==Zr||a!==Zr||l!==Zr)&&(S+=l!==Zr||w?"translate3d("+o+", "+a+", "+l+") ":"translate("+o+", "+a+Li),c!==Pi&&(S+="rotate("+c+Li),h!==Pi&&(S+="rotateY("+h+Li),u!==Pi&&(S+="rotateX("+u+Li),(f!==Pi||d!==Pi)&&(S+="skew("+f+", "+d+Li),(_!==1||g!==1)&&(S+="scale("+_+", "+g+Li),y.style[fe]=S||"translate(0, 0)"},M_=function(t,e){var n=e||this,i=n.xPercent,s=n.yPercent,o=n.x,a=n.y,l=n.rotation,c=n.skewX,h=n.skewY,u=n.scaleX,f=n.scaleY,d=n.target,_=n.xOrigin,g=n.yOrigin,p=n.xOffset,m=n.yOffset,y=n.forceCSS,v=parseFloat(o),S=parseFloat(a),w,R,b,U,F;l=parseFloat(l),c=parseFloat(c),h=parseFloat(h),h&&(h=parseFloat(h),c+=h,l+=h),l||c?(l*=Lr,c*=Lr,w=Math.cos(l)*u,R=Math.sin(l)*u,b=Math.sin(l-c)*-f,U=Math.cos(l-c)*f,c&&(h*=Lr,F=Math.tan(c-h),F=Math.sqrt(1+F*F),b*=F,U*=F,h&&(F=Math.tan(h),F=Math.sqrt(1+F*F),w*=F,R*=F)),w=ye(w),R=ye(R),b=ye(b),U=ye(U)):(w=u,U=f,R=b=0),(v&&!~(o+"").indexOf("px")||S&&!~(a+"").indexOf("px"))&&(v=Si(d,"x",o,"px"),S=Si(d,"y",a,"px")),(_||g||p||m)&&(v=ye(v+_-(_*w+g*b)+p),S=ye(S+g-(_*R+g*U)+m)),(i||s)&&(F=d.getBBox(),v=ye(v+i/100*F.width),S=ye(S+s/100*F.height)),F="matrix("+w+","+R+","+b+","+U+","+v+","+S+")",d.setAttribute("transform",F),y&&(d.style[fe]=F)},S_=function(t,e,n,i,s){var o=360,a=Re(s),l=parseFloat(s)*(a&&~s.indexOf("rad")?Oi:1),c=l-i,h=i+c+"deg",u,f;return a&&(u=s.split("_")[1],u==="short"&&(c%=o,c!==c%(o/2)&&(c+=c<0?o:-o)),u==="cw"&&c<0?c=(c+o*_h)%o-~~(c/o)*o:u==="ccw"&&c>0&&(c=(c-o*_h)%o-~~(c/o)*o)),t._pt=f=new Ze(t._pt,e,n,i,c,r_),f.e=h,f.u="deg",t._props.push(n),f},bh=function(t,e){for(var n in e)t[n]=e[n];return t},b_=function(t,e,n){var i=bh({},n._gsap),s="perspective,force3D,transformOrigin,svgOrigin",o=n.style,a,l,c,h,u,f,d,_;i.svg?(c=n.getAttribute("transform"),n.setAttribute("transform",""),o[fe]=e,a=Ps(n,1),Mi(n,fe),n.setAttribute("transform",c)):(c=getComputedStyle(n)[fe],o[fe]=e,a=Ps(n,1),o[fe]=c);for(l in Zn)c=i[l],h=a[l],c!==h&&s.indexOf(l)<0&&(d=ze(c),_=ze(h),u=d!==_?Si(n,l,c,_):parseFloat(c),f=parseFloat(h),t._pt=new Ze(t._pt,a,l,u,f-u,Ol),t._pt.u=_||0,t._props.push(l));bh(a,i)};je("padding,margin,Width,Radius",function(r,t){var e="Top",n="Right",i="Bottom",s="Left",o=(t<3?[e,n,i,s]:[e+s,e+n,i+n,i+s]).map(function(a){return t<2?r+a:"border"+a+r});Wa[t>1?"border"+r:r]=function(a,l,c,h,u){var f,d;if(arguments.length<4)return f=o.map(function(_){return qn(a,_,c)}),d=f.join(" "),d.split(f[0]).length===5?f[0]:d;f=(h+"").split(" "),d={},o.forEach(function(_,g){return d[_]=f[g]=f[g]||f[(g-1)/2|0]}),a.init(l,d,u)}});var Ud={name:"css",register:Bl,targetTest:function(t){return t.style&&t.nodeType},init:function(t,e,n,i,s){var o=this._props,a=t.style,l=n.vars.startAt,c,h,u,f,d,_,g,p,m,y,v,S,w,R,b,U,F;xc||Bl(),this.styles=this.styles||wd(t),U=this.styles.props,this.tween=n;for(g in e)if(g!=="autoRound"&&(h=e[g],!(rn[g]&&_d(g,e,n,i,t,s)))){if(d=typeof h,_=Wa[g],d==="function"&&(h=h.call(n,i,t,s),d=typeof h),d==="string"&&~h.indexOf("random(")&&(h=As(h)),_)_(this,t,g,h,n)&&(b=1);else if(g.substr(0,2)==="--")c=(getComputedStyle(t).getPropertyValue(g)+"").trim(),h+="",mi.lastIndex=0,mi.test(c)||(p=ze(c),m=ze(h),m?p!==m&&(c=Si(t,g,c,m)+m):p&&(h+=p)),this.add(a,"setProperty",c,h,i,s,0,0,g),o.push(g),U.push(g,0,a[g]);else if(d!=="undefined"){if(l&&g in l?(c=typeof l[g]=="function"?l[g].call(n,i,t,s):l[g],Re(c)&&~c.indexOf("random(")&&(c=As(c)),ze(c+"")||c==="auto"||(c+=ln.units[g]||ze(qn(t,g))||""),(c+"").charAt(1)==="="&&(c=qn(t,g))):c=qn(t,g),f=parseFloat(c),y=d==="string"&&h.charAt(1)==="="&&h.substr(0,2),y&&(h=h.substr(2)),u=parseFloat(h),g in Dn&&(g==="autoAlpha"&&(f===1&&qn(t,"visibility")==="hidden"&&u&&(f=0),U.push("visibility",0,a.visibility),ui(this,a,"visibility",f?"inherit":"hidden",u?"inherit":"hidden",!u)),g!=="scale"&&g!=="transform"&&(g=Dn[g],~g.indexOf(",")&&(g=g.split(",")[0]))),v=g in Zn,v){if(this.styles.save(g),F=h,d==="string"&&h.substring(0,6)==="var(--"){if(h=on(t,h.substring(4,h.indexOf(")"))),h.substring(0,5)==="calc("){var x=t.style.perspective;t.style.perspective=h,h=on(t,"perspective"),x?t.style.perspective=x:Mi(t,"perspective")}u=parseFloat(h)}if(S||(w=t._gsap,w.renderTransform&&!e.parseTransform||Ps(t,e.parseTransform),R=e.smoothOrigin!==!1&&w.smooth,S=this._pt=new Ze(this._pt,a,fe,0,1,w.renderTransform,w,0,-1),S.dep=1),g==="scale")this._pt=new Ze(this._pt,w,"scaleY",w.scaleY,(y?Cr(w.scaleY,y+u):u)-w.scaleY||0,Ol),this._pt.u=0,o.push("scaleY",g),g+="X";else if(g==="transformOrigin"){U.push(Ke,0,a[Ke]),h=v_(h),w.svg?zl(t,h,0,R,0,this):(m=parseFloat(h.split(" ")[2])||0,m!==w.zOrigin&&ui(this,w,"zOrigin",w.zOrigin,m),ui(this,a,g,Xa(c),Xa(h)));continue}else if(g==="svgOrigin"){zl(t,h,1,R,0,this);continue}else if(g in Ld){S_(this,w,g,f,y?Cr(f,y+h):h);continue}else if(g==="smoothOrigin"){ui(this,w,"smooth",w.smooth,h);continue}else if(g==="force3D"){w[g]=h;continue}else if(g==="transform"){b_(this,h,t);continue}}else g in a||(g=Br(g)||g);if(v||(u||u===0)&&(f||f===0)&&!i_.test(h)&&g in a)p=(c+"").substr((f+"").length),u||(u=0),m=ze(h)||(g in ln.units?ln.units[g]:p),p!==m&&(f=Si(t,g,c,m)),this._pt=new Ze(this._pt,v?w:a,g,f,(y?Cr(f,y+u):u)-f,!v&&(m==="px"||g==="zIndex")&&e.autoRound!==!1?o_:Ol),this._pt.u=m||0,v&&F!==h?(this._pt.b=c,this._pt.e=F,this._pt.r=a_):p!==m&&m!=="%"&&(this._pt.b=c,this._pt.r=s_);else if(g in a)g_.call(this,t,g,c,y?y+h:h);else if(g in t)this.add(t,g,c||t[g],y?y+h:h,i,s);else if(g!=="parseTransform"){cc(g,h);continue}v||(g in a?U.push(g,0,a[g]):typeof t[g]=="function"?U.push(g,2,t[g]()):U.push(g,1,c||t[g])),o.push(g)}}b&&Sd(this)},render:function(t,e){if(e.tween._time||!yc())for(var n=e._pt;n;)n.r(t,n.d),n=n._next;else e.styles.revert()},get:qn,aliases:Dn,getSetter:function(t,e,n){var i=Dn[e];return i&&i.indexOf(",")<0&&(e=i),e in Zn&&e!==Ke&&(t._gsap.x||qn(t,"x"))?n&&mh===n?e==="scale"?u_:h_:(mh=n||{})&&(e==="scale"?f_:d_):t.style&&!ac(t.style[e])?l_:~e.indexOf("-")?c_:gc(t,e)},core:{_removeProperty:Mi,_getMatrix:Sc}};Qe.utils.checkPrefix=Br;Qe.core.getStyleSaver=wd;(function(r,t,e,n){var i=je(r+","+t+","+e,function(s){Zn[s]=1});je(t,function(s){ln.units[s]="deg",Ld[s]=1}),Dn[i[13]]=r+","+t,je(n,function(s){var o=s.split(":");Dn[o[1]]=i[o[0]]})})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");je("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(r){ln.units[r]="px"});Qe.registerPlugin(Ud);var ai=Qe.registerPlugin(Ud)||Qe;ai.core.Tween;var Fo=null;function E_(r){return Fo||(Fo=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),Fo(r)}var Bo=null;function T_(r){Bo||(Bo=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),Bo(r)}function A_(r){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=r:t.appendChild(document.createTextNode(r)),(document.querySelector("head")||document.body).appendChild(t),t}function Ks(r,t){t===void 0&&(t={});var e=document.createElement(r);return Object.keys(t).forEach(function(n){e[n]=t[n]}),e}function Nd(r,t,e){var n=window.getComputedStyle(r,e||null)||{display:"none"};return n[t]}function kl(r){if(!document.documentElement.contains(r))return{detached:!0,rendered:!1};for(var t=r;t!==document;){if(Nd(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var w_='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',Vl=0,Fa=null;function R_(r,t){r.__resize_mutation_handler__||(r.__resize_mutation_handler__=L_.bind(r));var e=r.__resize_listeners__;if(!e){if(r.__resize_listeners__=[],window.ResizeObserver){var n=r.offsetWidth,i=r.offsetHeight,s=new ResizeObserver(function(){!r.__resize_observer_triggered__&&(r.__resize_observer_triggered__=!0,r.offsetWidth===n&&r.offsetHeight===i)||qa(r)}),o=kl(r),a=o.detached,l=o.rendered;r.__resize_observer_triggered__=a===!1&&l===!1,r.__resize_observer__=s,s.observe(r)}else if(r.attachEvent&&r.addEventListener)r.__resize_legacy_resize_handler__=function(){qa(r)},r.attachEvent("onresize",r.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",r.__resize_mutation_handler__);else if(Vl||(Fa=A_(w_)),D_(r),r.__resize_rendered__=kl(r).rendered,window.MutationObserver){var c=new MutationObserver(r.__resize_mutation_handler__);c.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),r.__resize_mutation_observer__=c}}r.__resize_listeners__.push(t),Vl++}function C_(r,t){var e=r.__resize_listeners__;if(e){if(t&&e.splice(e.indexOf(t),1),!e.length||!t){if(r.detachEvent&&r.removeEventListener){r.detachEvent("onresize",r.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",r.__resize_mutation_handler__);return}r.__resize_observer__?(r.__resize_observer__.unobserve(r),r.__resize_observer__.disconnect(),r.__resize_observer__=null):(r.__resize_mutation_observer__&&(r.__resize_mutation_observer__.disconnect(),r.__resize_mutation_observer__=null),r.removeEventListener("scroll",bc),r.removeChild(r.__resize_triggers__.triggers),r.__resize_triggers__=null),r.__resize_listeners__=null}!--Vl&&Fa&&Fa.parentNode.removeChild(Fa)}}function P_(r){var t=r.__resize_last__,e=t.width,n=t.height,i=r.offsetWidth,s=r.offsetHeight;return i!==e||s!==n?{width:i,height:s}:null}function L_(){var r=kl(this),t=r.rendered,e=r.detached;t!==this.__resize_rendered__&&(!e&&this.__resize_triggers__&&(Ec(this),this.addEventListener("scroll",bc,!0)),this.__resize_rendered__=t,qa(this))}function bc(){var r=this;Ec(this),this.__resize_raf__&&T_(this.__resize_raf__),this.__resize_raf__=E_(function(){var t=P_(r);t&&(r.__resize_last__=t,qa(r))})}function qa(r){!r||!r.__resize_listeners__||r.__resize_listeners__.forEach(function(t){t.call(r,r)})}function D_(r){var t=Nd(r,"position");(!t||t==="static")&&(r.style.position="relative"),r.__resize_old_position__=t,r.__resize_last__={};var e=Ks("div",{className:"resize-triggers"}),n=Ks("div",{className:"resize-expand-trigger"}),i=Ks("div"),s=Ks("div",{className:"resize-contract-trigger"});n.appendChild(i),e.appendChild(n),e.appendChild(s),r.appendChild(e),r.__resize_triggers__={triggers:e,expand:n,expandChild:i,contract:s},Ec(r),r.addEventListener("scroll",bc,!0),r.__resize_last__={width:r.offsetWidth,height:r.offsetHeight}}function Ec(r){var t=r.__resize_triggers__,e=t.expand,n=t.expandChild,i=t.contract,s=i.scrollWidth,o=i.scrollHeight,a=e.offsetWidth,l=e.offsetHeight,c=e.scrollWidth,h=e.scrollHeight;i.scrollLeft=s,i.scrollTop=o,n.style.width=a+1+"px",n.style.height=l+1+"px",e.scrollLeft=c,e.scrollTop=h}var wn=function(){return wn=Object.assign||function(r){for(var t,e=1,n=arguments.length;e{let o=t.width;return`M165 0.5 - L165.707 -0.207107 - L165.414 -0.5 - H165 - V0.5Z - M10 0.5 - V-0.5 - H9.58579 - L9.29289 -0.207107 - L10 0.5Z - M175 10.5 - L174.293 11.2071 - L174.586 11.5 - H175 - V10.5Z - M${o} 10.5 - H${o+1} - V9.5 - H${o} - V10.5Z - M${o} 34.5 - V35.5 - H${o+1} - V34.5 - H${o}Z - M0 34.5 - H-1 - V35.5 - H0 - V34.5Z - M0 10.5 - L-0.707107 9.79289 - L-1 10.0858 - V10.5 - H0Z - M165 -0.5 - H10 - V1.5 - H165 - V-0.5Z - M175.707 9.79289 - L165.707 -0.207107 - L164.293 1.20711 - L174.293 11.2071 - L175.707 9.79289Z - M${o} 9.5 - H175 - V11.5 - H${o} - V9.5Z - M${o+1} 34.5 - V10.5 - H397 - V34.5 - H${o+1}Z - M0 35.5 - H${o} - V33.5 - H0 - V35.5Z - M-1 10.5 - V34.5 - H1 - V10.5 - H-1Z - M9.29289 -0.207107 - L-0.707107 9.79289 - L0.707107 11.2071 - L10.7071 1.20711 - L9.29289 -0.207107Z`}),i=Xn(()=>{let a=t.height-156,l=t.width;return`M3.485 ${46.0565+a/2} - V${45.8735+a/2} - L3.36682 ${45.7337+a/2} - L0.5 ${42.343+a/2} - V1 - H${l-.5} - V${42.3431+a/2} - L${l-3.367} ${45.7337+a/2} - L${l-3.485} ${45.8735+a/2} - V${46.0565+a/2} - L${l-3.367} ${88.745+a/2} - L${l-.5} ${92.135+a/2} - V${155+a} - H0.5 - V${92.135+a/2} - L3.36682 ${88.745+a/2} - L3.485 ${88.605+a/2} - V${88.422+a/2} - V${46.0565+a/2}Z`}),s=Xn(()=>`width:${t.width}px;height:${t.height}px;`);return Bf(()=>{e.value="__"+Ff().uid}),(o,a)=>(hs(),us("div",{class:"m-card",style:Ro(s.value)},[Bt("div",Y_,[Bt("div",$_,[(hs(),us("svg",{width:r.width,height:"36",viewBox:`0 0 ${r.width} 36`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[Bt("g",{"clip-path":`url(#clip0_70_69244${e.value})`},[Bt("rect",{y:"34.5",width:r.width,height:"1",fill:"url(#paint0_linear_70_69244)"},null,8,K_),Bt("mask",{id:`path-2-inside-1_70_69244${e.value}`,fill:"white"},[Bt("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:`M10 0.5H165L175 10.5H${r.width}V34.5H0V10.5L10 0.5Z`},null,8,Q_)],8,J_),Bt("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:`M10 0.5H165L175 10.5H${r.width}V34.5H0V10.5L10 0.5Z`,fill:`url(#paint1_linear_70_69244${e.value})`},null,8,tg),Bt("path",{d:n.value,fill:`url(#paint2_linear_70_69244${e.value})`,mask:`url(#path-2-inside-1_70_69244${e.value})`},null,8,eg),a[1]||(a[1]=wo('',4)),Bt("g",{style:{"mix-blend-mode":"plus-lighter"},"clip-path":`url(#clip1_70_69244${e.value})`},[...a[0]||(a[0]=[wo('',4)])],8,ng)],8,Z_),Bt("defs",null,[Bt("linearGradient",{id:"paint0_linear_70_69244",x1:r.width,y1:"35.5021",x2:"0",y2:"35.5021",gradientUnits:"userSpaceOnUse"},[...a[2]||(a[2]=[Bt("stop",{"stop-color":"#35A8EB","stop-opacity":"0.1"},null,-1),Bt("stop",{offset:"1","stop-color":"#30DCFF"},null,-1)])],8,ig),Bt("linearGradient",{id:`paint1_linear_70_69244${e.value}`,x1:r.width,y1:"17.5",x2:"7.94819",y2:"17.5",gradientUnits:"userSpaceOnUse"},[...a[3]||(a[3]=[Bt("stop",{offset:"0.0364889","stop-color":"#35A8EB","stop-opacity":"0.11"},null,-1),Bt("stop",{offset:"1","stop-color":"#30C1FF","stop-opacity":"0.27"},null,-1)])],8,rg),Bt("linearGradient",{id:`paint2_linear_70_69244${e.value}`,x1:"40.8948",y1:"13.5",x2:"40.895",y2:"-6.50005",gradientUnits:"userSpaceOnUse"},[...a[4]||(a[4]=[Bt("stop",{"stop-color":"#35A8EB","stop-opacity":"0"},null,-1),Bt("stop",{offset:"1","stop-color":"#30DCFF"},null,-1)])],8,sg),a[6]||(a[6]=wo('',8)),Bt("clipPath",{id:`clip0_70_69244${e.value}`},[Bt("rect",{width:r.width,height:"35",fill:"white",transform:"translate(0 0.5)"},null,8,og)],8,ag),Bt("clipPath",{id:`clip1_70_69244${e.value}`},[...a[5]||(a[5]=[Bt("rect",{width:"130",height:"4",fill:"white",transform:"matrix(1 1.64302e-07 -0.0495776 -0.99877 28 4.5)"},null,-1)])],8,lg)])],8,j_))]),a[7]||(a[7]=Bt("img",{class:"m-card-hd-zs1",src:G_,alt:""},null,-1)),a[8]||(a[8]=Bt("div",{class:"saoguang"},[Bt("img",{src:W_,alt:""})],-1)),Bt("div",cg,em(r.title),1),o.$slots.extra?(hs(),us("div",hg,[Tl(o.$slots,"extra")])):nm("",!0)]),Bt("div",{class:"m-card-bd",style:Ro(s.value)},[Bt("div",{class:"m-card-bd-bg",style:Ro(s.value)},[(hs(),us("svg",{width:r.width,height:r.height,viewBox:`0 0 ${r.width} ${r.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[Bt("g",{opacity:r.bodyOpacity},[Bt("path",{d:i.value,fill:r.bodyFill},null,8,dg),Bt("path",{d:i.value,stroke:"url(#paint1_linear_70_69585)"},null,8,pg)],8,fg),a[9]||(a[9]=Bt("defs",null,[Bt("linearGradient",{id:"paint1_linear_70_69585",x1:"199",y1:"203.499",x2:"199",y2:"0.499359",gradientUnits:"userSpaceOnUse"},[Bt("stop",{"stop-color":"#4FC5DD"}),Bt("stop",{offset:"1","stop-color":"#05839D","stop-opacity":"0"})])],-1))],8,ug)),a[10]||(a[10]=Bt("img",{class:"m-card-bd-bottom-left-arrow",src:X_,alt:""},null,-1)),a[11]||(a[11]=Bt("img",{class:"m-card-bd-bottom-right-arrow",src:q_,alt:""},null,-1)),a[12]||(a[12]=Bt("img",{class:"m-card-bd-middle-left-line",src:wh,alt:""},null,-1)),a[13]||(a[13]=Bt("img",{class:"m-card-bd-middle-right-line",src:wh,alt:""},null,-1))],4),Bt("div",mg,[Tl(o.$slots,"default")])],4)],4))}};/** - * @license - * Copyright 2010-2023 Three.js Authors - * SPDX-License-Identifier: MIT - */const Tc="161",er={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},nr={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},_g=0,Rh=1,gg=2,Fd=1,vg=2,Gn=3,bi=0,Je=1,bn=2,_i=0,Dr=1,Ch=2,Ph=3,Lh=4,xg=5,Bi=100,yg=101,Mg=102,Dh=103,Ih=104,Sg=200,bg=201,Eg=202,Tg=203,Hl=204,Gl=205,Ag=206,wg=207,Rg=208,Cg=209,Pg=210,Lg=211,Dg=212,Ig=213,Ug=214,Ng=0,Og=1,Fg=2,Ya=3,Bg=4,zg=5,kg=6,Vg=7,Ac=0,Hg=1,Gg=2,gi=0,Wg=1,Xg=2,qg=3,Yg=4,$g=5,jg=6,Uh="attached",Zg="detached",Bd=300,zr=301,kr=302,Wl=303,Xl=304,co=306,$a=1e3,En=1001,ql=1002,Pe=1003,Nh=1004,Qr=1005,We=1006,zo=1007,Vi=1008,vi=1009,Kg=1010,Jg=1011,wc=1012,zd=1013,fi=1014,Ln=1015,Ls=1016,kd=1017,Vd=1018,qi=1020,Qg=1021,pn=1023,t0=1024,e0=1025,Yi=1026,Vr=1027,n0=1028,Hd=1029,i0=1030,Gd=1031,Wd=1033,ko=33776,Vo=33777,Ho=33778,Go=33779,Oh=35840,Fh=35841,Bh=35842,zh=35843,Xd=36196,kh=37492,Vh=37496,Hh=37808,Gh=37809,Wh=37810,Xh=37811,qh=37812,Yh=37813,$h=37814,jh=37815,Zh=37816,Kh=37817,Jh=37818,Qh=37819,tu=37820,eu=37821,Wo=36492,nu=36494,iu=36495,r0=36283,ru=36284,su=36285,au=36286,ja=2300,Za=2301,Xo=2302,ou=2400,lu=2401,cu=2402,s0=2500,AE=0,wE=1,RE=2,qd=3e3,$i=3001,a0=3200,o0=3201,Rc=0,l0=1,mn="",Le="srgb",Kn="srgb-linear",Cc="display-p3",ho="display-p3-linear",Ka="linear",oe="srgb",Ja="rec709",Qa="p3",ir=7680,hu=519,c0=512,h0=513,u0=514,Yd=515,f0=516,d0=517,p0=518,m0=519,Yl=35044,uu="300 es",$l=1035,Yn=2e3,to=2001;class Qi{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;const n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const i=this._listeners[t];if(i!==void 0){const s=i.indexOf(e);s!==-1&&i.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const n=this._listeners[t.type];if(n!==void 0){t.target=this;const i=n.slice(0);for(let s=0,o=i.length;s>8&255]+Fe[r>>16&255]+Fe[r>>24&255]+"-"+Fe[t&255]+Fe[t>>8&255]+"-"+Fe[t>>16&15|64]+Fe[t>>24&255]+"-"+Fe[e&63|128]+Fe[e>>8&255]+"-"+Fe[e>>16&255]+Fe[e>>24&255]+Fe[n&255]+Fe[n>>8&255]+Fe[n>>16&255]+Fe[n>>24&255]).toLowerCase()}function be(r,t,e){return Math.max(t,Math.min(e,r))}function Pc(r,t){return(r%t+t)%t}function _0(r,t,e,n,i){return n+(r-t)*(i-n)/(e-t)}function g0(r,t,e){return r!==t?(e-r)/(t-r):0}function xs(r,t,e){return(1-e)*r+e*t}function v0(r,t,e,n){return xs(r,t,1-Math.exp(-e*n))}function x0(r,t=1){return t-Math.abs(Pc(r,t*2)-t)}function y0(r,t,e){return r<=t?0:r>=e?1:(r=(r-t)/(e-t),r*r*(3-2*r))}function M0(r,t,e){return r<=t?0:r>=e?1:(r=(r-t)/(e-t),r*r*r*(r*(r*6-15)+10))}function S0(r,t){return r+Math.floor(Math.random()*(t-r+1))}function b0(r,t){return r+Math.random()*(t-r)}function E0(r){return r*(.5-Math.random())}function T0(r){r!==void 0&&(fu=r);let t=fu+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function A0(r){return r*vs}function w0(r){return r*Hr}function jl(r){return(r&r-1)===0&&r!==0}function R0(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function eo(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function C0(r,t,e,n,i){const s=Math.cos,o=Math.sin,a=s(e/2),l=o(e/2),c=s((t+n)/2),h=o((t+n)/2),u=s((t-n)/2),f=o((t-n)/2),d=s((n-t)/2),_=o((n-t)/2);switch(i){case"XYX":r.set(a*h,l*u,l*f,a*c);break;case"YZY":r.set(l*f,a*h,l*u,a*c);break;case"ZXZ":r.set(l*u,l*f,a*h,a*c);break;case"XZX":r.set(a*h,l*_,l*d,a*c);break;case"YXY":r.set(l*d,a*h,l*_,a*c);break;case"ZYZ":r.set(l*_,l*d,a*h,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function Tn(r,t){switch(t.constructor){case Float32Array:return r;case Uint32Array:return r/4294967295;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int32Array:return Math.max(r/2147483647,-1);case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function Qt(r,t){switch(t.constructor){case Float32Array:return r;case Uint32Array:return Math.round(r*4294967295);case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int32Array:return Math.round(r*2147483647);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}const P0={DEG2RAD:vs,RAD2DEG:Hr,generateUUID:vn,clamp:be,euclideanModulo:Pc,mapLinear:_0,inverseLerp:g0,lerp:xs,damp:v0,pingpong:x0,smoothstep:y0,smootherstep:M0,randInt:S0,randFloat:b0,randFloatSpread:E0,seededRandom:T0,degToRad:A0,radToDeg:w0,isPowerOfTwo:jl,ceilPowerOfTwo:R0,floorPowerOfTwo:eo,setQuaternionFromProperEuler:C0,normalize:Qt,denormalize:Tn};class it{constructor(t=0,e=0){it.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(be(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*n-o*i+t.x,this.y=s*i+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class qt{constructor(t,e,n,i,s,o,a,l,c){qt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,n,i,s,o,a,l,c)}set(t,e,n,i,s,o,a,l,c){const h=this.elements;return h[0]=t,h[1]=i,h[2]=a,h[3]=e,h[4]=s,h[5]=l,h[6]=n,h[7]=o,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,s=this.elements,o=n[0],a=n[3],l=n[6],c=n[1],h=n[4],u=n[7],f=n[2],d=n[5],_=n[8],g=i[0],p=i[3],m=i[6],y=i[1],v=i[4],S=i[7],w=i[2],R=i[5],b=i[8];return s[0]=o*g+a*y+l*w,s[3]=o*p+a*v+l*R,s[6]=o*m+a*S+l*b,s[1]=c*g+h*y+u*w,s[4]=c*p+h*v+u*R,s[7]=c*m+h*S+u*b,s[2]=f*g+d*y+_*w,s[5]=f*p+d*v+_*R,s[8]=f*m+d*S+_*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8];return e*o*h-e*a*c-n*s*h+n*a*l+i*s*c-i*o*l}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8],u=h*o-a*c,f=a*l-h*s,d=c*s-o*l,_=e*u+n*f+i*d;if(_===0)return this.set(0,0,0,0,0,0,0,0,0);const g=1/_;return t[0]=u*g,t[1]=(i*c-h*n)*g,t[2]=(a*n-i*o)*g,t[3]=f*g,t[4]=(h*e-i*l)*g,t[5]=(i*s-a*e)*g,t[6]=d*g,t[7]=(n*l-c*e)*g,t[8]=(o*e-n*s)*g,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,s,o,a){const l=Math.cos(s),c=Math.sin(s);return this.set(n*l,n*c,-n*(l*o+c*a)+o+t,-i*c,i*l,-i*(-c*o+l*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(qo.makeScale(t,e)),this}rotate(t){return this.premultiply(qo.makeRotation(-t)),this}translate(t,e){return this.premultiply(qo.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const qo=new qt;function $d(r){for(let t=r.length-1;t>=0;--t)if(r[t]>=65535)return!0;return!1}function Ds(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function L0(){const r=Ds("canvas");return r.style.display="block",r}const du={};function ji(r){r in du||(du[r]=!0,console.warn(r))}const pu=new qt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),mu=new qt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Qs={[Kn]:{transfer:Ka,primaries:Ja,toReference:r=>r,fromReference:r=>r},[Le]:{transfer:oe,primaries:Ja,toReference:r=>r.convertSRGBToLinear(),fromReference:r=>r.convertLinearToSRGB()},[ho]:{transfer:Ka,primaries:Qa,toReference:r=>r.applyMatrix3(mu),fromReference:r=>r.applyMatrix3(pu)},[Cc]:{transfer:oe,primaries:Qa,toReference:r=>r.convertSRGBToLinear().applyMatrix3(mu),fromReference:r=>r.applyMatrix3(pu).convertLinearToSRGB()}},D0=new Set([Kn,ho]),ee={enabled:!0,_workingColorSpace:Kn,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(r){if(!D0.has(r))throw new Error(`Unsupported working color space, "${r}".`);this._workingColorSpace=r},convert:function(r,t,e){if(this.enabled===!1||t===e||!t||!e)return r;const n=Qs[t].toReference,i=Qs[e].fromReference;return i(n(r))},fromWorkingColorSpace:function(r,t){return this.convert(r,this._workingColorSpace,t)},toWorkingColorSpace:function(r,t){return this.convert(r,t,this._workingColorSpace)},getPrimaries:function(r){return Qs[r].primaries},getTransfer:function(r){return r===mn?Ka:Qs[r].transfer}};function Ir(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Yo(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}let rr;class jd{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement=="undefined")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{rr===void 0&&(rr=Ds("canvas")),rr.width=t.width,rr.height=t.height;const n=rr.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=rr}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){const e=Ds("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),s=i.data;for(let o=0;o0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==Bd)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case $a:t.x=t.x-Math.floor(t.x);break;case En:t.x=t.x<0?0:1;break;case ql:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case $a:t.y=t.y-Math.floor(t.y);break;case En:t.y=t.y<0?0:1;break;case ql:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return ji("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Le?$i:qd}set encoding(t){ji("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===$i?Le:mn}}Ue.DEFAULT_IMAGE=null;Ue.DEFAULT_MAPPING=Bd;Ue.DEFAULT_ANISOTROPY=1;class se{constructor(t=0,e=0,n=0,i=1){se.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){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: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,s=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*i+o[12]*s,this.y=o[1]*e+o[5]*n+o[9]*i+o[13]*s,this.z=o[2]*e+o[6]*n+o[10]*i+o[14]*s,this.w=o[3]*e+o[7]*n+o[11]*i+o[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,s;const l=t.elements,c=l[0],h=l[4],u=l[8],f=l[1],d=l[5],_=l[9],g=l[2],p=l[6],m=l[10];if(Math.abs(h-f)<.01&&Math.abs(u-g)<.01&&Math.abs(_-p)<.01){if(Math.abs(h+f)<.1&&Math.abs(u+g)<.1&&Math.abs(_+p)<.1&&Math.abs(c+d+m-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const v=(c+1)/2,S=(d+1)/2,w=(m+1)/2,R=(h+f)/4,b=(u+g)/4,U=(_+p)/4;return v>S&&v>w?v<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(v),i=R/n,s=b/n):S>w?S<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(S),n=R/i,s=U/i):w<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(w),n=b/s,i=U/s),this.set(n,i,s,e),this}let y=Math.sqrt((p-_)*(p-_)+(u-g)*(u-g)+(f-h)*(f-h));return Math.abs(y)<.001&&(y=1),this.x=(p-_)/y,this.y=(u-g)/y,this.z=(f-h)/y,this.w=Math.acos((c+d+m-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class N0 extends Qi{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new se(0,0,t,e),this.scissorTest=!1,this.viewport=new se(0,0,t,e);const i={width:t,height:e,depth:1};n.encoding!==void 0&&(ji("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===$i?Le:mn),n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:We,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},n),this.texture=new Ue(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps,this.texture.internalFormat=n.internalFormat,this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.depthTexture=n.depthTexture,this.samples=n.samples}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;const e=Object.assign({},t.texture.image);return this.texture.source=new Zd(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Zi extends N0{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}}class Kd extends Ue{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=Pe,this.minFilter=Pe,this.wrapR=En,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class O0 extends Ue{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=Pe,this.minFilter=Pe,this.wrapR=En,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Ei{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,s,o,a){let l=n[i+0],c=n[i+1],h=n[i+2],u=n[i+3];const f=s[o+0],d=s[o+1],_=s[o+2],g=s[o+3];if(a===0){t[e+0]=l,t[e+1]=c,t[e+2]=h,t[e+3]=u;return}if(a===1){t[e+0]=f,t[e+1]=d,t[e+2]=_,t[e+3]=g;return}if(u!==g||l!==f||c!==d||h!==_){let p=1-a;const m=l*f+c*d+h*_+u*g,y=m>=0?1:-1,v=1-m*m;if(v>Number.EPSILON){const w=Math.sqrt(v),R=Math.atan2(w,m*y);p=Math.sin(p*R)/w,a=Math.sin(a*R)/w}const S=a*y;if(l=l*p+f*S,c=c*p+d*S,h=h*p+_*S,u=u*p+g*S,p===1-a){const w=1/Math.sqrt(l*l+c*c+h*h+u*u);l*=w,c*=w,h*=w,u*=w}}t[e]=l,t[e+1]=c,t[e+2]=h,t[e+3]=u}static multiplyQuaternionsFlat(t,e,n,i,s,o){const a=n[i],l=n[i+1],c=n[i+2],h=n[i+3],u=s[o],f=s[o+1],d=s[o+2],_=s[o+3];return t[e]=a*_+h*u+l*d-c*f,t[e+1]=l*_+h*f+c*u-a*d,t[e+2]=c*_+h*d+a*f-l*u,t[e+3]=h*_-a*u-l*f-c*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,i=t._y,s=t._z,o=t._order,a=Math.cos,l=Math.sin,c=a(n/2),h=a(i/2),u=a(s/2),f=l(n/2),d=l(i/2),_=l(s/2);switch(o){case"XYZ":this._x=f*h*u+c*d*_,this._y=c*d*u-f*h*_,this._z=c*h*_+f*d*u,this._w=c*h*u-f*d*_;break;case"YXZ":this._x=f*h*u+c*d*_,this._y=c*d*u-f*h*_,this._z=c*h*_-f*d*u,this._w=c*h*u+f*d*_;break;case"ZXY":this._x=f*h*u-c*d*_,this._y=c*d*u+f*h*_,this._z=c*h*_+f*d*u,this._w=c*h*u-f*d*_;break;case"ZYX":this._x=f*h*u-c*d*_,this._y=c*d*u+f*h*_,this._z=c*h*_-f*d*u,this._w=c*h*u+f*d*_;break;case"YZX":this._x=f*h*u+c*d*_,this._y=c*d*u+f*h*_,this._z=c*h*_-f*d*u,this._w=c*h*u-f*d*_;break;case"XZY":this._x=f*h*u-c*d*_,this._y=c*d*u-f*h*_,this._z=c*h*_+f*d*u,this._w=c*h*u+f*d*_;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],s=e[8],o=e[1],a=e[5],l=e[9],c=e[2],h=e[6],u=e[10],f=n+a+u;if(f>0){const d=.5/Math.sqrt(f+1);this._w=.25/d,this._x=(h-l)*d,this._y=(s-c)*d,this._z=(o-i)*d}else if(n>a&&n>u){const d=2*Math.sqrt(1+n-a-u);this._w=(h-l)/d,this._x=.25*d,this._y=(i+o)/d,this._z=(s+c)/d}else if(a>u){const d=2*Math.sqrt(1+a-n-u);this._w=(s-c)/d,this._x=(i+o)/d,this._y=.25*d,this._z=(l+h)/d}else{const d=2*Math.sqrt(1+u-n-a);this._w=(o-i)/d,this._x=(s+c)/d,this._y=(l+h)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(be(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(n===0)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,s=t._z,o=t._w,a=e._x,l=e._y,c=e._z,h=e._w;return this._x=n*h+o*a+i*c-s*l,this._y=i*h+o*l+s*a-n*c,this._z=s*h+o*c+n*l-i*a,this._w=o*h-n*a-i*l-s*c,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const n=this._x,i=this._y,s=this._z,o=this._w;let a=o*t._w+n*t._x+i*t._y+s*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=i,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const d=1-e;return this._w=d*o+e*this._w,this._x=d*n+e*this._x,this._y=d*i+e*this._y,this._z=d*s+e*this._z,this.normalize(),this}const c=Math.sqrt(l),h=Math.atan2(c,a),u=Math.sin((1-e)*h)/c,f=Math.sin(e*h)/c;return this._w=o*u+this._w*f,this._x=n*u+this._x*f,this._y=i*u+this._y*f,this._z=s*u+this._z*f,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class D{constructor(t=0,e=0,n=0){D.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(_u.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(_u.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,s=t.elements,o=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*o,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*o,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*o,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,s=t.x,o=t.y,a=t.z,l=t.w,c=2*(o*i-a*n),h=2*(a*e-s*i),u=2*(s*n-o*e);return this.x=e+l*c+o*u-a*h,this.y=n+l*h+a*c-s*u,this.z=i+l*u+s*h-o*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,s=t.z,o=e.x,a=e.y,l=e.z;return this.x=i*l-s*a,this.y=s*o-n*l,this.z=n*a-i*o,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return jo.copy(this).projectOnVector(t),this.sub(jo)}reflect(t){return this.sub(jo.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(be(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-Ao(t,2));return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const jo=new D,_u=new Ei;class wi{constructor(t=new D(1/0,1/0,1/0),e=new D(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,yn),yn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ts),ea.subVectors(this.max,ts),sr.subVectors(t.a,ts),ar.subVectors(t.b,ts),or.subVectors(t.c,ts),ti.subVectors(ar,sr),ei.subVectors(or,ar),Di.subVectors(sr,or);let e=[0,-ti.z,ti.y,0,-ei.z,ei.y,0,-Di.z,Di.y,ti.z,0,-ti.x,ei.z,0,-ei.x,Di.z,0,-Di.x,-ti.y,ti.x,0,-ei.y,ei.x,0,-Di.y,Di.x,0];return!Zo(e,sr,ar,or,ea)||(e=[1,0,0,0,1,0,0,0,1],!Zo(e,sr,ar,or,ea))?!1:(na.crossVectors(ti,ei),e=[na.x,na.y,na.z],Zo(e,sr,ar,or,ea))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,yn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(yn).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Fn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Fn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Fn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Fn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Fn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Fn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Fn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Fn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Fn),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Fn=[new D,new D,new D,new D,new D,new D,new D,new D],yn=new D,ta=new wi,sr=new D,ar=new D,or=new D,ti=new D,ei=new D,Di=new D,ts=new D,ea=new D,na=new D,Ii=new D;function Zo(r,t,e,n,i){for(let s=0,o=r.length-3;s<=o;s+=3){Ii.fromArray(r,s);const a=i.x*Math.abs(Ii.x)+i.y*Math.abs(Ii.y)+i.z*Math.abs(Ii.z),l=t.dot(Ii),c=e.dot(Ii),h=n.dot(Ii);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>a)return!1}return!0}const F0=new wi,es=new D,Ko=new D;class Jn{constructor(t=new D,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;e!==void 0?n.copy(e):F0.setFromPoints(t).getCenter(n);let i=0;for(let s=0,o=t.length;sthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;es.subVectors(t,this.center);const e=es.lengthSq();if(e>this.radius*this.radius){const n=Math.sqrt(e),i=(n-this.radius)*.5;this.center.addScaledVector(es,i/n),this.radius+=i}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(Ko.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(es.copy(t.center).add(Ko)),this.expandByPoint(es.copy(t.center).sub(Ko))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Bn=new D,Jo=new D,ia=new D,ni=new D,Qo=new D,ra=new D,tl=new D;class Wr{constructor(t=new D,e=new D(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Bn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Bn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Bn.copy(this.origin).addScaledVector(this.direction,e),Bn.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Jo.copy(t).add(e).multiplyScalar(.5),ia.copy(e).sub(t).normalize(),ni.copy(this.origin).sub(Jo);const s=t.distanceTo(e)*.5,o=-this.direction.dot(ia),a=ni.dot(this.direction),l=-ni.dot(ia),c=ni.lengthSq(),h=Math.abs(1-o*o);let u,f,d,_;if(h>0)if(u=o*l-a,f=o*a-l,_=s*h,u>=0)if(f>=-_)if(f<=_){const g=1/h;u*=g,f*=g,d=u*(u+o*f+2*a)+f*(o*u+f+2*l)+c}else f=s,u=Math.max(0,-(o*f+a)),d=-u*u+f*(f+2*l)+c;else f=-s,u=Math.max(0,-(o*f+a)),d=-u*u+f*(f+2*l)+c;else f<=-_?(u=Math.max(0,-(-o*s+a)),f=u>0?-s:Math.min(Math.max(-s,-l),s),d=-u*u+f*(f+2*l)+c):f<=_?(u=0,f=Math.min(Math.max(-s,-l),s),d=f*(f+2*l)+c):(u=Math.max(0,-(o*s+a)),f=u>0?s:Math.min(Math.max(-s,-l),s),d=-u*u+f*(f+2*l)+c);else f=o>0?-s:s,u=Math.max(0,-(o*f+a)),d=-u*u+f*(f+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),i&&i.copy(Jo).addScaledVector(ia,f),d}intersectSphere(t,e){Bn.subVectors(t.center,this.origin);const n=Bn.dot(this.direction),i=Bn.dot(Bn)-n*n,s=t.radius*t.radius;if(i>s)return null;const o=Math.sqrt(s-i),a=n-o,l=n+o;return l<0?null:a<0?this.at(l,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,o,a,l;const c=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,f=this.origin;return c>=0?(n=(t.min.x-f.x)*c,i=(t.max.x-f.x)*c):(n=(t.max.x-f.x)*c,i=(t.min.x-f.x)*c),h>=0?(s=(t.min.y-f.y)*h,o=(t.max.y-f.y)*h):(s=(t.max.y-f.y)*h,o=(t.min.y-f.y)*h),n>o||s>i||((s>n||isNaN(n))&&(n=s),(o=0?(a=(t.min.z-f.z)*u,l=(t.max.z-f.z)*u):(a=(t.max.z-f.z)*u,l=(t.min.z-f.z)*u),n>l||a>i)||((a>n||n!==n)&&(n=a),(l=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,Bn)!==null}intersectTriangle(t,e,n,i,s){Qo.subVectors(e,t),ra.subVectors(n,t),tl.crossVectors(Qo,ra);let o=this.direction.dot(tl),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;ni.subVectors(this.origin,t);const l=a*this.direction.dot(ra.crossVectors(ni,ra));if(l<0)return null;const c=a*this.direction.dot(Qo.cross(ni));if(c<0||l+c>o)return null;const h=-a*ni.dot(tl);return h<0?null:this.at(h/o,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class $t{constructor(t,e,n,i,s,o,a,l,c,h,u,f,d,_,g,p){$t.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,n,i,s,o,a,l,c,h,u,f,d,_,g,p)}set(t,e,n,i,s,o,a,l,c,h,u,f,d,_,g,p){const m=this.elements;return m[0]=t,m[4]=e,m[8]=n,m[12]=i,m[1]=s,m[5]=o,m[9]=a,m[13]=l,m[2]=c,m[6]=h,m[10]=u,m[14]=f,m[3]=d,m[7]=_,m[11]=g,m[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new $t().fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/lr.setFromMatrixColumn(t,0).length(),s=1/lr.setFromMatrixColumn(t,1).length(),o=1/lr.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,s=t.z,o=Math.cos(n),a=Math.sin(n),l=Math.cos(i),c=Math.sin(i),h=Math.cos(s),u=Math.sin(s);if(t.order==="XYZ"){const f=o*h,d=o*u,_=a*h,g=a*u;e[0]=l*h,e[4]=-l*u,e[8]=c,e[1]=d+_*c,e[5]=f-g*c,e[9]=-a*l,e[2]=g-f*c,e[6]=_+d*c,e[10]=o*l}else if(t.order==="YXZ"){const f=l*h,d=l*u,_=c*h,g=c*u;e[0]=f+g*a,e[4]=_*a-d,e[8]=o*c,e[1]=o*u,e[5]=o*h,e[9]=-a,e[2]=d*a-_,e[6]=g+f*a,e[10]=o*l}else if(t.order==="ZXY"){const f=l*h,d=l*u,_=c*h,g=c*u;e[0]=f-g*a,e[4]=-o*u,e[8]=_+d*a,e[1]=d+_*a,e[5]=o*h,e[9]=g-f*a,e[2]=-o*c,e[6]=a,e[10]=o*l}else if(t.order==="ZYX"){const f=o*h,d=o*u,_=a*h,g=a*u;e[0]=l*h,e[4]=_*c-d,e[8]=f*c+g,e[1]=l*u,e[5]=g*c+f,e[9]=d*c-_,e[2]=-c,e[6]=a*l,e[10]=o*l}else if(t.order==="YZX"){const f=o*l,d=o*c,_=a*l,g=a*c;e[0]=l*h,e[4]=g-f*u,e[8]=_*u+d,e[1]=u,e[5]=o*h,e[9]=-a*h,e[2]=-c*h,e[6]=d*u+_,e[10]=f-g*u}else if(t.order==="XZY"){const f=o*l,d=o*c,_=a*l,g=a*c;e[0]=l*h,e[4]=-u,e[8]=c*h,e[1]=f*u+g,e[5]=o*h,e[9]=d*u-_,e[2]=_*u-d,e[6]=a*h,e[10]=g*u+f}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(B0,t,z0)}lookAt(t,e,n){const i=this.elements;return en.subVectors(t,e),en.lengthSq()===0&&(en.z=1),en.normalize(),ii.crossVectors(n,en),ii.lengthSq()===0&&(Math.abs(n.z)===1?en.x+=1e-4:en.z+=1e-4,en.normalize(),ii.crossVectors(n,en)),ii.normalize(),sa.crossVectors(en,ii),i[0]=ii.x,i[4]=sa.x,i[8]=en.x,i[1]=ii.y,i[5]=sa.y,i[9]=en.y,i[2]=ii.z,i[6]=sa.z,i[10]=en.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,s=this.elements,o=n[0],a=n[4],l=n[8],c=n[12],h=n[1],u=n[5],f=n[9],d=n[13],_=n[2],g=n[6],p=n[10],m=n[14],y=n[3],v=n[7],S=n[11],w=n[15],R=i[0],b=i[4],U=i[8],F=i[12],x=i[1],E=i[5],k=i[9],W=i[13],I=i[2],O=i[6],N=i[10],Y=i[14],X=i[3],$=i[7],Z=i[11],J=i[15];return s[0]=o*R+a*x+l*I+c*X,s[4]=o*b+a*E+l*O+c*$,s[8]=o*U+a*k+l*N+c*Z,s[12]=o*F+a*W+l*Y+c*J,s[1]=h*R+u*x+f*I+d*X,s[5]=h*b+u*E+f*O+d*$,s[9]=h*U+u*k+f*N+d*Z,s[13]=h*F+u*W+f*Y+d*J,s[2]=_*R+g*x+p*I+m*X,s[6]=_*b+g*E+p*O+m*$,s[10]=_*U+g*k+p*N+m*Z,s[14]=_*F+g*W+p*Y+m*J,s[3]=y*R+v*x+S*I+w*X,s[7]=y*b+v*E+S*O+w*$,s[11]=y*U+v*k+S*N+w*Z,s[15]=y*F+v*W+S*Y+w*J,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],o=t[1],a=t[5],l=t[9],c=t[13],h=t[2],u=t[6],f=t[10],d=t[14],_=t[3],g=t[7],p=t[11],m=t[15];return _*(+s*l*u-i*c*u-s*a*f+n*c*f+i*a*d-n*l*d)+g*(+e*l*d-e*c*f+s*o*f-i*o*d+i*c*h-s*l*h)+p*(+e*c*u-e*a*d-s*o*u+n*o*d+s*a*h-n*c*h)+m*(-i*a*h-e*l*u+e*a*f+i*o*u-n*o*f+n*l*h)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8],u=t[9],f=t[10],d=t[11],_=t[12],g=t[13],p=t[14],m=t[15],y=u*p*c-g*f*c+g*l*d-a*p*d-u*l*m+a*f*m,v=_*f*c-h*p*c-_*l*d+o*p*d+h*l*m-o*f*m,S=h*g*c-_*u*c+_*a*d-o*g*d-h*a*m+o*u*m,w=_*u*l-h*g*l-_*a*f+o*g*f+h*a*p-o*u*p,R=e*y+n*v+i*S+s*w;if(R===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/R;return t[0]=y*b,t[1]=(g*f*s-u*p*s-g*i*d+n*p*d+u*i*m-n*f*m)*b,t[2]=(a*p*s-g*l*s+g*i*c-n*p*c-a*i*m+n*l*m)*b,t[3]=(u*l*s-a*f*s-u*i*c+n*f*c+a*i*d-n*l*d)*b,t[4]=v*b,t[5]=(h*p*s-_*f*s+_*i*d-e*p*d-h*i*m+e*f*m)*b,t[6]=(_*l*s-o*p*s-_*i*c+e*p*c+o*i*m-e*l*m)*b,t[7]=(o*f*s-h*l*s+h*i*c-e*f*c-o*i*d+e*l*d)*b,t[8]=S*b,t[9]=(_*u*s-h*g*s-_*n*d+e*g*d+h*n*m-e*u*m)*b,t[10]=(o*g*s-_*a*s+_*n*c-e*g*c-o*n*m+e*a*m)*b,t[11]=(h*a*s-o*u*s-h*n*c+e*u*c+o*n*d-e*a*d)*b,t[12]=w*b,t[13]=(h*g*i-_*u*i+_*n*f-e*g*f-h*n*p+e*u*p)*b,t[14]=(_*a*i-o*g*i-_*n*l+e*g*l+o*n*p-e*a*p)*b,t[15]=(o*u*i-h*a*i+h*n*l-e*u*l-o*n*f+e*a*f)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),s=1-n,o=t.x,a=t.y,l=t.z,c=s*o,h=s*a;return this.set(c*o+n,c*a-i*l,c*l+i*a,0,c*a+i*l,h*a+n,h*l-i*o,0,c*l-i*a,h*l+i*o,s*l*l+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,s,o){return this.set(1,n,s,0,t,1,o,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,s=e._x,o=e._y,a=e._z,l=e._w,c=s+s,h=o+o,u=a+a,f=s*c,d=s*h,_=s*u,g=o*h,p=o*u,m=a*u,y=l*c,v=l*h,S=l*u,w=n.x,R=n.y,b=n.z;return i[0]=(1-(g+m))*w,i[1]=(d+S)*w,i[2]=(_-v)*w,i[3]=0,i[4]=(d-S)*R,i[5]=(1-(f+m))*R,i[6]=(p+y)*R,i[7]=0,i[8]=(_+v)*b,i[9]=(p-y)*b,i[10]=(1-(f+g))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let s=lr.set(i[0],i[1],i[2]).length();const o=lr.set(i[4],i[5],i[6]).length(),a=lr.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],Mn.copy(this);const c=1/s,h=1/o,u=1/a;return Mn.elements[0]*=c,Mn.elements[1]*=c,Mn.elements[2]*=c,Mn.elements[4]*=h,Mn.elements[5]*=h,Mn.elements[6]*=h,Mn.elements[8]*=u,Mn.elements[9]*=u,Mn.elements[10]*=u,e.setFromRotationMatrix(Mn),n.x=s,n.y=o,n.z=a,this}makePerspective(t,e,n,i,s,o,a=Yn){const l=this.elements,c=2*s/(e-t),h=2*s/(n-i),u=(e+t)/(e-t),f=(n+i)/(n-i);let d,_;if(a===Yn)d=-(o+s)/(o-s),_=-2*o*s/(o-s);else if(a===to)d=-o/(o-s),_=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=d,l[14]=_,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,n,i,s,o,a=Yn){const l=this.elements,c=1/(e-t),h=1/(n-i),u=1/(o-s),f=(e+t)*c,d=(n+i)*h;let _,g;if(a===Yn)_=(o+s)*u,g=-2*u;else if(a===to)_=s*u,g=-1*u;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-d,l[2]=0,l[6]=0,l[10]=g,l[14]=-_,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const lr=new D,Mn=new $t,B0=new D(0,0,0),z0=new D(1,1,1),ii=new D,sa=new D,en=new D,gu=new $t,vu=new Ei;class uo{constructor(t=0,e=0,n=0,i=uo.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,s=i[0],o=i[4],a=i[8],l=i[1],c=i[5],h=i[9],u=i[2],f=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(be(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(f,c),this._z=0);break;case"YXZ":this._x=Math.asin(-be(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-u,s),this._z=0);break;case"ZXY":this._x=Math.asin(be(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-be(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(f,d),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(be(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-u,s)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-be(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(f,c),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return gu.makeRotationFromQuaternion(t),this.setFromRotationMatrix(gu,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return vu.setFromEuler(this),this.setFromQuaternion(vu,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}uo.DEFAULT_ORDER="XYZ";class Lc{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),i.maxGeometryCount=this._maxGeometryCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(t),this.boundingSphere!==null&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),this.boundingBox!==null&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(t)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),f.length>0&&(n.skeletons=f),d.length>0&&(n.animations=d),_.length>0&&(n.nodes=_)}return n.object=i,n;function o(a){const l=[];for(const c in a){const h=a[c];delete h.metadata,l.push(h)}return l}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){Sn.subVectors(i,e),kn.subVectors(n,e),el.subVectors(t,e);const o=Sn.dot(Sn),a=Sn.dot(kn),l=Sn.dot(el),c=kn.dot(kn),h=kn.dot(el),u=o*c-a*a;if(u===0)return s.set(0,0,0),null;const f=1/u,d=(c*l-a*h)*f,_=(o*h-a*l)*f;return s.set(1-d-_,_,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Vn)===null?!1:Vn.x>=0&&Vn.y>=0&&Vn.x+Vn.y<=1}static getInterpolation(t,e,n,i,s,o,a,l){return this.getBarycoord(t,e,n,i,Vn)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,Vn.x),l.addScaledVector(o,Vn.y),l.addScaledVector(a,Vn.z),l)}static isFrontFacing(t,e,n,i){return Sn.subVectors(n,e),kn.subVectors(t,e),Sn.cross(kn).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Sn.subVectors(this.c,this.b),kn.subVectors(this.a,this.b),Sn.cross(kn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return An.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return An.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,i,s){return An.getInterpolation(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return An.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return An.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,s=this.c;let o,a;hr.subVectors(i,n),ur.subVectors(s,n),nl.subVectors(t,n);const l=hr.dot(nl),c=ur.dot(nl);if(l<=0&&c<=0)return e.copy(n);il.subVectors(t,i);const h=hr.dot(il),u=ur.dot(il);if(h>=0&&u<=h)return e.copy(i);const f=l*u-h*c;if(f<=0&&l>=0&&h<=0)return o=l/(l-h),e.copy(n).addScaledVector(hr,o);rl.subVectors(t,s);const d=hr.dot(rl),_=ur.dot(rl);if(_>=0&&d<=_)return e.copy(s);const g=d*c-l*_;if(g<=0&&c>=0&&_<=0)return a=c/(c-_),e.copy(n).addScaledVector(ur,a);const p=h*_-d*u;if(p<=0&&u-h>=0&&d-_>=0)return bu.subVectors(s,i),a=(u-h)/(u-h+(d-_)),e.copy(i).addScaledVector(bu,a);const m=1/(p+g+f);return o=g*m,a=f*m,e.copy(n).addScaledVector(hr,o).addScaledVector(ur,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const Jd={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},ri={h:0,s:0,l:0},oa={h:0,s:0,l:0};function sl(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}class Nt{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){const i=t;i&&i.isColor?this.copy(i):typeof i=="number"?this.setHex(i):typeof i=="string"&&this.setStyle(i)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Le){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,ee.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=ee.workingColorSpace){return this.r=t,this.g=e,this.b=n,ee.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=ee.workingColorSpace){if(t=Pc(t,1),e=be(e,0,1),n=be(n,0,1),e===0)this.r=this.g=this.b=n;else{const s=n<=.5?n*(1+e):n+e-n*e,o=2*n-s;this.r=sl(o,s,t+1/3),this.g=sl(o,s,t),this.b=sl(o,s,t-1/3)}return ee.toWorkingColorSpace(this,i),this}setStyle(t,e=Le){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let s;const o=i[1],a=i[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,e);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,e);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const s=i[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,e);if(o===6)return this.setHex(parseInt(s,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Le){const n=Jd[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Ir(t.r),this.g=Ir(t.g),this.b=Ir(t.b),this}copyLinearToSRGB(t){return this.r=Yo(t.r),this.g=Yo(t.g),this.b=Yo(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Le){return ee.fromWorkingColorSpace(Be.copy(this),t),Math.round(be(Be.r*255,0,255))*65536+Math.round(be(Be.g*255,0,255))*256+Math.round(be(Be.b*255,0,255))}getHexString(t=Le){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ee.workingColorSpace){ee.fromWorkingColorSpace(Be.copy(this),e);const n=Be.r,i=Be.g,s=Be.b,o=Math.max(n,i,s),a=Math.min(n,i,s);let l,c;const h=(a+o)/2;if(a===o)l=0,c=0;else{const u=o-a;switch(c=h<=.5?u/(o+a):u/(2-o-a),o){case n:l=(i-s)/u+(i0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];if(i===void 0){console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n}}toJSON(t){const e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Dr&&(n.blending=this.blending),this.side!==bi&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==Hl&&(n.blendSrc=this.blendSrc),this.blendDst!==Gl&&(n.blendDst=this.blendDst),this.blendEquation!==Bi&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==Ya&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==hu&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==ir&&(n.stencilFail=this.stencilFail),this.stencilZFail!==ir&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==ir&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(e){const s=i(t.textures),o=i(t.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(e!==null){const i=e.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=e[s].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}}class Dc extends Qn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Nt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ac,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Me=new D,la=new it;class xn{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=Yl,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Ln,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return ji("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i0&&(t.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const l in n){const c=n[l];t.data.attributes[l]=c.toJSON(t.data)}const i={};let s=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],h=[];for(let u=0,f=c.length;u0&&(i[l]=h,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;n!==null&&this.setIndex(n.clone(e));const i=t.attributes;for(const c in i){const h=i[c];this.setAttribute(c,h.clone(e))}const s=t.morphAttributes;for(const c in s){const h=[],u=s[c];for(let f=0,d=u.length;f0){const i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;sAo(t.far-t.near,2)))&&(Eu.copy(s).invert(),Ui.copy(t.ray).applyMatrix4(Eu),!(n.boundingBox!==null&&Ui.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,Ui)))}_computeIntersections(t,e,n){let i;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,c=s.attributes.uv,h=s.attributes.uv1,u=s.attributes.normal,f=s.groups,d=s.drawRange;if(a!==null)if(Array.isArray(o))for(let _=0,g=f.length;_e.far?null:{distance:c,point:ma.clone(),object:r}}function _a(r,t,e,n,i,s,o,a,l,c){r.getVertexPosition(a,dr),r.getVertexPosition(l,pr),r.getVertexPosition(c,mr);const h=Y0(r,t,e,n,dr,pr,mr,pa);if(h){i&&(ua.fromBufferAttribute(i,a),fa.fromBufferAttribute(i,l),da.fromBufferAttribute(i,c),h.uv=An.getInterpolation(pa,dr,pr,mr,ua,fa,da,new it)),s&&(ua.fromBufferAttribute(s,a),fa.fromBufferAttribute(s,l),da.fromBufferAttribute(s,c),h.uv1=An.getInterpolation(pa,dr,pr,mr,ua,fa,da,new it),h.uv2=h.uv1),o&&(Au.fromBufferAttribute(o,a),wu.fromBufferAttribute(o,l),Ru.fromBufferAttribute(o,c),h.normal=An.getInterpolation(pa,dr,pr,mr,Au,wu,Ru,new D),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const u={a,b:l,c,normal:new D,materialIndex:0};An.getNormal(dr,pr,mr,u.normal),h.face=u}return h}class zs extends Ne{constructor(t=1,e=1,n=1,i=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:o};const a=this;i=Math.floor(i),s=Math.floor(s),o=Math.floor(o);const l=[],c=[],h=[],u=[];let f=0,d=0;_("z","y","x",-1,-1,n,e,t,o,s,0),_("z","y","x",1,-1,n,e,-t,o,s,1),_("x","z","y",1,1,t,n,e,i,o,2),_("x","z","y",1,-1,t,n,-e,i,o,3),_("x","y","z",1,-1,t,e,n,i,s,4),_("x","y","z",-1,-1,t,e,-n,i,s,5),this.setIndex(l),this.setAttribute("position",new ge(c,3)),this.setAttribute("normal",new ge(h,3)),this.setAttribute("uv",new ge(u,2));function _(g,p,m,y,v,S,w,R,b,U,F){const x=S/b,E=w/U,k=S/2,W=w/2,I=R/2,O=b+1,N=U+1;let Y=0,X=0;const $=new D;for(let Z=0;Z0?1:-1,h.push($.x,$.y,$.z),u.push(ut/b),u.push(1-Z/U),Y+=1}}for(let Z=0;Z0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class np extends _e{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new $t,this.projectionMatrix=new $t,this.projectionMatrixInverse=new $t,this.coordinateSystem=Yn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const si=new D,Cu=new it,Pu=new it;class Xe extends np{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=Hr*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(vs*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Hr*2*Math.atan(Math.tan(vs*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){si.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(si.x,si.y).multiplyScalar(-t/si.z),si.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(si.x,si.y).multiplyScalar(-t/si.z)}getViewSize(t,e){return this.getViewBounds(t,Cu,Pu),e.subVectors(Pu,Cu)}setViewOffset(t,e,n,i,s,o){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(vs*.5*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,c=o.fullHeight;s+=o.offsetX*i/l,e-=o.offsetY*n/c,i*=o.width/l,n*=o.height/c}const a=this.filmOffset;a!==0&&(s+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const _r=-90,gr=1;class J0 extends _e{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new Xe(_r,gr,t,e);i.layers=this.layers,this.add(i);const s=new Xe(_r,gr,t,e);s.layers=this.layers,this.add(s);const o=new Xe(_r,gr,t,e);o.layers=this.layers,this.add(o);const a=new Xe(_r,gr,t,e);a.layers=this.layers,this.add(a);const l=new Xe(_r,gr,t,e);l.layers=this.layers,this.add(l);const c=new Xe(_r,gr,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,i,s,o,a,l]=e;for(const c of e)this.remove(c);if(t===Yn)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(t===to)n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,c,h]=this.children,u=t.getRenderTarget(),f=t.getActiveCubeFace(),d=t.getActiveMipmapLevel(),_=t.xr.enabled;t.xr.enabled=!1;const g=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,i),t.render(e,s),t.setRenderTarget(n,1,i),t.render(e,o),t.setRenderTarget(n,2,i),t.render(e,a),t.setRenderTarget(n,3,i),t.render(e,l),t.setRenderTarget(n,4,i),t.render(e,c),n.texture.generateMipmaps=g,t.setRenderTarget(n,5,i),t.render(e,h),t.setRenderTarget(u,f,d),t.xr.enabled=_,n.texture.needsPMREMUpdate=!0}}class ip extends Ue{constructor(t,e,n,i,s,o,a,l,c,h){t=t!==void 0?t:[],e=e!==void 0?e:zr,super(t,e,n,i,s,o,a,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Q0 extends Zi{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];e.encoding!==void 0&&(ji("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===$i?Le:mn),this.texture=new ip(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:We}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},i=new zs(5,5,5),s=new Ti({name:"CubemapFromEquirect",uniforms:Gr(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Je,blending:_i});s.uniforms.tEquirect.value=e;const o=new Ye(i,s),a=e.minFilter;return e.minFilter===Vi&&(e.minFilter=We),new J0(1,10,this).update(t,o),e.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(t,e,n,i){const s=t.getRenderTarget();for(let o=0;o<6;o++)t.setRenderTarget(this,o),t.clear(e,n,i);t.setRenderTarget(s)}}const ll=new D,tv=new D,ev=new qt;class li{constructor(t=new D(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=ll.subVectors(n,e).cross(tv.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(ll),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;const s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(t.start).addScaledVector(n,s)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||ev.getNormalMatrix(t),i=this.coplanarPoint(ll).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Ni=new Jn,ga=new D;class Ic{constructor(t=new li,e=new li,n=new li,i=new li,s=new li,o=new li){this.planes=[t,e,n,i,s,o]}set(t,e,n,i,s,o){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(s),a[5].copy(o),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=Yn){const n=this.planes,i=t.elements,s=i[0],o=i[1],a=i[2],l=i[3],c=i[4],h=i[5],u=i[6],f=i[7],d=i[8],_=i[9],g=i[10],p=i[11],m=i[12],y=i[13],v=i[14],S=i[15];if(n[0].setComponents(l-s,f-c,p-d,S-m).normalize(),n[1].setComponents(l+s,f+c,p+d,S+m).normalize(),n[2].setComponents(l+o,f+h,p+_,S+y).normalize(),n[3].setComponents(l-o,f-h,p-_,S-y).normalize(),n[4].setComponents(l-a,f-u,p-g,S-v).normalize(),e===Yn)n[5].setComponents(l+a,f+u,p+g,S+v).normalize();else if(e===to)n[5].setComponents(a,u,g,v).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Ni.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Ni.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Ni)}intersectsSprite(t){return Ni.center.set(0,0,0),Ni.radius=.7071067811865476,Ni.applyMatrix4(t.matrixWorld),this.intersectsSphere(Ni)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,ga.y=i.normal.y>0?t.max.y:t.min.y,ga.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(ga)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function rp(){let r=null,t=!1,e=null,n=null;function i(s,o){e(s,o),n=r.requestAnimationFrame(i)}return{start:function(){t!==!0&&e!==null&&(n=r.requestAnimationFrame(i),t=!0)},stop:function(){r.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){r=s}}}function nv(r,t){const e=t.isWebGL2,n=new WeakMap;function i(c,h){const u=c.array,f=c.usage,d=u.byteLength,_=r.createBuffer();r.bindBuffer(h,_),r.bufferData(h,u,f),c.onUploadCallback();let g;if(u instanceof Float32Array)g=r.FLOAT;else if(u instanceof Uint16Array)if(c.isFloat16BufferAttribute)if(e)g=r.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else g=r.UNSIGNED_SHORT;else if(u instanceof Int16Array)g=r.SHORT;else if(u instanceof Uint32Array)g=r.UNSIGNED_INT;else if(u instanceof Int32Array)g=r.INT;else if(u instanceof Int8Array)g=r.BYTE;else if(u instanceof Uint8Array)g=r.UNSIGNED_BYTE;else if(u instanceof Uint8ClampedArray)g=r.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+u);return{buffer:_,type:g,bytesPerElement:u.BYTES_PER_ELEMENT,version:c.version,size:d}}function s(c,h,u){const f=h.array,d=h._updateRange,_=h.updateRanges;if(r.bindBuffer(u,c),d.count===-1&&_.length===0&&r.bufferSubData(u,0,f),_.length!==0){for(let g=0,p=_.length;g 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,xv=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,yv=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,Mv=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,Sv=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,bv=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,Ev=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - varying vec3 vColor; -#endif`,Tv=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif`,Av=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -float luminance( const in vec3 rgb ) { - const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); - return dot( weights, rgb ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,wv=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,Rv=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,Cv=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,Pv=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,Lv=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,Dv=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,Iv="gl_FragColor = linearToOutputTexel( gl_FragColor );",Uv=` -const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( - vec3( 0.8224621, 0.177538, 0.0 ), - vec3( 0.0331941, 0.9668058, 0.0 ), - vec3( 0.0170827, 0.0723974, 0.9105199 ) -); -const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( - vec3( 1.2249401, - 0.2249404, 0.0 ), - vec3( - 0.0420569, 1.0420571, 0.0 ), - vec3( - 0.0196376, - 0.0786361, 1.0982735 ) -); -vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { - return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); -} -vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { - return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); -} -vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferOETF( in vec4 value ) { - return 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 ); -} -vec4 LinearToLinear( in vec4 value ) { - return value; -} -vec4 LinearTosRGB( in vec4 value ) { - return sRGBTransferOETF( value ); -}`,Nv=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,Ov=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,Fv=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,Bv=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,zv=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,kv=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,Vv=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,Hv=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,Gv=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,Wv=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,Xv=`#ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - reflectedLight.indirectDiffuse += lightMapIrradiance; -#endif`,qv=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,Yv=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,$v=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,jv=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - #if defined ( LEGACY_LIGHTS ) - if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { - return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); - } - return 1.0; - #else - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; - #endif -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,Zv=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,Kv=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,Jv=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Qv=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,tx=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,ex=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,nx=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,ix=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,rx=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,sx=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,ax=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,ox=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,lx=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - varying float vFragDepth; - varying float vIsPerspective; - #else - uniform float logDepthBufFC; - #endif -#endif`,cx=`#ifdef USE_LOGDEPTHBUF - #ifdef USE_LOGDEPTHBUF_EXT - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); - #else - if ( isPerspectiveMatrix( projectionMatrix ) ) { - gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; - gl_Position.z *= gl_Position.w; - } - #endif -#endif`,hx=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); - - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,ux=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,fx=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,dx=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,px=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,mx=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,_x=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,gx=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } - #else - objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; - objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; - objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; - objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; - #endif -#endif`,vx=`#ifdef USE_MORPHTARGETS - uniform float morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } - #else - #ifndef USE_MORPHNORMALS - uniform float morphTargetInfluences[ 8 ]; - #else - uniform float morphTargetInfluences[ 4 ]; - #endif - #endif -#endif`,xx=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - #ifdef MORPHTARGETS_TEXTURE - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } - #else - transformed += morphTarget0 * morphTargetInfluences[ 0 ]; - transformed += morphTarget1 * morphTargetInfluences[ 1 ]; - transformed += morphTarget2 * morphTargetInfluences[ 2 ]; - transformed += morphTarget3 * morphTargetInfluences[ 3 ]; - #ifndef USE_MORPHNORMALS - transformed += morphTarget4 * morphTargetInfluences[ 4 ]; - transformed += morphTarget5 * morphTargetInfluences[ 5 ]; - transformed += morphTarget6 * morphTargetInfluences[ 6 ]; - transformed += morphTarget7 * morphTargetInfluences[ 7 ]; - #endif - #endif -#endif`,yx=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,Mx=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,Sx=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,bx=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,Ex=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,Tx=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,Ax=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,wx=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,Rx=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,Cx=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,Px=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,Lx=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; -const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); -const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); -const float ShiftRight8 = 1. / 256.; -vec4 packDepthToRGBA( const in float v ) { - vec4 r = vec4( fract( v * PackFactors ), v ); - r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors ); -} -vec2 packDepthToRG( in highp float v ) { - return packDepthToRGBA( v ).yx; -} -float unpackRGToDepth( const in highp vec2 v ) { - return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); -} -vec4 pack2HalfToRGBA( vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,Dx=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,Ix=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,Ux=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,Nx=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,Ox=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,Fx=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,Bx=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return shadow; - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - vec3 lightToPosition = shadowCoord.xyz; - float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - return ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } -#endif`,zx=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,kx=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,Vx=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,Hx=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,Gx=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,Wx=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,Xx=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,qx=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,Yx=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,$x=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,jx=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 OptimizedCineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,Zx=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,Kx=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,Jx=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,Qx=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,ty=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,ey=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const ny=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,iy=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,ry=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,sy=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,ay=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,oy=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,ly=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,cy=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #endif -}`,hy=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,uy=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = packDepthToRGBA( dist ); -}`,fy=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,dy=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,py=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,my=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,_y=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,gy=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,vy=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,xy=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,yy=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,My=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,Sy=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,by=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,Ey=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,Ty=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,Ay=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,wy=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,Ry=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,Cy=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,Py=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,Ly=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,Dy=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,Iy=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,Uy=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,Ny=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,Ht={alphahash_fragment:iv,alphahash_pars_fragment:rv,alphamap_fragment:sv,alphamap_pars_fragment:av,alphatest_fragment:ov,alphatest_pars_fragment:lv,aomap_fragment:cv,aomap_pars_fragment:hv,batching_pars_vertex:uv,batching_vertex:fv,begin_vertex:dv,beginnormal_vertex:pv,bsdfs:mv,iridescence_fragment:_v,bumpmap_pars_fragment:gv,clipping_planes_fragment:vv,clipping_planes_pars_fragment:xv,clipping_planes_pars_vertex:yv,clipping_planes_vertex:Mv,color_fragment:Sv,color_pars_fragment:bv,color_pars_vertex:Ev,color_vertex:Tv,common:Av,cube_uv_reflection_fragment:wv,defaultnormal_vertex:Rv,displacementmap_pars_vertex:Cv,displacementmap_vertex:Pv,emissivemap_fragment:Lv,emissivemap_pars_fragment:Dv,colorspace_fragment:Iv,colorspace_pars_fragment:Uv,envmap_fragment:Nv,envmap_common_pars_fragment:Ov,envmap_pars_fragment:Fv,envmap_pars_vertex:Bv,envmap_physical_pars_fragment:Zv,envmap_vertex:zv,fog_vertex:kv,fog_pars_vertex:Vv,fog_fragment:Hv,fog_pars_fragment:Gv,gradientmap_pars_fragment:Wv,lightmap_fragment:Xv,lightmap_pars_fragment:qv,lights_lambert_fragment:Yv,lights_lambert_pars_fragment:$v,lights_pars_begin:jv,lights_toon_fragment:Kv,lights_toon_pars_fragment:Jv,lights_phong_fragment:Qv,lights_phong_pars_fragment:tx,lights_physical_fragment:ex,lights_physical_pars_fragment:nx,lights_fragment_begin:ix,lights_fragment_maps:rx,lights_fragment_end:sx,logdepthbuf_fragment:ax,logdepthbuf_pars_fragment:ox,logdepthbuf_pars_vertex:lx,logdepthbuf_vertex:cx,map_fragment:hx,map_pars_fragment:ux,map_particle_fragment:fx,map_particle_pars_fragment:dx,metalnessmap_fragment:px,metalnessmap_pars_fragment:mx,morphcolor_vertex:_x,morphnormal_vertex:gx,morphtarget_pars_vertex:vx,morphtarget_vertex:xx,normal_fragment_begin:yx,normal_fragment_maps:Mx,normal_pars_fragment:Sx,normal_pars_vertex:bx,normal_vertex:Ex,normalmap_pars_fragment:Tx,clearcoat_normal_fragment_begin:Ax,clearcoat_normal_fragment_maps:wx,clearcoat_pars_fragment:Rx,iridescence_pars_fragment:Cx,opaque_fragment:Px,packing:Lx,premultiplied_alpha_fragment:Dx,project_vertex:Ix,dithering_fragment:Ux,dithering_pars_fragment:Nx,roughnessmap_fragment:Ox,roughnessmap_pars_fragment:Fx,shadowmap_pars_fragment:Bx,shadowmap_pars_vertex:zx,shadowmap_vertex:kx,shadowmask_pars_fragment:Vx,skinbase_vertex:Hx,skinning_pars_vertex:Gx,skinning_vertex:Wx,skinnormal_vertex:Xx,specularmap_fragment:qx,specularmap_pars_fragment:Yx,tonemapping_fragment:$x,tonemapping_pars_fragment:jx,transmission_fragment:Zx,transmission_pars_fragment:Kx,uv_pars_fragment:Jx,uv_pars_vertex:Qx,uv_vertex:ty,worldpos_vertex:ey,background_vert:ny,background_frag:iy,backgroundCube_vert:ry,backgroundCube_frag:sy,cube_vert:ay,cube_frag:oy,depth_vert:ly,depth_frag:cy,distanceRGBA_vert:hy,distanceRGBA_frag:uy,equirect_vert:fy,equirect_frag:dy,linedashed_vert:py,linedashed_frag:my,meshbasic_vert:_y,meshbasic_frag:gy,meshlambert_vert:vy,meshlambert_frag:xy,meshmatcap_vert:yy,meshmatcap_frag:My,meshnormal_vert:Sy,meshnormal_frag:by,meshphong_vert:Ey,meshphong_frag:Ty,meshphysical_vert:Ay,meshphysical_frag:wy,meshtoon_vert:Ry,meshtoon_frag:Cy,points_vert:Py,points_frag:Ly,shadow_vert:Dy,shadow_frag:Iy,sprite_vert:Uy,sprite_frag:Ny},ht={common:{diffuse:{value:new Nt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new qt},alphaMap:{value:null},alphaMapTransform:{value:new qt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new qt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new qt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new qt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new qt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new qt},normalScale:{value:new it(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new qt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new qt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new qt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new qt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Nt(16777215)}},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:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{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:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Nt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new qt},alphaTest:{value:0},uvTransform:{value:new qt}},sprite:{diffuse:{value:new Nt(16777215)},opacity:{value:1},center:{value:new it(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new qt},alphaMap:{value:null},alphaMapTransform:{value:new qt},alphaTest:{value:0}}},Cn={basic:{uniforms:Ge([ht.common,ht.specularmap,ht.envmap,ht.aomap,ht.lightmap,ht.fog]),vertexShader:Ht.meshbasic_vert,fragmentShader:Ht.meshbasic_frag},lambert:{uniforms:Ge([ht.common,ht.specularmap,ht.envmap,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.fog,ht.lights,{emissive:{value:new Nt(0)}}]),vertexShader:Ht.meshlambert_vert,fragmentShader:Ht.meshlambert_frag},phong:{uniforms:Ge([ht.common,ht.specularmap,ht.envmap,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.fog,ht.lights,{emissive:{value:new Nt(0)},specular:{value:new Nt(1118481)},shininess:{value:30}}]),vertexShader:Ht.meshphong_vert,fragmentShader:Ht.meshphong_frag},standard:{uniforms:Ge([ht.common,ht.envmap,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.roughnessmap,ht.metalnessmap,ht.fog,ht.lights,{emissive:{value:new Nt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ht.meshphysical_vert,fragmentShader:Ht.meshphysical_frag},toon:{uniforms:Ge([ht.common,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.gradientmap,ht.fog,ht.lights,{emissive:{value:new Nt(0)}}]),vertexShader:Ht.meshtoon_vert,fragmentShader:Ht.meshtoon_frag},matcap:{uniforms:Ge([ht.common,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.fog,{matcap:{value:null}}]),vertexShader:Ht.meshmatcap_vert,fragmentShader:Ht.meshmatcap_frag},points:{uniforms:Ge([ht.points,ht.fog]),vertexShader:Ht.points_vert,fragmentShader:Ht.points_frag},dashed:{uniforms:Ge([ht.common,ht.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ht.linedashed_vert,fragmentShader:Ht.linedashed_frag},depth:{uniforms:Ge([ht.common,ht.displacementmap]),vertexShader:Ht.depth_vert,fragmentShader:Ht.depth_frag},normal:{uniforms:Ge([ht.common,ht.bumpmap,ht.normalmap,ht.displacementmap,{opacity:{value:1}}]),vertexShader:Ht.meshnormal_vert,fragmentShader:Ht.meshnormal_frag},sprite:{uniforms:Ge([ht.sprite,ht.fog]),vertexShader:Ht.sprite_vert,fragmentShader:Ht.sprite_frag},background:{uniforms:{uvTransform:{value:new qt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ht.background_vert,fragmentShader:Ht.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ht.backgroundCube_vert,fragmentShader:Ht.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ht.cube_vert,fragmentShader:Ht.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ht.equirect_vert,fragmentShader:Ht.equirect_frag},distanceRGBA:{uniforms:Ge([ht.common,ht.displacementmap,{referencePosition:{value:new D},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ht.distanceRGBA_vert,fragmentShader:Ht.distanceRGBA_frag},shadow:{uniforms:Ge([ht.lights,ht.fog,{color:{value:new Nt(0)},opacity:{value:1}}]),vertexShader:Ht.shadow_vert,fragmentShader:Ht.shadow_frag}};Cn.physical={uniforms:Ge([Cn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new qt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new qt},clearcoatNormalScale:{value:new it(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new qt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new qt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new qt},sheen:{value:0},sheenColor:{value:new Nt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new qt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new qt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new qt},transmissionSamplerSize:{value:new it},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new qt},attenuationDistance:{value:0},attenuationColor:{value:new Nt(0)},specularColor:{value:new Nt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new qt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new qt},anisotropyVector:{value:new it},anisotropyMap:{value:null},anisotropyMapTransform:{value:new qt}}]),vertexShader:Ht.meshphysical_vert,fragmentShader:Ht.meshphysical_frag};const va={r:0,b:0,g:0};function Oy(r,t,e,n,i,s,o){const a=new Nt(0);let l=s===!0?0:1,c,h,u=null,f=0,d=null;function _(p,m){let y=!1,v=m.isScene===!0?m.background:null;v&&v.isTexture&&(v=(m.backgroundBlurriness>0?e:t).get(v)),v===null?g(a,l):v&&v.isColor&&(g(v,1),y=!0);const S=r.xr.getEnvironmentBlendMode();S==="additive"?n.buffers.color.setClear(0,0,0,1,o):S==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,o),(r.autoClear||y)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),v&&(v.isCubeTexture||v.mapping===co)?(h===void 0&&(h=new Ye(new zs(1,1,1),new Ti({name:"BackgroundCubeMaterial",uniforms:Gr(Cn.backgroundCube.uniforms),vertexShader:Cn.backgroundCube.vertexShader,fragmentShader:Cn.backgroundCube.fragmentShader,side:Je,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(w,R,b){this.matrixWorld.copyPosition(b.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=v,h.material.uniforms.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=m.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,h.material.toneMapped=ee.getTransfer(v.colorSpace)!==oe,(u!==v||f!==v.version||d!==r.toneMapping)&&(h.material.needsUpdate=!0,u=v,f=v.version,d=r.toneMapping),h.layers.enableAll(),p.unshift(h,h.geometry,h.material,0,0,null)):v&&v.isTexture&&(c===void 0&&(c=new Ye(new ks(2,2),new Ti({name:"BackgroundMaterial",uniforms:Gr(Cn.background.uniforms),vertexShader:Cn.background.vertexShader,fragmentShader:Cn.background.fragmentShader,side:bi,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(c)),c.material.uniforms.t2D.value=v,c.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,c.material.toneMapped=ee.getTransfer(v.colorSpace)!==oe,v.matrixAutoUpdate===!0&&v.updateMatrix(),c.material.uniforms.uvTransform.value.copy(v.matrix),(u!==v||f!==v.version||d!==r.toneMapping)&&(c.material.needsUpdate=!0,u=v,f=v.version,d=r.toneMapping),c.layers.enableAll(),p.unshift(c,c.geometry,c.material,0,0,null))}function g(p,m){p.getRGB(va,ep(r)),n.buffers.color.setClear(va.r,va.g,va.b,m,o)}return{getClearColor:function(){return a},setClearColor:function(p,m=1){a.set(p),l=m,g(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(p){l=p,g(a,l)},render:_}}function Fy(r,t,e,n){const i=r.getParameter(r.MAX_VERTEX_ATTRIBS),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),o=n.isWebGL2||s!==null,a={},l=p(null);let c=l,h=!1;function u(I,O,N,Y,X){let $=!1;if(o){const Z=g(Y,N,O);c!==Z&&(c=Z,d(c.object)),$=m(I,Y,N,X),$&&y(I,Y,N,X)}else{const Z=O.wireframe===!0;(c.geometry!==Y.id||c.program!==N.id||c.wireframe!==Z)&&(c.geometry=Y.id,c.program=N.id,c.wireframe=Z,$=!0)}X!==null&&e.update(X,r.ELEMENT_ARRAY_BUFFER),($||h)&&(h=!1,U(I,O,N,Y),X!==null&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e.get(X).buffer))}function f(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function d(I){return n.isWebGL2?r.bindVertexArray(I):s.bindVertexArrayOES(I)}function _(I){return n.isWebGL2?r.deleteVertexArray(I):s.deleteVertexArrayOES(I)}function g(I,O,N){const Y=N.wireframe===!0;let X=a[I.id];X===void 0&&(X={},a[I.id]=X);let $=X[O.id];$===void 0&&($={},X[O.id]=$);let Z=$[Y];return Z===void 0&&(Z=p(f()),$[Y]=Z),Z}function p(I){const O=[],N=[],Y=[];for(let X=0;X=0){const V=X[ut];let Q=$[ut];if(Q===void 0&&(ut==="instanceMatrix"&&I.instanceMatrix&&(Q=I.instanceMatrix),ut==="instanceColor"&&I.instanceColor&&(Q=I.instanceColor)),V===void 0||V.attribute!==Q||Q&&V.data!==Q.data)return!0;Z++}return c.attributesNum!==Z||c.index!==Y}function y(I,O,N,Y){const X={},$=O.attributes;let Z=0;const J=N.getAttributes();for(const ut in J)if(J[ut].location>=0){let V=$[ut];V===void 0&&(ut==="instanceMatrix"&&I.instanceMatrix&&(V=I.instanceMatrix),ut==="instanceColor"&&I.instanceColor&&(V=I.instanceColor));const Q={};Q.attribute=V,V&&V.data&&(Q.data=V.data),X[ut]=Q,Z++}c.attributes=X,c.attributesNum=Z,c.index=Y}function v(){const I=c.newAttributes;for(let O=0,N=I.length;O=0){let bt=X[J];if(bt===void 0&&(J==="instanceMatrix"&&I.instanceMatrix&&(bt=I.instanceMatrix),J==="instanceColor"&&I.instanceColor&&(bt=I.instanceColor)),bt!==void 0){const V=bt.normalized,Q=bt.itemSize,_t=e.get(bt);if(_t===void 0)continue;const Mt=_t.buffer,Tt=_t.type,xt=_t.bytesPerElement,Ot=n.isWebGL2===!0&&(Tt===r.INT||Tt===r.UNSIGNED_INT||bt.gpuType===zd);if(bt.isInterleavedBufferAttribute){const wt=bt.data,L=wt.stride,ct=bt.offset;if(wt.isInstancedInterleavedBuffer){for(let j=0;j0&&r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision>0)return"highp";b="mediump"}return b==="mediump"&&r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_FLOAT).precision>0&&r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext!="undefined"&&r.constructor.name==="WebGL2RenderingContext";let a=e.precision!==void 0?e.precision:"highp";const l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const c=o||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,u=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),f=r.getParameter(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=r.getParameter(r.MAX_TEXTURE_SIZE),_=r.getParameter(r.MAX_CUBE_MAP_TEXTURE_SIZE),g=r.getParameter(r.MAX_VERTEX_ATTRIBS),p=r.getParameter(r.MAX_VERTEX_UNIFORM_VECTORS),m=r.getParameter(r.MAX_VARYING_VECTORS),y=r.getParameter(r.MAX_FRAGMENT_UNIFORM_VECTORS),v=f>0,S=o||t.has("OES_texture_float"),w=v&&S,R=o?r.getParameter(r.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:c,getMaxAnisotropy:i,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:f,maxTextureSize:d,maxCubemapSize:_,maxAttributes:g,maxVertexUniforms:p,maxVaryings:m,maxFragmentUniforms:y,vertexTextures:v,floatFragmentTextures:S,floatVertexTextures:w,maxSamples:R}}function ky(r){const t=this;let e=null,n=0,i=!1,s=!1;const o=new li,a=new qt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(u,f){const d=u.length!==0||f||n!==0||i;return i=f,n=u.length,d},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(u,f){e=h(u,f,0)},this.setState=function(u,f,d){const _=u.clippingPlanes,g=u.clipIntersection,p=u.clipShadows,m=r.get(u);if(!i||_===null||_.length===0||s&&!p)s?h(null):c();else{const y=s?0:n,v=y*4;let S=m.clippingState||null;l.value=S,S=h(_,f,v,d);for(let w=0;w!==v;++w)S[w]=e[w];m.clippingState=S,this.numIntersection=g?this.numPlanes:0,this.numPlanes+=y}};function c(){l.value!==e&&(l.value=e,l.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(u,f,d,_){const g=u!==null?u.length:0;let p=null;if(g!==0){if(p=l.value,_!==!0||p===null){const m=d+g*4,y=f.matrixWorldInverse;a.getNormalMatrix(y),(p===null||p.length0){const c=new Q0(l.height);return c.fromEquirectangularTexture(r,o),t.set(o,c),o.addEventListener("dispose",i),e(c.texture,o.mapping)}else return null}}return o}function i(o){const a=o.target;a.removeEventListener("dispose",i);const l=t.get(a);l!==void 0&&(t.delete(a),l.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}class sp extends np{constructor(t=-1,e=1,n=1,i=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let s=n-t,o=n+t,a=i+e,l=i-e;if(this.view!==null&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=c*this.view.offsetX,o=s+c*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}}const Ar=4,Lu=[.125,.215,.35,.446,.526,.582],zi=20,cl=new sp,Du=new Nt;let hl=null,ul=0,fl=0;const Fi=(1+Math.sqrt(5))/2,vr=1/Fi,Iu=[new D(1,1,1),new D(-1,1,1),new D(1,1,-1),new D(-1,1,-1),new D(0,Fi,vr),new D(0,Fi,-vr),new D(vr,0,Fi),new D(-vr,0,Fi),new D(Fi,vr,0),new D(-Fi,vr,0)];class Uu{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){hl=this._renderer.getRenderTarget(),ul=this._renderer.getActiveCubeFace(),fl=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Fu(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ou(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?v:0,v,v),h.setRenderTarget(i),g&&h.render(_,a),h.render(t,a)}_.geometry.dispose(),_.material.dispose(),h.toneMapping=f,h.autoClear=u,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===zr||t.mapping===kr;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Fu()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ou());const s=i?this._cubemapMaterial:this._equirectMaterial,o=new Ye(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=t;const l=this._cubeSize;xa(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(o,cl)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;izi&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${zi}`);const m=[];let y=0;for(let b=0;bv-Ar?i-v+Ar:0),R=4*(this._cubeSize-S);xa(e,w,R,3*S,2*S),l.setRenderTarget(e),l.render(u,cl)}}function Hy(r){const t=[],e=[],n=[];let i=r;const s=r-Ar+1+Lu.length;for(let o=0;or-Ar?l=Lu[o-r+Ar-1]:o===0&&(l=0),n.push(l);const c=1/(a-2),h=-c,u=1+c,f=[h,h,u,h,u,u,h,h,u,u,h,u],d=6,_=6,g=3,p=2,m=1,y=new Float32Array(g*_*d),v=new Float32Array(p*_*d),S=new Float32Array(m*_*d);for(let R=0;R2?0:-1,F=[b,U,0,b+2/3,U,0,b+2/3,U+1,0,b,U,0,b+2/3,U+1,0,b,U+1,0];y.set(F,g*_*R),v.set(f,p*_*R);const x=[R,R,R,R,R,R];S.set(x,m*_*R)}const w=new Ne;w.setAttribute("position",new xn(y,g)),w.setAttribute("uv",new xn(v,p)),w.setAttribute("faceIndex",new xn(S,m)),t.push(w),i>Ar&&i--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Nu(r,t,e){const n=new Zi(r,t,e);return n.texture.mapping=co,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function xa(r,t,e,n,i){r.viewport.set(t,e,n,i),r.scissor.set(t,e,n,i)}function Gy(r,t,e){const n=new Float32Array(zi),i=new D(0,1,0);return new Ti({name:"SphericalGaussianBlur",defines:{n:zi,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:Uc(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:_i,depthTest:!1,depthWrite:!1})}function Ou(){return new Ti({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Uc(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:_i,depthTest:!1,depthWrite:!1})}function Fu(){return new Ti({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Uc(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:_i,depthTest:!1,depthWrite:!1})}function Uc(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function Wy(r){let t=new WeakMap,e=null;function n(a){if(a&&a.isTexture){const l=a.mapping,c=l===Wl||l===Xl,h=l===zr||l===kr;if(c||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let u=t.get(a);return e===null&&(e=new Uu(r)),u=c?e.fromEquirectangular(a,u):e.fromCubemap(a,u),t.set(a,u),u.texture}else{if(t.has(a))return t.get(a).texture;{const u=a.image;if(c&&u&&u.height>0||h&&u&&i(u)){e===null&&(e=new Uu(r));const f=c?e.fromEquirectangular(a):e.fromCubemap(a);return t.set(a,f),a.addEventListener("dispose",s),f.texture}else return null}}}return a}function i(a){let l=0;const c=6;for(let h=0;ht.maxTextureSize&&(x=Math.ceil(F/t.maxTextureSize),F=t.maxTextureSize);const E=new Float32Array(F*x*4*_),k=new Kd(E,F,x,_);k.type=Ln,k.needsUpdate=!0;const W=U*4;for(let O=0;O<_;O++){const N=w[O],Y=R[O],X=b[O],$=F*x*4*O;for(let Z=0;Z0)return r;const i=t*e;let s=Bu[i];if(s===void 0&&(s=new Float32Array(i),Bu[i]=s),t!==0){n.toArray(s,0);for(let o=1,a=0;o!==t;++o)a+=e,r[o].toArray(s,a)}return s}function Ee(r,t){if(r.length!==t.length)return!1;for(let e=0,n=r.length;e":" "} ${a}: ${e[o]}`)}return n.join(` -`)}function qM(r){const t=ee.getPrimaries(ee.workingColorSpace),e=ee.getPrimaries(r);let n;switch(t===e?n="":t===Qa&&e===Ja?n="LinearDisplayP3ToLinearSRGB":t===Ja&&e===Qa&&(n="LinearSRGBToLinearDisplayP3"),r){case Kn:case ho:return[n,"LinearTransferOETF"];case Le:case Cc:return[n,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",r),[n,"LinearTransferOETF"]}}function Xu(r,t,e){const n=r.getShaderParameter(t,r.COMPILE_STATUS),i=r.getShaderInfoLog(t).trim();if(n&&i==="")return"";const s=/ERROR: 0:(\d+)/.exec(i);if(s){const o=parseInt(s[1]);return e.toUpperCase()+` - -`+i+` - -`+XM(r.getShaderSource(t),o)}else return i}function YM(r,t){const e=qM(t);return`vec4 ${r}( vec4 value ) { return ${e[0]}( ${e[1]}( value ) ); }`}function $M(r,t){let e;switch(t){case Wg:e="Linear";break;case Xg:e="Reinhard";break;case qg:e="OptimizedCineon";break;case Yg:e="ACESFilmic";break;case jg:e="AgX";break;case $g:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+r+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function jM(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.normalMapTangentSpace||r.clearcoatNormalMap||r.flatShading||r.alphaToCoverage||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(wr).join(` -`)}function ZM(r){return[r.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",r.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(wr).join(` -`)}function KM(r){const t=[];for(const e in r){const n=r[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(` -`)}function JM(r,t){const e={},n=r.getProgramParameter(t,r.ACTIVE_ATTRIBUTES);for(let i=0;i/gm;function Zl(r){return r.replace(QM,eS)}const tS=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function eS(r,t){let e=Ht[t];if(e===void 0){const n=tS.get(t);if(n!==void 0)e=Ht[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,n);else throw new Error("Can not resolve #include <"+t+">")}return Zl(e)}const nS=/#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 $u(r){return r.replace(nS,iS)}function iS(r,t,e,n){let i="";for(let s=parseInt(t);s0&&(m+=` -`),y=[d,"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(wr).join(` -`),y.length>0&&(y+=` -`)):(m=[ju(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",e.batching?"#define USE_BATCHING":"",e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.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_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," 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",` -`].filter(wr).join(` -`),y=[d,ju(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+h:"",e.envMap?"#define "+u:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==gi?"#define TONE_MAPPING":"",e.toneMapping!==gi?Ht.tonemapping_pars_fragment:"",e.toneMapping!==gi?$M("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Ht.colorspace_pars_fragment,YM("linearToOutputTexel",e.outputColorSpace),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` -`].filter(wr).join(` -`)),o=Zl(o),o=qu(o,e),o=Yu(o,e),a=Zl(a),a=qu(a,e),a=Yu(a,e),o=$u(o),a=$u(a),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(v=`#version 300 es -`,m=[_,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+m,y=["precision mediump sampler2DArray;","#define varying in",e.glslVersion===uu?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===uu?"":"#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(` -`)+` -`+y);const S=v+m+o,w=v+y+a,R=Wu(i,i.VERTEX_SHADER,S),b=Wu(i,i.FRAGMENT_SHADER,w);i.attachShader(p,R),i.attachShader(p,b),e.index0AttributeName!==void 0?i.bindAttribLocation(p,0,e.index0AttributeName):e.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p);function U(k){if(r.debug.checkShaderErrors){const W=i.getProgramInfoLog(p).trim(),I=i.getShaderInfoLog(R).trim(),O=i.getShaderInfoLog(b).trim();let N=!0,Y=!0;if(i.getProgramParameter(p,i.LINK_STATUS)===!1)if(N=!1,typeof r.debug.onShaderError=="function")r.debug.onShaderError(i,p,R,b);else{const X=Xu(i,R,"vertex"),$=Xu(i,b,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,i.VALIDATE_STATUS)+` - -Material Name: `+k.name+` -Material Type: `+k.type+` - -Program Info Log: `+W+` -`+X+` -`+$)}else W!==""?console.warn("THREE.WebGLProgram: Program Info Log:",W):(I===""||O==="")&&(Y=!1);Y&&(k.diagnostics={runnable:N,programLog:W,vertexShader:{log:I,prefix:m},fragmentShader:{log:O,prefix:y}})}i.deleteShader(R),i.deleteShader(b),F=new Ba(i,p),x=JM(i,p)}let F;this.getUniforms=function(){return F===void 0&&U(this),F};let x;this.getAttributes=function(){return x===void 0&&U(this),x};let E=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return E===!1&&(E=i.getProgramParameter(p,GM)),E},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=WM++,this.cacheKey=t,this.usedTimes=1,this.program=p,this.vertexShader=R,this.fragmentShader=b,this}let hS=0;class uS{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),s=this._getShaderStage(n),o=this._getShaderCacheForMaterial(t);return o.has(i)===!1&&(o.add(i),i.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return n===void 0&&(n=new fS(t),e.set(t,n)),n}}class fS{constructor(t){this.id=hS++,this.code=t,this.usedTimes=0}}function dS(r,t,e,n,i,s,o){const a=new Lc,l=new uS,c=new Set,h=[],u=i.isWebGL2,f=i.logarithmicDepthBuffer,d=i.vertexTextures;let _=i.precision;const g={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"};function p(x){return c.add(x),x===0?"uv":`uv${x}`}function m(x,E,k,W,I){const O=W.fog,N=I.geometry,Y=x.isMeshStandardMaterial?W.environment:null,X=(x.isMeshStandardMaterial?e:t).get(x.envMap||Y),$=X&&X.mapping===co?X.image.height:null,Z=g[x.type];x.precision!==null&&(_=i.getMaxPrecision(x.precision),_!==x.precision&&console.warn("THREE.WebGLProgram.getParameters:",x.precision,"not supported, using",_,"instead."));const J=N.morphAttributes.position||N.morphAttributes.normal||N.morphAttributes.color,ut=J!==void 0?J.length:0;let bt=0;N.morphAttributes.position!==void 0&&(bt=1),N.morphAttributes.normal!==void 0&&(bt=2),N.morphAttributes.color!==void 0&&(bt=3);let V,Q,_t,Mt;if(Z){const Yt=Cn[Z];V=Yt.vertexShader,Q=Yt.fragmentShader}else V=x.vertexShader,Q=x.fragmentShader,l.update(x),_t=l.getVertexShaderID(x),Mt=l.getFragmentShaderID(x);const Tt=r.getRenderTarget(),xt=I.isInstancedMesh===!0,Ot=I.isBatchedMesh===!0,wt=!!x.map,L=!!x.matcap,ct=!!X,j=!!x.aoMap,ot=!!x.lightMap,K=!!x.bumpMap,Et=!!x.normalMap,pt=!!x.displacementMap,T=!!x.emissiveMap,M=!!x.metalnessMap,B=!!x.roughnessMap,rt=x.anisotropy>0,et=x.clearcoat>0,tt=x.iridescence>0,yt=x.sheen>0,ft=x.transmission>0,gt=rt&&!!x.anisotropyMap,Pt=et&&!!x.clearcoatMap,Ft=et&&!!x.clearcoatNormalMap,nt=et&&!!x.clearcoatRoughnessMap,Zt=tt&&!!x.iridescenceMap,Gt=tt&&!!x.iridescenceThicknessMap,It=yt&&!!x.sheenColorMap,Rt=yt&&!!x.sheenRoughnessMap,mt=!!x.specularMap,kt=!!x.specularColorMap,P=!!x.specularIntensityMap,lt=ft&&!!x.transmissionMap,dt=ft&&!!x.thicknessMap,Ct=!!x.gradientMap,C=!!x.alphaMap,at=x.alphaTest>0,st=!!x.alphaHash,St=!!x.extensions;let Lt=gi;x.toneMapped&&(Tt===null||Tt.isXRRenderTarget===!0)&&(Lt=r.toneMapping);const Kt={isWebGL2:u,shaderID:Z,shaderType:x.type,shaderName:x.name,vertexShader:V,fragmentShader:Q,defines:x.defines,customVertexShaderID:_t,customFragmentShaderID:Mt,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:_,batching:Ot,instancing:xt,instancingColor:xt&&I.instanceColor!==null,supportsVertexTextures:d,outputColorSpace:Tt===null?r.outputColorSpace:Tt.isXRRenderTarget===!0?Tt.texture.colorSpace:Kn,alphaToCoverage:!!x.alphaToCoverage,map:wt,matcap:L,envMap:ct,envMapMode:ct&&X.mapping,envMapCubeUVHeight:$,aoMap:j,lightMap:ot,bumpMap:K,normalMap:Et,displacementMap:d&&pt,emissiveMap:T,normalMapObjectSpace:Et&&x.normalMapType===l0,normalMapTangentSpace:Et&&x.normalMapType===Rc,metalnessMap:M,roughnessMap:B,anisotropy:rt,anisotropyMap:gt,clearcoat:et,clearcoatMap:Pt,clearcoatNormalMap:Ft,clearcoatRoughnessMap:nt,iridescence:tt,iridescenceMap:Zt,iridescenceThicknessMap:Gt,sheen:yt,sheenColorMap:It,sheenRoughnessMap:Rt,specularMap:mt,specularColorMap:kt,specularIntensityMap:P,transmission:ft,transmissionMap:lt,thicknessMap:dt,gradientMap:Ct,opaque:x.transparent===!1&&x.blending===Dr&&x.alphaToCoverage===!1,alphaMap:C,alphaTest:at,alphaHash:st,combine:x.combine,mapUv:wt&&p(x.map.channel),aoMapUv:j&&p(x.aoMap.channel),lightMapUv:ot&&p(x.lightMap.channel),bumpMapUv:K&&p(x.bumpMap.channel),normalMapUv:Et&&p(x.normalMap.channel),displacementMapUv:pt&&p(x.displacementMap.channel),emissiveMapUv:T&&p(x.emissiveMap.channel),metalnessMapUv:M&&p(x.metalnessMap.channel),roughnessMapUv:B&&p(x.roughnessMap.channel),anisotropyMapUv:gt&&p(x.anisotropyMap.channel),clearcoatMapUv:Pt&&p(x.clearcoatMap.channel),clearcoatNormalMapUv:Ft&&p(x.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:nt&&p(x.clearcoatRoughnessMap.channel),iridescenceMapUv:Zt&&p(x.iridescenceMap.channel),iridescenceThicknessMapUv:Gt&&p(x.iridescenceThicknessMap.channel),sheenColorMapUv:It&&p(x.sheenColorMap.channel),sheenRoughnessMapUv:Rt&&p(x.sheenRoughnessMap.channel),specularMapUv:mt&&p(x.specularMap.channel),specularColorMapUv:kt&&p(x.specularColorMap.channel),specularIntensityMapUv:P&&p(x.specularIntensityMap.channel),transmissionMapUv:lt&&p(x.transmissionMap.channel),thicknessMapUv:dt&&p(x.thicknessMap.channel),alphaMapUv:C&&p(x.alphaMap.channel),vertexTangents:!!N.attributes.tangent&&(Et||rt),vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!N.attributes.color&&N.attributes.color.itemSize===4,pointsUvs:I.isPoints===!0&&!!N.attributes.uv&&(wt||C),fog:!!O,useFog:x.fog===!0,fogExp2:!!O&&O.isFogExp2,flatShading:x.flatShading===!0,sizeAttenuation:x.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:I.isSkinnedMesh===!0,morphTargets:N.morphAttributes.position!==void 0,morphNormals:N.morphAttributes.normal!==void 0,morphColors:N.morphAttributes.color!==void 0,morphTargetsCount:ut,morphTextureStride:bt,numDirLights:E.directional.length,numPointLights:E.point.length,numSpotLights:E.spot.length,numSpotLightMaps:E.spotLightMap.length,numRectAreaLights:E.rectArea.length,numHemiLights:E.hemi.length,numDirLightShadows:E.directionalShadowMap.length,numPointLightShadows:E.pointShadowMap.length,numSpotLightShadows:E.spotShadowMap.length,numSpotLightShadowsWithMaps:E.numSpotLightShadowsWithMaps,numLightProbes:E.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:x.dithering,shadowMapEnabled:r.shadowMap.enabled&&k.length>0,shadowMapType:r.shadowMap.type,toneMapping:Lt,useLegacyLights:r._useLegacyLights,decodeVideoTexture:wt&&x.map.isVideoTexture===!0&&ee.getTransfer(x.map.colorSpace)===oe,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===bn,flipSided:x.side===Je,useDepthPacking:x.depthPacking>=0,depthPacking:x.depthPacking||0,index0AttributeName:x.index0AttributeName,extensionDerivatives:St&&x.extensions.derivatives===!0,extensionFragDepth:St&&x.extensions.fragDepth===!0,extensionDrawBuffers:St&&x.extensions.drawBuffers===!0,extensionShaderTextureLOD:St&&x.extensions.shaderTextureLOD===!0,extensionClipCullDistance:St&&x.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:St&&x.extensions.multiDraw===!0&&n.has("WEBGL_multi_draw"),rendererExtensionFragDepth:u||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||n.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:x.customProgramCacheKey()};return Kt.vertexUv1s=c.has(1),Kt.vertexUv2s=c.has(2),Kt.vertexUv3s=c.has(3),c.clear(),Kt}function y(x){const E=[];if(x.shaderID?E.push(x.shaderID):(E.push(x.customVertexShaderID),E.push(x.customFragmentShaderID)),x.defines!==void 0)for(const k in x.defines)E.push(k),E.push(x.defines[k]);return x.isRawShaderMaterial===!1&&(v(E,x),S(E,x),E.push(r.outputColorSpace)),E.push(x.customProgramCacheKey),E.join()}function v(x,E){x.push(E.precision),x.push(E.outputColorSpace),x.push(E.envMapMode),x.push(E.envMapCubeUVHeight),x.push(E.mapUv),x.push(E.alphaMapUv),x.push(E.lightMapUv),x.push(E.aoMapUv),x.push(E.bumpMapUv),x.push(E.normalMapUv),x.push(E.displacementMapUv),x.push(E.emissiveMapUv),x.push(E.metalnessMapUv),x.push(E.roughnessMapUv),x.push(E.anisotropyMapUv),x.push(E.clearcoatMapUv),x.push(E.clearcoatNormalMapUv),x.push(E.clearcoatRoughnessMapUv),x.push(E.iridescenceMapUv),x.push(E.iridescenceThicknessMapUv),x.push(E.sheenColorMapUv),x.push(E.sheenRoughnessMapUv),x.push(E.specularMapUv),x.push(E.specularColorMapUv),x.push(E.specularIntensityMapUv),x.push(E.transmissionMapUv),x.push(E.thicknessMapUv),x.push(E.combine),x.push(E.fogExp2),x.push(E.sizeAttenuation),x.push(E.morphTargetsCount),x.push(E.morphAttributeCount),x.push(E.numDirLights),x.push(E.numPointLights),x.push(E.numSpotLights),x.push(E.numSpotLightMaps),x.push(E.numHemiLights),x.push(E.numRectAreaLights),x.push(E.numDirLightShadows),x.push(E.numPointLightShadows),x.push(E.numSpotLightShadows),x.push(E.numSpotLightShadowsWithMaps),x.push(E.numLightProbes),x.push(E.shadowMapType),x.push(E.toneMapping),x.push(E.numClippingPlanes),x.push(E.numClipIntersection),x.push(E.depthPacking)}function S(x,E){a.disableAll(),E.isWebGL2&&a.enable(0),E.supportsVertexTextures&&a.enable(1),E.instancing&&a.enable(2),E.instancingColor&&a.enable(3),E.matcap&&a.enable(4),E.envMap&&a.enable(5),E.normalMapObjectSpace&&a.enable(6),E.normalMapTangentSpace&&a.enable(7),E.clearcoat&&a.enable(8),E.iridescence&&a.enable(9),E.alphaTest&&a.enable(10),E.vertexColors&&a.enable(11),E.vertexAlphas&&a.enable(12),E.vertexUv1s&&a.enable(13),E.vertexUv2s&&a.enable(14),E.vertexUv3s&&a.enable(15),E.vertexTangents&&a.enable(16),E.anisotropy&&a.enable(17),E.alphaHash&&a.enable(18),E.batching&&a.enable(19),x.push(a.mask),a.disableAll(),E.fog&&a.enable(0),E.useFog&&a.enable(1),E.flatShading&&a.enable(2),E.logarithmicDepthBuffer&&a.enable(3),E.skinning&&a.enable(4),E.morphTargets&&a.enable(5),E.morphNormals&&a.enable(6),E.morphColors&&a.enable(7),E.premultipliedAlpha&&a.enable(8),E.shadowMapEnabled&&a.enable(9),E.useLegacyLights&&a.enable(10),E.doubleSided&&a.enable(11),E.flipSided&&a.enable(12),E.useDepthPacking&&a.enable(13),E.dithering&&a.enable(14),E.transmission&&a.enable(15),E.sheen&&a.enable(16),E.opaque&&a.enable(17),E.pointsUvs&&a.enable(18),E.decodeVideoTexture&&a.enable(19),E.alphaToCoverage&&a.enable(20),x.push(a.mask)}function w(x){const E=g[x.type];let k;if(E){const W=Cn[E];k=j0.clone(W.uniforms)}else k=x.uniforms;return k}function R(x,E){let k;for(let W=0,I=h.length;W0?n.push(m):d.transparent===!0?i.push(m):e.push(m)}function l(u,f,d,_,g,p){const m=o(u,f,d,_,g,p);d.transmission>0?n.unshift(m):d.transparent===!0?i.unshift(m):e.unshift(m)}function c(u,f){e.length>1&&e.sort(u||mS),n.length>1&&n.sort(f||Zu),i.length>1&&i.sort(f||Zu)}function h(){for(let u=t,f=r.length;u=s.length?(o=new Ku,s.push(o)):o=s[i],o}function e(){r=new WeakMap}return{get:t,dispose:e}}function gS(){const r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new D,color:new Nt};break;case"SpotLight":e={position:new D,direction:new D,color:new Nt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new D,color:new Nt,distance:0,decay:0};break;case"HemisphereLight":e={direction:new D,skyColor:new Nt,groundColor:new Nt};break;case"RectAreaLight":e={color:new Nt,position:new D,halfWidth:new D,halfHeight:new D};break}return r[t.id]=e,e}}}function vS(){const r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new it};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new it};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new it,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[t.id]=e,e}}}let xS=0;function yS(r,t){return(t.castShadow?2:0)-(r.castShadow?2:0)+(t.map?1:0)-(r.map?1:0)}function MS(r,t){const e=new gS,n=vS(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)i.probe.push(new D);const s=new D,o=new $t,a=new $t;function l(h,u){let f=0,d=0,_=0;for(let k=0;k<9;k++)i.probe[k].set(0,0,0);let g=0,p=0,m=0,y=0,v=0,S=0,w=0,R=0,b=0,U=0,F=0;h.sort(yS);const x=u===!0?Math.PI:1;for(let k=0,W=h.length;k0&&(t.isWebGL2?r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=ht.LTC_FLOAT_1,i.rectAreaLTC2=ht.LTC_FLOAT_2):(i.rectAreaLTC1=ht.LTC_HALF_1,i.rectAreaLTC2=ht.LTC_HALF_2):r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=ht.LTC_FLOAT_1,i.rectAreaLTC2=ht.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=ht.LTC_HALF_1,i.rectAreaLTC2=ht.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=f,i.ambient[1]=d,i.ambient[2]=_;const E=i.hash;(E.directionalLength!==g||E.pointLength!==p||E.spotLength!==m||E.rectAreaLength!==y||E.hemiLength!==v||E.numDirectionalShadows!==S||E.numPointShadows!==w||E.numSpotShadows!==R||E.numSpotMaps!==b||E.numLightProbes!==F)&&(i.directional.length=g,i.spot.length=m,i.rectArea.length=y,i.point.length=p,i.hemi.length=v,i.directionalShadow.length=S,i.directionalShadowMap.length=S,i.pointShadow.length=w,i.pointShadowMap.length=w,i.spotShadow.length=R,i.spotShadowMap.length=R,i.directionalShadowMatrix.length=S,i.pointShadowMatrix.length=w,i.spotLightMatrix.length=R+b-U,i.spotLightMap.length=b,i.numSpotLightShadowsWithMaps=U,i.numLightProbes=F,E.directionalLength=g,E.pointLength=p,E.spotLength=m,E.rectAreaLength=y,E.hemiLength=v,E.numDirectionalShadows=S,E.numPointShadows=w,E.numSpotShadows=R,E.numSpotMaps=b,E.numLightProbes=F,i.version=xS++)}function c(h,u){let f=0,d=0,_=0,g=0,p=0;const m=u.matrixWorldInverse;for(let y=0,v=h.length;y=a.length?(l=new Ju(r,t),a.push(l)):l=a[o],l}function i(){e=new WeakMap}return{get:n,dispose:i}}class bS extends Qn{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=a0,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class ES extends Qn{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const TS=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,AS=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function wS(r,t,e){let n=new Ic;const i=new it,s=new it,o=new se,a=new bS({depthPacking:o0}),l=new ES,c={},h=e.maxTextureSize,u={[bi]:Je,[Je]:bi,[bn]:bn},f=new Ti({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new it},radius:{value:4}},vertexShader:TS,fragmentShader:AS}),d=f.clone();d.defines.HORIZONTAL_PASS=1;const _=new Ne;_.setAttribute("position",new xn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const g=new Ye(_,f),p=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Fd;let m=this.type;this.render=function(R,b,U){if(p.enabled===!1||p.autoUpdate===!1&&p.needsUpdate===!1||R.length===0)return;const F=r.getRenderTarget(),x=r.getActiveCubeFace(),E=r.getActiveMipmapLevel(),k=r.state;k.setBlending(_i),k.buffers.color.setClear(1,1,1,1),k.buffers.depth.setTest(!0),k.setScissorTest(!1);const W=m!==Gn&&this.type===Gn,I=m===Gn&&this.type!==Gn;for(let O=0,N=R.length;Oh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/$.x),i.x=s.x*$.x,X.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/$.y),i.y=s.y*$.y,X.mapSize.y=s.y)),X.map===null||W===!0||I===!0){const J=this.type!==Gn?{minFilter:Pe,magFilter:Pe}:{};X.map!==null&&X.map.dispose(),X.map=new Zi(i.x,i.y,J),X.map.texture.name=Y.name+".shadowMap",X.camera.updateProjectionMatrix()}r.setRenderTarget(X.map),r.clear();const Z=X.getViewportCount();for(let J=0;J0||b.map&&b.alphaTest>0){const k=x.uuid,W=b.uuid;let I=c[k];I===void 0&&(I={},c[k]=I);let O=I[W];O===void 0&&(O=x.clone(),I[W]=O,b.addEventListener("dispose",w)),x=O}if(x.visible=b.visible,x.wireframe=b.wireframe,F===Gn?x.side=b.shadowSide!==null?b.shadowSide:b.side:x.side=b.shadowSide!==null?b.shadowSide:u[b.side],x.alphaMap=b.alphaMap,x.alphaTest=b.alphaTest,x.map=b.map,x.clipShadows=b.clipShadows,x.clippingPlanes=b.clippingPlanes,x.clipIntersection=b.clipIntersection,x.displacementMap=b.displacementMap,x.displacementScale=b.displacementScale,x.displacementBias=b.displacementBias,x.wireframeLinewidth=b.wireframeLinewidth,x.linewidth=b.linewidth,U.isPointLight===!0&&x.isMeshDistanceMaterial===!0){const k=r.properties.get(x);k.light=U}return x}function S(R,b,U,F,x){if(R.visible===!1)return;if(R.layers.test(b.layers)&&(R.isMesh||R.isLine||R.isPoints)&&(R.castShadow||R.receiveShadow&&x===Gn)&&(!R.frustumCulled||n.intersectsObject(R))){R.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,R.matrixWorld);const W=t.update(R),I=R.material;if(Array.isArray(I)){const O=W.groups;for(let N=0,Y=O.length;N=1):Z.indexOf("OpenGL ES")!==-1&&($=parseFloat(/^OpenGL ES (\d)/.exec(Z)[1]),X=$>=2);let J=null,ut={};const bt=r.getParameter(r.SCISSOR_BOX),V=r.getParameter(r.VIEWPORT),Q=new se().fromArray(bt),_t=new se().fromArray(V);function Mt(C,at,st,St){const Lt=new Uint8Array(4),Kt=r.createTexture();r.bindTexture(C,Kt),r.texParameteri(C,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(C,r.TEXTURE_MAG_FILTER,r.NEAREST);for(let Yt=0;Ytrt||T.height>rt)&&(et=rt/Math.max(T.width,T.height)),et<1||M===!0)if(typeof HTMLImageElement!="undefined"&&T instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&T instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&T instanceof ImageBitmap){const tt=M?eo:Math.floor,yt=tt(et*T.width),ft=tt(et*T.height);u===void 0&&(u=_(yt,ft));const gt=B?_(yt,ft):u;return gt.width=yt,gt.height=ft,gt.getContext("2d").drawImage(T,0,0,yt,ft),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+T.width+"x"+T.height+") to ("+yt+"x"+ft+")."),gt}else return"data"in T&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+T.width+"x"+T.height+")."),T;return T}function p(T){return jl(T.width)&&jl(T.height)}function m(T){return a?!1:T.wrapS!==En||T.wrapT!==En||T.minFilter!==Pe&&T.minFilter!==We}function y(T,M){return T.generateMipmaps&&M&&T.minFilter!==Pe&&T.minFilter!==We}function v(T){r.generateMipmap(T)}function S(T,M,B,rt,et=!1){if(a===!1)return M;if(T!==null){if(r[T]!==void 0)return r[T];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+T+"'")}let tt=M;if(M===r.RED&&(B===r.FLOAT&&(tt=r.R32F),B===r.HALF_FLOAT&&(tt=r.R16F),B===r.UNSIGNED_BYTE&&(tt=r.R8)),M===r.RED_INTEGER&&(B===r.UNSIGNED_BYTE&&(tt=r.R8UI),B===r.UNSIGNED_SHORT&&(tt=r.R16UI),B===r.UNSIGNED_INT&&(tt=r.R32UI),B===r.BYTE&&(tt=r.R8I),B===r.SHORT&&(tt=r.R16I),B===r.INT&&(tt=r.R32I)),M===r.RG&&(B===r.FLOAT&&(tt=r.RG32F),B===r.HALF_FLOAT&&(tt=r.RG16F),B===r.UNSIGNED_BYTE&&(tt=r.RG8)),M===r.RGBA){const yt=et?Ka:ee.getTransfer(rt);B===r.FLOAT&&(tt=r.RGBA32F),B===r.HALF_FLOAT&&(tt=r.RGBA16F),B===r.UNSIGNED_BYTE&&(tt=yt===oe?r.SRGB8_ALPHA8:r.RGBA8),B===r.UNSIGNED_SHORT_4_4_4_4&&(tt=r.RGBA4),B===r.UNSIGNED_SHORT_5_5_5_1&&(tt=r.RGB5_A1)}return(tt===r.R16F||tt===r.R32F||tt===r.RG16F||tt===r.RG32F||tt===r.RGBA16F||tt===r.RGBA32F)&&t.get("EXT_color_buffer_float"),tt}function w(T,M,B){return y(T,B)===!0||T.isFramebufferTexture&&T.minFilter!==Pe&&T.minFilter!==We?Math.log2(Math.max(M.width,M.height))+1:T.mipmaps!==void 0&&T.mipmaps.length>0?T.mipmaps.length:T.isCompressedTexture&&Array.isArray(T.image)?M.mipmaps.length:1}function R(T){return T===Pe||T===Nh||T===Qr?r.NEAREST:r.LINEAR}function b(T){const M=T.target;M.removeEventListener("dispose",b),F(M),M.isVideoTexture&&h.delete(M)}function U(T){const M=T.target;M.removeEventListener("dispose",U),E(M)}function F(T){const M=n.get(T);if(M.__webglInit===void 0)return;const B=T.source,rt=f.get(B);if(rt){const et=rt[M.__cacheKey];et.usedTimes--,et.usedTimes===0&&x(T),Object.keys(rt).length===0&&f.delete(B)}n.remove(T)}function x(T){const M=n.get(T);r.deleteTexture(M.__webglTexture);const B=T.source,rt=f.get(B);delete rt[M.__cacheKey],o.memory.textures--}function E(T){const M=T.texture,B=n.get(T),rt=n.get(M);if(rt.__webglTexture!==void 0&&(r.deleteTexture(rt.__webglTexture),o.memory.textures--),T.depthTexture&&T.depthTexture.dispose(),T.isWebGLCubeRenderTarget)for(let et=0;et<6;et++){if(Array.isArray(B.__webglFramebuffer[et]))for(let tt=0;tt=i.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+T+" texture units while this GPU supports only "+i.maxTextures),k+=1,T}function O(T){const M=[];return M.push(T.wrapS),M.push(T.wrapT),M.push(T.wrapR||0),M.push(T.magFilter),M.push(T.minFilter),M.push(T.anisotropy),M.push(T.internalFormat),M.push(T.format),M.push(T.type),M.push(T.generateMipmaps),M.push(T.premultiplyAlpha),M.push(T.flipY),M.push(T.unpackAlignment),M.push(T.colorSpace),M.join()}function N(T,M){const B=n.get(T);if(T.isVideoTexture&&Et(T),T.isRenderTargetTexture===!1&&T.version>0&&B.__version!==T.version){const rt=T.image;if(rt===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(rt.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Q(B,T,M);return}}e.bindTexture(r.TEXTURE_2D,B.__webglTexture,r.TEXTURE0+M)}function Y(T,M){const B=n.get(T);if(T.version>0&&B.__version!==T.version){Q(B,T,M);return}e.bindTexture(r.TEXTURE_2D_ARRAY,B.__webglTexture,r.TEXTURE0+M)}function X(T,M){const B=n.get(T);if(T.version>0&&B.__version!==T.version){Q(B,T,M);return}e.bindTexture(r.TEXTURE_3D,B.__webglTexture,r.TEXTURE0+M)}function $(T,M){const B=n.get(T);if(T.version>0&&B.__version!==T.version){_t(B,T,M);return}e.bindTexture(r.TEXTURE_CUBE_MAP,B.__webglTexture,r.TEXTURE0+M)}const Z={[$a]:r.REPEAT,[En]:r.CLAMP_TO_EDGE,[ql]:r.MIRRORED_REPEAT},J={[Pe]:r.NEAREST,[Nh]:r.NEAREST_MIPMAP_NEAREST,[Qr]:r.NEAREST_MIPMAP_LINEAR,[We]:r.LINEAR,[zo]:r.LINEAR_MIPMAP_NEAREST,[Vi]:r.LINEAR_MIPMAP_LINEAR},ut={[c0]:r.NEVER,[m0]:r.ALWAYS,[h0]:r.LESS,[Yd]:r.LEQUAL,[u0]:r.EQUAL,[p0]:r.GEQUAL,[f0]:r.GREATER,[d0]:r.NOTEQUAL};function bt(T,M,B){if(M.type===Ln&&t.has("OES_texture_float_linear")===!1&&(M.magFilter===We||M.magFilter===zo||M.magFilter===Qr||M.magFilter===Vi||M.minFilter===We||M.minFilter===zo||M.minFilter===Qr||M.minFilter===Vi)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),B?(r.texParameteri(T,r.TEXTURE_WRAP_S,Z[M.wrapS]),r.texParameteri(T,r.TEXTURE_WRAP_T,Z[M.wrapT]),(T===r.TEXTURE_3D||T===r.TEXTURE_2D_ARRAY)&&r.texParameteri(T,r.TEXTURE_WRAP_R,Z[M.wrapR]),r.texParameteri(T,r.TEXTURE_MAG_FILTER,J[M.magFilter]),r.texParameteri(T,r.TEXTURE_MIN_FILTER,J[M.minFilter])):(r.texParameteri(T,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(T,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),(T===r.TEXTURE_3D||T===r.TEXTURE_2D_ARRAY)&&r.texParameteri(T,r.TEXTURE_WRAP_R,r.CLAMP_TO_EDGE),(M.wrapS!==En||M.wrapT!==En)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(T,r.TEXTURE_MAG_FILTER,R(M.magFilter)),r.texParameteri(T,r.TEXTURE_MIN_FILTER,R(M.minFilter)),M.minFilter!==Pe&&M.minFilter!==We&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),M.compareFunction&&(r.texParameteri(T,r.TEXTURE_COMPARE_MODE,r.COMPARE_REF_TO_TEXTURE),r.texParameteri(T,r.TEXTURE_COMPARE_FUNC,ut[M.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){const rt=t.get("EXT_texture_filter_anisotropic");if(M.magFilter===Pe||M.minFilter!==Qr&&M.minFilter!==Vi||M.type===Ln&&t.has("OES_texture_float_linear")===!1||a===!1&&M.type===Ls&&t.has("OES_texture_half_float_linear")===!1)return;(M.anisotropy>1||n.get(M).__currentAnisotropy)&&(r.texParameterf(T,rt.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(M.anisotropy,i.getMaxAnisotropy())),n.get(M).__currentAnisotropy=M.anisotropy)}}function V(T,M){let B=!1;T.__webglInit===void 0&&(T.__webglInit=!0,M.addEventListener("dispose",b));const rt=M.source;let et=f.get(rt);et===void 0&&(et={},f.set(rt,et));const tt=O(M);if(tt!==T.__cacheKey){et[tt]===void 0&&(et[tt]={texture:r.createTexture(),usedTimes:0},o.memory.textures++,B=!0),et[tt].usedTimes++;const yt=et[T.__cacheKey];yt!==void 0&&(et[T.__cacheKey].usedTimes--,yt.usedTimes===0&&x(M)),T.__cacheKey=tt,T.__webglTexture=et[tt].texture}return B}function Q(T,M,B){let rt=r.TEXTURE_2D;(M.isDataArrayTexture||M.isCompressedArrayTexture)&&(rt=r.TEXTURE_2D_ARRAY),M.isData3DTexture&&(rt=r.TEXTURE_3D);const et=V(T,M),tt=M.source;e.bindTexture(rt,T.__webglTexture,r.TEXTURE0+B);const yt=n.get(tt);if(tt.version!==yt.__version||et===!0){e.activeTexture(r.TEXTURE0+B);const ft=ee.getPrimaries(ee.workingColorSpace),gt=M.colorSpace===mn?null:ee.getPrimaries(M.colorSpace),Pt=M.colorSpace===mn||ft===gt?r.NONE:r.BROWSER_DEFAULT_WEBGL;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,M.flipY),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,M.premultiplyAlpha),r.pixelStorei(r.UNPACK_ALIGNMENT,M.unpackAlignment),r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,Pt);const Ft=m(M)&&p(M.image)===!1;let nt=g(M.image,Ft,!1,i.maxTextureSize);nt=pt(M,nt);const Zt=p(nt)||a,Gt=s.convert(M.format,M.colorSpace);let It=s.convert(M.type),Rt=S(M.internalFormat,Gt,It,M.colorSpace,M.isVideoTexture);bt(rt,M,Zt);let mt;const kt=M.mipmaps,P=a&&M.isVideoTexture!==!0&&Rt!==Xd,lt=yt.__version===void 0||et===!0,dt=tt.dataReady,Ct=w(M,nt,Zt);if(M.isDepthTexture)Rt=r.DEPTH_COMPONENT,a?M.type===Ln?Rt=r.DEPTH_COMPONENT32F:M.type===fi?Rt=r.DEPTH_COMPONENT24:M.type===qi?Rt=r.DEPTH24_STENCIL8:Rt=r.DEPTH_COMPONENT16:M.type===Ln&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),M.format===Yi&&Rt===r.DEPTH_COMPONENT&&M.type!==wc&&M.type!==fi&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),M.type=fi,It=s.convert(M.type)),M.format===Vr&&Rt===r.DEPTH_COMPONENT&&(Rt=r.DEPTH_STENCIL,M.type!==qi&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),M.type=qi,It=s.convert(M.type))),lt&&(P?e.texStorage2D(r.TEXTURE_2D,1,Rt,nt.width,nt.height):e.texImage2D(r.TEXTURE_2D,0,Rt,nt.width,nt.height,0,Gt,It,null));else if(M.isDataTexture)if(kt.length>0&&Zt){P&<&&e.texStorage2D(r.TEXTURE_2D,Ct,Rt,kt[0].width,kt[0].height);for(let C=0,at=kt.length;C>=1,at>>=1}}else if(kt.length>0&&Zt){P&<&&e.texStorage2D(r.TEXTURE_2D,Ct,Rt,kt[0].width,kt[0].height);for(let C=0,at=kt.length;C0&&dt++,e.texStorage2D(r.TEXTURE_CUBE_MAP,dt,mt,nt[0].width,nt[0].height));for(let C=0;C<6;C++)if(Ft){kt?lt&&e.texSubImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+C,0,0,0,nt[C].width,nt[C].height,It,Rt,nt[C].data):e.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+C,0,mt,nt[C].width,nt[C].height,0,It,Rt,nt[C].data);for(let at=0;at>tt),nt=Math.max(1,M.height>>tt);et===r.TEXTURE_3D||et===r.TEXTURE_2D_ARRAY?e.texImage3D(et,tt,gt,Ft,nt,M.depth,0,yt,ft,null):e.texImage2D(et,tt,gt,Ft,nt,0,yt,ft,null)}e.bindFramebuffer(r.FRAMEBUFFER,T),K(M)?l.framebufferTexture2DMultisampleEXT(r.FRAMEBUFFER,rt,et,n.get(B).__webglTexture,0,ot(M)):(et===r.TEXTURE_2D||et>=r.TEXTURE_CUBE_MAP_POSITIVE_X&&et<=r.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&r.framebufferTexture2D(r.FRAMEBUFFER,rt,et,n.get(B).__webglTexture,tt),e.bindFramebuffer(r.FRAMEBUFFER,null)}function Tt(T,M,B){if(r.bindRenderbuffer(r.RENDERBUFFER,T),M.depthBuffer&&!M.stencilBuffer){let rt=a===!0?r.DEPTH_COMPONENT24:r.DEPTH_COMPONENT16;if(B||K(M)){const et=M.depthTexture;et&&et.isDepthTexture&&(et.type===Ln?rt=r.DEPTH_COMPONENT32F:et.type===fi&&(rt=r.DEPTH_COMPONENT24));const tt=ot(M);K(M)?l.renderbufferStorageMultisampleEXT(r.RENDERBUFFER,tt,rt,M.width,M.height):r.renderbufferStorageMultisample(r.RENDERBUFFER,tt,rt,M.width,M.height)}else r.renderbufferStorage(r.RENDERBUFFER,rt,M.width,M.height);r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,T)}else if(M.depthBuffer&&M.stencilBuffer){const rt=ot(M);B&&K(M)===!1?r.renderbufferStorageMultisample(r.RENDERBUFFER,rt,r.DEPTH24_STENCIL8,M.width,M.height):K(M)?l.renderbufferStorageMultisampleEXT(r.RENDERBUFFER,rt,r.DEPTH24_STENCIL8,M.width,M.height):r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,M.width,M.height),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,T)}else{const rt=M.isWebGLMultipleRenderTargets===!0?M.texture:[M.texture];for(let et=0;et0){B.__webglFramebuffer[ft]=[];for(let gt=0;gt0){B.__webglFramebuffer=[];for(let ft=0;ft0&&K(T)===!1){const ft=tt?M:[M];B.__webglMultisampledFramebuffer=r.createFramebuffer(),B.__webglColorRenderbuffer=[],e.bindFramebuffer(r.FRAMEBUFFER,B.__webglMultisampledFramebuffer);for(let gt=0;gt0)for(let gt=0;gt0)for(let gt=0;gt0&&K(T)===!1){const M=T.isWebGLMultipleRenderTargets?T.texture:[T.texture],B=T.width,rt=T.height;let et=r.COLOR_BUFFER_BIT;const tt=[],yt=T.stencilBuffer?r.DEPTH_STENCIL_ATTACHMENT:r.DEPTH_ATTACHMENT,ft=n.get(T),gt=T.isWebGLMultipleRenderTargets===!0;if(gt)for(let Pt=0;Pt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&M.__useRenderToTexture!==!1}function Et(T){const M=o.render.frame;h.get(T)!==M&&(h.set(T,M),T.update())}function pt(T,M){const B=T.colorSpace,rt=T.format,et=T.type;return T.isCompressedTexture===!0||T.isVideoTexture===!0||T.format===$l||B!==Kn&&B!==mn&&(ee.getTransfer(B)===oe?a===!1?t.has("EXT_sRGB")===!0&&rt===pn?(T.format=$l,T.minFilter=We,T.generateMipmaps=!1):M=jd.sRGBToLinear(M):(rt!==pn||et!==vi)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",B)),M}this.allocateTextureUnit=I,this.resetTextureUnits=W,this.setTexture2D=N,this.setTexture2DArray=Y,this.setTexture3D=X,this.setTextureCube=$,this.rebindTextures=wt,this.setupRenderTarget=L,this.updateRenderTargetMipmap=ct,this.updateMultisampleRenderTarget=j,this.setupDepthRenderbuffer=Ot,this.setupFrameBufferTexture=Mt,this.useMultisampledRTT=K}function PS(r,t,e){const n=e.isWebGL2;function i(s,o=mn){let a;const l=ee.getTransfer(o);if(s===vi)return r.UNSIGNED_BYTE;if(s===kd)return r.UNSIGNED_SHORT_4_4_4_4;if(s===Vd)return r.UNSIGNED_SHORT_5_5_5_1;if(s===Kg)return r.BYTE;if(s===Jg)return r.SHORT;if(s===wc)return r.UNSIGNED_SHORT;if(s===zd)return r.INT;if(s===fi)return r.UNSIGNED_INT;if(s===Ln)return r.FLOAT;if(s===Ls)return n?r.HALF_FLOAT:(a=t.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===Qg)return r.ALPHA;if(s===pn)return r.RGBA;if(s===t0)return r.LUMINANCE;if(s===e0)return r.LUMINANCE_ALPHA;if(s===Yi)return r.DEPTH_COMPONENT;if(s===Vr)return r.DEPTH_STENCIL;if(s===$l)return a=t.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===n0)return r.RED;if(s===Hd)return r.RED_INTEGER;if(s===i0)return r.RG;if(s===Gd)return r.RG_INTEGER;if(s===Wd)return r.RGBA_INTEGER;if(s===ko||s===Vo||s===Ho||s===Go)if(l===oe)if(a=t.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===ko)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Vo)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Ho)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===Go)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=t.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===ko)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Vo)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Ho)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===Go)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Oh||s===Fh||s===Bh||s===zh)if(a=t.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===Oh)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Fh)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Bh)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===zh)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===Xd)return a=t.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===kh||s===Vh)if(a=t.get("WEBGL_compressed_texture_etc"),a!==null){if(s===kh)return l===oe?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Vh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Hh||s===Gh||s===Wh||s===Xh||s===qh||s===Yh||s===$h||s===jh||s===Zh||s===Kh||s===Jh||s===Qh||s===tu||s===eu)if(a=t.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Hh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Gh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Wh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===Xh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===qh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Yh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===$h)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===jh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===Zh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Kh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===Jh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===Qh)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===tu)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===eu)return l===oe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Wo||s===nu||s===iu)if(a=t.get("EXT_texture_compression_bptc"),a!==null){if(s===Wo)return l===oe?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===nu)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===iu)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===r0||s===ru||s===su||s===au)if(a=t.get("EXT_texture_compression_rgtc"),a!==null){if(s===Wo)return a.COMPRESSED_RED_RGTC1_EXT;if(s===ru)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===su)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===au)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===qi?n?r.UNSIGNED_INT_24_8:(a=t.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}class LS extends Xe{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}}class ps extends _e{constructor(){super(),this.isGroup=!0,this.type="Group"}}const DS={type:"move"};class pl{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ps,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ps,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new D,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new D),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ps,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new D,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new D),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,o=null;const a=this._targetRay,l=this._grip,c=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(c&&t.hand){o=!0;for(const g of t.hand.values()){const p=e.getJointPose(g,n),m=this._getHandJoint(c,g);p!==null&&(m.matrix.fromArray(p.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.matrixWorldNeedsUpdate=!0,m.jointRadius=p.radius),m.visible=p!==null}const h=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],f=h.position.distanceTo(u.position),d=.02,_=.005;c.inputState.pinching&&f>d+_?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&f<=d-_&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else l!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(i=e.getPose(t.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(DS)))}return a!==null&&(a.visible=i!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=o!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){const n=new ps;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const IS=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,US=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class NS{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const i=new Ue,s=t.properties.get(i);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,i=new Ti({extensions:{fragDepth:!0},vertexShader:IS,fragmentShader:US,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ye(new ks(20,20),i)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class OS extends Qi{constructor(t,e){super();const n=this;let i=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,f=null,d=null,_=null;const g=new NS,p=e.getContextAttributes();let m=null,y=null;const v=[],S=[],w=new it;let R=null;const b=new Xe;b.layers.enable(1),b.viewport=new se;const U=new Xe;U.layers.enable(2),U.viewport=new se;const F=[b,U],x=new LS;x.layers.enable(1),x.layers.enable(2);let E=null,k=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(V){let Q=v[V];return Q===void 0&&(Q=new pl,v[V]=Q),Q.getTargetRaySpace()},this.getControllerGrip=function(V){let Q=v[V];return Q===void 0&&(Q=new pl,v[V]=Q),Q.getGripSpace()},this.getHand=function(V){let Q=v[V];return Q===void 0&&(Q=new pl,v[V]=Q),Q.getHandSpace()};function W(V){const Q=S.indexOf(V.inputSource);if(Q===-1)return;const _t=v[Q];_t!==void 0&&(_t.update(V.inputSource,V.frame,c||o),_t.dispatchEvent({type:V.type,data:V.inputSource}))}function I(){i.removeEventListener("select",W),i.removeEventListener("selectstart",W),i.removeEventListener("selectend",W),i.removeEventListener("squeeze",W),i.removeEventListener("squeezestart",W),i.removeEventListener("squeezeend",W),i.removeEventListener("end",I),i.removeEventListener("inputsourceschange",O);for(let V=0;V=0&&(S[Mt]=null,v[Mt].disconnect(_t))}for(let Q=0;Q=S.length){S.push(_t),Mt=xt;break}else if(S[xt]===null){S[xt]=_t,Mt=xt;break}if(Mt===-1)break}const Tt=v[Mt];Tt&&Tt.connect(_t)}}const N=new D,Y=new D;function X(V,Q,_t){N.setFromMatrixPosition(Q.matrixWorld),Y.setFromMatrixPosition(_t.matrixWorld);const Mt=N.distanceTo(Y),Tt=Q.projectionMatrix.elements,xt=_t.projectionMatrix.elements,Ot=Tt[14]/(Tt[10]-1),wt=Tt[14]/(Tt[10]+1),L=(Tt[9]+1)/Tt[5],ct=(Tt[9]-1)/Tt[5],j=(Tt[8]-1)/Tt[0],ot=(xt[8]+1)/xt[0],K=Ot*j,Et=Ot*ot,pt=Mt/(-j+ot),T=pt*-j;Q.matrixWorld.decompose(V.position,V.quaternion,V.scale),V.translateX(T),V.translateZ(pt),V.matrixWorld.compose(V.position,V.quaternion,V.scale),V.matrixWorldInverse.copy(V.matrixWorld).invert();const M=Ot+pt,B=wt+pt,rt=K-T,et=Et+(Mt-T),tt=L*wt/B*M,yt=ct*wt/B*M;V.projectionMatrix.makePerspective(rt,et,tt,yt,M,B),V.projectionMatrixInverse.copy(V.projectionMatrix).invert()}function $(V,Q){Q===null?V.matrixWorld.copy(V.matrix):V.matrixWorld.multiplyMatrices(Q.matrixWorld,V.matrix),V.matrixWorldInverse.copy(V.matrixWorld).invert()}this.updateCamera=function(V){if(i===null)return;g.texture!==null&&(V.near=g.depthNear,V.far=g.depthFar),x.near=U.near=b.near=V.near,x.far=U.far=b.far=V.far,(E!==x.near||k!==x.far)&&(i.updateRenderState({depthNear:x.near,depthFar:x.far}),E=x.near,k=x.far,b.near=E,b.far=k,U.near=E,U.far=k,b.updateProjectionMatrix(),U.updateProjectionMatrix(),V.updateProjectionMatrix());const Q=V.parent,_t=x.cameras;$(x,Q);for(let Mt=0;Mt<_t.length;Mt++)$(_t[Mt],Q);_t.length===2?X(x,b,U):x.projectionMatrix.copy(b.projectionMatrix),Z(V,x,Q)};function Z(V,Q,_t){_t===null?V.matrix.copy(Q.matrixWorld):(V.matrix.copy(_t.matrixWorld),V.matrix.invert(),V.matrix.multiply(Q.matrixWorld)),V.matrix.decompose(V.position,V.quaternion,V.scale),V.updateMatrixWorld(!0),V.projectionMatrix.copy(Q.projectionMatrix),V.projectionMatrixInverse.copy(Q.projectionMatrixInverse),V.isPerspectiveCamera&&(V.fov=Hr*2*Math.atan(1/V.projectionMatrix.elements[5]),V.zoom=1)}this.getCamera=function(){return x},this.getFoveation=function(){if(!(f===null&&d===null))return l},this.setFoveation=function(V){l=V,f!==null&&(f.fixedFoveation=V),d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=V)},this.hasDepthSensing=function(){return g.texture!==null};let J=null;function ut(V,Q){if(h=Q.getViewerPose(c||o),_=Q,h!==null){const _t=h.views;d!==null&&(t.setRenderTargetFramebuffer(y,d.framebuffer),t.setRenderTarget(y));let Mt=!1;_t.length!==x.cameras.length&&(x.cameras.length=0,Mt=!0);for(let xt=0;xt<_t.length;xt++){const Ot=_t[xt];let wt=null;if(d!==null)wt=d.getViewport(Ot);else{const ct=u.getViewSubImage(f,Ot);wt=ct.viewport,xt===0&&(t.setRenderTargetTextures(y,ct.colorTexture,f.ignoreDepthValues?void 0:ct.depthStencilTexture),t.setRenderTarget(y))}let L=F[xt];L===void 0&&(L=new Xe,L.layers.enable(xt),L.viewport=new se,F[xt]=L),L.matrix.fromArray(Ot.transform.matrix),L.matrix.decompose(L.position,L.quaternion,L.scale),L.projectionMatrix.fromArray(Ot.projectionMatrix),L.projectionMatrixInverse.copy(L.projectionMatrix).invert(),L.viewport.set(wt.x,wt.y,wt.width,wt.height),xt===0&&(x.matrix.copy(L.matrix),x.matrix.decompose(x.position,x.quaternion,x.scale)),Mt===!0&&x.cameras.push(L)}const Tt=i.enabledFeatures;if(Tt&&Tt.includes("depth-sensing")){const xt=u.getDepthInformation(_t[0]);xt&&xt.isValid&&xt.texture&&g.init(t,xt,i.renderState)}}for(let _t=0;_t0&&(p.alphaTest.value=m.alphaTest);const y=t.get(m).envMap;if(y&&(p.envMap.value=y,p.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=m.reflectivity,p.ior.value=m.ior,p.refractionRatio.value=m.refractionRatio),m.lightMap){p.lightMap.value=m.lightMap;const v=r._useLegacyLights===!0?Math.PI:1;p.lightMapIntensity.value=m.lightMapIntensity*v,e(m.lightMap,p.lightMapTransform)}m.aoMap&&(p.aoMap.value=m.aoMap,p.aoMapIntensity.value=m.aoMapIntensity,e(m.aoMap,p.aoMapTransform))}function o(p,m){p.diffuse.value.copy(m.color),p.opacity.value=m.opacity,m.map&&(p.map.value=m.map,e(m.map,p.mapTransform))}function a(p,m){p.dashSize.value=m.dashSize,p.totalSize.value=m.dashSize+m.gapSize,p.scale.value=m.scale}function l(p,m,y,v){p.diffuse.value.copy(m.color),p.opacity.value=m.opacity,p.size.value=m.size*y,p.scale.value=v*.5,m.map&&(p.map.value=m.map,e(m.map,p.uvTransform)),m.alphaMap&&(p.alphaMap.value=m.alphaMap,e(m.alphaMap,p.alphaMapTransform)),m.alphaTest>0&&(p.alphaTest.value=m.alphaTest)}function c(p,m){p.diffuse.value.copy(m.color),p.opacity.value=m.opacity,p.rotation.value=m.rotation,m.map&&(p.map.value=m.map,e(m.map,p.mapTransform)),m.alphaMap&&(p.alphaMap.value=m.alphaMap,e(m.alphaMap,p.alphaMapTransform)),m.alphaTest>0&&(p.alphaTest.value=m.alphaTest)}function h(p,m){p.specular.value.copy(m.specular),p.shininess.value=Math.max(m.shininess,1e-4)}function u(p,m){m.gradientMap&&(p.gradientMap.value=m.gradientMap)}function f(p,m){p.metalness.value=m.metalness,m.metalnessMap&&(p.metalnessMap.value=m.metalnessMap,e(m.metalnessMap,p.metalnessMapTransform)),p.roughness.value=m.roughness,m.roughnessMap&&(p.roughnessMap.value=m.roughnessMap,e(m.roughnessMap,p.roughnessMapTransform)),t.get(m).envMap&&(p.envMapIntensity.value=m.envMapIntensity)}function d(p,m,y){p.ior.value=m.ior,m.sheen>0&&(p.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),p.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(p.sheenColorMap.value=m.sheenColorMap,e(m.sheenColorMap,p.sheenColorMapTransform)),m.sheenRoughnessMap&&(p.sheenRoughnessMap.value=m.sheenRoughnessMap,e(m.sheenRoughnessMap,p.sheenRoughnessMapTransform))),m.clearcoat>0&&(p.clearcoat.value=m.clearcoat,p.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(p.clearcoatMap.value=m.clearcoatMap,e(m.clearcoatMap,p.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,e(m.clearcoatRoughnessMap,p.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(p.clearcoatNormalMap.value=m.clearcoatNormalMap,e(m.clearcoatNormalMap,p.clearcoatNormalMapTransform),p.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),m.side===Je&&p.clearcoatNormalScale.value.negate())),m.iridescence>0&&(p.iridescence.value=m.iridescence,p.iridescenceIOR.value=m.iridescenceIOR,p.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(p.iridescenceMap.value=m.iridescenceMap,e(m.iridescenceMap,p.iridescenceMapTransform)),m.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=m.iridescenceThicknessMap,e(m.iridescenceThicknessMap,p.iridescenceThicknessMapTransform))),m.transmission>0&&(p.transmission.value=m.transmission,p.transmissionSamplerMap.value=y.texture,p.transmissionSamplerSize.value.set(y.width,y.height),m.transmissionMap&&(p.transmissionMap.value=m.transmissionMap,e(m.transmissionMap,p.transmissionMapTransform)),p.thickness.value=m.thickness,m.thicknessMap&&(p.thicknessMap.value=m.thicknessMap,e(m.thicknessMap,p.thicknessMapTransform)),p.attenuationDistance.value=m.attenuationDistance,p.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(p.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(p.anisotropyMap.value=m.anisotropyMap,e(m.anisotropyMap,p.anisotropyMapTransform))),p.specularIntensity.value=m.specularIntensity,p.specularColor.value.copy(m.specularColor),m.specularColorMap&&(p.specularColorMap.value=m.specularColorMap,e(m.specularColorMap,p.specularColorMapTransform)),m.specularIntensityMap&&(p.specularIntensityMap.value=m.specularIntensityMap,e(m.specularIntensityMap,p.specularIntensityMapTransform))}function _(p,m){m.matcap&&(p.matcap.value=m.matcap)}function g(p,m){const y=t.get(m).light;p.referencePosition.value.setFromMatrixPosition(y.matrixWorld),p.nearDistance.value=y.shadow.camera.near,p.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:i}}function BS(r,t,e,n){let i={},s={},o=[];const a=e.isWebGL2?r.getParameter(r.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(y,v){const S=v.program;n.uniformBlockBinding(y,S)}function c(y,v){let S=i[y.id];S===void 0&&(_(y),S=h(y),i[y.id]=S,y.addEventListener("dispose",p));const w=v.program;n.updateUBOMapping(y,w);const R=t.render.frame;s[y.id]!==R&&(f(y),s[y.id]=R)}function h(y){const v=u();y.__bindingPointIndex=v;const S=r.createBuffer(),w=y.__size,R=y.usage;return r.bindBuffer(r.UNIFORM_BUFFER,S),r.bufferData(r.UNIFORM_BUFFER,w,R),r.bindBuffer(r.UNIFORM_BUFFER,null),r.bindBufferBase(r.UNIFORM_BUFFER,v,S),S}function u(){for(let y=0;y0&&(S+=w-R),y.__size=S,y.__cache={},this}function g(y){const v={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(v.boundary=4,v.storage=4):y.isVector2?(v.boundary=8,v.storage=8):y.isVector3||y.isColor?(v.boundary=16,v.storage=12):y.isVector4?(v.boundary=16,v.storage=16):y.isMatrix3?(v.boundary=48,v.storage=48):y.isMatrix4?(v.boundary=64,v.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),v}function p(y){const v=y.target;v.removeEventListener("dispose",p);const S=o.indexOf(v.__bindingPointIndex);o.splice(S,1),r.deleteBuffer(i[v.id]),delete i[v.id],delete s[v.id]}function m(){for(const y in i)r.deleteBuffer(i[y]);o=[],i={},s={}}return{bind:l,update:c,dispose:m}}class fp{constructor(t={}){const{canvas:e=L0(),context:n=null,depth:i=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let f;n!==null?f=n.getContextAttributes().alpha:f=o;const d=new Uint32Array(4),_=new Int32Array(4);let g=null,p=null;const m=[],y=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Le,this._useLegacyLights=!1,this.toneMapping=gi,this.toneMappingExposure=1;const v=this;let S=!1,w=0,R=0,b=null,U=-1,F=null;const x=new se,E=new se;let k=null;const W=new Nt(0);let I=0,O=e.width,N=e.height,Y=1,X=null,$=null;const Z=new se(0,0,O,N),J=new se(0,0,O,N);let ut=!1;const bt=new Ic;let V=!1,Q=!1,_t=null;const Mt=new $t,Tt=new it,xt=new D,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function wt(){return b===null?Y:1}let L=n;function ct(A,z){for(let G=0;G{function vt(){if(q.forEach(function(At){pt.get(At).currentProgram.isReady()&&q.delete(At)}),q.size===0){H(A);return}setTimeout(vt,10)}j.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let Yt=null;function ne(A){Yt&&Yt(A)}function Ce(){ve.stop()}function Jt(){ve.start()}const ve=new rp;ve.setAnimationLoop(ne),typeof self!="undefined"&&ve.setContext(self),this.setAnimationLoop=function(A){Yt=A,dt.setAnimationLoop(A),A===null?ve.stop():ve.start()},dt.addEventListener("sessionstart",Ce),dt.addEventListener("sessionend",Jt),this.render=function(A,z){if(z!==void 0&&z.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(S===!0)return;A.matrixWorldAutoUpdate===!0&&A.updateMatrixWorld(),z.parent===null&&z.matrixWorldAutoUpdate===!0&&z.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(z),z=dt.getCamera()),A.isScene===!0&&A.onBeforeRender(v,A,z,b),p=Pt.get(A,y.length),p.init(),y.push(p),Mt.multiplyMatrices(z.projectionMatrix,z.matrixWorldInverse),bt.setFromProjectionMatrix(Mt),Q=this.localClippingEnabled,V=Ft.init(this.clippingPlanes,Q),g=gt.get(A,m.length),g.init(),m.push(g),Ve(A,z,0,v.sortObjects),g.finish(),v.sortObjects===!0&&g.sort(X,$),this.info.render.frame++,V===!0&&Ft.beginShadows();const G=p.state.shadowsArray;if(nt.render(G,A,z),V===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&Zt.render(g,A),p.setupLights(v._useLegacyLights),z.isArrayCamera){const q=z.cameras;for(let H=0,vt=q.length;H0?p=y[y.length-1]:p=null,m.pop(),m.length>0?g=m[m.length-1]:g=null};function Ve(A,z,G,q){if(A.visible===!1)return;if(A.layers.test(z.layers)){if(A.isGroup)G=A.renderOrder;else if(A.isLOD)A.autoUpdate===!0&&A.update(z);else if(A.isLight)p.pushLight(A),A.castShadow&&p.pushShadow(A);else if(A.isSprite){if(!A.frustumCulled||bt.intersectsSprite(A)){q&&xt.setFromMatrixPosition(A.matrixWorld).applyMatrix4(Mt);const At=tt.update(A),Dt=A.material;Dt.visible&&g.push(A,At,Dt,G,xt.z,null)}}else if((A.isMesh||A.isLine||A.isPoints)&&(!A.frustumCulled||bt.intersectsObject(A))){const At=tt.update(A),Dt=A.material;if(q&&(A.boundingSphere!==void 0?(A.boundingSphere===null&&A.computeBoundingSphere(),xt.copy(A.boundingSphere.center)):(At.boundingSphere===null&&At.computeBoundingSphere(),xt.copy(At.boundingSphere.center)),xt.applyMatrix4(A.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Ut=At.groups;for(let Wt=0,zt=Ut.length;Wt0&&zp(H,vt,z,G),q&&K.viewport(x.copy(q)),H.length>0&&Ws(H,z,G),vt.length>0&&Ws(vt,z,G),At.length>0&&Ws(At,z,G),K.buffers.depth.setTest(!0),K.buffers.depth.setMask(!0),K.buffers.color.setMask(!0),K.setPolygonOffset(!1)}function zp(A,z,G,q){if((G.isScene===!0?G.overrideMaterial:null)!==null)return;const vt=ot.isWebGL2;_t===null&&(_t=new Zi(1,1,{generateMipmaps:!0,type:j.has("EXT_color_buffer_half_float")?Ls:vi,minFilter:Vi,samples:vt?4:0})),v.getDrawingBufferSize(Tt),vt?_t.setSize(Tt.x,Tt.y):_t.setSize(eo(Tt.x),eo(Tt.y));const At=v.getRenderTarget();v.setRenderTarget(_t),v.getClearColor(W),I=v.getClearAlpha(),I<1&&v.setClearColor(16777215,.5),v.clear();const Dt=v.toneMapping;v.toneMapping=gi,Ws(A,G,q),T.updateMultisampleRenderTarget(_t),T.updateRenderTargetMipmap(_t);let Ut=!1;for(let Wt=0,zt=z.length;Wt0),Vt=!!G.morphAttributes.position,xe=!!G.morphAttributes.normal,tn=!!G.morphAttributes.color;let Ae=gi;q.toneMapped&&(b===null||b.isXRRenderTarget===!0)&&(Ae=v.toneMapping);const On=G.morphAttributes.position||G.morphAttributes.normal||G.morphAttributes.color,ce=On!==void 0?On.length:0,Xt=pt.get(q),So=p.state.lights;if(V===!0&&(Q===!0||A!==F)){const un=A===F&&q.id===U;Ft.setState(q,A,un)}let pe=!1;q.version===Xt.__version?(Xt.needsLights&&Xt.lightsStateVersion!==So.state.version||Xt.outputColorSpace!==Dt||H.isBatchedMesh&&Xt.batching===!1||!H.isBatchedMesh&&Xt.batching===!0||H.isInstancedMesh&&Xt.instancing===!1||!H.isInstancedMesh&&Xt.instancing===!0||H.isSkinnedMesh&&Xt.skinning===!1||!H.isSkinnedMesh&&Xt.skinning===!0||H.isInstancedMesh&&Xt.instancingColor===!0&&H.instanceColor===null||H.isInstancedMesh&&Xt.instancingColor===!1&&H.instanceColor!==null||Xt.envMap!==Ut||q.fog===!0&&Xt.fog!==vt||Xt.numClippingPlanes!==void 0&&(Xt.numClippingPlanes!==Ft.numPlanes||Xt.numIntersection!==Ft.numIntersection)||Xt.vertexAlphas!==Wt||Xt.vertexTangents!==zt||Xt.morphTargets!==Vt||Xt.morphNormals!==xe||Xt.morphColors!==tn||Xt.toneMapping!==Ae||ot.isWebGL2===!0&&Xt.morphTargetsCount!==ce)&&(pe=!0):(pe=!0,Xt.__version=q.version);let Ri=Xt.currentProgram;pe===!0&&(Ri=Xs(q,z,H));let Kc=!1,$r=!1,bo=!1;const Oe=Ri.getUniforms(),Ci=Xt.uniforms;if(K.useProgram(Ri.program)&&(Kc=!0,$r=!0,bo=!0),q.id!==U&&(U=q.id,$r=!0),Kc||F!==A){Oe.setValue(L,"projectionMatrix",A.projectionMatrix),Oe.setValue(L,"viewMatrix",A.matrixWorldInverse);const un=Oe.map.cameraPosition;un!==void 0&&un.setValue(L,xt.setFromMatrixPosition(A.matrixWorld)),ot.logarithmicDepthBuffer&&Oe.setValue(L,"logDepthBufFC",2/(Math.log(A.far+1)/Math.LN2)),(q.isMeshPhongMaterial||q.isMeshToonMaterial||q.isMeshLambertMaterial||q.isMeshBasicMaterial||q.isMeshStandardMaterial||q.isShaderMaterial)&&Oe.setValue(L,"isOrthographic",A.isOrthographicCamera===!0),F!==A&&(F=A,$r=!0,bo=!0)}if(H.isSkinnedMesh){Oe.setOptional(L,H,"bindMatrix"),Oe.setOptional(L,H,"bindMatrixInverse");const un=H.skeleton;un&&(ot.floatVertexTextures?(un.boneTexture===null&&un.computeBoneTexture(),Oe.setValue(L,"boneTexture",un.boneTexture,T)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}H.isBatchedMesh&&(Oe.setOptional(L,H,"batchingTexture"),Oe.setValue(L,"batchingTexture",H._matricesTexture,T));const Eo=G.morphAttributes;if((Eo.position!==void 0||Eo.normal!==void 0||Eo.color!==void 0&&ot.isWebGL2===!0)&&Gt.update(H,G,Ri),($r||Xt.receiveShadow!==H.receiveShadow)&&(Xt.receiveShadow=H.receiveShadow,Oe.setValue(L,"receiveShadow",H.receiveShadow)),q.isMeshGouraudMaterial&&q.envMap!==null&&(Ci.envMap.value=Ut,Ci.flipEnvMap.value=Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1?-1:1),$r&&(Oe.setValue(L,"toneMappingExposure",v.toneMappingExposure),Xt.needsLights&&Vp(Ci,bo),vt&&q.fog===!0&&ft.refreshFogUniforms(Ci,vt),ft.refreshMaterialUniforms(Ci,q,Y,N,_t),Ba.upload(L,jc(Xt),Ci,T)),q.isShaderMaterial&&q.uniformsNeedUpdate===!0&&(Ba.upload(L,jc(Xt),Ci,T),q.uniformsNeedUpdate=!1),q.isSpriteMaterial&&Oe.setValue(L,"center",H.center),Oe.setValue(L,"modelViewMatrix",H.modelViewMatrix),Oe.setValue(L,"normalMatrix",H.normalMatrix),Oe.setValue(L,"modelMatrix",H.matrixWorld),q.isShaderMaterial||q.isRawShaderMaterial){const un=q.uniformsGroups;for(let To=0,Gp=un.length;To0&&T.useMultisampledRTT(A)===!1?H=pt.get(A).__webglMultisampledFramebuffer:Array.isArray(zt)?H=zt[G]:H=zt,x.copy(A.viewport),E.copy(A.scissor),k=A.scissorTest}else x.copy(Z).multiplyScalar(Y).floor(),E.copy(J).multiplyScalar(Y).floor(),k=ut;if(K.bindFramebuffer(L.FRAMEBUFFER,H)&&ot.drawBuffers&&q&&K.drawBuffers(A,H),K.viewport(x),K.scissor(E),K.setScissorTest(k),vt){const Ut=pt.get(A.texture);L.framebufferTexture2D(L.FRAMEBUFFER,L.COLOR_ATTACHMENT0,L.TEXTURE_CUBE_MAP_POSITIVE_X+z,Ut.__webglTexture,G)}else if(At){const Ut=pt.get(A.texture),Wt=z||0;L.framebufferTextureLayer(L.FRAMEBUFFER,L.COLOR_ATTACHMENT0,Ut.__webglTexture,G||0,Wt)}U=-1},this.readRenderTargetPixels=function(A,z,G,q,H,vt,At){if(!(A&&A.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=pt.get(A).__webglFramebuffer;if(A.isWebGLCubeRenderTarget&&At!==void 0&&(Dt=Dt[At]),Dt){K.bindFramebuffer(L.FRAMEBUFFER,Dt);try{const Ut=A.texture,Wt=Ut.format,zt=Ut.type;if(Wt!==pn&&mt.convert(Wt)!==L.getParameter(L.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Vt=zt===Ls&&(j.has("EXT_color_buffer_half_float")||ot.isWebGL2&&j.has("EXT_color_buffer_float"));if(zt!==vi&&mt.convert(zt)!==L.getParameter(L.IMPLEMENTATION_COLOR_READ_TYPE)&&!(zt===Ln&&(ot.isWebGL2||j.has("OES_texture_float")||j.has("WEBGL_color_buffer_float")))&&!Vt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}z>=0&&z<=A.width-q&&G>=0&&G<=A.height-H&&L.readPixels(z,G,q,H,mt.convert(Wt),mt.convert(zt),vt)}finally{const Ut=b!==null?pt.get(b).__webglFramebuffer:null;K.bindFramebuffer(L.FRAMEBUFFER,Ut)}}},this.copyFramebufferToTexture=function(A,z,G=0){const q=Math.pow(2,-G),H=Math.floor(z.image.width*q),vt=Math.floor(z.image.height*q);T.setTexture2D(z,0),L.copyTexSubImage2D(L.TEXTURE_2D,G,0,0,A.x,A.y,H,vt),K.unbindTexture()},this.copyTextureToTexture=function(A,z,G,q=0){const H=z.image.width,vt=z.image.height,At=mt.convert(G.format),Dt=mt.convert(G.type);T.setTexture2D(G,0),L.pixelStorei(L.UNPACK_FLIP_Y_WEBGL,G.flipY),L.pixelStorei(L.UNPACK_PREMULTIPLY_ALPHA_WEBGL,G.premultiplyAlpha),L.pixelStorei(L.UNPACK_ALIGNMENT,G.unpackAlignment),z.isDataTexture?L.texSubImage2D(L.TEXTURE_2D,q,A.x,A.y,H,vt,At,Dt,z.image.data):z.isCompressedTexture?L.compressedTexSubImage2D(L.TEXTURE_2D,q,A.x,A.y,z.mipmaps[0].width,z.mipmaps[0].height,At,z.mipmaps[0].data):L.texSubImage2D(L.TEXTURE_2D,q,A.x,A.y,At,Dt,z.image),q===0&&G.generateMipmaps&&L.generateMipmap(L.TEXTURE_2D),K.unbindTexture()},this.copyTextureToTexture3D=function(A,z,G,q,H=0){if(v.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=A.max.x-A.min.x+1,At=A.max.y-A.min.y+1,Dt=A.max.z-A.min.z+1,Ut=mt.convert(q.format),Wt=mt.convert(q.type);let zt;if(q.isData3DTexture)T.setTexture3D(q,0),zt=L.TEXTURE_3D;else if(q.isDataArrayTexture||q.isCompressedArrayTexture)T.setTexture2DArray(q,0),zt=L.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}L.pixelStorei(L.UNPACK_FLIP_Y_WEBGL,q.flipY),L.pixelStorei(L.UNPACK_PREMULTIPLY_ALPHA_WEBGL,q.premultiplyAlpha),L.pixelStorei(L.UNPACK_ALIGNMENT,q.unpackAlignment);const Vt=L.getParameter(L.UNPACK_ROW_LENGTH),xe=L.getParameter(L.UNPACK_IMAGE_HEIGHT),tn=L.getParameter(L.UNPACK_SKIP_PIXELS),Ae=L.getParameter(L.UNPACK_SKIP_ROWS),On=L.getParameter(L.UNPACK_SKIP_IMAGES),ce=G.isCompressedTexture?G.mipmaps[H]:G.image;L.pixelStorei(L.UNPACK_ROW_LENGTH,ce.width),L.pixelStorei(L.UNPACK_IMAGE_HEIGHT,ce.height),L.pixelStorei(L.UNPACK_SKIP_PIXELS,A.min.x),L.pixelStorei(L.UNPACK_SKIP_ROWS,A.min.y),L.pixelStorei(L.UNPACK_SKIP_IMAGES,A.min.z),G.isDataTexture||G.isData3DTexture?L.texSubImage3D(zt,H,z.x,z.y,z.z,vt,At,Dt,Ut,Wt,ce.data):G.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),L.compressedTexSubImage3D(zt,H,z.x,z.y,z.z,vt,At,Dt,Ut,ce.data)):L.texSubImage3D(zt,H,z.x,z.y,z.z,vt,At,Dt,Ut,Wt,ce),L.pixelStorei(L.UNPACK_ROW_LENGTH,Vt),L.pixelStorei(L.UNPACK_IMAGE_HEIGHT,xe),L.pixelStorei(L.UNPACK_SKIP_PIXELS,tn),L.pixelStorei(L.UNPACK_SKIP_ROWS,Ae),L.pixelStorei(L.UNPACK_SKIP_IMAGES,On),H===0&&q.generateMipmaps&&L.generateMipmap(zt),K.unbindTexture()},this.initTexture=function(A){A.isCubeTexture?T.setTextureCube(A,0):A.isData3DTexture?T.setTexture3D(A,0):A.isDataArrayTexture||A.isCompressedArrayTexture?T.setTexture2DArray(A,0):T.setTexture2D(A,0),K.unbindTexture()},this.resetState=function(){w=0,R=0,b=null,K.reset(),kt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Yn}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===Cc?"display-p3":"srgb",e.unpackColorSpace=ee.workingColorSpace===ho?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Le?$i:qd}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===$i?Le:Kn}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class zS extends fp{}zS.prototype.isWebGL1Renderer=!0;class dp{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Nt(t),this.near=e,this.far=n}clone(){return new dp(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class kS extends _e{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class pp{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=Yl,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=vn()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return ji("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,s=this.stride;it.far||e.push({distance:l,point:rs.clone(),uv:An.getInterpolation(rs,ya,as,Ma,Qu,ml,tf,new it),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function Sa(r,t,e,n,i,s){Sr.subVectors(r,e).addScalar(.5).multiply(n),i!==void 0?(ss.x=s*Sr.x-i*Sr.y,ss.y=i*Sr.x+s*Sr.y):ss.copy(Sr),r.copy(t),r.x+=ss.x,r.y+=ss.y,r.applyMatrix4(mp)}const ef=new D,nf=new se,rf=new se,HS=new D,sf=new $t,ba=new D,_l=new Jn,af=new $t,gl=new Wr;class PE extends Ye{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=Uh,this.bindMatrix=new $t,this.bindMatrixInverse=new $t,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wi),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;f.applyMatrix4(this.matrixWorld);const U=t.ray.origin.distanceTo(f);Ut.far||e.push({distance:U,point:u.clone().applyMatrix4(this.matrixWorld),index:v,face:null,faceIndex:null,object:this})}}else{const m=Math.max(0,o.start),y=Math.min(p.count,o.start+o.count);for(let v=m,S=y-1;vl)continue;f.applyMatrix4(this.matrixWorld);const R=t.ray.origin.distanceTo(f);Rt.far||e.push({distance:R,point:u.clone().applyMatrix4(this.matrixWorld),index:v,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;s0){const i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;si.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class UE extends Ue{constructor(t,e,n,i,s,o,a,l,c){super(t,e,n,i,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Un{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(i),e.push(s),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(i=Math.floor(a+(l-a)/2),c=n[i]-o,c<0)a=i+1;else if(c>0)l=i-1;else{l=i;break}if(i=l,n[i]===o)return i/(s-1);const h=n[i],f=n[i+1]-h,d=(o-h)/f;return(i+d)/(s-1)}getTangent(t,e){let i=t-1e-4,s=t+1e-4;i<0&&(i=0),s>1&&(s=1);const o=this.getPoint(i),a=this.getPoint(s),l=e||(o.isVector2?new it:new D);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new D,i=[],s=[],o=[],a=new D,l=new $t;for(let d=0;d<=t;d++){const _=d/t;i[d]=this.getTangentAt(_,new D)}s[0]=new D,o[0]=new D;let c=Number.MAX_VALUE;const h=Math.abs(i[0].x),u=Math.abs(i[0].y),f=Math.abs(i[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),f<=c&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),s[0].crossVectors(i[0],a),o[0].crossVectors(i[0],s[0]);for(let d=1;d<=t;d++){if(s[d]=s[d-1].clone(),o[d]=o[d-1].clone(),a.crossVectors(i[d-1],i[d]),a.length()>Number.EPSILON){a.normalize();const _=Math.acos(be(i[d-1].dot(i[d]),-1,1));s[d].applyMatrix4(l.makeRotationAxis(a,_))}o[d].crossVectors(i[d],s[d])}if(e===!0){let d=Math.acos(be(s[0].dot(s[t]),-1,1));d/=t,i[0].dot(a.crossVectors(s[0],s[t]))>0&&(d=-d);for(let _=1;_<=t;_++)s[_].applyMatrix4(l.makeRotationAxis(i[_],d*_)),o[_].crossVectors(i[_],s[_])}return{tangents:i,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Oc extends Un{constructor(t=0,e=0,n=1,i=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new it,i=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)i;)s-=i;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=i[(a-1)%s]:(Ra.subVectors(i[0],i[1]).add(i[0]),c=Ra);const u=i[a%s],f=i[(a+1)%s];if(this.closed||a+2i.length-2?i.length-1:o+1],u=i[o>i.length-3?i.length-1:o+2];return n.set(vf(a,l.x,c.x,h.x,u.x),vf(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=i[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Ss extends xf{constructor(t){super(t),this.uuid=vn(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n80*e){a=c=r[0],l=h=r[1];for(let _=e;_c&&(c=u),f>h&&(h=f);d=Math.max(c-a,h-l),d=d!==0?32767/d:0}return Is(s,o,e,a,l,d,0),o}};function Ep(r,t,e,n,i){let s,o;if(i===Sb(r,t,e,n)>0)for(s=t;s=t;s-=n)o=yf(s,r[s],r[s+1],o);return o&&po(o,o.next)&&(Ns(o),o=o.next),o}function Ki(r,t){if(!r)return r;t||(t=r);let e=r,n;do if(n=!1,!e.steiner&&(po(e,e.next)||de(e.prev,e,e.next)===0)){if(Ns(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Is(r,t,e,n,i,s,o){if(!r)return;!o&&s&&_b(r,n,i,s);let a=r,l,c;for(;r.prev!==r.next;){if(l=r.prev,c=r.next,s?lb(r,n,i,s):ob(r)){t.push(l.i/e|0),t.push(r.i/e|0),t.push(c.i/e|0),Ns(r),r=c.next,a=c.next;continue}if(r=c,r===a){o?o===1?(r=cb(Ki(r),t,e),Is(r,t,e,n,i,s,2)):o===2&&hb(r,t,e,n,i,s):Is(Ki(r),t,e,n,i,s,1);break}}}function ob(r){const t=r.prev,e=r,n=r.next;if(de(t,e,n)>=0)return!1;const i=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=is?i>o?i:o:s>o?s:o,d=a>l?a>c?a:c:l>c?l:c;let _=n.next;for(;_!==t;){if(_.x>=h&&_.x<=f&&_.y>=u&&_.y<=d&&Rr(i,a,s,l,o,c,_.x,_.y)&&de(_.prev,_,_.next)>=0)return!1;_=_.next}return!0}function lb(r,t,e,n){const i=r.prev,s=r,o=r.next;if(de(i,s,o)>=0)return!1;const a=i.x,l=s.x,c=o.x,h=i.y,u=s.y,f=o.y,d=al?a>c?a:c:l>c?l:c,p=h>u?h>f?h:f:u>f?u:f,m=Jl(d,_,t,e,n),y=Jl(g,p,t,e,n);let v=r.prevZ,S=r.nextZ;for(;v&&v.z>=m&&S&&S.z<=y;){if(v.x>=d&&v.x<=g&&v.y>=_&&v.y<=p&&v!==i&&v!==o&&Rr(a,h,l,u,c,f,v.x,v.y)&&de(v.prev,v,v.next)>=0||(v=v.prevZ,S.x>=d&&S.x<=g&&S.y>=_&&S.y<=p&&S!==i&&S!==o&&Rr(a,h,l,u,c,f,S.x,S.y)&&de(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;v&&v.z>=m;){if(v.x>=d&&v.x<=g&&v.y>=_&&v.y<=p&&v!==i&&v!==o&&Rr(a,h,l,u,c,f,v.x,v.y)&&de(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;S&&S.z<=y;){if(S.x>=d&&S.x<=g&&S.y>=_&&S.y<=p&&S!==i&&S!==o&&Rr(a,h,l,u,c,f,S.x,S.y)&&de(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function cb(r,t,e){let n=r;do{const i=n.prev,s=n.next.next;!po(i,s)&&Tp(i,n,n.next,s)&&Us(i,s)&&Us(s,i)&&(t.push(i.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ns(n),Ns(n.next),n=r=s),n=n.next}while(n!==r);return Ki(n)}function hb(r,t,e,n,i,s){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&xb(o,a)){let l=Ap(o,a);o=Ki(o,o.next),l=Ki(l,l.next),Is(o,t,e,n,i,s,0),Is(l,t,e,n,i,s,0);return}a=a.next}o=o.next}while(o!==r)}function ub(r,t,e,n){const i=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const f=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(f<=s&&f>n&&(n=f,i=e.x=e.x&&e.x>=l&&s!==e.x&&Rr(oi.x||e.x===i.x&&mb(i,e)))&&(i=e,h=u)),e=e.next;while(e!==a);return i}function mb(r,t){return de(r.prev,r,t.prev)<0&&de(t.next,r,r.next)<0}function _b(r,t,e,n){let i=r;do i.z===0&&(i.z=Jl(i.x,i.y,t,e,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==r);i.prevZ.nextZ=null,i.prevZ=null,gb(i)}function gb(r){let t,e,n,i,s,o,a,l,c=1;do{for(e=r,r=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(i=e,e=e.nextZ,a--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:r=i,i.prevZ=s,s=i;e=n}s.nextZ=null,c*=2}while(o>1);return r}function Jl(r,t,e,n,i){return r=(r-e)*i|0,t=(t-n)*i|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,r|t<<1}function vb(r){let t=r,e=r;do(t.x=(r-o)*(s-a)&&(r-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(i-o)*(n-a)}function xb(r,t){return r.next.i!==t.i&&r.prev.i!==t.i&&!yb(r,t)&&(Us(r,t)&&Us(t,r)&&Mb(r,t)&&(de(r.prev,r,t.prev)||de(r,t.prev,t))||po(r,t)&&de(r.prev,r,r.next)>0&&de(t.prev,t,t.next)>0)}function de(r,t,e){return(t.y-r.y)*(e.x-t.x)-(t.x-r.x)*(e.y-t.y)}function po(r,t){return r.x===t.x&&r.y===t.y}function Tp(r,t,e,n){const i=Pa(de(r,t,e)),s=Pa(de(r,t,n)),o=Pa(de(e,n,r)),a=Pa(de(e,n,t));return!!(i!==s&&o!==a||i===0&&Ca(r,e,t)||s===0&&Ca(r,n,t)||o===0&&Ca(e,r,n)||a===0&&Ca(e,t,n))}function Ca(r,t,e){return t.x<=Math.max(r.x,e.x)&&t.x>=Math.min(r.x,e.x)&&t.y<=Math.max(r.y,e.y)&&t.y>=Math.min(r.y,e.y)}function Pa(r){return r>0?1:r<0?-1:0}function yb(r,t){let e=r;do{if(e.i!==r.i&&e.next.i!==r.i&&e.i!==t.i&&e.next.i!==t.i&&Tp(e,e.next,r,t))return!0;e=e.next}while(e!==r);return!1}function Us(r,t){return de(r.prev,r,r.next)<0?de(r,t,r.next)>=0&&de(r,r.prev,t)>=0:de(r,t,r.prev)<0||de(r,r.next,t)<0}function Mb(r,t){let e=r,n=!1;const i=(r.x+t.x)/2,s=(r.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&i<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==r);return n}function Ap(r,t){const e=new Ql(r.i,r.x,r.y),n=new Ql(t.i,t.x,t.y),i=r.next,s=t.prev;return r.next=t,t.prev=r,e.next=i,i.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function yf(r,t,e,n){const i=new Ql(r,t,e);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Ns(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function Ql(r,t,e){this.i=r,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Sb(r,t,e,n){let i=0;for(let s=t,o=e-n;s2&&r[t-1].equals(r[0])&&r.pop()}function Sf(r,t){for(let e=0;eNumber.EPSILON){const tt=Math.sqrt(rt),yt=Math.sqrt(M*M+B*B),ft=ct.x-T/tt,gt=ct.y+pt/tt,Pt=j.x-B/yt,Ft=j.y+M/yt,nt=((Pt-ft)*B-(Ft-gt)*M)/(pt*B-T*M);ot=ft+pt*nt-L.x,K=gt+T*nt-L.y;const Zt=ot*ot+K*K;if(Zt<=2)return new it(ot,K);Et=Math.sqrt(Zt/2)}else{let tt=!1;pt>Number.EPSILON?M>Number.EPSILON&&(tt=!0):pt<-Number.EPSILON?M<-Number.EPSILON&&(tt=!0):Math.sign(T)===Math.sign(B)&&(tt=!0),tt?(ot=-T,K=pt,Et=Math.sqrt(rt)):(ot=pt,K=T,Et=Math.sqrt(rt/2))}return new it(ot/Et,K/Et)}const $=[];for(let L=0,ct=I.length,j=ct-1,ot=L+1;L=0;L--){const ct=L/p,j=d*Math.cos(ct*Math.PI/2),ot=_*Math.sin(ct*Math.PI/2)+g;for(let K=0,Et=I.length;K=0;){const ot=j;let K=j-1;K<0&&(K=L.length-1);for(let Et=0,pt=h+p*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class wb extends Qn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Nt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Rc,this.normalScale=new it(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ac,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function La(r,t,e){return!r||!e&&r.constructor===t?r:typeof t.BYTES_PER_ELEMENT=="number"?new t(r):Array.prototype.slice.call(r)}function Rb(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function Cb(r){function t(i,s){return r[i]-r[s]}const e=r.length,n=new Array(e);for(let i=0;i!==e;++i)n[i]=i;return n.sort(t),n}function Ef(r,t,e){const n=r.length,i=new r.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)i[o++]=r[a+l]}return i}function Cp(r,t,e,n){let i=1,s=r[0];for(;s!==void 0&&s[n]===void 0;)s=r[i++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=r[i++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=r[i++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=r[i++];while(s!==void 0)}class mo{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==i){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(i!==void 0&&Rb(i))for(let a=0,l=i.length;a!==l;++a){const c=i[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===Xo,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}}Nn.prototype.TimeBufferType=Float32Array;Nn.prototype.ValueBufferType=Float32Array;Nn.prototype.DefaultInterpolation=Za;class qr extends Nn{}qr.prototype.ValueTypeName="bool";qr.prototype.ValueBufferType=Array;qr.prototype.DefaultInterpolation=ja;qr.prototype.InterpolantFactoryMethodLinear=void 0;qr.prototype.InterpolantFactoryMethodSmooth=void 0;class Pp extends Nn{}Pp.prototype.ValueTypeName="color";class ro extends Nn{}ro.prototype.ValueTypeName="number";class Ib extends mo{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(i-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Ei.slerpFlat(s,0,o,c-a,o,c,l);return s}}class Vs extends Nn{InterpolantFactoryMethodLinear(t){return new Ib(this.times,this.values,this.getValueSize(),t)}}Vs.prototype.ValueTypeName="quaternion";Vs.prototype.DefaultInterpolation=Za;Vs.prototype.InterpolantFactoryMethodSmooth=void 0;class Yr extends Nn{}Yr.prototype.ValueTypeName="string";Yr.prototype.ValueBufferType=Array;Yr.prototype.DefaultInterpolation=ja;Yr.prototype.InterpolantFactoryMethodLinear=void 0;Yr.prototype.InterpolantFactoryMethodSmooth=void 0;class so extends Nn{}so.prototype.ValueTypeName="vector";class FE{constructor(t,e=-1,n,i=s0){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=vn(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(Nb(n[o]).scale(i));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Nn.toJSON(n[s]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let f=i[u];f||(i[u]=f=[]),f.push(c)}}const o=[];for(const a in i)o.push(this.CreateFromMorphTargetSequence(a,i[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,f,d,_,g){if(d.length!==0){const p=[],m=[];Cp(d,p,m,_),p.length!==0&&g.push(new u(f,p,m))}},i=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(Hn[t]!==void 0){Hn[t].push({onLoad:e,onProgress:n,onError:i});return}Hn[t]=[],Hn[t].push({onLoad:e,onProgress:n,onError:i});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=Hn[t],u=c.body.getReader(),f=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),d=f?parseInt(f):0,_=d!==0;let g=0;const p=new ReadableStream({start(m){y();function y(){u.read().then(({done:v,value:S})=>{if(v)m.close();else{g+=S.byteLength;const w=new ProgressEvent("progress",{lengthComputable:_,loaded:g,total:d});for(let R=0,b=h.length;R{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),f=u&&u[1]?u[1].toLowerCase():void 0,d=new TextDecoder(f);return c.arrayBuffer().then(_=>d.decode(_))}}}).then(c=>{di.add(t,c);const h=Hn[t];delete Hn[t];for(let u=0,f=h.length;u{const h=Hn[t];if(h===void 0)throw this.manager.itemError(t),c;delete Hn[t];for(let u=0,f=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class zb extends Hs{constructor(t){super(t)}load(t,e,n,i){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=di.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=Ds("img");function l(){h(),di.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),i&&i(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class kb extends Hs{constructor(t){super(t)}load(t,e,n,i){const s=new Ue,o=new zb(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,i),s}}class _o extends _e{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Nt(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const Sl=new $t,Tf=new D,Af=new D;class zc{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new it(512,512),this.map=null,this.mapPass=null,this.matrix=new $t,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Ic,this._frameExtents=new it(1,1),this._viewportCount=1,this._viewports=[new se(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Tf.setFromMatrixPosition(t.matrixWorld),e.position.copy(Tf),Af.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Af),e.updateMatrixWorld(),Sl.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Sl),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(Sl)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class Vb extends zc{constructor(){super(new Xe(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Hr*2*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||i!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=i,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class zE extends _o{constructor(t,e,n=0,i=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(_e.DEFAULT_UP),this.updateMatrix(),this.target=new _e,this.distance=n,this.angle=i,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new Vb}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const wf=new $t,cs=new D,bl=new D;class Hb extends zc{constructor(){super(new Xe(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new it(4,2),this._viewportCount=6,this._viewports=[new se(2,1,1,1),new se(0,1,1,1),new se(3,1,1,1),new se(1,1,1,1),new se(3,0,1,1),new se(1,0,1,1)],this._cubeDirections=[new D(1,0,0),new D(-1,0,0),new D(0,0,1),new D(0,0,-1),new D(0,1,0),new D(0,-1,0)],this._cubeUps=[new D(0,1,0),new D(0,1,0),new D(0,1,0),new D(0,1,0),new D(0,0,1),new D(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),cs.setFromMatrixPosition(t.matrixWorld),n.position.copy(cs),bl.copy(n.position),bl.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(bl),n.updateMatrixWorld(),i.makeTranslation(-cs.x,-cs.y,-cs.z),wf.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(wf)}}class kE extends _o{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new Hb}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class Gb extends zc{constructor(){super(new sp(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Rf extends _o{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(_e.DEFAULT_UP),this.updateMatrix(),this.target=new _e,this.shadow=new Gb}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class Wb extends _o{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class VE{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,i=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{i&&i(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return di.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){i&&i(c),di.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});di.add(t,l),s.manager.itemStart(t)}}class WE{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Cf(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Cf();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Cf(){return(typeof performance=="undefined"?Date:performance).now()}const kc="\\[\\]\\.:\\/",Xb=new RegExp("["+kc+"]","g"),Vc="[^"+kc+"]",qb="[^"+kc.replace("\\.","")+"]",Yb=/((?:WC+[\/:])*)/.source.replace("WC",Vc),$b=/(WCOD+)?/.source.replace("WCOD",qb),jb=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Vc),Zb=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Vc),Kb=new RegExp("^"+Yb+$b+jb+Zb+"$"),Jb=["material","materials","bones","map"];class Qb{constructor(t,e,n){const i=n||te.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class te{constructor(t,e,n){this.path=e,this.parsedPath=n||te.parseTrackName(e),this.node=te.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new te.Composite(t,e,n):new te(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Xb,"")}static parseTrackName(t){const e=Kb.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const s=n.nodeName.substring(i+1);Jb.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(Yt-=st),ne<-Math.PI?ne+=st:ne>Math.PI&&(ne-=st),Yt<=ne?a.theta=Math.max(Yt,Math.min(ne,a.theta)):a.theta=a.theta>(Yt+ne)/2?Math.max(Yt,a.theta):Math.min(ne,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&R||n.object.isOrthographicCamera?a.radius=Z(a.radius):a.radius=Z(a.radius*c),P.setFromSpherical(a),P.applyQuaternion(dt),Kt.copy(n.target).add(P),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let Ce=!1;if(n.zoomToCursor&&R){let Jt=null;if(n.object.isPerspectiveCamera){const ve=P.length();Jt=Z(ve*c);const Ve=ve-Jt;n.object.position.addScaledVector(S,Ve),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const ve=new D(w.x,w.y,0);ve.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),Ce=!0;const Ve=new D(w.x,w.y,0);Ve.unproject(n.object),n.object.position.sub(Ve).add(ve),n.object.updateMatrixWorld(),Jt=P.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Jt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Jt).add(n.object.position):(Ia.origin.copy(n.object.position),Ia.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Ia.direction))o||8*(1-C.dot(n.object.quaternion))>o||at.distanceToSquared(n.target)>0?(n.dispatchEvent(If),Ct.copy(n.object.position),C.copy(n.object.quaternion),at.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",Zt),n.domElement.removeEventListener("pointerdown",T),n.domElement.removeEventListener("pointercancel",B),n.domElement.removeEventListener("wheel",tt),n.domElement.removeEventListener("pointermove",M),n.domElement.removeEventListener("pointerup",B),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Pt),n._domElementKeyEvents=null)};const n=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=i.NONE;const o=1e-6,a=new Lf,l=new Lf;let c=1;const h=new D,u=new it,f=new it,d=new it,_=new it,g=new it,p=new it,m=new it,y=new it,v=new it,S=new D,w=new it;let R=!1;const b=[],U={};let F=!1;function x(P){return P!==null?2*Math.PI/60*n.autoRotateSpeed*P:2*Math.PI/60/60*n.autoRotateSpeed}function E(P){const lt=Math.abs(P*.01);return Math.pow(.95,n.zoomSpeed*lt)}function k(P){l.theta-=P}function W(P){l.phi-=P}const I=function(){const P=new D;return function(dt,Ct){P.setFromMatrixColumn(Ct,0),P.multiplyScalar(-dt),h.add(P)}}(),O=function(){const P=new D;return function(dt,Ct){n.screenSpacePanning===!0?P.setFromMatrixColumn(Ct,1):(P.setFromMatrixColumn(Ct,0),P.crossVectors(n.object.up,P)),P.multiplyScalar(dt),h.add(P)}}(),N=function(){const P=new D;return function(dt,Ct){const C=n.domElement;if(n.object.isPerspectiveCamera){const at=n.object.position;P.copy(at).sub(n.target);let st=P.length();st*=Math.tan(n.object.fov/2*Math.PI/180),I(2*dt*st/C.clientHeight,n.object.matrix),O(2*Ct*st/C.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(I(dt*(n.object.right-n.object.left)/n.object.zoom/C.clientWidth,n.object.matrix),O(Ct*(n.object.top-n.object.bottom)/n.object.zoom/C.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(P){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=P:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(P){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=P:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function $(P,lt){if(!n.zoomToCursor)return;R=!0;const dt=n.domElement.getBoundingClientRect(),Ct=P-dt.left,C=lt-dt.top,at=dt.width,st=dt.height;w.x=Ct/at*2-1,w.y=-(C/st)*2+1,S.set(w.x,w.y,1).unproject(n.object).sub(n.object.position).normalize()}function Z(P){return Math.max(n.minDistance,Math.min(n.maxDistance,P))}function J(P){u.set(P.clientX,P.clientY)}function ut(P){$(P.clientX,P.clientX),m.set(P.clientX,P.clientY)}function bt(P){_.set(P.clientX,P.clientY)}function V(P){f.set(P.clientX,P.clientY),d.subVectors(f,u).multiplyScalar(n.rotateSpeed);const lt=n.domElement;k(2*Math.PI*d.x/lt.clientHeight),W(2*Math.PI*d.y/lt.clientHeight),u.copy(f),n.update()}function Q(P){y.set(P.clientX,P.clientY),v.subVectors(y,m),v.y>0?Y(E(v.y)):v.y<0&&X(E(v.y)),m.copy(y),n.update()}function _t(P){g.set(P.clientX,P.clientY),p.subVectors(g,_).multiplyScalar(n.panSpeed),N(p.x,p.y),_.copy(g),n.update()}function Mt(P){$(P.clientX,P.clientY),P.deltaY<0?X(E(P.deltaY)):P.deltaY>0&&Y(E(P.deltaY)),n.update()}function Tt(P){let lt=!1;switch(P.code){case n.keys.UP:P.ctrlKey||P.metaKey||P.shiftKey?W(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(0,n.keyPanSpeed),lt=!0;break;case n.keys.BOTTOM:P.ctrlKey||P.metaKey||P.shiftKey?W(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(0,-n.keyPanSpeed),lt=!0;break;case n.keys.LEFT:P.ctrlKey||P.metaKey||P.shiftKey?k(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(n.keyPanSpeed,0),lt=!0;break;case n.keys.RIGHT:P.ctrlKey||P.metaKey||P.shiftKey?k(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):N(-n.keyPanSpeed,0),lt=!0;break}lt&&(P.preventDefault(),n.update())}function xt(P){if(b.length===1)u.set(P.pageX,P.pageY);else{const lt=mt(P),dt=.5*(P.pageX+lt.x),Ct=.5*(P.pageY+lt.y);u.set(dt,Ct)}}function Ot(P){if(b.length===1)_.set(P.pageX,P.pageY);else{const lt=mt(P),dt=.5*(P.pageX+lt.x),Ct=.5*(P.pageY+lt.y);_.set(dt,Ct)}}function wt(P){const lt=mt(P),dt=P.pageX-lt.x,Ct=P.pageY-lt.y,C=Math.sqrt(dt*dt+Ct*Ct);m.set(0,C)}function L(P){n.enableZoom&&wt(P),n.enablePan&&Ot(P)}function ct(P){n.enableZoom&&wt(P),n.enableRotate&&xt(P)}function j(P){if(b.length==1)f.set(P.pageX,P.pageY);else{const dt=mt(P),Ct=.5*(P.pageX+dt.x),C=.5*(P.pageY+dt.y);f.set(Ct,C)}d.subVectors(f,u).multiplyScalar(n.rotateSpeed);const lt=n.domElement;k(2*Math.PI*d.x/lt.clientHeight),W(2*Math.PI*d.y/lt.clientHeight),u.copy(f)}function ot(P){if(b.length===1)g.set(P.pageX,P.pageY);else{const lt=mt(P),dt=.5*(P.pageX+lt.x),Ct=.5*(P.pageY+lt.y);g.set(dt,Ct)}p.subVectors(g,_).multiplyScalar(n.panSpeed),N(p.x,p.y),_.copy(g)}function K(P){const lt=mt(P),dt=P.pageX-lt.x,Ct=P.pageY-lt.y,C=Math.sqrt(dt*dt+Ct*Ct);y.set(0,C),v.set(0,Math.pow(y.y/m.y,n.zoomSpeed)),Y(v.y),m.copy(y);const at=(P.pageX+lt.x)*.5,st=(P.pageY+lt.y)*.5;$(at,st)}function Et(P){n.enableZoom&&K(P),n.enablePan&&ot(P)}function pt(P){n.enableZoom&&K(P),n.enableRotate&&j(P)}function T(P){n.enabled!==!1&&(b.length===0&&(n.domElement.setPointerCapture(P.pointerId),n.domElement.addEventListener("pointermove",M),n.domElement.addEventListener("pointerup",B)),Gt(P),P.pointerType==="touch"?Ft(P):rt(P))}function M(P){n.enabled!==!1&&(P.pointerType==="touch"?nt(P):et(P))}function B(P){switch(It(P),b.length){case 0:n.domElement.releasePointerCapture(P.pointerId),n.domElement.removeEventListener("pointermove",M),n.domElement.removeEventListener("pointerup",B),n.dispatchEvent(Uf),s=i.NONE;break;case 1:const lt=b[0],dt=U[lt];Ft({pointerId:lt,pageX:dt.x,pageY:dt.y});break}}function rt(P){let lt;switch(P.button){case 0:lt=n.mouseButtons.LEFT;break;case 1:lt=n.mouseButtons.MIDDLE;break;case 2:lt=n.mouseButtons.RIGHT;break;default:lt=-1}switch(lt){case er.DOLLY:if(n.enableZoom===!1)return;ut(P),s=i.DOLLY;break;case er.ROTATE:if(P.ctrlKey||P.metaKey||P.shiftKey){if(n.enablePan===!1)return;bt(P),s=i.PAN}else{if(n.enableRotate===!1)return;J(P),s=i.ROTATE}break;case er.PAN:if(P.ctrlKey||P.metaKey||P.shiftKey){if(n.enableRotate===!1)return;J(P),s=i.ROTATE}else{if(n.enablePan===!1)return;bt(P),s=i.PAN}break;default:s=i.NONE}s!==i.NONE&&n.dispatchEvent(El)}function et(P){switch(s){case i.ROTATE:if(n.enableRotate===!1)return;V(P);break;case i.DOLLY:if(n.enableZoom===!1)return;Q(P);break;case i.PAN:if(n.enablePan===!1)return;_t(P);break}}function tt(P){n.enabled===!1||n.enableZoom===!1||s!==i.NONE||(P.preventDefault(),n.dispatchEvent(El),Mt(yt(P)),n.dispatchEvent(Uf))}function yt(P){const lt=P.deltaMode,dt={clientX:P.clientX,clientY:P.clientY,deltaY:P.deltaY};switch(lt){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return P.ctrlKey&&!F&&(dt.deltaY*=10),dt}function ft(P){P.key==="Control"&&(F=!0,n.domElement.getRootNode().addEventListener("keyup",gt,{passive:!0,capture:!0}))}function gt(P){P.key==="Control"&&(F=!1,n.domElement.getRootNode().removeEventListener("keyup",gt,{passive:!0,capture:!0}))}function Pt(P){n.enabled===!1||n.enablePan===!1||Tt(P)}function Ft(P){switch(Rt(P),b.length){case 1:switch(n.touches.ONE){case nr.ROTATE:if(n.enableRotate===!1)return;xt(P),s=i.TOUCH_ROTATE;break;case nr.PAN:if(n.enablePan===!1)return;Ot(P),s=i.TOUCH_PAN;break;default:s=i.NONE}break;case 2:switch(n.touches.TWO){case nr.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;L(P),s=i.TOUCH_DOLLY_PAN;break;case nr.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(P),s=i.TOUCH_DOLLY_ROTATE;break;default:s=i.NONE}break;default:s=i.NONE}s!==i.NONE&&n.dispatchEvent(El)}function nt(P){switch(Rt(P),s){case i.TOUCH_ROTATE:if(n.enableRotate===!1)return;j(P),n.update();break;case i.TOUCH_PAN:if(n.enablePan===!1)return;ot(P),n.update();break;case i.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(P),n.update();break;case i.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;pt(P),n.update();break;default:s=i.NONE}}function Zt(P){n.enabled!==!1&&P.preventDefault()}function Gt(P){b.push(P.pointerId)}function It(P){delete U[P.pointerId];for(let lt=0;lt{r instanceof Array?r.forEach(Lp):(r.map&&r.map.dispose(),r.dispose())},Dp=r=>{r.geometry&&r.geometry.dispose(),r.material&&Lp(r.material),r.texture&&r.texture.dispose(),r.children&&r.children.forEach(Dp)},iE=r=>{if(r&&r.children)for(;r.children.length;){const t=r.children[0];r.remove(t),Dp(t)}};var Hc={exports:{}},rE=function(t,e,n,i){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),i===void 0&&(i=e.length);for(var l=(i-n)/2,c=0,h=l-1;co!=_>o&&s<(d-u)*(o-f)/(_-f)+u;g&&(a=!a)}return a},sE=function(t,e,n,i){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),i===void 0&&(i=e.length);for(var l=i-n,c=0,h=l-1;co!=_>o&&s<(d-u)*(o-f)/(_-f)+u;g&&(a=!a)}return a},Ip=rE,Up=sE;Hc.exports=function(t,e,n,i){return e.length>0&&Array.isArray(e[0])?Up(t,e,n,i):Ip(t,e,n,i)};Hc.exports.nested=Up;Hc.exports.flat=Ip;const aE=""+new URL("ring2-a1b91808-balabala-1783995319167.png",import.meta.url).href,oE=""+new URL("ring3-fe0f60d7-balabala-1783995319167.png",import.meta.url).href,lE=""+new URL("ring4-f2e324d6-balabala-1783995319167.png",import.meta.url).href;const cE={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return jr(ae({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new ps,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(r=>Number(r.value)||0).reduce((r,t)=>r+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new kS,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:aE,width:5,position:new D(0,0,-.01),color:"#00ffff"}),this.createPlane({url:oE,width:6.5,position:new D(0,0,-.02),color:"#00ffff"}),this.createPlane({url:lE,width:5.5,position:new D(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(r){let t={url:"texture/ring1.png",width:5.5,z:0,position:new D(0,0,0),animate:!1,color:null},e=Object.assign(t,r);const n=new ks(e.width,e.width),i=new Dc({map:this.getTexture(e.url),transparent:!0,side:bn,depthTest:!1});e.color&&(i.color=new Nt(e.color));const s=new Ye(n,i);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=ai.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(r){const t=new kb().load(r);return t.wrapS=t.wrapT=$a,t},createPie(){if(!this.data.length||this.count<=0)return;let r=0,t=0;for(var e=0;e=this.data.length&&(r=0,this.loopComplete&&this.loopComplete()),this.chooseRing(r)},chooseRing(r=0,t=!1){if(!this.pieGroup.children.length)return;let e=r-1<0?this.data.length-1:r-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=r;let i=this.pieGroup.children[r];i&&(t||n&&(ai.to(n.scale,{z:1}),ai.to(n.material,{opacity:this.opacity})),ai.to(i.scale,{z:2}),ai.to(i.material,{opacity:.8}))},addRing(r={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,r),n=new Ss;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let i=n.getPoints(e.segments),s=new Ss;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new Ss(i.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Bc(a,l);let h=new wb({color:e.color,transparent:!0,opacity:this.opacity,side:bn});const u=new Ye(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var r=this.width/this.height;this.camera=new Xe(30,r,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new fp({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let r=new Rf(16777215,2);r.position.set(200,300,200);let t=new Rf(16777215,2);t.position.set(-200,-300,-200);let e=new Wb(16777215,2);this.scene.add(r),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new tE(0),this.scene.add(this.axes)},initControls(){this.controls=new nE(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(r=>{var t;return(t=r==null?void 0:r.resume)==null?void 0:t.call(r)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),!(this.data.length<2)&&(this.timer=window.setInterval(()=>{this.loopChange()},this.delay))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(r=>{var t;return(t=r==null?void 0:r.pause)==null?void 0:t.call(r)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const r=this.$el;!r||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(r);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(r),this.isVisible=this.isElementVisible(r),this.isVisible||this.stop())},isElementVisible(r){if(!r||typeof window.getComputedStyle!="function")return!0;let t=r;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=r.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const r=this.$refs.pieDom;this.width=(r==null?void 0:r.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(r==null?void 0:r.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let r=this.width/this.height;this.camera.aspect=r,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var r,t,e,n;this.isDestroyed=!0,this.prevMesh&&(ai.set(this.prevMesh.scale,{z:1}),ai.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(r=this.visibilityObserver)==null?void 0:r.disconnect)==null||t.call(r),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(i=>{var s;return(s=i==null?void 0:i.kill)==null?void 0:s.call(i)}),this.planeTweens=[],iE(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},hE={class:"three-pie-wrap"},uE={class:"three-pie",ref:"pieDom"},fE={class:"three-pie-slot"};function dE(r,t,e,n,i,s){return hs(),us("div",hE,[Bt("div",uE,null,512),Bt("div",fE,[Tl(r.$slots,"default",{data:s.currentData})])])}const jE=rm(cE,[["render",dE]]),oi=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),Np=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),go=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),$n=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function ZE(r=oi.canvasHeight){const t=Math.max(oi.canvasHeight,Number(r)||oi.canvasHeight),e=Math.floor((t-oi.sidePanelTop-oi.sidePanelBottom-oi.sideCardGap*3)/4);return Math.max(oi.sideCardMinHeight,e)}function KE(r,t=1){const e=Math.max(1,Number(t)||1);return r*e+oi.sideCardGap*(e-1)}const vo=Np.ui,pE=Np.number,De=[$n.accentCyan,$n.accentMint,$n.accentWater,$n.accentOrange,"#16b6e8","#b9fbff"],Op=$n.textPrimary,mE=$n.textStrong,Fp=$n.textSecondary,Gs=$n.textMuted,_E=$n.chartGridLine,gE=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),Gc={color:Gs,fontFamily:vo,fontSize:go.chartAxis};function xo(r,t={}){return ae({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:Op,fontFamily:vo,fontSize:go.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:r},t)}function Wc(r={}){return ae({itemWidth:10,itemHeight:7,itemGap:8,textStyle:jr(ae({},Gc),{color:Fp,fontSize:go.chartAxis})},r)}function Os(r=[],t={}){return ae({type:"category",data:r,axisLabel:ae(jr(ae({},Gc),{color:Gs,interval:0,hideOverlap:!0,margin:8}),t.axisLabel||{}),axisLine:ae({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},t.axisLine||{}),axisTick:ae({show:!1},t.axisTick||{}),splitLine:ae({show:!1},t.splitLine||{})},Bp(t))}function Fs(r={}){return ae({type:"value",axisLabel:ae(jr(ae({},Gc),{color:Gs}),r.axisLabel||{}),axisLine:ae({show:!1},r.axisLine||{}),axisTick:ae({show:!1},r.axisTick||{}),splitLine:ae({lineStyle:{color:_E,type:"dashed"}},r.splitLine||{})},Bp(r))}function yo(r={}){return ae({left:42,right:28,top:30,bottom:24,containLabel:!1},r)}function vE(r,t=`${r}12`){return new rc(0,0,0,1,[{offset:0,color:r},{offset:1,color:t}])}function Xc(r=De[0]){return new rc(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:r},{offset:.72,color:`${r}a3`},{offset:1,color:`${r}14`}])}function xE(r,t=`${r}20`,e="#ffffff"){return new rc(0,0,1,0,[{offset:0,color:t},{offset:.68,color:r},{offset:1,color:e}])}function Mo(r={}){var e,n,i;const t=ae({textStyle:ae({fontFamily:vo,color:Gs},r.textStyle||{}),animation:(e=r.animation)!=null?e:!0,animationDuration:(n=r.animationDuration)!=null?n:900,animationDurationUpdate:(i=r.animationDurationUpdate)!=null?i:700,animationEasing:r.animationEasing||"cubicOut"},r);return ic(t),nc(t),t}function JE({categories:r=[],rows:t=[],unit:e="",name:n="指标",orientation:i="vertical",colorIndex:s=0,grid:o={},showLabel:a=!0}={}){const l=i==="horizontal",c=t.map((h,u)=>({name:h.name||r[u],value:Number(h.value)||0,itemStyle:{borderRadius:l?[0,6,6,0]:[7,7,1,1],color:l?xE(De[(s+u)%De.length],"rgba(48, 220, 255, 0.1)",De[(s+u)%De.length]):Xc(De[(s+u)%De.length])}}));return Mo({color:De,grid:yo(ae(l?{left:72,right:a?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},o)),tooltip:xo(h=>`${h.marker}${h.name}:${ec(h.value)}${e}`),xAxis:l?Fs():Os(r,{axisLabel:{rotate:r.length>6?24:0}}),yAxis:l?Os(r,{inverse:!0,axisLabel:{color:Op,fontWeight:700}}):Fs(),series:[{name:n,type:"bar",barWidth:l?8:r.length>7?6:8,data:c,label:{show:a,position:l?"right":"top",color:mE,fontFamily:pE,fontSize:go.chartLabel,fontWeight:700,formatter:({value:h})=>ec(h)}}]})}function QE({categories:r=[],series:t=[],unit:e="",grid:n={}}={}){return Mo({color:De,grid:yo(ae({left:46,right:20,top:42,bottom:42},n)),tooltip:xo(i=>qc(i,e),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:Wc({top:0,right:4}),xAxis:Os(r),yAxis:Fs(),series:t.map((i,s)=>({name:i.name,type:"bar",barWidth:r.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:Xc(De[s%De.length])}}))})}function tT({categories:r=[],series:t=[],unit:e="",grid:n={}}={}){return Mo({color:De,grid:yo(ae({left:48,right:22,top:42,bottom:42},n)),tooltip:xo(i=>qc(i,e),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:Wc({top:0,right:4}),xAxis:Os(r),yAxis:Fs(),series:t.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:r.length>7?6:8,data:i.values||[],itemStyle:{color:Xc(De[s%De.length])}}))})}function eT({categories:r=[],series:t=[],unit:e="",area:n=!1,grid:i={}}={}){return Mo({color:De,grid:yo(ae({left:46,right:24,top:42,bottom:38},i)),tooltip:xo(s=>qc(s,e),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:Wc({top:0,right:4}),xAxis:Os(r),yAxis:Fs(),series:t.map((s,o)=>{const a=De[o%De.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:a,shadowColor:`${a}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:a,borderWidth:1},areaStyle:n?{color:vE(a,`${a}08`)}:void 0}})})}function ec(r){const t=Number(r);return Number.isFinite(t)?Number.isInteger(t)?t.toLocaleString("zh-CN"):t.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function Bp(r={}){const o=r,{axisLabel:t,axisLine:e,axisTick:n,splitLine:i}=o;return nh(o,["axisLabel","axisLine","axisTick","splitLine"])}function qc(r,t=""){var s,o;const e=Array.isArray(r)?r:[r],n=((s=e[0])==null?void 0:s.axisValueLabel)||((o=e[0])==null?void 0:o.name)||"",i=e.map(a=>`${a.marker}${a.seriesName||a.name}:${ec(a.value)}${t}`).join("
");return`${n}
${i}`}function nc(r){if(!r||typeof r!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(e=>{!r[e]||typeof r[e]!="object"||(r[e]=yE(r[e]))}),Object.keys(r).forEach(e=>{const n=r[e];if(!(!n||typeof n!="object")&&!(e==="color"||e==="itemStyle"||e==="areaStyle"||e==="lineStyle")){if(Array.isArray(n)){n.forEach(nc);return}nc(n)}})}function ic(r){!r||typeof r!="object"||Object.keys(r).forEach(t=>{const e=r[t];if(typeof e=="string"){r[t]=Of(e);return}if(Array.isArray(e)){e.forEach((n,i)=>{typeof n=="string"?e[i]=Of(n):ic(n)});return}e&&typeof e=="object"&&ic(e)})}function Of(r){let t=r;return gE.forEach((e,n)=>{t=t.replace(new RegExp(n,"gi"),e)}),t=t.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),t}function yE(r){const t=ae({fontFamily:r.fontFamily||vo},r);return t.color=ME(t.color),typeof t.fontSize=="number"&&t.fontSize<10&&(t.fontSize=10),t}function ME(r){if(typeof r!="string")return r;const t=r.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!t)return r;const e=Number(t[4]);return!Number.isFinite(e)||e>=.72?r:e<.6?Gs:Fp}export{zo as $,DE as A,Ne as B,WE as C,Rf as D,IE as E,BE as F,ps as G,Xe as H,LE as I,P0 as J,sp as K,Hs as L,Dc as M,_p as N,_e as O,kE as P,FE as Q,$a as R,zE as S,AE as T,GS as U,it as V,Za as W,ee as X,Ei as Y,Pe as Z,Nh as _,RE as a,mE as a$,Qr as a0,En as a1,ql as a2,ja as a3,bi as a4,no as a5,Ue as a6,so as a7,ro as a8,Vs as a9,YE as aA,jS as aB,Rp as aC,$n as aD,jE as aE,TE as aF,oi as aG,ZE as aH,Mo as aI,xo as aJ,EE as aK,KE as aL,ai as aM,qE as aN,dp as aO,Wb as aP,wb as aQ,CE as aR,VS as aS,zs as aT,xg as aU,Bi as aV,Rg as aW,bg as aX,Np as aY,go as aZ,Fp as a_,wi as aa,Jn as ab,mo as ac,Ob as ad,fp as ae,nE as af,er as ag,kS as ah,tE as ai,Dr as aj,$E as ak,Ss as al,wp as am,ks as an,Ch as ao,UE as ap,Bc as aq,HE as ar,ge as as,XE as at,NE as au,Cn as av,j0 as aw,ht as ax,Ti as ay,se as az,wE as b,vo as b0,Op as b1,_E as b2,pE as b3,Xc as b4,De as b5,JE as b6,QE as b7,tT as b8,eT as b9,Wc as ba,yo as bb,Os as bc,Fs as bd,ec as be,vE as bf,xn as c,VE as d,Nt as e,Kn as f,Le as g,OE as h,$t as i,D as j,lf as k,kb as l,GE as m,pp as n,We as o,Vi as p,YS as q,Qn as r,Nc as s,Ab as t,bn as u,te as v,PE as w,Ye as x,vp as y,gp as z}; diff --git a/docs/assets/chartTheme-95a980bb-1784043664472.js b/docs/assets/chartTheme-95a980bb-1784043664472.js new file mode 100644 index 0000000..4179986 --- /dev/null +++ b/docs/assets/chartTheme-95a980bb-1784043664472.js @@ -0,0 +1 @@ +var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{L as w}from"./index-1784043664472.js";import{U as B,K as c,W as d}from"./screen2Standard-15e4461a-1784043664472.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,k=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:k,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},M(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},M(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function M(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:k}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,k as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; diff --git a/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1783995319167.png b/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784043664472.png similarity index 100% rename from docs/assets/chinaBlurLine-1a2cbc0f-balabala-1783995319167.png rename to docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784043664472.png diff --git a/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1783995319167.svg b/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg similarity index 100% rename from docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1783995319167.svg rename to docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg diff --git a/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1783995319167.svg b/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg similarity index 100% rename from docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1783995319167.svg rename to docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg diff --git a/docs/assets/content-middle-line-162bc0d5-balabala-1783995319167.svg b/docs/assets/content-middle-line-162bc0d5-balabala-1784043664472.svg similarity index 100% rename from docs/assets/content-middle-line-162bc0d5-balabala-1783995319167.svg rename to docs/assets/content-middle-line-162bc0d5-balabala-1784043664472.svg diff --git a/docs/assets/data-3d6664cd-1784043664472.js b/docs/assets/data-3d6664cd-1784043664472.js new file mode 100644 index 0000000..af28dd3 --- /dev/null +++ b/docs/assets/data-3d6664cd-1784043664472.js @@ -0,0 +1,458 @@ +var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Bn,af as Vt,ag as Te,ah as Be,ai as Jt,aj as Rn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-15e4461a-1784043664472.js";import{E as lt,q as Xt}from"./TopicSwitcher-f0c08774-1784043664472.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1784043664472.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e}){super(),this.canvas=e,this.maxPixelRatio=2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var n;const e=((n=this.canvas)==null?void 0:n.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1,this.pixelRatio=Math.min(window.devicePixelRatio||1,this.maxPixelRatio)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,R=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,R(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Re(t,e){return R(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,B=z*O,A=B>P,Y=f*C;if(h.add(we(Y*z*I(B),E*L+Y*U(B))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=R(o-e);R(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(R(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(R(t[0]-e[0])>T){var o=t[0]0,s=R(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Re(c,y)||Re(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Re(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,B=Ae(L,z),A=Ae(z,z),Y=B*B-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-B-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(R(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-B+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return R(d[0]-t)0?0:3:R(d[0]-n)0?2:1:R(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:B,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function B(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=R(R(C)-1)e||R((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Bt(n,0,0,u,p,c).apply(null,e(o,r)),b=Bt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=B=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` + varying vec3 vPosition; + void main(){ + vPosition = position; + `),a.fragmentShader=a.fragmentShader.replace("void main() {",` + uniform float uTime; + uniform float uSpeed; + uniform float uWidth; + uniform vec3 uColor; + varying vec3 vPosition; + void main(){ + `),a.fragmentShader=a.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + + #ifdef USE_TRANSMISSION + diffuseColor.a *= material.transmissionAlpha; + #endif + + float r = uTime * uSpeed; + + float w = uWidth; + // if(w>uWidth){ + // w = uWidth; + // }else{ + // w = uTime * 1.5; + // } + + vec2 center = vec2(0.0, 0.0); + + float rDistance = distance(vPosition.xy, center); + + if(rDistance > r && rDistance < r + 2.0 * w) { + float per = 0.0; + if(rDistance < r + w) { + float p = smoothstep(0.0,1.0,(rDistance - r) / w); + p*=p; + outgoingLight = mix(outgoingLight, uColor, p); + } else { + + float p = smoothstep(0.0,1.0,(rDistance - r - w) / w); + + outgoingLight = mix(uColor, outgoingLight, p); + } + gl_FragColor = vec4(outgoingLight, diffuseColor.a); + } else { + gl_FragColor = vec4(outgoingLight, 0.0); + } + `)}}}class $i{constructor({scene:e,time:n},i){this.scene=e,this.time=n,this.instance=null;let s={position:new F(0,0,0),gridSize:100,gridDivision:20,gridColor:2635578,shapeSize:1,shapeColor:9345950,pointSize:.2,pointColor:2635578,pointLayout:{row:200,col:200},pointBlending:An};this.options=Object.assign({},s,i),this.init()}init(){let e=new ve;e.name="Grid";let n=this.createGridHelp(),i=this.createShapes(),s=this.createPoint();e.add(n,i,s),e.position.copy(this.options.position),this.instance=e,this.scene.add(e)}createShapes(){let{gridSize:e,gridDivision:n,shapeSize:i,shapeColor:s}=this.options,o=e/n,r=e/2,a=new ge({color:s,side:Cn}),h=[];for(let c=0;c{this.update()}),this.sizes.on("resize",()=>{this.resize()})}create(e="",n="",i=!1){let s=document.createElement("div");s.innerHTML=e,s.className=n,s.style.visibility="hidden",s.style.position="absolute",n||(s.style.padding="10px",s.style.color="#fff",s.style.fontSize="12px",s.style.textAlign="center",s.style.background="rgba(0,0,0,0.6)",s.style.borderRadius="4px");let o=null;return i?o=new Ri(s):o=new sn(s),o.init=(r,a)=>{o.element.innerHTML=r,o.element.style.visibility="visible",o.position.copy(a)},o.hide=()=>{o.element.style.visibility="hidden"},o.scaleHide=()=>{o.element.classList.add("scale-hidden")},o.show=()=>{o.element.style.visibility="visible",o.element.classList.remove("scale-hidden")},o.setParent=r=>{this.parent=r,r.add(o)},o.remove=()=>{this.parent.remove(o)},o}setLabelStyle(e,n=.1,i="x",s=Math.PI/2,o="none"){e.element.style.pointerEvents=o,e.scale.set(n,n,n),e.rotation[i]=s}setRenderLevel(e){this.css3dRender.domElement.style.zIndex=e}update(){this.css3dRender.render(this.scene,this.camera.instance)}destroy(){if(this.css3dRender){let e=this.css3dRender.domElement;e.parentNode.removeChild(e)}}resize(){let{width:e,height:n}=this.sizes;this.css3dRender.setSize(e,n)}}class ts{constructor({time:e},n){this.time=e,this.options=Object.assign({},{width:10,scale:1,position:new F(0,0,0),needRotate:!1,rotateSpeed:.001,material:new ge({transparent:!0,opacity:1,depthTest:!0})},n);let i=new Ln(this.options.width,this.options.width),s=new re(i,this.options.material);s.position.copy(this.options.position),s.scale.set(this.options.scale,this.options.scale,this.options.scale),this.instance=s}setParent(e){e.add(this.instance),this.time.on("tick",()=>{this.update()})}update(){this.options.needRotate&&(this.instance.rotation.z+=this.options.rotateSpeed)}}class on{constructor({time:e},n={}){this.instance=null,this.time=e,this.enable=!0,this.config=Object.assign({num:100,range:500,speed:.01,renderOrder:99,dir:"up",material:new kt({map:on.createTexture(),size:20,color:16777215,transparent:!0,opacity:1,depthTest:!1,vertexColors:!0,blending:On,sizeAttenuation:!0})},n),this.create()}create(){const{range:e,speed:n,dir:i,material:s,num:o,renderOrder:r}=this.config,a=[],h=[],d=[];for(let c=0;ci/2&&r===1&&(u=-i/2),u<-i/2&&r==-1&&(u=i/2),a.setX(l,c),a.setZ(l,u),h.setX(l,p),h.setY(l,m)}a.needsUpdate=!0,h.needsUpdate=!0}setParent(e){e.add(this.instance),this.time.on("tick",(n,i)=>{this.enable&&this.update(n,i)})}}class ns{constructor({},e={}){this.mapGroup=new ve,this.coordinates=[],this.config=Object.assign({position:new F(0,0,0),geoProjectionCenter:new N(0,0),geoProjectionScale:120,data:"",renderOrder:1,merge:!1,material:new ge({color:1582651,transparent:!0,opacity:1})},e),this.mapGroup.position.copy(this.config.position);let n=ct(this.config.data);this.create(n)}geoProjection(e){return dt().center(this.config.geoProjectionCenter).scale(this.config.geoProjectionScale).translate([0,0])(e)}create(e){let{merge:n}=this.config,i=[];if(e.features.forEach(s=>{const o=new ot;let{name:r,center:a=[],centroid:h=[]}=s.properties;this.coordinates.push({name:r,center:a,centroid:h}),o.userData.name=r,s.geometry.coordinates.forEach(d=>{d.forEach(l=>{const c=new st;for(let p=0;p{var d,l,c;const i=new ot;let{name:s,center:o=[],centroid:r=[]}=n.properties;this.coordinates.push({name:s,center:o,centroid:r});const a={depth:this.config.depth,bevelEnabled:(d=this.config.bevelEnabled)!=null?d:!0,bevelSegments:(l=this.config.bevelSegments)!=null?l:1,bevelThickness:(c=this.config.bevelThickness)!=null?c:.1};let h=[this.config.topFaceMaterial,this.config.sideMaterial];n.geometry.coordinates.forEach(u=>{u.forEach((p,m)=>{const g=new st;for(let S=0;S + #include + #include + #include + #include + + uniform float linewidth; + uniform vec2 resolution; + + attribute vec3 instanceStart; + attribute vec3 instanceEnd; + + attribute vec3 instanceColorStart; + attribute vec3 instanceColorEnd; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #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; + vUv = uv; + + #endif + + float aspect = resolution.x / resolution.y; + + // camera space + vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); + vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); + + #ifdef WORLD_UNITS + + worldStart = start.xyz; + worldEnd = end.xyz; + + #else + + vUv = uv; + + #endif + + // 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 + vec3 ndcStart = clipStart.xyz / clipStart.w; + vec3 ndcEnd = clipEnd.xyz / clipEnd.w; + + // direction + vec2 dir = ndcEnd.xy - ndcStart.xy; + + // account for clip-space aspect ratio + dir.x *= aspect; + dir = normalize( dir ); + + #ifdef WORLD_UNITS + + vec3 worldDir = normalize( end.xyz - start.xyz ); + vec3 tmpFwd = normalize( mix( start.xyz, end.xyz, 0.5 ) ); + vec3 worldUp = normalize( cross( worldDir, tmpFwd ) ); + vec3 worldFwd = cross( worldDir, worldUp ); + worldPos = position.y < 0.5 ? start: end; + + // height offset + float hw = linewidth * 0.5; + worldPos.xyz += position.x < 0.0 ? hw * worldUp : - hw * worldUp; + + // don't extend the line if we're rendering dashes because we + // won't be rendering the endcaps + #ifndef USE_DASH + + // cap extension + worldPos.xyz += position.y < 0.5 ? - hw * worldDir : hw * worldDir; + + // add width to the box + worldPos.xyz += worldFwd * hw; + + // endcaps + if ( position.y > 1.0 || position.y < 0.0 ) { + + worldPos.xyz -= worldFwd * 2.0 * hw; + + } + + #endif + + // project the worldpos + vec4 clip = projectionMatrix * worldPos; + + // shift the depth of the projected points so the line + // segments overlap neatly + vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; + clip.z = clipPose.z * clip.w; + + #else + + 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; + + #endif + + 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; + uniform float linewidth; + + #ifdef USE_DASH + + uniform float dashOffset; + uniform float dashSize; + uniform float gapSize; + + #endif + + varying float vLineDistance; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #include + #include + #include + #include + #include + + vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { + + float mua; + float mub; + + vec3 p13 = p1 - p3; + vec3 p43 = p4 - p3; + + vec3 p21 = p2 - p1; + + float d1343 = dot( p13, p43 ); + float d4321 = dot( p43, p21 ); + float d1321 = dot( p13, p21 ); + float d4343 = dot( p43, p43 ); + float d2121 = dot( p21, p21 ); + + float denom = d2121 * d4343 - d4321 * d4321; + + float numer = d1343 * d4321 - d1321 * d4343; + + mua = numer / denom; + mua = clamp( mua, 0.0, 1.0 ); + mub = ( d1343 + d4321 * ( mua ) ) / d4343; + mub = clamp( mub, 0.0, 1.0 ); + + return vec2( mua, mub ); + + } + + void main() { + + #include + + #ifdef USE_DASH + + if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps + + if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX + + #endif + + float alpha = opacity; + + #ifdef WORLD_UNITS + + // Find the closest points on the view ray and the line segment + vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; + vec3 lineDir = worldEnd - worldStart; + vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); + + vec3 p1 = worldStart + lineDir * params.x; + vec3 p2 = rayEnd * params.y; + vec3 delta = p1 - p2; + float len = length( delta ); + float norm = len / linewidth; + + #ifndef USE_DASH + + #ifdef USE_ALPHA_TO_COVERAGE + + float dnorm = fwidth( norm ); + alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); + + #else + + if ( norm > 0.5 ) { + + discard; + + } + + #endif + + #endif + + #else + + #ifdef USE_ALPHA_TO_COVERAGE + + // artifacts appear on some hardware if a derivative is taken within a conditional + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + float dlen = fwidth( len2 ); + + if ( abs( vUv.y ) > 1.0 ) { + + alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); + + } + + #else + + 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; + + } + + #endif + + #endif + + vec4 diffuseColor = vec4( diffuse, alpha ); + + #include + #include + + gl_FragColor = vec4( diffuseColor.rgb, alpha ); + + #include + #include + #include + #include + + } + `};class an extends Rn{constructor(e){super({type:"LineMaterial",uniforms:Jt.clone(Be.line.uniforms),vertexShader:Be.line.vertexShader,fragmentShader:Be.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1))}}const It=new F,jt=new F,W=new Ge,k=new Ge,te=new Ge,Ve=new F,Je=new rt,H=new _n,Gt=new F,Oe=new at,ze=new Vt,ne=new Ge;let ie,le;function Nt(t,e,n){return ne.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),ne.multiplyScalar(1/ne.w),ne.x=le/n.width,ne.y=le/n.height,ne.applyMatrix4(t.projectionMatrixInverse),ne.multiplyScalar(1/ne.w),Math.abs(Math.max(ne.x,ne.y))}function Ii(t,e){const n=t.matrixWorld,i=t.geometry,s=i.attributes.instanceStart,o=i.attributes.instanceEnd,r=Math.min(i.instanceCount,s.count);for(let a=0,h=r;ac&&k.z>c)continue;if(W.z>c){const y=W.z-k.z,w=(W.z-c)/y;W.lerp(k,w)}else if(k.z>c){const y=k.z-W.z,w=(k.z-c)/y;k.lerp(W,w)}W.applyMatrix4(i),k.applyMatrix4(i),W.multiplyScalar(1/W.w),k.multiplyScalar(1/k.w),W.x*=o.x/2,W.y*=o.y/2,k.x*=o.x/2,k.y*=o.y/2,H.start.copy(W),H.start.z=0,H.end.copy(k),H.end.z=0;const g=H.closestPointToPointParameter(Ve,!0);H.at(g,Gt);const f=Un.lerp(W.z,k.z,g),E=f>=-1&&f<=1,S=Ve.distanceTo(Gt){const l=[];let c=null;n==="Line2"?(d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(p,-m,0)}),c=this.createLine2(l)):n==="Line3"?(d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(new F(p,-m,0))}),c=this.createLine3(l)):d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(new F(p,-m,0)),c=this.createLine(l)}),h.add(c)}),o.add(h))}return o}createLine3(e){const n=this.config.tubeRadius,i=256*10,s=4,o=!1,{material:r,renderOrder:a}=this.config,h=new jn(e),d=new Gn(h,i,n,s,o),l=new re(d,r);return l.name="mapLine3",l.renderOrder=a,l}createLine2(e){const{material:n,renderOrder:i}=this.config,s=new ln;s.setPositions(e);let o=new Ni(s,n);return o.name="mapLine2",o.renderOrder=i,o.computeLineDistances(),o}createLine(e){const{material:n,renderOrder:i,type:s}=this.config,o=new it;o.setFromPoints(e);let r=new Nn(o,n);return r.renderOrder=i,r.name="mapLine",r}setParent(e){e.add(this.lineGroup)}}class os{constructor(e,n){this.shader=null,this.config=Object.assign({uColor1:2781042,uColor2:860197,size:15,dir:"x"},n),this.init(e)}init(e){let{uColor1:n,uColor2:i,dir:s,size:o}=this.config,r={x:1,y:2,z:3};e.onBeforeCompile=a=>{this.shader=a,a.uniforms=Z(Q({},a.uniforms),{uColor1:{value:new Ke(n)},uColor2:{value:new Ke(i)},uDir:{value:r[s]},uSize:{value:o}}),a.vertexShader=a.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),a.fragmentShader=a.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + uniform float uDir; + uniform float uSize; + + void main() { + `),a.fragmentShader=a.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + + // https://github.com/mrdoob/three.js/pull/22425 + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + // vec3 gradient = mix(uColor1, uColor2, vPosition.x / 15.0); + vec3 gradient = vec3(0.0,0.0,0.0); + if(uDir==1.0){ + gradient = mix(uColor1, uColor2, vPosition.x/ uSize); + }else if(uDir==2.0){ + gradient = mix(uColor1, uColor2, vPosition.z/ uSize); + }else if(uDir==3.0){ + gradient = mix(uColor1, uColor2, vPosition.y/ uSize); + } + outgoingLight = outgoingLight * gradient; + + + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)}}}const rs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAK+SURBVHgB7dzNbdswGIdxSugCRtGBuklWSO17nXs/J0hHywA11AEMu3wDsLFT5WCJ5PtI/D8nQ5cA/FmxJJLqtofhHBSmPihUAoElEFgCgfVu7ODX95suqOKNXVDpDIElEFgCgSUQWAKBJRBYAoE1G2Q3DJ/j9fRjUGE7DI+f4niEGc0CMYzzKezjx7vWUQwjnMJdF8djDsq8M+QYLu/om0VJGP8OXI/LTc0C+fJhs4/fiIeLQ82hvMaI/zEevsVxCROb/RvSMkpuDCvLVVaLKCUwrGyXvS2hlMKwst6HtIBSEsPKfmO4ZpTSGFaRO/U1otTAsIo9OlkTSi0Mq+izrDWg1MSwij9cXDJKbQyrytPeJaJ4YFjVHr8vCcULw6o6H7IEFE8Mq/oEFRnFG8NymTEkohAwLLcpXBIKBcNynVMnoJAwLPdFDp4oNAwLserEA4WIYXVjK7C9Vr+fY8Gh7e8/Lhha/f5GhDMjJRBYAoElEFgCgSUQWAKBJRBYAoElEFgCgSUQWAKBJRBYAoElEFgCgSUQWAKBJRBYAoElEFgCgSUQWAKBJZDwvIIQs2kIA/K81tYvzKYhBMh/75vyCYHiDgLBSLmjuIK8xrBV6J1HoO11biCk/Rmk7XUuIMTNMhSU6iDUnUsWAaUqCBkj5Y1SDWQJGClPlCogS8JIeaEUB1kiRsoDpSjIkjFStVGKgawBI1UTpQjImjBStVCyg6wRI1UDJSvImjFSpVGygbSAkSqJkgWkJYxUKZTZIC1ipEqgzAJpGSOVG2UyiDBeyokyCWR3OOyFcd0Yyu4wfA83Ngnk2Pe/ziE82WdhvHSJYuNz7MPPcGOTQH5sNk+nPnyMf/xeGNcZSvyS3tv42DiFG0O94q+19Iq/BSQQWAKBJRBYAoElEFgCgSUQWKM3hsovnSGwBAJLILAEAusvLK6Na4P/Au0AAAAASUVORK5CYII=";var Ft=class{constructor(t,e){M(this,"target");M(this,"name");M(this,"intersected");M(this,"wasIntersected",!1);M(this,"wasIntersectedOnMouseDown",!1);M(this,"distance");this.target=t,this.name=e,this.intersected=!1,this.distance=0}},J=class{constructor(t,e=null){M(this,"type");M(this,"cancelBubble");M(this,"originalEvent");M(this,"coords",new N(0,0));M(this,"distance",0);M(this,"intersected",!1);M(this,"wasIntersected",!1);M(this,"wasIntersectedOnMouseDown",!1);this.cancelBubble=!1,this.type=t,this.originalEvent=e}stopPropagation(){this.cancelBubble=!0}},as=class{constructor(t,e,n,i){M(this,"renderer");M(this,"camera");M(this,"domElement");M(this,"bindEventsOnBodyElement");M(this,"autoAdd");M(this,"scene");M(this,"mouse");M(this,"supportsPointerEvents");M(this,"interactiveObjects");M(this,"closestObject");M(this,"raycaster");M(this,"treatTouchEventsAsMouseEvents");M(this,"dispose",()=>{this.domElement.removeEventListener("click",this.onMouseClick),this.supportsPointerEvents&&(this.bindEventsOnBodyElement?this.domElement.ownerDocument.removeEventListener("pointermove",this.onDocumentPointerMove):this.domElement.removeEventListener("pointermove",this.onDocumentPointerMove),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointerup",this.onPointerUp)),this.bindEventsOnBodyElement?this.domElement.ownerDocument.removeEventListener("mousemove",this.onDocumentMouseMove):this.domElement.removeEventListener("mousemove",this.onDocumentMouseMove),this.domElement.removeEventListener("mousedown",this.onMouseDown),this.domElement.removeEventListener("mouseup",this.onMouseUp),this.domElement.removeEventListener("touchstart",this.onTouchStart),this.domElement.removeEventListener("touchmove",this.onTouchMove),this.domElement.removeEventListener("touchend",this.onTouchEnd)});M(this,"add",(t,e=[])=>{if(t&&!this.interactiveObjects.find(n=>n.target===t))if(e.length>0)e.forEach(n=>{let i=t.getObjectByName(n);if(i){let s=new Ft(i,n);this.interactiveObjects.push(s)}});else{let n=new Ft(t,t.name);this.interactiveObjects.push(n)}});M(this,"remove",(t,e=[])=>{!t||(e.length>0?e.forEach(n=>{let i=t.getObjectByName(n);i&&(this.interactiveObjects=this.interactiveObjects.filter(s=>s.target!==i))}):this.interactiveObjects=this.interactiveObjects.filter(n=>n.target!==t))});M(this,"update",()=>{var i;this.raycaster.setFromCamera(this.mouse,this.camera),this.interactiveObjects.forEach(s=>{s.target&&this.checkIntersection(s)}),this.interactiveObjects.sort(function(s,o){return s.distance-o.distance});let t=(i=this.interactiveObjects.find(s=>s.intersected))!=null?i:null;if(t!=this.closestObject){if(this.closestObject){let s=new J("mouseout");this.dispatch(this.closestObject,s)}if(t){let s=new J("mouseover");this.dispatch(t,s)}this.closestObject=t}let e;this.interactiveObjects.forEach(s=>{!s.intersected&&s.wasIntersected&&(e||(e=new J("mouseleave")),this.dispatch(s,e))});let n;this.interactiveObjects.forEach(s=>{s.intersected&&!s.wasIntersected&&(n||(n=new J("mouseenter")),this.dispatch(s,n))})});M(this,"checkIntersection",t=>{let e=this.raycaster.intersectObjects([t.target],!0);if(t.wasIntersected=t.intersected,e.length>0){let n=e[0].distance;e.forEach(i=>{i.distance{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY);let e=new J("mousemove",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});M(this,"onDocumentPointerMove",t=>{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY);let e=new J("pointermove",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});M(this,"onTouchMove",t=>{t.touches.length>0&&this.mapPositionToPoint(this.mouse,t.touches[0].clientX,t.touches[0].clientY);let e=new J(this.treatTouchEventsAsMouseEvents?"mousemove":"touchmove",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});M(this,"onMouseClick",t=>{this.update();let e=new J("click",t);this.interactiveObjects.forEach(n=>{n.intersected&&this.dispatch(n,e)})});M(this,"onMouseDown",t=>{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY),this.update();let e=new J("mousedown",t);this.interactiveObjects.forEach(n=>{n.intersected?(n.wasIntersectedOnMouseDown=!0,this.dispatch(n,e)):n.wasIntersectedOnMouseDown=!1})});M(this,"onPointerDown",t=>{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY),this.update();let e=new J("pointerdown",t);this.interactiveObjects.forEach(n=>{n.intersected&&this.dispatch(n,e)})});M(this,"onTouchStart",t=>{t.touches.length>0&&this.mapPositionToPoint(this.mouse,t.touches[0].clientX,t.touches[0].clientY),this.update();let e=new J(this.treatTouchEventsAsMouseEvents?"mousedown":"touchstart",t);this.interactiveObjects.forEach(n=>{n.intersected&&this.dispatch(n,e)})});M(this,"onMouseUp",t=>{let e=new J("mouseup",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});M(this,"onPointerUp",t=>{let e=new J("pointerup",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});M(this,"onTouchEnd",t=>{t.touches.length>0&&this.mapPositionToPoint(this.mouse,t.touches[0].clientX,t.touches[0].clientY),this.update();let e=new J(this.treatTouchEventsAsMouseEvents?"mouseup":"touchend",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});M(this,"dispatch",(t,e)=>{t.target&&!e.cancelBubble&&(e.coords=this.mouse,e.distance=t.distance,e.intersected=t.intersected,e.wasIntersected=t.wasIntersected,e.wasIntersectedOnMouseDown=t.wasIntersectedOnMouseDown,t.target.dispatchEvent(e))});M(this,"mapPositionToPoint",(t,e,n)=>{let i=this.renderer.domElement.getBoundingClientRect();t.x=(e-i.left)/i.width*2-1,t.y=-((n-i.top)/i.height)*2+1});this.renderer=t,this.camera=e,this.domElement=n,this.bindEventsOnBodyElement=i&&typeof i.bindEventsOnBodyElement<"u"?i.bindEventsOnBodyElement:!0,this.scene=i&&typeof i.scene<"u"?i.scene:null,this.scene&&(this.scene.onBeforeRender=()=>{this.autoAdd&&this.scene!==null&&this.scene.traverse(s=>{this.add(s),s.addEventListener("removed",o=>{this.remove(o.target)})}),this.update()}),this.autoAdd=i&&typeof i.autoAdd<"u"?i.autoAdd:!1,this.autoAdd&&this.scene===null&&console.error("Attention: Options.scene needs to be set when using options.autoAdd"),this.mouse=new N(-1,1),this.supportsPointerEvents=!!window.PointerEvent,this.interactiveObjects=[],this.closestObject=null,this.raycaster=new Fn,n.addEventListener("click",this.onMouseClick),this.supportsPointerEvents&&(this.bindEventsOnBodyElement?n.ownerDocument.addEventListener("pointermove",this.onDocumentPointerMove):n.addEventListener("pointermove",this.onDocumentPointerMove),n.addEventListener("pointerdown",this.onPointerDown),n.addEventListener("pointerup",this.onPointerUp)),this.bindEventsOnBodyElement?n.ownerDocument.addEventListener("mousemove",this.onDocumentMouseMove):n.addEventListener("mousemove",this.onDocumentMouseMove),n.addEventListener("mousedown",this.onMouseDown),n.addEventListener("mouseup",this.onMouseUp),n.addEventListener("touchstart",this.onTouchStart,{passive:!0}),n.addEventListener("touchmove",this.onTouchMove,{passive:!0}),n.addEventListener("touchend",this.onTouchEnd,{passive:!0}),this.treatTouchEventsAsMouseEvents=!0}};const ls=kn,cs=Hn,us=0,Ee=Kt;function hs(t){return t}function Fi(t=[],e=Kt){const n=t.map(r=>{var a,h,d;return Z(Q({},r),{name:r.name||r.label||r.town||"",count:Number((d=(h=(a=r.count)!=null?a:r.value)!=null?h:r.total)!=null?d:0)})}).filter(r=>r.name&&Number.isFinite(r.count)&&r.count>=0),i=n.reduce((r,a)=>r+a.count,0);if(!i||!e)return n.map(r=>Z(Q({},r),{count:0}));const s=n.map(r=>Z(Q({},r),{count:Math.round(r.count/i*e)})),o=e-s.reduce((r,a)=>r+a.count,0);return o&&s[0]&&(s[0].count+=o),s}const Wi=Fi(Yn,Ee).sort((t,e)=>e.count-t.count),ki=[{key:"fertileCow",name:"适龄能繁母牛",ratio:45,source:"畜群结构比例表"},{key:"meatBull",name:"麦洼公牦牛",ratio:15,source:"畜群结构比例表"},{key:"breedingBull",name:"种公牛",ratio:3,source:"畜群结构比例表"},{key:"femaleCalf",name:"母犊牛",ratio:15,source:"畜群结构比例表"},{key:"maleCalf",name:"公犊牛",ratio:15,source:"畜群结构比例表"},{key:"overageCow",name:"过龄能繁母牛",ratio:7,source:"畜群结构比例表"}],Hi=[{key:"fertileCow",name:"适龄能繁母牛",ratio:44.8,source:"畜群结构比例表"},{key:"meatBull",name:"麦洼公牦牛",ratio:15.2,source:"畜群结构比例表"},{key:"breedingBull",name:"种公牛",ratio:3.1,source:"畜群结构比例表"},{key:"femaleCalf",name:"母犊牛",ratio:14.9,source:"畜群结构比例表"},{key:"maleCalf",name:"公犊牛",ratio:15.1,source:"畜群结构比例表"},{key:"overageCow",name:"过龄能繁母牛",ratio:6.9,source:"畜群结构比例表"}],fs=hn(Hi,Ee),ds=Wn.map((t,e)=>Z(Q({},t),{color:["#48cfff","#30dcff","#8bf7ff","#48cfff"][e%4]})),ps=[{age:"≤1岁",cow:38586,bull:40861},{age:"1-2岁",cow:27124,bull:27549},{age:"2-4岁",cow:93355,bull:49265},{age:"4-8岁",cow:106679,bull:32655},{age:"8岁以上",cow:28671,bull:13485}],Wt=[{key:"2026",label:"2026年底",shortLabel:"2026",months:7,stock:462850,births:24680,outflow:19020,correction:-1040,structure:{fertileCow:45.1,meatBull:15,breedingBull:3,femaleCalf:15.2,maleCalf:14.9,overageCow:6.8}},{key:"2027",label:"2027年底",shortLabel:"2027",months:19,stock:468920,births:67420,outflow:55180,correction:-1550,structure:{fertileCow:45.5,meatBull:14.8,breedingBull:3.1,femaleCalf:15.1,maleCalf:14.8,overageCow:6.7}},{key:"2028",label:"2028年底",shortLabel:"2028",months:31,stock:475360,births:109680,outflow:90140,correction:-2410,structure:{fertileCow:45.9,meatBull:14.5,breedingBull:3.1,femaleCalf:15.3,maleCalf:14.7,overageCow:6.5}}],ms=[{name:"新生牛犊",value:86},{name:"出栏周转",value:62},{name:"死亡淘汰",value:48},{name:"母牛基础",value:91},{name:"幼畜存活",value:73}],cn=2026,un=6;function vs(t){return Wt.find(e=>e.key===t)||Wt[1]}function gs(t){const e=(t==null?void 0:t.structure)||{};return hn(ki.map(n=>{var i;return Z(Q({},n),{ratio:(i=e[n.key])!=null?i:n.ratio,source:"预测模型"})}),t.stock)}function ws(t){const e=t.stock/Ee,n=Wi.map((s,o)=>Z(Q({},s),{forecast:Math.round(s.count*e+(o%3-1)*t.months*18)})),i=t.stock-n.reduce((s,o)=>s+o.forecast,0);if(i){const s=n.reduce((o,r)=>r.count>o.count?r:o,n[0]);s.forecast+=i}return n.map(s=>Z(Q({},s),{change:s.forecast-s.count})).sort((s,o)=>o.forecast-s.forecast)}function ys(t){const e=Yi(t),n=Array.from({length:e},(r,a)=>Vi(a)),i=n.map((r,a)=>{const h=Xe(a,e),d=Math.sin(a/2.6)*Math.sin(Math.PI*h)*Math.min(360,t.months*18);return Math.round(Ee+(t.stock-Ee)*h+d)}),s=n.map((r,a)=>Math.round(t.births*Xe(a,e))),o=n.map((r,a)=>Math.round(t.outflow*Xe(a,e)));return{labels:n,stock:i,births:s,outflow:o}}function Yi(t={}){return Math.max(1,Math.round(Number(t.months||1)))}function Xe(t,e){return e<=1?1:Math.min(1,Math.max(0,t/(e-1)))}function Vi(t=0){const e=new Date(Date.UTC(cn,un-1+t,1));return`${String(e.getUTCFullYear()).slice(-2)}-${String(e.getUTCMonth()+1).padStart(2,"0")}`}function Ss(t=0){const e=new Date(Date.UTC(cn,un-1,1+t));return[String(e.getUTCFullYear()).slice(-2),String(e.getUTCMonth()+1).padStart(2,"0"),String(e.getUTCDate()).padStart(2,"0")].join("-")}function hn(t,e){const n=t.map((s,o)=>{const r=e*s.ratio/100;return Z(Q({},s),{index:o,exact:r,count:Math.floor(r),remainder:r-Math.floor(r)})});let i=e-n.reduce((s,o)=>s+o.count,0);return n.slice().sort((s,o)=>o.remainder-s.remainder||s.index-o.index).forEach(s=>{i<=0||(s.count+=1,i-=1)}),n.map(h=>{var d=h,{index:s,exact:o,remainder:r}=d,a=vt(d,["index","exact","remainder"]);return Z(Q({},a),{count:Math.round(a.count)})})}function Es(t){const e=new Map;return t.forEach(n=>{const i=n.name,s=e.get(i)||{name:i,count:0};s.count+=Number(n.count||0),e.set(i,s)}),[...e.values()].sort((n,i)=>i.count-n.count)}export{ns as B,Zi as D,is as E,os as G,es as L,Qi as M,ts as P,ss as a,$i as b,on as c,vs as d,ys as e,Wt as f,dt as g,as as h,Yi as i,Ss as j,Ee as k,rs as l,cs as m,Fi as n,Wi as o,ws as p,gs as q,ps as r,fs as s,us as t,ds as u,ms as v,hs as w,Es as x,ls as y}; diff --git a/docs/assets/data-5aa1bc1b-1784043664472.js b/docs/assets/data-5aa1bc1b-1784043664472.js new file mode 100644 index 0000000..4113313 --- /dev/null +++ b/docs/assets/data-5aa1bc1b-1784043664472.js @@ -0,0 +1,16380 @@ +var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var Un=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var En=Math.pow,Rn=(n,e,t)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,d=(n,e)=>{for(var t in e||(e={}))ie.call(e,t)&&Rn(n,t,e[t]);if(Un)for(var t of Un(e))ue.call(e,t)&&Rn(n,t,e[t]);return n},S=(n,e)=>re(n,se(e));import{d as le,c as C}from"./livestockData-36ec0ae2-1784043664472.js";import{h as ce,H as W}from"./townshipBoundaries-1b068bef-1784043664472.js";const ge=`{ + "datasetName": "红原牦牛产业全链分类数据草稿", + "generatedAt": "2026-07-01T19:47:37", + "privacy": { + "includedContactFields": [ + "户主", + "负责人", + "联系人", + "联系电话", + "服务热线", + "信贷联系电话", + "24小时理赔热线" + ], + "excludedPersonalFields": [ + "身份证", + "备注" + ], + "note": "此 JSON 面向大屏展示,已保留可展示的联系人/电话字段;身份证和备注仍未写入。图片文件仅登记为视觉参考,不作为业务数据。" + }, + "fileInventory": [ + { + "path": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "type": "xlsx", + "role": "data-source" + }, + { + "path": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "type": "xlsx", + "role": "data-source" + }, + { + "path": "cxpt.qkl.public.t_base_land", + "type": "database-table", + "role": "data-source" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-1.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-2.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-3.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-4.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-5.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-6.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-7.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-8.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-9.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-10.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-11.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-12.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-9ee4fd26-fb6f-46c2-81ea-f9925d24acf8.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-acf2f529-2ce8-4d8b-96eb-6899d2beb524.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-eded9fbe-e18f-4b2a-88ad-b207e8589cd3.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-ae00ea0b-6e25-4a45-b182-2ab3cdae2abd.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-d7084d17-25fa-43e5-b216-a1d62b49f862.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-f3e1ccc7-5d38-4103-96eb-be214e5b67c0.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-5ffbf4b9-ab8f-49a4-8577-705da4e7c157.png", + "type": "png", + "role": "visual-reference" + }, + { + "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-1548ca35-7fe9-4786-9cb4-41366b1b5b10.png", + "type": "png", + "role": "visual-reference" + } + ], + "summary": { + "categoryCount": 18, + "itemCount": 206, + "categoryCounts": { + "YC-FAMILY-PASTURE": 82, + "YC-BREEDING-BASE": 19, + "YC-BREEDING-STOCK": 4, + "YC-FORAGE-BASE": 8, + "YC-DISASTER-FORAGE-STORAGE": 7, + "YC-PROCESSING-PLANT": 9, + "YC-SLAUGHTERHOUSE": 7, + "YC-FARM-EQUIPMENT": 2, + "YC-DISEASE-CONTROL": 3, + "YC-TECH-TRAINING": 8, + "YC-SERVICE-FINANCE": 4, + "YC-SERVICE-INSURANCE": 4, + "YC-GRASSLAND-RESOURCE": 3, + "YC-CXPT-BREEDING-BASE": 28, + "YC-CXPT-FORAGE-BASE": 5, + "YC-CXPT-BREEDING-STOCK-BASE": 1, + "YC-CXPT-GRASS-SEED-BASE": 1, + "YC-CXPT-OTHER-BASE": 11 + } + }, + "sourceSheets": [ + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "防灾减灾饲草储备库", + "categoryCode": "YC-DISASTER-FORAGE-STORAGE", + "rawRowCount": 7, + "keptFields": [ + "主体全称", + "上级单位", + "所属乡镇", + "详细地址", + "经度", + "纬度", + "运营状态", + "总库容 (吨)", + "储备草种", + "发放次数" + ], + "excludedFields": [] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "标准化养殖基地", + "categoryCode": "YC-BREEDING-BASE", + "rawRowCount": 19, + "keptFields": [ + "主体全称", + "运营单位", + "经纬度", + "建设 / 升级年份", + "详细地址", + "运营状态", + "设计存栏量 (头)", + "年出栏量 (头)", + "监控设备情况" + ], + "excludedFields": [ + "备注", + "Unnamed:10" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "育种场", + "categoryCode": "YC-BREEDING-STOCK", + "rawRowCount": 4, + "keptFields": [ + "主体全称", + "简称", + "运营单位", + "建设 / 升级年份", + "详细地址", + "经纬度", + "运营状态", + "育种等级", + "核心基础母牛群 (头)", + "种公牛数量 (头)", + "年提供良种犊牛 (头)", + "主要育种方向", + "基本介绍", + "监控设备情况" + ], + "excludedFields": [] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "种草饲草基地", + "categoryCode": "YC-FORAGE-BASE", + "rawRowCount": 16, + "keptFields": [ + "基地全称", + "所属乡镇", + "运营状态", + "种植面积 (亩)", + "主要草种", + "年产量 (吨)", + "经纬度" + ], + "excludedFields": [ + "Unnamed:7", + "Unnamed:8", + "Unnamed:9" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "加工厂", + "categoryCode": "YC-PROCESSING-PLANT", + "rawRowCount": 9, + "keptFields": [ + "企业全称", + "详细地址", + "经度", + "纬度", + "运营状态", + "SC 许可证号", + "设计日处理鲜奶能力 (吨)", + "年加工鲜奶总量 (吨)", + "主要产品", + "奶源来源", + "年产值 (万元)", + "带动本地农户数", + "原料奶冷藏能力 (吨)", + "产品销售范围", + "负责人", + "联系电话" + ], + "excludedFields": [ + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "屠宰厂", + "categoryCode": "YC-SLAUGHTERHOUSE", + "rawRowCount": 7, + "keptFields": [ + "企业全称", + "定点屠宰证号", + "详细地址", + "经度", + "纬度", + "运营状态", + "设计日屠宰能力 (头)", + "年屠宰总量 (头)", + "冷冻库容量 (吨)", + "环保达标情况", + "年总产值 (万元)", + "负责人", + "联系电话" + ], + "excludedFields": [ + "备注", + "Unnamed:14", + "Unnamed:15", + "Unnamed:16", + "Unnamed:17", + "Unnamed:18", + "Unnamed:19", + "Unnamed:20", + "Unnamed:21", + "Unnamed:22", + "Unnamed:23", + "Unnamed:24", + "Unnamed:25", + "Unnamed:26", + "Unnamed:27", + "Unnamed:28", + "Unnamed:29", + "Unnamed:30", + "Unnamed:31", + "Unnamed:32", + "Unnamed:33", + "Unnamed:34", + "Unnamed:35" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "农机装备", + "categoryCode": "YC-FARM-EQUIPMENT", + "rawRowCount": 2, + "keptFields": [ + "主体全称", + "简称", + "所属乡镇", + "经度", + "纬度", + "运营状态", + "组织形式", + "主要服务项目", + "主要设备类型", + "设备总台数 (台)", + "可出租设备数 (台)", + "服务覆盖乡镇数", + "收费标准", + "服务热线", + "年产值 (万元)", + "负责人", + "联系电话" + ], + "excludedFields": [ + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "疫病防控", + "categoryCode": "YC-DISEASE-CONTROL", + "rawRowCount": 3, + "keptFields": [ + "主体全称", + "详细地址", + "经度", + "纬度", + "运营状态", + "服务覆盖乡镇数", + "主要服务内容", + "持证兽医数", + "是否 24 小时应急", + "联系电话" + ], + "excludedFields": [ + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "技术培训", + "categoryCode": "YC-TECH-TRAINING", + "rawRowCount": 8, + "keptFields": [ + "序号", + "机构全称", + "机构类型", + "所属乡镇", + "红原办公地址", + "培训等级", + "年培训场次", + "年培训人次", + "单次最大容纳人数", + "主要培训内容", + "核心专家团队", + "最近培训时间", + "下期培训计划(时间 + 内容)", + "联系人", + "联系电话" + ], + "excludedFields": [ + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "金融服务网点", + "categoryCode": "YC-SERVICE-FINANCE", + "rawRowCount": 4, + "keptFields": [ + "序号", + "银行全称", + "简称", + "红原支行地址", + "经度", + "纬度", + "服务覆盖乡镇数", + "主要贷款产品(可多选)", + "最高单户贷款额度 (万元)", + "最长贷款期限 (年)", + "年利率范围", + "还款方式", + "联系人", + "信贷联系电话" + ], + "excludedFields": [ + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "保险服务网点", + "categoryCode": "YC-SERVICE-INSURANCE", + "rawRowCount": 4, + "keptFields": [ + "序号", + "公司全称", + "简称", + "红原支公司地址", + "经度", + "纬度", + "服务覆盖乡镇数", + "主要承保险种(可多选)", + "24 小时理赔热线", + "2025 年承保牦牛数量 (头)", + "平均理赔时效 (天)", + "最高单头赔付金额 (元)", + "联系人", + "联系电话" + ], + "excludedFields": [ + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sheetName": "林草局数据", + "categoryCode": "YC-GRASSLAND-RESOURCE", + "rawRowCount": 4, + "keptFields": [ + "天然草原改良", + "人工种草", + "鼠虫害防治", + "全县草原面积", + "基本草原面积", + "一般草原面积", + "湿地面积", + "灌木林面积", + "围栏封育面积", + "生态奖补面积,到每个村" + ], + "excludedFields": [ + "Unnamed:0", + "Unnamed:11", + "备注" + ] + }, + { + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sheetName": "Sheet1", + "categoryCode": "YC-FAMILY-PASTURE", + "rawRowCount": 82, + "keptFields": [ + "序号", + "乡镇", + "点位", + "户主", + "暖棚经纬度", + "管理用房经纬度", + "坐落" + ], + "excludedFields": [ + "身份证", + "备注" + ] + }, + { + "sourceFile": "cxpt PostgreSQL database", + "sheetName": "t_base_land", + "categoryCode": "YC-CXPT-*", + "rawRowCount": 46, + "keptFields": [ + "id", + "name", + "type", + "area_code", + "address", + "scale", + "acreage", + "leader", + "tel", + "leader_phone", + "geom centroid" + ], + "excludedFields": [ + "description", + "imgs", + "remarks" + ] + } + ], + "categories": [ + { + "categoryCode": "YC-FAMILY-PASTURE", + "categoryName": "家庭生态牧场", + "industryStage": "family-pasture", + "sources": [ + "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx:Sheet1" + ], + "itemCount": 82, + "items": [ + { + "id": "YC-FAMILY-PASTURE-001", + "name": "安曲镇夺龙村1号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "夺龙村", + "pointName": "1号点", + "locations": { + "greenhouse": { + "longitude": 102.45047712, + "latitude": 32.61360272 + }, + "managementHouse": { + "longitude": 102.45082378, + "latitude": 32.6136657 + } + }, + "contacts": { + "owner": "拿木甲" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-002", + "name": "安曲镇夺龙村2号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "夺龙村", + "pointName": "2号点", + "locations": { + "greenhouse": { + "longitude": 102.34691526, + "latitude": 32.61425696 + }, + "managementHouse": { + "longitude": 102.34697849, + "latitude": 32.61455374 + } + }, + "contacts": { + "owner": "桑我甲" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-003", + "name": "安曲镇夺龙村3号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "夺龙村", + "pointName": "3号点", + "locations": { + "greenhouse": { + "longitude": 102.37805264, + "latitude": 32.5692703 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "泽朗罗日" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-004", + "name": "安曲镇哈拉玛村4号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "哈拉玛村", + "pointName": "4号点", + "locations": { + "greenhouse": { + "longitude": 102.31781652, + "latitude": 32.67023409 + }, + "managementHouse": { + "longitude": 102.318167, + "latitude": 32.67018808 + } + }, + "contacts": { + "owner": "德清旺姆" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-005", + "name": "安曲镇下哈拉玛村5号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "下哈拉玛村", + "pointName": "5号点", + "locations": { + "greenhouse": { + "longitude": 102.43198641, + "latitude": 32.73093298 + }, + "managementHouse": { + "longitude": 102.43182146, + "latitude": 32.73162602 + } + }, + "contacts": {}, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-006", + "name": "安曲镇下哈拉玛村6号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "下哈拉玛村", + "pointName": "6号点", + "locations": { + "greenhouse": { + "longitude": 102.42615548, + "latitude": 32.80562386 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": {}, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-007", + "name": "安曲镇下哈拉玛村7号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "安曲镇", + "village": "下哈拉玛村", + "pointName": "7号点", + "locations": { + "greenhouse": { + "longitude": 102.43325488, + "latitude": 32.76769519 + }, + "managementHouse": { + "longitude": 102.43310351, + "latitude": 32.76736081 + } + }, + "contacts": { + "owner": "尺真" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-008", + "name": "龙日镇龙日坝村8号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "龙日坝村", + "pointName": "8号点", + "locations": { + "greenhouse": { + "longitude": 102.34174988, + "latitude": 32.51793446 + }, + "managementHouse": { + "longitude": 102.34150772, + "latitude": 32.51809855 + } + }, + "contacts": { + "owner": "扎花甲初" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-009", + "name": "龙日镇龙日坝村9号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "龙日坝村", + "pointName": "9号点", + "locations": { + "greenhouse": { + "longitude": 102.39106026, + "latitude": 32.41522425 + }, + "managementHouse": { + "longitude": 102.39163622, + "latitude": 32.41535563 + } + }, + "contacts": { + "owner": "刘永秀" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-010", + "name": "龙日镇龙日坝村10号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "龙日坝村", + "pointName": "10号点", + "locations": { + "greenhouse": { + "longitude": 102.36445049, + "latitude": 32.46856208 + }, + "managementHouse": { + "longitude": 102.36479551, + "latitude": 32.4682826 + } + }, + "contacts": { + "owner": "尼西甲" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-011", + "name": "龙日镇龙日坝村11号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "龙日坝村", + "pointName": "11号点", + "locations": { + "greenhouse": { + "longitude": 102.36543866, + "latitude": 32.46986063 + }, + "managementHouse": { + "longitude": 102.36574919, + "latitude": 32.46984022 + } + }, + "contacts": { + "owner": "尕尔穷" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-012", + "name": "龙日镇壤噶夺玛村12号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "壤噶夺玛村", + "pointName": "12号点", + "locations": { + "greenhouse": { + "longitude": 102.47723794, + "latitude": 32.45980785 + }, + "managementHouse": { + "longitude": 102.47729207, + "latitude": 32.45943812 + } + }, + "contacts": { + "owner": "拉玛扎西" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-013", + "name": "龙日镇龙日坝村12号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "龙日坝村", + "pointName": "12号点", + "locations": { + "greenhouse": { + "longitude": null, + "latitude": null + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": {}, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-014", + "name": "龙日镇格玛村13号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "格玛村", + "pointName": "13号点", + "locations": { + "greenhouse": { + "longitude": 102.57181204, + "latitude": 32.57674824 + }, + "managementHouse": { + "longitude": 102.57153908, + "latitude": 32.57642249 + } + }, + "contacts": { + "owner": "索迫" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-015", + "name": "龙日镇格玛村14号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "格玛村", + "pointName": "14号点", + "locations": { + "greenhouse": { + "longitude": 102.56396058, + "latitude": 32.5657272 + }, + "managementHouse": { + "longitude": 102.56368441, + "latitude": 32.56554011 + } + }, + "contacts": { + "owner": "让白" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-016", + "name": "龙日镇格玛村15号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "格玛村", + "pointName": "15号点", + "locations": { + "greenhouse": { + "longitude": 102.47353743, + "latitude": 32.53889572 + }, + "managementHouse": { + "longitude": 102.47340175, + "latitude": 32.5391063 + } + }, + "contacts": { + "owner": "罗周" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-017", + "name": "龙日镇格玛村16号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "格玛村", + "pointName": "16号点", + "locations": { + "greenhouse": { + "longitude": 102.55268505, + "latitude": 32.54389452 + }, + "managementHouse": { + "longitude": 102.55244875, + "latitude": 32.543925 + } + }, + "contacts": { + "owner": "贡波" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-018", + "name": "龙日镇格玛村17号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "格玛村", + "pointName": "17号点", + "locations": { + "greenhouse": { + "longitude": 102.55699444, + "latitude": 32.51600578 + }, + "managementHouse": { + "longitude": 102.55661126, + "latitude": 32.51593726 + } + }, + "contacts": { + "owner": "阿新" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-019", + "name": "龙日镇壤噶夺玛村18号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "壤噶夺玛村", + "pointName": "18号点", + "locations": { + "greenhouse": { + "longitude": 102.45743039, + "latitude": 32.50039193 + }, + "managementHouse": { + "longitude": 102.45747569, + "latitude": 32.4997112 + } + }, + "contacts": { + "owner": "南木青" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-020", + "name": "龙日镇壤噶夺玛村19号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "壤噶夺玛村", + "pointName": "19号点", + "locations": { + "greenhouse": { + "longitude": 102.51569341, + "latitude": 32.46983718 + }, + "managementHouse": { + "longitude": 102.51611367, + "latitude": 32.46971999 + } + }, + "contacts": { + "owner": "桑白" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-021", + "name": "龙日镇壤噶夺玛村20号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "壤噶夺玛村", + "pointName": "20号点", + "locations": { + "greenhouse": { + "longitude": 102.44978266, + "latitude": 32.53944862 + }, + "managementHouse": { + "longitude": 102.44969589, + "latitude": 32.53923831 + } + }, + "contacts": { + "owner": "尼玛" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-022", + "name": "龙日镇壤噶夺玛村21号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "壤噶夺玛村", + "pointName": "21号点", + "locations": { + "greenhouse": { + "longitude": 102.47179278, + "latitude": 32.40707185 + }, + "managementHouse": { + "longitude": 102.47150078, + "latitude": 32.40722678 + } + }, + "contacts": { + "owner": "求扎" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-023", + "name": "龙日镇壤噶夺玛村22号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "龙日镇", + "village": "壤噶夺玛村", + "pointName": "22号点", + "locations": { + "greenhouse": { + "longitude": 102.49088427, + "latitude": 32.4950118 + }, + "managementHouse": { + "longitude": 102.49071333, + "latitude": 32.49521145 + } + }, + "contacts": { + "owner": "俄白" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-024", + "name": "邛溪镇玛萨村23号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "玛萨村", + "pointName": "23号点", + "locations": { + "greenhouse": { + "longitude": 102.63389415, + "latitude": 32.77017909 + }, + "managementHouse": { + "longitude": 102.6341466, + "latitude": 32.77015436 + } + }, + "contacts": { + "owner": "杨中泽仁" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-025", + "name": "邛溪镇玛萨村24号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "玛萨村", + "pointName": "24号点", + "locations": { + "greenhouse": { + "longitude": 102.55578247, + "latitude": 32.71974519 + }, + "managementHouse": { + "longitude": 102.55496732, + "latitude": 32.71987605 + } + }, + "contacts": { + "owner": "西泽" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-026", + "name": "邛溪镇玛萨村25号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "玛萨村", + "pointName": "25号点", + "locations": { + "greenhouse": { + "longitude": 102.5948059, + "latitude": 32.73476878 + }, + "managementHouse": { + "longitude": 102.59523521, + "latitude": 32.73509347 + } + }, + "contacts": { + "owner": "阿尔布基" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-027", + "name": "邛溪镇玛萨村26号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "玛萨村", + "pointName": "26号点", + "locations": { + "greenhouse": { + "longitude": 102.63704412, + "latitude": 32.8134533 + }, + "managementHouse": { + "longitude": 102.63713205, + "latitude": 32.81316056 + } + }, + "contacts": { + "owner": "兰卡" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-028", + "name": "邛溪镇达格龙村27号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "达格龙村", + "pointName": "27号点", + "locations": { + "greenhouse": { + "longitude": 102.50979432, + "latitude": 32.80879562 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "华扎" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-029", + "name": "邛溪镇达格龙村28号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "达格龙村", + "pointName": "28号点", + "locations": { + "greenhouse": { + "longitude": 102.46200958, + "latitude": 32.954686 + }, + "managementHouse": { + "longitude": 102.46173752, + "latitude": 32.95518424 + } + }, + "contacts": { + "owner": "勒西" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-030", + "name": "邛溪镇达格龙村29号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "达格龙村", + "pointName": "29号点", + "locations": { + "greenhouse": { + "longitude": 102.70045355, + "latitude": 32.72249951 + }, + "managementHouse": { + "longitude": 102.70020081, + "latitude": 32.72191648 + } + }, + "contacts": { + "owner": "夺基泽单" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-031", + "name": "邛溪镇麻色阳德村30号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "麻色阳德村", + "pointName": "30号点", + "locations": { + "greenhouse": { + "longitude": 102.5118488, + "latitude": 32.93352001 + }, + "managementHouse": { + "longitude": 102.51242484, + "latitude": 32.93367637 + } + }, + "contacts": { + "owner": "卡卓措" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-032", + "name": "邛溪镇麻色阳德村31号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "麻色阳德村", + "pointName": "31号点", + "locations": { + "greenhouse": { + "longitude": 102.52277514, + "latitude": 32.95178758 + }, + "managementHouse": { + "longitude": 102.52268299, + "latitude": 32.95119696 + } + }, + "contacts": { + "owner": "甲花若巴" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-033", + "name": "邛溪镇麻色阳德村32号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "麻色阳德村", + "pointName": "32号点", + "locations": { + "greenhouse": { + "longitude": 102.54154441, + "latitude": 32.97243338 + }, + "managementHouse": { + "longitude": 102.54114597, + "latitude": 32.97254854 + } + }, + "contacts": { + "owner": "布穷" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-034", + "name": "邛溪镇热坤村33号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "热坤村", + "pointName": "33号点", + "locations": { + "greenhouse": { + "longitude": 102.68837196, + "latitude": 32.90189172 + }, + "managementHouse": { + "longitude": 102.68834131, + "latitude": 32.90209342 + } + }, + "contacts": { + "owner": "丹姆初" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-035", + "name": "邛溪镇热坤村34号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "热坤村", + "pointName": "34号点", + "locations": { + "greenhouse": { + "longitude": 102.66431407, + "latitude": 32.89220187 + }, + "managementHouse": { + "longitude": 102.6640831, + "latitude": 32.89217135 + } + }, + "contacts": { + "owner": "塔尔洼" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-036", + "name": "邛溪镇热坤村35号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "热坤村", + "pointName": "35号点", + "locations": { + "greenhouse": { + "longitude": 102.57510429, + "latitude": 32.8117671 + }, + "managementHouse": { + "longitude": 102.57449573, + "latitude": 32.81193451 + } + }, + "contacts": { + "owner": "相木秋" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-037", + "name": "邛溪镇热多村36号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "热多村", + "pointName": "36号点", + "locations": { + "greenhouse": { + "longitude": 102.60036425, + "latitude": 32.96680279 + }, + "managementHouse": { + "longitude": 102.59972676, + "latitude": 32.96673649 + } + }, + "contacts": { + "owner": "索科" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-038", + "name": "邛溪镇热多村37号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "热多村", + "pointName": "37号点", + "locations": { + "greenhouse": { + "longitude": 102.5418407, + "latitude": 32.92737961 + }, + "managementHouse": { + "longitude": 102.54097207, + "latitude": 32.92694872 + } + }, + "contacts": { + "owner": "容中黑周" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-039", + "name": "邛溪镇热多村38号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "邛溪镇", + "village": "热多村", + "pointName": "38号点", + "locations": { + "greenhouse": { + "longitude": 102.58801957, + "latitude": 32.88408206 + }, + "managementHouse": { + "longitude": 102.58826677, + "latitude": 32.88476392 + } + }, + "contacts": { + "owner": "桑都" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-040", + "name": "查尔玛乡什布龙村39号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "什布龙村", + "pointName": "39号点", + "locations": { + "greenhouse": { + "longitude": 102.07972827, + "latitude": 32.47333689 + }, + "managementHouse": { + "longitude": 102.07991934, + "latitude": 32.47311379 + } + }, + "contacts": { + "owner": "茫兴" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-041", + "name": "查尔玛乡什布龙村40号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "什布龙村", + "pointName": "40号点", + "locations": { + "greenhouse": { + "longitude": 102.02905511, + "latitude": 32.43749287 + }, + "managementHouse": { + "longitude": 102.02913011, + "latitude": 32.43776256 + } + }, + "contacts": { + "owner": "得基卓玛" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-042", + "name": "查尔玛乡什布龙村41号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "什布龙村", + "pointName": "41号点", + "locations": { + "greenhouse": { + "longitude": 102.02290624, + "latitude": 32.46043784 + }, + "managementHouse": { + "longitude": 102.02292951, + "latitude": 32.46024019 + } + }, + "contacts": { + "owner": "俄玛" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-043", + "name": "查尔玛乡什布龙村42号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "什布龙村", + "pointName": "42号点", + "locations": { + "greenhouse": { + "longitude": null, + "latitude": null + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "能周" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-044", + "name": "查尔玛乡查龙村43号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "查龙村", + "pointName": "43号点", + "locations": { + "greenhouse": { + "longitude": 101.9504197, + "latitude": 32.41285591 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "桑都措" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-045", + "name": "查尔玛乡查龙村44号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "查龙村", + "pointName": "44号点", + "locations": { + "greenhouse": { + "longitude": 101.93515169, + "latitude": 32.42601524 + }, + "managementHouse": { + "longitude": 101.93533172, + "latitude": 32.42625182 + } + }, + "contacts": { + "owner": "求沙" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-046", + "name": "查尔玛乡查龙村45号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "查龙村", + "pointName": "45号点", + "locations": { + "greenhouse": { + "longitude": 101.95330639, + "latitude": 32.50669919 + }, + "managementHouse": { + "longitude": 101.95319961, + "latitude": 32.50653773 + } + }, + "contacts": { + "owner": "旦渣" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-047", + "name": "查尔玛乡达尔龙村46号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "达尔龙村", + "pointName": "46号点", + "locations": { + "greenhouse": { + "longitude": 102.13292789, + "latitude": 32.44464674 + }, + "managementHouse": { + "longitude": 102.13310816, + "latitude": 32.44495604 + } + }, + "contacts": { + "owner": "达玛王" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-048", + "name": "查尔玛乡达尔龙村47号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "达尔龙村", + "pointName": "47号点", + "locations": { + "greenhouse": { + "longitude": 102.1000073, + "latitude": 32.52950127 + }, + "managementHouse": { + "longitude": 102.10031343, + "latitude": 32.52946984 + } + }, + "contacts": { + "owner": "吉措" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-049", + "name": "查尔玛乡达尔龙村48号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "查尔玛乡", + "village": "达尔龙村", + "pointName": "48号点", + "locations": { + "greenhouse": { + "longitude": 102.11832613, + "latitude": 32.54201141 + }, + "managementHouse": { + "longitude": 102.1186522, + "latitude": 32.54205879 + } + }, + "contacts": { + "owner": "然让" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-050", + "name": "瓦切镇德香村49号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "德香村", + "pointName": "49号点", + "locations": { + "greenhouse": { + "longitude": 102.59826937, + "latitude": 33.15242954 + }, + "managementHouse": { + "longitude": 102.59817262, + "latitude": 33.15279516 + } + }, + "contacts": { + "owner": "索郎益西" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-051", + "name": "瓦切镇德香村50号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "德香村", + "pointName": "50号点", + "locations": { + "greenhouse": { + "longitude": 102.58881798, + "latitude": 33.13491038 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "阿布洛" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-052", + "name": "瓦切镇德香村51号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "德香村", + "pointName": "51号点", + "locations": { + "greenhouse": { + "longitude": 102.62447024, + "latitude": 33.14756405 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "甲花扎巴" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-053", + "name": "瓦切镇唐日村52号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "唐日村", + "pointName": "52号点", + "locations": { + "greenhouse": { + "longitude": 102.60249352, + "latitude": 33.06252399 + }, + "managementHouse": { + "longitude": 102.60287876, + "latitude": 33.06269322 + } + }, + "contacts": { + "owner": "桑阿" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-054", + "name": "瓦切镇唐日村53号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "唐日村", + "pointName": "53号点", + "locations": { + "greenhouse": { + "longitude": 102.6195876, + "latitude": 33.07660844 + }, + "managementHouse": { + "longitude": 102.62023015, + "latitude": 33.07672504 + } + }, + "contacts": { + "owner": "泽旺卓玛" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-055", + "name": "瓦切镇唐日村54号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "唐日村", + "pointName": "54号点", + "locations": { + "greenhouse": { + "longitude": 102.65878993, + "latitude": 33.0443906 + }, + "managementHouse": { + "longitude": 102.65907881, + "latitude": 33.04426714 + } + }, + "contacts": { + "owner": "达多杰" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-056", + "name": "瓦切镇曲登塘社区55号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "曲登塘社区", + "pointName": "55号点", + "locations": { + "greenhouse": { + "longitude": 102.60968583, + "latitude": 33.05324231 + }, + "managementHouse": { + "longitude": 102.60900684, + "latitude": 33.05296943 + } + }, + "contacts": { + "owner": "甲花" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-057", + "name": "瓦切镇达峨村56号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "达峨村", + "pointName": "56号点", + "locations": { + "greenhouse": { + "longitude": 102.60365851, + "latitude": 33.08085512 + }, + "managementHouse": { + "longitude": 102.60388795, + "latitude": 33.080497 + } + }, + "contacts": { + "owner": "普尔娃他" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-058", + "name": "瓦切镇达峨村57号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "达峨村", + "pointName": "57号点", + "locations": { + "greenhouse": { + "longitude": 102.60526934, + "latitude": 33.03662516 + }, + "managementHouse": { + "longitude": 102.60558227, + "latitude": 33.03649561 + } + }, + "contacts": { + "owner": "腊夺" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-059", + "name": "瓦切镇达峨村58号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "达峨村", + "pointName": "58号点", + "locations": { + "greenhouse": { + "longitude": 102.68739311, + "latitude": 33.0149217 + }, + "managementHouse": { + "longitude": 102.68677242, + "latitude": 33.01494028 + } + }, + "contacts": { + "owner": "拉姆姐" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-060", + "name": "瓦切镇日干村59号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "日干村", + "pointName": "59号点", + "locations": { + "greenhouse": { + "longitude": 102.75821556, + "latitude": 33.05186118 + }, + "managementHouse": { + "longitude": 102.75797357, + "latitude": 33.05247976 + } + }, + "contacts": { + "owner": "尔金姐" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-061", + "name": "瓦切镇日干村60号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "日干村", + "pointName": "60号点", + "locations": { + "greenhouse": { + "longitude": 102.72188962, + "latitude": 33.09419876 + }, + "managementHouse": { + "longitude": 102.72144107, + "latitude": 33.09435508 + } + }, + "contacts": { + "owner": "果·尼科" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-062", + "name": "瓦切镇日干村61号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "日干村", + "pointName": "61号点", + "locations": { + "greenhouse": { + "longitude": 102.61834278, + "latitude": 33.16780533 + }, + "managementHouse": { + "longitude": null, + "latitude": null + } + }, + "contacts": { + "owner": "苏拉王" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-063", + "name": "瓦切镇色永村62号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "色永村", + "pointName": "62号点", + "locations": { + "greenhouse": { + "longitude": 102.80909925, + "latitude": 33.03857555 + }, + "managementHouse": { + "longitude": 102.80956551, + "latitude": 33.03877017 + } + }, + "contacts": { + "owner": "桑阿" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-064", + "name": "瓦切镇色永村63号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "色永村", + "pointName": "63号点", + "locations": { + "greenhouse": { + "longitude": 102.82561727, + "latitude": 33.03236022 + }, + "managementHouse": { + "longitude": 102.82588257, + "latitude": 33.03170874 + } + }, + "contacts": { + "owner": "卓玛娜姆" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-065", + "name": "瓦切镇色永村64号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "瓦切镇", + "village": "色永村", + "pointName": "64号点", + "locations": { + "greenhouse": { + "longitude": 102.83285089, + "latitude": 33.02300106 + }, + "managementHouse": { + "longitude": 102.83282822, + "latitude": 33.02336202 + } + }, + "contacts": { + "owner": "麦朵拉姆" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-066", + "name": "江茸乡江宫玛村65号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "江宫玛村", + "pointName": "65号点", + "locations": { + "greenhouse": { + "longitude": 102.20070669, + "latitude": 32.42224384 + }, + "managementHouse": { + "longitude": 102.19990732, + "latitude": 32.42229086 + } + }, + "contacts": { + "owner": "支多娜姆" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-067", + "name": "江茸乡江宫玛村66号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "江宫玛村", + "pointName": "66号点", + "locations": { + "greenhouse": { + "longitude": 102.20320835, + "latitude": 32.43908196 + }, + "managementHouse": { + "longitude": 102.20292182, + "latitude": 32.43868925 + } + }, + "contacts": { + "owner": "俄波" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-068", + "name": "江茸乡江宫玛村67号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "江宫玛村", + "pointName": "67号点", + "locations": { + "greenhouse": { + "longitude": 102.22170157, + "latitude": 32.47727277 + }, + "managementHouse": { + "longitude": 102.2217086, + "latitude": 32.4769641 + } + }, + "contacts": { + "owner": "格日" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-069", + "name": "江茸乡茸日玛村68号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "茸日玛村", + "pointName": "68号点", + "locations": { + "greenhouse": { + "longitude": 102.22028091, + "latitude": 32.50928539 + }, + "managementHouse": { + "longitude": 102.21973813, + "latitude": 32.50918264 + } + }, + "contacts": { + "owner": "更让尼玛" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-070", + "name": "江茸乡茸日玛村69号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "茸日玛村", + "pointName": "69号点", + "locations": { + "greenhouse": { + "longitude": 102.22815984, + "latitude": 32.51915025 + }, + "managementHouse": { + "longitude": 102.22810898, + "latitude": 32.51942 + } + }, + "contacts": { + "owner": "罗布让" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-071", + "name": "江茸乡茸日玛村70号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "茸日玛村", + "pointName": "70号点", + "locations": { + "greenhouse": { + "longitude": 102.22913952, + "latitude": 32.50866903 + }, + "managementHouse": { + "longitude": 102.22938935, + "latitude": 32.50833256 + } + }, + "contacts": { + "owner": "王甲" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-072", + "name": "江茸乡茸日玛村71号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "江茸乡", + "village": "茸日玛村", + "pointName": "71号点", + "locations": { + "greenhouse": { + "longitude": 102.23962706, + "latitude": 32.48083944 + }, + "managementHouse": { + "longitude": 102.23990168, + "latitude": 32.48078901 + } + }, + "contacts": { + "owner": "占波" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-073", + "name": "刷经寺镇壤口村72号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "刷经寺镇", + "village": "壤口村", + "pointName": "72号点", + "locations": { + "greenhouse": { + "longitude": 102.61148498, + "latitude": 32.08914501 + }, + "managementHouse": { + "longitude": 102.61169021, + "latitude": 32.08932106 + } + }, + "contacts": { + "owner": "罗日" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-074", + "name": "刷经寺镇壤口村73号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "刷经寺镇", + "village": "壤口村", + "pointName": "73号点", + "locations": { + "greenhouse": { + "longitude": 102.5699463, + "latitude": 32.08635954 + }, + "managementHouse": { + "longitude": 102.56962246, + "latitude": 32.08623818 + } + }, + "contacts": { + "owner": "甲花夺基" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-075", + "name": "刷经寺镇壤口村74号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "刷经寺镇", + "village": "壤口村", + "pointName": "74号点", + "locations": { + "greenhouse": { + "longitude": 102.48249928, + "latitude": 32.20799391 + }, + "managementHouse": { + "longitude": 102.48240109, + "latitude": 32.20777413 + } + }, + "contacts": { + "owner": "供木丹" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-076", + "name": "刷经寺镇壤口村75号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "刷经寺镇", + "village": "壤口村", + "pointName": "75号点", + "locations": { + "greenhouse": { + "longitude": 102.55912658, + "latitude": 32.38683384 + }, + "managementHouse": { + "longitude": 102.5588633, + "latitude": 32.38692708 + } + }, + "contacts": { + "owner": "华尔白" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-077", + "name": "阿木乡峨扎村76号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "阿木乡", + "village": "峨扎村", + "pointName": "76号点", + "locations": { + "greenhouse": { + "longitude": 102.67883757, + "latitude": 32.93485478 + }, + "managementHouse": { + "longitude": 102.67850122, + "latitude": 32.93495695 + } + }, + "contacts": { + "owner": "谢尔拉姆" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-078", + "name": "阿木乡峨扎村77号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "阿木乡", + "village": "峨扎村", + "pointName": "77号点", + "locations": { + "greenhouse": { + "longitude": 102.8392576, + "latitude": 32.77165891 + }, + "managementHouse": { + "longitude": 102.83999152, + "latitude": 32.77133407 + } + }, + "contacts": { + "owner": "若巴" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-079", + "name": "阿木乡峨扎村78号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "阿木乡", + "village": "峨扎村", + "pointName": "78号点", + "locations": { + "greenhouse": { + "longitude": 102.78948161, + "latitude": 32.79853105 + }, + "managementHouse": { + "longitude": 102.79027109, + "latitude": 32.79883402 + } + }, + "contacts": { + "owner": "扑尔夺" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-080", + "name": "阿木乡卡口村79号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "阿木乡", + "village": "卡口村", + "pointName": "79号点", + "locations": { + "greenhouse": { + "longitude": 102.83426146, + "latitude": 32.86765306 + }, + "managementHouse": { + "longitude": 102.83380011, + "latitude": 32.86722605 + } + }, + "contacts": { + "owner": "甲基" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-081", + "name": "阿木乡卡口村80号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "阿木乡", + "village": "卡口村", + "pointName": "80号点", + "locations": { + "greenhouse": { + "longitude": 102.83237405, + "latitude": 32.82819561 + }, + "managementHouse": { + "longitude": 102.83189751, + "latitude": 32.82836028 + } + }, + "contacts": { + "owner": "尕得" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + }, + { + "id": "YC-FAMILY-PASTURE-082", + "name": "阿木乡卡口村81号点家庭牧场", + "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "sourceSheet": "Sheet1", + "town": "阿木乡", + "village": "卡口村", + "pointName": "81号点", + "locations": { + "greenhouse": { + "longitude": 102.7785588, + "latitude": 32.72665098 + }, + "managementHouse": { + "longitude": 102.77903691, + "latitude": 32.72696452 + } + }, + "contacts": { + "owner": "西夏唐美" + }, + "metrics": {}, + "attributes": { + "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" + } + } + ] + }, + { + "categoryCode": "YC-BREEDING-BASE", + "categoryName": "标准化养殖基地", + "industryStage": "scale-breeding", + "sources": [ + "详细数据清单-归档(1).xlsx:标准化养殖基地" + ], + "itemCount": 19, + "items": [ + { + "id": "YC-BREEDING-BASE-001", + "name": "阿木乡卡口村标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "阿木乡卡口乡", + "status": "正常运营", + "longitude": 102.63473007, + "latitude": 32.92227975, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 429, + "年出栏量 (头)": 35 + }, + "attributes": { + "运营单位": "阿木乡卡口村村集体经济", + "建设 / 升级年份": "2022年", + "监控设备情况": "已接入" + } + }, + { + "id": "YC-BREEDING-BASE-002", + "name": "瓦切唐日标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "唐日村", + "status": "正常运营", + "longitude": 102.6175964, + "latitude": 33.10971976, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 250 + }, + "attributes": { + "运营单位": "瓦切镇唐日村村集体经济", + "建设 / 升级年份": "2023年", + "监控设备情况": "已接入" + } + }, + { + "id": "YC-BREEDING-BASE-003", + "name": "瓦切镇标准化色永村养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "瓦切镇色永村", + "status": "正常运营", + "longitude": 102.62460529, + "latitude": 33.13967122, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 600, + "年出栏量 (头)": 1300 + }, + "attributes": { + "运营单位": "红原县高原犇犇农副产品有限公司", + "建设 / 升级年份": "2023年", + "监控设备情况": "2个在线,2个离线。电路在维修" + } + }, + { + "id": "YC-BREEDING-BASE-004", + "name": "瓦切镇达俄村标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "瓦切镇达俄村", + "status": "正常运营", + "longitude": 102.61994774, + "latitude": 33.07151208, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 500, + "年出栏量 (头)": 90 + }, + "attributes": { + "运营单位": "红原县雅卓阳养殖农民专业合作社", + "建设 / 升级年份": "2024年", + "监控设备情况": "3个设备离线,电线被施工方挖断了" + } + }, + { + "id": "YC-BREEDING-BASE-005", + "name": "安曲牦牛扩繁基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "夺龙村", + "status": "正常运营", + "longitude": 102.32214229, + "latitude": 32.64253259, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 200 + }, + "attributes": { + "运营单位": "红原县雅克农业开发有限责任公司", + "建设 / 升级年份": "2022年", + "监控设备情况": "已接入" + } + }, + { + "id": "YC-BREEDING-BASE-006", + "name": "安曲标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "夺龙村", + "status": "正常运营", + "longitude": 102.32390544, + "latitude": 32.63888471, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 600, + "年出栏量 (头)": 1300 + }, + "attributes": { + "运营单位": "红原县高原犇犇农副产品有限公司", + "建设 / 升级年份": "2022年", + "监控设备情况": "已接入" + } + }, + { + "id": "YC-BREEDING-BASE-007", + "name": "安曲下哈拉玛标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "安曲下哈拉玛村", + "status": "正常运营", + "longitude": 102.42837241, + "latitude": 32.7425359, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 100, + "年出栏量 (头)": 30 + }, + "attributes": { + "运营单位": "安曲下哈拉玛村村集体经济", + "建设 / 升级年份": "2023年", + "监控设备情况": "已接入" + } + }, + { + "id": "YC-BREEDING-BASE-008", + "name": "龙日坝标准化养殖基地 (2023)", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "龙日坝村", + "status": "正常运营", + "longitude": 102.38394817, + "latitude": 32.44966887, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 600, + "年出栏量 (头)": 1400 + }, + "attributes": { + "运营单位": "红原县雅克农业开发有限责任公司", + "建设 / 升级年份": 2023, + "监控设备情况": "等他们要到设备账号,然后再接入平台。" + } + }, + { + "id": "YC-BREEDING-BASE-009", + "name": "龙日坝标准化养殖基地 (2025)", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "龙日坝村", + "status": "正常运营", + "longitude": 102.38126323, + "latitude": 32.44955785, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 3000, + "年出栏量 (头)": 11000 + }, + "attributes": { + "运营单位": "红原县高原犇犇农副产品有限公司", + "建设 / 升级年份": 2025, + "监控设备情况": "预计月底完成设备安装,完成后再接入平台。" + } + }, + { + "id": "YC-BREEDING-BASE-010", + "name": "刷经寺嚷口标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "嚷口村", + "status": "正常运营", + "longitude": 102.48723433, + "latitude": 32.20562585, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 600 + }, + "attributes": { + "运营单位": "四川川数农牧科技有限公司", + "建设 / 升级年份": "2023年", + "监控设备情况": "已接入" + } + }, + { + "id": "YC-BREEDING-BASE-011", + "name": "麦洼乡标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "洞拉村", + "status": "正常运营", + "longitude": 102.90867472, + "latitude": 33.07181647, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 500, + "年出栏量 (头)": 1300 + }, + "attributes": { + "运营单位": "红原县高原犇犇农副产品有限公司", + "建设 / 升级年份": "2023年", + "监控设备情况": "断电导致设备离线" + } + }, + { + "id": "YC-BREEDING-BASE-012", + "name": "江茸绵羊养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "茸日村", + "status": "正常运营", + "longitude": 102.26005599, + "latitude": 32.50027984, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 502, + "年出栏量 (头)": 151 + }, + "attributes": { + "运营单位": "江茸乡茸日玛村集体经济", + "建设 / 升级年份": "2023年", + "监控设备情况": "没有设备" + } + }, + { + "id": "YC-BREEDING-BASE-013", + "name": "邛溪镇麻萨阳德村标准化养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "麻色阳德村", + "status": "正常运营", + "longitude": 102.55803526, + "latitude": 32.83725412, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 600, + "年出栏量 (头)": 400 + }, + "attributes": { + "运营单位": "红原县祥发牧业发展有限责任公司", + "建设 / 升级年份": 2024, + "监控设备情况": "等待联系具体情况" + } + }, + { + "id": "YC-BREEDING-BASE-014", + "name": "阿木乡峨扎村养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "峨扎村", + "status": "正常运营", + "longitude": 102.84054893, + "latitude": 32.81675104, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 114, + "年出栏量 (头)": 16 + }, + "attributes": { + "运营单位": "阿木乡", + "建设 / 升级年份": "2022年", + "监控设备情况": "没有设备" + } + }, + { + "id": "YC-BREEDING-BASE-015", + "name": "查尔玛查龙村养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "红原县查尔玛乡查龙村", + "status": "正常运营", + "longitude": 101.95890418, + "latitude": 32.3869733, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 83, + "年出栏量 (头)": 511 + }, + "attributes": { + "运营单位": "红原县查尔玛乡查龙村股份经济合作联合社", + "建设 / 升级年份": 2025, + "监控设备情况": "没有设备" + } + }, + { + "id": "YC-BREEDING-BASE-016", + "name": "查尔玛什布龙养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "红原县查尔玛乡什布龙村", + "status": "正常运营", + "longitude": 102.11433108, + "latitude": 32.42652249, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 60, + "年出栏量 (头)": 286 + }, + "attributes": { + "运营单位": "红原县查尔玛乡什布龙村股份经济合作联合社", + "建设 / 升级年份": 2022, + "监控设备情况": "没有设备" + } + }, + { + "id": "YC-BREEDING-BASE-017", + "name": "查尔玛达尔龙养殖基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "红原县查尔玛乡达尔龙村", + "status": "正常运营", + "longitude": 102.11709449, + "latitude": 32.4529061, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 147, + "年出栏量 (头)": 283 + }, + "attributes": { + "运营单位": "红原县查尔玛乡达尔龙村村股份经济合作联合社", + "建设 / 升级年份": 2024, + "监控设备情况": "没有设备" + } + }, + { + "id": "YC-BREEDING-BASE-018", + "name": "安曲下哈拉玛改良繁育基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "安曲下哈拉玛村", + "status": "正常运营", + "longitude": 102.47817887, + "latitude": 32.77041412, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 100, + "年出栏量 (头)": 30 + }, + "attributes": { + "运营单位": "安曲下哈拉玛村村集体经济", + "监控设备情况": "没有设备" + } + }, + { + "id": "YC-BREEDING-BASE-019", + "name": "麦洼利群合作社", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "标准化养殖基地", + "town": null, + "address": "麦洼乡滚塘村", + "status": "正常运营", + "longitude": 102.91754148, + "latitude": 33.05358447, + "contacts": {}, + "metrics": { + "设计存栏量 (头)": 400, + "年出栏量 (头)": 351 + }, + "attributes": { + "运营单位": "红原县鑫陶一家农业发展专业合作社", + "建设 / 升级年份": "2022年", + "监控设备情况": "没有设备" + } + } + ] + }, + { + "categoryCode": "YC-BREEDING-STOCK", + "categoryName": "育种繁育场", + "industryStage": "scale-breeding", + "sources": [ + "详细数据清单-归档(1).xlsx:育种场" + ], + "itemCount": 4, + "items": [ + { + "id": "YC-BREEDING-STOCK-001", + "name": "安曲牦牛扩繁基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "育种场", + "town": null, + "address": "安曲镇XX村", + "status": "正常运营", + "longitude": 102.32214229, + "latitude": 32.64253259, + "contacts": {}, + "metrics": {}, + "attributes": { + "简称": "安曲育种场", + "运营单位": "红原县雅克农业开发有限责任公司", + "育种等级": "县级", + "主要育种方向": "良种扩繁", + "基本介绍": "管理用房X间、厂房几间、占地多少、人员多少等。" + } + }, + { + "id": "YC-BREEDING-STOCK-002", + "name": "龙日镇农科院扩繁基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "育种场", + "town": null, + "address": null, + "status": "正常运营", + "longitude": 102.2948457, + "latitude": 32.52975262, + "contacts": {}, + "metrics": {}, + "attributes": { + "简称": "龙日种畜场", + "运营单位": "阿坝州农科院", + "建设 / 升级年份": 2024, + "育种等级": "省级", + "主要育种方向": "原种保护与选育", + "监控设备情况": "设备不支持" + } + }, + { + "id": "YC-BREEDING-STOCK-003", + "name": "龙日坝原种场", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "育种场", + "town": null, + "address": null, + "status": "正常运营", + "longitude": 102.29621044, + "latitude": 32.52968225, + "contacts": {}, + "metrics": {}, + "attributes": { + "简称": "龙日原种场", + "运营单位": "阿坝州农科院", + "育种等级": "省级", + "主要育种方向": "麦洼牦牛原种保护", + "监控设备情况": "设备不支持" + } + }, + { + "id": "YC-BREEDING-STOCK-004", + "name": "麦洼洞拉村达坤玛选育场", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "育种场", + "town": null, + "address": null, + "status": null, + "longitude": 102.90220018, + "latitude": 33.07630283, + "contacts": {}, + "metrics": {}, + "attributes": { + "运营单位": "麦洼乡", + "监控设备情况": "没有设备" + } + } + ] + }, + { + "categoryCode": "YC-FORAGE-BASE", + "categoryName": "种草饲草基地", + "industryStage": "artificial-grassland", + "sources": [ + "详细数据清单-归档(1).xlsx:种草饲草基地" + ], + "itemCount": 8, + "items": [ + { + "id": "YC-FORAGE-BASE-001", + "name": "红原机场种草基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": "龙日镇", + "address": null, + "status": "正常运营", + "longitude": 102.3421702, + "latitude": 32.56665418, + "contacts": {}, + "metrics": { + "种植面积 (亩)": 1000 + }, + "attributes": { + "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" + } + }, + { + "id": "YC-FORAGE-BASE-002", + "name": "龙日镇饲草种植基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": "龙日镇", + "address": null, + "status": "正常运营", + "longitude": 102.41691162, + "latitude": 32.4065831, + "contacts": {}, + "metrics": { + "种植面积 (亩)": 10000 + }, + "attributes": { + "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" + } + }, + { + "id": "YC-FORAGE-BASE-003", + "name": "安曲饲草基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": "安曲镇", + "address": null, + "status": "正常运营", + "longitude": 102.42757952, + "latitude": 32.74443722, + "contacts": {}, + "metrics": { + "种植面积 (亩)": 2000 + }, + "attributes": { + "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" + } + }, + { + "id": "YC-FORAGE-BASE-004", + "name": "瓦切饲草基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": "瓦切镇", + "address": null, + "status": "正常运营", + "longitude": 102.59922971, + "latitude": 33.10319702, + "contacts": {}, + "metrics": { + "种植面积 (亩)": 7000 + }, + "attributes": { + "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" + } + }, + { + "id": "YC-FORAGE-BASE-005", + "name": "江茸饲草基地", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": null, + "address": null, + "status": null, + "longitude": 102.26164962, + "latitude": 32.50057455, + "contacts": {}, + "metrics": { + "种植面积 (亩)": 1000 + }, + "attributes": {} + }, + { + "id": "YC-FORAGE-BASE-006", + "name": "畜牧工作站", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + }, + { + "id": "YC-FORAGE-BASE-007", + "name": "规划建设股", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + }, + { + "id": "YC-FORAGE-BASE-008", + "name": "数据欠缺,请两个股室核定饲草基地数据。", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "种草饲草基地", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-DISASTER-FORAGE-STORAGE", + "categoryName": "防灾减灾饲草储备库", + "industryStage": "forage-storage", + "sources": [ + "详细数据清单-归档(1).xlsx:防灾减灾饲草储备库" + ], + "itemCount": 7, + "items": [ + { + "id": "YC-DISASTER-FORAGE-STORAGE-001", + "name": "嚷口防灾减灾饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "刷经寺镇", + "address": "壤口村", + "status": "正常运营", + "longitude": 102.489619, + "latitude": 32.20577086, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "红原县农业农村局", + "储备草种": "燕麦草、披碱草、老芒麦" + } + }, + { + "id": "YC-DISASTER-FORAGE-STORAGE-002", + "name": "安曲防灾减灾饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "安曲镇", + "address": "夺龙村", + "status": "正常运营", + "longitude": 102.3283137, + "latitude": 32.63727531, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "红原县农业农村局", + "储备草种": "燕麦草、披碱草、老芒麦" + } + }, + { + "id": "YC-DISASTER-FORAGE-STORAGE-003", + "name": "瓦切唐日合作社饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "瓦切镇", + "address": "唐日村", + "status": "正常运营", + "longitude": 102.6162349, + "latitude": 33.11047864, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "瓦切唐日合作社", + "储备草种": "燕麦草、披碱草、老芒麦" + } + }, + { + "id": "YC-DISASTER-FORAGE-STORAGE-004", + "name": "瓦切牧草交易中心饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "瓦切镇", + "address": "达俄村", + "status": "正常运营", + "longitude": 102.6014834, + "latitude": 33.09604707, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "红原县农业农村局", + "储备草种": "燕麦草、披碱草、老芒麦" + } + }, + { + "id": "YC-DISASTER-FORAGE-STORAGE-005", + "name": "龙日坝龙日坝村 1 饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "龙日镇", + "address": "龙日坝村", + "status": "正常运营", + "longitude": 102.383916, + "latitude": 32.44992916, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "红原县农业农村局", + "储备草种": "燕麦草、披碱草、老芒麦" + } + }, + { + "id": "YC-DISASTER-FORAGE-STORAGE-006", + "name": "龙日坝龙日坝村 2 饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "龙日镇", + "address": "龙日坝村", + "status": "正常运营", + "longitude": 102.3834086, + "latitude": 32.45041994, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "红原县农业农村局", + "储备草种": "燕麦草、披碱草、老芒麦" + } + }, + { + "id": "YC-DISASTER-FORAGE-STORAGE-007", + "name": "江茸乡饲草储备库", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "防灾减灾饲草储备库", + "town": "江茸乡", + "address": "茸日玛村", + "status": "正常运营", + "longitude": 102.256868, + "latitude": 32.46996565, + "contacts": {}, + "metrics": { + "总库容 (吨)": 1500, + "发放次数": "3-4次" + }, + "attributes": { + "上级单位": "江茸乡", + "储备草种": "燕麦草、披碱草、老芒麦" + } + } + ] + }, + { + "categoryCode": "YC-PROCESSING-PLANT", + "categoryName": "加工厂", + "industryStage": "slaughter-processing", + "sources": [ + "详细数据清单-归档(1).xlsx:加工厂" + ], + "itemCount": 9, + "items": [ + { + "id": "YC-PROCESSING-PLANT-001", + "name": "西部牦牛产业集团有限责任公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆西路37号", + "status": "存续(在营)", + "longitude": 102.5292, + "latitude": 32.7917, + "contacts": { + "leader": "税晓燕", + "phone": 13348993961 + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "约 50吨/日", + "年加工鲜奶总量 (吨)": 3000, + "年产值 (万元)": 30000, + "带动本地农户数": 6000, + "原料奶冷藏能力 (吨)": 400 + }, + "attributes": { + "SC 许可证号": "SC10551323300016", + "主要产品": "牦牛奶粉", + "奶源来源": "红原县及周边", + "产品销售范围": "全国" + } + }, + { + "id": "YC-PROCESSING-PLANT-002", + "name": "四川红原菊乐牦牛乳业有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆东路76号附6号", + "status": "存续(在营)", + "longitude": 102.5666, + "latitude": 32.8179, + "contacts": { + "leader": "刘鑫森", + "phone": 18581879298 + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "约240吨/日", + "年加工鲜奶总量 (吨)": 4000, + "年产值 (万元)": 7000, + "带动本地农户数": 600, + "原料奶冷藏能力 (吨)": 2000 + }, + "attributes": { + "SC 许可证号": "SC10551323300032", + "主要产品": "圣舟牦牛奶", + "奶源来源": "红原县及周边", + "产品销售范围": "全国、四川为主" + } + }, + { + "id": "YC-PROCESSING-PLANT-003", + "name": "四川雅克乳业有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆西路", + "status": "存续(在营)", + "longitude": 102.5315, + "latitude": 32.7921, + "contacts": { + "leader": "徐瑞", + "phone": 18628189868 + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "约 2吨/日", + "年加工鲜奶总量 (吨)": 1000, + "年产值 (万元)": 3000, + "带动本地农户数": 200, + "原料奶冷藏能力 (吨)": "无(委托)" + }, + "attributes": { + "SC 许可证号": "SC10551323300032(委托)", + "主要产品": "牦牛酸奶、牦牛奶粉、牦牛奶冰淇淋(", + "奶源来源": "红原县及周边", + "产品销售范围": "四川" + } + }, + { + "id": "YC-PROCESSING-PLANT-004", + "name": "企业全称", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "详细地址", + "status": "运营状态", + "longitude": null, + "latitude": null, + "contacts": { + "leader": "负责人", + "phone": "联系电话" + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "设计日加工能力 (吨)", + "年加工鲜奶总量 (吨)": "年加工原料肉总量 (吨)", + "年产值 (万元)": "年产值 (万元)", + "带动本地农户数": "带动本地农户数", + "原料奶冷藏能力 (吨)": "冷库容量 (吨)" + }, + "attributes": { + "SC 许可证号": "SC 许可证号", + "主要产品": "主要产品", + "奶源来源": "原料来源", + "产品销售范围": "产品销售范围" + } + }, + { + "id": "YC-PROCESSING-PLANT-005", + "name": "四川红原遛遛牛食品有限责任公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆东路72号", + "status": "存续(在营)", + "longitude": 102.5592, + "latitude": 32.8151, + "contacts": { + "leader": "王加立", + "phone": 13982065805 + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "约15吨/日", + "年加工鲜奶总量 (吨)": "约4500吨/年", + "年产值 (万元)": "约8000万元", + "带动本地农户数": 400, + "原料奶冷藏能力 (吨)": 1000 + }, + "attributes": { + "SC 许可证号": "SC10451323300028", + "主要产品": "风干牦牛肉、手撕牦牛肉、卤制牦牛肉、牦牛肉酱", + "奶源来源": "红原县及周边麦洼牦牛", + "产品销售范围": "全国、四川为主" + } + }, + { + "id": "YC-PROCESSING-PLANT-006", + "name": "四川红原黑帐篷牦牛肉食品有限责任公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆中路", + "status": "存续(在营)", + "longitude": 102.551, + "latitude": 32.7987, + "contacts": { + "leader": "龙国胜", + "phone": "0837-8994333" + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "约 1吨/日", + "年加工鲜奶总量 (吨)": "约300吨/年", + "年产值 (万元)": 1000, + "带动本地农户数": 200, + "原料奶冷藏能力 (吨)": 200 + }, + "attributes": { + "主要产品": "风干牦牛肉、手撕牦牛肉、卤牦牛肉、牦牛肉礼包", + "奶源来源": "红原本地麦洼牦牛", + "产品销售范围": "全国、四川为主" + } + }, + { + "id": "YC-PROCESSING-PLANT-007", + "name": "红原御坊斋牦牛肉制品厂", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县邛溪镇阳嘎北街", + "status": "存续(在营)", + "longitude": 102.5431, + "latitude": 32.7962, + "contacts": { + "leader": "陈远明", + "phone": "0837-2662837" + }, + "metrics": { + "设计日处理鲜奶能力 (吨)": "约 0.5吨/日", + "年加工鲜奶总量 (吨)": "约200吨/年", + "年产值 (万元)": 600, + "带动本地农户数": 100, + "原料奶冷藏能力 (吨)": 100 + }, + "attributes": { + "SC 许可证号": "SC10451323300036", + "主要产品": "牛肉干、卤牦牛肉、手撕牦牛肉、牦牛肉粒", + "奶源来源": "红原本地麦洼牦牛", + "产品销售范围": "四川" + } + }, + { + "id": "YC-PROCESSING-PLANT-008", + "name": "四川牦牛火了生态农业科技有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": "四川省阿坝藏族羌族自治州红原县瑞庆中路13号附1号", + "status": "存续(在营)", + "longitude": 102.5402, + "latitude": 32.7958, + "contacts": { + "leader": "王忠波", + "phone": 18980978767 + }, + "metrics": { + "年产值 (万元)": 500 + }, + "attributes": { + "主要产品": "包装牦牛肉干", + "奶源来源": "红原及周边加工厂成品", + "产品销售范围": "四川" + } + }, + { + "id": "YC-PROCESSING-PLANT-009", + "name": "农产品检测站", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "加工厂", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-SLAUGHTERHOUSE", + "categoryName": "屠宰厂", + "industryStage": "slaughter-processing", + "sources": [ + "详细数据清单-归档(1).xlsx:屠宰厂" + ], + "itemCount": 7, + "items": [ + { + "id": "YC-SLAUGHTERHOUSE-001", + "name": "红原宏牦牛肉食品有限责任公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": "四川省阿坝州红原县邛溪镇桑青路11号", + "status": "正常", + "longitude": 102.53333333, + "latitude": 32.78333333, + "contacts": { + "leader": "蒋悦南", + "phone": 13909047031 + }, + "metrics": { + "设计日屠宰能力 (头)": 200, + "年屠宰总量 (头)": 20000, + "冷冻库容量 (吨)": 800, + "年总产值 (万元)": "2000-5000" + }, + "attributes": { + "环保达标情况": "已达标" + } + }, + { + "id": "YC-SLAUGHTERHOUSE-002", + "name": "红原县永源牦牛肉业有限责任公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": "红原县绿色产业园区", + "status": "正常", + "longitude": 102.56055556, + "latitude": 32.82, + "contacts": { + "leader": "张建", + "phone": 13541231860 + }, + "metrics": { + "设计日屠宰能力 (头)": 167, + "年屠宰总量 (头)": 20000, + "冷冻库容量 (吨)": 2400, + "年总产值 (万元)": 2046 + }, + "attributes": { + "定点屠宰证号": "A29191301", + "环保达标情况": "达标" + } + }, + { + "id": "YC-SLAUGHTERHOUSE-003", + "name": "红原新希望牦牛产业有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": "红原县邛溪镇绿色工业园区内", + "status": "正常", + "longitude": 9175.41666667, + "latitude": 13213.51666667, + "contacts": { + "leader": "柴建", + "phone": "17778545888" + }, + "metrics": { + "设计日屠宰能力 (头)": 300, + "年屠宰总量 (头)": 10000, + "冷冻库容量 (吨)": 3000, + "年总产值 (万元)": 4048.63 + }, + "attributes": { + "环保达标情况": "达标" + } + }, + { + "id": "YC-SLAUGHTERHOUSE-004", + "name": "红原县天交畜牧科技有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": "红原县邛溪镇绿色产业园区瑞庆东路76号附5号", + "status": "正常", + "longitude": 102.90083333, + "latitude": 33.33083333, + "contacts": { + "leader": "余震", + "phone": 18080930003 + }, + "metrics": { + "设计日屠宰能力 (头)": 150, + "年屠宰总量 (头)": 18000, + "冷冻库容量 (吨)": 2000, + "年总产值 (万元)": 1200 + }, + "attributes": { + "环保达标情况": "达标" + } + }, + { + "id": "YC-SLAUGHTERHOUSE-005", + "name": "红原县雪月天佑农牧科技有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + }, + { + "id": "YC-SLAUGHTERHOUSE-006", + "name": "红原牦牛肉食品有限责任公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + }, + { + "id": "YC-SLAUGHTERHOUSE-007", + "name": "执法大队", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "屠宰厂", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-FARM-EQUIPMENT", + "categoryName": "农机装备", + "industryStage": "farm-equipment", + "sources": [ + "详细数据清单-归档(1).xlsx:农机装备" + ], + "itemCount": 2, + "items": [ + { + "id": "YC-FARM-EQUIPMENT-001", + "name": "红原县益众农业机械服务专业合作社", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "农机装备", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "简称": "益众农机" + } + }, + { + "id": "YC-FARM-EQUIPMENT-002", + "name": "农机监理站", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "农机装备", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-DISEASE-CONTROL", + "categoryName": "疫病防控", + "industryStage": "social-service", + "sources": [ + "详细数据清单-归档(1).xlsx:疫病防控" + ], + "itemCount": 3, + "items": [ + { + "id": "YC-DISEASE-CONTROL-001", + "name": "红原县高原牧歌农业科技有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "疫病防控", + "town": null, + "address": "邛溪镇", + "status": null, + "longitude": 102.54861991, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + }, + { + "id": "YC-DISEASE-CONTROL-002", + "name": "红原县动物疫病预防控制中心", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "疫病防控", + "town": null, + "address": "邛溪镇", + "status": null, + "longitude": 102.54852894, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + }, + { + "id": "YC-DISEASE-CONTROL-003", + "name": "疫控中心", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "疫病防控", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-TECH-TRAINING", + "categoryName": "技术培训", + "industryStage": "social-service", + "sources": [ + "详细数据清单-归档(1).xlsx:技术培训" + ], + "itemCount": 8, + "items": [ + { + "id": "YC-TECH-TRAINING-001", + "name": "四川省草科院", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": "瓦切镇", + "address": "国家级牧草基地", + "status": null, + "longitude": null, + "latitude": null, + "contacts": { + "expertTeam": "游明鸿、季晓菲、官久强、安添午、赵文吉、贾国夫等", + "contactPerson": "游明鸿", + "phone": 13880288056 + }, + "metrics": { + "年培训场次": "‘2-3", + "年培训人次": "80-100", + "单次最大容纳人数": 40, + "下期培训计划(时间 + 内容)": "8月,草产品加工、放牧+补饲、中藏药材栽培管理等" + }, + "attributes": { + "序号": 1, + "机构类型": "科研院所", + "主要培训内容": "栽培草种推荐、牧草栽培与草产品加工、牦牛疫病防治、放牧+补饲、道地和特色优势中藏药材栽培技术等", + "最近培训时间": "7月" + } + }, + { + "id": "YC-TECH-TRAINING-002", + "name": "乡村振兴科技特派团", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": "全县覆盖", + "address": "县农业农村局", + "status": null, + "longitude": null, + "latitude": null, + "contacts": { + "expertTeam": "游明鸿、季晓菲、刘琳、官久强、安添午、赵文吉等", + "contactPerson": "游明鸿", + "phone": 13880288056 + }, + "metrics": { + "年培训场次": "’3-4", + "年培训人次": "100-150", + "单次最大容纳人数": 40, + "下期培训计划(时间 + 内容)": "8月,草产品加工、放牧+补饲、中藏药材栽培管理等" + }, + "attributes": { + "序号": 2, + "机构类型": "政府派出机构", + "主要培训内容": "栽培草种推荐、牧草栽培与草产品加工、牦牛疫病防治、放牧+补饲、道地和特色优势中藏药材栽培技术等", + "最近培训时间": "7月" + } + }, + { + "id": "YC-TECH-TRAINING-003", + "name": "中国科学院", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": "邛溪镇", + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": 3, + "机构类型": "国家级科研机构" + } + }, + { + "id": "YC-TECH-TRAINING-004", + "name": "红原县畜牧业高质量发展专家工作站", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": "邛溪镇", + "address": "县畜牧兽医服务中心", + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": 4, + "机构类型": "地方专家平台" + } + }, + { + "id": "YC-TECH-TRAINING-005", + "name": "西南民族大学", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": "邛溪镇", + "address": "红原牦牛研究基地", + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": 5, + "机构类型": "高校" + } + }, + { + "id": "YC-TECH-TRAINING-006", + "name": "阿坝州农科院", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": "马尔康市 / 邛溪镇", + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": 6, + "机构类型": "科研院所" + } + }, + { + "id": "YC-TECH-TRAINING-007", + "name": "对接相关科研院校收集数据", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": "科教股" + } + }, + { + "id": "YC-TECH-TRAINING-008", + "name": "技术培训-8", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "技术培训", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": "科技股" + } + } + ] + }, + { + "categoryCode": "YC-SERVICE-FINANCE", + "categoryName": "金融服务网点", + "industryStage": "social-service", + "sources": [ + "详细数据清单-归档(1).xlsx:金融服务网点" + ], + "itemCount": 4, + "items": [ + { + "id": "YC-SERVICE-FINANCE-001", + "name": "中国农业银行股份有限公司红原县支行", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "金融服务网点", + "town": null, + "address": "红原县邛溪镇阳嘎中街", + "status": null, + "longitude": 102.54, + "latitude": 32.79, + "contacts": { + "contactPerson": "泽旺吉松", + "creditPhone": 13096265881 + }, + "metrics": { + "服务覆盖乡镇数": 10, + "主要贷款产品(可多选)": "惠农e贷、专业大户贷、商户贷、乡旅贷、富民贷、帮扶小额信贷。", + "最高单户贷款额度 (万元)": 150, + "最长贷款期限 (年)": "5年" + }, + "attributes": { + "序号": 1, + "简称": "农行红原支行", + "年利率范围": 0.03, + "还款方式": "等额本息还款、一次性还本按约还息、一次性利随本清、" + } + }, + { + "id": "YC-SERVICE-FINANCE-002", + "name": "四川红原农村商业银行股份有限公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "金融服务网点", + "town": null, + "address": "红原县邛溪镇绛熙中街13号", + "status": null, + "longitude": 102.54, + "latitude": 32.79, + "contacts": { + "contactPerson": "索让东周", + "creditPhone": 18283790555 + }, + "metrics": { + "服务覆盖乡镇数": 9, + "主要贷款产品(可多选)": "小额农贷、生源地信用助学贷款、惠商贷、居民消费贷、消费易贷、个人生产经营贷款、个人综合消费贷款、个人一手住房贷款、一人二手住房贷款", + "最高单户贷款额度 (万元)": 770, + "最长贷款期限 (年)": "生源地信用助学贷款22年、个人一手住房贷款30年、个人贷款5年。" + }, + "attributes": { + "序号": 2, + "简称": "红原农商行", + "年利率范围": "2.1%—5.0%", + "还款方式": "按月结息、按年还本;按月结息,到期一次性还本;等额本息。" + } + }, + { + "id": "YC-SERVICE-FINANCE-003", + "name": "中国邮政储蓄银行股份有限公司红原县支行", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "金融服务网点", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": { + "服务覆盖乡镇数": 9 + }, + "attributes": { + "序号": 3, + "简称": "邮储银行红原支行" + } + }, + { + "id": "YC-SERVICE-FINANCE-004", + "name": "金融服务网点-4", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "金融服务网点", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": "乡村振兴股" + } + } + ] + }, + { + "categoryCode": "YC-SERVICE-INSURANCE", + "categoryName": "保险服务网点", + "industryStage": "social-service", + "sources": [ + "详细数据清单-归档(1).xlsx:保险服务网点" + ], + "itemCount": 4, + "items": [ + { + "id": "YC-SERVICE-INSURANCE-001", + "name": "中华安盟财产保险股份有限公司红原支公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "保险服务网点", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": { + "claimHotline": 95585 + }, + "metrics": { + "服务覆盖乡镇数": 9 + }, + "attributes": { + "序号": 1, + "简称": "中华安盟" + } + }, + { + "id": "YC-SERVICE-INSURANCE-002", + "name": "中国人民财产保险股份有限公司红原支公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "保险服务网点", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": { + "claimHotline": 95518 + }, + "metrics": { + "服务覆盖乡镇数": 9 + }, + "attributes": { + "序号": 2, + "简称": "人保财险" + } + }, + { + "id": "YC-SERVICE-INSURANCE-003", + "name": "中华联合财产保险股份有限公司红原支公司", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "保险服务网点", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": { + "claimHotline": 95585 + }, + "metrics": { + "服务覆盖乡镇数": 9 + }, + "attributes": { + "序号": 3, + "简称": "中华财险" + } + }, + { + "id": "YC-SERVICE-INSURANCE-004", + "name": "保险服务网点-4", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "保险服务网点", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": {}, + "attributes": { + "序号": "疫控中心" + } + } + ] + }, + { + "categoryCode": "YC-GRASSLAND-RESOURCE", + "categoryName": "林草资源数据", + "industryStage": "artificial-grassland", + "sources": [ + "详细数据清单-归档(1).xlsx:林草局数据" + ], + "itemCount": 3, + "items": [ + { + "id": "YC-GRASSLAND-RESOURCE-001", + "name": "林草局数据-1", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "林草局数据", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": { + "灌木林面积": "调整优化意见", + "围栏封育面积": "ABC 是基本草原", + "生态奖补面积,到每个村": "DE一般草原" + }, + "attributes": {} + }, + { + "id": "YC-GRASSLAND-RESOURCE-002", + "name": "林草局数据-2", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "林草局数据", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": { + "灌木林面积": "基本草原面积:", + "围栏封育面积": 637.127369, + "生态奖补面积,到每个村": "万亩" + }, + "attributes": {} + }, + { + "id": "YC-GRASSLAND-RESOURCE-003", + "name": "林草局数据-3", + "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", + "sourceSheet": "林草局数据", + "town": null, + "address": null, + "status": null, + "longitude": null, + "latitude": null, + "contacts": {}, + "metrics": { + "灌木林面积": "一般草原面积", + "围栏封育面积": 119.301972, + "生态奖补面积,到每个村": "万亩" + }, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-CXPT-BREEDING-BASE", + "categoryName": "cxpt养殖基地", + "industryStage": "scale-breeding", + "sources": [ + "cxpt.t_base_land" + ], + "itemCount": 28, + "items": [ + { + "id": "2c9380898a69780a018a69a6e4d30001", + "name": "下哈拉玛标准化养殖基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233103202", + "areaName": "下哈拉玛村", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇下哈拉玛村", + "address": null, + "scale": "1000亩", + "longitude": null, + "latitude": null, + "geometryType": null, + "contacts": { + "leader": "下哈拉玛标准化养殖基地", + "phone": "下哈拉玛标准化养殖基地" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048125ab0001", + "name": "刷经寺镇国航专属农场", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233101000", + "areaName": "刷经寺镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县刷经寺镇", + "address": "红原县刷经寺镇", + "scale": "200亩", + "longitude": 102.60753736, + "latitude": 32.01520185, + "geometryType": "Point", + "contacts": { + "leader": "文明智", + "phone": "18372667181" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028816489fc57730189fc6a28c60001", + "name": "唐日标准化养殖基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233", + "areaName": "红原县", + "areaFullName": "四川省阿坝藏族羌族自治州红原县", + "address": "红原", + "scale": "1000", + "longitude": 102.52418747, + "latitude": 32.7965246, + "geometryType": "Polygon", + "contacts": { + "leader": "唐日标准化养殖基地", + "phone": "18090242999" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870482432f000f", + "name": "国航专属农牧场", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": null, + "scale": null, + "longitude": 102.611698, + "latitude": 32.928581, + "geometryType": "Point", + "contacts": { + "phone": "13888888888" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870483afc00027", + "name": "央诺尔畜牧专业合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233205000", + "areaName": "阿木乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", + "address": "四川省红原县阿木乡", + "scale": null, + "longitude": 102.64730957, + "latitude": 32.94532722, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704828d450013", + "name": "安曲哈拉玛合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233103000", + "areaName": "安曲镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", + "address": null, + "scale": null, + "longitude": 102.32834969, + "latitude": 32.64290686, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870483a0800026", + "name": "安曲家庭农场", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233103000", + "areaName": "安曲镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", + "address": "红原县安曲牧场(近209省道)", + "scale": null, + "longitude": 102.38834969, + "latitude": 32.69290686, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048291f90014", + "name": "安曲抗灾保畜基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233103000", + "areaName": "安曲镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", + "address": null, + "scale": null, + "longitude": 102.30834969, + "latitude": 32.67290686, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048318f2001b", + "name": "尚源牧业发展有限责任公司", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇", + "scale": null, + "longitude": 102.53242152, + "latitude": 32.81168014, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704814a8d0005", + "name": "更攀合作总社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇瑞庆西路", + "scale": "154244亩", + "longitude": 102.583582, + "latitude": 32.830854, + "geometryType": "Point", + "contacts": { + "phone": "18789497898" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870482e47c0015", + "name": "查尔玛乡查龙合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233203000", + "areaName": "查尔玛乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县查尔玛乡", + "address": null, + "scale": null, + "longitude": 101.96111079, + "latitude": 32.36851156, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704812a950002", + "name": "查尔玛乡达尔龙合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233202000", + "areaName": "江茸乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县江茸乡", + "address": null, + "scale": "388680亩", + "longitude": 102.25164714, + "latitude": 32.34434154, + "geometryType": "Point", + "contacts": { + "phone": "13666666666" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870482ee200016", + "name": "查尔玛乡达智合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233203000", + "areaName": "查尔玛乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县查尔玛乡", + "address": null, + "scale": null, + "longitude": 102.10243332, + "latitude": 32.5533277, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028816489fc81de0189fc8dd5c90000", + "name": "查尔玛标准养殖基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233203000", + "areaName": "查尔玛乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县查尔玛乡", + "address": "查尔玛乡", + "scale": "200", + "longitude": null, + "latitude": null, + "geometryType": null, + "contacts": { + "leader": "查尔玛标准养殖基地", + "phone": "13696856985" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "2c9380898a69780a018a69a654f90000", + "name": "瓦切卡口乡标准化养殖基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": "2000", + "longitude": null, + "latitude": null, + "geometryType": null, + "contacts": { + "leader": "瓦切卡口乡标准化养殖基地", + "phone": "瓦切卡口乡标准化养殖基地" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "2c9380898a69780a018a69a7484e0002", + "name": "瓦切唐日标准化养殖基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233204201", + "areaName": "唐日村", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇唐日村", + "address": null, + "scale": "1000亩", + "longitude": null, + "latitude": null, + "geometryType": null, + "contacts": { + "leader": "瓦切唐日标准化养殖基地", + "phone": "瓦切唐日标准化养殖基地" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870483561f0020", + "name": "瓦切德香村合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": "1800亩", + "longitude": 102.60756103, + "latitude": 33.16501517, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704836a0f0022", + "name": "瓦切罗尔江合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": "5000亩", + "longitude": 102.61692465, + "latitude": 33.07321484, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048271970011", + "name": "瓦切镇达峨村种草大户泽郎夺尔基", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": "红原县瓦切镇达峨村", + "scale": "2000余平方千米", + "longitude": 102.768611, + "latitude": 33.218282, + "geometryType": "Point", + "contacts": { + "leader": "泽郎夺尔基", + "phone": "18728211722" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048137b80004", + "name": "红原县邛溪镇热多村高产奶牦牛繁育基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇热多村", + "scale": "1000头", + "longitude": 102.607635, + "latitude": 32.899228, + "geometryType": "Point", + "contacts": { + "leader": "桑键", + "phone": "13990407109" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704812f390003", + "name": "红原县麦洼牦牛现代农业园区", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233105000", + "areaName": "龙日镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县龙日镇", + "address": null, + "scale": "664.2亩", + "longitude": 102.523105, + "latitude": 32.470534, + "geometryType": "Point", + "contacts": { + "leader": "李先生", + "phone": "13926576971" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048339ee001e", + "name": "红原雪玛格牦牛养殖合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233101000", + "areaName": "刷经寺镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县刷经寺镇", + "address": null, + "scale": null, + "longitude": 102.48668882, + "latitude": 32.20779478, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048349d4001f", + "name": "色地让里村合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233208000", + "areaName": "色地镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县色地镇", + "address": null, + "scale": "2000平方米", + "longitude": 102.97944868, + "latitude": 32.99718428, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048300bb0019", + "name": "邛溪国航奶牛基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇", + "scale": null, + "longitude": 102.60973364, + "latitude": 32.93442417, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704830f93001a", + "name": "邛溪国航肉牛基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇", + "scale": null, + "longitude": 102.5857137, + "latitude": 32.9178444, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704832780001d", + "name": "邛溪镇奇杨益西合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233103000", + "areaName": "安曲镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", + "address": null, + "scale": "3355.4亩", + "longitude": 102.51815641, + "latitude": 32.7759152, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048288e30012", + "name": "阿木乡卡口养殖基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233205000", + "areaName": "阿木乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", + "address": "四川省红原县阿木乡", + "scale": null, + "longitude": 102.66730957, + "latitude": 32.90532722, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870482f79f0018", + "name": "麦洼乡利群合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_base", + "categoryNameRaw": "养殖基地", + "areaCode": "513233207000", + "areaName": "麦洼乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县麦洼乡", + "address": "四川省阿坝藏族羌族自治州红原县麦洼乡滚塘村", + "scale": "1万亩", + "longitude": 102.91804548, + "latitude": 33.05789166, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-CXPT-FORAGE-BASE", + "categoryName": "cxpt饲草基地", + "industryStage": "artificial-grassland", + "sources": [ + "cxpt.t_base_land" + ], + "itemCount": 5, + "items": [ + { + "id": "2c9380898a69780a018a69a7c9b10003", + "name": "安曲种草基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "forage_base", + "categoryNameRaw": "饲草基地", + "areaCode": "513233103000", + "areaName": "安曲镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", + "address": null, + "scale": "5000亩", + "longitude": null, + "latitude": null, + "geometryType": null, + "contacts": { + "leader": "安曲种草基地", + "phone": "安曲种草基地" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704835aae0021", + "name": "瓦切抗灾保畜基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "forage_base", + "categoryNameRaw": "饲草基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": "3000亩", + "longitude": 102.58969571, + "latitude": 33.0961638, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048380420023", + "name": "瓦切色永村种草基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "forage_base", + "categoryNameRaw": "饲草基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": "2000亩", + "longitude": 102.63066554, + "latitude": 33.14234459, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870483927c0025", + "name": "瓦切镇特色蔬菜种植园", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "forage_base", + "categoryNameRaw": "饲草基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": null, + "longitude": 102.5959684, + "latitude": 33.08257632, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870481a0d10006", + "name": "红原县唐日牦牛养殖农民专业合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "forage_base", + "categoryNameRaw": "饲草基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": "红原县瓦切镇唐日村", + "scale": "2000亩", + "longitude": 102.690423, + "latitude": 33.134153, + "geometryType": "Point", + "contacts": { + "leader": "旦真贡", + "phone": "18090242999" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-CXPT-BREEDING-STOCK-BASE", + "categoryName": "cxpt种畜基地", + "industryStage": "scale-breeding", + "sources": [ + "cxpt.t_base_land" + ], + "itemCount": 1, + "items": [ + { + "id": "4028c4f88704809e01870482f2de0017", + "name": "麦洼乡达坤玛选育场", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "breeding_stock_base", + "categoryNameRaw": "种畜基地", + "areaCode": "513233207000", + "areaName": "麦洼乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县麦洼乡", + "address": null, + "scale": "1万亩", + "longitude": 102.90295791, + "latitude": 33.05466505, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-CXPT-GRASS-SEED-BASE", + "categoryName": "cxpt草种基地", + "industryStage": "artificial-grassland", + "sources": [ + "cxpt.t_base_land" + ], + "itemCount": 1, + "items": [ + { + "id": "4028c4f88704809e018704831d77001c", + "name": "红原县金针菇特色种植园区", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "grass_seed_base", + "categoryNameRaw": "草种基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇", + "scale": null, + "longitude": 102.5421184, + "latitude": 32.79970142, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + } + ] + }, + { + "categoryCode": "YC-CXPT-OTHER-BASE", + "categoryName": "cxpt其他基地", + "industryStage": "social-service", + "sources": [ + "cxpt.t_base_land" + ], + "itemCount": 11, + "items": [ + { + "id": "4028c4f88704809e0187048215ac000e", + "name": "刷经寺镇露地蔬菜种植基地", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233101000", + "areaName": "刷经寺镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县刷经寺镇", + "address": "红原县刷经寺镇", + "scale": null, + "longitude": 102.620282, + "latitude": 32.037843, + "geometryType": "Point", + "contacts": { + "leader": "文明智", + "phone": "0837-2667185" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870482023a000c", + "name": "四川红原遛遛牛食品有限责任公司", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233103000", + "areaName": "安曲镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", + "address": "四川省红原县绿色产业园区", + "scale": "25亩", + "longitude": 102.324776, + "latitude": 32.689929, + "geometryType": "Point", + "contacts": { + "leader": "张自龙", + "phone": "13909047233" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704826d4c0010", + "name": "植物园", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": null, + "scale": null, + "longitude": 102.551944, + "latitude": 32.780316, + "geometryType": "Point", + "contacts": { + "phone": "13888888888" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870481f0a0000a", + "name": "活畜交易市场", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "红原县邛溪镇", + "scale": "3000亩", + "longitude": 102.57314, + "latitude": 32.82984, + "geometryType": "Point", + "contacts": { + "leader": "向白", + "phone": "18090223335" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870481f4e9000b", + "name": "物联网大数据监测系统", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233205000", + "areaName": "阿木乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", + "address": "红原县绿色工业园区", + "scale": "10000", + "longitude": 102.776153, + "latitude": 32.72242, + "geometryType": "Point", + "contacts": { + "leader": "熊先生", + "phone": "13845444444" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e0187048384dc0024", + "name": "瓦切阳诺合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233204000", + "areaName": "瓦切镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", + "address": null, + "scale": "3000亩", + "longitude": 102.63675654, + "latitude": 33.14253159, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e018704811f290000", + "name": "红原县城市污水处理厂", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": null, + "scale": "2.5公顷", + "longitude": 102.559801, + "latitude": 32.816904, + "geometryType": "Point", + "contacts": {}, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870481b7180008", + "name": "红原县永源牦牛肉业有限公司", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233205000", + "areaName": "阿木乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", + "address": "红原县邛溪镇绿色工业园区", + "scale": "30亩", + "longitude": 102.628332, + "latitude": 32.639351, + "geometryType": "Point", + "contacts": { + "leader": "张健", + "phone": "13566787888" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870482067d000d", + "name": "红原县茸日玛绵羊养殖专业合作社", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233202000", + "areaName": "江茸乡", + "areaFullName": "四川省阿坝藏族羌族自治州红原县江茸乡", + "address": "红原县江茸镇日玛村", + "scale": "5000亩", + "longitude": 102.23279, + "latitude": 32.402614, + "geometryType": "Point", + "contacts": { + "leader": "旦真则旺", + "phone": "13541576727" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870481aa840007", + "name": "红原牦牛乳业有限责任公司", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233100000", + "areaName": "邛溪镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", + "address": "四川省红原县邛溪镇", + "scale": "92490平方米", + "longitude": 102.747914, + "latitude": 32.802653, + "geometryType": "Point", + "contacts": { + "leader": "杨勇", + "phone": "13551770158" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + }, + { + "id": "4028c4f88704809e01870481cc520009", + "name": "(无害化)红原县宜霖阳光环保科技有限公司", + "sourceFile": "cxpt PostgreSQL database", + "sourceSheet": "t_base_land", + "categoryCodeRaw": "other", + "categoryNameRaw": "其他基地", + "areaCode": "513233105000", + "areaName": "龙日镇", + "areaFullName": "四川省阿坝藏族羌族自治州红原县龙日镇", + "address": "红原县邛溪镇绛熙东街", + "scale": "占地20亩", + "longitude": 102.352372, + "latitude": 32.538109, + "geometryType": "Point", + "contacts": { + "leader": "谢光伍", + "phone": "13609975631" + }, + "metrics": { + "acreage": null + }, + "attributes": {} + } + ] + } + ] +} +`,de=`{ + "datasetName": "红原县家庭生态牧场建设台账", + "sourceSummary": "红原县2023年至今建设家庭牧场汇总表.xls", + "sourceCoordinates": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", + "recordUnit": "处", + "recordCount": 252, + "locatedRecordCount": 79, + "records": [ + { + "id": "YC-FAMILY-PASTURE-SUM-001", + "name": "旦巴措家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "旦巴措", + "constructionYear": 2023, + "sourceNo": 1, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "旦巴措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-002", + "name": "兰美家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "兰美", + "constructionYear": 2023, + "sourceNo": 2, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "兰美" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-003", + "name": "求基家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "求基", + "constructionYear": 2023, + "sourceNo": 3, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-004", + "name": "罗日则巴家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "罗日则巴", + "constructionYear": 2023, + "sourceNo": 4, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "罗日则巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-005", + "name": "泽让夺基家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "泽让夺基", + "constructionYear": 2023, + "sourceNo": 5, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽让夺基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-006", + "name": "尕玛让丹家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "尕玛让丹", + "constructionYear": 2023, + "sourceNo": 6, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尕玛让丹" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-007", + "name": "泽郎吉家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "泽郎吉", + "constructionYear": 2023, + "sourceNo": 7, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽郎吉" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-008", + "name": "吴穷家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "吴穷", + "constructionYear": 2023, + "sourceNo": 8, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "吴穷" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-009", + "name": "东周罗吾家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "东周罗吾", + "constructionYear": 2023, + "sourceNo": 9, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "东周罗吾" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-010", + "name": "扎巴家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "扎巴", + "constructionYear": 2023, + "sourceNo": 10, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "扎巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-011", + "name": "尼美青则家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "尼美青则", + "constructionYear": 2023, + "sourceNo": 11, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尼美青则" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-012", + "name": "尕尔玛家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "尕尔玛", + "constructionYear": 2023, + "sourceNo": 12, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尕尔玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-013", + "name": "尼玛甲参家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "尼玛甲参", + "constructionYear": 2023, + "sourceNo": 13, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尼玛甲参" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-014", + "name": "俄热多吉家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "俄热多吉", + "constructionYear": 2023, + "sourceNo": 14, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "俄热多吉" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-015", + "name": "头旦让俄家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "头旦让俄", + "constructionYear": 2023, + "sourceNo": 15, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "头旦让俄" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-016", + "name": "洛真娜姆家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "洛真娜姆", + "constructionYear": 2023, + "sourceNo": 16, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "洛真娜姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-017", + "name": "达洛家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "达洛", + "constructionYear": 2023, + "sourceNo": 17, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "达洛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-018", + "name": "阿旦家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "阿旦", + "constructionYear": 2023, + "sourceNo": 18, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "阿旦" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-019", + "name": "哥扎尕洛家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "哥扎尕洛", + "constructionYear": 2023, + "sourceNo": 19, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "哥扎尕洛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-020", + "name": "让巴家庭生态牧场", + "town": "瓦切镇", + "village": "唐日村", + "owner": "让巴", + "constructionYear": 2023, + "sourceNo": 20, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "让巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-021", + "name": "罗尔让家庭生态牧场", + "town": "瓦切镇", + "village": "唐日村", + "owner": "罗尔让", + "constructionYear": 2023, + "sourceNo": 21, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "罗尔让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-022", + "name": "泽郎扎西家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "泽郎扎西", + "constructionYear": 2023, + "sourceNo": 22, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽郎扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-023", + "name": "更根加家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "更根加", + "constructionYear": 2023, + "sourceNo": 23, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "更根加" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-024", + "name": "周吉家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "周吉", + "constructionYear": 2023, + "sourceNo": 24, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "周吉" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-025", + "name": "南木姐家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "南木姐", + "constructionYear": 2023, + "sourceNo": 25, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "南木姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-026", + "name": "慈陈家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "慈陈", + "constructionYear": 2023, + "sourceNo": 26, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "慈陈" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-027", + "name": "尼西甲家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "尼西甲", + "constructionYear": 2023, + "sourceNo": 27, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尼西甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-028", + "name": "索夺家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "索夺", + "constructionYear": 2023, + "sourceNo": 28, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "索夺" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-029", + "name": "罗让求迫家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "罗让求迫", + "constructionYear": 2023, + "sourceNo": 29, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "罗让求迫" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-030", + "name": "王多家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "王多", + "constructionYear": 2023, + "sourceNo": 30, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "王多" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-031", + "name": "班玛确折家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "班玛确折", + "constructionYear": 2023, + "sourceNo": 31, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "班玛确折" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-032", + "name": "单比甲参家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "单比甲参", + "constructionYear": 2023, + "sourceNo": 32, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "单比甲参" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-033", + "name": "罗日东周家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "罗日东周", + "constructionYear": 2023, + "sourceNo": 33, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "罗日东周" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-034", + "name": "格登甲措家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "格登甲措", + "constructionYear": 2023, + "sourceNo": 34, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "格登甲措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-035", + "name": "泽朗姐家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "泽朗姐", + "constructionYear": 2023, + "sourceNo": 35, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽朗姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-036", + "name": "能周家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "能周", + "constructionYear": 2023, + "sourceNo": 36, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "能周" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-037", + "name": "角布家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "角布", + "constructionYear": 2023, + "sourceNo": 37, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "角布" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-038", + "name": "仁真沙尔夺家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "仁真沙尔夺", + "constructionYear": 2023, + "sourceNo": 38, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "仁真沙尔夺" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-039", + "name": "罗波家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "罗波", + "constructionYear": 2023, + "sourceNo": 39, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "罗波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-040", + "name": "扎西坚措家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "扎西坚措", + "constructionYear": 2023, + "sourceNo": 40, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "扎西坚措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-041", + "name": "求甲家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "求甲", + "constructionYear": 2023, + "sourceNo": 41, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-042", + "name": "卡波家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "卡波", + "constructionYear": 2023, + "sourceNo": 42, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "卡波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-043", + "name": "占扎哥马家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "占扎哥马", + "constructionYear": 2023, + "sourceNo": 43, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "占扎哥马" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-044", + "name": "穷措家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "穷措", + "constructionYear": 2023, + "sourceNo": 44, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "穷措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-045", + "name": "旦巴泽让家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "旦巴泽让", + "constructionYear": 2023, + "sourceNo": 45, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "旦巴泽让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-046", + "name": "杨准家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "杨准", + "constructionYear": 2023, + "sourceNo": 46, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "杨准" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-047", + "name": "格登家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "格登", + "constructionYear": 2023, + "sourceNo": 47, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "格登" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-048", + "name": "东朱家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "东朱", + "constructionYear": 2023, + "sourceNo": 48, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "东朱" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-049", + "name": "措么家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "措么", + "constructionYear": 2023, + "sourceNo": 49, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "措么" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-050", + "name": "勒波家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "勒波", + "constructionYear": 2023, + "sourceNo": 50, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "勒波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-051", + "name": "泽波甲家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "泽波甲", + "constructionYear": 2023, + "sourceNo": 51, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽波甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-052", + "name": "旦真索拉家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "旦真索拉", + "constructionYear": 2023, + "sourceNo": 52, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "旦真索拉" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-053", + "name": "索尕家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "索尕", + "constructionYear": 2023, + "sourceNo": 53, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "索尕" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-054", + "name": "列红家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "列红", + "constructionYear": 2023, + "sourceNo": 54, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "列红" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-055", + "name": "基西甲家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "基西甲", + "constructionYear": 2023, + "sourceNo": 55, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "基西甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-056", + "name": "罗日花甲家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "罗日花甲", + "constructionYear": 2023, + "sourceNo": 56, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "罗日花甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-057", + "name": "南木甲家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "南木甲", + "constructionYear": 2023, + "sourceNo": 57, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "南木甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-058", + "name": "旺青成里家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "旺青成里", + "constructionYear": 2023, + "sourceNo": 58, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "旺青成里" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-059", + "name": "拉玛家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "拉玛", + "constructionYear": 2023, + "sourceNo": 59, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "拉玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-060", + "name": "求扎家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "求扎", + "constructionYear": 2023, + "sourceNo": 60, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求扎" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-061", + "name": "纳哇家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "纳哇", + "constructionYear": 2023, + "sourceNo": 61, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "纳哇" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-062", + "name": "直甲家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "直甲", + "constructionYear": 2023, + "sourceNo": 62, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "直甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-063", + "name": "文伯家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "文伯", + "constructionYear": 2023, + "sourceNo": 63, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "文伯" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-064", + "name": "王青扎西家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "王青扎西", + "constructionYear": 2023, + "sourceNo": 64, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "王青扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-065", + "name": "贡秋泽旦家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "贡秋泽旦", + "constructionYear": 2023, + "sourceNo": 65, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "贡秋泽旦" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-066", + "name": "若巴甲初家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "若巴甲初", + "constructionYear": 2023, + "sourceNo": 66, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "若巴甲初" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-067", + "name": "泽郎兰基家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "泽郎兰基", + "constructionYear": 2023, + "sourceNo": 67, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽郎兰基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-068", + "name": "兰木机家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "兰木机", + "constructionYear": 2023, + "sourceNo": 68, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "兰木机" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-069", + "name": "迫洼姐家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "迫洼姐", + "constructionYear": 2023, + "sourceNo": 69, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "迫洼姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-070", + "name": "达真德旦家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "达真德旦", + "constructionYear": 2023, + "sourceNo": 70, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "达真德旦" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-071", + "name": "额尔家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "额尔", + "constructionYear": 2023, + "sourceNo": 71, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "额尔" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-072", + "name": "求扎家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "求扎", + "constructionYear": 2023, + "sourceNo": 72, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求扎" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-073", + "name": "仁真甲家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "仁真甲", + "constructionYear": 2023, + "sourceNo": 73, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "仁真甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-074", + "name": "泽郎扎西家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "泽郎扎西", + "constructionYear": 2023, + "sourceNo": 74, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽郎扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-075", + "name": "洼玛卡卓家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "洼玛卡卓", + "constructionYear": 2023, + "sourceNo": 75, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "洼玛卡卓" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-076", + "name": "旦真扎西家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "旦真扎西", + "constructionYear": 2023, + "sourceNo": 76, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "旦真扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-077", + "name": "夺柯甲家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "夺柯甲", + "constructionYear": 2023, + "sourceNo": 77, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "夺柯甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-078", + "name": "曲格准家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "曲格准", + "constructionYear": 2023, + "sourceNo": 78, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "曲格准" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-079", + "name": "次旺依玛家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "次旺依玛", + "constructionYear": 2023, + "sourceNo": 79, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "次旺依玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-080", + "name": "甲央扎西家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "甲央扎西", + "constructionYear": 2023, + "sourceNo": 80, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "甲央扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-081", + "name": "石德家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "石德", + "constructionYear": 2023, + "sourceNo": 81, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "石德" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-082", + "name": "求措家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "求措", + "constructionYear": 2023, + "sourceNo": 82, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-083", + "name": "卓尔单家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "卓尔单", + "constructionYear": 2023, + "sourceNo": 83, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "卓尔单" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-084", + "name": "穷真家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "穷真", + "constructionYear": 2023, + "sourceNo": 84, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "穷真" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-085", + "name": "贡波家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "贡波", + "constructionYear": 2023, + "sourceNo": 85, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "贡波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-086", + "name": "穷拉家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "穷拉", + "constructionYear": 2023, + "sourceNo": 86, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "穷拉" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-087", + "name": "克周家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "克周", + "constructionYear": 2023, + "sourceNo": 87, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "克周" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-088", + "name": "热布尕家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "热布尕", + "constructionYear": 2023, + "sourceNo": 88, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "热布尕" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-089", + "name": "求科家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "求科", + "constructionYear": 2023, + "sourceNo": 89, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求科" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-090", + "name": "窝能家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "窝能", + "constructionYear": 2023, + "sourceNo": 90, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "窝能" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-091", + "name": "泽郎扎西家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "泽郎扎西", + "constructionYear": 2023, + "sourceNo": 91, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽郎扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-092", + "name": "哈里家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "哈里", + "constructionYear": 2023, + "sourceNo": 92, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "哈里" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-093", + "name": "旦灯家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "旦灯", + "constructionYear": 2023, + "sourceNo": 93, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "旦灯" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-094", + "name": "卓玛家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "卓玛", + "constructionYear": 2023, + "sourceNo": 94, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "卓玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-095", + "name": "阿木滚家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "阿木滚", + "constructionYear": 2023, + "sourceNo": 95, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "阿木滚" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-096", + "name": "求科家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "求科", + "constructionYear": 2023, + "sourceNo": 96, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "求科" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-097", + "name": "泽不丹家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "泽不丹", + "constructionYear": 2023, + "sourceNo": 97, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽不丹" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-098", + "name": "许格甲家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "许格甲", + "constructionYear": 2023, + "sourceNo": 98, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "许格甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-099", + "name": "扎西热丹家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "扎西热丹", + "constructionYear": 2023, + "sourceNo": 99, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "扎西热丹" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-100", + "name": "达姆家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "达姆", + "constructionYear": 2023, + "sourceNo": 100, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "达姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-101", + "name": "措格加家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "措格加", + "constructionYear": 2023, + "sourceNo": 101, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "措格加" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-102", + "name": "勒科家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "勒科", + "constructionYear": 2023, + "sourceNo": 102, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "勒科" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-103", + "name": "科柯家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "科柯", + "constructionYear": 2023, + "sourceNo": 103, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "科柯" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-104", + "name": "吉科家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "吉科", + "constructionYear": 2023, + "sourceNo": 104, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "吉科" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-105", + "name": "尼玛旦真家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "尼玛旦真", + "constructionYear": 2023, + "sourceNo": 105, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尼玛旦真" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-106", + "name": "向秋夺基家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "向秋夺基", + "constructionYear": 2023, + "sourceNo": 106, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "向秋夺基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-107", + "name": "尼格卓家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "尼格卓", + "constructionYear": 2023, + "sourceNo": 107, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尼格卓" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-108", + "name": "尕尔让家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "尕尔让", + "constructionYear": 2023, + "sourceNo": 108, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "尕尔让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-109", + "name": "陈香家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "陈香", + "constructionYear": 2023, + "sourceNo": 109, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "陈香" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-110", + "name": "泽让姐家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "泽让姐", + "constructionYear": 2023, + "sourceNo": 110, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽让姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-111", + "name": "甲布寻家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "甲布寻", + "constructionYear": 2023, + "sourceNo": 111, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "甲布寻" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-112", + "name": "南克甲叁家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "南克甲叁", + "constructionYear": 2023, + "sourceNo": 112, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "南克甲叁" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-113", + "name": "易美达机家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "易美达机", + "constructionYear": 2023, + "sourceNo": 113, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "易美达机" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-114", + "name": "仁青甲家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "仁青甲", + "constructionYear": 2023, + "sourceNo": 114, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "仁青甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-115", + "name": "秋银家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "秋银", + "constructionYear": 2023, + "sourceNo": 115, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "秋银" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-116", + "name": "阿泽波家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "阿泽波", + "constructionYear": 2023, + "sourceNo": 116, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "阿泽波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-117", + "name": "秋热周朴家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "秋热周朴", + "constructionYear": 2023, + "sourceNo": 117, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "秋热周朴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-118", + "name": "根伯家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "根伯", + "constructionYear": 2023, + "sourceNo": 118, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "根伯" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-119", + "name": "更秋姐家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "更秋姐", + "constructionYear": 2023, + "sourceNo": 119, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "更秋姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-120", + "name": "泽朗华尔丹家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "泽朗华尔丹", + "constructionYear": 2023, + "sourceNo": 120, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 40㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "grassSupportType": "割草地", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "割草地 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 40, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 400, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", + "草料配套": "割草地 5亩", + "户主": "泽朗华尔丹" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-121", + "name": "更尕让俄家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "更尕让俄", + "constructionYear": 2024, + "sourceNo": 121, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "更尕让俄" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-122", + "name": "尊珠家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "尊珠", + "constructionYear": 2024, + "sourceNo": 122, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 6, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 6亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 6 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 6亩", + "户主": "尊珠" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-123", + "name": "东泽家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "东泽", + "constructionYear": 2024, + "sourceNo": 123, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 7, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 7亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 7 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 7亩", + "户主": "东泽" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-124", + "name": "四郎绒布家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "四郎绒布", + "constructionYear": 2024, + "sourceNo": 124, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 8, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 8亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 8 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 8亩", + "户主": "四郎绒布" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-125", + "name": "华尔丹家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "华尔丹", + "constructionYear": 2024, + "sourceNo": 125, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 9, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 9亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 9 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 9亩", + "户主": "华尔丹" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-126", + "name": "求达家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "求达", + "constructionYear": 2024, + "sourceNo": 126, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 10, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 10亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 10 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 10亩", + "户主": "求达" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-127", + "name": "德尔达家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "德尔达", + "constructionYear": 2024, + "sourceNo": 127, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 11, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 11亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 11 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 11亩", + "户主": "德尔达" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-128", + "name": "泽让彭措家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "泽让彭措", + "constructionYear": 2024, + "sourceNo": 128, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 12, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 12亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 12 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 12亩", + "户主": "泽让彭措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-129", + "name": "万青家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "万青", + "constructionYear": 2024, + "sourceNo": 129, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 13, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 13亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 13 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 13亩", + "户主": "万青" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-130", + "name": "更让达基家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "更让达基", + "constructionYear": 2024, + "sourceNo": 130, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 14, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 14亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 14 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 14亩", + "户主": "更让达基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-131", + "name": "西卓家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "西卓", + "constructionYear": 2024, + "sourceNo": 131, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 15, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 15亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 15 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 15亩", + "户主": "西卓" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-132", + "name": "黄坤甲家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "黄坤甲", + "constructionYear": 2024, + "sourceNo": 132, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 19, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 19亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 19 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 19亩", + "户主": "黄坤甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-133", + "name": "达洛甲家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "达洛甲", + "constructionYear": 2024, + "sourceNo": 133, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 23, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 23亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 23 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 23亩", + "户主": "达洛甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-134", + "name": "德基初家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "德基初", + "constructionYear": 2024, + "sourceNo": 134, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 27, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 27亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 27 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 27亩", + "户主": "德基初" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-135", + "name": "尕尔洼家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "尕尔洼", + "constructionYear": 2024, + "sourceNo": 135, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 28, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 28亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 28 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 28亩", + "户主": "尕尔洼" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-136", + "name": "甲华扎巴家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "甲华扎巴", + "constructionYear": 2024, + "sourceNo": 136, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 29, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 29亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 29 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 29亩", + "户主": "甲华扎巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-137", + "name": "阿茸家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "阿茸", + "constructionYear": 2024, + "sourceNo": 137, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 30, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 30亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 30 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 30亩", + "户主": "阿茸" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-138", + "name": "尼玛姐家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "尼玛姐", + "constructionYear": 2024, + "sourceNo": 138, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 31, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 31亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 31 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 31亩", + "户主": "尼玛姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-139", + "name": "许尔洛家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "许尔洛", + "constructionYear": 2024, + "sourceNo": 139, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 32, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 32亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 32 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 32亩", + "户主": "许尔洛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-140", + "name": "球日格家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "球日格", + "constructionYear": 2024, + "sourceNo": 140, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 33, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 33亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 33 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 33亩", + "户主": "球日格" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-141", + "name": "华旦让俄家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "华旦让俄", + "constructionYear": 2024, + "sourceNo": 141, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 34, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 34亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 34 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 34亩", + "户主": "华旦让俄" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-142", + "name": "春雷然旦家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "春雷然旦", + "constructionYear": 2024, + "sourceNo": 142, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 35, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 35亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 35 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 35亩", + "户主": "春雷然旦" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-143", + "name": "泽郎夺尔基家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "泽郎夺尔基", + "constructionYear": 2024, + "sourceNo": 143, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 36, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 36亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 36 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 36亩", + "户主": "泽郎夺尔基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-144", + "name": "仁真南甲家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "仁真南甲", + "constructionYear": 2024, + "sourceNo": 144, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 37, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 37亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 37 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 37亩", + "户主": "仁真南甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-145", + "name": "其美兰甲家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "其美兰甲", + "constructionYear": 2024, + "sourceNo": 145, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 38, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 38亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 38 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 38亩", + "户主": "其美兰甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-146", + "name": "扎西娜姆家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "扎西娜姆", + "constructionYear": 2024, + "sourceNo": 146, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 39, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 39亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 39 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 39亩", + "户主": "扎西娜姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-147", + "name": "额日家庭生态牧场", + "town": "瓦切镇", + "village": "唐日村", + "owner": "额日", + "constructionYear": 2024, + "sourceNo": 147, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 40, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 40亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 40 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 40亩", + "户主": "额日" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-148", + "name": "勒德夺机家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "勒德夺机", + "constructionYear": 2024, + "sourceNo": 148, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 41, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 41亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 41 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 41亩", + "户主": "勒德夺机" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-149", + "name": "哈格巴家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "哈格巴", + "constructionYear": 2024, + "sourceNo": 149, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 42, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 42亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 42 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 42亩", + "户主": "哈格巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-150", + "name": "日托美家庭生态牧场", + "town": "色地镇", + "village": "日西村", + "owner": "日托美", + "constructionYear": 2024, + "sourceNo": 150, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 43, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 43亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 43 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 43亩", + "户主": "日托美" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-151", + "name": "格·吾穷家庭生态牧场", + "town": "色地镇", + "village": "让里村", + "owner": "格·吾穷", + "constructionYear": 2024, + "sourceNo": 151, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 44, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 44亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 44 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 44亩", + "户主": "格·吾穷" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-152", + "name": "日西家庭生态牧场", + "town": "色地镇", + "village": "茸塔玛村", + "owner": "日西", + "constructionYear": 2024, + "sourceNo": 152, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 45, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 45亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 45 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 45亩", + "户主": "日西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-153", + "name": "阿旺罗让家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "阿旺罗让", + "constructionYear": 2023, + "sourceNo": 153, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "阿旺罗让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-154", + "name": "日格特家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "日格特", + "constructionYear": 2023, + "sourceNo": 154, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "日格特" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-155", + "name": "求让家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "求让", + "constructionYear": 2023, + "sourceNo": 155, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "求让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-156", + "name": "央莫家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "央莫", + "constructionYear": 2023, + "sourceNo": 156, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "央莫" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-157", + "name": "贡波甲家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "贡波甲", + "constructionYear": 2023, + "sourceNo": 157, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "贡波甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-158", + "name": "瓦布登家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "瓦布登", + "constructionYear": 2023, + "sourceNo": 158, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "瓦布登" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-159", + "name": "则扎家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "则扎", + "constructionYear": 2023, + "sourceNo": 159, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "则扎" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-160", + "name": "额扎家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "额扎", + "constructionYear": 2023, + "sourceNo": 160, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "额扎" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-161", + "name": "常热里家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "常热里", + "constructionYear": 2023, + "sourceNo": 161, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "常热里" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-162", + "name": "王真尼玛家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "王真尼玛", + "constructionYear": 2023, + "sourceNo": 162, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "王真尼玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-163", + "name": "卢巴家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "卢巴", + "constructionYear": 2023, + "sourceNo": 163, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "卢巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-164", + "name": "格商花家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "格商花", + "constructionYear": 2023, + "sourceNo": 164, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "格商花" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-165", + "name": "泽旺初家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "泽旺初", + "constructionYear": 2023, + "sourceNo": 165, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "泽旺初" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-166", + "name": "泽旺嘎让家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "泽旺嘎让", + "constructionYear": 2023, + "sourceNo": 166, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "泽旺嘎让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-167", + "name": "邓代夺基家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "邓代夺基", + "constructionYear": 2023, + "sourceNo": 167, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "邓代夺基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-168", + "name": "俄见达基家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "俄见达基", + "constructionYear": 2023, + "sourceNo": 168, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "俄见达基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-169", + "name": "谢拉华拉家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "谢拉华拉", + "constructionYear": 2023, + "sourceNo": 169, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "谢拉华拉" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-170", + "name": "贡波夺基家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "贡波夺基", + "constructionYear": 2023, + "sourceNo": 170, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "贡波夺基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-171", + "name": "若巴家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "若巴", + "constructionYear": 2023, + "sourceNo": 171, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "若巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-172", + "name": "桑波家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "桑波", + "constructionYear": 2023, + "sourceNo": 172, + "pointName": "", + "facilityBrief": "200㎡暖棚 / 20㎡管理房", + "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "grassSupportType": "储草基地", + "grassSupportMu": 50, + "grassSupportLowerBound": true, + "grassSupportText": "储草基地 ≥50亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 200, + "管理用房 (㎡)": 20, + "饲草料库 (㎡)": 20, + "活动场地及通道 (㎡)": 240, + "配套草料地 (亩)": 50 + }, + "attributes": { + "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", + "草料配套": "储草基地 ≥50亩", + "户主": "桑波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-001", + "name": "拿木甲家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "拿木甲", + "constructionYear": 2025, + "sourceNo": 173, + "pointName": "1号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.45082378, + "latitude": 32.6136657, + "locations": { + "暖棚": { + "longitude": 102.45047712, + "latitude": 32.61360272 + }, + "管理用房": { + "longitude": 102.45082378, + "latitude": 32.6136657 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "拿木甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-002", + "name": "桑我甲家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "桑我甲", + "constructionYear": 2025, + "sourceNo": 174, + "pointName": "2号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.34697849, + "latitude": 32.61455374, + "locations": { + "暖棚": { + "longitude": 102.34691526, + "latitude": 32.61425696 + }, + "管理用房": { + "longitude": 102.34697849, + "latitude": 32.61455374 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "桑我甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-003", + "name": "泽朗罗日家庭生态牧场", + "town": "安曲镇", + "village": "夺龙村", + "owner": "泽朗罗日", + "constructionYear": 2025, + "sourceNo": 175, + "pointName": "3号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.37805264, + "latitude": 32.5692703, + "locations": { + "暖棚": { + "longitude": 102.37805264, + "latitude": 32.5692703 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "泽朗罗日" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-004", + "name": "德清旺姆家庭生态牧场", + "town": "安曲镇", + "village": "哈拉玛村", + "owner": "德清旺姆", + "constructionYear": 2025, + "sourceNo": 176, + "pointName": "4号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.318167, + "latitude": 32.67018808, + "locations": { + "暖棚": { + "longitude": 102.31781652, + "latitude": 32.67023409 + }, + "管理用房": { + "longitude": 102.318167, + "latitude": 32.67018808 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "德清旺姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-005", + "name": "安曲镇下哈拉玛村177号家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "", + "constructionYear": 2025, + "sourceNo": 177, + "pointName": "5号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.43182146, + "latitude": 32.73162602, + "locations": { + "暖棚": { + "longitude": 102.43198641, + "latitude": 32.73093298 + }, + "管理用房": { + "longitude": 102.43182146, + "latitude": 32.73162602 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-006", + "name": "安曲镇下哈拉玛村178号家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "", + "constructionYear": 2025, + "sourceNo": 178, + "pointName": "6号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.42615548, + "latitude": 32.80562386, + "locations": { + "暖棚": { + "longitude": 102.42615548, + "latitude": 32.80562386 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-007", + "name": "尺真家庭生态牧场", + "town": "安曲镇", + "village": "下哈拉玛村", + "owner": "尺真", + "constructionYear": 2025, + "sourceNo": 179, + "pointName": "7号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.43310351, + "latitude": 32.76736081, + "locations": { + "暖棚": { + "longitude": 102.43325488, + "latitude": 32.76769519 + }, + "管理用房": { + "longitude": 102.43310351, + "latitude": 32.76736081 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "尺真" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-008", + "name": "扎花甲初家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "扎花甲初", + "constructionYear": 2025, + "sourceNo": 180, + "pointName": "8号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.34150772, + "latitude": 32.51809855, + "locations": { + "暖棚": { + "longitude": 102.34174988, + "latitude": 32.51793446 + }, + "管理用房": { + "longitude": 102.34150772, + "latitude": 32.51809855 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "扎花甲初" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-009", + "name": "刘永秀家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "刘永秀", + "constructionYear": 2025, + "sourceNo": 181, + "pointName": "9号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.39163622, + "latitude": 32.41535563, + "locations": { + "暖棚": { + "longitude": 102.39106026, + "latitude": 32.41522425 + }, + "管理用房": { + "longitude": 102.39163622, + "latitude": 32.41535563 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "刘永秀" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-010", + "name": "尼西甲家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "尼西甲", + "constructionYear": 2025, + "sourceNo": 182, + "pointName": "10号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.36479551, + "latitude": 32.4682826, + "locations": { + "暖棚": { + "longitude": 102.36445049, + "latitude": 32.46856208 + }, + "管理用房": { + "longitude": 102.36479551, + "latitude": 32.4682826 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "尼西甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-011", + "name": "尕尔穷家庭生态牧场", + "town": "龙日镇", + "village": "龙日坝村", + "owner": "尕尔穷", + "constructionYear": 2025, + "sourceNo": 183, + "pointName": "11号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.36574919, + "latitude": 32.46984022, + "locations": { + "暖棚": { + "longitude": 102.36543866, + "latitude": 32.46986063 + }, + "管理用房": { + "longitude": 102.36574919, + "latitude": 32.46984022 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "尕尔穷" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-SUM-184", + "name": "拉玛扎西家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "拉玛扎西", + "constructionYear": 2025, + "sourceNo": 184, + "pointName": "", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": null, + "latitude": null, + "locations": {}, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "拉玛扎西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-013", + "name": "索迫家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "索迫", + "constructionYear": 2025, + "sourceNo": 185, + "pointName": "13号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.57153908, + "latitude": 32.57642249, + "locations": { + "暖棚": { + "longitude": 102.57181204, + "latitude": 32.57674824 + }, + "管理用房": { + "longitude": 102.57153908, + "latitude": 32.57642249 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "索迫" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-014", + "name": "让白家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "让白", + "constructionYear": 2025, + "sourceNo": 186, + "pointName": "14号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.56368441, + "latitude": 32.56554011, + "locations": { + "暖棚": { + "longitude": 102.56396058, + "latitude": 32.5657272 + }, + "管理用房": { + "longitude": 102.56368441, + "latitude": 32.56554011 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "让白" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-015", + "name": "罗周家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "罗周", + "constructionYear": 2025, + "sourceNo": 187, + "pointName": "15号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.47340175, + "latitude": 32.5391063, + "locations": { + "暖棚": { + "longitude": 102.47353743, + "latitude": 32.53889572 + }, + "管理用房": { + "longitude": 102.47340175, + "latitude": 32.5391063 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "罗周" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-016", + "name": "贡波家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "贡波", + "constructionYear": 2025, + "sourceNo": 188, + "pointName": "16号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.55244875, + "latitude": 32.543925, + "locations": { + "暖棚": { + "longitude": 102.55268505, + "latitude": 32.54389452 + }, + "管理用房": { + "longitude": 102.55244875, + "latitude": 32.543925 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "贡波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-017", + "name": "阿新家庭生态牧场", + "town": "龙日镇", + "village": "格玛村", + "owner": "阿新", + "constructionYear": 2025, + "sourceNo": 189, + "pointName": "17号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.55661126, + "latitude": 32.51593726, + "locations": { + "暖棚": { + "longitude": 102.55699444, + "latitude": 32.51600578 + }, + "管理用房": { + "longitude": 102.55661126, + "latitude": 32.51593726 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "阿新" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-018", + "name": "南木青家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "南木青", + "constructionYear": 2025, + "sourceNo": 190, + "pointName": "18号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.45747569, + "latitude": 32.4997112, + "locations": { + "暖棚": { + "longitude": 102.45743039, + "latitude": 32.50039193 + }, + "管理用房": { + "longitude": 102.45747569, + "latitude": 32.4997112 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "南木青" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-019", + "name": "桑白家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "桑白", + "constructionYear": 2025, + "sourceNo": 191, + "pointName": "19号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.51611367, + "latitude": 32.46971999, + "locations": { + "暖棚": { + "longitude": 102.51569341, + "latitude": 32.46983718 + }, + "管理用房": { + "longitude": 102.51611367, + "latitude": 32.46971999 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "桑白" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-020", + "name": "尼玛家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "尼玛", + "constructionYear": 2025, + "sourceNo": 192, + "pointName": "20号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.44969589, + "latitude": 32.53923831, + "locations": { + "暖棚": { + "longitude": 102.44978266, + "latitude": 32.53944862 + }, + "管理用房": { + "longitude": 102.44969589, + "latitude": 32.53923831 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "尼玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-021", + "name": "求扎家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "求扎", + "constructionYear": 2025, + "sourceNo": 193, + "pointName": "21号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.47150078, + "latitude": 32.40722678, + "locations": { + "暖棚": { + "longitude": 102.47179278, + "latitude": 32.40707185 + }, + "管理用房": { + "longitude": 102.47150078, + "latitude": 32.40722678 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "求扎" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-022", + "name": "俄白家庭生态牧场", + "town": "龙日镇", + "village": "壤噶夺玛村", + "owner": "俄白", + "constructionYear": 2025, + "sourceNo": 194, + "pointName": "22号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.49071333, + "latitude": 32.49521145, + "locations": { + "暖棚": { + "longitude": 102.49088427, + "latitude": 32.4950118 + }, + "管理用房": { + "longitude": 102.49071333, + "latitude": 32.49521145 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "俄白" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-023", + "name": "杨中泽仁家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "杨中泽仁", + "constructionYear": 2025, + "sourceNo": 195, + "pointName": "23号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.6341466, + "latitude": 32.77015436, + "locations": { + "暖棚": { + "longitude": 102.63389415, + "latitude": 32.77017909 + }, + "管理用房": { + "longitude": 102.6341466, + "latitude": 32.77015436 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "杨中泽仁" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-024", + "name": "西泽家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "西泽", + "constructionYear": 2025, + "sourceNo": 196, + "pointName": "24号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.55496732, + "latitude": 32.71987605, + "locations": { + "暖棚": { + "longitude": 102.55578247, + "latitude": 32.71974519 + }, + "管理用房": { + "longitude": 102.55496732, + "latitude": 32.71987605 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "西泽" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-025", + "name": "阿尔布基家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "阿尔布基", + "constructionYear": 2025, + "sourceNo": 197, + "pointName": "25号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.59523521, + "latitude": 32.73509347, + "locations": { + "暖棚": { + "longitude": 102.5948059, + "latitude": 32.73476878 + }, + "管理用房": { + "longitude": 102.59523521, + "latitude": 32.73509347 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "阿尔布基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-026", + "name": "兰卡家庭生态牧场", + "town": "邛溪镇", + "village": "玛萨村", + "owner": "兰卡", + "constructionYear": 2025, + "sourceNo": 198, + "pointName": "26号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.63713205, + "latitude": 32.81316056, + "locations": { + "暖棚": { + "longitude": 102.63704412, + "latitude": 32.8134533 + }, + "管理用房": { + "longitude": 102.63713205, + "latitude": 32.81316056 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "兰卡" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-027", + "name": "华扎家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "华扎", + "constructionYear": 2025, + "sourceNo": 199, + "pointName": "27号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.50979432, + "latitude": 32.80879562, + "locations": { + "暖棚": { + "longitude": 102.50979432, + "latitude": 32.80879562 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "华扎" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-028", + "name": "勒西家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "勒西", + "constructionYear": 2025, + "sourceNo": 200, + "pointName": "28号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.46173752, + "latitude": 32.95518424, + "locations": { + "暖棚": { + "longitude": 102.46200958, + "latitude": 32.954686 + }, + "管理用房": { + "longitude": 102.46173752, + "latitude": 32.95518424 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "勒西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-029", + "name": "夺基泽单家庭生态牧场", + "town": "邛溪镇", + "village": "达格龙村", + "owner": "夺基泽单", + "constructionYear": 2025, + "sourceNo": 201, + "pointName": "29号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.70020081, + "latitude": 32.72191648, + "locations": { + "暖棚": { + "longitude": 102.70045355, + "latitude": 32.72249951 + }, + "管理用房": { + "longitude": 102.70020081, + "latitude": 32.72191648 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "夺基泽单" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-030", + "name": "卡卓措家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "卡卓措", + "constructionYear": 2025, + "sourceNo": 202, + "pointName": "30号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.51242484, + "latitude": 32.93367637, + "locations": { + "暖棚": { + "longitude": 102.5118488, + "latitude": 32.93352001 + }, + "管理用房": { + "longitude": 102.51242484, + "latitude": 32.93367637 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "卡卓措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-031", + "name": "甲花若巴家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "甲花若巴", + "constructionYear": 2025, + "sourceNo": 203, + "pointName": "31号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.52268299, + "latitude": 32.95119696, + "locations": { + "暖棚": { + "longitude": 102.52277514, + "latitude": 32.95178758 + }, + "管理用房": { + "longitude": 102.52268299, + "latitude": 32.95119696 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "甲花若巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-032", + "name": "布穷家庭生态牧场", + "town": "邛溪镇", + "village": "麻色阳德村", + "owner": "布穷", + "constructionYear": 2025, + "sourceNo": 204, + "pointName": "32号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.54114597, + "latitude": 32.97254854, + "locations": { + "暖棚": { + "longitude": 102.54154441, + "latitude": 32.97243338 + }, + "管理用房": { + "longitude": 102.54114597, + "latitude": 32.97254854 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "布穷" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-033", + "name": "丹姆初家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "丹姆初", + "constructionYear": 2025, + "sourceNo": 205, + "pointName": "33号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.68834131, + "latitude": 32.90209342, + "locations": { + "暖棚": { + "longitude": 102.68837196, + "latitude": 32.90189172 + }, + "管理用房": { + "longitude": 102.68834131, + "latitude": 32.90209342 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "丹姆初" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-034", + "name": "塔尔洼家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "塔尔洼", + "constructionYear": 2025, + "sourceNo": 206, + "pointName": "34号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.6640831, + "latitude": 32.89217135, + "locations": { + "暖棚": { + "longitude": 102.66431407, + "latitude": 32.89220187 + }, + "管理用房": { + "longitude": 102.6640831, + "latitude": 32.89217135 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "塔尔洼" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-035", + "name": "相木秋家庭生态牧场", + "town": "邛溪镇", + "village": "热坤村", + "owner": "相木秋", + "constructionYear": 2025, + "sourceNo": 207, + "pointName": "35号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.57449573, + "latitude": 32.81193451, + "locations": { + "暖棚": { + "longitude": 102.57510429, + "latitude": 32.8117671 + }, + "管理用房": { + "longitude": 102.57449573, + "latitude": 32.81193451 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "相木秋" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-036", + "name": "索科家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "索科", + "constructionYear": 2025, + "sourceNo": 208, + "pointName": "36号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.59972676, + "latitude": 32.96673649, + "locations": { + "暖棚": { + "longitude": 102.60036425, + "latitude": 32.96680279 + }, + "管理用房": { + "longitude": 102.59972676, + "latitude": 32.96673649 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "索科" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-037", + "name": "容中黑周家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "容中黑周", + "constructionYear": 2025, + "sourceNo": 209, + "pointName": "37号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.54097207, + "latitude": 32.92694872, + "locations": { + "暖棚": { + "longitude": 102.5418407, + "latitude": 32.92737961 + }, + "管理用房": { + "longitude": 102.54097207, + "latitude": 32.92694872 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "容中黑周" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-038", + "name": "桑都家庭生态牧场", + "town": "邛溪镇", + "village": "热多村", + "owner": "桑都", + "constructionYear": 2025, + "sourceNo": 210, + "pointName": "38号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.58826677, + "latitude": 32.88476392, + "locations": { + "暖棚": { + "longitude": 102.58801957, + "latitude": 32.88408206 + }, + "管理用房": { + "longitude": 102.58826677, + "latitude": 32.88476392 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "桑都" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-039", + "name": "茫兴家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "茫兴", + "constructionYear": 2025, + "sourceNo": 211, + "pointName": "39号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.07991934, + "latitude": 32.47311379, + "locations": { + "暖棚": { + "longitude": 102.07972827, + "latitude": 32.47333689 + }, + "管理用房": { + "longitude": 102.07991934, + "latitude": 32.47311379 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "茫兴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-040", + "name": "得基卓玛家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "得基卓玛", + "constructionYear": 2025, + "sourceNo": 212, + "pointName": "40号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.02913011, + "latitude": 32.43776256, + "locations": { + "暖棚": { + "longitude": 102.02905511, + "latitude": 32.43749287 + }, + "管理用房": { + "longitude": 102.02913011, + "latitude": 32.43776256 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "得基卓玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-041", + "name": "俄玛家庭生态牧场", + "town": "查尔玛乡", + "village": "什布龙村", + "owner": "俄玛", + "constructionYear": 2025, + "sourceNo": 213, + "pointName": "41号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.02292951, + "latitude": 32.46024019, + "locations": { + "暖棚": { + "longitude": 102.02290624, + "latitude": 32.46043784 + }, + "管理用房": { + "longitude": 102.02292951, + "latitude": 32.46024019 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "俄玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-043", + "name": "桑都措家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "桑都措", + "constructionYear": 2025, + "sourceNo": 214, + "pointName": "43号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 101.9504197, + "latitude": 32.41285591, + "locations": { + "暖棚": { + "longitude": 101.9504197, + "latitude": 32.41285591 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "桑都措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-044", + "name": "求沙家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "求沙", + "constructionYear": 2025, + "sourceNo": 215, + "pointName": "44号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 101.93533172, + "latitude": 32.42625182, + "locations": { + "暖棚": { + "longitude": 101.93515169, + "latitude": 32.42601524 + }, + "管理用房": { + "longitude": 101.93533172, + "latitude": 32.42625182 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "求沙" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-045", + "name": "旦渣家庭生态牧场", + "town": "查尔玛乡", + "village": "查龙村", + "owner": "旦渣", + "constructionYear": 2025, + "sourceNo": 216, + "pointName": "45号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 101.95319961, + "latitude": 32.50653773, + "locations": { + "暖棚": { + "longitude": 101.95330639, + "latitude": 32.50669919 + }, + "管理用房": { + "longitude": 101.95319961, + "latitude": 32.50653773 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "旦渣" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-046", + "name": "达玛王家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "达玛王", + "constructionYear": 2025, + "sourceNo": 217, + "pointName": "46号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.13310816, + "latitude": 32.44495604, + "locations": { + "暖棚": { + "longitude": 102.13292789, + "latitude": 32.44464674 + }, + "管理用房": { + "longitude": 102.13310816, + "latitude": 32.44495604 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "达玛王" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-047", + "name": "吉措家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "吉措", + "constructionYear": 2025, + "sourceNo": 218, + "pointName": "47号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.10031343, + "latitude": 32.52946984, + "locations": { + "暖棚": { + "longitude": 102.1000073, + "latitude": 32.52950127 + }, + "管理用房": { + "longitude": 102.10031343, + "latitude": 32.52946984 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "吉措" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-048", + "name": "然让家庭生态牧场", + "town": "查尔玛乡", + "village": "达尔龙村", + "owner": "然让", + "constructionYear": 2025, + "sourceNo": 219, + "pointName": "48号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.1186522, + "latitude": 32.54205879, + "locations": { + "暖棚": { + "longitude": 102.11832613, + "latitude": 32.54201141 + }, + "管理用房": { + "longitude": 102.1186522, + "latitude": 32.54205879 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "然让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-049", + "name": "索郎益西家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "索郎益西", + "constructionYear": 2025, + "sourceNo": 220, + "pointName": "49号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.59817262, + "latitude": 33.15279516, + "locations": { + "暖棚": { + "longitude": 102.59826937, + "latitude": 33.15242954 + }, + "管理用房": { + "longitude": 102.59817262, + "latitude": 33.15279516 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "索郎益西" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-050", + "name": "阿布洛家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "阿布洛", + "constructionYear": 2025, + "sourceNo": 221, + "pointName": "50号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.58881798, + "latitude": 33.13491038, + "locations": { + "暖棚": { + "longitude": 102.58881798, + "latitude": 33.13491038 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "阿布洛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-051", + "name": "甲花扎巴家庭生态牧场", + "town": "瓦切镇", + "village": "德香村", + "owner": "甲花扎巴", + "constructionYear": 2025, + "sourceNo": 222, + "pointName": "51号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.62447024, + "latitude": 33.14756405, + "locations": { + "暖棚": { + "longitude": 102.62447024, + "latitude": 33.14756405 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "甲花扎巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-052", + "name": "桑阿家庭生态牧场", + "town": "瓦切镇", + "village": "唐日村", + "owner": "桑阿", + "constructionYear": 2025, + "sourceNo": 223, + "pointName": "52号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.60287876, + "latitude": 33.06269322, + "locations": { + "暖棚": { + "longitude": 102.60249352, + "latitude": 33.06252399 + }, + "管理用房": { + "longitude": 102.60287876, + "latitude": 33.06269322 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "桑阿" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-053", + "name": "泽旺卓玛家庭生态牧场", + "town": "瓦切镇", + "village": "唐日村", + "owner": "泽旺卓玛", + "constructionYear": 2025, + "sourceNo": 224, + "pointName": "53号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.62023015, + "latitude": 33.07672504, + "locations": { + "暖棚": { + "longitude": 102.6195876, + "latitude": 33.07660844 + }, + "管理用房": { + "longitude": 102.62023015, + "latitude": 33.07672504 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "泽旺卓玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-054", + "name": "达多杰家庭生态牧场", + "town": "瓦切镇", + "village": "唐日村", + "owner": "达多杰", + "constructionYear": 2025, + "sourceNo": 225, + "pointName": "54号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.65907881, + "latitude": 33.04426714, + "locations": { + "暖棚": { + "longitude": 102.65878993, + "latitude": 33.0443906 + }, + "管理用房": { + "longitude": 102.65907881, + "latitude": 33.04426714 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "达多杰" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-055", + "name": "甲花家庭生态牧场", + "town": "瓦切镇", + "village": "曲登塘社区", + "owner": "甲花", + "constructionYear": 2025, + "sourceNo": 226, + "pointName": "55号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.60900684, + "latitude": 33.05296943, + "locations": { + "暖棚": { + "longitude": 102.60968583, + "latitude": 33.05324231 + }, + "管理用房": { + "longitude": 102.60900684, + "latitude": 33.05296943 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "甲花" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-056", + "name": "普尔娃他家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "普尔娃他", + "constructionYear": 2025, + "sourceNo": 227, + "pointName": "56号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.60388795, + "latitude": 33.080497, + "locations": { + "暖棚": { + "longitude": 102.60365851, + "latitude": 33.08085512 + }, + "管理用房": { + "longitude": 102.60388795, + "latitude": 33.080497 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "普尔娃他" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-057", + "name": "腊夺家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "腊夺", + "constructionYear": 2025, + "sourceNo": 228, + "pointName": "57号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.60558227, + "latitude": 33.03649561, + "locations": { + "暖棚": { + "longitude": 102.60526934, + "latitude": 33.03662516 + }, + "管理用房": { + "longitude": 102.60558227, + "latitude": 33.03649561 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "腊夺" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-058", + "name": "拉姆姐家庭生态牧场", + "town": "瓦切镇", + "village": "达峨村", + "owner": "拉姆姐", + "constructionYear": 2025, + "sourceNo": 229, + "pointName": "58号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.68677242, + "latitude": 33.01494028, + "locations": { + "暖棚": { + "longitude": 102.68739311, + "latitude": 33.0149217 + }, + "管理用房": { + "longitude": 102.68677242, + "latitude": 33.01494028 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "拉姆姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-059", + "name": "尔金姐家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "尔金姐", + "constructionYear": 2025, + "sourceNo": 230, + "pointName": "59号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.75797357, + "latitude": 33.05247976, + "locations": { + "暖棚": { + "longitude": 102.75821556, + "latitude": 33.05186118 + }, + "管理用房": { + "longitude": 102.75797357, + "latitude": 33.05247976 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "尔金姐" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-060", + "name": "果·尼科家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "果·尼科", + "constructionYear": 2025, + "sourceNo": 231, + "pointName": "60号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.72144107, + "latitude": 33.09435508, + "locations": { + "暖棚": { + "longitude": 102.72188962, + "latitude": 33.09419876 + }, + "管理用房": { + "longitude": 102.72144107, + "latitude": 33.09435508 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "果·尼科" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-061", + "name": "苏拉王家庭生态牧场", + "town": "瓦切镇", + "village": "日干村", + "owner": "苏拉王", + "constructionYear": 2025, + "sourceNo": 232, + "pointName": "61号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.61834278, + "latitude": 33.16780533, + "locations": { + "暖棚": { + "longitude": 102.61834278, + "latitude": 33.16780533 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "苏拉王" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-062", + "name": "桑阿家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "桑阿", + "constructionYear": 2025, + "sourceNo": 233, + "pointName": "62号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.80956551, + "latitude": 33.03877017, + "locations": { + "暖棚": { + "longitude": 102.80909925, + "latitude": 33.03857555 + }, + "管理用房": { + "longitude": 102.80956551, + "latitude": 33.03877017 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "桑阿" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-063", + "name": "卓玛娜姆家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "卓玛娜姆", + "constructionYear": 2025, + "sourceNo": 234, + "pointName": "63号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.82588257, + "latitude": 33.03170874, + "locations": { + "暖棚": { + "longitude": 102.82561727, + "latitude": 33.03236022 + }, + "管理用房": { + "longitude": 102.82588257, + "latitude": 33.03170874 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "卓玛娜姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-064", + "name": "麦朵拉姆家庭生态牧场", + "town": "瓦切镇", + "village": "色永村", + "owner": "麦朵拉姆", + "constructionYear": 2025, + "sourceNo": 235, + "pointName": "64号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.83282822, + "latitude": 33.02336202, + "locations": { + "暖棚": { + "longitude": 102.83285089, + "latitude": 33.02300106 + }, + "管理用房": { + "longitude": 102.83282822, + "latitude": 33.02336202 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "麦朵拉姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-065", + "name": "支多娜姆家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "支多娜姆", + "constructionYear": 2025, + "sourceNo": 236, + "pointName": "65号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.19990732, + "latitude": 32.42229086, + "locations": { + "暖棚": { + "longitude": 102.20070669, + "latitude": 32.42224384 + }, + "管理用房": { + "longitude": 102.19990732, + "latitude": 32.42229086 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "支多娜姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-066", + "name": "俄波家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "俄波", + "constructionYear": 2025, + "sourceNo": 237, + "pointName": "66号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.20292182, + "latitude": 32.43868925, + "locations": { + "暖棚": { + "longitude": 102.20320835, + "latitude": 32.43908196 + }, + "管理用房": { + "longitude": 102.20292182, + "latitude": 32.43868925 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "俄波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-067", + "name": "格日家庭生态牧场", + "town": "江茸乡", + "village": "江宫玛村", + "owner": "格日", + "constructionYear": 2025, + "sourceNo": 238, + "pointName": "67号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.2217086, + "latitude": 32.4769641, + "locations": { + "暖棚": { + "longitude": 102.22170157, + "latitude": 32.47727277 + }, + "管理用房": { + "longitude": 102.2217086, + "latitude": 32.4769641 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "格日" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-068", + "name": "更让尼玛家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "更让尼玛", + "constructionYear": 2025, + "sourceNo": 239, + "pointName": "68号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.21973813, + "latitude": 32.50918264, + "locations": { + "暖棚": { + "longitude": 102.22028091, + "latitude": 32.50928539 + }, + "管理用房": { + "longitude": 102.21973813, + "latitude": 32.50918264 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "更让尼玛" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-069", + "name": "罗布让家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "罗布让", + "constructionYear": 2025, + "sourceNo": 240, + "pointName": "69号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.22810898, + "latitude": 32.51942, + "locations": { + "暖棚": { + "longitude": 102.22815984, + "latitude": 32.51915025 + }, + "管理用房": { + "longitude": 102.22810898, + "latitude": 32.51942 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "罗布让" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-070", + "name": "王甲家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "王甲", + "constructionYear": 2025, + "sourceNo": 241, + "pointName": "70号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.22938935, + "latitude": 32.50833256, + "locations": { + "暖棚": { + "longitude": 102.22913952, + "latitude": 32.50866903 + }, + "管理用房": { + "longitude": 102.22938935, + "latitude": 32.50833256 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "王甲" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-071", + "name": "占波家庭生态牧场", + "town": "江茸乡", + "village": "茸日玛村", + "owner": "占波", + "constructionYear": 2025, + "sourceNo": 242, + "pointName": "71号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.23990168, + "latitude": 32.48078901, + "locations": { + "暖棚": { + "longitude": 102.23962706, + "latitude": 32.48083944 + }, + "管理用房": { + "longitude": 102.23990168, + "latitude": 32.48078901 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "占波" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-072", + "name": "罗日家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "罗日", + "constructionYear": 2025, + "sourceNo": 243, + "pointName": "72号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.61169021, + "latitude": 32.08932106, + "locations": { + "暖棚": { + "longitude": 102.61148498, + "latitude": 32.08914501 + }, + "管理用房": { + "longitude": 102.61169021, + "latitude": 32.08932106 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "罗日" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-073", + "name": "甲花夺基家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "甲花夺基", + "constructionYear": 2025, + "sourceNo": 244, + "pointName": "73号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.56962246, + "latitude": 32.08623818, + "locations": { + "暖棚": { + "longitude": 102.5699463, + "latitude": 32.08635954 + }, + "管理用房": { + "longitude": 102.56962246, + "latitude": 32.08623818 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "甲花夺基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-074", + "name": "供木丹家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "供木丹", + "constructionYear": 2025, + "sourceNo": 245, + "pointName": "74号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.48240109, + "latitude": 32.20777413, + "locations": { + "暖棚": { + "longitude": 102.48249928, + "latitude": 32.20799391 + }, + "管理用房": { + "longitude": 102.48240109, + "latitude": 32.20777413 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "供木丹" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-075", + "name": "华尔白家庭生态牧场", + "town": "刷经寺镇", + "village": "壤口村", + "owner": "华尔白", + "constructionYear": 2025, + "sourceNo": 246, + "pointName": "75号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.5588633, + "latitude": 32.38692708, + "locations": { + "暖棚": { + "longitude": 102.55912658, + "latitude": 32.38683384 + }, + "管理用房": { + "longitude": 102.5588633, + "latitude": 32.38692708 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "华尔白" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-076", + "name": "谢尔拉姆家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "谢尔拉姆", + "constructionYear": 2025, + "sourceNo": 247, + "pointName": "76号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.67850122, + "latitude": 32.93495695, + "locations": { + "暖棚": { + "longitude": 102.67883757, + "latitude": 32.93485478 + }, + "管理用房": { + "longitude": 102.67850122, + "latitude": 32.93495695 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "谢尔拉姆" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-077", + "name": "若巴家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "若巴", + "constructionYear": 2025, + "sourceNo": 248, + "pointName": "77号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.83999152, + "latitude": 32.77133407, + "locations": { + "暖棚": { + "longitude": 102.8392576, + "latitude": 32.77165891 + }, + "管理用房": { + "longitude": 102.83999152, + "latitude": 32.77133407 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "若巴" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-078", + "name": "扑尔夺家庭生态牧场", + "town": "阿木乡", + "village": "峨扎村", + "owner": "扑尔夺", + "constructionYear": 2025, + "sourceNo": 249, + "pointName": "78号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.79027109, + "latitude": 32.79883402, + "locations": { + "暖棚": { + "longitude": 102.78948161, + "latitude": 32.79853105 + }, + "管理用房": { + "longitude": 102.79027109, + "latitude": 32.79883402 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "扑尔夺" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-079", + "name": "甲基家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "甲基", + "constructionYear": 2025, + "sourceNo": 250, + "pointName": "79号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.83380011, + "latitude": 32.86722605, + "locations": { + "暖棚": { + "longitude": 102.83426146, + "latitude": 32.86765306 + }, + "管理用房": { + "longitude": 102.83380011, + "latitude": 32.86722605 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "甲基" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-080", + "name": "尕得家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "尕得", + "constructionYear": 2025, + "sourceNo": 251, + "pointName": "80号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.83189751, + "latitude": 32.82836028, + "locations": { + "暖棚": { + "longitude": 102.83237405, + "latitude": 32.82819561 + }, + "管理用房": { + "longitude": 102.83189751, + "latitude": 32.82836028 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "尕得" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + }, + { + "id": "YC-FAMILY-PASTURE-081", + "name": "西夏唐美家庭生态牧场", + "town": "阿木乡", + "village": "卡口村", + "owner": "西夏唐美", + "constructionYear": 2025, + "sourceNo": 252, + "pointName": "81号点", + "facilityBrief": "300㎡暖棚 / 60㎡管理房", + "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "grassSupportType": "网围栏种草", + "grassSupportMu": 5, + "grassSupportLowerBound": false, + "grassSupportText": "网围栏种草 5亩", + "longitude": 102.77903691, + "latitude": 32.72696452, + "locations": { + "暖棚": { + "longitude": 102.7785588, + "latitude": 32.72665098 + }, + "管理用房": { + "longitude": 102.77903691, + "latitude": 32.72696452 + } + }, + "metrics": { + "标准化暖棚 (㎡)": 300, + "管理用房 (㎡)": 60, + "饲草料库 (㎡)": 50, + "活动场地及通道 (㎡)": 500, + "配套草料地 (亩)": 5 + }, + "attributes": { + "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", + "草料配套": "网围栏种草 5亩", + "户主": "西夏唐美" + }, + "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" + } + ] +} +`,pe=`{ + "generatedAt": "2026-07-10T16:32:43.331Z", + "sourceLabel": "21.95万亩种草矢量数据", + "statusLabel": "待核定", + "totalPlots": 118, + "coveredTowns": 6, + "projectPlots": 9, + "pendingPlots": 118, + "townRows": [ + { + "key": "邛溪镇", + "name": "邛溪镇", + "value": 31, + "unit": "个", + "extra": "待核定图斑", + "zero": false + }, + { + "key": "刷经寺镇", + "name": "刷经寺镇", + "value": 0, + "unit": "个", + "extra": "暂无图斑", + "zero": true + }, + { + "key": "安曲镇", + "name": "安曲镇", + "value": 81, + "unit": "个", + "extra": "待核定图斑", + "zero": false + }, + { + "key": "龙日镇", + "name": "龙日镇", + "value": 2, + "unit": "个", + "extra": "待核定图斑", + "zero": false + }, + { + "key": "江茸乡", + "name": "江茸乡", + "value": 2, + "unit": "个", + "extra": "待核定图斑", + "zero": false + }, + { + "key": "查尔玛乡", + "name": "查尔玛乡", + "value": 1, + "unit": "个", + "extra": "待核定图斑", + "zero": false + }, + { + "key": "瓦切镇", + "name": "瓦切镇", + "value": 1, + "unit": "个", + "extra": "待核定图斑", + "zero": false + }, + { + "key": "阿木乡", + "name": "阿木乡", + "value": 0, + "unit": "个", + "extra": "暂无图斑", + "zero": true + }, + { + "key": "麦洼乡", + "name": "麦洼乡", + "value": 0, + "unit": "个", + "extra": "暂无图斑", + "zero": true + }, + { + "key": "色地镇", + "name": "色地镇", + "value": 0, + "unit": "个", + "extra": "暂无图斑", + "zero": true + } + ], + "categoryRows": [ + { + "key": "待分类图斑", + "name": "待分类图斑", + "value": 49, + "unit": "个" + }, + { + "key": "撒播图斑", + "name": "撒播图斑", + "value": 42, + "unit": "个" + }, + { + "key": "调拨地块", + "name": "调拨地块", + "value": 10, + "unit": "个" + }, + { + "key": "项目地块", + "name": "项目地块", + "value": 9, + "unit": "个" + }, + { + "key": "高产稳产范围", + "name": "高产稳产范围", + "value": 8, + "unit": "个" + } + ], + "sourceRows": [ + { + "key": "边界图斑", + "name": "边界图斑", + "value": 109, + "unit": "个" + }, + { + "key": "面图斑", + "name": "面图斑", + "value": 9, + "unit": "个" + } + ], + "plotRows": [ + { + "key": "AG-111", + "id": "AG-111", + "name": "1号地块多边形", + "fullName": "1号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "1号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-115", + "id": "AG-115", + "name": "2号地块多边形", + "fullName": "2号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "2号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-110", + "id": "AG-110", + "name": "3号地块多边形", + "fullName": "3号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "3号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-113", + "id": "AG-113", + "name": "4号地块多边形", + "fullName": "4号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "4号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-118", + "id": "AG-118", + "name": "5号地块多边形", + "fullName": "5号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "5号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-117", + "id": "AG-117", + "name": "6号地块多边形", + "fullName": "6号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "6号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-112", + "id": "AG-112", + "name": "产业园9号地块多边形", + "fullName": "产业园9号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "产业园9号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-116", + "id": "AG-116", + "name": "人字形7号地块多边形", + "fullName": "人字形7号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "人字形7号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-114", + "id": "AG-114", + "name": "无人区8号地块多边形", + "fullName": "无人区8号地块多边形", + "town": "邛溪镇", + "category": "项目地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "无人区8号地块多边形 邛溪镇 项目地块 待核定" + }, + { + "key": "AG-069", + "id": "AG-069", + "name": "121212_118", + "fullName": "121212_118", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_118 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-070", + "id": "AG-070", + "name": "121212_119", + "fullName": "121212_119", + "town": "江茸乡", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_119 江茸乡 待分类图斑 待核定" + }, + { + "key": "AG-071", + "id": "AG-071", + "name": "121212_120", + "fullName": "121212_120", + "town": "江茸乡", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_120 江茸乡 待分类图斑 待核定" + }, + { + "key": "AG-072", + "id": "AG-072", + "name": "121212_121", + "fullName": "121212_121", + "town": "查尔玛乡", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_121 查尔玛乡 待分类图斑 待核定" + }, + { + "key": "AG-073", + "id": "AG-073", + "name": "121212_122", + "fullName": "121212_122", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_122 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-061", + "id": "AG-061", + "name": "121212_61", + "fullName": "121212_61", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_61 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-062", + "id": "AG-062", + "name": "121212_62", + "fullName": "121212_62", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_62 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-063", + "id": "AG-063", + "name": "121212_63", + "fullName": "121212_63", + "town": "龙日镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_63 龙日镇 待分类图斑 待核定" + }, + { + "key": "AG-064", + "id": "AG-064", + "name": "121212_64", + "fullName": "121212_64", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_64 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-065", + "id": "AG-065", + "name": "121212_65", + "fullName": "121212_65", + "town": "龙日镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_65 龙日镇 待分类图斑 待核定" + }, + { + "key": "AG-066", + "id": "AG-066", + "name": "121212_66", + "fullName": "121212_66", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_66 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-067", + "id": "AG-067", + "name": "121212_67", + "fullName": "121212_67", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_67 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-068", + "id": "AG-068", + "name": "121212_68", + "fullName": "121212_68", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "121212_68 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-051", + "id": "AG-051", + "name": "调拨_51", + "fullName": "调拨_51", + "town": "安曲镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_51 安曲镇 调拨地块 待核定" + }, + { + "key": "AG-052", + "id": "AG-052", + "name": "调拨_52", + "fullName": "调拨_52", + "town": "安曲镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_52 安曲镇 调拨地块 待核定" + }, + { + "key": "AG-053", + "id": "AG-053", + "name": "调拨_53", + "fullName": "调拨_53", + "town": "安曲镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_53 安曲镇 调拨地块 待核定" + }, + { + "key": "AG-054", + "id": "AG-054", + "name": "调拨_54", + "fullName": "调拨_54", + "town": "安曲镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_54 安曲镇 调拨地块 待核定" + }, + { + "key": "AG-055", + "id": "AG-055", + "name": "调拨_55", + "fullName": "调拨_55", + "town": "安曲镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_55 安曲镇 调拨地块 待核定" + }, + { + "key": "AG-056", + "id": "AG-056", + "name": "调拨_56", + "fullName": "调拨_56", + "town": "邛溪镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_56 邛溪镇 调拨地块 待核定" + }, + { + "key": "AG-057", + "id": "AG-057", + "name": "调拨_57", + "fullName": "调拨_57", + "town": "邛溪镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_57 邛溪镇 调拨地块 待核定" + }, + { + "key": "AG-058", + "id": "AG-058", + "name": "调拨_58", + "fullName": "调拨_58", + "town": "邛溪镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_58 邛溪镇 调拨地块 待核定" + }, + { + "key": "AG-059", + "id": "AG-059", + "name": "调拨_59", + "fullName": "调拨_59", + "town": "邛溪镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_59 邛溪镇 调拨地块 待核定" + }, + { + "key": "AG-060", + "id": "AG-060", + "name": "调拨_60", + "fullName": "调拨_60", + "town": "邛溪镇", + "category": "调拨地块", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "调拨_60 邛溪镇 调拨地块 待核定" + }, + { + "key": "AG-105", + "id": "AG-105", + "name": "其他_100", + "fullName": "其他_100", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_100 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-106", + "id": "AG-106", + "name": "其他_101", + "fullName": "其他_101", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_101 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-107", + "id": "AG-107", + "name": "其他_102", + "fullName": "其他_102", + "town": "邛溪镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_102 邛溪镇 待分类图斑 待核定" + }, + { + "key": "AG-108", + "id": "AG-108", + "name": "其他_103", + "fullName": "其他_103", + "town": "邛溪镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_103 邛溪镇 待分类图斑 待核定" + }, + { + "key": "AG-109", + "id": "AG-109", + "name": "其他_104", + "fullName": "其他_104", + "town": "邛溪镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_104 邛溪镇 待分类图斑 待核定" + }, + { + "key": "AG-074", + "id": "AG-074", + "name": "其他_69", + "fullName": "其他_69", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_69 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-075", + "id": "AG-075", + "name": "其他_70", + "fullName": "其他_70", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_70 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-076", + "id": "AG-076", + "name": "其他_71", + "fullName": "其他_71", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_71 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-077", + "id": "AG-077", + "name": "其他_72", + "fullName": "其他_72", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_72 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-078", + "id": "AG-078", + "name": "其他_73", + "fullName": "其他_73", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_73 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-079", + "id": "AG-079", + "name": "其他_74", + "fullName": "其他_74", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_74 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-080", + "id": "AG-080", + "name": "其他_75", + "fullName": "其他_75", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_75 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-081", + "id": "AG-081", + "name": "其他_76", + "fullName": "其他_76", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_76 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-082", + "id": "AG-082", + "name": "其他_77", + "fullName": "其他_77", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_77 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-083", + "id": "AG-083", + "name": "其他_78", + "fullName": "其他_78", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_78 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-084", + "id": "AG-084", + "name": "其他_79", + "fullName": "其他_79", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_79 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-085", + "id": "AG-085", + "name": "其他_80", + "fullName": "其他_80", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_80 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-086", + "id": "AG-086", + "name": "其他_81", + "fullName": "其他_81", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_81 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-087", + "id": "AG-087", + "name": "其他_82", + "fullName": "其他_82", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_82 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-088", + "id": "AG-088", + "name": "其他_83", + "fullName": "其他_83", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_83 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-089", + "id": "AG-089", + "name": "其他_84", + "fullName": "其他_84", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_84 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-090", + "id": "AG-090", + "name": "其他_85", + "fullName": "其他_85", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_85 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-091", + "id": "AG-091", + "name": "其他_86", + "fullName": "其他_86", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_86 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-092", + "id": "AG-092", + "name": "其他_87", + "fullName": "其他_87", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_87 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-093", + "id": "AG-093", + "name": "其他_88", + "fullName": "其他_88", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_88 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-094", + "id": "AG-094", + "name": "其他_89", + "fullName": "其他_89", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_89 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-095", + "id": "AG-095", + "name": "其他_90", + "fullName": "其他_90", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_90 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-096", + "id": "AG-096", + "name": "其他_91", + "fullName": "其他_91", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_91 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-097", + "id": "AG-097", + "name": "其他_92", + "fullName": "其他_92", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_92 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-098", + "id": "AG-098", + "name": "其他_93", + "fullName": "其他_93", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_93 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-099", + "id": "AG-099", + "name": "其他_94", + "fullName": "其他_94", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_94 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-100", + "id": "AG-100", + "name": "其他_95", + "fullName": "其他_95", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_95 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-101", + "id": "AG-101", + "name": "其他_96", + "fullName": "其他_96", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_96 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-102", + "id": "AG-102", + "name": "其他_97", + "fullName": "其他_97", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_97 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-103", + "id": "AG-103", + "name": "其他_98", + "fullName": "其他_98", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_98 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-104", + "id": "AG-104", + "name": "其他_99", + "fullName": "其他_99", + "town": "安曲镇", + "category": "待分类图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "其他_99 安曲镇 待分类图斑 待核定" + }, + { + "key": "AG-001", + "id": "AG-001", + "name": "撒播_0", + "fullName": "撒播_0", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_0 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-002", + "id": "AG-002", + "name": "撒播_1", + "fullName": "撒播_1", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_1 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-011", + "id": "AG-011", + "name": "撒播_10", + "fullName": "撒播_10", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_10 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-012", + "id": "AG-012", + "name": "撒播_11", + "fullName": "撒播_11", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_11 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-013", + "id": "AG-013", + "name": "撒播_12", + "fullName": "撒播_12", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_12 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-014", + "id": "AG-014", + "name": "撒播_13", + "fullName": "撒播_13", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_13 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-015", + "id": "AG-015", + "name": "撒播_14", + "fullName": "撒播_14", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_14 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-016", + "id": "AG-016", + "name": "撒播_15", + "fullName": "撒播_15", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_15 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-017", + "id": "AG-017", + "name": "撒播_16", + "fullName": "撒播_16", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_16 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-018", + "id": "AG-018", + "name": "撒播_17", + "fullName": "撒播_17", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_17 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-019", + "id": "AG-019", + "name": "撒播_18", + "fullName": "撒播_18", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_18 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-020", + "id": "AG-020", + "name": "撒播_19", + "fullName": "撒播_19", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_19 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-003", + "id": "AG-003", + "name": "撒播_2", + "fullName": "撒播_2", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_2 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-021", + "id": "AG-021", + "name": "撒播_20", + "fullName": "撒播_20", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_20 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-022", + "id": "AG-022", + "name": "撒播_21", + "fullName": "撒播_21", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_21 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-023", + "id": "AG-023", + "name": "撒播_22", + "fullName": "撒播_22", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_22 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-024", + "id": "AG-024", + "name": "撒播_23", + "fullName": "撒播_23", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_23 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-025", + "id": "AG-025", + "name": "撒播_24", + "fullName": "撒播_24", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_24 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-026", + "id": "AG-026", + "name": "撒播_25", + "fullName": "撒播_25", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_25 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-027", + "id": "AG-027", + "name": "撒播_26", + "fullName": "撒播_26", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_26 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-028", + "id": "AG-028", + "name": "撒播_27", + "fullName": "撒播_27", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_27 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-029", + "id": "AG-029", + "name": "撒播_28", + "fullName": "撒播_28", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_28 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-030", + "id": "AG-030", + "name": "撒播_29", + "fullName": "撒播_29", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_29 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-004", + "id": "AG-004", + "name": "撒播_3", + "fullName": "撒播_3", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_3 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-031", + "id": "AG-031", + "name": "撒播_30", + "fullName": "撒播_30", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_30 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-032", + "id": "AG-032", + "name": "撒播_31", + "fullName": "撒播_31", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_31 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-033", + "id": "AG-033", + "name": "撒播_32", + "fullName": "撒播_32", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_32 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-034", + "id": "AG-034", + "name": "撒播_33", + "fullName": "撒播_33", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_33 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-035", + "id": "AG-035", + "name": "撒播_34", + "fullName": "撒播_34", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_34 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-036", + "id": "AG-036", + "name": "撒播_35", + "fullName": "撒播_35", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_35 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-037", + "id": "AG-037", + "name": "撒播_36", + "fullName": "撒播_36", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_36 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-038", + "id": "AG-038", + "name": "撒播_37", + "fullName": "撒播_37", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_37 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-039", + "id": "AG-039", + "name": "撒播_38", + "fullName": "撒播_38", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_38 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-040", + "id": "AG-040", + "name": "撒播_39", + "fullName": "撒播_39", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_39 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-005", + "id": "AG-005", + "name": "撒播_4", + "fullName": "撒播_4", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_4 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-041", + "id": "AG-041", + "name": "撒播_40", + "fullName": "撒播_40", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_40 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-042", + "id": "AG-042", + "name": "撒播_41", + "fullName": "撒播_41", + "town": "邛溪镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_41 邛溪镇 撒播图斑 待核定" + }, + { + "key": "AG-006", + "id": "AG-006", + "name": "撒播_5", + "fullName": "撒播_5", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_5 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-007", + "id": "AG-007", + "name": "撒播_6", + "fullName": "撒播_6", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_6 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-008", + "id": "AG-008", + "name": "撒播_7", + "fullName": "撒播_7", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_7 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-009", + "id": "AG-009", + "name": "撒播_8", + "fullName": "撒播_8", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_8 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-010", + "id": "AG-010", + "name": "撒播_9", + "fullName": "撒播_9", + "town": "安曲镇", + "category": "撒播图斑", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "撒播_9 安曲镇 撒播图斑 待核定" + }, + { + "key": "AG-043", + "id": "AG-043", + "name": "总范围_42", + "fullName": "总范围_42", + "town": "安曲镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_42 安曲镇 高产稳产范围 待核定" + }, + { + "key": "AG-044", + "id": "AG-044", + "name": "总范围_44", + "fullName": "总范围_44", + "town": "安曲镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_44 安曲镇 高产稳产范围 待核定" + }, + { + "key": "AG-045", + "id": "AG-045", + "name": "总范围_45", + "fullName": "总范围_45", + "town": "安曲镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_45 安曲镇 高产稳产范围 待核定" + }, + { + "key": "AG-046", + "id": "AG-046", + "name": "总范围_46", + "fullName": "总范围_46", + "town": "邛溪镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_46 邛溪镇 高产稳产范围 待核定" + }, + { + "key": "AG-047", + "id": "AG-047", + "name": "总范围_47", + "fullName": "总范围_47", + "town": "邛溪镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_47 邛溪镇 高产稳产范围 待核定" + }, + { + "key": "AG-048", + "id": "AG-048", + "name": "总范围_48", + "fullName": "总范围_48", + "town": "邛溪镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_48 邛溪镇 高产稳产范围 待核定" + }, + { + "key": "AG-049", + "id": "AG-049", + "name": "总范围_49", + "fullName": "总范围_49", + "town": "邛溪镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_49 邛溪镇 高产稳产范围 待核定" + }, + { + "key": "AG-050", + "id": "AG-050", + "name": "总范围_50", + "fullName": "总范围_50", + "town": "瓦切镇", + "category": "高产稳产范围", + "status": "待核定", + "stageKey": "artificial-grassland", + "stageName": "人工种草", + "canLocate": true, + "locateText": "定位", + "searchText": "总范围_50 瓦切镇 高产稳产范围 待核定" + } + ] +} +`,me=`{ + "generatedAt": "2026-07-11T03:50:38.329544+00:00", + "sourceLabel": "各乡镇实测种草面积汇总表2023-7-25.xlsx", + "sourceSheet": "Sheet1", + "sourceNote": "按汇总表合计行作为大屏面积口径;图斑资料仅用于地图定位,不作为统计主口径。", + "summary": { + "actualAreaMu": 56569, + "contractAreaMu": 56569, + "areaDifferenceMu": 0, + "projectCount": 6, + "coveredTownCount": 7, + "constructionYearCount": 3, + "investmentRecordCount": 5, + "investmentWanYuan": 4322.56, + "tillageDisturbanceMu": 10011.32, + "slightDisturbanceMu": 2301.69, + "tillageMu": 7093.23, + "drillSowingMu": 14818, + "noTillOverseedingMu": 30118.76 + }, + "projectRows": [ + { + "key": "artificial-grassland-project-1", + "name": "2023饲草基地", + "fullName": "四川省红原县草原畜牧业转型升级试点项目(2023)高产稳产饲草基地", + "year": "2023", + "category": "高产稳产饲草基地", + "value": 12000, + "unit": "亩", + "actualAreaMu": 12000, + "contractAreaMu": 12000, + "investmentWanYuan": 984.1, + "owner": "红原县科学技术和农业畜牧局", + "contractor": "四川格润草业有限公司", + "requirement": "免耕补播:12000亩", + "towns": [ + "安曲镇", + "瓦切镇", + "龙日镇" + ], + "locations": [ + "安曲当木柯", + "安曲镇(安曲牧场", + "壤口黑水方向(沟里面)", + "瓦切镇(赛马场后面、村委会后面山坡)", + "瓦切镇(麦洼方向)", + "龙日镇(龙日坝村神山后)" + ], + "notes": [], + "canLocate": false, + "searchText": "四川省红原县草原畜牧业转型升级试点项目(2023)高产稳产饲草基地 2023 高产稳产饲草基地 安曲当木柯 安曲镇(安曲牧场 壤口黑水方向(沟里面) 瓦切镇(赛马场后面、村委会后面山坡) 瓦切镇(麦洼方向) 龙日镇(龙日坝村神山后)" + }, + { + "key": "artificial-grassland-project-2", + "name": "2023草种基地", + "fullName": "四川省红原县草原畜牧业转型升级试点项目(2023)草种基地", + "year": "2023", + "category": "草种基地", + "value": 2500, + "unit": "亩", + "actualAreaMu": 2500, + "contractAreaMu": 2500, + "investmentWanYuan": 0, + "owner": "红原县科学技术和农业畜牧局", + "contractor": "", + "requirement": "翻耕2500亩", + "towns": [ + "龙日镇" + ], + "locations": [ + "龙日镇(机场右)", + "龙日镇(机场左、右)" + ], + "notes": [ + "2500亩2024年做" + ], + "canLocate": false, + "searchText": "四川省红原县草原畜牧业转型升级试点项目(2023)草种基地 2023 草种基地 龙日镇(机场右) 龙日镇(机场左、右) 2500亩2024年做" + }, + { + "key": "artificial-grassland-project-3", + "name": "2022草种基地", + "fullName": "四川省红原县草原畜牧业转型升级试点项目(2022)草种基地", + "year": "2022", + "category": "草种基地", + "value": 3000, + "unit": "亩", + "actualAreaMu": 3000, + "contractAreaMu": 3000, + "investmentWanYuan": 308.48, + "owner": "红原县科学技术和农业畜牧局", + "contractor": "中材克普(北京)生态环境有限公司", + "requirement": "翻耕3000亩", + "towns": [ + "安曲镇", + "邛溪镇", + "龙日镇" + ], + "locations": [ + "安曲镇(机场旁)", + "安曲镇(镇旁)", + "邛溪镇(麦洼牦牛园区)", + "龙日镇" + ], + "notes": [ + "601.74" + ], + "canLocate": false, + "searchText": "四川省红原县草原畜牧业转型升级试点项目(2022)草种基地 2022 草种基地 安曲镇(机场旁) 安曲镇(镇旁) 邛溪镇(麦洼牦牛园区) 龙日镇 601.74" + }, + { + "key": "artificial-grassland-project-4", + "name": "2022饲草基地", + "fullName": "四川省红原县草原畜牧业转型升级试点项目(2022)高产稳产饲草基地", + "year": "2022", + "category": "高产稳产饲草基地", + "value": 5000, + "unit": "亩", + "actualAreaMu": 5000, + "contractAreaMu": 5000, + "investmentWanYuan": 489.03, + "owner": "红原县科学技术和农业畜牧局", + "contractor": "四川省林丰园林建设工程有限公司", + "requirement": "翻耕:3500亩;人工播种1500亩", + "towns": [ + "安曲镇", + "江茸乡", + "刷经寺镇", + "瓦切镇", + "龙日镇" + ], + "locations": [ + "安曲镇(安曲牧场红原方向右侧)", + "安曲镇(安曲牧场)", + "安曲镇(安曲牧场路口右侧)", + "江茸乡(绵羊养殖场)", + "刷经寺镇(壤口黑水路口)", + "瓦切镇(场镇旁)", + "刷经寺镇(壤口黑水路口下)", + "刷经寺镇(壤口村)", + "龙日镇(龙日坝村神山后)", + "龙日镇(飞机场)", + "安曲镇阿坝县路口至飞机场)" + ], + "notes": [], + "canLocate": false, + "searchText": "四川省红原县草原畜牧业转型升级试点项目(2022)高产稳产饲草基地 2022 高产稳产饲草基地 安曲镇(安曲牧场红原方向右侧) 安曲镇(安曲牧场) 安曲镇(安曲牧场路口右侧) 江茸乡(绵羊养殖场) 刷经寺镇(壤口黑水路口) 瓦切镇(场镇旁) 刷经寺镇(壤口黑水路口下) 刷经寺镇(壤口村) 龙日镇(龙日坝村神山后) 龙日镇(飞机场) 安曲镇阿坝县路口至飞机场)" + }, + { + "key": "artificial-grassland-project-5", + "name": "2024草地资源保护", + "fullName": "草地资源保护与利用子项目", + "year": "2024", + "category": "草地资源保护", + "value": 11050, + "unit": "亩", + "actualAreaMu": 11050, + "contractAreaMu": 11050, + "investmentWanYuan": 1087.12, + "owner": "红原县科学技术和农业畜牧局", + "contractor": "四川省川蜀林草建设工程有限公司", + "requirement": "免耕补播:7900亩,条播:2000亩,翻耕1150亩", + "towns": [ + "瓦切镇" + ], + "locations": [ + "瓦切镇(如意空行寺路口)", + "瓦切镇(如意空行寺瓦切镇方向左侧)", + "瓦切镇(种草基地工地后)", + "瓦切镇(虎头山)", + "瓦切镇(三角神牛牧家乐旁)", + "瓦切镇(牧草产业园区)", + "瓦切镇达俄村(唐日合作社旁)", + "瓦切镇达俄村(红原印象路口)", + "瓦切镇达俄村(如意空行寺旁)" + ], + "notes": [ + "翻耕1050亩2024年实施" + ], + "canLocate": false, + "searchText": "草地资源保护与利用子项目 2024 草地资源保护 瓦切镇(如意空行寺路口) 瓦切镇(如意空行寺瓦切镇方向左侧) 瓦切镇(种草基地工地后) 瓦切镇(虎头山) 瓦切镇(三角神牛牧家乐旁) 瓦切镇(牧草产业园区) 瓦切镇达俄村(唐日合作社旁) 瓦切镇达俄村(红原印象路口) 瓦切镇达俄村(如意空行寺旁) 翻耕1050亩2024年实施" + }, + { + "key": "artificial-grassland-project-6", + "name": "2024饲草基地", + "fullName": "高产稳产优质饲草基地建设子项目", + "year": "2024", + "category": "高产稳产饲草基地", + "value": 23019, + "unit": "亩", + "actualAreaMu": 23019, + "contractAreaMu": 23019, + "investmentWanYuan": 1453.82, + "owner": "红原县科学技术和农业畜牧局", + "contractor": "中材克普(北京)生态环境有限公司", + "requirement": "条播23019亩", + "towns": [ + "龙日镇", + "瓦切镇", + "安曲镇", + "查尔玛乡", + "江茸乡" + ], + "locations": [ + "龙日镇(飞机场)", + "瓦切(泽旺多尔基对面)", + "瓦切(种畜场对面)", + "热坤村(音乐牧场对面)", + "(安曲)月亮湾", + "安曲镇(阿坝县路口旁)", + "查尔玛(镇政府旁边)", + "江茸乡(绵羊养殖场)", + "4600" + ], + "notes": [ + "24年实施" + ], + "canLocate": false, + "searchText": "高产稳产优质饲草基地建设子项目 2024 高产稳产饲草基地 龙日镇(飞机场) 瓦切(泽旺多尔基对面) 瓦切(种畜场对面) 热坤村(音乐牧场对面) (安曲)月亮湾 安曲镇(阿坝县路口旁) 查尔玛(镇政府旁边) 江茸乡(绵羊养殖场) 4600 24年实施" + } + ], + "yearRows": [ + { + "key": "year-2022", + "name": "2022年", + "value": 8000, + "unit": "亩", + "extra": "实测种草面积" + }, + { + "key": "year-2023", + "name": "2023年", + "value": 14500, + "unit": "亩", + "extra": "实测种草面积" + }, + { + "key": "year-2024", + "name": "2024年", + "value": 34069, + "unit": "亩", + "extra": "实测种草面积" + } + ], + "typeRows": [ + { + "key": "type-高产稳产饲草基地", + "name": "高产稳产饲草基地", + "value": 40019, + "unit": "亩", + "extra": "实测种草面积" + }, + { + "key": "type-草地资源保护", + "name": "草地资源保护", + "value": 11050, + "unit": "亩", + "extra": "实测种草面积" + }, + { + "key": "type-草种基地", + "name": "草种基地", + "value": 5500, + "unit": "亩", + "extra": "实测种草面积" + } + ], + "operationRows": [ + { + "key": "tillage", + "name": "实际翻耕", + "value": 7093.23, + "unit": "亩", + "extra": "表内实测记录" + }, + { + "key": "drill-sowing", + "name": "条播", + "value": 14818, + "unit": "亩", + "extra": "表内实测记录" + }, + { + "key": "no-till-overseeding", + "name": "免耕补播", + "value": 30118.76, + "unit": "亩", + "extra": "表内实测记录" + } + ], + "disturbanceRows": [ + { + "key": "disturbance-total", + "name": "翻耕及扰动", + "value": 10011.32, + "unit": "亩", + "extra": "施工扰动面积" + }, + { + "key": "disturbance-light", + "name": "轻微扰动", + "value": 2301.69, + "unit": "亩", + "extra": "施工扰动面积" + }, + { + "key": "disturbance-tillage", + "name": "实际翻耕", + "value": 7093.23, + "unit": "亩", + "extra": "施工扰动面积" + } + ], + "townRows": [ + { + "key": "town-安曲镇", + "name": "安曲镇", + "value": 4, + "unit": "项", + "extra": "涉及种草项目" + }, + { + "key": "town-瓦切镇", + "name": "瓦切镇", + "value": 4, + "unit": "项", + "extra": "涉及种草项目" + }, + { + "key": "town-龙日镇", + "name": "龙日镇", + "value": 5, + "unit": "项", + "extra": "涉及种草项目" + }, + { + "key": "town-邛溪镇", + "name": "邛溪镇", + "value": 1, + "unit": "项", + "extra": "涉及种草项目" + }, + { + "key": "town-江茸乡", + "name": "江茸乡", + "value": 2, + "unit": "项", + "extra": "涉及种草项目" + }, + { + "key": "town-刷经寺镇", + "name": "刷经寺镇", + "value": 1, + "unit": "项", + "extra": "涉及种草项目" + }, + { + "key": "town-查尔玛乡", + "name": "查尔玛乡", + "value": 1, + "unit": "项", + "extra": "涉及种草项目" + } + ], + "investmentRows": [ + { + "key": "artificial-grassland-project-6", + "name": "2024饲草基地", + "value": 1453.82, + "unit": "万元", + "extra": "2024" + }, + { + "key": "artificial-grassland-project-5", + "name": "2024草地资源保护", + "value": 1087.12, + "unit": "万元", + "extra": "2024" + }, + { + "key": "artificial-grassland-project-1", + "name": "2023饲草基地", + "value": 984.1, + "unit": "万元", + "extra": "2023" + }, + { + "key": "artificial-grassland-project-4", + "name": "2022饲草基地", + "value": 489.03, + "unit": "万元", + "extra": "2022" + }, + { + "key": "artificial-grassland-project-3", + "name": "2022草种基地", + "value": 308.48, + "unit": "万元", + "extra": "2022" + } + ] +} +`,Se=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png",import.meta.url).href,M=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126},{key:"artificial-grassland",name:"人工种草",color:"#19ffc6",unit:"万亩",metricLabel:"种草面积",width:112},{key:"scale-breeding",name:"规模化养殖基地",color:"#46e7ff",unit:"个",metricLabel:"基地",width:132},{key:"breeding-selection",name:"选育/扩繁基地",color:"#7aefff",unit:"个",metricLabel:"基地",width:132},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#25cbe8",unit:"吨",metricLabel:"库容",width:126},{key:"milk-source-station",name:"奶源站",color:"#5cdfff",unit:"个",metricLabel:"站点",width:112},{key:"slaughter-processing",name:"屠宰与加工",color:"#1fafd2",unit:"万元",metricLabel:"产值",width:112},{key:"farm-equipment",name:"农机装备",color:"#30dcff",unit:"个",metricLabel:"装备",width:112},{key:"forage-trade",name:"牧草交易",color:"#19ffc6",unit:"个",metricLabel:"点位",width:112},{key:"social-service",name:"社会化服务",subName:"金融/疫病/保险/培训",color:"#8aefff",unit:"个",metricLabel:"主体",width:132}],N=le.map(n=>n.zoneName),ye=new Map(ce.map(n=>[n.name,n.center])),kn=JSON.parse(ge),fe=JSON.parse(de),we=JSON.parse(pe),v=JSON.parse(me),en=kn.categories||[],Te=new Map(en.map(n=>[n.categoryCode,n])),Pn=(fe.records||[]).map(n=>S(d({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),Fn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),Ne=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),he=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],Ae=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],mn=en.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?Pn:n.items||[]).map(e=>{var t;return S(d({},e),{categoryCode:n.categoryCode,categoryName:n.categoryName,stageKey:n.industryStage,stageName:((t=E(n.industryStage))==null?void 0:t.name)||n.categoryName})})),V=mn.filter(c),Bn=new Map(mn.map(n=>[String(n.id),n])),U=m("YC-FAMILY-PASTURE"),K=m(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),Sn=m(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),k=m("YC-DISASTER-FORAGE-STORAGE"),A=m("YC-PROCESSING-PLANT"),R=m("YC-SLAUGHTERHOUSE"),yn=m("YC-FARM-EQUIPMENT"),fn=m("YC-DISEASE-CONTROL"),P=m("YC-TECH-TRAINING"),q=m("YC-SERVICE-FINANCE"),tn=m("YC-SERVICE-INSURANCE"),wn=h(U),rn=g(U,n=>s(n,["标准化暖棚 (㎡)"])),Ye=g(U,n=>s(n,["管理用房 (㎡)"])),In=g(U,n=>s(n,["饲草料库 (㎡)"])),xe=g(U,n=>s(n,["活动场地及通道 (㎡)"]));h(Sn);const J=h(k),be=h(K),Ce=g(K,n=>s(n,["设计存栏量 (头)"]));h(A);h(R);const sn=h(yn),un=h(fn),Dn=h(P),Tn=h(q),_n=h(tn),Le=en.filter(n=>m(n.categoryCode).some(c)).length;V.length;new Set(V.map(T).filter(Boolean)).size||N.length;const Me=Math.max(sn,C.reduce((n,e)=>n+Number(e.devices||0),0));g(Sn,n=>s(n,["种植面积 (亩)","acreage"])||H(n.scale));const G=g(k,n=>s(n,["总库容 (吨)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["设计存栏量 (头)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["年出栏量 (头)"]));const Gn=g(A,n=>s(n,["年产值 (万元)"])),Nn=g(A,n=>s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),hn=g(A,n=>s(n,["带动本地农户数"])),An=g(R,n=>s(n,["年总产值 (万元)"])),an=g(R,n=>s(n,["年屠宰总量 (头)"])),On=g(R,n=>s(n,["冷冻库容量 (吨)"])),X=Gn+An,O=Cn(q,n=>s(n,["最高单户贷款额度 (万元)"])),Ue=Cn(q,n=>s(n,["服务覆盖乡镇数"])),ln=Cn(tn,n=>s(n,["服务覆盖乡镇数"])),Hn=g(P,n=>s(n,["年培训场次"])),Q=g(P,n=>s(n,["年培训人次"])),Re=m("YC-BREEDING-BASE"),Ee=new Set(["YC-BREEDING-BASE"]),cn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Se,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],jn=Yt([...Sn,...k]),x=v.summary||{},Kn=v.projectRows||[],Fe=v.yearRows||[],Be=v.typeRows||[],ve=v.operationRows||[],ke=v.disturbanceRows||[],zn=[...v.townRows||[]].sort(f),Pe=v.investmentRows||[],Ie=we.plotRows||[],De=xt(),$n=bt(),vn=C.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${p(n.count)}头识别样本`})).filter(n=>n.value>0).sort(f),_e=C.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${p(n.devices)}套设备`})).filter(n=>n.value>0).sort(f),Ge=ut();kn.generatedAt;const kt=k.map(xn),Pt=[...A,...R].map(xn),It=V.map(xn),Z=V.map(gt).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN"));function Dt(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return cn.find(a=>a.key===e)||null;const t=[n.name,n.fullName].filter(Boolean).map(a=>String(a));return cn.find(a=>a.aliases.some(r=>t.some(o=>o===r||o.includes(r)||r.includes(o))))||null}const Qn=M.reduce((n,e)=>n+b(e.key),0),Vn=new Set(M.flatMap(n=>nn(n.key).map(e=>e.town)).filter(Boolean)).size||N.length,_t=[{zh:"产业点位",name:"产业点位",value:Qn,unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"饲草库容",name:"饲草库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Vn,unit:"个"}];function Oe(n){const e=Xe(n),t=_();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:wn,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:rn,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:In,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:xe,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:x.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:x.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:t.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:t.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:t.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:t.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:be,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:Ce,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(K,T),unit:"个"},{zh:"育种等级",name:"育种等级",value:He.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:J,unit:"个"},{zh:"总库容",name:"总库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(k,T),unit:"个"},{zh:"草种类型",name:"草种类型",value:jn.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"年收奶量",name:"年收奶量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:b("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:an,unit:"头"},{zh:"带动农户",name:"带动农户",value:hn,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:b("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:C.reduce((r,o)=>r+Number(o.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:C.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:C.reduce((r,o)=>r+Number(o.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易点位",name:"交易点位",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"交易草量",name:"交易草量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"social-service":[{zh:"服务点位",name:"服务点位",value:b("social-service"),unit:"个"},{zh:"最高授信",name:"最高授信",value:O,unit:"万元"},{zh:"培训人次",name:"培训人次",value:Q,unit:"人次"},{zh:"服务类型",name:"服务类型",value:$n.length,unit:"类"}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(r=>({zh:r.label,name:r.label,value:r.value,unit:r.unit}))]).filter(r=>r.value!==void 0&&r.value!==null&&r.value!=="").slice(0,4)}const Gt=[{key:"chain-subject",name:"产业点位",value:Qn,unit:"个",icon:"town",extra:`${Le}类主体`},{key:"chain-town",name:"镇域覆盖",value:Vn,unit:"个",icon:"town",extra:"全链覆盖"},{key:"chain-output",name:"产业产值",value:w(X,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"},{key:"chain-forage",name:"饲草库容",value:G,unit:"吨",icon:"yield",extra:"防灾储备"}],Ot=M.map(n=>({key:n.key,name:n.name,value:b(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),gn=[{key:"family-pasture",name:"家庭生态牧场",value:wn,unit:"处",capacity:w(rn/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:w(rn/1e4,2),unit:"万㎡"},{label:"管理用房",value:w(Ye/1e4,2),unit:"万㎡"},{label:"饲草料库",value:w(In/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:x.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:x.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:_().baseCount,unit:"个",capacity:_().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:_().designStock,unit:"头"},{label:"年出栏",value:_().annualOutput,unit:"头"},{label:"覆盖乡镇",value:_().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:J,unit:"个",capacity:G,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:J,unit:"个"},{label:"总库容",value:G,unit:"吨"},{label:"覆盖乡镇",value:pn(k,T),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:b("slaughter-processing"),unit:"个",capacity:w(X,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:Gn,unit:"万元"},{label:"屠宰产值",value:w(An,1),unit:"万元"},{label:"年屠宰量",value:an,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:b("farm-equipment"),unit:"个",capacity:Me,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:b("farm-equipment"),unit:"个"},{label:"识别设备",value:C.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:C.length,unit:"个"}]},{key:"social-service",name:"社会化服务",value:b("social-service"),unit:"个",capacity:O,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Tn,unit:"家"},{label:"最高授信",value:O,unit:"万元"},{label:"培训人次",value:Q,unit:"人次"}]}],He=St(),je=B(k,T,n=>s(n,["总库容 (吨)"])).map(n=>S(d({},n),{unit:"吨",extra:`${n.count}个库点`})),Ke=[{key:"milk-processing",name:"乳品加工",value:g(A.filter(Lt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:g(A.filter(Mt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:w(An,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Ht=[{key:"raw-capacity",name:"年加工原料",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:an,unit:"头",extra:`${R.filter(c).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:hn,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:On,unit:"吨",extra:"屠宰冷链"}],jt=[{key:"finance",name:"金融服务",value:$(Ue,10),count:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务",value:$(ln,10),count:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训",value:$(Q,200),count:Dn,unit:"家",extra:`${p(Q)}人次`},{key:"disease",name:"疫病防控",value:$(un,4),count:un,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:$(sn,3),count:sn,unit:"个",extra:"服务主体"}],ze=[{key:"cutting",name:"割草地",headerName:"割草地"},{key:"storage",name:"储草基地",headerName:"储草基地",valuePrefix:"≥"},{key:"netFence",name:"网围栏种草",headerName:"网围栏"}],$e=[{key:"cutting",name:"割草地",color:"#37DDF3"},{key:"storage",name:"储草基地",color:"#8bf7ff"}];function qn(n){return Oe(n).map((e,t)=>({key:e.key||`${n}-metric-${t}`,name:e.name||e.zh||`指标${t+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function Qe(n){var u;const e=E(n),t=gn.find(i=>i.key===n),a=qn(n),r=a[0]||{key:`${n}-primary`,name:e.name,value:0,unit:e.unit||""},o=((u=t==null?void 0:t.fields)!=null&&u.length?t.fields:a.slice(1)).map((i,y)=>({key:i.key||`${n}-field-${y}`,name:i.label||i.name||`要点${y+1}`,value:i.value,unit:i.unit||"",extra:i.extra||(t==null?void 0:t.note)||e.metricLabel||""}));return[S(d({},r),{key:r.key||`${n}-spotlight-main`,name:r.name||e.name,extra:r.extra||(t==null?void 0:t.note)||e.metricLabel||"环节核心能力"}),...o].slice(0,4)}function Ve(n){return l(`${n}-right-metrics`,"环节核心指标","metric",qn(n))}function qe(n){return l(`${n}-right-spotlight`,"建设要点","spotlight",Qe(n))}function I(n,e=ee(n)){return[e,Ve(n),qe(n)]}function Kt(n){const e=E(n),t=yt(n),a={"family-pasture":{left:[l("family-town","家庭生态牧场乡镇分布","column",z(n),{variant:"townCompact",scrollable:!1,uniformColor:!0,fillHeight:!0}),l("family-unit","标准化建设配置","specGrid",tt(),{fillHeight:!0}),l("family-forage","乡镇割草地、储草基地面积","stackColumn",Yn(),{fillHeight:!0,unit:"亩",segments:$e,sharedScale:!0,showZero:!0,showValue:!0,totalLabel:"汇总面积"}),l("family-support-type","草料配套类型占比","structure",at(),{fillHeight:!0})],right:[ee(n),l("family-construction-year","年度建设节奏","line",rt(),{fixedType:!0}),l("family-net-fence","网围栏配套面积","rank",ot("netFence"),{unit:"亩"})]},"artificial-grassland":{left:[l("grass-town-area","人工种草乡镇面积","column",zn,{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("grass-year","年度项目建设面积","column",Fe,{variant:"plain",scrollable:!1,lineOverlay:!0}),l("grass-type","建设类型面积","structure",Be),l("grass-operation","作业方式面积","bar",ve)],right:[wt(),l("grass-investment","项目投资规模","rank",Pe),l("grass-disturbance","施工扰动面积","split",ke),l("grass-project-area","项目面积明细","specGrid",nt())]},"scale-breeding":{left:[l("breeding-town-count","乡镇养殖基地分布","column",Xn("baseCount","个","养殖基地"),{variant:"townCompact",scrollable:!1,axisLabelMode:"short",uniformColor:!0}),l("breeding-town-stock","设计存栏规模排名","bar",Wn("designStock","头","设计存栏"),{variant:"rankBar"}),l("breeding-town-output","年出栏区域贡献","structure",Je()),l("breeding-project-investment","重点示范项目投入","rank",Ze())],right:[...I(n,ft())]},"forage-storage":{left:[l("storage-town","库容镇域分布","column",z(n),{variant:"townCompact",scrollable:!1}),l("storage-point","储备库点排名","bar",Nt(),{variant:"rankBar"}),l("storage-grass","储备草种结构","structure",jn),l("storage-capacity","库容能力占比","split",z(n).filter(o=>Number(o.value||0)>0).slice(0,7))],right:[...I(n)]},"slaughter-processing":{left:[l("processing-value","产值结构","donut",Ke,{variant:"ring"}),l("processing-chain","产能与带动","structure",De),l("processing-heads","屠宰能力排名","bar",ht(),{variant:"rankBar"}),l("processing-town","加工点位乡镇分布","column",on([...A,...R],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[...I(n)]},"farm-equipment":{left:[l("equipment-device","识别设备分布","column",F(vn,{unit:"套",extra:"识别设备"}),{variant:"townCompact",scrollable:!1}),l("equipment-recognition","识别样本排名","bar",_e,{variant:"rankBar"}),l("equipment-service-town","农机服务主体分布","column",on(yn,"农机服务主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("equipment-device-structure","设备投放结构","structure",vn.filter(o=>Number(o.value||0)>0).slice(0,6))],right:[...I(n)]},"social-service":{left:[l("service-type","服务主体结构","donut",$n,{variant:"ring"}),l("service-town","服务镇域分布","column",on([...fn,...P,...q,...tn],"服务主体"),{variant:"townCompact",scrollable:!1}),l("service-training-town","培训人次分布","column",Tt(P,["年培训人次"],{unit:"人次",extra:"技术培训"}),{variant:"townCompact",scrollable:!1,lineOverlay:!0}),l("service-training","培训服务能力","line",At())],right:[...I(n)]}},r={left:[l(`${e.key}-rank`,`${e.metricLabel}分布`,"column",z(n),{variant:"townCompact",scrollable:!1}),l(`${e.key}-subject`,"主体结构","structure",t),l(`${e.key}-town`,"镇域覆盖分布","column",F(st(n),{unit:"个",extra:"镇域覆盖"}),{variant:"townCompact",scrollable:!1}),l(`${e.key}-capacity`,"能力规模分布","split",z(n).slice(0,7))],right:[...I(n)]};return a[n]||r}const zt=[{key:"support-capacity",name:"饲草储备能力",value:G,unit:"吨",extra:`${J}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:w(X,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:O,unit:"万元",extra:"金融服务"}];function E(n){return M.find(e=>e.key===n)||M[0]}function Xe(n){return gn.find(e=>e.key===n)||gn[0]}function z(n){if(n==="family-pasture")return F(et(),{unit:"处",extra:"家庭生态牧场"});if(n==="artificial-grassland")return zn;if(n==="breeding-selection"){const e=B(K,T,()=>1).map(t=>S(d({},t),{unit:"个",extra:"选育/扩繁基地"}));return F(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=B(m("YC-BREEDING-BASE"),T,t=>s(t,["设计存栏量 (头)"])).map(t=>S(d({},t),{unit:"头",extra:`${t.count}个基地`}));return F(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?F(je,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...A,...R].filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(f).slice(0,7):n==="farm-equipment"?yn.filter(c).map(e=>{var t;return{key:e.id,name:j(e.name),value:1,unit:"个",extra:((t=e.attributes)==null?void 0:t.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务网点",value:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训机构",value:Dn,unit:"家",extra:`${p(Hn)}场`},{key:"disease",name:"疫病防控主体",value:un,unit:"个",extra:"防疫服务"}]:[]}function We(){const n=new Map(N.map((e,t)=>[e,{key:e,name:e,sourceIndex:t,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return bn().forEach(e=>{const t=n.get(e.town);t&&(t.segments.baseCount+=1,t.segments.designStock+=Number(e.numericValue||e.value||0),t.segments.annualOutput+=Number(e.annualOutput||0))}),N.map(e=>n.get(e))}function Xn(n,e,t){return We().map((a,r)=>{var i;const o=Number(((i=a.segments)==null?void 0:i[n])||0),u=o>0;return{key:`${a.key}-${n}`,name:a.name,rawValue:o,value:u?o:.001,displayValue:u?o:"0",unit:e,extra:t,zero:!u,sourceIndex:r}})}function Wn(n,e,t){return Xn(n,e,t).filter(a=>a.rawValue>0).map(a=>S(d({},a),{value:a.rawValue,displayValue:a.rawValue})).sort(f)}function Je(){const n=Wn("annualOutput","头","年出栏"),e=n.reduce((o,u)=>o+Number(u.value||0),0);if(!e)return[];const t=n.slice(0,3),a=n.slice(3);return(a.length?[...t,{key:"other-towns-annual-output",name:"其他乡镇",value:a.reduce((o,u)=>o+Number(u.value||0),0),unit:"头"}]:t).map(o=>S(d({},o),{extra:`占比 ${p(Number(o.value||0)/e*100)}%`}))}function Ze(){return cn.map(n=>({key:n.key,name:n.name.replace(/标准化养殖基地/g,"基地").replace(/综合养殖基地/g,"基地"),value:Number(n.projectInvestment||0),unit:"万元",extra:`${n.town} · ${n.tag}`})).filter(n=>n.value>0).sort(f)}function nt(){return Kn.map(n=>({key:n.key,name:n.name,value:Number(n.actualAreaMu||n.value||0),unit:"亩",extra:n.year?`${n.year}年`:n.category||"实测面积"})).filter(n=>n.value>0).sort(f)}function et(){const n=new Map(B(U,T,()=>1).map(e=>[e.name,e]));return N.map(e=>{const t=n.get(e);return{key:e,name:e,value:Number((t==null?void 0:t.value)||0),unit:"处",extra:"家庭生态牧场"}})}function tt(){const n=new Map;return U.filter(c).forEach(e=>{const t=s(e,["标准化暖棚 (㎡)"]),a=s(e,["管理用房 (㎡)"]),r=s(e,["饲草料库 (㎡)"]),o=s(e,["活动场地及通道 (㎡)"]),u=`${p(t)}㎡暖棚 + ${p(a)}㎡管理房`,i=`${t}-${a}-${r}-${o}`,y=n.get(i)||{key:i,name:u,value:0,unit:"处",specs:[{label:"饲草料库",value:r,unit:"㎡"},{label:"活动场地",value:o,unit:"㎡"}]};y.value+=1,n.set(i,y)}),[...n.values()].sort(f)}function Yn(){const n=new Map(N.map(e=>[e,{key:e,name:e,unit:"亩",segments:{cutting:0,storage:0,netFence:0}}]));return U.filter(c).forEach(e=>{const t=T(e),a=n.get(t);if(!a)return;const r=e.grassSupportType,o=Number(e.grassSupportMu||0);o&&(r==="割草地"&&(a.segments.cutting+=o),r==="储草基地"&&(a.segments.storage+=o),r==="网围栏种草"&&(a.segments.netFence+=o))}),[...n.values()]}function at(){const n=Yn();return ze.map(e=>{const t=n.reduce((r,o)=>{var u;return r+Number(((u=o.segments)==null?void 0:u[e.key])||0)},0),a=n.filter(r=>{var o;return Number(((o=r.segments)==null?void 0:o[e.key])||0)>0}).length;return{key:e.key,name:e.name,value:t,unit:"亩",extra:`覆盖${a}个乡镇`}})}function ot(n=""){return Yn().map(e=>{var a;const t=n?Number(((a=e.segments)==null?void 0:a[n])||0):Object.values(e.segments||{}).reduce((r,o)=>r+Number(o||0),0);return{key:e.key,name:e.name,value:t,unit:"亩",extra:n==="netFence"?"网围栏种草":"草料配套"}}).filter(e=>e.value>0).sort(f)}function rt(){return B(U.filter(c),n=>String(n.constructionYear||"未标注"),()=>1).map(n=>S(d({},n),{name:n.name==="未标注"?n.name:`${n.name}年`,unit:"处",extra:"建成牧场"})).sort((n,e)=>String(n.key).localeCompare(String(e.key),"zh-CN"))}function st(n){return B(it(n),T,()=>1).map(e=>S(d({},e),{unit:"个",extra:`${e.count}条`}))}function $t(n={}){const e=Ut(n);if(!e)return[];const t=[],a=e.metrics||{},r=e.attributes||{},o=(u,i,y="",Y={})=>{te(i)||t.push(d({label:u,value:Et(i,y)},Y))};return e.categoryCode==="YC-FAMILY-PASTURE"?(o("户主",e.owner||r.户主),o("建设年份",e.constructionYear,"年"),o("所在村",e.village),o("标准化暖棚",a["标准化暖棚 (㎡)"],"㎡"),o("生产管理用房",a["管理用房 (㎡)"],"㎡"),o("饲草料库",a["饲草料库 (㎡)"],"㎡"),o("活动场地及通道",a["活动场地及通道 (㎡)"],"㎡"),o("草料配套",e.grassSupportText||r.草料配套,"",{wide:!0}),t):(o("运营单位",r.运营单位),o("育种等级",r.育种等级),o("育种方向",r.主要育种方向),o("设计存栏",a["设计存栏量 (头)"],"头"),o("年出栏量",a["年出栏量 (头)"],"头"),o("种植面积",a["种植面积 (亩)"]||e.scale,e.scale?"":"亩"),o("总库容",a["总库容 (吨)"],"吨"),o("年产值",a["年产值 (万元)"]||a["年总产值 (万元)"],"万元"),o("年加工量",a["年加工鲜奶总量 (吨)"]||a["年加工原料肉总量 (吨)"],"吨"),o("年屠宰量",a["年屠宰总量 (头)"],"头"),o("服务覆盖",a.服务覆盖乡镇数,"个乡镇"),o("最高授信",a["最高单户贷款额度 (万元)"],"万元"),o("主要产品",r.主要产品),o("主要草种",r.主要草种||r.储备草种),t.slice(0,8))}function m(n){return(Array.isArray(n)?n:[n]).flatMap(t=>{const a=Te.get(t);return(t==="YC-FAMILY-PASTURE"?Pn:(a==null?void 0:a.items)||[]).map(o=>{var u;return S(d({},o),{categoryCode:a.categoryCode,categoryName:a.categoryName,stageKey:a.industryStage,stageName:((u=E(a.industryStage))==null?void 0:u.name)||a.categoryName})})})}function it(n){return n==="scale-breeding"?Re.filter(c):n==="breeding-selection"?K.filter(c):n==="milk-source-station"||n==="forage-trade"?[]:V.filter(e=>e.stageKey===n)}function nn(n){return n==="artificial-grassland"?Ie:n==="farm-equipment"?Ge:n==="scale-breeding"?bn():n==="breeding-selection"?Z.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>S(d({},e),{stageKey:n,stageName:E(n).name,stageOrder:M.findIndex(t=>t.key===n)})):Z.filter(e=>e.stageKey===n&&e.canLocate)}function b(n){return n==="family-pasture"?wn:nn(n).length}function ut(){return C.map((n,e)=>{const t=ye.get(n.name),a=Number(t==null?void 0:t[0]),r=Number(t==null?void 0:t[1]);if(!dn(a,r))return null;const o=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,u=`${n.name}农机装备监测点`,i=Number(n.devices||0),y=Number(n.count||0);return{key:o,id:o,name:u,fullName:u,stageKey:"farm-equipment",stageName:E("farm-equipment").name,stageOrder:M.findIndex(Y=>Y.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:i,unit:"套",numericValue:i,valueText:`${p(i)}套`,extra:`${p(y)}头识别样本`,longitude:a,latitude:r,locateText:"定位",canLocate:!0,searchText:[u,"农机装备",n.name,`${i}套`,`${y}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function c(n={}){var a;const e=L(n.name),t=L((a=n.attributes)==null?void 0:a.序号);return!(!e||Fn.has(e)||Ne.has(n.categoryCode)||Ae.some(r=>r.test(e))||t&&Fn.has(t)&&!lt(n)||he.some(r=>r.test(e)))}function h(n=[]){return n.filter(c).length}function lt(n={}){return Object.values(n.metrics||{}).some(e=>H(e)>0)}function xn(n={}){var t,a,r,o;const e=Jn(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:T(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((t=n.attributes)==null?void 0:t.主要产品)||((a=n.attributes)==null?void 0:a.主要草种)||((r=n.attributes)==null?void 0:r.储备草种)||((o=n.attributes)==null?void 0:o.主要育种方向)||"",capacity:e,capacityUnit:Zn(n),outputValue:s(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function ct(n={}){const e=Jn(n),t=Zn(n),a=T(n);return{key:String(n.id||n.name),name:j(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:a||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:t,numericValue:Number(e)||0,valueText:pt(n,e,t),extra:mt(n),sourceSheet:n.sourceSheet}}function gt(n={}){var Ln,Mn;const e=ct(n),t=Ct(n),a=E(n.stageKey),r=L(n.name),o=L(n.categoryName).replace(/^cxpt/i,""),u=L(n.address||n.village||n.areaFullName||""),i=n.attributes||{},y=n.metrics||{},Y=[r,e.name,a==null?void 0:a.name,o,e.town,u,i.简称,i.运营单位,i.主要产品,i.主要草种,i.储备草种,i.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,y["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return S(d({},e),{name:e.name,fullName:r,stageName:(a==null?void 0:a.name)||e.stageName||"",stageOrder:M.findIndex(ae=>ae.key===n.stageKey),categoryName:o,address:u,longitude:(Ln=t==null?void 0:t.longitude)!=null?Ln:"",latitude:(Mn=t==null?void 0:t.latitude)!=null?Mn:"",locateText:t?"定位":"暂无",canLocate:!!t,owner:n.owner||i.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||i.设施配置||"",grassSupportText:n.grassSupportText||i.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?dt(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?s(n,["年出栏量 (头)"]):0,searchText:Y})}function bn(){return Z.filter(n=>Ee.has(n.categoryCode)&&n.canLocate)}function _(){const n=bn();return{baseCount:n.length,designStock:n.reduce((e,t)=>e+Number(t.numericValue||t.value||0),0),annualOutput:n.reduce((e,t)=>e+Number(t.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function dt(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Jn(n={}){var e,t;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?H(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?s(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?s(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?s(n,["总库容 (吨)"]):n.categoryCode==="YC-PROCESSING-PLANT"?s(n,["年产值 (万元)"])||s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?s(n,["年总产值 (万元)"])||s(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?s(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?s(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?s(n,["年培训人次","年培训场次"]):(t=n.categoryCode)!=null&&t.startsWith("YC-CXPT")?H(n.scale)||s(n,["acreage"]):s(n,Object.keys(n.metrics||{}))||1}function Zn(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function pt(n,e,t){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${p(e)}${t||""}`:String(e||"")}function mt(n={}){const e=n.attributes||{},t=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||t["主要贷款产品(可多选)"]||n.sourceSheet||""}function St(){const n=new Map;return K.forEach(e=>{var r;const t=L((r=e.attributes)==null?void 0:r.育种等级)||"待完善",a=n.get(t)||{key:t,name:t,value:0,unit:"个"};a.value+=1,n.set(t,a)}),[...n.values()].sort((e,t)=>{var r,o;const a={省级:0,县级:1,待完善:2};return((r=a[e.name])!=null?r:9)-((o=a[t.name])!=null?o:9)})}function yt(n){return en.filter(e=>e.industryStage===n).map(e=>{const t=h(m(e.categoryCode));return{key:e.categoryCode,name:e.categoryName.replace(/^cxpt/,""),value:t,unit:"条",extra:E(n).name}}).filter(e=>e.value>0).sort(f)}function l(n,e,t,a,r={}){return d({key:n,title:e,height:227,renderer:"business",type:t,rows:a},r)}function ne(n){return n==="family-pasture"?Z.filter(e=>e.stageKey===n):n?nn(n):M.flatMap(e=>nn(e.key))}function ee(n){const e=E(n),t=ne(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:t,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:t,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function ft(){return{key:"scale-breeding-location-list",title:"养殖基地定位",height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:ne("scale-breeding").slice().sort((e,t)=>String(e.town||"").localeCompare(String(t.town||""),"zh-CN")||String(e.name||"").localeCompare(String(t.name||""),"zh-CN")),maxRows:300,searchPlaceholder:"搜索养殖基地 / 乡镇",emptyText:"无匹配养殖基地",columns:[{key:"name",label:"养殖基地",field:"name",width:"46%",className:"business-project-col-name"},{key:"town",label:"区域",field:"town",width:"32%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",action:"locate"}],searchKeys:["name","fullName","town","address","searchText"]}}function wt(){return{key:"artificial-grassland-business-ledger",title:"项目建设台账",renderer:"business",type:"projectTable",rows:Kn,fixedHeight:!0,rowSelectOnClick:!1,showSearch:!1,maxRows:6,emptyText:"暂无项目建设台账",columns:[{key:"name",label:"项目",field:"name",width:"48%",className:"business-project-col-name"},{key:"year",label:"年度",field:"year",width:"16%",align:"center"},{key:"area",label:"实测面积",field:"actualAreaMu",width:"36%",align:"right",strong:!0,unit:"亩"}],searchKeys:["name","fullName","year","category","towns","searchText"]}}function Tt(n=[],e=[],t={}){const a=B(n,T,r=>s(r,e)).map(r=>S(d({},r),{unit:t.unit||"",extra:t.extra||`${r.count}个点位`}));return F(a,t)}function on(n=[],e="点位"){const t=B(n,T,()=>1).map(a=>S(d({},a),{unit:"个",extra:e}));return F(t,{unit:"个",extra:e})}function Nt(){return k.filter(c).map(n=>{var e;return{key:n.id,name:j(n.name),value:s(n,["总库容 (吨)"]),unit:"吨",extra:s(n,["发放次数"])||((e=n.attributes)==null?void 0:e.储备草种)||"储备库"}}).filter(n=>n.value>0).sort(f).slice(0,8)}function ht(){return R.filter(c).map(n=>({key:n.id,name:j(n.name),value:s(n,["年屠宰总量 (头)"]),unit:"头",extra:`${p(s(n,["冷冻库容量 (吨)"]))}吨冷链`})).filter(n=>n.value>0).sort(f).slice(0,7)}function At(){const n=P.filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年培训人次"]),unit:"人次",extra:`${p(s(e,["年培训场次"]))}场`})).filter(e=>e.value>0).sort(f).slice(0,7);return n.length?n:[{key:"sessions",name:"年培训场次",value:Hn,unit:"场"},{key:"persons",name:"年培训人次",value:Q,unit:"人次"}]}function Yt(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],t=new Map(e.map(a=>[a.key,{key:a.key,name:a.name,value:0,unit:"处"}]));return n.filter(c).forEach(a=>{var i,y;const r=[(i=a.attributes)==null?void 0:i.主要草种,(y=a.attributes)==null?void 0:y.储备草种].filter(Boolean).join("、"),o=e.filter(Y=>Y.key!=="other"&&Y.pattern.test(r));(o.length?o:[e[e.length-1]]).forEach(Y=>{t.get(Y.key).value+=1})}),[...t.values()].filter(a=>a.value>0).sort(f)}function xt(){return[{key:"raw-capacity",name:"原料加工",value:Nn,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:an,unit:"头"},{key:"farmer-driven",name:"带动农户",value:hn,unit:"户"},{key:"cold-storage",name:"冷链能力",value:On,unit:"吨"}].filter(n=>n.value>0)}function bt(){return[{key:"finance",name:"金融",value:q.filter(c).length,unit:"家"},{key:"insurance",name:"保险",value:tn.filter(c).length,unit:"家"},{key:"training",name:"培训",value:P.filter(c).length,unit:"家"},{key:"disease",name:"防疫",value:fn.filter(c).length,unit:"个"}].filter(n=>n.value>0)}function B(n,e,t){const a=new Map;return n.filter(c).forEach(r=>{const o=L(typeof e=="function"?e(r):r[e])||"未填写",u=a.get(o)||{key:o,name:o,value:0,count:0,extra:""};u.value+=Number(t(r)||0),u.count+=1,a.set(o,u)}),[...a.values()].sort(f)}function F(n=[],e={}){const t=new Map;return n.forEach(a=>{const r=L(a==null?void 0:a.name),o=N.find(u=>u===r)||N.find(u=>{const i=u.replace(/[镇乡]$/,"");return i.length>=2&&r.includes(i)});o&&t.set(o,a)}),N.map((a,r)=>{const o=t.get(a),u=Number((o==null?void 0:o.value)||0),i=Number.isFinite(u)&&u>0;return{key:(o==null?void 0:o.key)||a,name:a,value:i?u:.001,displayValue:i?o.displayValue:"0",scaleValue:o==null?void 0:o.scaleValue,unit:(o==null?void 0:o.unit)||e.unit||"",extra:(o==null?void 0:o.extra)||e.extra||"",color:o==null?void 0:o.color,zero:!i,sourceIndex:r}})}function s(n={},e=[]){const t=n.metrics||{},a=Array.isArray(e)?e:[e];for(const r of a)if(Object.prototype.hasOwnProperty.call(t,r)){const o=H(t[r]);if(o||o===0)return o}return 0}function H(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(te(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const t=e.match(/-?\d+(?:\.\d+)?/);if(!t)return 0;let a=Number(t[0]);return e.includes("万亩")&&!e.includes("万元")&&(a*=1e4),Number.isFinite(a)?a:0}function T(n={}){const e=L(n.town||n.areaName);if(N.includes(e))return e;const t=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),a=N.find(r=>t.includes(r));return a||N.find(r=>{const o=r.replace(/[镇乡]$/,"");return o.length>=2&&t.includes(o)})||e}function Ct(n={}){const e=D(n.longitude),t=D(n.latitude);if(dn(e,t))return{longitude:e,latitude:t};const a=Object.values(n.locations||{}).find(r=>dn(D(r==null?void 0:r.longitude),D(r==null?void 0:r.latitude)));return a?{longitude:D(a.longitude),latitude:D(a.latitude)}:null}function dn(n,e){const t=Number(n),a=Number(e);return Number.isFinite(t)&&Number.isFinite(a)&&t>=W.west&&t<=W.east&&a>=W.south&&a<=W.north}function D(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Lt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function Mt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function Ut(n={}){const e=String(n.id||"");return e&&Bn.has(e)?Bn.get(e):mn.find(t=>t.name===n.name&&t.categoryCode===n.categoryCode)}function $(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function g(n,e){return n.filter(c).reduce((t,a)=>t+Number(e(a)||0),0)}function Cn(n,e){return n.filter(c).reduce((t,a)=>Math.max(t,Number(e(a)||0)),0)}function pn(n,e){return new Set(n.filter(c).map(e).filter(Boolean)).size}function f(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function j(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function L(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function te(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function Rt(n){return typeof n=="number"?p(n):H(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function Et(n,e=""){const t=Rt(n);return!e||typeof n=="string"&&t.includes(e.replace(/^个/,""))?t:`${t}${e}`}function p(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function w(n,e=0){const t=En(10,e);return Math.round(Number(n||0)*t)/t}export{Kt as a,et as b,Dt as c,$t as d,Oe as e,_t as f,E as g,Gt as h,M as i,gn as j,He as k,je as l,Ke as m,jt as n,zt as o,Ht as p,kt as q,Pt as r,Ot as s,It as t,Z as u}; diff --git a/docs/assets/data-5c83c66b-1784043664472.js b/docs/assets/data-5c83c66b-1784043664472.js new file mode 100644 index 0000000..70a2fd8 --- /dev/null +++ b/docs/assets/data-5c83c66b-1784043664472.js @@ -0,0 +1 @@ +var J=Object.defineProperty,Q=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var aa=Object.prototype.hasOwnProperty,ea=Object.prototype.propertyIsEnumerable;var K=Math.pow,G=(a,e,n)=>e in a?J(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,w=(a,e)=>{for(var n in e||(e={}))aa.call(e,n)&&G(a,n,e[n]);if(H)for(var n of H(e))ea.call(e,n)&&G(a,n,e[n]);return a},M=(a,e)=>Q(a,Z(e));const P={grasslandCapacityPerMu:.06229833103624831,muPerYak:16.051794379822947,yakToSheepUnit:1},na={key:"county-513233",type:"county",name:"红原县",areaCode:"513233"},k=[{key:"healthy",label:"合理",shortLabel:"合理",range:"< 0%",description:"承载力覆盖实际载畜量,当前放牧压力处于合理区间。",actions:["保持当前载畜水平与轮牧节奏","定期复测草地生产力和载畜量","关注极端天气对牧草生长的影响"]},{key:"watch",label:"基本实现草畜平衡",shortLabel:"基本平衡",range:"0% - 5%",description:"实际载畜量与草地承载力基本匹配,草畜平衡总体实现。",actions:["保持当前载畜规模基本稳定","持续核查草地生产力和牲畜存栏","结合季节变化做好补饲和轮牧安排"]},{key:"light",label:"轻度超载",shortLabel:"关注",range:"5% - 10%",description:"已出现轻度超载迹象,建议提前介入调控。",actions:["适度压减超载畜群规模","延长冬春舍饲补饲周期","增加人工草场补饲供应"]},{key:"warning",label:"中度超载",shortLabel:"预警",range:"10% - 20%",description:"超载较明显,草地退化风险上升,应启动主动调控。",actions:["压减载畜量至理论承载力以内","推行划区轮牧与阶段性休牧","扩大优质人工饲草供给"]},{key:"danger",label:"严重超载",shortLabel:"高压",range:"> 20%",description:"超载压力较高,建议纳入重点管控和生态修复范围。",actions:["强制压减载畜量并实施禁牧休牧","对退化草地实施生态修复","建立重点区域长效监测与考核机制"]}],v={areaRange:["areaRange","area_range","arearange","acreage","grasslandArea","grasslandarea","area"],yakNumber:["yakNumber","yak_number","yaknumber","number","yakCount","yakcount","livestockCount","livestockcount"],bearingCapacity:["bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","theorycapacity"],livestockCapacity:["livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","carryingcapacity","actualCapacity","actualcapacity"],overloadRate:["overloadRate","overload_rate","overloadrate","rate"],level:["level","conclusion"],advice:["advice","balanceAdvice","balance_advice","balanceadvice","balanceAdivce","balance_adivce","balanceadivce"],year:["year"],areaName:["areaName","area_name","areaname","name"]},m=(a,e=2)=>{const n=K(10,e);return Math.round((Number(a)||0)*n)/n},s="加强人工饲草饲料基地建设;购买饲草饲料,增加饲草饲料供应量;实行舍饲圈养,减轻草原放牧压力;加快牲畜出栏,优化畜群结构。";function r(a,e=null){if(a==null||a==="")return e;const n=typeof a=="string"?a.replace(/,/g,"").replace(/%/g,"").trim():a,t=Number(n);return Number.isFinite(t)?t:e}function d(a={},e=[],n=void 0){for(const t of e){const i=a==null?void 0:a[t];if(i!=null&&i!=="")return i}return n}function ta(a,e={}){var t;const n=r(a);return n===null?"--":n.toLocaleString("zh-CN",{maximumFractionDigits:(t=e.maximumFractionDigits)!=null?t:Number.isInteger(n)?0:2})}function ya(a){const e=r(a);return e===null?"--":`${ta(e)}%`}function x(a){const e=r(a);return e===null||e<0?k[0]:e<=5?k[1]:e<=10?k[2]:e<=20?k[3]:k[4]}function W(a){return Math.round(Number(a)||0)}function X(a){return Math.round((Number(a)||0)*P.grasslandCapacityPerMu)}const ra=M(w({},na),{areaRange:756851506e-2,yakNumber:458230,bearingCapacity:454864,livestockCapacity:458230,overloadRate:.74,level:"基本实现草畜平衡",advice:s,year:"2026"}),ia=[{key:"town-邛溪镇",type:"town",name:"邛溪镇",areaCode:"513233100",areaRange:930604.2,yakNumber:49140,bearingCapacity:47723,livestockCapacity:49140,overloadRate:2.97,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-刷经寺镇",type:"town",name:"刷经寺镇",areaCode:"513233101",areaRange:743557.5,yakNumber:18283,bearingCapacity:18002,livestockCapacity:18283,overloadRate:1.56,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-安曲镇",type:"town",name:"安曲镇",areaCode:"513233103",areaRange:900696.75,yakNumber:59725,bearingCapacity:58479,livestockCapacity:59725,overloadRate:2.13,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-龙日镇",type:"town",name:"龙日镇",areaCode:"513233105",areaRange:628303.8,yakNumber:40192,bearingCapacity:39462,livestockCapacity:40192,overloadRate:1.85,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-江茸乡",type:"town",name:"江茸乡",areaCode:"513233202",areaRange:496888.95,yakNumber:20789,bearingCapacity:20563,livestockCapacity:20789,overloadRate:1.1,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-查尔玛乡",type:"town",name:"查尔玛乡",areaCode:"513233203",areaRange:808628.4,yakNumber:28836,bearingCapacity:28312,livestockCapacity:28836,overloadRate:1.85,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-瓦切镇",type:"town",name:"瓦切镇",areaCode:"513233204",areaRange:747837.6,yakNumber:76127,bearingCapacity:74598,livestockCapacity:76127,overloadRate:2.05,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-阿木乡",type:"town",name:"阿木乡",areaCode:"513233205",areaRange:863346,yakNumber:38587,bearingCapacity:37554,livestockCapacity:38587,overloadRate:2.75,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-麦洼乡",type:"town",name:"麦洼乡",areaCode:"513233207",areaRange:458338.35,yakNumber:47193,bearingCapacity:46643,livestockCapacity:47193,overloadRate:1.18,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-色地镇",type:"town",name:"色地镇",areaCode:"513233208",areaRange:991265.25,yakNumber:79358,bearingCapacity:77695,livestockCapacity:79358,overloadRate:2.14,level:"基本实现草畜平衡",advice:s,year:"2026"}],ua=[ra,...ia];function sa(a={},e={}){var E,U,j,B,F,I,V,Y,z,D;const n=a&&typeof a=="object"&&Object.keys(a).length>0,t=d(a,v.areaRange,e.areaRange),i=d(a,v.yakNumber,e.yakNumber),y=d(a,v.bearingCapacity,e.bearingCapacity),u=d(a,v.livestockCapacity,e.livestockCapacity),o=r(d(a,v.overloadRate,e.overloadRate)),l=r(e.yakNumber),c=oa(a,u,l),C=r(t,(E=e.areaRange)!=null?E:0),g=c!==null&&i===(a==null?void 0:a.yak_number)?r(d(a,["number","yakCount","yak_count","livestockCount","livestock_count"]),l!=null?l:Math.round(c/P.yakToSheepUnit)):r(i,(U=e.yakNumber)!=null?U:0),p=r(e.bearingCapacity),R=r(e.livestockCapacity),T=t!=null&&t!=="",O=i!=null&&i!=="",f=(j=r(u))!=null?j:c,$=r(y),q=L(f,o),h=ca($,q),b=n?(I=(F=(B=f!=null?f:S(h,o))!=null?B:R)!=null?F:S(p,o))!=null?I:O?W(g):null:(V=R!=null?R:S(p,o))!=null?V:O?W(g):null,N=n?(z=(Y=h!=null?h:L(b,o))!=null?Y:p)!=null?z:T?X(C):null:(D=p!=null?p:L(b,o))!=null?D:T?X(C):null,_=o!==null?m(o,2):N&&b!==null?m((b-N)/N*100,1):null,A=x(_);return M(w(w({},e),a),{key:e.key||a.key||a.id||a.areaCode||e.name,type:e.type||a.type||"town",name:d(a,v.areaName,e.name||"核算对象"),areaCode:a.areaCode||a.area_code||a.areacode||e.areaCode,areaRange:C,yakNumber:g,bearingCapacity:N,livestockCapacity:b,overloadRate:_,level:_===null?d(a,v.level,A.label):A.label,advice:d(a,v.advice,e.advice||A.actions.join(";")),year:d(a,v.year,e.year||"当前年度"),source:a.raw||a.source||e.source})}function oa(a={},e,n=null){if(!a||typeof a!="object"||e!=null&&e!=="")return null;const t=Object.prototype.hasOwnProperty.call(a,"yak_number"),i=["overload_rate","overloadRate","overloadrate","advice","balanceAdvice","balanceadvice","level","conclusion"].some(o=>a[o]!==void 0&&a[o]!==null&&a[o]!==""),y=r(a.yak_number);if(!t||!i||y===null)return null;const u=r(n);return u!==null&&u>0?y>u*1.5?y:null:y}function L(a,e){const n=r(a),t=r(e);return n===null||t===null||t<=-100?null:Math.round(n/(1+t/100))}function ca(a,e){return a===null?e:e===null?a:Math.abs(a-e)/Math.max(Math.abs(e),1)>.25?e:a}function S(a,e){const n=r(a),t=r(e);return n===null||t===null||t<=-100?null:Math.round(n*(1+t/100))}function da(a={}){const e=r(a.bearingCapacity),n=r(a.livestockCapacity),t=r(a.areaRange,0),i=r(a.yakNumber,0),y=r(a.overloadRate,e&&n!==null?(n-e)/e*100:null),u=e!==null&&n!==null?n-e:null,o=e&&n!==null?m(n/e*100,1):null,l=x(y),c=Math.round(i*P.yakToSheepUnit),C=c&&n!==null?m(n/c,2):null,g=t&&e!==null?m(e/t,4):null,p=Math.max(e||0,n||0,1);return{bearing:e,livestock:n,areaRange:t,yakNumber:i,yakSheepUnit:c,pressureFactor:C,bearingCoefficient:g,overloadRate:y===null?null:m(y,2),delta:u,usageRate:o,risk:l,bearingPercent:e===null?4:Math.max(4,Math.min(100,m(e/p*100,1))),livestockPercent:n===null?4:Math.max(4,Math.min(100,m(n/p*100,1)))}}function pa(a={},e=x(a.overloadRate)){const n=String(a.advice||"").trim(),t=n?n.split(/[。;;\n]/).map(l=>l.trim()).filter(Boolean):[],i=["提高放牧畜禽的密度","增加草地的利用率","密度不能过高"],y=["轻度超载","已出现超载","超载迹象","压减超载畜群规模"],u=["healthy","watch"].includes(e.key),o=t.filter(l=>i.some(c=>l.includes(c))||u&&y.some(c=>l.includes(c))?!1:u?!0:!i.some(c=>l.includes(c)));return[...e.actions||[],...o].filter((l,c,C)=>C.indexOf(l)===c).slice(0,4)}export{P as B,ua as a,ia as b,ya as c,da as d,ra as e,ta as f,x as g,sa as n,d as p,pa as s}; diff --git a/docs/assets/data-b0a5f9a8-1784043664472.js b/docs/assets/data-b0a5f9a8-1784043664472.js new file mode 100644 index 0000000..02b1272 --- /dev/null +++ b/docs/assets/data-b0a5f9a8-1784043664472.js @@ -0,0 +1 @@ +var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1784043664472.js";import{e as T}from"./data-5c83c66b-1784043664472.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; diff --git a/docs/assets/data-b5a92f08-1784043664472.js b/docs/assets/data-b5a92f08-1784043664472.js new file mode 100644 index 0000000..404e028 --- /dev/null +++ b/docs/assets/data-b5a92f08-1784043664472.js @@ -0,0 +1 @@ +var I=Object.defineProperty,Z=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var P=(a,e,n)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,g=(a,e)=>{for(var n in e||(e={}))U.call(e,n)&&P(a,n,e[n]);if(R)for(var n of R(e))X.call(e,n)&&P(a,n,e[n]);return a},w=(a,e)=>Z(a,q(e));import{d as V,N as z}from"./townshipBoundaries-1b068bef-1784043664472.js";import{g as E}from"./data-5c83c66b-1784043664472.js";const d=(a,e)=>a.reduce((n,r)=>n+Number(r[e]||0),0),t=(a,e=2)=>Number(Number(a||0).toFixed(e)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},G=["ecological-redline","natural-protected-area"];function K(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(n){e=[]}return(Array.isArray(e)?e:[]).map((n,r)=>({key:n.key||`${n.name||"统计项"}-${r}`,name:n.name||`统计项${r+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function Y(a,e,n,r,o=""){return{key:a,name:e,value:t(n,r==="%"?1:2),unit:r,extra:o}}function T(a=[],e=d(a,"value")){return a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}))}function aa(a=[],e=!1){const n=new Map(V.map((r,o)=>[r,o]));return[...a].sort((r,o)=>{if(e)return Number(o.value||0)-Number(r.value||0);const u=n.has(r.name)?n.get(r.name):999,s=n.has(o.name)?n.get(o.name):999;return u-s||Number(o.value||0)-Number(r.value||0)})}function k(a={},e,n,r="万亩",o={}){const u=aa(K(a[e]),o.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||r}));if(u.length)return o.withPercent===!1?u:T(u);const s=Number(a[n]||0);return s>0?[Y(`${e}-total`,"全县合计",s,r)]:[]}function W(a={},e,n,r,o="万亩",u=6){const s=K(a[e]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||o}));if(s.length)return T(s);const i=Number(a[n]||0);return i>0?[Y(`${e}-total`,r,i,o)]:[]}function x(a){return((a==null?void 0:a.rows)||[]).some(e=>Number(e.value)>0)}const ea=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function na(a="ecological-redline"){const e=a==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ea[e])}function O(a={},e="ecological-redline"){const n=na(e),o=Number(a.scopeAreaWanMu)>0||Number(a.grasslandAreaWanMu)>0||Number(a.wetlandAreaWanMu)>0||Number(a.woodlandAreaWanMu)>0?g(g({},n),a):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{K(o[u]).length||(o[u]=n[u])}),o}function ba(a={},e="ecological-redline"){a=O(a,e);const n=k(a,"grasslandDistribution","grasslandAreaWanMu","万亩"),r=k(a,"wetlandDistribution","wetlandAreaWanMu","万亩"),o=k(a,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=k(a,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=W(a,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=W(a,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=W(a,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=T([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(a.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(a.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(a.woodlandAreaWanMu||0),unit:"万亩"}].filter(H=>Number(H.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,span:1,rows:r},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:o},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(x),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${e}-grassland-level`,title:"草原级占比",type:"bar",variant:"rankBar",span:1,rows:i},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(x)}}function ka(a={},e="ecological-redline"){return a=O(a,e),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:t(a.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(a.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(a.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(a.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((a,e)=>a+String(e.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const Wa=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(a=>({key:a.name,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${a.grasslandAreaWanMu} / 湿地 ${a.wetlandAreaWanMu}`}));p.map(a=>({key:`${a.name}-town`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:a.villages}));const ta=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:z.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:z.general.fillColor}],N=43.66,S=12.48,ra=t(N*(192.26/297.29),2),oa=.06229833103624831,ua=new Map([["瓦切镇",{areaRange:750120,yakNumber:43459,bearingCapacity:44927.54,livestockCapacity:45260,overloadRate:.74,year:"2026"}],["麦洼乡",{areaRange:666075,yakNumber:35773,bearingCapacity:36505.86,livestockCapacity:36776,overloadRate:.74,year:"2026"}],["色地镇",{areaRange:209805,yakNumber:25947,bearingCapacity:26534.58,livestockCapacity:26731,overloadRate:.74,year:"2026"}]]),la={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(a=>w(g({},a),{value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu},householdCount:Number(a.householdCount||0),edibleGrasslandWanTon:t(Number(a.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*ra,2)})),D=l.householdCount-d(c,"householdCount");D&&c[0]&&(c[0].householdCount+=D);c.forEach(a=>{const e=ua.get(a.name),n=Number(e==null?void 0:e.bearingCapacity)||t(Number(a.grasslandAreaWanMu||0)*1e4*oa,0),r=Number(e==null?void 0:e.livestockCapacity)||Number(a.livestockCount||a.yakCount||0),o=Number.isFinite(Number(e==null?void 0:e.overloadRate))?Number(e.overloadRate):n?t((r-n)/n*100,1):0,u=E(o);a.bearingCapacity=n,a.livestockCapacity=r,a.overloadRate=t(o,2),a.balanceLevel=u.label,a.searchText=[a.name,`划定面积${a.protectedAreaWanMu}万亩`,`牦牛${a.yakCount}头`,`牧户${a.householdCount}户`,`超载率${a.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),F=d(c,"livestockCapacity"),j=F-b,A=c.map(a=>Number(a.overloadRate)).filter(a=>Number.isFinite(a));l.balanceOverloadRate=A.length?t(A.reduce((a,e)=>a+e,0)/A.length,2):b?t((F-b)/b*100,2):0;const h=[...c].sort((a,e)=>Number(e.overloadRate||0)-Number(a.overloadRate||0))[0],$=(a,e=d(a,"value"))=>a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}));$([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:a,weightKey:e,unit:n="万亩",decimals:r=2,sortByValue:o=!0})=>{const u=c.flatMap(i=>(la[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${a}`,name:M.name,town:i.name,value:t(Number(i[a]||0)*Number(M[e]||0),r),unit:n}))).filter(i=>Number(i.value)>0),s=o?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return $(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const sa=["瓦切镇","麦洼乡","色地镇"],v=a=>sa.map(e=>a.find(n=>n.name===e)).filter(Boolean),ca=v(c).map(a=>({key:`${a.name}-area`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",extra:`核心 ${a.coreProtectionAreaWanMu} / 一般 ${a.generalControlAreaWanMu}`}));v(c).map(a=>({key:`${a.name}-zoning`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu}}));const ia=v(c).map(a=>({key:`${a.name}-grass-wet-area`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:a.grasslandAreaWanMu,wetland:a.wetlandAreaWanMu}})),ma=v(c).map(a=>({key:`${a.name}-grass-wet-productivity`,name:a.name,value:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N+a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2),unit:"万吨",segments:{grassland:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N,2),wetland:t(a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2)}})),pa=v(c).map(a=>({key:`${a.name}-yak`,name:a.name,value:a.yakCount,unit:"头",extra:`${t(a.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),da=v(c).map(a=>({key:`${a.name}-household`,name:a.name,value:a.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:a.ecologyJobs,peopleCount:a.peopleCount,extra:`公益岗位 ${a.ecologyJobs}户`}));v(c).map(a=>({key:`${a.name}-balance`,name:a.name,value:a.overloadRate,unit:"%",status:a.balanceLevel,extra:`载畜 ${a.livestockCapacity}头`}));const ga=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:E(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(F/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ya=v(c).map(a=>({key:`${a.name}-job`,name:a.name,value:a.ecologyJobs,unit:"户",color:a.name==="麦洼乡"?"#24f6c4":a.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${a.householdCount}户`}));v(c).map(a=>w(g({},a),{key:`${a.name}-ledger`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,B,J;const ha=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(a=>a.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((B=c.find(a=>a.name==="麦洼乡"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((J=c.find(a=>a.name==="色地镇"))==null?void 0:J.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],va=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ja=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function Aa(a){return G.includes(a)?[]:a==="engineering-analysis"?[]:(a==="restoration"?va:ha.slice(0,5)).map((n,r)=>g({icon:n.icon||(r%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const fa={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ia},{key:"park-town-productivity",title:"草地湿地生产力",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万吨",segments:[{key:"grassland",name:"草地生产力",color:"#32dcff"},{key:"wetland",name:"湿地生产力",color:"#8bf7ff"}],rows:ma},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:pa},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:ga}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:$(ta)},{key:"park-town-household",title:"牧户分布",type:"split",rows:da},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ya}]},f=new Map((m.townships||[]).filter(a=>/[乡镇]$/.test(String(a.name||""))).map(a=>[a.name,a])),Q=V.map(a=>{var e,n,r;return{name:a,areaWanMu:((e=f.get(a))==null?void 0:e.areaWanMu)||0,lengthKm:((n=f.get(a))==null?void 0:n.lengthKm)||0,projectCount:((r=f.get(a))==null?void 0:r.projectCount)||0}}),_=(m.projects||[]).map((a,e)=>{const n=Number(a.areaWanMu)>0,r=Number(a.lengthKm)>0,o=n?{value:t(a.areaWanMu,2),unit:"万亩",metric:"治理面积"}:r?{value:t(a.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:a.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(a.measureTypes||[]).join("、"),s=(a.townships||[]).join("、");return{key:a.id||a.projectName,index:e+1,name:a.projectName,projectName:a.projectName,category:a.projectCategory,year:a.year||"未知",areaWanMu:t(a.areaWanMu,4),lengthKm:t(a.lengthKm,2),measure:u,townships:s,subjectFeatureCount:a.subjectFeatureCount||0,value:o.value,unit:o.unit,metric:o.metric,extra:[a.year||"未知",u].filter(Boolean).join(" / "),searchText:[a.projectName,a.projectCategory,a.year,u,s].filter(Boolean).join(" ")}}),Na=_.map((a,e)=>{const n=e%6,r=Math.floor(e/6),o=102.42+n*.045,u=32.55+r*.035,s=.018+Math.min(.024,Number(a.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:a.projectName,project_category:a.category,year:a.year,areaWanMu:a.areaWanMu,lengthKm:a.lengthKm,townships:a.townships,measure:a.measure},geometry:{type:"Polygon",coordinates:[[[o,u],[o+s,u+s*.22],[o+s*.82,u+s],[o-s*.16,u+s*.72],[o,u]]]}}}),Ka={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(a=>({key:a.name,name:`${a.name}`,value:t(a.areaWanMu,2),unit:"万亩",extra:`${a.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,rows:Q.map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu,2),unit:"万亩",extra:`${t(a.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"column",variant:"slim",labelMode:"horizontal",rows:(m.years||[]).filter(a=>Number(a.lengthKm)>0).map(a=>({key:a.name,name:`${a.name}`,value:t(a.lengthKm,2),unit:"公里",extra:`${a.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"column",variant:"projectYear",labelMode:"horizontal",rows:(m.years||[]).filter(a=>a.name!=="未知").map(a=>({key:a.name,name:`${a.name}`,value:a.projectCount,unit:"个",extra:`${t(a.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:_}]},Ta={left:[],right:[]};function Fa(a){return G.includes(a)?{status:"success",title:a==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:a==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:Q.map(e=>({name:e.name,value:t(e.areaWanMu,2),unit:"万亩"}))}:a==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:ca.map(e=>({name:e.name,value:e.value,unit:e.unit,metricLabel:"划定面积"}))}}export{Ta as a,ba as b,ka as c,Aa as d,G as e,ha as f,Fa as g,Wa as h,p as i,va as j,ja as k,Na as l,fa as p,Ka as r}; diff --git a/docs/assets/data-defd9b10-1784043664472.js b/docs/assets/data-defd9b10-1784043664472.js new file mode 100644 index 0000000..f71c25e --- /dev/null +++ b/docs/assets/data-defd9b10-1784043664472.js @@ -0,0 +1 @@ +var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1784043664472.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; diff --git a/docs/assets/featurePanelLayout-93409244-1784043664472.js b/docs/assets/featurePanelLayout-93409244-1784043664472.js new file mode 100644 index 0000000..7f5efd3 --- /dev/null +++ b/docs/assets/featurePanelLayout-93409244-1784043664472.js @@ -0,0 +1 @@ +var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-d0c7091a-1784043664472.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; diff --git a/docs/assets/flyline6-525edf67-balabala-1784043664472.png b/docs/assets/flyline6-525edf67-balabala-1784043664472.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d91a2d126156ed522b748f9f295088fa521cd6 GIT binary patch literal 20243 zcmZ5{cRZV4`+ulCilS=OUbSkkN^Gh&t=1m3YEzp;mD-z{mDZ+3?NP+0_NpMZ){0pp zh$KJX-|zW6-{<+A*DH6D`~Krx_qoRVT<_~Tu?BjYlw?d~004mUsg{}%06=p46QD#w zbbC#r&QiGjBK6XGem*=fx&y!*BY zQ#2(Z(RsvD|38xc_vqS_9C&$$XvGd#_jgV*+u*;S0#c&tWAYLqpFD$F^*zVhLVrx> zw_BB?P(7_Ojs*dN=O;+on&>0Fg_WApGH@-(5`Bc4FyF=){M^JX!myXma91ESt+k(M z4R$G;XGM56NI)y>=9}9nwpto?nM_ad|4kP-oo|sbr`7=eVF$J1oBi|%;QP*$&IaO8 zD7${9F9F5$-Z-SYfOzdM!eQHgkYq8`(xDpFDlP$6K z;KH^I{mExg3Q<>AtacKQM|?Nnxb~&=9Sd5~;ene2^l&H!2DDMW^IuXhXunvO=Na>< z)WSHex5?~xXn4)3Q9)2&19N7}mr#s-zvb31HAVEsV%h~lb#_p#{mW%SJ>#UQfbh46 z3%-73f#W~{0vv)|l5k0IVC&j4Y(DP@C;b1t>iFQB)P=I7t~oUe-)?mI?EET4^lI(u zfos2eVm2mh8#Tv)OICah%9u@1t779aIDpdC1*G-R-kP9orE%G}B zWH$?t&*rN*OVnSvAEh#YP*2C7E&$m-sB|O>1v(hbf<@x}*Bgq&{xZ%qwzUupKXpEo zQOOaST3XfVch{r-VQ+WAK-Mjj`yu2*a;)LHz{W*x&$%)E=OcO-XmabJoNu(;PyD$# z!jslkvboR;pu@cu(RK8CH;SWuMfwEjeh_#= zr=-@h{~<;=pYnytuIEqmD)(H6qlv73NWncqY?P73mdcd?q1T`p=cRE{7kD^g)AwEp zG}9}efAq~J<_eq_M>kF~X?SZqa@Yqlfa3|cBm8%e zV{V;v9%ejL$mTz01pxY<-iHS<`MdW8iL5_~);i3l9bQdTumSQ_Ou^}X8WWzl(zlCR z5`3a%w>SI;egVOYIr#yI44M#yT79FzfX$On2R4Bg5|6I2QjSfvHHEbs>KU z{pke33CrnaM`!D=z{A2bUwk_cmQD@s8GIeGoXgSt1gWS^SL*uaVJFDMHMeE+iNi%V zwU>fOeJdL|Zu(|lFCUMcLF7)?%9CtSAh<8?ANXZ`kZucW3<*(LH&NlTh%01^JmojfmMq{#lUtxetDa75UwFte41DK+ zKbJr@a<86;6wri&WkMydf?U$(-yBYgrD}C%E0GlfdPl6 zo4$HpINBhb1aAf;CI(^UslOuliR>^r)+o9KxHa8(_G?Sas5z7DQmR-P*1&)4O5b0j zJUTAl>_k@xt<1hzB3ye$rwt{0%#feFyd1O*{u)|cye&$C^}s}yL$V0NHL=Ni97N%X z3Y~1@guY$i5+OjI6g=ov-t`QhFPiW_wL9@H)&M7M*aCefs(*#(Dr`{Y?Fv zTYgz&JPz@tUSpdkxcs?t0L%X<=g=3ThlgcCy#zV@_P@B2Gopv}@t+&VA-9ucVUk}$ z&*`=W)sw7q4Zu|qNGTFu2C-&=Hv+2Y{lVO6vQEY}p}+Zk7Gm1DVW5Iwppg#1wJPe_ z?5k{?Xmd7Ej*wpISAzK*@;+?t9R`jEnhKz$1w!eZu1o>H{{C zR4mU=fB_5k({s<8ll7aVS!Qv7Ni^JsX#OadV-do8j&m###^W~H_O7oOt-k*07I1XZ z^>090vwJC}Z52UwuKXEyopUP(Xd>XkAUdD1!&u<27#u?J1(hrCh7zP6{O^HpmG zS>j>kG(SVlz2uv{f?^{Ox#%ap@1Ap2Tjy$3zmh1EzL#%4Ib%?}v;KF5+(9j}^TW{{ z-N++jF*S?cwl<;*f!*aJr}5QX&HAk{;aA*YdUjLTyn~mQWq-c5#b0dBH!<@C4Ev3XS##mq1**6YA#2yq;9swtw*Z^v!fe9hF#X$p)2FEYEVG#wQpHIj2=~kCzro;u_E1y;lxGYmlRN$<|*(#DGK%?={?yJ*E)=`3`Nxg;h&%c6dHJBAHx*e zSE=l9`EoWtSobQ58^240trj=2z2Cx`M&F⁣D*U`Tl?Xtc5+zcuk>L@)E{zgxdi^ zBs#a2sWx3B4D{Eh&hH8kcE*=eIjddE+0k6UndFWZt)JyvJGeIP^gnc?a`n;s zA}jEzc}kPRSK8_NuK6_hDD%(9p-2AP)Rj~jh|?;;Xi2^_YF0ss3eB(FgPaN5vrg)- zeJB#W1ghX|&V^&!*WgEa5;at|VIO~-U*zk@Eiue#waRrq97C!8>$KX{xit2O%b(!s#7T4H~ubY$cEnidPOMLijQ`!pIl_O$fHTv?Tv_UcmSJ zPiat3csgm1ahHy*1?(HfCsy|kAk+kbOy0O|@&hPNeB~%325o_!hDx-pq(18dIV=Vf zGtBtLqRQ^?28Gm&23vg7g4%jsE|c~jSnNYnT5ZNiF08tKIf$Azx{(rtLPA zYxOH{*lS+B;di5bkqWJ01?NloiBp#C>io5L5>D(BZH`~$CK~;0XyZ6QANX6 zZbts#*8eAM`oAMTTd1dFQ;PNww?cjnVc!ny!x%MSphK+-CRdI^Ys6o$w6vSJ#?-0e zpRhiXo7OgXOpE@*Xccde!!TMZ3SGuI4ayw4D!V6eVmRkFM$H&Y9 z2TC4GoCvszUOjZYxm$$%azMp~)(u9RgFo3Nai93OZs_RX3*jqn2dGxgTS1S}6=rh{o==_M^+{^fBtB zs3f%$EK_92)3>i&Mfdj|?-c6PG&)+)x{~$F?R_M;PJdm_PV*PeL=TNG=dYpuZJ8<+ z<@!*V`I#~<8|z#+lKk}a3CfDu&BE>PsH@((9+#sPSF+fBmOP%WOnA(sYY7Uz@7XCK zZ#4Iw7hf^+H%Z`!7u;+I>p)r_%lkn_E2mNtG%uFXkwF=6-LRiH#$LtMb{js5bOJ9g zEg99ed@DVFQIU!yE!QDm0<57;YtOK0cwOq#KYSC>qn4(v$%I@=%h^2?Qy9wF>wpai z&3LWw9SuLVt+BK!vIsd_m`oVxPKlShabh#?Jaa2mnDt#K>l;wQZcS-BB%qD?-xkMR zc<(Q(#VGDWN0!m9FUKlJ$#fP$XdM4my~#CO6w(g8tRN!1fz6n@cy_?rzb(Ih!!*6| zA8?)*j||B40R9T zWydjVnxZf!75#oYE(V^G+bLh7p9U}^MLnM>E55jr^5vKy>(82#YR;6ih8{9K>KiBZ zD5_o7*;ZBXPYkTQr}0WtpHc2xN#N@UFB0g^DKq zm+^-4jTKEJaUb$G?Z7%iR9c2tCX;ZItE87EV4+N`nBmoJ_6w8cfL8oXYw6U8yD7Qw z`Bneo&5ab-`%f+4x8K|U;_p8L@w&oHmwXGPQ+kNDb|1x76aav)aZ8 z17(ultjndTUGK3sdC=iMffi}hK6I9pIUrB`{c%gP(tJ88h%A&+D&9>r@vbgr5zICs z=DNy+NETB&Zzck$7T(0-v9p+4k4vgU4$84@@n@bzH)G%Fl`N@Jaqg`t99{8$>3|IG z)}twzpGh?cod6`T)ng*Okv*ydl!>FZTte^l^&|17Hbs93HTLvNHSX;?c^W)mnhKZ}s0mXI#gHem`4scq1AD zW0(yVN!zBo&~Mxh(=)_vO#fD(v%~tXOn^h;Zc|9k!--Z?jM4JqP;l%{=n|upfa}4V zNHk)mfhScEzk^m5V1@4>#?Z3oOj=}eCXd_4_%s6xS26HQ z3cy_azTS>!`!Smi;4mNEUiqO>#hW*LARaTPiIc%vh)%-a%XQJsc#q!%5@ zX>Z=!vd`M?zC@FfJ47FlGogRZUoWrk<6tWcBL6tRR~`XvNK(oNTmUc>cMhHD!$6J) zA>tB+ot)ZGa`fFthq$F73$qOHI0;7cT%mBhhQ0!lsM5K~gldP)VGew~pVC|o#%#21 z{hklry3Y1HkifIPx1Kb48B!4Eb@WoOKP--f*&Ti1?S67yg85yM{cV{K$keK+DnRm$ zMVHNo^jJV(hgG1Wyk0}w^Y1TpnkXX|eW#Vqx5mvU#?L>=CY!4>>RM`Q58v-tVIJ|puh*!$Q0i^jQ!j=9h$=R)~xb^ zW|M{Vk9w%3w|B@+-(SB)CsD%Yq(F=jZmZ8>P|Zf96#8RxI3emanj|&fYW1RuWqc~w zWwozq=vr_nFprT7Uok)^cb|w!b!f>ab(EDdC)tXGuP`vC&2w+#F}#2Mh%g%7TPp!* z_z>O;J7-2#Z-=3FF=0gEg(pWH*(;J`{PGYyMwR!YrF2>O%as_X>dtn3*pHxHlL5&Bz<&e^6rW%}YA;E=V7ukp2<2 zEo1Kuin*4g1ks-hNCrcs?N(2Id5xvD99`|Q(stbuOWRt9gXI1-Fbd}!E&zsq_FBK-7&A#a$0LR*=2*rPZRdUv5zAW zFvK>(#78nvxlfi!5kZ1+sgbJFGCOW-jrds@fKVLd>Go6R*Z)gQ@_``QS$pWUQp$xQ zl;l`lEk$OgW2CAl{Ih_Jpor$Rq^YMU5K+rMri(A7U`>nHd4JET`*(ehoOONJr^NOb zCBr2NcjoH0^MBcAexL>)p=YnS6T$EmZ}dWz4n<8Elo{n2iXc7eSOZ^rZ$LIVu~dSe zNr?bX0zNr-7O%vu_=XS{aQ07Yo=^K=E+2&PR3gJd+8!*vLB46ezmuf-A<@7|Vpbng zVfR!1jXGEm!qCWwZ^7DKKFLJ4cVQ70D9mK{!fOiW=LGofu_=hQ)@j6{+KB&Aa@X_1 zxZeToi7{v+ZSY{)5Zkk#Y?tgL=aRV~5{$_jOv4-GGz+XTPgE(1ZUOP+8SJCW=k}7R z&*5>iFrr)S7M@LHYJ_|={G$8Q<5Jlio+oXxEaWF} zR5E-S=BjRR&wNIR_+WChiiMFO0;VNxI`ZS^21kW zt@e+ANVlhcPTb$SDGX2_qDmRXA2bk!U-z!p<3b;xakRMi|D^Dyo%(2L)<>V}Nb-I#<=2pn?};>i3$q;3}bF+7GK zxLJ+IpWq~VRE>x>PTCVaeHlcHa%40G#;2}HE8<(vfZaS%odwM5Ib29T=Q%T@;IJ=u zDizm~ca!~79=ghm<@a0t=UJ;Eh&pKXtSe;H zL^JzLm`$x{Udnu|a-S1)d|e*7I@qE)(1ZZY0u_|p7o*2Ig5RwMs;UH3qZ{>HFOI|9 zbcx2kCx)MEkgby9jM%oYgQ~SSufPIa&6VCiM$p1E zpV4(Z&7mq0T$3yLGqIvs7*n?5DpCoR@Ufp@K1jIeguSDtpL)l@f&P+ zf%~W}mL%05=KebPV=zHo3|eLv^_*vm?={|Ah9+bG@OX`M#z-gVp3@Uk< zRpxemKm9!cCIy9oF8+=DMw!Y93YYJyIcC(Fy;mtjFj(h9%}E9obi>$G(ET9K64yv! zK+nTv4x`*sV^IoPd1eLrEFM(?+B$Lx`U5@{??CGWtJ0pgeHql83q^KqUczHc)C9gy z^P%wxRGe2sN=k?6Un(Xm_?Ii8+?FBKo>hzoB@a0}su-G=r5aZmI%refMH`yWqwMPj zn0bqn2VP8y<%s#0vd|a*5XpNgjo0aTW31MHY*+rBVJ%Dm5*)e|DgE*m(+9tIN`7%; zJJAO-Af%WIEs>|Pk<>psv65%{Goymug zLv*$ypnN%dc)a?z@%fBv+t=LwHgbt?y-LP;Imq1gXthHWNIC|S$#B{+?*6r0fwiFHLA9w>4)t?mBO{c8 zT`I<1(JA3@f_@5D4%Vc*an)LenM~M6VU5*LUnOrQHqO6wn?*qM!~&{JFs*%H&FYhf z#uIN+Z)m(%Nqx60qsANXmfw%ip*=`iLbCDD!v1|~FL_BfTrWg?s9wLd%;- z4bJ#}QGa0-q<{B|vqQxTzQm;)@`u-!W!P1XLm`dXN;|$L_5$7@8jGgoFy`l)>n(q^ zhiwv3E@zF!GEejFPH0pjh8)bZU6k&%YyKIN<%H?W9E?l@Kkl1ZS#zA}>UbWxM2b)Q z&5>tNeiB`m&n4^N;CyR6@KSE9l_A2MQZ@z}wQGEmeBpH@eV^_6aAa~P_>s~KFrm-W z$SJF|o%XfMtRnp(;^a2xfm=VAISSAlq|snbim#@{r@;`=H?~Z+5QPbesXt+`CHg;)Azuz7#v~Gl*htqXD~fDW7qO=UckP9P zPd<&-f(~_wITRtH#mt;B>GCR%0>!gFJP_40$r-7p?peNnOyGiVo!KNgtb&Z-`G zfOZMwjHLP4O^xzCl~5dZ&jRPOTw$U57WZu3;%`{U$z`yJ`aYEw=BL2L zsg%z!-AzRyW=q2m73X*-b~Yy9k#niWkFvNkrW5HV=w$+Lm4rCA+UIA^3FLAEi*rT! zNbM=BJ^7)PCQ-P&9SeU_3j;mv zU=iFS;gxoo^=QoXz1joHVl9-}V>Sa{b4X24RghJ-(ojhHA0QNJf22&FF z(4yIQZzr%1V&)-iS?vU0?E6Gt+8K2K zmI~^)D=ls+xHQ=M+#vd3?;&SzG}h09z&c)71OM6}pxLag+?B0%S#YRZXlh#lpPnsG$8oO<@ZVC{u}eyYN70*WWhQ zi*=mT;oC9Sr!u=XR(<5}j+_ekeV?2uZ!zD3UlYlc$jzNWp?2*_@!H^z*+i>INCLy& zPyOEHS2-Ha&Ff*4XJakGL|C5(8=!}Gah82)#QzE?Yj)0&zA&ln&HB1sT>vP^aI36$ zVl`+Tmx)V=>j33Q>gB9}OdD`Taz;NV=nr7Lax+&o{q{vSHL)y(-)XOT)`J;fv-^i1 z5l8Ai*gs`EGHeLGA})1)uyTzYXK?{)3RnsXxsbMH$!iVbu{V1je%rGlxk-&oD*lqS zm&u8KZaDwLC1*oR@HI7f1V!miCjSeN1L(k5 zna~r(LSpxWzJS9;SDOacP~Cbo`?Mi!Ob5>|V79q;``5MN;ZsalvA?V)mc@&-iTO*7 zEt_9kLhzJ?#Staxmx88{D(dBPSXJDtDapV)pk3Y>Ujk^w}&L-y6eeGoBe~cI%MM&MHN&iIW@?#%_6rnudtMLaftm8}Qd{PZs?j z<#mn&Rel_;vM2n=xTumVVg$OzOtR@vitt>?-dnx90j^o`kMrCt!CCQKIFNgCKQ20< zA_{MEM}lg?aLmY=FAQNnzF5Hdpq(q%VJl&I(hb%P6~xy~KLpz*+;)5+%g5U4SL}r- zyS5+j&OGIq0B9zmpfv?(BP2KphT86-c2h3(eKOmL{E#IOeVXn&9b$wkPjCQz$d~DH za$KMPj@%l4BF1Yx$uIJT^XMw*(M|L+(T=x+&A*He5bmmU>Zy?ujoKRJ4d*JvbpP== zbcQ4vwxaaKY#UR<`PuzsYt?3($uoFD;4To&{`oV`?S7ihm>n! z8PyA?C^w)ZhR7G??;_+2H;EIE9OIgMu0SlKswe`t&WCMGwR zZ#cB@3n)H((qlfU_MB!%U7~;s6@qy*ZG`~!R|#(sTquIX*fr)5fy?R0NSIKoR0ij? zr@wSl!lE4WGOa?oPl4@1kB82a+)f$_(%H~y6Zshx(?E;rhKN=rvAfsdM0nt7Vr7yI zd-pdINk*Ou4%csy!V(axGs8avM>6`0M}?(>e=HF^HN{NiFiHW0RG6$OSz>xyuV0Zn z-WyxdU`H}%b))t5BA3IwV~jF#Yk*87iQKg_vE6gPcw=r%tBdOVfy4?Lk>W%6!?bv! zTXsVYdtsdRxAQJ4W{&poD+pebxOirGRaJl-7#WyzBG}n>x*W}+d&K0xHh%OJSH)V= z#&$k<_dMIC^JL;F!-?mj-^|(6-{o(9zH5W`X0I=P%-lUSPxp6^aYH$V2bb5wXy=$I zbpj4-sK0kOuQnYFQX3t^J6EgLIV0_4nvR^@wfq4RuK_z%w7OFspR6RCWbR3J|5l;| zDBqw!90+A77)o-rJaP=orfd@>VjHtwd{HOk$WptiKAwKjPG&_%DE5lrPre21BH!TV zP^dy;wP-eJ7c-!ogZ%-ZrNuf;WD;evFB&^!onkNkZC8I6@+~J0(@qfvv;EVGXLIx5 zedG6>VHV>5sFA9lbmU|MJmM-U@r=71>gjLEk(|}~Wm`SxJ+zy^Wz_fF!I()C6Hh{= z=2~=wmk23}Szxv-=q9j{lqe7#q8l96|3rIpV^hC_4P9kH^(k0a4J`a5gwWiT5LqNq z=e6E$pmA{8Hrgw@VJ#?o8r-)7exXtMJv*nNANjvaP&C0!!@#dX6P-zr9 z>2TF)frl!}E5D=>s+7L1I+~?>zT%}fq}zRW~Y)Chh-~dFZu<+YdiT>z0bLZFR!(nuHW=J zMI$4l6myTfv^YQYBCPnEH-iztbZO1WAY{=M#`P)lnYzjaaUGi?%u3w5p}XiU%P7U# zp><1H(c7CS3scdHQ?b0mU%H$8D!^HW;gks`T<6L8Sz#!|-fh(bq6_nieszGT-86M| zhpZBF1c&O*>vx{tPZ`2UldZ;Y&Q98NbOD)Ye`?r_Qh)Lk`uWg+!Uc`SY=>Q?jY4_0 z2$AS}It0oDRLCm!Q>nN`)T00z3WAR%I4Z}Q_xCI#fjQkQlSc}kKhChrzOpd~4T;t8 zC>dzvmEh2mNUgA%H|8^WL>gp%)-s73M^>(8)w>yID|E`kiytgz=w5$|M$xy9GgFqk za4gmLELIqPegG@W!M_&5n>FZC!=(y@LstAeGw44jUqdATLZ1Z3=DBUgW+iQY*6wCW zv~X{U19YstQU72gzKbMo5&ZQ=W?2Ttn1$YiMx&0v50YS57g_9~tt_^?Y#tNcI}wuR zfx2@=*o44e6AbXWT-9tM1pMJ!Uz!-p&?mF?8gs`x6#w<9DtY)DK&}bz<;+X3^om2x zgUp9t5h$_TKOkG?a9=0F$rR4vvI{2<@^FS!5Zn8;^aaXzv?*jY5<>on5! zx^KXL&s%G<)}7Aq#@D%U_iH4WA=bBeL7UwV2^hN%$h1qonw87j_k>OTDnhh{TMq7t zu+?5@AjtW-j)OvSuO>$okCKb-&n)b>r=wO~wEzrNm2cP^#Fl}MZTl!2zQ6^wMr`C)^9+dCeAG*%u9YUC^tn`@r7>Ghp zXt`WtT2o`jk>tKS#cM|+kA2lU9(#UloVi3hbnGl&j5sjx55hl42cN7gdi#^rWddLy znvh%X!7D2@RtBsC%81QP39D?;cw01{hof_Uh-h`R4l(6!J;z39%ea{|F_y_mlH?VA z+c$P~Pa~33$FKz(3g?^8LO&mOjS<`ynev34`(Vgs*kUBb9S-w|s(20se5r>iqX0|m z_LL(+Tq*q_@q1;bha~XFem@>i01ld?g>POEnYc9nZj_W<1rKRWdWhLnF5!#<;5pDnNUSPKRhJhH8vRrmca3jzq8{>wnm&YH%JNP5+>v#e@1%!1dASYMuBh z8N3}V0o2q5WZ010N(@4bz`cyaB?xX<1-^LBd=*~HHsLN-D9aZzF36-^x$Y9-G3DTFeCcDR-V#-URX2wePANKJm ze~hP<-+btl!FHepB1k_!7-xJYPD=0&G#XI$G1|XkaXD*Om%w7G)b^ye!*fTT1b5LC zvEnW)C-&O=0i03fE|dzD*Q6ZE!X<$R5{W#WmSf)II3FXu;KGEICfGU%3EEd#c$~0& zGFCW)lWeY?u3jcJ%eOMjAlpW&jb(aUUp#X<>aFECKU-8#)OQ)ENqk#P6PG?wY;Rh} zXt|oO=i)0P1(9pVZmz$&Uj2CZ504y9?kM)GD@|Z6uNS?VimK_|_Wa5f}v2xNgG+4v0~0NRgVYa|hv9@Z#O2k4l!JGPq!b`$_wDCssf7peWBh zKlIZ!uWA{KypD4ZGTfz}ftf7DS8w+BF z0wLfVCJYxLSHDO&kh-!?SCO^b*&uk-F*E6O z^kEurTgf<`Jo~l%P`meLzZY!3*wi-CFJv~56qXY?9qo0U8>+Wr{$frV^Tx$A!Y?8; zd&IGu<8etUcJy^~<<@rKmw~V^9iVnBEPDF@NBxN4U$MulN+=gU6fbqP4yloI2W&rz z1dW^%6)Cx)0fQ5cO;jlfc-C#3Z-RtGIicIqgkD>FVc!JUpFx~vv93e+*u90#iOc;7 zWqpw0u8&E7(}h~sp#1HVOpqB(tm zpW7yLA`IZ}w#<7K?rF~6*l3H%`3}vc%W|L`bTswvyxZM^|zB0ilB&d(It~v`G zgDIc3$~IC(ZmO-*7edVLC#2eD=8US1D4_2N2~@z8=W@ zH2b&RQrr@ZY6^X3X1|z$buVrM$;k8CPU$s>3X4%)UQ;jz&=Q=m2ToG}Z0|BDj5pc5 zx7f87clLXyn0v(;Q(PAtHRdcKkZV7uGMvFtv<86#^Gd*muc_PRQtZUX=-hZ1 z=Xc|GtK*FzgUO48tX~HW6lJx4Jvj!DD@-1451hUqBbzvUmoMF!BWiml4jQCHC!238 z5tAMV*w0cT4q$uaIEyXuom+ky5Am^L(WmOh>aAZx57@B&T9*%tG8cMF6kZxOOgy6u z^3N0uXPG|g!rHI%{sKLGgrkbq2SYEu|I;4SVrIgN=RtBg0K>70-sG)6&L(ia2)9qf zOEMe)OblAm<3e36BM^S=g$O-{N5HP(em4_<{Ny0f3G#+ zPOCVv);9;bmNOmvr2Md@<&s~1F1&byl{p0WSpbXZ+FLA>a_s{8FIQDpbsRrC%m9{* z>Q{28RF;pvg%sZ&?~tAH9yKv4aISVj7*Xg+@I6<7TCfi0GDb|X%dhsV5aqUhRJ*eL zrekNGRPI&atd!CevgX$>PH@JES1wx}b4azjs0!U0V6VziiTMkq-P^9-jDT1tA0Lr2 zaado~Rb3v8v~dGyRl}1zn|rSO_e;^=_#LOu%we$hgC=p3slx_}Ww|83|{V<4-HhE}120_l{Ch-ekeoq6a$n)`9e$5^sM*f)Nom_efknfamfAw5;<^nAmCA z_3T^pn>ePDU=xxa&T!_AT4~b2 zgDhd?OZF)7-4`5NvI-ZzFp}f^AlKjT?|U8XHl}N~NH1H!H;rd7bU-F^+{~8<(2&f- zf5n)tdX2`8F3%|O)fC@xq2ueZhJ@GD*%HJA#Rr5MuL!_$EU>>0B^3DG+|-B{Hp1y$ zX0Psi+ygQxpFnAse6#P&-8Ojq${S(#qCt?eb9E5#?ovQ)>r9%-8Pcf0Rn4bBt_02W^s)t zj_=w=00x(G)$e1wnB~ms0SovxlD{%jg8mp-8{S=IbVrZUDZ%tdDXQIEfULP;PSO`R zV{p(vBs9SOHf{`BNWbf1TSm)lA}gM#YlqUes{B`kK8(b(2+Glu1)t@zjeE`PpIZ({>T(sc_n=12uUY160w;Vt zo^{Cu-vr1TUM^|i$GUAre{S)R12p7C$f0XHV**r^t6_*QQ>IAynqg z!r`n<=?_GJcD2XnBci+euWHlK5*-uLK#d zYL)*+Xb0eL8^XS57tO0qU^ra%_WXQ&RK;*%{$711VU&#{4n~jdZ7deiw1$RQk56z! ztw5~wWeQFdef{7U*kj9M(P%47*(uoYpIT?&v`{VqzGvd$YH27ley%0^$LHakIYb%@ z1U;eyFsAA&{%rD=pm1hlpg@0dV;%W#N%DNoA4=m@M9v+qO33k!gRa~K!nA}tapZH7 zluw$4NrKx8JGX-8tKY6lo>odx{AR*kT-1&6-jk~r)v3G3T?!cbRVLNU;QZ>RmI2uY z3Bv@RU5MRVm}8Yo;fRy12A({h87-mcpf0|-1DmCydFjp!lDFchS%vXw7sE7iV$5)i zAk=K`mueBRq|FQuJVDUe3R^w=)0E{rl7f`R;6gJ)(v!!EfQJ?Ib{iiu^Jv-md_^`TH@cy~(!46ga|`}g&5OS2LAg_%;-m?Nl6Kdn z^h0NIl#PhZ0ANw1gyy#SBI=dNDR)@#I-#+IG&mvBkPB{${L|QvnAZ4_+yvk+9k}~7 zurz2ZTtlGKb+|wBw^9W^Ei<_#L-cz?Ug}$V0=(M!nvRqR|F-=^l_+*4&`2MxN-1;` z(p|Dog&+2VP-%t{Z;=83{JVO#i+w5ye)$YMUC!~j{I=VrOe!t=Wc$m?bn)uoB-{1k zM@pjTo8wIWovbO0m+=6kBVsr z;bKBS+E>*HP4ME%ZHJ~W!kjHx`yD3w)*@#C67);YcqdT~E|0M8OXXdJ@MRsjiUP$S z><$X=249Oz&eF!$xvRTy^mki5(nQ#AI9QSj3=k@}iRAVNmo$}##UPmZ)yLd_`z8uR zCF_O)3EoFDTlDMja^bB~Sq;}ct~7rPh@_yFir4TMxr8(m_{L_FhFfiqpf-3bqAx;B zsA#ubK0R3mi8lA;udTp+)wqMGU!dhjTnJ#5`s9XF$+mUXB}48UQXy_heN9H{wsU;C zm6viY-41$vN0fYO->CiwehKZCV8}kHA80Pzsej563CVTndA^>p#7lcb+1{Yn^yH_5&Eq)Ev* zK5B4u_Z-_liwFq9KK{o`0pkge5aFBdeX_^7@KZ-K&Byn&5cdcg2Hs8Ne5PsQBMIFd z7ifAk`I;s0#R3uk3hQ_7Lu+Fq{MbC51It^bcBLZjyTxlf7a7PcZ2u5e3OpJTWw8F> zo6Lxa*eI~4jN0>!T}!TTqV#=7TW=+%*LuvKrpU7`G>KCu z5Lmp0lYpmX?GV)a4127WU!RtU#{L%Cu-@Brn+wldFWGRp&dedW^h*l{GHR*>;~t>` zxRBdg?THn=4-@B)`aT}`%seUWE~nsBYAQQ$i=UvLM9SgU zsEJR4ZRJEDO_NH+hu|HiCSXVx{~f?swMtVKiA;e8#(Y}yP3e~$4vRAgHCk5|7_)tF zeOsle40-s5so(R1(`y&qXA`=XR2z`TZkhcy+>=kJ3TxwWp9*y~Pi5*Cu&7ap!N2tg zk6M&fx3& zxil-S6$4%A5%|jDw9W&{{k~Nk@2oWuZRX_(rNuBAalP+QwYAl3elrfxN4YL3^=;is z&3jq#IunL(ii5p3j*1%BHsXuTpPjNLN?RMR8GoCQn(}}dK6JSt*$8pdz3;olu+mxM znZc+^z0PX>rP{#%D7k;<#y#{I$ye%I`^EIYgclpGgxcD21Q?25+y()=!WTo^Jsrio z`h8&a<-*#H1iN5`@!olD@s(?`esFY4lFW(tS%Hp@;9JY|eFi`KKl@DNzVvlAk-^2t z-qy4R(9d8FODCc`c&lxN6P#-SBYS8Q?eO3{8&(i`G^TpBU3LL)0)*GKb=#?A}k$zYZ@_)*{~dCq1m~RlWa$eqEGeY>pe@gEQ6(EDokfgTJ8v577T~9L&ilTD2GRIzqH)!yD-F3L&2ae2@8C!%@AIJ`3Q~=~ek|J_LL>v4ahqz8)PL_e z!_{v2pFu=SYFD=ebzcI(>b0o=m-4LE@yKp#vQQqL%)R#VxAxmx5&0Ss#t%rGLy|eu zGS^HrA{y)Ieh=$V+mDSBCW|YvxbU|SZ7Mx#r68`@jB(&eQ44;~9mZN?`UBW3)Mh<{ zeN=IiY?JQlO8j%^vtdh4oAB766$eEtGSIhT7cucuV<_8qzaH*r&rfHUYf$rcxsThZ zc+55D1f9ByocE_)bZ6H2_VAA{Z|sppJKQnx|8#NY@la^*A0J_?Bb2>j5Gj;>lom^w zv5YP*i73Nl9izz-#$L9uCQP|xi3nZ$jC~1N2H~2^*v9&eCM1l;nD2b=>w9nC-|zf& z{(H{zdY$u}=bY#HyzhvP>5%KlzKe^O-?yh$&8s%bzI#|TRD7l&)!?qZ!dN3s*?>X( zu&ZNvOuEin`^9;~nGvzpeA=1cAP4~oMq@J-U+n0Ct_4XP5;orRm-^@yp{rbC<&=}vum!#UaU#LeICvmeoAHQRVnDRdSk9pcunpU#Spz2mZ{SR98!dsFF&ZWMJuxIM}{{ z8)cBACGMkO3*W^Nv=v!#G~zv^GKzf6Hc2BrwyP}szww%#*bGrqn&Q1E_@SxJyaoOPW2%r+g8Xr3(Blv3WbM#)#Wb&5124dRVB{oQ z~;{2Ykn zFU)2as|_mUG<5Y?TxR7$(tDx4P255H!*le9vw=LrCR-9G)>h0`kA+*pjSb7w7wm*1 zZPr7Abx3!&U~d`fZ%~1xvz>v%TH}>ai=U6y z&OzHZaNgxQn!-`PzDsu*bpDcQTWeU^(pVZhS4z~Wy9?xkrCCWvw2st1L*1d&hI4%D zv}}PUA)7&-Sm=nzi2NegQKrwaH-%PVmWmOZ=LUbV8T|;jp~+ddsTUaNm@v&E2+GX%o46Zj6FnOEsu8TjPwP2IHb8Ory6tY(hPd1QkRWqfLxY3Xwr z{W}B$(7Ja0)(dn6EUP4x>L`as7|KZsdh|vk8gIn=MqDyAn>=PZ>?@*OQ6FG5`31=5 z$^R984q4@S{hv`ukbJ@3xKXEke%x>rGi#_`02_cSaF* zr4Fg3W*f~BB_mMh=oXeZp-`YJG@;5FDgV6JONrwwBbFwp+pL`Nhq1LE;+I7XxiYqH zuh{)8{`Seii)I1Hm|h)Jt9*gT0D_`6dO1;WerY#QzbV2xFMdlu-j~CuQHS?^J=)@) zsNwhQSk@lq(Qv|n`oOgce|wPFM!mPy4z9Rj$xB%VQ2t{}FN3kUoqgvY_YL%Idygfs zKly{Ta*LkD+}F(+bY7r8)dRI$AM;s=ml6uMmJ|*jo@*ZB@pji8ov6?1zd<=Fx}9^J zO=#$|miBVjje0a#$byMSii>7l7dZ;*W;6%|h261v@LSv_sa1mV*}#i* z@enW47}sByvd?x&3;{5Jczu@?M@JKd2*uf`Oc5$$>D@2eXk=$V71KuM z#JM$Hm0WG}ZZS9e(XGs6K^27e=E&fRCIyEzc;mk$EuTxyO|9p;nVeueee@s#iRjC# z1qpJb zd`^W2F!qQ(N23`yBVc5*yR|%;)wcIK1SjpC2nbMOS~-= zr){cRY=uqG?Wg^yUvYTBQwGglDkP9Zb^Wm=(Z<&cZ`afilTZ6ajjY!~s`Y4<7&TJ_Qh*YuvA+ zJv8NT!Q-th3@V|5cP4Yo@PRyUf=Kw`3gJs%E6Qi$ZAYU=TFqG}*DS6CWp`_c_?t57 z*y_J#q$IVW^32p_dhV3;F{^<1MZPKQVU#jJnBWTpxX|iZQx$ZcCLpvhE>R{)P@K>-79~2KT0!HdGuRjqA zYCGP!TwhDx$6e;^c(_Wv%V#k= z!S0d4!o3Yygb1&l?wdKc)IH1v)8c*wsqn4xyCp*rYC9vj^kGU-Z}Qd@9Adf;Uog7v z=Z7HyBQ1URdSVXjBN(yVpr3~sK!9Y_UO+!`cSPUT>b??mxIx#ER){efn%U~H-y4m? z>-KL~uRgnY56^{&5l2N5B-4+eiq*`kp{%FGFm*3y8yoE*IlO?Tp1&yEGb8xCl>Ch| zd1fV`t;Y-VztE(2DUOh8R?#PHDohFzz0l4q3&j$;R8O-3Jjiw}S%Lqc!hVhgTQ`cX zk)~RU?zoFxl9be3j!L_7pI@((6d~b(5DGPlx~QR{$A#%6?~sdq^tQ{*SlHl1s^N1Q zRl30~jnIn|*4N*_+B8YBJIwEGOiJgzGNEpj;bfONo}FR~rWRK>VnSDXUu2JaM}L%E zaAocB7qJ|5>ks_fubi4eZ2w#dd-f6Dpels9ZDV349;ZLYyzH!$tzuN``*d*cwIL!g z_~tYto2bc$jB}C#*EzlOm+!UFwOej_I4uZnlqw9$U%%}5D$ZWlydimWis3!9!0}B) z>tpPQpBVlEp@WT_(6g6hZlWE5zVCi};?VVfECT?`tHqQ%kTy#XEBE-cf!}Etqrr<5 z7?ZP%;sRaPhTpEkpLM3Cz7Hi;>S#leN$nX+`S_h3Tdw`JJTPaZjcA+RSLdlo?ZPKV zgpSQv%sPbF>dM*C9oIU=x_IgT*;)vJYTCD0YP*HKVwZ^Q59iw39Gal?G*llIO1f4+ zm0;9WSGj*gdss?oWLe07WqRLrQg&7WEAf6WK$=1$=>Zw>&zH85GWk|hr-YO0*VLLcm84dhQj t=5hiKm_rA8wSMC2O-5~3E2haM2l;9+Pe@7y_g{oK*iE=emC^m^e*?;iR%QSI literal 0 HcmV?d00001 diff --git a/docs/assets/focus_bg-b6803e2d-balabala-1783995319167.png b/docs/assets/focus_bg-b6803e2d-balabala-1784043664472.png similarity index 100% rename from docs/assets/focus_bg-b6803e2d-balabala-1783995319167.png rename to docs/assets/focus_bg-b6803e2d-balabala-1784043664472.png diff --git a/docs/assets/focus_move_bg-cf41417a-balabala-1783995319167.png b/docs/assets/focus_move_bg-cf41417a-balabala-1784043664472.png similarity index 100% rename from docs/assets/focus_move_bg-cf41417a-balabala-1783995319167.png rename to docs/assets/focus_move_bg-cf41417a-balabala-1784043664472.png diff --git a/docs/assets/geoserver-6574cb91-1784043664472.js b/docs/assets/geoserver-6574cb91-1784043664472.js new file mode 100644 index 0000000..67e92e2 --- /dev/null +++ b/docs/assets/geoserver-6574cb91-1784043664472.js @@ -0,0 +1 @@ +var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-1b068bef-1784043664472.js";import{r as E}from"./index-d0c7091a-1784043664472.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; diff --git a/docs/assets/header-bg-65b38012-balabala-1783995319167.png b/docs/assets/header-bg-65b38012-balabala-1784043664472.png similarity index 100% rename from docs/assets/header-bg-65b38012-balabala-1783995319167.png rename to docs/assets/header-bg-65b38012-balabala-1784043664472.png diff --git a/docs/assets/huiguang-3c5dfda5-balabala-1783995319167.png b/docs/assets/huiguang-3c5dfda5-balabala-1784043664472.png similarity index 100% rename from docs/assets/huiguang-3c5dfda5-balabala-1783995319167.png rename to docs/assets/huiguang-3c5dfda5-balabala-1784043664472.png diff --git a/docs/assets/icon1-6f7c222f-balabala-1783995319167.png b/docs/assets/icon1-6f7c222f-balabala-1784043664472.png similarity index 100% rename from docs/assets/icon1-6f7c222f-balabala-1783995319167.png rename to docs/assets/icon1-6f7c222f-balabala-1784043664472.png diff --git a/docs/assets/icon2-4f77ccec-balabala-1783995319167.png b/docs/assets/icon2-4f77ccec-balabala-1784043664472.png similarity index 100% rename from docs/assets/icon2-4f77ccec-balabala-1783995319167.png rename to docs/assets/icon2-4f77ccec-balabala-1784043664472.png diff --git a/docs/assets/index-0060e718-1784043664472.js b/docs/assets/index-0060e718-1784043664472.js new file mode 100644 index 0000000..d2a1231 --- /dev/null +++ b/docs/assets/index-0060e718-1784043664472.js @@ -0,0 +1,2 @@ +var or=Object.defineProperty,sr=Object.defineProperties;var lr=Object.getOwnPropertyDescriptors;var wn=Object.getOwnPropertySymbols;var ar=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable;var Sn=(m,n,r)=>n in m?or(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,lt=(m,n)=>{for(var r in n||(n={}))ar.call(n,r)&&Sn(m,r,n[r]);if(wn)for(var r of wn(n))ur.call(n,r)&&Sn(m,r,n[r]);return m},Lt=(m,n)=>sr(m,lr(n));var ft=(m,n,r)=>new Promise((u,h)=>{var c=y=>{try{d(r.next(y))}catch(w){h(w)}},p=y=>{try{d(r.throw(y))}catch(w){h(w)}},d=y=>y.done?u(y.value):Promise.resolve(y.value).then(c,p);d((r=r.apply(m,n)).next())});import{H as G,n as xe,h as bn}from"./townshipBoundaries-1b068bef-1784043664472.js";import{_ as cr,g as hr,q as fr,h as mr,w as Kt,A as _n,o as pr,c as dr,a as gr,d as Nn,K as yr}from"./index-1784043664472.js";class gt{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function xr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const d=n.right;if(n.right=d.left,d.left=n,n=d,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function we(m,n,r,u){const h=new gt(m,n);if(r===null)return h.left=h.right=null,h;r=mt(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function Cn(m,n,r){let u=null,h=null;if(n){n=mt(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function wr(m,n,r){return n===null?m:(m===null||(n=mt(m.key,n,r),n.left=m),n)}function _e(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} +`);const c=n+(r?" ":"│ ");m.left&&_e(m.left,c,!1,u,h),m.right&&_e(m.right,c,!0,u,h)}}class Pe{constructor(n=xr){this._root=null,this._size=0,this._comparator=n}insert(n,r){return this._size++,this._root=we(n,r,this._root,this._comparator)}add(n,r){const u=new gt(n,r);this._root===null&&(u.left=u.right=null,this._size++,this._root=u);const h=this._comparator,c=mt(n,this._root,h),p=h(n,c.key);return p===0?this._root=c:(p<0?(u.left=c.left,u.right=c,c.left=null):p>0&&(u.right=c.right,u.left=c,c.right=null),this._size++,this._root=u),this._root}remove(n){this._root=this._remove(n,this._root,this._comparator)}_remove(n,r,u){let h;return r===null?null:(r=mt(n,r,u),u(n,r.key)===0?(r.left===null?h=r.right:(h=mt(n,r.left,u),h.right=r.right),this._size--,h):r)}pop(){let n=this._root;if(n){for(;n.left;)n=n.left;return this._root=mt(n.key,this._root,this._comparator),this._root=this._remove(n.key,this._root,this._comparator),{key:n.key,data:n.data}}return null}findStatic(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return r;h<0?r=r.left:r=r.right}return null}find(n){return this._root&&(this._root=mt(n,this._root,this._comparator),this._comparator(n,this._root.key)!==0)?null:this._root}contains(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return!0;h<0?r=r.left:r=r.right}return!1}forEach(n,r){let u=this._root;const h=[];let c=!1;for(;!c;)u!==null?(h.push(u),u=u.left):h.length!==0?(u=h.pop(),n.call(r,u),u=u.right):c=!0;return this}range(n,r,u,h){const c=[],p=this._comparator;let d=this._root,y;for(;c.length!==0||d;)if(d)c.push(d),d=d.left;else{if(d=c.pop(),y=p(d.key,r),y>0)break;if(p(d.key,n)>=0&&u.call(h,d))return this;d=d.right}return this}keys(){const n=[];return this.forEach(({key:r})=>{n.push(r)}),n}values(){const n=[];return this.forEach(({data:r})=>{n.push(r)}),n}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(n=this._root){if(n)for(;n.left;)n=n.left;return n}maxNode(n=this._root){if(n)for(;n.right;)n=n.right;return n}at(n){let r=this._root,u=!1,h=0;const c=[];for(;!u;)if(r)c.push(r),r=r.left;else if(c.length>0){if(r=c.pop(),h===n)return r;h++,r=r.right}else u=!0;return null}next(n){let r=this._root,u=null;if(n.right){for(u=n.right;u.left;)u=u.left;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?(u=r,r=r.left):r=r.right}return u}prev(n){let r=this._root,u=null;if(n.left!==null){for(u=n.left;u.right;)u=u.right;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?r=r.left:(u=r,r=r.right)}return u}clear(){return this._root=null,this._size=0,this}toList(){return br(this._root)}load(n,r=[],u=!1){let h=n.length;const c=this._comparator;if(u&&Ee(n,r,0,h-1,c),this._root===null)this._root=Ne(n,r,0,h),this._size=h;else{const p=_r(this.toList(),Sr(n,r),c);h=this._size+h,this._root=Ce({head:p},0,h)}return this}isEmpty(){return this._root===null}get size(){return this._size}get root(){return this._root}toString(n=r=>String(r.key)){const r=[];return _e(this._root,"",!0,u=>r.push(u),n),r.join("")}update(n,r,u){const h=this._comparator;let{left:c,right:p}=Cn(n,this._root,h);h(n,r)<0?p=we(r,u,p,h):c=we(r,u,c,h),this._root=wr(c,p,h)}split(n){return Cn(n,this._root,this._comparator)}*[Symbol.iterator](){let n=this._root;const r=[];let u=!1;for(;!u;)n!==null?(r.push(n),n=n.left):r.length!==0?(n=r.pop(),yield n,n=n.right):u=!0}}function Ne(m,n,r,u){const h=u-r;if(h>0){const c=r+Math.floor(h/2),p=m[c],d=n[c],y=new gt(p,d);return y.left=Ne(m,n,r,c),y.right=Ne(m,n,c+1,u),y}return null}function Sr(m,n){const r=new gt(null,null);let u=r;for(let h=0;h0?(n=c=c.next=r.pop(),n=n.right):u=!0;return c.next=null,h.next}function Ce(m,n,r){const u=r-n;if(u>0){const h=n+Math.floor(u/2),c=Ce(m,n,h),p=m.head;return p.left=c,m.head=m.head.next,p.right=Ce(m,h+1,r),p}return null}function _r(m,n,r){const u=new gt(null,null);let h=u,c=m,p=n;for(;c!==null&&p!==null;)r(c.key,p.key)<0?(h.next=c,c=c.next):(h.next=p,p=p.next),h=h.next;return c!==null?h.next=c:p!==null&&(h.next=p),u.next}function Ee(m,n,r,u,h){if(r>=u)return;const c=m[r+u>>1];let p=r-1,d=u+1;for(;;){do p++;while(h(m[p],c)<0);do d--;while(h(m[d],c)>0);if(p>=d)break;let y=m[p];m[p]=m[d],m[d]=y,y=n[p],n[p]=n[d],n[d]=y}Ee(m,n,r,d,h),Ee(m,n,d+1,u,h)}const at=11102230246251565e-32,J=134217729,Nr=(3+8*at)*at;function Se(m,n,r,u,h){let c,p,d,y,w=n[0],N=u[0],o=0,x=0;N>w==N>-w?(c=w,w=n[++o]):(c=N,N=u[++x]);let b=0;if(ow==N>-w?(p=w+c,d=c-(p-w),w=n[++o]):(p=N+c,d=c-(p-N),N=u[++x]),c=p,d!==0&&(h[b++]=d);ow==N>-w?(p=c+w,y=p-c,d=c-(p-y)+(w-y),w=n[++o]):(p=c+N,y=p-c,d=c-(p-y)+(N-y),N=u[++x]),c=p,d!==0&&(h[b++]=d);for(;o=it||-U>=it||(o=m-q,d=m-(q+o)+(o-h),o=r-z,w=r-(z+o)+(o-h),o=n-Z,y=n-(Z+o)+(o-c),o=u-W,N=u-(W+o)+(o-c),d===0&&y===0&&w===0&&N===0)||(it=Pr*p+Nr*Math.abs(U),U+=q*N+W*d-(Z*w+z*y),U>=it||-U>=it))return U;k=d*W,x=J*d,b=x-(x-d),P=d-b,x=J*W,E=x-(x-W),R=W-E,v=P*R-(k-b*E-P*E-b*R),B=y*z,x=J*y,b=x-(x-y),P=y-b,x=J*z,E=x-(x-z),R=z-E,$=P*R-(B-b*E-P*E-b*R),I=v-$,o=v-I,K[0]=v-(I+o)+(o-$),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ut=Se(4,Ct,4,K,En);k=q*N,x=J*q,b=x-(x-q),P=q-b,x=J*N,E=x-(x-N),R=N-E,v=P*R-(k-b*E-P*E-b*R),B=Z*w,x=J*Z,b=x-(x-Z),P=Z-b,x=J*w,E=x-(x-w),R=w-E,$=P*R-(B-b*E-P*E-b*R),I=v-$,o=v-I,K[0]=v-(I+o)+(o-$),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ie=Se(ut,En,4,K,Fn);k=d*N,x=J*d,b=x-(x-d),P=d-b,x=J*N,E=x-(x-N),R=N-E,v=P*R-(k-b*E-P*E-b*R),B=y*w,x=J*y,b=x-(x-y),P=y-b,x=J*w,E=x-(x-w),R=w-E,$=P*R-(B-b*E-P*E-b*R),I=v-$,o=v-I,K[0]=v-(I+o)+(o-$),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const Et=Se(ie,Fn,4,K,Pn);return Pn[Et-1]}function Ir(m,n,r,u,h,c){const p=(n-c)*(r-h),d=(m-h)*(u-c),y=p-d,w=Math.abs(p+d);return Math.abs(y)>=Er*w?y:-Tr(m,n,r,u,h,c,w)}const At=(m,n)=>m.ll.x<=n.x&&n.x<=m.ur.x&&m.ll.y<=n.y&&n.y<=m.ur.y,Fe=(m,n)=>{if(n.ur.x{if(-ptm.x*n.y-m.y*n.x,Gn=(m,n)=>m.x*n.x+m.y*n.y,Mn=(m,n,r)=>{const u=Ir(m.x,m.y,n.x,n.y,r.x,r.y);return u>0?-1:u<0?1:0},ee=m=>Math.sqrt(Gn(m,m)),kr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return te(h,u)/ee(h)/ee(u)},Lr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return Gn(h,u)/ee(h)/ee(u)},Rn=(m,n,r)=>n.y===0?null:{x:m.x+n.x/n.y*(r-m.y),y:r},kn=(m,n,r)=>n.x===0?null:{x:r,y:m.y+n.y/n.x*(r-m.x)},Ar=(m,n,r,u)=>{if(n.x===0)return kn(r,u,m.x);if(u.x===0)return kn(m,n,r.x);if(n.y===0)return Rn(r,u,m.y);if(u.y===0)return Rn(m,n,r.y);const h=te(n,u);if(h==0)return null;const c={x:r.x-m.x,y:r.y-m.y},p=te(c,n)/h,d=te(c,u)/h,y=m.x+d*n.x,w=r.x+p*u.x,N=m.y+d*n.y,o=r.y+p*u.y,x=(y+w)/2,b=(N+o)/2;return{x,y:b}};class nt{static compare(n,r){const u=nt.comparePoints(n.point,r.point);return u!==0?u:(n.point!==r.point&&n.link(r),n.isLeft!==r.isLeft?n.isLeft?1:-1:dt.compare(n.segment,r.segment))}static comparePoints(n,r){return n.xr.x?1:n.yr.y?1:0}constructor(n,r){n.events===void 0?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}link(n){if(n.point===this.point)throw new Error("Tried to link already linked events");const r=n.point.events;for(let u=0,h=r.length;u{const c=h.otherSE;r.set(h,{sine:kr(this.point,n.point,c.point),cosine:Lr(this.point,n.point,c.point)})};return(h,c)=>{r.has(h)||u(h),r.has(c)||u(c);const{sine:p,cosine:d}=r.get(h),{sine:y,cosine:w}=r.get(c);return p>=0&&y>=0?dw?-1:0:p<0&&y<0?dw?1:0:yp?1:0}}}let vr=0;class dt{static compare(n,r){const u=n.leftSE.point.x,h=r.leftSE.point.x,c=n.rightSE.point.x,p=r.rightSE.point.x;if(pd&&y>w)return-1;const o=n.comparePoint(r.leftSE.point);if(o<0)return 1;if(o>0)return-1;const x=r.comparePoint(n.rightSE.point);return x!==0?x:-1}if(u>h){if(dy&&d>N)return 1;const o=r.comparePoint(n.leftSE.point);if(o!==0)return o;const x=n.comparePoint(r.rightSE.point);return x<0?1:x>0?-1:1}if(dy)return 1;if(cp){const o=n.comparePoint(r.rightSE.point);if(o<0)return 1;if(o>0)return-1}if(c!==p){const o=w-d,x=c-u,b=N-y,P=p-h;if(o>x&&bP)return-1}return c>p?1:cN?1:n.idr.id?1:0}constructor(n,r,u,h){this.id=++vr,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=u,this.windings=h}static fromRing(n,r,u){let h,c,p;const d=nt.comparePoints(n,r);if(d<0)h=n,c=r,p=1;else if(d>0)h=r,c=n,p=-1;else throw new Error(`Tried to create degenerate segment at [${n.x}, ${n.y}]`);const y=new nt(h,!0),w=new nt(c,!1);return new dt(y,w,[u],[p])}replaceRightSE(n){this.rightSE=n,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const n=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:nr?n:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(n){return n.x===this.leftSE.point.x&&n.y===this.leftSE.point.y||n.x===this.rightSE.point.x&&n.y===this.rightSE.point.y}comparePoint(n){if(this.isAnEndpoint(n))return 0;const r=this.leftSE.point,u=this.rightSE.point,h=this.vector();if(r.x===u.x)return n.x===r.x?0:n.x0&&d.swapEvents(),nt.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),u&&(h.checkForConsuming(),c.checkForConsuming()),r}swapEvents(){const n=this.rightSE;this.rightSE=this.leftSE,this.leftSE=n,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,u=this.windings.length;r0){const c=r;r=u,u=c}if(r.prev===u){const c=r;r=u,u=c}for(let c=0,p=u.rings.length;ch.length===1&&h[0].isSubject;this._isInResult=u(n)!==u(r);break}default:throw new Error(`Unrecognized operation type found ${ot.type}`)}return this._isInResult}}class Ln{constructor(n,r,u){if(!Array.isArray(n)||n.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=u,this.segments=[],typeof n[0][0]!="number"||typeof n[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const h=vt.round(n[0][0],n[0][1]);this.bbox={ll:{x:h.x,y:h.y},ur:{x:h.x,y:h.y}};let c=h;for(let p=1,d=n.length;pthis.bbox.ur.x&&(this.bbox.ur.x=y.x),y.y>this.bbox.ur.y&&(this.bbox.ur.y=y.y),c=y)}(h.x!==c.x||h.y!==c.y)&&this.segments.push(dt.fromRing(c,h,this))}getSweepEvents(){const n=[];for(let r=0,u=this.segments.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.interiorRings.push(c)}this.multiPoly=r}getSweepEvents(){const n=this.exteriorRing.getSweepEvents();for(let r=0,u=this.interiorRings.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.polys.push(c)}this.isSubject=r}getSweepEvents(){const n=[];for(let r=0,u=this.polys.length;r0&&(n=p)}let r=n.segment.prevInResult(),u=r?r.prevInResult():null;for(;;){if(!r)return null;if(!u)return r.ringOut;if(u.ringOut!==r.ringOut)return u.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=u.prevInResult(),u=r?r.prevInResult():null}}}class vn{constructor(n){this.exteriorRing=n,n.poly=this,this.interiorRings=[]}addInterior(n){this.interiorRings.push(n),n.poly=this}getGeom(){const n=[this.exteriorRing.getGeom()];if(n[0]===null)return null;for(let r=0,u=this.interiorRings.length;r1&&arguments[1]!==void 0?arguments[1]:dt.compare;this.queue=n,this.tree=new Pe(r),this.segments=[]}process(n){const r=n.segment,u=[];if(n.consumedBy)return n.isLeft?this.queue.remove(n.otherSE):this.tree.remove(r),u;const h=n.isLeft?this.tree.add(r):this.tree.find(r);if(!h)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let c=h,p=h,d,y;for(;d===void 0;)c=this.tree.prev(c),c===null?d=null:c.key.consumedBy===void 0&&(d=c.key);for(;y===void 0;)p=this.tree.next(p),p===null?y=null:p.key.consumedBy===void 0&&(y=p.key);if(n.isLeft){let w=null;if(d){const o=d.getIntersection(r);if(o!==null&&(r.isAnEndpoint(o)||(w=o),!d.isAnEndpoint(o))){const x=this._splitSafely(d,o);for(let b=0,P=x.length;b0?(this.tree.remove(r),u.push(n)):(this.segments.push(r),r.prev=d)}else{if(d&&y){const w=d.getIntersection(y);if(w!==null){if(!d.isAnEndpoint(w)){const N=this._splitSafely(d,w);for(let o=0,x=N.length;oBn)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const p=new Dr(c);let d=c.size,y=c.pop();for(;y;){const o=y.key;if(c.size===d){const b=o.segment;throw new Error(`Unable to pop() ${o.isLeft?"left":"right"} SweepEvent [${o.point.x}, ${o.point.y}] from segment #${b.id} [${b.leftSE.point.x}, ${b.leftSE.point.y}] -> [${b.rightSE.point.x}, ${b.rightSE.point.y}] from queue.`)}if(c.size>Bn)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(p.segments.length>Wr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const x=p.process(o);for(let b=0,P=x.length;b1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u[]},tileUrlTemplate:{type:String,default:"https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png"},referenceTileUrlTemplate:{type:String,default:"https://map.shuxitech.com/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}"},terrainUrl:{type:String,default:"/terrain"},center:{type:Array,default:()=>[102.600005,32.585593]},initialZoom:{type:Number,default:9},minimumZoomDistance:{type:Number,default:350},countyViewTargetOffset:{type:Object,default:null},autoApplyLayerMapView:{type:Boolean,default:!0},maxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},showNationalBackdrop:{type:Boolean,default:!0},enableImageryFeaturePick:{type:Boolean,default:!0},enableTownPolygonPick:{type:Boolean,default:!0},hideTownLabelStats:{type:Boolean,default:!1}},emits:["ready","scene-mounted","feature-loading","feature-info","layer-status","tile-status","map-click","draw-boundary","view-change"],setup(m,{expose:n,emit:r}){let u=[],h=null;const c=m,p=r,d=Nn(null),y=Nn(null),w=yr(null),N=hr(()=>c.activeLayer?[c.activeLayer,...Array.isArray(c.activeLayer.overlayLayers)?c.activeLayer.overlayLayers:[]].filter(Boolean):c.overlayLayers.length?c.overlayLayers.filter(Boolean):c.overlayLayer?[c.overlayLayer]:[]);let o=null,x=null,b=null,P=null,E=null,R=!1,I=0,M=null,O=!1,k=[],v=null,B=[],$=[],D=[],q=[],z=[],Z=[],W=null,U=[],it=[],ut=[],ie=[];const Et=new Map;fr(()=>{p("scene-mounted"),c.active&&Ot()}),mr(()=>It()),Kt(N,()=>Be(),{deep:!0}),Kt(()=>c.mapRanking,()=>oe(),{deep:!0}),Kt(()=>c.hideTownLabelStats,()=>oe()),Kt(()=>c.active,t=>ft(this,null,function*(){if(!t){It();return}yield _n(),Ot()}));function Ot(){var S,_,F,C;if(o||!y.value)return!!o;const t=window.Cesium;if(!t)return p("layer-status",{type:"error",text:"Cesium 运行资源加载失败"}),!1;R=!1;const e=zn(t),i=Ie(c.tileUrlTemplate),l=Ie(c.referenceTileUrlTemplate),a=jn(i),s=l&&l!==i?Te(t,l,{maximumLevel:c.maxZoom}):null,f=i?Te(t,i,{maximumLevel:a?Math.min(c.maxZoom,Ur):c.maxZoom,rectangle:a?Yn(t):null}):null;if(o=new t.Viewer(y.value,{animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,navigationHelpButton:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,scene3DOnly:!0,imageryProvider:!1,terrainProvider:e,useBrowserRecommendedResolution:!1,requestRenderMode:!0,maximumRenderTimeChange:1/0,contextOptions:{webgl:{alpha:!0,antialias:!0}}}),Ae(!1),s){const T=o.imageryLayers.addImageryProvider(s);T.alpha=1,T.brightness=.68,T.contrast=1.08,T.saturation=.48,T.gamma=.9}f&&(v=o.imageryLayers.addImageryProvider(f),v.alpha=a?.88:1,v.brightness=a?.96:.9,v.contrast=a?1.12:1.1,v.saturation=a?1.08:1.05,v.gamma=a?.98:.96),o.scene.globe.terrainExaggeration=1.5,o.scene.globe.depthTestAgainstTerrain=!1,o.scene.globe.baseColor=t.Color.fromCssColorString("#061821"),o.scene.backgroundColor=t.Color.fromCssColorString("#020b12"),o.scene.skyAtmosphere.show=!1,o.scene.skyBox&&(o.scene.skyBox.show=!1),o.scene.fog.enabled=!0,o.scene.fog.density=18e-5,o.resolutionScale=Math.min(Math.max(window.devicePixelRatio||1,1),1.5),o.scene.fxaa=!1,o.scene.postProcessStages.fxaa.enabled=!1,o.scene.screenSpaceCameraController.enableCollisionDetection=!0,o.scene.screenSpaceCameraController.minimumZoomDistance=Math.max(1,Number(c.minimumZoomDistance)||1),o.scene.screenSpaceCameraController.maximumZoomDistance=56e4,(S=o.cesiumWidget)!=null&&S.creditContainer&&(o.cesiumWidget.creditContainer.style.display="none"),(_=o._cesiumWidget)!=null&&_._creditContainer&&(o._cesiumWidget._creditContainer.style.display="none"),qn(e,t),Me().then(()=>{var T;!o||(T=o.isDestroyed)!=null&&T.call(o)||(Fi(),re())}).catch(T=>{console.warn("[cesium-map] county outline load failed",T),p("layer-status",{type:"error",text:"红原县边界加载失败"})}),_i(),ki(),ni(),ii(),ri(),re(),Be(),oe();const g={viewer:o,clearSelectedFeature:tt,focusProject:tn,focusPasture:on,focusTownByName:Qe,focusYakIndustryPoint:en,focusVectorFeature:nn,getVectorFeatureAnchorScreen:rn,getVectorFeaturesAnchorScreen:Vt,getVectorFeatureScreen:Pt,getYakIndustryPointScreen:ce,destroy:It};return w.value=g,(C=(F=f==null?void 0:f.errorEvent)==null?void 0:F.addEventListener)==null||C.call(F,()=>{p("tile-status",{type:"warning",text:"牧场影像底图部分瓦片加载失败"})}),p("tile-status",{type:"success",text:"牧场影像底图已加载"}),window.setTimeout(()=>{var T;o&&!((T=o.isDestroyed)!=null&&T.call(o))&&p("ready")},0),_n(Dt),!0}function zn(t){if(!c.terrainUrl)return new t.EllipsoidTerrainProvider;try{return new t.CesiumTerrainProvider({url:c.terrainUrl,requestVertexNormals:!0,requestWaterMask:!1})}catch(e){return R=!0,new t.EllipsoidTerrainProvider}}function Te(t,e,i={}){return e?new t.UrlTemplateImageryProvider({url:e,minimumLevel:i.minimumLevel||3,maximumLevel:i.maximumLevel||c.maxZoom,rectangle:i.rectangle||void 0,tilingScheme:new t.WebMercatorTilingScheme,credit:""}):null}function Ie(t){return String(t||"").trim()}function jn(t){return/hy-result|qkl-map/i.test(String(t||""))}function Yn(t){return t.Rectangle.fromDegrees(G.west-.035,G.south-.035,G.east+.035,G.north+.035)}function Vn(t,e="feature"){const i=[];if(((t==null?void 0:t.features)||[]).forEach(l=>{const a=j(l==null?void 0:l.geometry);ze(a).forEach(s=>{const f=$n(s);f&&i.push(f)})}),!i.length)return[];try{return Qt.union(...i)}catch(l){return console.warn(`[cesium-map] ${e} union boundary failed`,l),i.map(a=>a)}}function Me(){return ft(this,null,function*(){return u.length?u:(h||(h=Ht(Vr).then(t=>{const e=Vn(t,"county outline");return u=e,e}).catch(t=>{throw h=null,t})),h)})}function $n(t){if(!Array.isArray(t))return null;const e=t.map(i=>Un((i||[]).map(Y).filter(Boolean))).filter(i=>i.length>=4);return e.length?e:null}function Un(t=[]){if(!t.length)return[];const e=t[0],i=t[t.length-1];return je(e,i)?t:[...t,e]}function qn(t,e){var l,a,s,f;const i=()=>{!o||R||(R=!0,o.terrainProvider=new e.EllipsoidTerrainProvider,o.scene.globe.terrainExaggeration=1,o.scene.requestRender(),p("layer-status",{type:"warning",text:"CXPT 地形服务暂不可用,已保留三维影像地图"}))};(a=(l=t==null?void 0:t.errorEvent)==null?void 0:l.addEventListener)==null||a.call(l,i),(f=(s=t==null?void 0:t.readyPromise)==null?void 0:s.catch)==null||f.call(s,i)}function Zn(){return Ot()}function Xn(){var t;return!!(o&&!((t=o.isDestroyed)!=null&&t.call(o)))}function Jn(){Re()}function Re(){if(!o){Ot();return}o.useDefaultRenderLoop=!0,Dt()}function Kn(){It()}function Dt(){var t;!o||(t=o.isDestroyed)!=null&&t.call(o)||(o.resize(),o.scene.requestRender())}function ke(){if(!(o!=null&&o.camera)||!window.Cesium)return null;const t=window.Cesium,e=o.camera;return{position:t.Cartesian3.clone(e.positionWC||e.position),direction:t.Cartesian3.clone(e.directionWC||e.direction),up:t.Cartesian3.clone(e.upWC||e.up)}}function Wt(t){var i,l,a,s,f,g;if(!(o!=null&&o.camera)||!t||!window.Cesium)return;const e=window.Cesium;(l=(i=o.camera).cancelFlight)==null||l.call(i),(s=(a=o.camera).lookAtTransform)==null||s.call(a,e.Matrix4.IDENTITY),o.camera.setView({destination:e.Cartesian3.clone(t.position),orientation:{direction:e.Cartesian3.clone(t.direction),up:e.Cartesian3.clone(t.up)}}),(g=(f=o.scene)==null?void 0:f.requestRender)==null||g.call(f)}function Le(t){var e,i;!t||typeof window=="undefined"||((e=window.requestAnimationFrame)==null||e.call(window,()=>Wt(t)),(i=window.setTimeout)==null||i.call(window,()=>Wt(t),80))}function Qn(){tt(),Ae(!0)}function Ae(t=!0){if(!o)return;const e=window.Cesium,i=ei(),l=ve(c.initialZoom),a=ti(),s=e.Cartesian3.fromDegrees(i[0]+a.lng,i[1]+a.lat,2200),f=new e.HeadingPitchRange(e.Math.toRadians(qr),e.Math.toRadians(Zr),l);t?o.camera.flyToBoundingSphere(new e.BoundingSphere(s,1),{offset:f,duration:.9}):(o.camera.lookAt(s,f),o.camera.lookAtTransform(e.Matrix4.IDENTITY)),o.scene.requestRender()}function ti(){var l,a;const t=c.countyViewTargetOffset,e=Number((l=t==null?void 0:t.lng)!=null?l:t==null?void 0:t[0]),i=Number((a=t==null?void 0:t.lat)!=null?a:t==null?void 0:t[1]);return{lng:Number.isFinite(e)?e:0,lat:Number.isFinite(i)?i:-Xr}}function ve(t){const e=Number.isFinite(Number(t))?Number(t):9;return Math.max(9e3,Math.min(58e4,365e3/Math.pow(1.62,e-9)))}function ei(){const t=Y(c.center);return t||[(G.west+G.east)/2,(G.south+G.north)/2]}function ni(){!d.value||!window.ResizeObserver||(b=new ResizeObserver(()=>Dt()),b.observe(d.value))}function ii(){!o||P||(P=o.camera.moveEnd.addEventListener(re))}function ri(){!o||E||(E=o.scene.postRender.addEventListener(()=>{p("view-change")}))}function re(){var l,a;if(!o||(l=o.isDestroyed)!=null&&l.call(o))return;const t=Number((a=o.camera.positionCartographic)==null?void 0:a.height)||32e4,e=Math.max(0,Math.min(1,(36e4-t)/3e5)),i={township:1.1+e*.35,countyOutline:1.9+e*.35,countyHalo:4.2+e*.65};$.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="township"&&(s.polyline.width=i.township)}),ut.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="county-outline"&&(s.polyline.width=i.countyOutline),s!=null&&s.polyline&&s.__hyBoundaryRole==="county-halo"&&(s.polyline.width=i.countyHalo)}),o.scene.requestRender()}function Be(){return ft(this,null,function*(){var i,l;if(!o)return;const t=++I;yn();const e=N.value;if(!e.length){p("layer-status",{type:"idle",text:"未选择专题图层"}),o.scene.requestRender();return}p("layer-status",{type:"loading",text:"正在加载三维专题图层"});try{if(yield Me(),t!==I||!o)return;for(const a of e){if(t!==I)return;yield oi(a,t)}if(t!==I)return;c.autoApplyLayerMapView&&Vi(e.find(a=>(a==null?void 0:a.mapView)||(a==null?void 0:a.cameraPosition))),p("layer-status",{type:"success",text:`${e.map(a=>a.name).filter(Boolean).join("、")}已加载`})}catch(a){if(t!==I)return;console.warn("[cesium-map] topic layer failed",a),p("layer-status",{type:"error",text:"三维专题图层加载失败"})}finally{(l=(i=o==null?void 0:o.scene)==null?void 0:i.requestRender)==null||l.call(i)}})}function oi(t,e){return ft(this,null,function*(){const i=String((t==null?void 0:t.sourceType)||"wms").toLowerCase();if(["geojson","wkt-api","wfs"].includes(i)){const l=yield ui(t);if(e!==I||!l)return;mi(l,t,D);return}if(i==="wmts"){si(t);return}ai(t)})}function si(t){const e=window.Cesium,i=t.tileMatrixSetID||t.tileMatrixSet||"EPSG:900913",l=Number.isFinite(Number(t.maximumLevel))?Number(t.maximumLevel):21,a=new e.WebMapTileServiceImageryProvider({url:t.url||"/geoserver/gwc/service/wmts",layer:t.layerName,style:t.style||t.styles||"",format:t.format||"image/png",tileMatrixSetID:i,tileMatrixLabels:t.tileMatrixLabels||li(i,l),tilingScheme:/4326/i.test(i)?new e.GeographicTilingScheme:new e.WebMercatorTilingScheme,maximumLevel:l,credit:t.credit||""}),s=o.imageryLayers.addImageryProvider(a),f=String(t.layerName||"").includes("daping_yak_marks");s.alpha=f?St(t.opacity,.94):St(t.opacity,.86),f&&Oe(s,t),s.__hyLayer=t,B.push(s)}function li(t,e=21){return Array.from({length:e+1},(i,l)=>`${t}:${l}`)}function ai(t){const e=window.Cesium,i={service:"WMS",transparent:!0,format:"image/png",version:"1.1.1",styles:t.styles||""};t.cqlFilter&&(i.cql_filter=t.cqlFilter),t.sldBody&&(i.sld_body=t.sldBody);const l=new e.WebMapServiceImageryProvider({url:t.url||"/geoserver/ne/wms",layers:t.layerName,parameters:i,getFeatureInfoParameters:Lt(lt({},i),{info_format:"application/json",feature_count:10})}),a=o.imageryLayers.addImageryProvider(l),s=String(t.layerName||"").includes("daping_yak_marks");a.alpha=s?St(t.opacity,.94):St(t.opacity,.86),s&&Oe(a,t),a.__hyLayer=t,B.push(a)}function Oe(t,e={}){t.brightness=Number.isFinite(Number(e.brightness))?Number(e.brightness):1.08,t.contrast=Number.isFinite(Number(e.contrast))?Number(e.contrast):1.18,t.saturation=Number.isFinite(Number(e.saturation))?Number(e.saturation):1.42,t.gamma=Number.isFinite(Number(e.gamma))?Number(e.gamma):.95}function ui(t){return ft(this,null,function*(){if(t.sourceType==="wkt-api")try{const e=yield fetch(t.apiUrl,{credentials:"same-origin"});if(!e.ok)throw new Error(`HTTP ${e.status}`);return fi(yield e.json())}catch(e){if(!t.fallbackPath)throw e;return Ht(t.fallbackPath)}if(t.sourceType==="wfs"){const e=ci(t);return Ht(e)}return Ht(t.dataPath||t.fallbackPath)})}function Ht(t){return ft(this,null,function*(){if(!t)return null;const e=/^(https?:)?\/\//.test(t)||t.startsWith("/")?t:$r(t),i=yield fetch(e,{credentials:"same-origin"});if(!i.ok)throw new Error(`HTTP ${i.status}`);return i.json()})}function ci(t){const e=new URLSearchParams({service:"WFS",version:"1.1.0",request:"GetFeature",typeName:t.layerName,outputFormat:"application/json",srsName:"EPSG:4326"});return t.cqlFilter&&e.set("cql_filter",t.cqlFilter),t.maxFeatures&&e.set("maxFeatures",String(t.maxFeatures)),Array.isArray(t.propertyName)&&t.propertyName.length?e.set("propertyName",t.propertyName.join(",")):t.propertyName&&e.set("propertyName",t.propertyName),`${t.url||"/geoserver/ne/wfs"}?${e.toString()}`}function hi(t,e={},i=null,l=null){var S,_,F;const a=((S=t==null?void 0:t.data)==null?void 0:S.type)==="Feature"?t.data:((F=(_=t==null?void 0:t.data)==null?void 0:_.features)==null?void 0:F[0])||(t==null?void 0:t.feature)||null,s=(a==null?void 0:a.properties)||e||{},f=j((a==null?void 0:a.geometry)||s.geometry||s.geom||s.the_geom||s.theGeom||s.wkt||s.shape),g=(a==null?void 0:a.id)||s.id||s.gid||s.objectid||s.OBJECTID||(t==null?void 0:t.name);return{type:"Feature",id:g,properties:s,feature:{type:"Feature",id:g,properties:s,geometry:f},geometry:f,layer:i,lngLat:l}}function fi(t){var l;const e=(l=t==null?void 0:t.data)!=null?l:t;return{type:"FeatureCollection",features:(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||(e==null?void 0:e.records)||(e==null?void 0:e.data)||[]).map((a,s)=>{var f;return{type:"Feature",id:(f=a==null?void 0:a.id)!=null?f:s,properties:lt({},a),geometry:j(a==null?void 0:a.geometry)||me(De(a))}}).filter(a=>a.geometry)}}function De(t={}){return t.wkt||t.WKT||t.geom||t.the_geom||t.theGeom||t.shape||t.Shape}function mi(t,e,i){((t==null?void 0:t.type)==="FeatureCollection"?t.features:(t==null?void 0:t.type)==="Feature"?[t]:[]).filter(a=>a==null?void 0:a.geometry).filter(a=>bi(a.properties||{},e)).map(a=>pi(a,e)).filter(Boolean).forEach(a=>yt(a,e,i))}function pi(t,e){const i=j(t==null?void 0:t.geometry),l=(e==null?void 0:e.clipToHongyuanBoundary)===!0,a=di(e);if(!i||!["Polygon","MultiPolygon"].includes(i.type)||!l&&!a)return t;let s=i.type==="Polygon"?[i.coordinates]:i.coordinates;try{l&&u.length&&(s=Qt.intersection(s,u)),a&&s.length&&(s=Qt.intersection(s,[gi(a)]))}catch(f){return console.warn("[cesium-map] vector layer clipping failed",e==null?void 0:e.key,f),t}return s.length?Lt(lt({},t),{geometry:{type:"MultiPolygon",coordinates:s}}):null}function di(t){if(!(t!=null&&t.clipBounds)||t.clipToLayerBounds===!1)return null;const e=t.clipBounds,i=Math.max(Number(e.west),G.west),l=Math.max(Number(e.south),G.south),a=Math.min(Number(e.east),G.east),s=Math.min(Number(e.north),G.north);return![i,l,a,s].every(Number.isFinite)||i>=a||l>=s?null:{west:i,south:l,east:a,north:s}}function gi(t){return[[[t.west,t.south],[t.east,t.south],[t.east,t.north],[t.west,t.north],[t.west,t.south]]]}function yt(t,e,i,l={}){const a=j(t.geometry);if(!a)return[];const s=wi(e,t.properties||{},l),f=Gt(a,t,e,s);return i.push(...f),f}function Gt(t,e,i,l){const a=window.Cesium,s=[],f=g=>{const S=o.entities.add(g);return S.__hyFeature=e,S.__hyLayer=i,s.push(S),S};if(t.type==="Point"){const g=Y(t.coordinates);return!g||i.hidePointFeatures||i.hidePointMarkers||f({position:a.Cartesian3.fromDegrees(g[0],g[1],8),point:{pixelSize:l.pointSize,color:l.fill,outlineColor:l.stroke,outlineWidth:2,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:i.showPointLabels?xi(e):void 0}),s}if(t.type==="MultiPoint")return t.coordinates.forEach(g=>s.push(...Gt({type:"Point",coordinates:g},e,i,l))),s;if(t.type==="LineString"){const g=_t(t.coordinates);return g.length<2||f({polyline:{positions:g,width:l.lineWidth,material:new a.PolylineGlowMaterialProperty({glowPower:.16,color:l.stroke}),clampToGround:!0}}),s}if(t.type==="MultiLineString")return t.coordinates.forEach(g=>s.push(...Gt({type:"LineString",coordinates:g},e,i,l))),s;if(t.type==="Polygon"){const g=zt(t.coordinates);return g&&(f({polygon:{hierarchy:g,height:0,heightReference:a.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,material:l.fill,outline:!1,classificationType:a.ClassificationType.BOTH}}),yi(t.coordinates,e,i,l,s)),s}return t.type==="MultiPolygon"&&t.coordinates.forEach(g=>s.push(...Gt({type:"Polygon",coordinates:g},e,i,l))),s}function yi(t,e,i,l,a){t.forEach(s=>{const f=_t(s);if(f.length<2)return;const g=o.entities.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,clampToGround:!0}});g.__hyFeature=e,g.__hyLayer=i,a.push(g)})}function zt(t=[]){const e=window.Cesium,i=_t(t[0]||[]);if(i.length<3)return null;const l=t.slice(1).map(a=>{const s=_t(a);return s.length>=3?new e.PolygonHierarchy(s):null}).filter(Boolean);return new e.PolygonHierarchy(i,l)}function xi(t,e){const i=window.Cesium,l=t.properties||{},a=l.name||l.project_name||l.title||"";if(a)return{text:String(a),font:"600 14px PingFang SC, Microsoft YaHei, sans-serif",fillColor:i.Color.WHITE,outlineColor:i.Color.fromCssColorString("#03121e"),outlineWidth:3,style:i.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new i.Cartesian2(0,-22),heightReference:i.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,distanceDisplayCondition:new i.DistanceDisplayCondition(0,15e4)}}function wi(t,e,i={}){var C,T,L,H,A,Q,st,et,ht;const l=window.Cesium,a=Si(t,e),s=St(t.opacity,.84),f=i.fillColor||(a==null?void 0:a.fillColor)||t.fillColor||t.color||"#24F6C4",g=i.strokeColor||(a==null?void 0:a.strokeColor)||t.strokeColor||t.color||"#B7FFF2",S=(L=(T=(C=i.fillAlpha)!=null?C:a==null?void 0:a.fillAlpha)!=null?T:t.fillAlpha)!=null?L:Math.min(.34,s*.34),_=(Q=(A=(H=i.strokeAlpha)!=null?H:a==null?void 0:a.strokeAlpha)!=null?A:t.strokeAlpha)!=null?Q:Math.max(.72,s),F=(ht=(et=(st=i.lineWidth)!=null?st:a==null?void 0:a.lineWidth)!=null?et:t.lineWidth)!=null?ht:Math.max(1.6,1.8*Number(c.adminBoundaryLineScale||1));return{fill:We(l,f,S),stroke:We(l,g,_),lineWidth:F,pointSize:i.pointSize||12}}function We(t,e,i){try{return t.Color.fromCssColorString(String(e||"#24F6C4")).withAlpha(St(i,1))}catch(l){return t.Color.CYAN.withAlpha(St(i,1))}}function Si(t,e){var i;return t!=null&&t.activeLegend?t.activeLegend:((t==null?void 0:t.legends)||[]).find(l=>He(e,l))||((i=t==null?void 0:t.legends)==null?void 0:i[0])}function bi(t,e){const i=e==null?void 0:e.activeLegend;return i?He(t,i):!0}function He(t,e={}){return e.match?Ge(t,e.match):Array.isArray(e.matches)?e.matches.some(i=>Ge(t,i)):!0}function Ge(t,e={}){var i,l;return String((i=t==null?void 0:t[e.field])!=null?i:"")===String((l=e.value)!=null?l:"")}function _i(){if(!o)return;V($);const t=window.Cesium,e={stroke:t.Color.fromCssColorString("#B8FFF8").withAlpha(.82),fill:t.Color.TRANSPARENT,lineWidth:1.2,pointSize:0};Ni(xe.features||[]).forEach(i=>{var s;const l=ge(i.points,Jr);if(l.length<2)return;const a=o.entities.add({polyline:{positions:l,width:e.lineWidth,material:e.stroke,depthFailMaterial:e.stroke,clampToGround:!1}});a.__hyBoundaryRole="township",a.__hyTownName=((s=i.townNames)==null?void 0:s[0])||"",$.push(a)}),o.scene.requestRender()}function Ni(t=[]){const e=new Map;t.forEach(l=>{var f;const a=String(((f=l==null?void 0:l.properties)==null?void 0:f.name)||"").trim(),s=j(l==null?void 0:l.geometry);ze(s).forEach(g=>{const S=((g==null?void 0:g[0])||[]).map(Y).filter(Boolean);for(let _=0;_Lt(lt({},l),{townNames:Array.from(l.townNames)})).filter(l=>l.count>1&&l.townNames.length>1);return Ei(i)}function ze(t){return t!=null&&t.coordinates?t.type==="Polygon"?[t.coordinates]:t.type==="MultiPolygon"?t.coordinates:[]:[]}function Ci(t,e){const i=Ft(t),l=Ft(e);return i{a.points.forEach(f=>{const g=Ft(f),S=e.get(g)||[];S.push(s),e.set(g,S)})});const i=new Set,l=[];return t.forEach((a,s)=>{if(i.has(s))return;i.add(s);const f=[a.points[0],a.points[1]];Ye(f,e,t,i,!0),Ye(f,e,t,i,!1),l.push({points:f,townNames:a.townNames})}),l}function Ye(t,e,i,l,a){for(;t.length;){const s=a?t[0]:t[t.length-1],f=Ft(s),g=(e.get(f)||[]).filter(L=>!l.has(L));if(g.length!==1)return;const S=g[0],_=i[S];l.add(S);const[F,C]=_.points,T=Ft(F)===f?C:F;a?t.unshift(T):t.push(T)}}function Fi(){if(!o||!u.length)return;V(ut);const t=window.Cesium;Pi(t),u.forEach(e=>{const l=(Array.isArray(e==null?void 0:e[0])?e[0]:[]).map(Y).filter(Boolean);if(l.length<3)return;const a=zt(e);if(a){const g=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#20EAF2").withAlpha(.026),outline:!1,classificationType:t.ClassificationType.BOTH}});ut.push(g)}const s=o.entities.add({polyline:{positions:ge(l,be),width:4.8,material:new t.PolylineGlowMaterialProperty({glowPower:.16,color:t.Color.fromCssColorString("#78FFF7").withAlpha(.48)}),depthFailMaterial:t.Color.fromCssColorString("#78FFF7").withAlpha(.32),clampToGround:!1,zIndex:8}});s.__hyBoundaryRole="county-halo";const f=o.entities.add({polyline:{positions:ge(l,be+80),width:1.9,material:t.Color.fromCssColorString("#F2FFFB").withAlpha(.98),depthFailMaterial:t.Color.fromCssColorString("#F2FFFB").withAlpha(.9),clampToGround:!1,zIndex:9}});f.__hyBoundaryRole="county-outline",ut.push(s,f)}),o.scene.requestRender()}function Pi(t){const e=Ti();let i=[];try{i=Qt.difference([e],u)}catch(l){console.warn("[cesium-map] county outside mask failed",l),i=[e]}i.forEach(l=>{const a=zt(l);if(!a)return;const s=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#020A10").withAlpha(.52),outline:!1,perPositionHeight:!1,heightReference:t.HeightReference.CLAMP_TO_GROUND,classificationType:t.ClassificationType.BOTH,zIndex:1}});ut.push(s)})}function Ti(){const t=G.west-Wn,e=G.south-Hn,i=G.east+Wn,l=G.north+Hn;return[[[t,e],[i,e],[i,l],[t,l],[t,e]]]}function Ii(t,e=!1){const i=(Array.isArray(t)?t:[t]).map(Rt=>String(Rt||"").trim()).filter(Boolean).slice(0,2),l=`v15-centered-map-badge:${e?"h":"n"}:${i.join("|")}`;if(Et.has(l))return Et.get(l);const a=document.createElement("canvas"),s=a.getContext("2d");if(!s)return{image:"",width:1,height:1};const f=Math.min(4,Math.max(3,window.devicePixelRatio||2)),g="700 14px Microsoft YaHei, PingFang SC, sans-serif",S="700 9px Microsoft YaHei, PingFang SC, sans-serif",_="800 14px Microsoft YaHei, PingFang SC, sans-serif",F="600 9px Microsoft YaHei, PingFang SC, sans-serif",C=Ri(i[1]);s.font=g;const T=Math.ceil(s.measureText(i[0]||"").width);let L=0;C&&(s.font=S,L+=Math.ceil(s.measureText(C.metric).width),s.font=_,L+=Math.ceil(s.measureText(C.value).width),s.font=F,L+=Math.ceil(s.measureText(C.unit).width),L+=C.metric?5:0,L+=C.unit?4:0);const H=Math.min(118,Math.max(C?96:62,T+20,L+20)),A=C?40:25,Q=C?5:0,st=6,et=H+st*2,ht=A+Q+st*2;a.width=Math.ceil(et*f),a.height=Math.ceil(ht*f),a.style.width=`${et}px`,a.style.height=`${ht}px`,s.scale(f,f),s.clearRect(0,0,et,ht);const X=st,rt=st,Nt=rt+A,bt=s.createLinearGradient(X,rt,X,Nt);bt.addColorStop(0,e?"rgba(8, 58, 70, 0.9)":"rgba(6, 45, 57, 0.78)"),bt.addColorStop(.55,e?"rgba(4, 34, 46, 0.88)":"rgba(3, 29, 41, 0.76)"),bt.addColorStop(1,e?"rgba(2, 22, 32, 0.88)":"rgba(2, 18, 29, 0.78)"),s.save(),s.shadowColor="rgba(48, 220, 255, 0.13)",s.shadowBlur=6,s.fillStyle=bt,Ve(s,X,rt,H,A),s.fill(),s.restore(),s.save(),s.globalCompositeOperation="lighter";const Jt=s.createLinearGradient(X,rt,X+H,rt);Jt.addColorStop(0,"rgba(42, 210, 255, 0)"),Jt.addColorStop(.5,e?"rgba(98, 246, 255, 0.34)":"rgba(98, 246, 255, 0.26)"),Jt.addColorStop(1,"rgba(42, 210, 255, 0)"),s.strokeStyle=Jt,s.lineWidth=1,s.beginPath(),s.moveTo(X+10,rt+2),s.lineTo(X+H-10,rt+2),s.stroke(),s.restore(),s.save(),s.strokeStyle=e?"rgba(126, 251, 246, 0.58)":"rgba(126, 251, 246, 0.46)",s.lineWidth=.9,Ve(s,X+.5,rt+.5,H-1,A-1),s.stroke(),s.restore();const Mt=X+H/2;Q>0&&(s.save(),s.shadowColor="rgba(48, 220, 255, 0.2)",s.shadowBlur=5,s.beginPath(),s.moveTo(Mt-5,Nt-1),s.lineTo(Mt+5,Nt-1),s.lineTo(Mt,Nt+Q),s.closePath(),s.fillStyle=e?"rgba(4, 42, 52, 0.98)":"rgba(3, 31, 43, 0.96)",s.fill(),s.strokeStyle=e?"rgba(126, 251, 246, 0.48)":"rgba(126, 251, 246, 0.34)",s.lineWidth=.8,s.stroke(),s.restore()),s.save(),s.textAlign="center",s.textBaseline="alphabetic",s.fillStyle="rgba(255, 255, 255, 0.98)",s.strokeStyle="rgba(0, 8, 14, 0.98)",s.lineJoin="round",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,s.font=g,s.lineWidth=1.6;const rr=rt+(C?12.5:A/2);if(jt(s,i[0]||"",Mt,rr),C){const Rt=rt+29.5;let kt=Mt-L/2;s.textAlign="left",s.shadowBlur=0,s.font=S,s.lineWidth=1.2,s.fillStyle="rgba(126, 251, 246, 0.9)",C.metric&&(jt(s,C.metric,kt,Rt,{stroke:!1}),s.font=S,kt+=Math.ceil(s.measureText(C.metric).width)+5),s.font=_,s.lineWidth=1.4,s.fillStyle="#FFFFFF",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,jt(s,C.value,kt,Rt),s.shadowBlur=0,kt+=Math.ceil(s.measureText(C.value).width)+(C.unit?4:0),C.unit&&(s.font=F,s.fillStyle="rgba(232, 252, 255, 0.76)",jt(s,C.unit,kt,Rt+1,{stroke:!1}))}s.restore();const xn={image:a.toDataURL("image/png"),width:et,height:ht};return Et.set(l,xn),xn}function jt(t,e,i,l,a={}){const s=t.measureText(e),f=Mi(t.font),g=Number(s.actualBoundingBoxAscent)||f*.74,S=Number(s.actualBoundingBoxDescent)||f*.18,_=l+(g-S)/2;a.stroke!==!1&&t.lineWidth>0&&t.strokeText(e,i,_),t.fillText(e,i,_)}function Mi(t){const e=String(t||"").match(/(\d+(?:\.\d+)?)px/);return e?Number(e[1]):14}function Ri(t){const e=String(t||"").trim();if(!e)return null;const i=e.match(/^(.+?)\s+([+-]?\d[\d,.]*)(.*)$/u);if(i)return{metric:i[1].trim(),value:i[2].trim(),unit:i[3].trim()};const l=e.match(/^(.*?)([+-]?\d[\d,.]*)([\u4e00-\u9fa5A-Za-z/%]+)?$/u);return l?{metric:l[1].trim(),value:l[2].trim(),unit:(l[3]||"").trim()}:{metric:"",value:e,unit:""}}function Ve(t,e,i,l,a){const s=Math.min(7,l*.12,a*.34);t.beginPath(),t.moveTo(e+s,i),t.lineTo(e+l-s,i),t.lineTo(e+l,i+s),t.lineTo(e+l,i+a-s),t.lineTo(e+l-s,i+a),t.lineTo(e+s,i+a),t.lineTo(e,i+a-s),t.lineTo(e,i+s),t.closePath()}function oe(){var f;if(!o)return;V(q);const t=window.Cesium,e=c.mapRanking||{},i=Array.isArray(e.rows)?e.rows:[],l=new Map(i.map(g=>[ct(g.name),g])),a=e.showTownNames!==!1&&e.hideTownNames!==!0,s=(f=e.hideTownLabelStats)!=null?f:c.hideTownLabelStats;a&&bn.forEach(g=>{const S=l.get(ct(g.name)),_=[g.name];if(!s&&S&&e.showMapLabels!==!1){const H=e.metricLabel?`${e.metricLabel} `:"";_.push(`${H}${ir(S.value)}${S.unit||e.unit||""}`)}const F=Y(g.center);if(!F)return;const C=Ii(_,!!S),T=!!(s||_.length===1),L=o.entities.add({position:t.Cartesian3.fromDegrees(F[0],F[1],18),billboard:{image:C.image,width:C.width,height:C.height,scale:1,verticalOrigin:T?t.VerticalOrigin.CENTER:t.VerticalOrigin.BOTTOM,horizontalOrigin:t.HorizontalOrigin.CENTER,pixelOffset:T?new t.Cartesian2(0,0):new t.Cartesian2(0,-4),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new t.NearFarScalar(2e4,.94,36e4,.8),distanceDisplayCondition:new t.DistanceDisplayCondition(0,42e4)}});L.__hyTownName=g.name,L.__hyRankingRow=S||null,q.push(L)}),i.filter(g=>wt(g)).forEach(g=>{const S=wt(g),_=o.entities.add({position:t.Cartesian3.fromDegrees(S[0],S[1],16),point:{pixelSize:9,color:t.Color.fromCssColorString("#35F3FF"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:e.showPointMarkers===!1?void 0:{text:String(g.name||""),font:"600 12px PingFang SC, Microsoft YaHei, sans-serif",fillColor:t.Color.WHITE,outlineColor:t.Color.fromCssColorString("#03121e"),outlineWidth:3,style:t.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new t.Cartesian2(0,-18),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}});_.__hyTownName=g.name,_.__hyRankingRow=g,q.push(_)}),o.scene.requestRender()}function ki(){if(!o)return;const t=window.Cesium;x=new t.ScreenSpaceEventHandler(o.scene.canvas),x.setInputAction(e=>ft(this,null,function*(){var F,C,T;const i=Li(e.position),l=Ai(i);if(!l)return;const a=t.Cartographic.fromCartesian(l),s={lng:t.Math.toDegrees(a.longitude),lat:t.Math.toDegrees(a.latitude),height:a.height},f=$e(i);if(O){Hi(s);return}p("map-click",{lngLat:s,screen:f,overlayLayer:N.value[0]||null});const g=o.scene.pick(i),S=g==null?void 0:g.id;if(c.enableTownPolygonPick&&(S!=null&&S.__hyTownName)&&ue(S.__hyTownName))return;if(c.enableTownPolygonPick){const L=Oi(s);if(L&&ue((F=L.properties)==null?void 0:F.name))return}const _=Ui(s,f)||S;if(_!=null&&_.__hyFeature){se(_),p("feature-info",{feature:{id:_.__hyFeature.id,properties:_.__hyFeature.properties||{},feature:_.__hyFeature,geometry:_.__hyFeature.geometry||null,layer:_.__hyLayer,lngLat:s},screen:f});return}if(c.enableImageryFeaturePick&&B.length){p("feature-loading",!0);try{const L=o.camera.getPickRay(i),H=yield o.imageryLayers.pickImageryLayerFeatures(L,o.scene),A=H==null?void 0:H[0];if(A){const Q=B.find(Nt=>{var bt;return Nt.imageryProvider===((bt=A.imageryLayer)==null?void 0:bt.imageryProvider)})||B[B.length-1],st=(Q==null?void 0:Q.__hyLayer)||N.value[0],et=A.properties||((C=A.data)==null?void 0:C.properties)||A.data||{},X=hi(A,et,st,s);Je(X)||tt(),p("feature-info",{feature:{id:X.id||et.id||et.fid||A.name,properties:X.properties||et,feature:X.feature||A,geometry:X.geometry||((T=X.feature)==null?void 0:T.geometry)||null,layer:st,lngLat:s},screen:f})}else tt(),p("feature-info",{feature:null,screen:f})}catch(L){tt(),p("feature-info",{feature:null,screen:f})}finally{p("feature-loading",!1)}}}),t.ScreenSpaceEventType.LEFT_CLICK)}function Li(t){var T,L,H,A;if(!t||!((T=o==null?void 0:o.scene)!=null&&T.canvas))return t;const e=window.Cesium,i=o.scene.canvas,l=(L=i.getBoundingClientRect)==null?void 0:L.call(i),a=Number(l==null?void 0:l.width)||0,s=Number(l==null?void 0:l.height)||0,f=Number(i.clientWidth||((H=d.value)==null?void 0:H.clientWidth))||a||1,g=Number(i.clientHeight||((A=d.value)==null?void 0:A.clientHeight))||s||1,S=Number(t.x),_=Number(t.y);if(!Number.isFinite(S)||!Number.isFinite(_)||!a||!s)return t;const F=f/a,C=g/s;return Math.abs(F-1)<.001&&Math.abs(C-1)<.001?t:new e.Cartesian2(S*F,_*C)}function $e(t){var _,F,C,T;if(!t||!((_=o==null?void 0:o.scene)!=null&&_.canvas))return null;const e=o.scene.canvas,i=(F=e.getBoundingClientRect)==null?void 0:F.call(e),l=Number(i==null?void 0:i.width)||0,a=Number(i==null?void 0:i.height)||0,s=Number(e.clientWidth||((C=d.value)==null?void 0:C.clientWidth))||l||1,f=Number(e.clientHeight||((T=d.value)==null?void 0:T.clientHeight))||a||1,g=Number(t.x),S=Number(t.y);return!Number.isFinite(g)||!Number.isFinite(S)||!i?null:{x:(Number(i.left)||0)+g*(l/s),y:(Number(i.top)||0)+S*(a/f)}}function Ai(t){if(!o)return null;const e=o.camera.getPickRay(t);return e?o.scene.globe.pick(e,o.scene):null}function se(t){var e,i,l,a,s;tt(),M=t,t.point&&(t.__hyOriginalPointSize=t.point.pixelSize,t.point.pixelSize=18),(e=t.__hyFeature)!=null&&e.geometry&&["Polygon","MultiPolygon","LineString","MultiLineString"].includes(t.__hyFeature.geometry.type)&&Yt(t.__hyFeature,{townName:t.__hyTownName||((l=(i=t.__hyFeature)==null?void 0:i.properties)==null?void 0:l.name),mode:"feature"}),(s=(a=o==null?void 0:o.scene)==null?void 0:a.requestRender)==null||s.call(a)}function tt(){var t,e;M!=null&&M.point&&M.__hyOriginalPointSize&&(M.point.pixelSize=M.__hyOriginalPointSize),M=null,V(Z),Ue(),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Yt(t,e={}){var C,T,L,H;if(!o||!(t!=null&&t.geometry))return[];const i=vi({append:e.append===!0});if(!i)return[];const l=window.Cesium,a=e.mode==="town",s=e.highlightTone==="white"||e.mode==="white",f=e.highlightTone==="v21",g=a?"#30DCFF":s?"#FFFFFF":f?"#FFD166":"#FF2D2D",S=a?"#F2FFFF":s?"#FFFFFF":f?"#FFF1B8":"#FF2D2D",_={fill:l.Color.fromCssColorString(g).withAlpha((C=e.fillAlpha)!=null?C:a?.16:s?.035:f?.2:.16),stroke:l.Color.fromCssColorString(S).withAlpha((T=e.strokeAlpha)!=null?T:s?.9:.98),lineWidth:(L=e.lineWidth)!=null?L:a?4.2:s?3.8:f?4.4:5.2,pointSize:a?0:(H=e.pointSize)!=null?H:14},F=Ze(t.geometry,t,i.entities,_);return F.forEach(A=>{var Q;A.__hyFeature=null,A.__hyLayer=null,A.__hyTownName=e.townName||((Q=t.properties)==null?void 0:Q.name)||"",A.__hySelectedOverlay=!0}),Z.push(...F),qe(i),F}function vi(t={}){return!o||!window.Cesium?null:(t.append&&W||(Ue(),W=new window.Cesium.CustomDataSource("selected-feature-overlay"),o.dataSources.add(W),qe(W)),W)}function Ue(){var e,i;if(!(o!=null&&o.dataSources)){W=null;return}Array.from(new Set([W,...((i=(e=o.dataSources).getByName)==null?void 0:i.call(e,"selected-feature-overlay"))||[]].filter(Boolean))).forEach(l=>{try{o.dataSources.remove(l,!0)}catch(a){console.warn("[cesium-map] remove selected overlay failed",a)}}),W=null,Z=[]}function qe(t){var e,i;if(!(!(o!=null&&o.dataSources)||!t))try{if(o.dataSources.raiseToTop){o.dataSources.raiseToTop(t);return}for(;((i=(e=o.dataSources).indexOf)==null?void 0:i.call(e,t)){const S=i.add(g);return S.__hyFeature=e,s.push(S),S};if(t.type==="Point"){const g=Y(t.coordinates);return!g||l.pointSize<=0||f({position:a.Cartesian3.fromDegrees(g[0],g[1]),point:{show:!0,color:l.fill,pixelSize:l.pointSize,outlineColor:l.stroke,outlineWidth:3,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),s}return t.type==="MultiPoint"?(t.coordinates.forEach(g=>{s.push(...Ze({type:"Point",coordinates:g},e,i,l))}),s):t.type==="LineString"?(le(t.coordinates,e,i,l,s),s):t.type==="MultiLineString"?(t.coordinates.forEach(g=>{le(g,e,i,l,s)}),s):t.type==="Polygon"?(Xe(t.coordinates,e,i,l,s),s):(t.type==="MultiPolygon"&&t.coordinates.forEach(g=>{Xe(g,e,i,l,s)}),s)}function Xe(t,e,i,l,a){const s=window.Cesium,f=zt(t);if(!f)return;const g=i.add({polygon:{hierarchy:f,height:0,heightReference:s.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,clampToGround:!0,material:l.fill,outline:!1,classificationType:s.ClassificationType.BOTH,zIndex:999}});g.__hyFeature=e,a.push(g),t.forEach(S=>le(S,e,i,l,a))}function le(t,e,i,l,a){const s=window.Cesium,f=_t(t);if(f.length<2)return;const g=i.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,heightReference:s.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,classificationType:s.ClassificationType.BOTH,zIndex:1e3}});g.__hyFeature=e,a.push(g)}function Je(t,e={}){var s,f,g,S,_;if(!o||!t)return!1;const i=t.properties||((s=t.feature)==null?void 0:s.properties)||(typeof t=="object"?t:{}),l=j(t.geometry||((f=t.feature)==null?void 0:f.geometry)||i.geometry||i.geom||i.wkt||t);if(!l)return!1;tt();const a={type:"Feature",id:t.id||((g=t.feature)==null?void 0:g.id)||i.id,properties:i,geometry:l};return Yt(a,lt({mode:"feature"},e)),(_=(S=o==null?void 0:o.scene)==null?void 0:S.requestRender)==null||_.call(S),Z.length>0}function Bi(t){const e=ct(t);return e&&(xe.features||[]).find(i=>{var l;return ct((l=i==null?void 0:i.properties)==null?void 0:l.name)===e})||null}function ae(){var t,e;return((t=c.mapRanking)==null?void 0:t.scope)==="town"&&Array.isArray((e=c.mapRanking)==null?void 0:e.rows)&&c.mapRanking.rows.length>0}function Ke(t){var i;if(!ae())return!1;const e=ct(t);return(((i=c.mapRanking)==null?void 0:i.rows)||[]).some(l=>ct(l.name)===e)}function Oi(t){return ae()&&(xe.features||[]).find(e=>{var l;const i=(l=e==null?void 0:e.properties)==null?void 0:l.name;return Ke(i)&&cn(t,j(e==null?void 0:e.geometry))})||null}function ue(t,e={}){var l,a,s,f;if(!ae()||!Ke(t))return!1;const i=Bi(t);return i?(tt(),Yt(i,{mode:"town",townName:((l=i.properties)==null?void 0:l.name)||t}),e.emitFeatureInfo!==!1&&p("feature-info",{feature:null}),e.emitStatus!==!1&&p("layer-status",{type:"success",text:`已选中${((a=i.properties)==null?void 0:a.name)||t}`}),(f=(s=o==null?void 0:o.scene)==null?void 0:s.requestRender)==null||f.call(s),!0):!1}function Qe(t,e={}){const i=bn.find(a=>ct(a.name)===ct(t)),l=Y(i==null?void 0:i.center);return l?(e.select&&ue(t,{emitFeatureInfo:!1,emitStatus:!1}),ln(l,42e3),{screen:xt(l)}):null}function tn(t={}){var f,g;const e=qi(t),i=$i(S=>Zi(S,e));if(!i.length)return null;const l=Xi(i),a=Ji(l);tt(),M=i[0],M!=null&&M.point&&(M.__hyOriginalPointSize=M.point.pixelSize,M.point.pixelSize=18),a.forEach((S,_)=>{Yt(S,{mode:"feature",highlightTone:e.highlightTone,append:_>0})});const s=ye(l);return s?$t(s,.9):o.flyTo(i[0],{duration:.9,offset:Tt(18e3)}),(g=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||g.call(f),{entity:i[0],entities:i,feature:l[0]||i[0].__hyFeature,features:l,highlightFeatures:a,screen:Vt(a.length?a:l)}}function en(t={}){const e=wt(t);let i=fe(l=>Ut(l,t));return i?(se(i),o.flyTo(i,{duration:.9,offset:Tt(16e3)})):e&&ln(e,16e3),{feature:(i==null?void 0:i.__hyFeature)||null,screen:ce(t)}}function nn(t={}){const e=fe(i=>Ut(i,t));return e?(se(e),o.flyTo(e,{duration:.9,offset:Tt(18e3)}),{feature:e.__hyFeature,screen:Pt(e.__hyFeature)}):null}function Pt(t){var i;const e=nr(j((t==null?void 0:t.geometry)||((i=t==null?void 0:t.feature)==null?void 0:i.geometry)));return e?xt(e):null}function rn(t){return Vt([t])||Pt(t)}function Vt(t=[]){const e=[];if((Array.isArray(t)?t:[t]).forEach(a=>{var S,_;const s=(a==null?void 0:a.properties)||((S=a==null?void 0:a.feature)==null?void 0:S.properties)||{},f=j((a==null?void 0:a.geometry)||((_=a==null?void 0:a.feature)==null?void 0:_.geometry)||s.geometry||s.geom||s.wkt||s.geo||s.the_geom||s.geometryWkt||s.geometry_wkt||s.shape);if(!f){const F=Pt(a);F&&e.push(F);return}const g=[];Xt(f.coordinates,g),e.push(...g.map(xt).filter(Boolean))}),!e.length)return null;const i=e.map(a=>Number(a.x)).filter(Number.isFinite),l=e.map(a=>Number(a.y)).filter(Number.isFinite);return!i.length||!l.length?null:{x:(Math.min(...i)+Math.max(...i))/2,y:Math.min(...l)}}function ce(t={}){var a,s;const e=wt(t);if(e)return xt(e);const i=fe(f=>Ut(f,t)),l=(s=(a=i==null?void 0:i.position)==null?void 0:a.getValue)==null?void 0:s.call(a,window.Cesium.JulianDate.now());return l?toLogicalScreen(window.Cesium.SceneTransforms.wgs84ToWindowCoordinates(o.scene,l)):null}function on(t={}){var f,g;sn();const e=Ki(t.grasslands||t),i=t.highlightTone==="white",l=i?null:{fillColor:"#FF3B30",strokeColor:"#FF3B30",fillAlpha:.1,strokeAlpha:.68,lineWidth:12},a=i?{fillColor:"#F7FFFF",strokeColor:"#F7FFFF",fillAlpha:.025,strokeAlpha:.9,lineWidth:3.8}:{fillColor:"#FF2D2D",strokeColor:"#FFE1E1",fillAlpha:.3,strokeAlpha:1,lineWidth:6.2};t.locateOnly||(e.forEach(S=>{l&&yt(S,{key:"pasture-focus-glow",name:t.name||"牧场高亮"},z,l),yt(S,{key:"pasture-focus",name:t.name||"牧场高亮"},z,a)}),(Array.isArray(t.yakMarks)?t.yakMarks:[]).forEach((S,_)=>{const F=wt(S);F&&yt({type:"Feature",id:S.id||_,properties:lt({},S),geometry:{type:"Point",coordinates:F}},{key:"pasture-focus-yak",name:"牦牛识别"},z,{fillColor:"#FFCB45",strokeColor:"#FFF4B8",pointSize:11})}));const s=ye(e);return s&&$t(s,.9),(g=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||g.call(f),!!e.length}function sn(){var t,e;V(z),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Di(){tt()}function Wi(t){O=!!t,O||(k=[]),he(),p("draw-boundary",{status:O?"drawing":"clear",pointCount:k.length,points:k})}function Hi(t){k.push([t.lng,t.lat]),he(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function Gi(){k.pop(),he(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function zi(){if(k.length<3)return null;const t=ke(),e=[...k,k[0]],i={type:"Feature",properties:{source:"drawn"},geometry:{type:"Polygon",coordinates:[e]}};return O=!1,k=[],V(U),yt(i,{key:"analysis-boundary",name:"分析边界"},U,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.12,strokeAlpha:1,lineWidth:3}),p("draw-boundary",{status:"complete",pointCount:0,points:[],feature:i}),Wt(t),Le(t),i}function ji(){var t,e;O=!1,k=[],V(U),V(it),p("draw-boundary",{status:"clear",pointCount:0,points:[]}),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function he(){if(!o)return;const t=window.Cesium;V(U),k.forEach(e=>{U.push(o.entities.add({position:t.Cartesian3.fromDegrees(e[0],e[1],12),point:{pixelSize:10,color:t.Color.fromCssColorString("#24F6C4"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}),k.length>1&&U.push(o.entities.add({polyline:{positions:_t(k),width:3,material:t.Color.fromCssColorString("#24F6C4"),clampToGround:!0}})),o.scene.requestRender()}function Yi(t={}){var a,s,f,g,S,_,F;const e=((a=t.boundary)==null?void 0:a.type)==="Feature"||(s=t.boundary)!=null&&s.geometry?t.boundary:null,i=t.preserveView===!0||((f=e==null?void 0:e.properties)==null?void 0:f.source)==="drawn",l=i?ke():null;if(i&&((S=(g=o==null?void 0:o.camera)==null?void 0:g.cancelFlight)==null||S.call(g)),V(it),e&&yt(e,{key:"analysis-result-boundary"},it,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.1,lineWidth:3}),(Array.isArray(t.matches)?t.matches:[]).forEach(C=>{const T=(C==null?void 0:C.type)==="Feature"?C:(C==null?void 0:C.feature)||null;T&&yt(T,{key:"analysis-result-feature"},it,{fillColor:"#30DCFF",strokeColor:"#C9FBFF",fillAlpha:.1,lineWidth:2.6})}),i)Wt(l),Le(l);else{const C=[e,...t.matches||[]].filter(Boolean),T=ye(C);T&&$t(T,.9)}(F=(_=o==null?void 0:o.scene)==null?void 0:_.requestRender)==null||F.call(_)}function ln(t,e=22e3,i=.9){if(!o||!t)return;const l=window.Cesium,a=l.Cartesian3.fromDegrees(t[0],t[1],3600);o.camera.flyToBoundingSphere(new l.BoundingSphere(a,1),{offset:Tt(e),duration:i})}function $t(t,e=.9){if(!o||!t)return;const i=window.Cesium,l=[(Number(t.west)+Number(t.east))/2,(Number(t.south)+Number(t.north))/2];if(!l.every(Number.isFinite))return;const a=Math.max(Math.abs(Number(t.east)-Number(t.west)),Math.abs(Number(t.north)-Number(t.south))),s=Math.max(18e3,Math.min(16e4,a*135e3)),f=i.Cartesian3.fromDegrees(l[0],l[1],2600);o.camera.flyToBoundingSphere(new i.BoundingSphere(f,1),{offset:Tt(s),duration:e})}function Vi(t){if(!o||!t)return;const e=t.mapView||(t.cameraPosition?{cameraPosition:t.cameraPosition}:null);if(!e)return;const i=window.Cesium,l=Number.isFinite(Number(e.duration))?Number(e.duration):.9,a=Y(e.targetLngLat);if(a){const s=ve(c.initialZoom),f=Number.isFinite(Number(e.distanceScale))?Number(e.distanceScale):1,g=Math.max(18e3,Math.min(56e4,s*f)),S=Number.isFinite(Number(e.targetHeight))?Number(e.targetHeight):2600,_=Number.isFinite(Number(e.heading))?Number(e.heading):On,F=Number.isFinite(Number(e.pitch))?Number(e.pitch):Dn,C=i.Cartesian3.fromDegrees(a[0],a[1],S);o.camera.flyToBoundingSphere(new i.BoundingSphere(C,1),{offset:new i.HeadingPitchRange(i.Math.toRadians(_),i.Math.toRadians(F),g),duration:l});return}e.bounds&&$t(e.bounds,l)}function Tt(t){const e=window.Cesium;return new e.HeadingPitchRange(e.Math.toRadians(On),e.Math.toRadians(Dn),t)}function xt(t){if(!o||!t)return null;const e=window.Cesium,i=e.Cartesian3.fromDegrees(t[0],t[1],16);return $e(e.SceneTransforms.wgs84ToWindowCoordinates(o.scene,i))}function fe(t){return[...D,...z].find(e=>e.__hyFeature&&t(e.__hyFeature))||null}function $i(t){return[...D,...z].filter(e=>e.__hyFeature&&t(e.__hyFeature))}function Ui(t,e){if(!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const i=an(D),l=i.map(s=>{var f;return{entity:s,geometry:j((f=s.__hyFeature)==null?void 0:f.geometry)}}).filter(s=>s.geometry&&cn(t,s.geometry)).sort((s,f)=>hn(s.geometry)-hn(f.geometry));if(l.length)return l[0].entity;const a=i.map(s=>{var f;return{entity:s,distance:Qi(j((f=s.__hyFeature)==null?void 0:f.geometry),e)}}).filter(s=>Number.isFinite(s.distance)).sort((s,f)=>s.distance-f.distance)[0];return(a==null?void 0:a.distance)<=18?a.entity:null}function Ut(t,e={}){const i=(t==null?void 0:t.properties)||{},l=[e.id,e.key,e.featureId,e.projectId].filter(_=>_!=null&&_!=="").map(String),a=[t.id,i.id,i.key,i.feature_id,i.project_id].filter(_=>_!=null&&_!=="").map(String);if(l.some(_=>a.includes(_)))return!0;const s=[e.name,e.fullName,e.projectName].filter(Boolean).map(String),f=[i.name,i.fullName,i.project_name,i.projectName].filter(Boolean).map(String);if(s.some(_=>f.includes(_)))return!0;const g=wt(e),S=wt(Lt(lt({},i),{geometry:t.geometry}));return!!(g&&S&&Math.abs(g[0]-S[0])<2e-5&&Math.abs(g[1]-S[1])<2e-5)}function qi(t={}){return t&&typeof t=="object"?t:{name:t,projectName:t,project_name:t}}function Zi(t,e={}){if(Ut(t,e))return!0;const i=(t==null?void 0:t.properties)||{},l=qt([e.id,e.key,e.featureId,e.projectId,e.project_id]),a=qt([t==null?void 0:t.id,i.id,i.key,i.feature_id,i.project_id,i.gid]);if(l.some(g=>a.includes(g)))return!0;const s=qt([e.name,e.fullName,e.projectName,e.project_name,e.title]),f=qt([i.name,i.fullName,i.project_name,i.projectName,i.title]);return s.some(g=>f.includes(g))}function qt(t=[]){const e=[];return t.forEach(i=>{if(i==null||i==="")return;const l=String(i).trim();if(!l)return;e.push(l);const a=l.replace(/\s+/g,"");a&&a!==l&&e.push(a)}),Array.from(new Set(e))}function an(t=[]){const e=new Set;return t.filter(i=>{const l=i==null?void 0:i.__hyFeature;return!l||e.has(l)?!1:(e.add(l),!0)})}function Xi(t=[]){return an(t).map(e=>e.__hyFeature).filter(Boolean)}function Ji(t=[]){const e=t.filter(l=>{var s;const a=String(((s=j(l==null?void 0:l.geometry))==null?void 0:s.type)||"");return a.includes("Polygon")||a.includes("LineString")}),i=e.filter(l=>{var a;return((a=l==null?void 0:l.properties)==null?void 0:a.feature_role)==="工程范围"});return i.length?i:e}function Ki(t){return(Array.isArray(t)?t:(t==null?void 0:t.grasslands)||(t==null?void 0:t.features)||(t==null?void 0:t.rows)||(t==null?void 0:t.list)||(t?[t]:[])).map((i,l)=>{var s,f;if((i==null?void 0:i.type)==="Feature")return i;const a=j(i==null?void 0:i.geometry)||me(De(i));return a?{type:"Feature",id:(f=(s=i==null?void 0:i.id)!=null?s:i==null?void 0:i.grasslandId)!=null?f:l,properties:lt({},i),geometry:a}:null}).filter(Boolean)}function j(t){if(!t)return null;if(t.type==="Feature")return j(t.geometry);if(t.type&&Array.isArray(t.coordinates))return t;if(typeof t=="string"){const e=t.trim();if(!e)return null;if(e.startsWith("{")||e.startsWith("["))try{return j(JSON.parse(e))}catch(i){return null}return me(e)}return null}function me(t){const i=String(t||"").trim().replace(/^SRID=\d+;/i,"").match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*(\(.+\))$/i);if(!i)return null;const l=i[1].toUpperCase(),a=i[2];return l==="POINT"?{type:"Point",coordinates:pe(a)}:l==="MULTIPOINT"?{type:"MultiPoint",coordinates:Zt(a).map(pe).filter(Boolean)}:l==="LINESTRING"?{type:"LineString",coordinates:de(a)}:l==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Zt(a).map(de).filter(s=>s.length)}:l==="POLYGON"?{type:"Polygon",coordinates:un(a)}:l==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Zt(a).map(un).filter(s=>s.length)}:null}function pe(t){const e=String(t||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return e.length===2&&e.every(Number.isFinite)?e:null}function de(t){return String(t||"").replace(/^\(+|\)+$/g,"").split(",").map(pe).filter(Boolean)}function un(t){return Zt(t).map(de).filter(e=>e.length>=3)}function Zt(t){const e=String(t||"").trim(),i=e.startsWith("(")&&e.endsWith(")")?e.slice(1,-1):e,l=[];let a=0,s=-1;return Array.from(i).forEach((f,g)=>{f==="("?(a===0&&(s=g),a+=1):f===")"&&(a-=1,a===0&&s>=0&&(l.push(i.slice(s,g+1)),s=-1))}),l.length?l:[i]}function _t(t=[]){const e=window.Cesium;return t.map(Y).filter(Boolean).map(i=>e.Cartesian3.fromDegrees(i[0],i[1],8))}function ge(t=[],e=be){const i=window.Cesium;return t.map(Y).filter(Boolean).map(l=>i.Cartesian3.fromDegrees(l[0],l[1],e))}function Y(t){if(!Array.isArray(t)||t.length<2)return null;const e=Number(t[0]),i=Number(t[1]);return Number.isFinite(e)&&Number.isFinite(i)?[e,i]:null}function wt(t={}){const e=j(t.geometry);return(e==null?void 0:e.type)==="Point"?Y(e.coordinates):[[t.longitude,t.latitude],[t.lng,t.lat],[t.lon,t.lat],[t.x,t.y],t.point,t.center,t.centroid,t.coordinates].map(Y).find(Boolean)||null}function cn(t,e){return!t||!(e!=null&&e.coordinates)?!1:e.type==="Polygon"?dn(t,e.coordinates):e.type==="MultiPolygon"?e.coordinates.some(i=>dn(t,i)):!1}function hn(t){return t!=null&&t.coordinates?t.type==="Polygon"?fn(t.coordinates):t.type==="MultiPolygon"?t.coordinates.reduce((e,i)=>e+fn(i),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}function fn(t=[]){const e=t[0]||[];if(e.length<3)return Number.POSITIVE_INFINITY;let i=0;for(let l=0;lmn(i,e))):t.type==="LineString"?pn(t.coordinates,e):t.type==="MultiLineString"?Math.min(...t.coordinates.map(i=>pn(i,e))):Number.POSITIVE_INFINITY}function mn(t,e){const i=xt(Y(t));return i?Math.hypot(Number(i.x)-Number(e.x),Number(i.y)-Number(e.y)):Number.POSITIVE_INFINITY}function pn(t=[],e){if(!Array.isArray(t)||t.length<2)return Number.POSITIVE_INFINITY;let i=Number.POSITIVE_INFINITY;for(let l=1;lgn(t,i))}function gn(t,e=[]){if(e.length<3)return!1;const i=Number(t.lng),l=Number(t.lat);if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=!1;for(let s=0,f=e.length-1;sl!=T>l&&i<(C-_)*(l-F)/(T-F)+_&&(a=!a)}return a}function er(t,e,i,l,a,s){const f=(t-i)*(s-l)-(e-l)*(a-i);return Math.abs(f)>1e-10?!1:(t-i)*(t-a)+(e-l)*(e-s)<=1e-10}function nr(t){if(!t)return null;if(t.type==="Point")return Y(t.coordinates);const e=[];return Xt(t.coordinates,e),e.length?[e.reduce((i,l)=>i+l[0],0)/e.length,e.reduce((i,l)=>i+l[1],0)/e.length]:null}function Xt(t,e){const i=Y(t);if(i&&!Array.isArray(t[0])){e.push(i);return}Array.isArray(t)&&t.forEach(l=>Xt(l,e))}function ye(t=[]){const e=[];if(t.forEach(f=>{var S;const g=j((f==null?void 0:f.geometry)||((S=f==null?void 0:f.feature)==null?void 0:S.geometry)||f);g&&Xt(g.coordinates,e)}),!e.length)return null;const i=e.map(f=>f[0]),l=e.map(f=>f[1]),a=Math.max(.006,(Math.max(...i)-Math.min(...i))*.18),s=Math.max(.006,(Math.max(...l)-Math.min(...l))*.18);return{west:Math.max(G.west,Math.min(...i)-a),south:Math.max(G.south,Math.min(...l)-s),east:Math.min(G.east,Math.max(...i)+a),north:Math.min(G.north,Math.max(...l)+s)}}function V(t){if(!o){t.length=0;return}t.splice(0).forEach(e=>o.entities.remove(e))}function yn(){B.splice(0).forEach(t=>{var e,i;return(i=(e=o==null?void 0:o.imageryLayers)==null?void 0:e.remove)==null?void 0:i.call(e,t,!0)}),V(D),tt()}function It(){var t,e,i;I+=1,(t=b==null?void 0:b.disconnect)==null||t.call(b),b=null,P==null||P(),P=null,E==null||E(),E=null,(e=x==null?void 0:x.destroy)==null||e.call(x),x=null,yn(),V(ie),V(ut),V($),V(q),V(z),V(U),V(it),o&&!((i=o.isDestroyed)!=null&&i.call(o))&&o.destroy(),o=null,v=null,w.value=null,y.value&&y.value.replaceChildren()}function St(t,e=1){const i=Number(t);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):e}function ct(t){return String(t||"").trim().replace(/(镇|乡)$/,"")}function ir(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?String(e):String(Number(e.toFixed(2))):"--"}return n({loadMap:Zn,hasMap:Xn,play:Jn,resume:Re,pause:Kn,refreshView:Dt,resetView:Qn,destroyMap:It,highlightFeature:Je,clearSelectedFeature:tt,clearFloatingOverlays:Di,focusProject:tn,focusPasture:on,clearPastureFocus:sn,focusTown:Qe,focusYakIndustryPoint:en,focusVectorFeature:nn,getVectorFeatureAnchorScreen:rn,getVectorFeaturesAnchorScreen:Vt,getVectorFeatureScreen:Pt,getYakIndustryPointScreen:ce,setBoundaryDrawing:Wi,finishBoundaryDrawing:zi,undoBoundaryPoint:Gi,clearAnalysisBoundary:ji,showAnalysisResult:Yi,canvasMap:w}),(t,e)=>(pr(),dr("div",{ref_key:"containerRef",ref:d,class:"cesium-map"},[gr("div",{ref_key:"viewerRef",ref:y,class:"cesium-map__viewer"},null,512)],512))}},oo=cr(Kr,[["__scopeId","data-v-8d7881df"]]);export{ro as C,io as H,oo as M,Vr as a,$r as g}; diff --git a/docs/assets/index-089a3dd0-balabala-1784043664472.css b/docs/assets/index-089a3dd0-balabala-1784043664472.css new file mode 100644 index 0000000..f065545 --- /dev/null +++ b/docs/assets/index-089a3dd0-balabala-1784043664472.css @@ -0,0 +1 @@ +.wisdom-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#dffaff;background:radial-gradient(circle at 50% 45%,rgba(37,161,133,.28),rgba(3,16,28,.18) 35%,rgba(2,8,18,.86) 72%),linear-gradient(180deg,#041324,#030914);pointer-events:auto}.wisdom-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.wisdom-grid{position:absolute;left:430px;right:430px;top:128px;bottom:8px;opacity:.18;background-image:linear-gradient(rgba(48,220,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.14) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at center,#000 42%,transparent 78%);mask-image:radial-gradient(circle at center,#000 42%,transparent 78%)}.wisdom-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(48,220,255,.18);border-radius:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 70px #30dcff0f,0 0 70px #20e8bc14}.wisdom-orbit-a{width:760px;height:760px;animation:wisdomOrbitSpin 24s linear infinite}.wisdom-orbit-b{width:980px;height:260px;border-color:#fad36b29;transform:translate(-50%,-48%) rotate(-9deg);animation:wisdomPulse 6s ease-in-out infinite}.wisdom-scan{position:absolute;left:50%;top:50%;width:620px;height:620px;border-radius:50%;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent,rgba(48,220,255,.2),transparent 24%);opacity:.2;animation:wisdomScanSpin 8s linear infinite}.wisdom-artifact-workspace{position:absolute;left:590px;right:36px;top:112px;bottom:18px;z-index:6;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(48,220,255,.3);background:rgba(3,17,28,.96);box-shadow:inset 0 0 40px #30dcff0d,0 18px 42px #00000047}.wisdom-artifact-header{flex:0 0 62px;min-width:0;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(48,220,255,.18);background:linear-gradient(90deg,rgba(8,48,61,.92),rgba(5,25,37,.82))}.wisdom-artifact-heading,.wisdom-artifact-tools{min-width:0;display:flex;align-items:center;gap:12px}.wisdom-artifact-mark{position:relative;flex:0 0 28px;width:28px;height:28px;border:1px solid rgba(48,220,255,.68);background:rgba(48,220,255,.08)}.wisdom-artifact-mark:before,.wisdom-artifact-mark:after{content:"";position:absolute;background:#30dcff;box-shadow:0 0 10px #30dcff99}.wisdom-artifact-mark:before{left:6px;right:6px;top:8px;height:2px}.wisdom-artifact-mark:after{left:6px;right:10px;top:16px;height:2px}.wisdom-artifact-heading small,.wisdom-artifact-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-artifact-heading small{margin-bottom:3px;color:#30dcffad;font-size:11px}.wisdom-artifact-heading strong{max-width:720px;color:#fff;font-size:17px}.wisdom-artifact-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;color:#dffaffad;font-size:12px}.wisdom-artifact-status i{width:7px;height:7px;border-radius:50%;background:#ffd76c;box-shadow:0 0 10px #ffd76c99}.wisdom-artifact-status.is-ready i{background:#27f0c0;box-shadow:0 0 10px #27f0c099}.wisdom-artifact-status.is-error i{background:#ff956e;box-shadow:0 0 10px #ff956e8f}.wisdom-artifact-tools button,.wisdom-artifact-error button{height:30px;padding:0 12px;border:1px solid rgba(48,220,255,.32);background:rgba(7,43,56,.78);color:#dffaff;font-size:12px;cursor:pointer}.wisdom-artifact-tools button:hover:not(:disabled),.wisdom-artifact-error button:hover:not(:disabled){border-color:#ffd76c9e;color:#fff}.wisdom-artifact-tools button:disabled,.wisdom-artifact-error button:disabled{cursor:not-allowed;opacity:.5}.wisdom-artifact-body{position:relative;flex:1;min-height:0;overflow:hidden}.wisdom-artifact-frame{width:100%;height:100%;display:block;border:0;background:#06131d}.wisdom-artifact-building{height:100%;overflow:hidden;padding:28px;background:linear-gradient(rgba(48,220,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.04) 1px,transparent 1px),#06131d;background-size:36px 36px}.wisdom-artifact-building__intro{display:flex;align-items:center;gap:14px;margin-bottom:24px}.wisdom-artifact-building__intro strong,.wisdom-artifact-building__intro p{display:block;margin:0}.wisdom-artifact-building__intro strong{color:#fff;font-size:18px}.wisdom-artifact-building__intro p{margin-top:4px;color:#dffaff80;font-size:12px}.wisdom-artifact-building__spinner{width:30px;height:30px;border:2px solid rgba(48,220,255,.18);border-top-color:#30dcff;border-radius:50%;animation:wisdomSpin .9s linear infinite}.wisdom-artifact-skeleton{position:relative;height:190px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(8,35,47,.66)}.wisdom-artifact-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(99,239,226,.1),transparent);animation:wisdomArtifactShimmer 1.6s ease-in-out infinite}.wisdom-artifact-skeleton.is-wide{height:96px}.wisdom-artifact-skeleton.is-chart{height:260px;margin-top:14px}.wisdom-artifact-skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.wisdom-artifact-error{height:100%;display:grid;place-content:center;justify-items:center;padding:32px;text-align:center;background:#06131d}.wisdom-artifact-error strong{color:#fff;font-size:20px}.wisdom-artifact-error p{max-width:520px;margin:10px 0 18px;color:#dffaff9e;font-size:13px;line-height:1.7}.wisdom-side{position:absolute;top:112px;bottom:18px;z-index:5;width:clamp(390px,21vw,460px);overflow-y:auto;display:grid;align-content:start;gap:16px;padding:6px 0 10px;box-sizing:border-box;scrollbar-width:none}.wisdom-side::-webkit-scrollbar{width:0;height:0}.wisdom-side-left{left:clamp(24px,2.4vw,52px)}.wisdom-side-right{right:clamp(24px,2.4vw,52px)}.wisdom-side-panel{min-height:0;border:1px solid rgba(48,220,255,.22);background:linear-gradient(135deg,rgba(6,37,50,.9),rgba(4,19,32,.86)),radial-gradient(circle at 18% 0%,rgba(39,240,192,.12),transparent 34%);box-shadow:inset 0 0 24px #30dcff12,0 14px 28px #00000038;padding:15px;box-sizing:border-box}.wisdom-side-panel.is-chart{padding:0;border:0;background:transparent;box-shadow:none}.wisdom-side-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.wisdom-side-header span{display:block;margin-bottom:5px;color:#30dcffb8;font-size:12px}.wisdom-side-header strong{display:block;max-width:220px;color:#fff;font-size:17px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-header em{flex:0 0 auto;padding:3px 8px;border:1px solid rgba(255,215,108,.32);color:#ffd76c;font-size:12px;font-style:normal;background:rgba(255,215,108,.08)}.wisdom-side-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.wisdom-side-metric{min-width:0;padding:10px;border:1px solid rgba(48,220,255,.16);background:rgba(3,22,35,.58);box-sizing:border-box}.wisdom-side-metric span,.wisdom-side-metric em{display:block;color:#dffaff8c;font-size:12px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-metric strong{display:block;margin:4px 0;color:#ffd76c;font-family:D-DIN,Arial,sans-serif;font-size:17px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-text{color:#edfdffe0;font-size:13px;line-height:1.7}.wisdom-side-text h3{margin:0 0 8px;color:#fff;font-size:15px}.wisdom-side-text p{margin:7px 0}.wisdom-side-text ul,.wisdom-side-text ol{margin:8px 0 8px 18px;padding:0}.wisdom-side-text strong{color:#ffd76c}.wisdom-side-actions{display:flex;flex-wrap:wrap;gap:8px}.wisdom-side-text+.wisdom-side-actions,.wisdom-side-metrics+.wisdom-side-actions{margin-top:12px}.wisdom-side-actions button{height:30px;min-width:84px;padding:0 10px;border:1px solid rgba(48,220,255,.28);background:linear-gradient(135deg,rgba(8,48,62,.76),rgba(6,28,43,.76));color:#ffd76ce6;font-size:12px;cursor:pointer}.wisdom-side-actions button:hover:not(:disabled){border-color:#ffd76c9e;color:#fff}.wisdom-side-chart.smart-chart-card{width:100%;height:348px;margin-top:0}.wisdom-side-chart .smart-chart-header{height:58px;padding:10px 13px 0}.wisdom-side-chart .smart-chart-header strong{font-size:15px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-chart .smart-chart-header span,.wisdom-side-chart .smart-chart-header em{font-size:11px}.wisdom-side-chart .smart-chart{height:264px}.wisdom-avatar-ring,.wisdom-empty-mark span{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(48,220,255,.62);border-radius:50%;animation:wisdomSpin 7s linear infinite}.wisdom-avatar-ring:before,.wisdom-empty-mark span:before{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;border-radius:50%;background:#ffd76c;box-shadow:0 0 14px #ffd76ccc}.wisdom-chat{position:absolute;left:50%;top:112px;bottom:18px;z-index:4;width:clamp(720px,100% - 1040px,900px);display:flex;flex-direction:column;min-width:0;transform:translate(-50%)}.wisdom-chat.has-artifact{left:34px;right:auto;width:520px;transform:none}.wisdom-chat.has-artifact .wisdom-bubble{max-width:calc(100% - 46px)}.wisdom-dialogue{flex:1;min-height:0;overflow-y:auto;padding:8px 8px 18px;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.5) rgba(3,18,30,.3)}.wisdom-dialogue.is-empty{display:grid;place-items:center}.wisdom-empty-state{position:relative;width:560px;min-height:280px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.wisdom-empty-mark{position:relative;width:126px;height:126px;display:grid;place-items:center}.wisdom-empty-mark strong{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;color:#071520;font-family:D-DIN,Arial,sans-serif;font-size:34px;background:radial-gradient(circle at 32% 24%,#fff,#9cf8e9 48%,#2bd4cb 100%);box-shadow:0 0 42px #4ef3de61}.wisdom-empty-state h2{margin:18px 0 10px;color:#fff;font-size:28px;letter-spacing:0}.wisdom-empty-state p{margin:0;max-width:420px;color:#dffaffd1;font-size:15px;line-height:1.8}.wisdom-suggestion-list button{height:34px;border:1px solid rgba(48,220,255,.28);background:linear-gradient(135deg,rgba(8,48,62,.78),rgba(6,28,43,.78));color:#dffaffdb;font-size:13px;cursor:pointer;box-shadow:inset 0 0 16px #30dcff0f}.wisdom-suggestion-list button:hover:not(:disabled){border-color:#ffd76c9e;color:#fff;background:linear-gradient(135deg,rgba(48,220,255,.18),rgba(255,215,108,.12))}.wisdom-message{display:flex;margin:14px 0;gap:10px}.wisdom-message.is-user{justify-content:flex-end}.wisdom-message-mark{flex:0 0 36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#06151f;font-weight:800;background:linear-gradient(135deg,#dffaff,#4cf0de);box-shadow:0 0 22px #4ef3de5c}.wisdom-bubble{max-width:min(680px,100% - 48px);box-sizing:border-box;border:1px solid rgba(48,220,255,.18);background:rgba(4,22,34,.92);box-shadow:inset 0 0 24px #30dcff0f,0 14px 34px #00000057;color:#edfdffeb;font-size:14px;line-height:1.7;padding:13px 15px}.smart-chart-loading{width:min(620px,100%);height:292px;margin-top:12px;display:grid;place-items:center;box-sizing:border-box;border:1px solid rgba(48,220,255,.22);background:rgba(4,22,34,.72);color:#ffd76cdb;font-size:13px;box-shadow:inset 0 0 24px #30dcff0f}.wisdom-suggestion-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.wisdom-suggestion-list button{width:auto;min-width:86px;padding:0 12px;color:#ffd76ce6}.wisdom-message.is-user .wisdom-bubble{max-width:min(560px,76%);border-color:#ffd76c42;background:linear-gradient(135deg,rgba(50,115,106,.9),rgba(13,54,65,.86))}.wisdom-steps{display:grid;gap:8px;margin-bottom:10px}.wisdom-step{display:flex;align-items:center;gap:8px;color:#dffaffa3;font-size:13px}.wisdom-step span{width:14px;height:14px;border-radius:50%;border:1px solid rgba(48,220,255,.7);position:relative}.wisdom-step span:after{content:"";position:absolute;left:4px;top:2px;width:4px;height:7px;border-right:2px solid #30dcff;border-bottom:2px solid #30dcff;transform:rotate(40deg)}.wisdom-digesting{display:flex;align-items:center;gap:8px;color:#ffd76ce0}.wisdom-digesting span,.wisdom-button-loading{width:8px;height:8px;border-radius:50%;background:#ffd76c;animation:wisdomBounce 1s ease-in-out infinite}.wisdom-digesting span:nth-child(2){animation-delay:.14s}.wisdom-digesting span:nth-child(3){animation-delay:.28s}.wisdom-digesting em{font-style:normal}.wisdom-answer{color:#edfdfff0}.wisdom-answer h3{margin:12px 0 8px;color:#fff;font-size:17px}.wisdom-answer p{margin:8px 0}.wisdom-answer ul,.wisdom-answer ol{margin:8px 0 8px 20px;padding:0}.wisdom-answer li{margin:4px 0}.wisdom-answer strong{color:#ffd76c}.wisdom-stream-caret{display:inline-block;width:8px;height:18px;margin-left:4px;vertical-align:middle;background:#30dcff;animation:wisdomBlink .8s steps(2,start) infinite}.wisdom-input-bar{flex:0 0 64px;padding:8px 8px 0;box-sizing:border-box}.wisdom-input-shell{height:50px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(135deg,rgba(8,42,55,.92),rgba(3,18,31,.92));box-shadow:inset 0 0 24px #30dcff14,0 0 30px #30dcff1a;display:flex;align-items:center;gap:10px;padding:0 8px 0 16px;box-sizing:border-box}.wisdom-input-shell:focus-within{border-color:#7efbf6c7;box-shadow:inset 0 0 24px #30dcff1a,0 0 0 2px #7efbf61f,0 0 30px #30dcff24}.wisdom-input-icon{width:16px;height:16px;border:2px solid #30dcff;border-radius:50%;position:relative;flex:0 0 auto}.wisdom-input-icon:after{content:"";position:absolute;right:-7px;bottom:-5px;width:8px;height:2px;border-radius:2px;background:#30dcff;transform:rotate(45deg)}.wisdom-input-shell input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:15px}.wisdom-input-shell input::placeholder{color:#dffaff9e}.wisdom-submit-button{width:92px;height:36px;border:1px solid rgba(255,215,108,.46);background:linear-gradient(135deg,rgba(255,215,108,.26),rgba(48,220,255,.12));color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.wisdom-voice-button{position:relative;flex:0 0 auto;width:38px;height:36px;border:1px solid rgba(48,220,255,.32);background:rgba(6,35,49,.76);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.wisdom-voice-button span{position:relative;width:10px;height:17px;border:2px solid #30dcff;border-radius:8px;box-sizing:border-box}.wisdom-voice-button span:before{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:8px;border:2px solid #30dcff;border-top:0;border-radius:0 0 10px 10px;transform:translate(-50%)}.wisdom-voice-button span:after{content:"";position:absolute;left:50%;bottom:-12px;width:12px;height:2px;border-radius:2px;background:#30dcff;transform:translate(-50%)}.wisdom-voice-button.is-listening{border-color:#ffd76c9e;background:rgba(255,215,108,.14);box-shadow:0 0 18px #ffd76c38}.wisdom-voice-button.is-listening span,.wisdom-voice-button.is-listening span:before{border-color:#ffd76c}.wisdom-voice-button.is-listening span:after{background:#ffd76c}.wisdom-submit-button:disabled,.wisdom-voice-button:disabled{cursor:not-allowed;opacity:.62}.wisdom-submit-button:focus-visible,.wisdom-voice-button:focus-visible,.wisdom-suggestion-list button:focus-visible{outline:2px solid #7efbf6;outline-offset:2px}.wisdom-button-loading{width:12px;height:12px;border:2px solid rgba(255,255,255,.34);border-top-color:#fff;background:transparent;animation:wisdomSpin .8s linear infinite}@keyframes wisdomSpin{to{transform:rotate(360deg)}}@keyframes wisdomOrbitSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes wisdomScanSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes wisdomPulse{0%,to{opacity:.36}50%{opacity:.72}}@keyframes wisdomBounce{0%,to{transform:translateY(0);opacity:.42}50%{transform:translateY(-5px);opacity:1}}@keyframes wisdomBlink{50%{opacity:0}}@keyframes wisdomArtifactShimmer{to{transform:translate(100%)}}@media (max-width: 1480px){.wisdom-artifact-workspace{left:430px;right:20px}.wisdom-chat.has-artifact{left:20px;right:auto;width:390px}.wisdom-artifact-heading strong{max-width:520px}.wisdom-side{top:112px;bottom:16px;width:318px}.wisdom-side-left{left:20px}.wisdom-side-right{right:20px}.wisdom-side-chart.smart-chart-card{height:320px}.wisdom-side-chart .smart-chart{height:236px}.wisdom-chat{width:clamp(560px,100% - 760px,760px)}}@media (max-width: 1280px){.wisdom-side{display:none}.wisdom-chat{width:min(860px,100% - 80px)}.wisdom-artifact-workspace{left:374px;right:16px}.wisdom-chat.has-artifact{left:16px;right:auto;width:342px}.wisdom-artifact-heading strong{max-width:360px}.wisdom-artifact-tools{gap:8px}.wisdom-artifact-status{display:none}} diff --git a/docs/assets/index-11333eca-balabala-1784043664472.css b/docs/assets/index-11333eca-balabala-1784043664472.css new file mode 100644 index 0000000..9dc1c9d --- /dev/null +++ b/docs/assets/index-11333eca-balabala-1784043664472.css @@ -0,0 +1 @@ +@charset "UTF-8";.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map canvas{display:block;width:100%;height:100%}.map .yak-industry-point-label{width:172px;min-height:72px;margin-bottom:28px;color:#f2feff;font-size:12px;pointer-events:none;will-change:transform}.map .yak-industry-point-label-wrap{position:relative;width:172px;padding:8px 10px 9px;border:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 56%,transparent);border-radius:4px;background:linear-gradient(120deg,rgba(6,37,49,.88),rgba(3,16,27,.76)),linear-gradient(90deg,color-mix(in srgb,var(--yak-point-color, #24f6c4) 18%,transparent),transparent 72%);box-shadow:0 0 18px color-mix(in srgb,var(--yak-point-color, #24f6c4) 26%,transparent),inset 0 0 14px #30dcff14}.map .yak-industry-point-label-wrap:after{content:"";position:absolute;left:14px;bottom:-9px;width:14px;height:14px;border-right:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);border-bottom:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);background:rgba(3,16,27,.82);transform:rotate(45deg)}.map .yak-industry-point-label-head,.map .yak-industry-point-label-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.map .yak-industry-point-label-head{color:#daf9ffb3;font-size:10px}.map .yak-industry-point-label-head i{width:7px;height:7px;border-radius:50%;background:var(--yak-point-color, #24f6c4);box-shadow:0 0 10px var(--yak-point-color, #24f6c4)}.map .yak-industry-point-label-head span,.map .yak-industry-point-label-name,.map .yak-industry-point-label-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .yak-industry-point-label-name{margin-top:5px;color:#fff;font-size:13px;font-weight:800;line-height:1.35}.map .yak-industry-point-label-meta{margin-top:5px;color:#d3f1f6ad;font-size:10px}.map .yak-industry-point-label-meta strong{flex:0 0 auto;color:#c9fbff;font-size:11px;font-weight:800}.map .info-point{color:#eaffff;font-size:13px;width:178px;min-height:82px;margin-bottom:24px;will-change:transform}.map .info-point-wrap{position:relative;width:178px;padding:8px 10px 9px;border:1px solid rgba(104,236,255,.38);border-radius:5px;background:linear-gradient(120deg,rgba(6,36,48,.92),rgba(4,18,29,.78)),rgba(2,16,25,.82);box-shadow:0 0 18px #30dcff33,inset 0 0 18px #27f0c014;transform:translate(42%,-12%)}.map .info-point-wrap-inner{position:relative}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{position:absolute;left:-18px;content:""}.map .info-point-wrap-inner:before{top:42px;width:16px;height:1px;background:linear-gradient(90deg,rgba(104,236,255,0),rgba(104,236,255,.88))}.map .info-point-wrap-inner:after{top:38px;width:7px;height:7px;border-radius:50%;background:#c9fbff;box-shadow:0 0 8px #30dcff80}.map .info-point-wrap.is-prime{border-color:#30dcff80;background:linear-gradient(120deg,rgba(12,65,83,.7),rgba(4,24,34,.82)),rgba(2,16,25,.86)}.map .info-point-head{display:flex;align-items:center;gap:7px;min-width:0}.map .info-point-head .rank{flex:0 0 auto;color:#c9fbff;font-size:12px;line-height:14px;font-weight:900}.map .info-point-head strong{overflow:hidden;color:#fff;font-size:15px;line-height:18px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .info-point-metric{margin-top:4px;overflow:hidden;color:#a6f4ffc7;font-size:11px;line-height:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.map .info-point-value{display:flex;align-items:baseline;gap:4px;margin-top:2px}.map .info-point-value span{color:#fff;font-size:25px;line-height:28px;font-weight:900;text-shadow:0 0 12px rgba(126,251,246,.6)}.map .info-point-value em{color:#ebfcffc7;font-size:11px;line-height:13px;font-style:normal;font-weight:800}.map .provinces-label-wrap{transform:translate(50%,200%);opacity:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;width:136px;min-height:58px;border:1px solid rgba(126,251,246,.22);border-radius:8px 8px 8px 0;background:rgba(1,19,30,.62);box-shadow:0 0 16px #30dcff29}.map .provinces-label .label-main{min-width:0}.map .provinces-label .label-title{max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7efbf6d1;font-size:10px;line-height:12px;font-weight:500}.map .provinces-label .number{color:#fff;font-size:21px;line-height:25px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:11px;font-weight:400;opacity:.64;padding-left:4px}.map .provinces-label .name{color:#fff;font-size:12px;line-height:14px;font-weight:700;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:22px;font-weight:700;flex:0 0 auto}.map .provinces-label.yellow .no{color:#c9fbff!important;text-shadow:0 0 5px rgba(48,220,255,.42)!important}.map .epidemic-village-label{will-change:transform}.map .epidemic-village-label .epidemic-village-card{position:relative;width:142px;padding:7px 9px 6px;border:1px solid rgba(91,236,235,.42);border-radius:4px;color:#eaffff;background:linear-gradient(90deg,rgba(5,35,45,.92),rgba(2,18,29,.78)),rgba(1,17,27,.86);box-shadow:0 0 16px #2ddeff38,inset 0 0 16px #27f0c014;transform:translate(48%,-12%)}.map .epidemic-village-label .epidemic-village-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(91,236,235,0),rgba(91,236,235,.78))}.map .epidemic-village-label .epidemic-village-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#c9fbff;box-shadow:0 0 8px #30dcff75}.map .epidemic-village-label .epidemic-village-card.is-small{transform:translate(42%,-8%) scale(.92)}.map .epidemic-village-label .village-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.map .epidemic-village-label .village-card-head strong{overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .epidemic-village-label .village-card-head span{flex:0 0 auto;padding:1px 5px 2px;border:1px solid rgba(39,240,192,.28);border-radius:2px;color:#79f8e5;font-size:10px;line-height:11px;background:rgba(39,240,192,.08)}.map .epidemic-village-label .village-card-body{display:flex;align-items:baseline;gap:3px;margin-top:4px;white-space:nowrap}.map .epidemic-village-label .village-card-body .metric{color:#c9fffbc2;font-size:10px;line-height:12px}.map .epidemic-village-label .village-card-body .number{color:#fff;font-size:20px;line-height:22px;font-weight:900;text-shadow:0 0 10px rgba(126,251,246,.7)}.map .epidemic-village-label .village-card-body .unit{color:#e8fcffcc;font-size:10px;line-height:12px;font-weight:700}.map .epidemic-village-label .village-card-foot{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:3px;color:#e2faff9e;font-size:10px;line-height:11px;white-space:nowrap}.map .trade-market-label,.map .trade-flow-label,.map .trade-national-label{color:#fff;will-change:transform;pointer-events:none}.map .trade-national-name{padding:2px 6px;border:1px solid rgba(72,231,255,.24);border-radius:3px;background:rgba(3,23,35,.42);color:#ffffff9e;font-size:10px;line-height:12px;font-weight:800;text-shadow:0 0 6px rgba(48,220,255,.42);white-space:nowrap;transform:translate(-50%,-50%)}.map .trade-market-card{position:relative;width:128px;padding:6px 8px;border:1px solid rgba(139,247,255,.52);border-radius:4px;background:linear-gradient(110deg,rgba(12,68,78,.58),rgba(4,24,34,.58)),rgba(5,20,30,.58);box-shadow:0 0 10px #30dcff24,inset 0 0 10px #30dcff0f;transform:translate(60%)}.map .trade-market-card:before{position:absolute;left:-14px;top:calc(50% - 1px);width:14px;height:1px;content:"";background:linear-gradient(90deg,rgba(255,221,117,0),rgba(255,221,117,.92))}.map .trade-market-card:after{position:absolute;left:-18px;top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;content:"";background:#fff06a;box-shadow:0 0 12px #fff06ae6}.map .trade-market-card .market-title{overflow:hidden;color:#fff;font-size:11px;line-height:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .trade-market-card .market-total{display:flex;align-items:baseline;gap:4px;margin-top:3px}.map .trade-market-card .market-total span{color:#fff;font-size:15px;line-height:18px;font-weight:900;text-shadow:0 0 10px rgba(255,221,117,.6)}.map .trade-market-card .market-total em{color:#ffffffc2;font-size:10px;line-height:12px;font-style:normal}.map .trade-flow-card{position:relative;width:96px;padding:5px 7px;border:1px solid rgba(85,226,255,.32);border-radius:3px;background:linear-gradient(105deg,rgba(4,37,50,.58),rgba(3,17,27,.48)),rgba(1,17,27,.46);box-shadow:0 0 8px #30dcff1f,inset 0 0 8px #27f0c00d;transform:translate(60%)}.map .trade-flow-card.is-left{transform:translate(-66%)}.map .trade-flow-card.is-left:before{right:-10px;left:auto;background:linear-gradient(90deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-left:after{right:-14px;left:auto}.map .trade-flow-card.is-top{transform:translateY(-108%)}.map .trade-flow-card.is-top:before{left:50%;top:auto;bottom:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-top:after{left:calc(50% - 3px);top:auto;bottom:-14px}.map .trade-flow-card.is-bottom{transform:translateY(82%)}.map .trade-flow-card.is-bottom:before{left:50%;top:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card.is-bottom:after{left:calc(50% - 3px);top:-14px}.map .trade-flow-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#30dcff;box-shadow:0 0 10px #30dcffcc}.map .trade-flow-card .flow-head{display:flex;align-items:center;gap:6px;min-width:0}.map .trade-flow-card .flow-head span{flex:0 0 auto;color:#ffe076;font-size:10px;line-height:12px;font-weight:900}.map .trade-flow-card .flow-head strong{overflow:hidden;color:#fff;font-size:10px;line-height:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .trade-flow-card .flow-body{display:flex;align-items:baseline;gap:3px;margin-top:2px}.map .trade-flow-card .flow-body em{color:#fff;font-size:13px;line-height:15px;font-style:normal;font-weight:900;text-shadow:0 0 10px rgba(48,220,255,.55)}.map .trade-flow-card .flow-body b{color:#ffffffc2;font-size:10px;line-height:12px}.map .china-label{color:#fff;font-size:14px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap}.map .china-label .town-stat-label{flex-direction:column;align-items:center;gap:4px;min-width:74px;padding:5px 8px 4px;border-color:#7efbf64d;background:linear-gradient(180deg,rgba(4,33,46,.66),rgba(3,20,32,.56));box-shadow:0 0 10px #30dcff1f;text-align:center;transform:translateY(-50%)}.map .china-label .town-name-row{display:flex;align-items:center;justify-content:center;gap:6px;min-height:18px;line-height:18px}.map .china-label .town-name{color:#fff;font-size:13px;line-height:18px;font-weight:800}.map .china-label .town-rank{display:none;flex:0 0 auto;padding:1px 5px;border:1px solid rgba(126,251,246,.32);border-radius:2px;color:#7efbf6;font-size:10px;line-height:13px;font-weight:700;text-shadow:none;background:rgba(126,251,246,.1)}.map .china-label .town-stat-row{display:none;align-items:baseline;justify-content:center;gap:3px;min-height:18px;line-height:18px}.map .china-label .town-stat-metric{max-width:72px;overflow:hidden;color:#7efbf6e6;font-size:10px;line-height:12px;font-weight:700;text-overflow:ellipsis;text-shadow:none;white-space:nowrap}.map .china-label .town-stat-value{color:#fff;font-size:18px;line-height:18px;font-weight:800;text-shadow:0 0 10px rgba(126,251,246,.72)}.map .china-label .town-stat-unit{color:#e8fcffc2;font-size:10px;line-height:12px;font-weight:600}.map .china-label .town-stat-label.has-stat{min-width:108px}.map .china-label .town-stat-label.has-stat .town-rank,.map .china-label .town-stat-label.has-stat .town-stat-row{display:flex}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.yak-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c;height:100%;overscroll-behavior:none}.yak-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;background:transparent!important}.yak-map-scene>canvas{display:block;width:100%!important;height:100%!important}.yak-map-scene>div{width:100%!important;height:100%!important}.yak-map-scene .china-label .town-stat-label{transform:translateY(-50%) scale(.92)}.yak-ol-map-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.yak-management-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.yak-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 42%,rgba(1,9,15,.22) 74%,rgba(1,8,13,.58) 100%),linear-gradient(90deg,rgba(0,12,20,.36),transparent 24%,transparent 76%,rgba(0,12,20,.36)),linear-gradient(180deg,rgba(2,16,27,.02),rgba(2,13,22,.22))}.yak-map-scrim.is-ol-map{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 58%,rgba(1,9,15,.16) 82%,rgba(1,8,13,.42) 100%),linear-gradient(90deg,rgba(0,12,20,.24),transparent 22%,transparent 78%,rgba(0,12,20,.24)),linear-gradient(180deg,rgba(2,16,27,.01),rgba(2,13,22,.12))}.yak-left,.yak-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.yak-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.yak-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.yak-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.yak-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.yak-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.yak-side-card{flex:0 0 auto}.yak-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.trade-source-card .m-card-bd-content{top:38px;bottom:8px}.yak-chart{width:100%;height:100%;box-sizing:border-box}.forecast-trend-card,.structure-chart-card{position:relative;width:100%;height:100%}.breeding-health-card{display:grid;grid-template-rows:34px minmax(0,1fr);gap:9px;height:100%;padding:10px 13px;overflow:hidden;box-sizing:border-box}.breeding-health-head{display:flex;align-items:center;min-width:0;padding:0 12px;border-left:3px solid rgba(48,220,255,.72);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.12),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.035));box-sizing:border-box}.breeding-health-head strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:16px;line-height:20px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.62)}.breeding-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;min-height:0}.breeding-health-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:18px 14px 6px;align-content:center;gap:2px 6px;min-width:0;min-height:0;padding:7px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.13);background:linear-gradient(90deg,color-mix(in srgb,var(--health-color) 16%,transparent),rgba(5,27,41,.32)),rgba(3,25,40,.18);box-sizing:border-box}.breeding-health-item span,.breeding-health-item strong,.breeding-health-item em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breeding-health-item span{color:#e5fdffd6;font-size:12px;line-height:15px;font-weight:800}.breeding-health-item strong{color:color-mix(in srgb,var(--health-color) 82%,#ffffff);font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:18px;font-weight:900;text-align:right}.breeding-health-item i{grid-column:1/3;position:relative;z-index:1;display:block;height:4px;overflow:hidden;background:rgba(48,220,255,.12)}.breeding-health-item i b{display:block;width:var(--health-width);height:100%;background:var(--health-color);box-shadow:0 0 5px color-mix(in srgb,var(--health-color) 34%,transparent)}.breeding-health-item em{grid-column:1/3;grid-row:2;color:color-mix(in srgb,var(--health-color) 74%,#ffffff);font-size:11px;line-height:13px;font-style:normal}.structure-ratio-card{display:grid;grid-template-columns:146px minmax(0,1fr);align-items:center;gap:10px;height:100%;overflow:hidden;padding:2px 10px 6px 8px;box-sizing:border-box}.structure-ratio-chart{position:relative;width:142px;height:132px;min-width:0}.structure-ratio-chart svg{width:100%;height:100%;overflow:visible}.structure-ratio-list{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;gap:5px;overflow:hidden}.structure-ratio-row{position:relative;display:grid;grid-template-columns:11px minmax(0,1fr) 50px 16px;align-items:center;gap:6px;min-width:0;min-height:22px;height:23px;padding:0 5px 0 3px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.055);color:#e1f9ffc2;font-size:10px;line-height:13px;box-sizing:border-box;transition:background .35s ease,border-color .35s ease}.structure-ratio-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.18;pointer-events:none}.structure-ratio-row i{position:relative;z-index:1;width:9px;height:9px;border:1px solid #30dcff;border-radius:50%;box-sizing:border-box;box-shadow:none}.structure-ratio-row span{position:relative;z-index:1;display:flex;align-items:baseline;gap:4px;min-width:0;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:15px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-ratio-row span small{flex:none;color:color-mix(in srgb,var(--row-color) 78%,rgba(255,255,255,.65));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;font-weight:800;line-height:12px}.structure-ratio-row strong{position:relative;z-index:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:800;line-height:20px;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-ratio-row em{position:relative;z-index:1;color:#ffffff8a;font-size:10px;font-style:normal;white-space:nowrap}.structure-ratio-row.is-active{color:var(--row-color);border-color:#30dcff38;background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04))}.structure-rose-segment{opacity:.92;stroke-width:1.5;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;transition:opacity .3s ease,filter .3s ease,transform .3s ease;filter:drop-shadow(0 2px 2px rgba(0,10,18,.34)) drop-shadow(0 0 3px rgba(48,220,255,.12))}.structure-rose-segment.is-active{opacity:1;transform:scale(1.035);filter:drop-shadow(0 3px 5px rgba(0,10,18,.42)) drop-shadow(0 0 5px rgba(48,220,255,.22))}.structure-rose-glow{fill:#30dcff12;stroke:#30dcff2e;stroke-width:1;filter:none}.structure-rose-hole{fill:#03121ef0;stroke:#e3fdff38;stroke-width:1.2}.structure-rose-center{fill:#e7feffdb;font-size:10px;font-weight:800;dominant-baseline:middle;pointer-events:none}.structure-rose-center.is-sub{fill:#e7feff8a;font-size:7px;font-weight:700}.structure-summary-card{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));align-content:center;gap:10px;height:100%;overflow:hidden;padding:15px 18px 14px;box-sizing:border-box}.structure-summary-row{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) 58px;grid-template-rows:22px 14px;align-items:center;column-gap:10px;min-width:0;min-height:0;padding:2px 0;color:#e1f9ffb8}.structure-summary-row span{grid-row:1/3;display:inline-flex;min-width:0;align-items:center;gap:8px;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:17px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-summary-row i{width:9px;height:9px;flex:0 0 auto;border-radius:2px;background:var(--structure-color);box-shadow:none}.structure-summary-row strong{grid-column:3;grid-row:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:15px;font-weight:800;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-summary-row strong em{margin-left:3px;color:#e2fcffad;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.structure-summary-row b{position:relative;grid-column:2;grid-row:1/3;height:17px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 18px),rgba(48,220,255,.05)}.structure-summary-row b em{display:block;width:var(--structure-width);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--structure-color) 20%,transparent),var(--structure-color));box-shadow:0 0 5px color-mix(in srgb,var(--structure-color) 28%,transparent)}.structure-summary-row small{grid-column:3;grid-row:2;color:color-mix(in srgb,var(--structure-color) 76%,rgba(255,255,255,.72));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:11px;font-weight:800;text-align:right;white-space:nowrap}.yak-data-status{position:absolute;left:12px;bottom:6px;z-index:2;max-width:calc(100% - 24px);padding:2px 8px;border:1px solid rgba(48,220,255,.24);border-radius:3px;color:#defaffbd;font-size:10px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.yak-data-status.is-warning{border-color:#8bf7ff47;color:#c9fbffdb;background:rgba(4,24,37,.62)}.forecast-kline-chart{padding-top:16px}.forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 6px #30dcff2e}.yak-map-loading{position:absolute;left:50%;top:50%;z-index:8;color:#dffaffa3;font-size:16px;transform:translate(-50%,-50%)}.yak-bottom-topic{position:absolute;left:50%;bottom:48px;z-index:8;transform:translate(-50%);pointer-events:all}.trade-year-switcher,.forecast-year-switcher,.epidemic-year-switcher{position:absolute;left:462px;top:218px;z-index:8;display:flex;width:78px;flex-direction:column;gap:8px;padding:10px 8px;border:1px solid rgba(139,247,255,.28);background:linear-gradient(180deg,rgba(9,42,55,.72),rgba(4,18,30,.82)),rgba(3,18,31,.62);box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d;pointer-events:all;transform:perspective(620px) rotateY(6deg);transform-origin:left center;box-sizing:border-box}.trade-year-switcher span,.forecast-year-switcher span,.epidemic-year-switcher span{color:#ffffffdb;font-size:12px;font-weight:700;line-height:14px;text-align:center;white-space:nowrap}.trade-year-switcher button,.forecast-year-switcher button,.epidemic-year-switcher button{width:100%;height:30px;border:1px solid rgba(255,255,255,.18);background:rgba(48,220,255,.08);color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;cursor:pointer;box-sizing:border-box}.trade-year-switcher button.active,.trade-year-switcher button:hover,.forecast-year-switcher button.active,.forecast-year-switcher button:hover,.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#8bf7ffb3;background:rgba(139,247,255,.18);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-year-switcher{border-color:#30dcff47;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.forecast-year-switcher button.active,.forecast-year-switcher button:hover{border-color:#30dcffb3;background:rgba(48,220,255,.16);color:#30dcff;box-shadow:0 0 7px #30dcff1f}.epidemic-year-switcher{border-color:#30dcff42;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#30dcffad;background:rgba(48,220,255,.16);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-waterfall-card{display:grid;grid-template-rows:32px minmax(0,1fr);gap:8px;height:100%;padding:9px 13px 10px;overflow:hidden;box-sizing:border-box}.forecast-waterfall-head{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 10px;border-left:3px solid rgba(48,220,255,.72);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-waterfall-head span,.forecast-waterfall-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.forecast-waterfall-head strong{color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:18px;font-weight:900;text-align:right}.forecast-waterfall-head strong.negative{color:#48cfff}.forecast-waterfall-head strong em{margin-left:2px;color:#e2fcff99;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.forecast-waterfall-list{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;min-height:0}.forecast-waterfall-row{display:grid;grid-template-columns:78px minmax(0,1fr) 76px;align-items:center;gap:8px;min-width:0;min-height:0}.forecast-waterfall-row span,.forecast-waterfall-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-row span{color:#e2fcffc7;font-size:12px;line-height:14px;font-weight:800}.forecast-waterfall-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900;text-align:right}.forecast-waterfall-row i{position:relative;display:block;height:18px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 18px),rgba(48,220,255,.045);box-sizing:border-box}.forecast-waterfall-row i:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(226,252,255,.12);transform:translateY(-50%)}.forecast-waterfall-row i b{position:absolute;left:var(--waterfall-left);top:3px;width:var(--waterfall-width);height:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--waterfall-color) 22%,transparent),var(--waterfall-color));box-shadow:0 0 5px color-mix(in srgb,var(--waterfall-color) 34%,transparent)}.forecast-waterfall-row.is-anchor span,.forecast-waterfall-row.is-final span{color:#ffffffe6}.forecast-waterfall-row.is-anchor i b,.forecast-waterfall-row.is-final i b{top:3px;height:10px;border-radius:8px;background:var(--waterfall-color)}.forecast-waterfall-row.positive strong{color:#8bf7ff}.forecast-waterfall-row.negative strong{color:#48cfff}.forecast-waterfall-row.is-final strong{color:#fff}.estimate-summary-card,.forecast-summary-card{height:100%;padding:6px 14px 8px;box-sizing:border-box}.estimate-summary-card{display:grid;grid-template-rows:minmax(58px,.88fr) minmax(86px,1.12fr);row-gap:10px;padding:7px 14px 10px;overflow:hidden}.estimate-flow-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.estimate-flow-item{min-width:0;height:100%;padding:8px 10px 7px;border-left:2px solid rgba(48,220,255,.64);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.estimate-flow-item em,.estimate-flow-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-flow-item em{color:#dffaff99;font-style:normal;font-size:11px;line-height:14px}.estimate-flow-item strong{margin-top:5px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;font-weight:900;line-height:24px}.estimate-flow-item small{margin-left:3px;color:#dffaff94;font-size:10px;font-weight:600}.estimate-flow-item.is-adjustment{border-left-color:#8bf7ffa3;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.025)),rgba(3,25,40,.18)}.estimate-flow-item.is-adjustment strong{color:#8bf7ff}.estimate-flow-item.is-adjustment strong.negative{color:#48cfff}.estimate-result-band{position:relative;min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;overflow:hidden;padding:10px 14px 9px;border:1px solid rgba(48,220,255,.18);border-left:3px solid rgba(48,220,255,.76);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.16),transparent 46%),linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04)),rgba(3,25,40,.22);box-sizing:border-box}.estimate-result-band:after{content:"";position:absolute;right:-12px;bottom:-18px;width:118px;height:76px;pointer-events:none;background:radial-gradient(circle at center,rgba(48,220,255,.16),transparent 58%),linear-gradient(135deg,transparent 0 42%,rgba(48,220,255,.12) 43% 45%,transparent 46% 100%)}.estimate-result-band span,.estimate-result-band strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-result-band span{color:#dffaffb8;font-size:13px;line-height:16px}.estimate-result-band strong{position:relative;z-index:1;margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:38px;font-weight:900;line-height:42px}.estimate-result-band em{margin-left:5px;color:#dffaff9e;font-style:normal;font-size:12px}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.forecast-simple-grid span{min-width:0;height:38px;padding:5px 7px;border-left:2px solid rgba(48,220,255,.58);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02));box-sizing:border-box}.forecast-simple-grid em,.forecast-simple-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-simple-grid em{color:#dffaff8f;font-style:normal;font-size:10px;line-height:11px}.forecast-simple-grid strong{margin-top:3px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:900;line-height:15px}.forecast-simple-grid .positive{color:#8bf7ff}.forecast-simple-grid .negative{color:#48cfff}.forecast-summary-card{display:grid;grid-template-rows:minmax(84px,1fr) minmax(44px,.55fr);row-gap:9px;padding:8px 14px 10px;overflow:hidden}.forecast-result-row{display:grid;grid-template-columns:minmax(0,1fr) 98px;align-items:center;column-gap:8px;height:100%;min-height:0}.forecast-result-main{min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;padding:10px 12px;border-left:2px solid rgba(48,220,255,.7);background:radial-gradient(circle at 22% 50%,rgba(48,220,255,.16),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.16),rgba(48,220,255,.035)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-result-main span,.forecast-result-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-result-main span{color:#dffaffa8;font-size:13px;line-height:16px}.forecast-result-main strong{margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:35px;font-weight:900;line-height:39px}.forecast-result-main strong em{margin-left:4px;color:#dffaff9e;font-style:normal;font-size:11px}.forecast-change-badge{min-width:0;height:66px;padding:11px 9px 8px;border:1px solid rgba(139,247,255,.28);background:rgba(139,247,255,.06);box-sizing:border-box}.forecast-change-badge span,.forecast-change-badge strong{display:block;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.forecast-change-badge span{color:#dffaff8c;font-size:10px;line-height:11px}.forecast-change-badge strong{margin-top:2px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;line-height:16px}.forecast-change-badge strong em{margin-left:2px;color:#dffaff94;font-style:normal;font-size:10px}.forecast-change-badge.negative{border-color:#48cfff47;background:rgba(72,207,255,.06)}.forecast-change-badge.negative strong{color:#48cfff}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:0}.forecast-simple-grid span{height:100%;min-height:42px;padding:6px 8px}.forecast-simple-grid strong{margin-top:3px;font-size:15px;line-height:17px}.forecast-heat-list{display:flex;height:100%;flex-direction:column;gap:4px;padding:8px 13px 9px;box-sizing:border-box}.heat-row{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) 60px;align-items:center;gap:8px;min-height:0;flex:1 1 0;padding:0 8px;overflow:visible;border:1px solid rgba(48,220,255,.14);background:linear-gradient(90deg,rgba(48,220,255,.08),transparent 34%,rgba(36,246,196,.04)),rgba(2,18,30,.58);box-shadow:inset 0 0 0 1px #ffffff05,inset 0 0 12px #30dcff0a}.heat-row:before{content:"";position:absolute;left:78px;right:68px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.24),transparent);transform:translateY(-50%)}.heat-row:after{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:rgba(48,220,255,.82);box-shadow:none;opacity:.78}.heat-row span,.heat-row strong,.heat-row b{position:relative;z-index:1;white-space:nowrap}.heat-row span{color:#ecfdffe6;font-size:12px;line-height:14px;font-weight:900;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row b{display:block;height:11px;padding:2px;border:1px solid rgba(48,220,255,.22);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025)),rgba(0,14,24,.66);box-shadow:inset 0 0 10px #00000057,0 0 10px #30dcff14}.heat-row b i{position:relative;display:block;width:var(--heat-width);height:100%;min-width:8px;background:linear-gradient(90deg,rgba(255,255,255,.86),var(--heat-color) 16%,rgba(48,220,255,.72) 78%,rgba(255,255,255,.9)),linear-gradient(90deg,var(--heat-color-soft),transparent);box-shadow:0 0 5px #30dcff24;overflow:visible}.heat-row b i:after{content:"";position:absolute;right:-4px;top:50%;width:7px;height:7px;border-radius:50%;background:#ffffff;box-shadow:0 0 5px #ffffff52;transform:translateY(-50%)}.heat-row b i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);opacity:.72}.heat-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;font-weight:900;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row.is-negative{border-color:#48cfff2e}.epidemic-overview-chart-card{height:100%;padding:7px 9px 5px;box-sizing:border-box}.epidemic-overview-chart{width:100%;height:100%}.epidemic-chain-chart-card{height:100%;padding:7px 8px 5px;box-sizing:border-box}.epidemic-chain-chart{width:100%;height:100%}.epidemic-chain-card{height:100%;padding:9px 13px;box-sizing:border-box}.epidemic-chain-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;column-gap:8px}.epidemic-chain-row span{min-width:0;height:48px;padding:6px;border:1px solid rgba(48,220,255,.16);background:rgba(48,220,255,.05);box-sizing:border-box}.epidemic-chain-row em,.epidemic-chain-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-chain-row em{color:#dffaff8f;font-style:normal;font-size:10px}.epidemic-chain-row strong{margin-top:5px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900}.epidemic-chain-row i{color:#8bf7ffcc;font-style:normal;text-align:center}.epidemic-chain-note{margin:8px 0;padding:7px 9px;border-left:2px solid rgba(139,247,255,.76);background:rgba(139,247,255,.06)}.epidemic-chain-note span{display:block;color:#eafcffd6;font-size:11px;line-height:17px}.epidemic-chain-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.epidemic-chain-metrics span{min-width:0;display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;border:1px solid rgba(48,220,255,.14);background:rgba(48,220,255,.04)}.epidemic-chain-metrics em{color:#dffaff94;font-style:normal;font-size:10px}.epidemic-chain-metrics strong{overflow:hidden;color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-card{display:grid;grid-template-columns:142px minmax(0,1fr);align-items:center;gap:8px;height:100%;padding:8px 12px 8px 10px;box-sizing:border-box}.epidemic-three-pie-visual{position:relative;width:136px;height:136px;min-width:0}.epidemic-three-pie{width:100%;height:100%}.epidemic-three-pie-center{position:absolute;left:0;top:0;display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;text-shadow:0 0 10px rgba(0,0,0,.96);pointer-events:none}.epidemic-three-pie-center strong{overflow:hidden;max-width:84px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;line-height:22px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-2px)}.epidemic-three-pie-center span{overflow:hidden;max-width:86px;color:#fffffff5;font-size:10px;line-height:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-legend{display:flex;min-width:0;height:100%;flex-direction:column;justify-content:center;gap:6px}.epidemic-three-pie-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;column-gap:5px;min-height:17px}.epidemic-three-pie-row i{width:8px;height:8px;border:2px solid #30dcff;border-radius:2px;box-sizing:border-box;background:rgba(3,20,31,.84)}.epidemic-three-pie-row span{overflow:hidden;color:#e2faffd1;font-size:10px;line-height:13px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:13px;font-weight:800;white-space:nowrap}.epidemic-three-pie-row em{color:#dffaff8a;font-style:normal;font-size:10px;line-height:12px;white-space:nowrap}.epidemic-record-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.epidemic-record-table.is-double{gap:5px}.epidemic-record-table.is-full{gap:6px;padding:9px 10px 10px}.epidemic-record-toolbar{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.epidemic-record-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-toolbar>div{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.epidemic-record-toolbar input,.epidemic-record-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.epidemic-record-toolbar input{padding:0 7px}.epidemic-record-toolbar input::placeholder{color:#ffffff94}.epidemic-record-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.epidemic-record-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.epidemic-record-header,.epidemic-record-rows button{display:grid;grid-template-columns:112px 56px 42px 54px 64px;column-gap:4px;align-items:center}.epidemic-record-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.epidemic-record-header span{color:#ffffffc7;font-size:10px}.epidemic-record-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.epidemic-record-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.epidemic-record-rows button:hover,.epidemic-record-rows button.active{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.epidemic-record-rows span,.epidemic-record-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-rows strong{color:#8bf7ff;font-weight:700}.epidemic-record-table.is-full .epidemic-record-rows{gap:4px}.epidemic-record-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.epidemic-record-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.epidemic-record-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.epidemic-record-pager button:disabled{opacity:.36;cursor:not-allowed}.epidemic-empty{display:flex;height:100%;align-items:center;justify-content:center;color:#dffaff8f;font-size:12px}.epidemic-detail-head{display:flex;align-items:center;justify-content:space-between;height:28px;border-bottom:1px solid rgba(48,220,255,.14)}.epidemic-detail-head span{overflow:hidden;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-head strong{color:#dffaffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;white-space:nowrap}.epidemic-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.epidemic-detail-grid span{min-width:0;height:34px;padding:4px 7px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.035);box-sizing:border-box}.epidemic-detail-grid em,.epidemic-detail-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-grid em{color:#dffaff85;font-style:normal;font-size:10px;line-height:10px}.epidemic-detail-grid strong{margin-top:4px;color:#fff;font-size:11px;line-height:12px}.epidemic-detail-grid.is-modal{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.epidemic-detail-grid.is-modal span{height:39px;padding:5px 8px}.epidemic-detail-grid.is-modal .is-wide{grid-column:1/-1}.epidemic-ledger-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:rgba(0,8,14,.68);pointer-events:all}.epidemic-ledger-dialog{width:1260px;height:724px;padding:18px;border:1px solid rgba(139,247,255,.36);background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f;box-sizing:border-box}.epidemic-ledger-dialog-head{display:flex;align-items:center;justify-content:space-between;height:42px;border-bottom:1px solid rgba(48,220,255,.18)}.epidemic-ledger-dialog-head span{display:block;color:#fff;font-size:19px;font-weight:800}.epidemic-ledger-dialog-head strong{display:block;margin-top:3px;color:#ffffffdb;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-ledger-dialog-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-ledger-filters{display:grid;grid-template-columns:220px 130px 130px 132px 132px 66px 66px;gap:10px;align-items:center;margin:16px 0 14px}.epidemic-ledger-filters input,.epidemic-ledger-filters select,.epidemic-ledger-filters button{height:32px;min-width:0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.045);color:#fff;font-size:12px;box-sizing:border-box}.epidemic-ledger-filters input::placeholder{color:#ffffff9e}.epidemic-ledger-filters select option{color:#dffcff;background:#061926}.epidemic-ledger-filters input,.epidemic-ledger-filters select{padding:0 9px}.epidemic-ledger-filters button{cursor:pointer;background:rgba(139,247,255,.13);border-color:#8bf7ff5c;color:#fff;font-weight:700}.epidemic-ledger-filters button.is-ghost{background:rgba(255,255,255,.06);border-color:#ffffff2e}.epidemic-ledger-workspace{display:grid;grid-template-columns:minmax(0,1fr) 376px;gap:14px;height:548px}.epidemic-ledger-list{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;overflow:hidden;border:1px solid rgba(139,247,255,.16);background:rgba(255,255,255,.035);box-shadow:inset 0 0 24px #8bf7ff08;box-sizing:border-box}.epidemic-ledger-table-head,.epidemic-ledger-list button{display:grid;grid-template-columns:minmax(126px,1.5fr) minmax(76px,.9fr) 72px minmax(96px,1fr) 72px 82px 42px;align-items:center;column-gap:8px}.epidemic-ledger-table-head{height:34px;padding:0 12px;border:0;border-bottom:1px solid rgba(139,247,255,.14);border-radius:0;background:rgba(255,255,255,.07)}.epidemic-ledger-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;font-weight:700;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button{position:relative;width:100%;height:30px;padding:0 10px 0 12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.045),rgba(48,220,255,.018)),rgba(255,255,255,.025);color:#ffffffe6;cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease}.epidemic-ledger-list button:before{position:absolute;left:0;top:6px;width:2px;height:18px;content:"";opacity:0;background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.epidemic-ledger-list button.active,.epidemic-ledger-list button:hover{border-color:#30dcff5c;background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05)),rgba(255,255,255,.045);color:#fff}.epidemic-ledger-list button.active:before,.epidemic-ledger-list button:hover:before{opacity:1}.epidemic-ledger-list button span,.epidemic-ledger-list button strong{overflow:hidden;font-size:10px;line-height:12px;color:#fff;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button strong{color:#c9fbff;font-weight:800}.epidemic-ledger-detail{display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px;border:1px solid rgba(48,220,255,.15);background:rgba(48,220,255,.04);box-sizing:border-box}.epidemic-detail-scroll{flex:1 1 0;min-height:0;margin-top:10px;padding-right:4px;overflow-y:auto}.epidemic-detail-section+.epidemic-detail-section{margin-top:10px}.epidemic-detail-section-title{display:flex;align-items:center;height:18px;color:#8bf7ff;font-size:12px;font-weight:700;line-height:18px}.epidemic-modal-photo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:7px;overflow:hidden}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb{position:relative;width:100%;height:96px;padding:0;overflow:hidden;border:1px solid rgba(48,220,255,.24);background:rgba(48,220,255,.04);cursor:zoom-in;box-sizing:border-box}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover{border-color:#8bf7ff94;box-shadow:0 0 7px #8bf7ff1f}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:after{position:absolute;right:0;bottom:0;left:0;height:18px;content:"";background:linear-gradient(180deg,rgba(0,12,20,0),rgba(0,12,20,.92) 52%,rgba(0,12,20,.98));pointer-events:none}.epidemic-modal-photo-strip img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover img{transform:scale(1.03)}.epidemic-modal-photo-strip span{grid-column:1/-1;display:flex;height:96px;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.12);color:#dffaff8a;font-size:11px}.epidemic-image-preview-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:48;display:flex;align-items:center;justify-content:center;padding:46px;background:rgba(0,8,14,.78);pointer-events:all;box-sizing:border-box}.epidemic-image-preview-dialog{display:flex;width:min(920px,78vw);max-height:78vh;flex-direction:column;border:1px solid rgba(139,247,255,.34);background:linear-gradient(180deg,rgba(9,38,50,.97),rgba(2,15,26,.99)),rgba(2,17,28,.98);box-shadow:0 0 34px #8bf7ff24,inset 0 0 0 1px #ffffff0e}.epidemic-image-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:0 16px 0 18px;border-bottom:1px solid rgba(48,220,255,.16);box-sizing:border-box}.epidemic-image-preview-head div{min-width:0}.epidemic-image-preview-head span,.epidemic-image-preview-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-image-preview-head span{color:#fff;font-size:16px;font-weight:800}.epidemic-image-preview-head strong{margin-top:3px;color:#8bf7ffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-image-preview-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-image-preview-body{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;padding:16px;background:rgba(0,10,17,.42)}.epidemic-image-preview-frame{position:relative;display:flex;max-width:100%;max-height:calc(78vh - 84px);align-items:center;justify-content:center;overflow:hidden}.epidemic-image-preview-frame img{display:block;max-width:100%;max-height:calc(78vh - 84px);object-fit:contain}.epidemic-image-preview-frame:after{position:absolute;right:0;bottom:0;left:0;height:38px;content:"";background:linear-gradient(180deg,rgba(0,10,17,0),rgba(0,10,17,.96) 58%,rgba(0,10,17,.99));pointer-events:none}.epidemic-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:42px}.epidemic-ledger-pager span{color:#ffffffb8;font-size:12px}.epidemic-ledger-pager button{height:26px;padding:0 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:#fff;cursor:pointer}.epidemic-ledger-pager button:disabled{opacity:.38;cursor:not-allowed}.trade-ledger-dialog{width:1260px;height:724px;border-color:#8bf7ff5c;background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f}.trade-ledger-dialog .epidemic-ledger-dialog-head strong{color:#ffffffdb}.trade-ledger-dialog .epidemic-ledger-dialog-head button{border-color:#ffffff47;background:rgba(255,255,255,.08);color:#fff}.trade-ledger-filters{grid-template-columns:260px 150px 142px 142px 70px 70px}.trade-ledger-filters input,.trade-ledger-filters select,.trade-ledger-filters button{color:#fff}.trade-ledger-filters button{color:#fff;font-weight:700}.trade-ledger-workspace{grid-template-columns:minmax(0,1fr) 376px}.trade-ledger-modal-table-head,.trade-ledger-modal-list button{display:grid;grid-template-columns:128px 84px 92px 58px 88px 90px 102px 68px;align-items:center;column-gap:10px}.trade-ledger-modal-table-head{height:34px;padding:0 12px;border-bottom:1px solid rgba(139,247,255,.14);background:rgba(255,255,255,.07)}.trade-ledger-modal-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-modal-list{border-color:#30dcff29;background:rgba(255,255,255,.035)}.trade-ledger-modal-list button{height:34px;color:#ffffffe6}.trade-ledger-modal-list button.active,.trade-ledger-modal-list button:hover{background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05));color:#fff}.trade-ledger-modal-list button span,.trade-ledger-modal-list button strong{color:#fff}.trade-ledger-modal-list button strong{color:#c9fbff}.trade-ledger-detail{display:flex;flex-direction:column;padding:0;overflow:hidden;border-color:#30dcff3d;background:linear-gradient(180deg,rgba(8,42,54,.84),rgba(3,19,30,.92)),radial-gradient(circle at 10% 0,rgba(48,220,255,.12),transparent 38%),rgba(3,25,40,.48);box-shadow:inset 0 0 22px #30dcff0e,inset 0 0 0 1px #ffffff09}.trade-ledger-detail .trade-detail-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:76px;padding:15px 16px 13px;border-bottom:1px solid rgba(48,220,255,.18);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.035)),rgba(3,26,38,.62);box-sizing:border-box}.trade-ledger-detail .trade-detail-head:before{position:absolute;left:0;top:16px;width:3px;height:44px;content:"";background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.trade-ledger-detail .trade-detail-head div{min-width:0}.trade-ledger-detail .trade-detail-head span,.trade-ledger-detail .trade-detail-head em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-detail .trade-detail-head span{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;font-weight:800;line-height:24px}.trade-ledger-detail .trade-detail-head em{margin-top:6px;color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;line-height:16px}.trade-ledger-detail .trade-detail-head strong{padding:5px 9px;border:1px solid rgba(48,220,255,.18);background:rgba(5,27,38,.58);color:#edfdffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:800;white-space:nowrap}.epidemic-ledger-record-detail .trade-detail-head em{color:#8bf7ff}.epidemic-ledger-record-detail .epidemic-detail-flat-grid{padding-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid{flex:0 0 auto;align-content:start;grid-template-columns:66px minmax(0,1fr) 66px minmax(0,1fr);gap:0;margin:0;padding:14px 16px 0;overflow:hidden;border:1px solid rgba(48,220,255,.1);border-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid span{min-width:0;height:auto;padding:0;border:0;background:transparent;box-shadow:none}.epidemic-detail-grid.is-modal.trade-detail-grid:before{display:none}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide){display:contents}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) em,.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) strong,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide em,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide strong{display:flex;min-width:0;height:30px;align-items:center;padding:0 8px;border-bottom:1px solid rgba(48,220,255,.1);box-sizing:border-box}.epidemic-detail-grid.is-modal.trade-detail-grid em{justify-content:flex-end;color:#cdeff6a3;font-size:10px;font-style:normal;line-height:14px;text-align:right;background:rgba(139,247,255,.055);border-right:1px solid rgba(48,220,255,.085)}.epidemic-detail-grid.is-modal.trade-detail-grid em:after{content:":"}.epidemic-detail-grid.is-modal.trade-detail-grid strong{min-width:0;margin-top:0;overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(255,255,255,.03)}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide):nth-child(odd) strong{border-right:1px solid rgba(48,220,255,.065)}.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide{display:grid;grid-column:1/-1;grid-template-columns:66px minmax(0,1fr)}.epidemic-detail-photos{min-height:0;margin:12px 16px 16px;padding-top:10px;border-top:1px solid rgba(48,220,255,.12)}.epidemic-detail-photo-title{height:18px;color:#8bf7ff;font-size:12px;font-weight:800;line-height:18px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip .epidemic-modal-photo-thumb{height:76px;border-color:#30dcff38;border-radius:2px;background:rgba(4,28,41,.62)}.trade-detail-locate{width:calc(100% - 32px);height:36px;margin:auto 16px 16px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(139,247,255,.08)),rgba(4,28,41,.74);color:#fff;font-size:13px;font-weight:800;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.trade-detail-locate:hover:not(:disabled){border-color:#8bf7ff85;background:linear-gradient(90deg,rgba(139,247,255,.16),rgba(48,220,255,.11)),rgba(8,36,48,.84);box-shadow:0 0 7px #8bf7ff1a}.trade-detail-locate:disabled{opacity:.38;cursor:not-allowed}.trade-overview-card{display:grid;grid-template-rows:minmax(0,1fr) 46px;row-gap:10px;height:100%;padding:14px 13px 10px;box-sizing:border-box}.trade-main-metric{display:flex;min-width:0;flex-direction:column;justify-content:center}.trade-main-metric span,.trade-main-metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-main-metric span{color:#ffffffd6;font-size:12px;line-height:14px}.trade-main-metric strong{margin-top:3px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:27px;font-weight:900;line-height:29px}.trade-main-metric strong em{margin-left:5px;color:#ffffffd1;font-style:normal;font-size:12px}.trade-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.trade-metric-grid span{min-width:0;padding:5px 7px;border-left:2px solid rgba(139,247,255,.62);background:linear-gradient(90deg,rgba(139,247,255,.11),rgba(48,220,255,.03));box-sizing:border-box}.trade-metric-grid em,.trade-metric-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-metric-grid em{color:#ffffffc7;font-style:normal;font-size:10px;line-height:11px}.trade-metric-grid strong{margin-top:4px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900}.trade-risk-card{display:grid;grid-template-rows:30px minmax(0,1fr);gap:5px;height:100%;padding:9px 12px 10px;overflow:hidden;box-sizing:border-box}.trade-risk-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:0 9px;border-left:3px solid rgba(139,247,255,.78);background:linear-gradient(90deg,rgba(139,247,255,.14),rgba(48,220,255,.025)),rgba(3,25,40,.2);box-sizing:border-box}.trade-risk-head span,.trade-risk-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.trade-risk-head strong{flex:0 0 auto;color:#8bf7ff;font-size:12px;line-height:16px;font-weight:900;text-align:right}.trade-risk-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:4px;min-height:0}.trade-risk-row{position:relative;display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:0;padding:3px 8px 3px 10px;overflow:hidden;border:1px solid rgba(48,220,255,.11);background:linear-gradient(90deg,color-mix(in srgb,var(--risk-color) 12%,transparent),rgba(48,220,255,.02)),rgba(4,24,37,.2);box-sizing:border-box}.trade-risk-row:before{content:"";position:absolute;left:0;top:50%;width:2px;height:22px;background:rgba(48,220,255,.78);box-shadow:none;transform:translateY(-50%)}.trade-risk-row i{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--risk-color);box-shadow:none}.trade-risk-row span{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;min-width:0;gap:8px}.trade-risk-row em,.trade-risk-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-row em{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0;color:#ffffffe6;font-size:11px;line-height:14px;font-style:normal;font-weight:900}.trade-risk-row em b{flex:0 0 auto;min-width:28px;height:15px;padding:0 5px;border:1px solid color-mix(in srgb,var(--risk-color) 52%,transparent);border-radius:1px;color:var(--risk-color);font-size:10px;line-height:13px;font-weight:900;text-align:center;background:color-mix(in srgb,var(--risk-color) 13%,rgba(3,25,40,.62));box-sizing:border-box}.trade-risk-row small{flex:1 1 auto;min-width:0;color:#e2fcffc2;font-size:10px;line-height:12px;text-align:right}.trade-risk-row.is-high{border-color:#48cfff3d}.trade-risk-row.is-high small{color:#c9fbffe0}.trade-risk-row.is-watch small{color:#8bf7ffd1}.trade-cert-card{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;height:100%;padding:9px 12px;box-sizing:border-box}.trade-cert-main{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:8px}.trade-cert-main span{min-width:0;padding:7px 8px;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.045)}.trade-cert-main em,.trade-cert-main strong,.trade-cert-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-cert-main em{color:#ffffffc7;font-style:normal;font-size:10px}.trade-cert-main strong{margin-top:4px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:20px;font-weight:900}.trade-cert-main strong b{margin-left:3px;color:#ffffffd1;font-size:10px;font-weight:500}.trade-cert-main small{margin-top:3px;color:#ffffffd1;font-size:10px}.trade-cert-chart{width:108px;height:100%}.trade-dest-list{display:flex;height:100%;flex-direction:column;gap:3px;padding:7px 10px 8px;box-sizing:border-box}.trade-dest-row{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 66px;align-items:center;min-height:0;flex:1 1 0;column-gap:6px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035)}.trade-dest-row:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--trade-ratio);background:linear-gradient(90deg,rgba(139,247,255,.22),rgba(48,220,255,.08))}.trade-dest-row span,.trade-dest-row strong,.trade-dest-row em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-dest-row span{padding-left:7px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;font-weight:900}.trade-dest-row strong{color:#fff;font-size:11px;line-height:13px}.trade-dest-row em{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-style:normal;font-size:11px;line-height:13px;text-align:right}.trade-ledger-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.trade-ledger-toolbar{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.trade-ledger-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-toolbar>div{display:grid;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.trade-ledger-toolbar input,.trade-ledger-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.trade-ledger-toolbar input{padding:0 7px}.trade-ledger-toolbar input::placeholder{color:#ffffff94}.trade-ledger-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.trade-ledger-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.trade-ledger-header,.trade-ledger-rows button{display:grid;grid-template-columns:98px 56px 39px 38px 34px 64px;column-gap:4px;align-items:center}.trade-ledger-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.trade-ledger-header span{color:#ffffffc7;font-size:10px}.trade-ledger-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.trade-ledger-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.trade-ledger-rows button:hover{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.trade-ledger-rows span,.trade-ledger-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-rows span:first-child{line-height:12px;white-space:normal;word-break:break-all;text-overflow:clip}.trade-ledger-rows strong{color:#8bf7ff;font-weight:700}.trade-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.trade-ledger-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.trade-ledger-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.trade-ledger-pager button:disabled{opacity:.36;cursor:not-allowed} diff --git a/docs/assets/chartTheme-73f6d8d0-balabala-1783995319167.css b/docs/assets/index-148a2898-balabala-1784043664472.css similarity index 85% rename from docs/assets/chartTheme-73f6d8d0-balabala-1783995319167.css rename to docs/assets/index-148a2898-balabala-1784043664472.css index cfd2633..d4ea4a0 100644 --- a/docs/assets/chartTheme-73f6d8d0-balabala-1783995319167.css +++ b/docs/assets/index-148a2898-balabala-1784043664472.css @@ -1 +1 @@ -.m-card{position:relative;overflow:visible}.m-card-hd{position:absolute;left:0;top:0;width:100%;z-index:2;pointer-events:none}.m-card-hd-bg{position:absolute;left:0;top:0}.m-card-hd-zs1{position:absolute;right:12px;top:10px;width:120px;height:11px}.m-card-hd-title{position:absolute;left:22px;color:var(--screen-color-text-strong, #fff);font-size:var(--screen-card-title-size, 16px);letter-spacing:1.6px;height:36px;line-height:var(--screen-card-title-line-height, 32px);font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:var(--screen-card-title-weight, 600);background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-card-hd-extra{position:absolute;top:5px;right:14px;z-index:4;height:24px;pointer-events:auto}.m-card-hd .saoguang{position:absolute;left:0;top:0;width:100%;height:36px;overflow:hidden;pointer-events:none}.m-card-hd .saoguang img{width:89px;height:36px;animation:saoguangMove 6s linear infinite}.m-card-bd{position:absolute;left:0;top:0;z-index:1}.m-card-bd-bg{position:absolute;left:0;top:0}.m-card-bd-bottom-left-arrow{position:absolute;left:4px;bottom:4px}.m-card-bd-bottom-right-arrow{position:absolute;right:4px;bottom:4px}.m-card-bd-middle-left-line{position:absolute;left:0;top:50%;margin-top:-35px}.m-card-bd-middle-right-line{position:absolute;right:0;top:50%;margin-top:-35px}.m-card-bd-content{position:absolute;left:0;top:36px;right:0;bottom:0;pointer-events:all;overflow:hidden}@keyframes saoguangMove{0%{transform:translate(-160px)}to{transform:translate(2000px)}}.three-pie-wrap{position:relative;width:100%;height:100%;z-index:2}.three-pie{width:100%;height:100%}.three-pie-slot{position:absolute;left:0;top:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;pointer-events:none} +.m-card{position:relative;overflow:visible}.m-card-hd{position:absolute;left:0;top:0;width:100%;z-index:2;pointer-events:none}.m-card-hd-bg{position:absolute;left:0;top:0}.m-card-hd-zs1{position:absolute;right:12px;top:10px;width:120px;height:11px}.m-card-hd-title{position:absolute;left:22px;color:var(--screen-color-text-strong, #fff);font-size:var(--screen-card-title-size, 16px);letter-spacing:1.6px;height:36px;line-height:var(--screen-card-title-line-height, 32px);font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:var(--screen-card-title-weight, 600);background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-card-hd-extra{position:absolute;top:5px;right:14px;z-index:4;height:24px;pointer-events:auto}.m-card-hd .saoguang{position:absolute;left:0;top:0;width:100%;height:36px;overflow:hidden;pointer-events:none}.m-card-hd .saoguang img{width:89px;height:36px;animation:saoguangMove 6s linear infinite}.m-card-bd{position:absolute;left:0;top:0;z-index:1}.m-card-bd-bg{position:absolute;left:0;top:0}.m-card-bd-bottom-left-arrow{position:absolute;left:4px;bottom:4px}.m-card-bd-bottom-right-arrow{position:absolute;right:4px;bottom:4px}.m-card-bd-middle-left-line{position:absolute;left:0;top:50%;margin-top:-35px}.m-card-bd-middle-right-line{position:absolute;right:0;top:50%;margin-top:-35px}.m-card-bd-content{position:absolute;left:0;top:36px;right:0;bottom:0;pointer-events:all;overflow:hidden}@keyframes saoguangMove{0%{transform:translate(-160px)}to{transform:translate(2000px)}} diff --git a/docs/assets/index-1783995319167.js b/docs/assets/index-1784043664472.js similarity index 99% rename from docs/assets/index-1783995319167.js rename to docs/assets/index-1784043664472.js index e0e8293..e6530c1 100644 --- a/docs/assets/index-1783995319167.js +++ b/docs/assets/index-1784043664472.js @@ -22,7 +22,7 @@ var qO=Object.defineProperty,KO=Object.defineProperties;var jO=Object.getOwnProp * vue-router v4.6.4 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let gz=()=>location.protocol+"//"+location.host;function NI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),jS(s,"")}return jS(e,r)+n+i}function yz(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=NI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Ly.pop,direction:g?g>0?Ud.forward:Ud.back:Ud.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:$v()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function rx(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?$v():null}}function mz(r){const{history:t,location:e}=window,n={value:NI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:gz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,rx(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:$v()});a(f.current,f,!0),a(l,Kt({},rx(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function _z(r){r=rz(r);const t=mz(r),e=yz(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:iz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Sz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),_z(r)}let no=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const xz={type:no.Static,value:""},bz=/[a-zA-Z0-9_]/;function wz(r){if(!r)return[[]];if(r==="/")return[[xz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:no.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:no.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function VI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Dz={strict:!1,end:!0,sensitive:!1};function Iz(r,t,e){const n=Cz(wz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Lz(r,t){const e=[],n=new Map;t=KS(Dz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=ox(c);p.aliasOf=v&&v.record;const g=KS(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(ox(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Iz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!sx(m)&&o(c.name)),BI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:gu}function o(c){if(kI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Ez(c,e);e.splice(h,0,c),c.record.name&&!sx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ax(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ax(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Rz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ax(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function ox(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:Pz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Pz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function sx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Rz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Ez(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;VI(r,t[a])<0?n=a:e=a+1}const i=kz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function kz(r){let t=r;for(;t=t.parent;)if(BI(t)&&VI(r,t)===0)return t}function BI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function lx(r){const t=un(Uv),e=un(Z0),n=nn(()=>{const l=go(r.to);return t.resolve(l)}),i=nn(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(zs.bind(null,f));if(h>-1)return h;const v=ux(l[u-2]);return u>1&&ux(f)===v&&c[c.length-1].path!==v?c.findIndex(zs.bind(null,l[u-2])):h}),a=nn(()=>i.value>-1&&zz(e.params,n.value.params)),o=nn(()=>i.value>-1&&i.value===e.matched.length-1&&EI(e.params,n.value.params));function s(l={}){if(Bz(l)){const u=t[go(r.replace)?"replace":"push"](go(r.to)).catch(gu);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:nn(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Oz(r){return r.length===1?r[0]:r}const Nz=V0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:lx,setup(r,{slots:t}){const e=Bv(lx(r)),{options:n}=un(Uv),i=nn(()=>({[fx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[fx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Oz(t.default(e));return r.custom?a:TI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Vz=Nz;function Bz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!dn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function ux(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const fx=(r,t,e)=>r!=null?r:t!=null?t:e,Gz=V0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=un(Ry),i=nn(()=>r.route||n.value),a=un(ex,0),o=nn(()=>{let u=go(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=nn(()=>i.value.matched[o.value]);Kc(ex,nn(()=>o.value+1)),Kc(dz,s),Kc(Ry,i);const l=qc();return jc(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!zs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return cx(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=TI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return cx(e.default,{Component:g,route:u})||g}}});function cx(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const Fz=Gz;function Hz(r){const t=Lz(r.routes,r),e=r.parseQuery||hz,n=r.stringifyQuery||tx,i=r.history,a=_l(),o=_l(),s=_l(),l=kN(Mi);let u=Mi;ds&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wd.bind(null,U=>""+U),c=Wd.bind(null,qB),h=Wd.bind(null,zu);function v(U,K){let H,tt;return kI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=$d(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:zu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:$d(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=JB(n,Kt({},U,{hash:YB(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===tx?vz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?$d(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Gs(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&QB(n,tt,H)&&(X=Gs(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>jn(W)?jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=pz(U,K);H=Yd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push(Hi(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Yd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push(Hi(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(dn(k.beforeEnter))for(const z of k.beforeEnter)H.push(Hi(z,U,K));else H.push(Hi(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Yd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).catch(k=>jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Mi,k=ds?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(gu);return}u=tt;const ut=l.value;ds&&sz(QS(ut.fullPath,H.delta),$v()),C(tt,ut).catch(R=>jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Ly.pop&&i.go(-1,!1)}).catch(gu),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Ly.pop&&jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(gu)}))}let E=_l(),O=_l(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Mi?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ds||!j)return Promise.resolve();const ut=!H&&lz(QS(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return E0().then(()=>j(U,K,ut)).then(R=>R&&oz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Vz),U.component("RouterView",Fz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>go(l)}),ds&&!ct&&l.value===Mi&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Mi)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Uv,gt),U.provide(Z0,UD(K)),U.provide(Ry,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Mi,L&&L(),L=null,l.value=Mi,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function Xit(){return un(Uv)}function qit(r){return un(Z0)}const io="Authorization",Wz=["/","/screen2","/screen2/"];function $z(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Uz(r){return encodeURIComponent(r||"/platform")}function hx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${io}=`));return r?decodeURIComponent(r.slice(io.length+1)):""}function zI(){const r=$z();Wz.forEach(t=>{document.cookie=`${io}=; Max-Age=0; path=${t}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${io}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function Ey(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Uz(r)}`}function Yz(r){zI();const t=Ey(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function Kit(r,t){return pl(this,null,function*(){var i;zI();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${io}=${encodeURIComponent(n.data.token)}; path=/`),n})}function jit(){return pl(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),Yz("/platform")})}function Zz(){return pl(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const vx=()=>U0(()=>import("./index-89c6439f-1783995319167.js"),["./index-89c6439f-1783995319167.js","./chartTheme-0e0a1707-1783995319167.js","./chartTheme-73f6d8d0-balabala-1783995319167.css","./index-f5d1da98-balabala-1783995319167.css"],import.meta.url),Xz=()=>U0(()=>import("./index-0cc2c5ef-1783995319167.js"),["./index-0cc2c5ef-1783995319167.js","./index-695ff00c-balabala-1783995319167.css"],import.meta.url),qz=()=>U0(()=>import("./index-d2259c0a-1783995319167.js"),["./index-d2259c0a-1783995319167.js","./chartTheme-0e0a1707-1783995319167.js","./chartTheme-73f6d8d0-balabala-1783995319167.css","./index-8d752fbe-balabala-1783995319167.css"],import.meta.url),GI=Hz({history:Sz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:Xz,meta:{public:!0}},{path:"/platform",component:vx},{path:"/forest-grass-wet",component:vx},{path:"/chart-style-guide",component:qz},{path:"/:pathMatch(.*)",redirect:"/"}]});let yu=null;GI.beforeEach(r=>pl(void 0,null,function*(){if(r.meta.public){if(hx())try{return yield dx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){yu=null}return!0}if(!hx())return Ey(r.fullPath);try{return yield dx(),!0}catch(t){return yu=null,Ey(r.fullPath)}}));function dx(){return yu||(yu=Zz()),yu}const Kz=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},jz={};function Jz(r,t){const e=vV("router-view");return Mh(),Ih(e)}const Qz=Kz(jz,[["render",Jz]]);/*! ***************************************************************************** + */let gz=()=>location.protocol+"//"+location.host;function NI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),jS(s,"")}return jS(e,r)+n+i}function yz(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=NI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Ly.pop,direction:g?g>0?Ud.forward:Ud.back:Ud.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:$v()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function rx(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?$v():null}}function mz(r){const{history:t,location:e}=window,n={value:NI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:gz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,rx(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:$v()});a(f.current,f,!0),a(l,Kt({},rx(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function _z(r){r=rz(r);const t=mz(r),e=yz(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:iz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Sz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),_z(r)}let no=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const xz={type:no.Static,value:""},bz=/[a-zA-Z0-9_]/;function wz(r){if(!r)return[[]];if(r==="/")return[[xz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:no.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:no.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function VI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Dz={strict:!1,end:!0,sensitive:!1};function Iz(r,t,e){const n=Cz(wz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Lz(r,t){const e=[],n=new Map;t=KS(Dz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=ox(c);p.aliasOf=v&&v.record;const g=KS(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(ox(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Iz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!sx(m)&&o(c.name)),BI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:gu}function o(c){if(kI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Ez(c,e);e.splice(h,0,c),c.record.name&&!sx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ax(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ax(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Rz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ax(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function ox(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:Pz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Pz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function sx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Rz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Ez(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;VI(r,t[a])<0?n=a:e=a+1}const i=kz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function kz(r){let t=r;for(;t=t.parent;)if(BI(t)&&VI(r,t)===0)return t}function BI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function lx(r){const t=un(Uv),e=un(Z0),n=nn(()=>{const l=go(r.to);return t.resolve(l)}),i=nn(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(zs.bind(null,f));if(h>-1)return h;const v=ux(l[u-2]);return u>1&&ux(f)===v&&c[c.length-1].path!==v?c.findIndex(zs.bind(null,l[u-2])):h}),a=nn(()=>i.value>-1&&zz(e.params,n.value.params)),o=nn(()=>i.value>-1&&i.value===e.matched.length-1&&EI(e.params,n.value.params));function s(l={}){if(Bz(l)){const u=t[go(r.replace)?"replace":"push"](go(r.to)).catch(gu);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:nn(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Oz(r){return r.length===1?r[0]:r}const Nz=V0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:lx,setup(r,{slots:t}){const e=Bv(lx(r)),{options:n}=un(Uv),i=nn(()=>({[fx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[fx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Oz(t.default(e));return r.custom?a:TI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Vz=Nz;function Bz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!dn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function ux(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const fx=(r,t,e)=>r!=null?r:t!=null?t:e,Gz=V0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=un(Ry),i=nn(()=>r.route||n.value),a=un(ex,0),o=nn(()=>{let u=go(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=nn(()=>i.value.matched[o.value]);Kc(ex,nn(()=>o.value+1)),Kc(dz,s),Kc(Ry,i);const l=qc();return jc(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!zs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return cx(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=TI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return cx(e.default,{Component:g,route:u})||g}}});function cx(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const Fz=Gz;function Hz(r){const t=Lz(r.routes,r),e=r.parseQuery||hz,n=r.stringifyQuery||tx,i=r.history,a=_l(),o=_l(),s=_l(),l=kN(Mi);let u=Mi;ds&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wd.bind(null,U=>""+U),c=Wd.bind(null,qB),h=Wd.bind(null,zu);function v(U,K){let H,tt;return kI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=$d(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:zu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:$d(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=JB(n,Kt({},U,{hash:YB(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===tx?vz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?$d(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Gs(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&QB(n,tt,H)&&(X=Gs(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>jn(W)?jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=pz(U,K);H=Yd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push(Hi(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Yd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push(Hi(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(dn(k.beforeEnter))for(const z of k.beforeEnter)H.push(Hi(z,U,K));else H.push(Hi(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Yd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).catch(k=>jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Mi,k=ds?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(gu);return}u=tt;const ut=l.value;ds&&sz(QS(ut.fullPath,H.delta),$v()),C(tt,ut).catch(R=>jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Ly.pop&&i.go(-1,!1)}).catch(gu),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Ly.pop&&jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(gu)}))}let E=_l(),O=_l(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Mi?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ds||!j)return Promise.resolve();const ut=!H&&lz(QS(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return E0().then(()=>j(U,K,ut)).then(R=>R&&oz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Vz),U.component("RouterView",Fz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>go(l)}),ds&&!ct&&l.value===Mi&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Mi)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Uv,gt),U.provide(Z0,UD(K)),U.provide(Ry,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Mi,L&&L(),L=null,l.value=Mi,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function Xit(){return un(Uv)}function qit(r){return un(Z0)}const io="Authorization",Wz=["/","/screen2","/screen2/"];function $z(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Uz(r){return encodeURIComponent(r||"/platform")}function hx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${io}=`));return r?decodeURIComponent(r.slice(io.length+1)):""}function zI(){const r=$z();Wz.forEach(t=>{document.cookie=`${io}=; Max-Age=0; path=${t}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${io}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function Ey(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Uz(r)}`}function Yz(r){zI();const t=Ey(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function Kit(r,t){return pl(this,null,function*(){var i;zI();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${io}=${encodeURIComponent(n.data.token)}; path=/`),n})}function jit(){return pl(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),Yz("/platform")})}function Zz(){return pl(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const vx=()=>U0(()=>import("./index-d0c7091a-1784043664472.js").then(r=>r.i),["./index-d0c7091a-1784043664472.js","./index-e9f36657-1784043664472.js","./index-51731c25-balabala-1784043664472.css"],import.meta.url),Xz=()=>U0(()=>import("./index-a29410f4-1784043664472.js"),["./index-a29410f4-1784043664472.js","./index-46ddbb9a-balabala-1784043664472.css"],import.meta.url),qz=()=>U0(()=>import("./index-c7da184e-1784043664472.js"),["./index-c7da184e-1784043664472.js","./index.esm.min-c54f6e6e-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./chartTheme-95a980bb-1784043664472.js","./index-8d752fbe-balabala-1784043664472.css"],import.meta.url),GI=Hz({history:Sz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:Xz,meta:{public:!0}},{path:"/platform",component:vx},{path:"/forest-grass-wet",component:vx},{path:"/chart-style-guide",component:qz},{path:"/:pathMatch(.*)",redirect:"/"}]});let yu=null;GI.beforeEach(r=>pl(void 0,null,function*(){if(r.meta.public){if(hx())try{return yield dx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){yu=null}return!0}if(!hx())return Ey(r.fullPath);try{return yield dx(),!0}catch(t){return yu=null,Ey(r.fullPath)}}));function dx(){return yu||(yu=Zz()),yu}const Kz=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},jz={};function Jz(r,t){const e=vV("router-view");return Mh(),Ih(e)}const Qz=Kz(jz,[["render",Jz]]);/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -81,4 +81,4 @@ PERFORMANCE OF THIS SOFTWARE. `:"
",y=c.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(e,u)?this._updatePosition(s,v,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,y,u,Math.random()+"",o[0],o[1],v,null,h)})},t.prototype._showSeriesItemTooltip=function(e,n,i){var a=this._ecModel,o=St(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,h=u.getData(c),v=this._renderMode,d=e.positionDefault,p=$l([h.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,d?{position:d}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var y=u.getDataParams(f,c),m=new Gp;y.marker=m.makeTooltipMarker("item",Po(y.color),v);var _=ew(u.formatTooltip(f,!1,c)),S=p.get("order"),x=p.get("valueFormatter"),b=_.frag,w=b?sw(x?F({valueFormatter:x},b):b,m,v,S,a.get("useUTC"),p.get("textStyle")):_.text,T="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,w,y,T,e.offsetX,e.offsetY,e.position,e.target,m)}),i({type:"showTip",dataIndexInside:f,dataIndex:h.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(e,n,i){var a=this._renderMode==="html",o=St(n),s=o.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(nt(l)){var f=l;l={content:f,formatter:f},u=!0}u&&a&&l.content&&(l=mt(l),l.content=qe(l.content));var c=[l],h=this._ecModel.getComponent(o.componentMainType,o.componentIndex);h&&c.push(h),c.push({formatter:l.content});var v=e.positionDefault,d=$l(c,this._tooltipModel,v?{position:v}:null),p=d.get("content"),g=Math.random()+"",y=new Gp;this._showOrMove(d,function(){var m=mt(d.get("formatterParams")||{});this._showTooltipContent(d,p,m,g,e.offsetX,e.offsetY,e.position,n,y)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(e,n,i,a,o,s,l,u,f){if(this._ticket="",!(!e.get("showContent")||!e.get("show"))){var c=this._tooltipContent;c.setEnterable(e.get("enterable"));var h=e.get("formatter");l=l||e.get("position");var v=n,d=this._getNearestPoint([o,s],i,e.get("trigger"),e.get("borderColor")),p=d.color;if(h)if(nt(h)){var g=e.ecModel.get("useUTC"),y=Y(i)?i[0]:i,m=y&&y.axisType&&y.axisType.indexOf("time")>=0;v=h,m&&(v=ud(y.axisValue,v,g)),v=ZP(v,i,!0)}else if(vt(h)){var _=at(function(S,x){S===this._ticket&&(c.setContent(x,f,e,p,l),this._updatePosition(e,l,o,s,c,i,u))},this);this._ticket=a,v=h(i,a,_)}else v=h;c.setContent(v,f,e,p,l),c.show(e,p),this._updatePosition(e,l,o,s,c,i,u)}},t.prototype._getNearestPoint=function(e,n,i,a){if(i==="axis"||Y(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!Y(n))return{color:a||n.color||n.borderColor}},t.prototype._updatePosition=function(e,n,i,a,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();n=n||e.get("position");var c=o.getSize(),h=e.get("align"),v=e.get("verticalAlign"),d=l&&l.getBoundingRect().clone();if(l&&d.applyTransform(l.transform),vt(n)&&(n=n([i,a],s,o.el,d,{viewSize:[u,f],contentSize:c.slice()})),Y(n))i=rt(n[0],u),a=rt(n[1],f);else if(yt(n)){var p=n;p.width=c[0],p.height=c[1];var g=be(p,{width:u,height:f});i=g.x,a=g.y,h=null,v=null}else if(nt(n)&&l){var y=fet(n,d,c,e.get("borderWidth"));i=y[0],a=y[1]}else{var y=set(i,a,o,u,f,h?null:20,v?null:20);i=y[0],a=y[1]}if(h&&(i-=mM(h)?c[0]/2:h==="right"?c[0]:0),v&&(a-=mM(v)?c[1]/2:v==="bottom"?c[1]:0),SO(e)){var y=uet(i,a,o,u,f);i=y[0],a=y[1]}o.moveTo(i,a)},t.prototype._updateContentNotChangedOnAxis=function(e,n){var i=this._lastDataByCoordSys,a=this._cbParamsList,o=!!i&&i.length===e.length;return o&&M(i,function(s,l){var u=s.dataByAxis||[],f=e[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&M(u,function(h,v){var d=c[v]||{},p=h.seriesDataIndices||[],g=d.seriesDataIndices||[];o=o&&h.value===d.value&&h.axisType===d.axisType&&h.axisId===d.axisId&&p.length===g.length,o&&M(p,function(y,m){var _=g[m];o=o&&y.seriesIndex===_.seriesIndex&&y.dataIndex===_.dataIndex}),a&&M(h.seriesDataIndices,function(y){var m=y.seriesIndex,_=n[m],S=a[m];_&&S&&S.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=e,this._cbParamsList=n,!!o},t.prototype._hide=function(e){this._lastDataByCoordSys=null,e({type:"hideTip",from:this.uid})},t.prototype.dispose=function(e,n){zt.node||!n.getDom()||(tf(this,"_updatePosition"),this._tooltipContent.dispose(),o0("itemTooltip",n))},t.type="tooltip",t}(fe);function $l(r,t,e){var n=t.ecModel,i;e?(i=new te(e,n,n),i=new te(t.option,i,n)):i=t;for(var a=r.length-1;a>=0;a--){var o=r[a];o&&(o instanceof te&&(o=o.get("tooltip",!0)),nt(o)&&(o={formatter:o}),o&&(i=new te(o,i,n)))}return i}function yM(r,t){return r.dispatchAction||at(t.dispatchAction,t)}function set(r,t,e,n,i,a,o){var s=e.getSize(),l=s[0],u=s[1];return a!=null&&(r+l+a+2>n?r-=l+a:r+=a),o!=null&&(t+u+o>i?t-=u+o:t+=o),[r,t]}function uet(r,t,e,n,i){var a=e.getSize(),o=a[0],s=a[1];return r=Math.min(r+o,n)-o,t=Math.min(t+s,i)-s,r=Math.max(r,0),t=Math.max(t,0),[r,t]}function fet(r,t,e,n){var i=e[0],a=e[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,f=t.height;switch(r){case"inside":s=t.x+u/2-i/2,l=t.y+f/2-a/2;break;case"top":s=t.x+u/2-i/2,l=t.y-a-o;break;case"bottom":s=t.x+u/2-i/2,l=t.y+f+o;break;case"left":s=t.x-i-o,l=t.y+f/2-a/2;break;case"right":s=t.x+u+o,l=t.y+f/2-a/2}return[s,l]}function mM(r){return r==="center"||r==="middle"}function cet(r,t,e){var n=f_(r).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=wf(t,i,n.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),o=a.models[0];if(o){var s=e.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=St(u).tooltipConfig;if(f&&f.name===r.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}const het=oet;function vet(r){Lt(Gf),r.registerComponentModel(Utt),r.registerComponentView(het),r.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},pe),r.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},pe)}var det=["rect","polygon","keep","clear"];function pet(r,t){var e=Zt(r?r.brush:[]);if(e.length){var n=[];M(e,function(l){var u=l.hasOwnProperty("toolbox")?l.toolbox:[];u instanceof Array&&(n=n.concat(u))});var i=r&&r.toolbox;Y(i)&&(i=i[0]),i||(i={feature:{}},r.toolbox=[i]);var a=i.feature||(i.feature={}),o=a.brush||(a.brush={}),s=o.type||(o.type=[]);s.push.apply(s,n),get(s),t&&!s.length&&s.push.apply(s,det)}}function get(r){var t={};M(r,function(e){t[e]=1}),r.length=0,M(t,function(e,n){r.push(n)})}var _M=M;function SM(r){if(r){for(var t in r)if(r.hasOwnProperty(t))return!0}}function h0(r,t,e){var n={};return _M(t,function(a){var o=n[a]=i();_M(r[a],function(s,l){if(Ge.isValidType(l)){var u={type:l,visual:s};e&&e(u,a),o[l]=new Ge(u),l==="opacity"&&(u=mt(u),u.type="colorAlpha",o.__hidden.__alphaForOpacity=new Ge(u))}})}),n;function i(){var a=function(){};a.prototype.__hidden=a.prototype;var o=new a;return o}}function TO(r,t,e){var n;M(e,function(i){t.hasOwnProperty(i)&&SM(t[i])&&(n=!0)}),n&&M(e,function(i){t.hasOwnProperty(i)&&SM(t[i])?r[i]=mt(t[i]):delete r[i]})}function yet(r,t,e,n,i,a){var o={};M(r,function(c){var h=Ge.prepareVisualTypes(t[c]);o[c]=h});var s;function l(c){return H_(e,s,c)}function u(c,h){B2(e,s,c,h)}a==null?e.each(f):e.each([a],f);function f(c,h){s=a==null?c:h;var v=e.getRawDataItem(s);if(!(v&&v.visualMap===!1))for(var d=n.call(i,c),p=t[d],g=o[d],y=0,m=g.length;yt[0][1]&&(t[0][1]=a[0]),a[1]t[1][1]&&(t[1][1]=a[1])}return t&&AM(t)}};function AM(r){return new Mt(r[0][0],r[1][0],r[0][1]-r[0][0],r[1][1]-r[1][0])}var Cet=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(e,n){this.ecModel=e,this.api=n,this.model,(this._brushController=new P1(n.getZr())).on("brush",at(this._onBrush,this)).mount()},t.prototype.render=function(e,n,i,a){this.model=e,this._updateController(e,n,i,a)},t.prototype.updateTransform=function(e,n,i,a){AO(n),this._updateController(e,n,i,a)},t.prototype.updateVisual=function(e,n,i,a){this.updateTransform(e,n,i,a)},t.prototype.updateView=function(e,n,i,a){this._updateController(e,n,i,a)},t.prototype._updateController=function(e,n,i,a){(!a||a.$from!==e.id)&&this._brushController.setPanels(e.brushTargetManager.makePanelOpts(i)).enableBrush(e.brushOption).updateCovers(e.areas.slice())},t.prototype.dispose=function(){this._brushController.dispose()},t.prototype._onBrush=function(e){var n=this.model.id,i=this.model.brushTargetManager.setOutputRanges(e.areas,this.ecModel);(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:mt(i),$from:n}),e.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:n,areas:mt(i),$from:n})},t.type="brush",t}(fe);const Met=Cet;var Det="#ddd",Iet=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.areas=[],e.brushOption={},e}return t.prototype.optionUpdated=function(e,n){var i=this.option;!n&&TO(i,e,["inBrush","outOfBrush"]);var a=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:Det},a.hasOwnProperty("liftZ")||(a.liftZ=5)},t.prototype.setAreas=function(e){e&&(this.areas=Z(e,function(n){return CM(this.option,n)},this))},t.prototype.setBrushOption=function(e){this.brushOption=CM(this.option,e),this.brushType=this.brushOption.brushType},t.type="brush",t.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],t.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},t}(Bt);function CM(r,t){return Tt({brushType:r.brushType,brushMode:r.brushMode,transformable:r.transformable,brushStyle:new te(r.brushStyle).getItemStyle(),removeOnClick:r.removeOnClick,z:r.z},t,!0)}const Let=Iet;var Pet=["rect","polygon","lineX","lineY","keep","clear"],Ret=function(r){B(t,r);function t(){return r!==null&&r.apply(this,arguments)||this}return t.prototype.render=function(e,n,i){var a,o,s;n.eachComponent({mainType:"brush"},function(l){a=l.brushType,o=l.brushOption.brushMode||"single",s=s||!!l.areas.length}),this._brushType=a,this._brushMode=o,M(e.get("type",!0),function(l){e.setIconStatus(l,(l==="keep"?o==="multiple":l==="clear"?s:l===a)?"emphasis":"normal")})},t.prototype.updateView=function(e,n,i){this.render(e,n,i)},t.prototype.getIcons=function(){var e=this.model,n=e.get("icon",!0),i={};return M(e.get("type",!0),function(a){n[a]&&(i[a]=n[a])}),i},t.prototype.onclick=function(e,n,i){var a=this._brushType,o=this._brushMode;i==="clear"?(n.dispatchAction({type:"axisAreaSelect",intervals:[]}),n.dispatchAction({type:"brush",command:"clear",areas:[]})):n.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:i==="keep"?a:a===i?!1:i,brushMode:i==="keep"?o==="multiple"?"single":"multiple":o}})},t.getDefaultOption=function(e){var n={show:!0,type:Pet.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:e.getLocaleModel().get(["toolbox","brush","title"])};return n},t}(Fr);const Eet=Ret;function ket(r){r.registerComponentView(Met),r.registerComponentModel(Let),r.registerPreprocessor(pet),r.registerVisual(r.PRIORITY.VISUAL.BRUSH,xet),r.registerAction({type:"brush",event:"brush",update:"updateVisual"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(n){n.setAreas(t.areas)})}),r.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},pe),r.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},pe),_s("brush",Eet)}var Oet=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.layoutMode={type:"box",ignoreSize:!0},e}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},t}(Bt),Net=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,n,i){if(this.group.removeAll(),!!e.get("show")){var a=this.group,o=e.getModel("textStyle"),s=e.getModel("subtextStyle"),l=e.get("textAlign"),u=xt(e.get("textBaseline"),e.get("textVerticalAlign")),f=new Gt({style:Qt(o,{text:e.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),h=e.get("subtext"),v=new Gt({style:Qt(s,{text:h,fill:s.getTextColor(),y:c.height+e.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),d=e.get("link"),p=e.get("sublink"),g=e.get("triggerEvent",!0);f.silent=!d&&!g,v.silent=!p&&!g,d&&f.on("click",function(){Kh(d,"_"+e.get("target"))}),p&&v.on("click",function(){Kh(p,"_"+e.get("subtarget"))}),St(f).eventData=St(v).eventData=g?{componentType:"title",componentIndex:e.componentIndex}:null,a.add(f),h&&a.add(v);var y=a.getBoundingRect(),m=e.getBoxLayoutParams();m.width=y.width,m.height=y.height;var _=be(m,{width:i.getWidth(),height:i.getHeight()},e.get("padding"));l||(l=e.get("left")||e.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=e.get("top")||e.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),a.x=_.x,a.y=_.y,a.markRedraw();var S={align:l,verticalAlign:u};f.setStyle(S),v.setStyle(S),y=a.getBoundingRect();var x=_.margin,b=e.getItemStyle(["color","opacity"]);b.fill=e.get("backgroundColor");var w=new Vt({shape:{x:y.x-x[3],y:y.y-x[0],width:y.width+x[1]+x[3],height:y.height+x[0]+x[2],r:e.get("borderRadius")},style:b,subPixelOptimize:!0,silent:!0});a.add(w)}},t.type="title",t}(fe);function Vet(r){r.registerComponentModel(Oet),r.registerComponentView(Net)}var Bet=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.layoutMode="box",e}return t.prototype.init=function(e,n,i){this.mergeDefaultAndTheme(e,i),this._initData()},t.prototype.mergeOption=function(e){r.prototype.mergeOption.apply(this,arguments),this._initData()},t.prototype.setCurrentIndex=function(e){e==null&&(e=this.option.currentIndex);var n=this._data.count();this.option.loop?e=(e%n+n)%n:(e>=n&&(e=n-1),e<0&&(e=0)),this.option.currentIndex=e},t.prototype.getCurrentIndex=function(){return this.option.currentIndex},t.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},t.prototype.setPlayState=function(e){this.option.autoPlay=!!e},t.prototype.getPlayState=function(){return!!this.option.autoPlay},t.prototype._initData=function(){var e=this.option,n=e.data||[],i=e.axisType,a=this._names=[],o;i==="category"?(o=[],M(n,function(u,f){var c=xe(tl(u),""),h;yt(u)?(h=mt(u),h.value=f):h=f,o.push(h),a.push(c)})):o=n;var s={category:"ordinal",time:"time",value:"number"}[i]||"number",l=this._data=new sr([{name:"value",type:s}],this);l.initData(o,a)},t.prototype.getData=function(){return this._data},t.prototype.getCategories=function(){if(this.get("axisType")==="category")return this._names.slice()},t.type="timeline",t.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},t}(Bt);const MM=Bet;var CO=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.type="timeline.slider",t.defaultOption=ya(MM.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),t}(MM);_e(CO,gd.prototype);const zet=CO;var Get=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.type="timeline",t}(fe);const Fet=Get;var Het=function(r){B(t,r);function t(e,n,i,a){var o=r.call(this,e,n,i)||this;return o.type=a||"value",o}return t.prototype.getLabelModel=function(){return this.model.getModel("label")},t.prototype.isHorizontal=function(){return this.model.get("orient")==="horizontal"},t}(mn);const Wet=Het;var iy=Math.PI,DM=Nt(),$et=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(e,n){this.api=n},t.prototype.render=function(e,n,i){if(this.model=e,this.api=i,this.ecModel=n,this.group.removeAll(),e.get("show",!0)){var a=this._layout(e,i),o=this._createGroup("_mainGroup"),s=this._createGroup("_labelGroup"),l=this._axis=this._createAxis(a,e);e.formatTooltip=function(u){var f=l.scale.getLabel({value:u});return Ie("nameValue",{noName:!0,value:f})},M(["AxisLine","AxisTick","Control","CurrentPointer"],function(u){this["_render"+u](a,o,l,e)},this),this._renderAxisLabel(a,s,l,e),this._position(a,e)}this._doPlayStop(),this._updateTicksStatus()},t.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},t.prototype.dispose=function(){this._clearTimer()},t.prototype._layout=function(e,n){var i=e.get(["label","position"]),a=e.get("orient"),o=Yet(e,n),s;i==null||i==="auto"?s=a==="horizontal"?o.y+o.height/2=0||s==="+"?"left":"right"},u={horizontal:s>=0||s==="+"?"top":"bottom",vertical:"middle"},f={horizontal:0,vertical:iy/2},c=a==="vertical"?o.height:o.width,h=e.getModel("controlStyle"),v=h.get("show",!0),d=v?h.get("itemSize"):0,p=v?h.get("itemGap"):0,g=d+p,y=e.get(["label","rotate"])||0;y=y*iy/180;var m,_,S,x=h.get("position",!0),b=v&&h.get("showPlayBtn",!0),w=v&&h.get("showPrevBtn",!0),T=v&&h.get("showNextBtn",!0),A=0,C=c;x==="left"||x==="bottom"?(b&&(m=[0,0],A+=g),w&&(_=[A,0],A+=g),T&&(S=[C-d,0],C-=g)):(b&&(m=[C-d,0],C-=g),w&&(_=[0,0],A+=g),T&&(S=[C-d,0],C-=g));var D=[A,C];return e.get("inverse")&&D.reverse(),{viewRect:o,mainLength:c,orient:a,rotation:f[a],labelRotation:y,labelPosOpt:s,labelAlign:e.get(["label","align"])||l[a],labelBaseline:e.get(["label","verticalAlign"])||e.get(["label","baseline"])||u[a],playPosition:m,prevBtnPosition:_,nextBtnPosition:S,axisExtent:D,controlSize:d,controlGap:p}},t.prototype._position=function(e,n){var i=this._mainGroup,a=this._labelGroup,o=e.viewRect;if(e.orient==="vertical"){var s=Cr(),l=o.x,u=o.y+o.height;$n(s,s,[-l,-u]),Oo(s,s,-iy/2),$n(s,s,[l,u]),o=o.clone(),o.applyTransform(s)}var f=m(o),c=m(i.getBoundingRect()),h=m(a.getBoundingRect()),v=[i.x,i.y],d=[a.x,a.y];d[0]=v[0]=f[0][0];var p=e.labelPosOpt;if(p==null||nt(p)){var g=p==="+"?0:1;_(v,c,f,1,g),_(d,h,f,1,1-g)}else{var g=p>=0?0:1;_(v,c,f,1,g),d[1]=v[1]+p}i.setPosition(v),a.setPosition(d),i.rotation=a.rotation=e.rotation,y(i),y(a);function y(S){S.originX=f[0][0]-S.x,S.originY=f[1][0]-S.y}function m(S){return[[S.x,S.x+S.width],[S.y,S.y+S.height]]}function _(S,x,b,w,T){S[w]+=b[w][T]-x[w][T]}},t.prototype._createAxis=function(e,n){var i=n.getData(),a=n.get("axisType"),o=Uet(n,a);o.getTicks=function(){return i.mapArray(["value"],function(u){return{value:u}})};var s=i.getDataExtent("value");o.setExtent(s[0],s[1]),o.calcNiceTicks();var l=new Wet("value",o,e.axisExtent,a);return l.model=n,l},t.prototype._createGroup=function(e){var n=this[e]=new _t;return this.group.add(n),n},t.prototype._renderAxisLine=function(e,n,i,a){var o=i.getExtent();if(a.get(["lineStyle","show"])){var s=new Ee({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:F({lineCap:"round"},a.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});n.add(s);var l=this._progressLine=new Ee({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:pt({lineCap:"round",lineWidth:s.style.lineWidth},a.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});n.add(l)}},t.prototype._renderAxisTick=function(e,n,i,a){var o=this,s=a.getData(),l=i.scale.getTicks();this._tickSymbols=[],M(l,function(u){var f=i.dataToCoord(u.value),c=s.getItemModel(u.value),h=c.getModel("itemStyle"),v=c.getModel(["emphasis","itemStyle"]),d=c.getModel(["progress","itemStyle"]),p={x:f,y:0,onclick:at(o._changeTimeline,o,u.value)},g=IM(c,h,n,p);g.ensureState("emphasis").style=v.getItemStyle(),g.ensureState("progress").style=d.getItemStyle(),xo(g);var y=St(g);c.get("tooltip")?(y.dataIndex=u.value,y.dataModel=a):y.dataIndex=y.dataModel=null,o._tickSymbols.push(g)})},t.prototype._renderAxisLabel=function(e,n,i,a){var o=this,s=i.getLabelModel();if(s.get("show")){var l=a.getData(),u=i.getViewLabels();this._tickLabels=[],M(u,function(f){var c=f.tickValue,h=l.getItemModel(c),v=h.getModel("label"),d=h.getModel(["emphasis","label"]),p=h.getModel(["progress","label"]),g=i.dataToCoord(f.tickValue),y=new Gt({x:g,y:0,rotation:e.labelRotation-e.rotation,onclick:at(o._changeTimeline,o,c),silent:!1,style:Qt(v,{text:f.formattedLabel,align:e.labelAlign,verticalAlign:e.labelBaseline})});y.ensureState("emphasis").style=Qt(d),y.ensureState("progress").style=Qt(p),n.add(y),xo(y),DM(y).dataIndex=c,o._tickLabels.push(y)})}},t.prototype._renderControl=function(e,n,i,a){var o=e.controlSize,s=e.rotation,l=a.getModel("controlStyle").getItemStyle(),u=a.getModel(["emphasis","controlStyle"]).getItemStyle(),f=a.getPlayState(),c=a.get("inverse",!0);h(e.nextBtnPosition,"next",at(this._changeTimeline,this,c?"-":"+")),h(e.prevBtnPosition,"prev",at(this._changeTimeline,this,c?"+":"-")),h(e.playPosition,f?"stop":"play",at(this._handlePlayClick,this,!f),!0);function h(v,d,p,g){if(v){var y=pn(xt(a.get(["controlStyle",d+"BtnSize"]),o),o),m=[0,-y/2,y,y],_=Zet(a,d+"Icon",m,{x:v[0],y:v[1],originX:o/2,originY:0,rotation:g?-s:0,rectHover:!0,style:l,onclick:p});_.ensureState("emphasis").style=u,n.add(_),xo(_)}}},t.prototype._renderCurrentPointer=function(e,n,i,a){var o=a.getData(),s=a.getCurrentIndex(),l=o.getItemModel(s).getModel("checkpointStyle"),u=this,f={onCreate:function(c){c.draggable=!0,c.drift=at(u._handlePointerDrag,u),c.ondragend=at(u._handlePointerDragend,u),LM(c,u._progressLine,s,i,a,!0)},onUpdate:function(c){LM(c,u._progressLine,s,i,a)}};this._currentPointer=IM(l,l,this._mainGroup,{},this._currentPointer,f)},t.prototype._handlePlayClick=function(e){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:e,from:this.uid})},t.prototype._handlePointerDrag=function(e,n,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},t.prototype._handlePointerDragend=function(e){this._pointerChangeTimeline([e.offsetX,e.offsetY],!0)},t.prototype._pointerChangeTimeline=function(e,n){var i=this._toAxisCoord(e)[0],a=this._axis,o=$r(a.getExtent().slice());i>o[1]&&(i=o[1]),i=0&&(o[a]=+o[a].toFixed(h)),[o,c]}var ay={min:bt($c,"min"),max:bt($c,"max"),average:bt($c,"average"),median:bt($c,"median")};function df(r,t){if(t){var e=r.getData(),n=r.coordinateSystem,i=n&&n.dimensions;if(!ert(t)&&!Y(t.coord)&&Y(i)){var a=DO(t,e,n,r);if(t=mt(t),t.type&&ay[t.type]&&a.baseAxis&&a.valueAxis){var o=Dt(i,a.baseAxis.dim),s=Dt(i,a.valueAxis.dim),l=ay[t.type](e,a.baseDataDim,a.valueDataDim,o,s);t.coord=l[0],t.value=l[1]}else t.coord=[t.xAxis!=null?t.xAxis:t.radiusAxis,t.yAxis!=null?t.yAxis:t.angleAxis]}if(t.coord==null||!Y(i))t.coord=[];else for(var u=t.coord,f=0;f<2;f++)ay[u[f]]&&(u[f]=nS(e,e.mapDimension(i[f]),u[f]));return t}}function DO(r,t,e,n){var i={};return r.valueIndex!=null||r.valueDim!=null?(i.valueDataDim=r.valueIndex!=null?t.getDimension(r.valueIndex):r.valueDim,i.valueAxis=e.getAxis(rrt(n,i.valueDataDim)),i.baseAxis=e.getOtherAxis(i.valueAxis),i.baseDataDim=t.mapDimension(i.baseAxis.dim)):(i.baseAxis=n.getBaseAxis(),i.valueAxis=e.getOtherAxis(i.baseAxis),i.baseDataDim=t.mapDimension(i.baseAxis.dim),i.valueDataDim=t.mapDimension(i.valueAxis.dim)),i}function rrt(r,t){var e=r.getData().getDimensionInfo(t);return e&&e.coordDim}function pf(r,t){return r&&r.containData&&t.coord&&!d0(t)?r.containData(t.coord):!0}function nrt(r,t,e){return r&&r.containZone&&t.coord&&e.coord&&!d0(t)&&!d0(e)?r.containZone(t.coord,e.coord):!0}function IO(r,t){return r?function(e,n,i,a){var o=a<2?e.coord&&e.coord[a]:e.value;return ra(o,t[a])}:function(e,n,i,a){return ra(e.value,t[a])}}function nS(r,t,e){if(e==="average"){var n=0,i=0;return r.each(t,function(a,o){isNaN(a)||(n+=a,i++)}),n/i}else return e==="median"?r.getMedian(t):r.getDataExtent(t)[e==="max"?1:0]}var oy=Nt(),irt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(){this.markerGroupMap=ft()},t.prototype.render=function(e,n,i){var a=this,o=this.markerGroupMap;o.each(function(s){oy(s).keep=!1}),n.eachSeries(function(s){var l=va.getMarkerModelFromSeries(s,a.type);l&&a.renderSeries(s,l,n,i)}),o.each(function(s){!oy(s).keep&&a.group.remove(s.group)})},t.prototype.markKeep=function(e){oy(e).keep=!0},t.prototype.toggleBlurSeries=function(e,n){var i=this;M(e,function(a){var o=va.getMarkerModelFromSeries(a,i.type);if(o){var s=o.getData();s.eachItemGraphicEl(function(l){l&&(n?eP(l):y_(l))})}})},t.type="marker",t}(fe);const iS=irt;function RM(r,t,e){var n=t.coordinateSystem;r.each(function(i){var a=r.getItemModel(i),o,s=rt(a.get("x"),e.getWidth()),l=rt(a.get("y"),e.getHeight());if(!isNaN(s)&&!isNaN(l))o=[s,l];else if(t.getMarkerPosition)o=t.getMarkerPosition(r.getValues(r.dimensions,i));else if(n){var u=r.get(n.dimensions[0],i),f=r.get(n.dimensions[1],i);o=n.dataToPoint([u,f])}isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),r.setItemLayout(i,o)})}var art=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.updateTransform=function(e,n,i){n.eachSeries(function(a){var o=va.getMarkerModelFromSeries(a,"markPoint");o&&(RM(o.getData(),a,i),this.markerGroupMap.get(a.id).updateLayout())},this)},t.prototype.renderSeries=function(e,n,i,a){var o=e.coordinateSystem,s=e.id,l=e.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,new Ef),c=ort(o,e,n);n.setData(c),RM(n.getData(),e,a),c.each(function(h){var v=c.getItemModel(h),d=v.getShallow("symbol"),p=v.getShallow("symbolSize"),g=v.getShallow("symbolRotate"),y=v.getShallow("symbolOffset"),m=v.getShallow("symbolKeepAspect");if(vt(d)||vt(p)||vt(g)||vt(y)){var _=n.getRawValue(h),S=n.getDataParams(h);vt(d)&&(d=d(_,S)),vt(p)&&(p=p(_,S)),vt(g)&&(g=g(_,S)),vt(y)&&(y=y(_,S))}var x=v.getModel("itemStyle").getItemStyle(),b=If(l,"color");x.fill||(x.fill=b),c.setItemVisual(h,{symbol:d,symbolSize:p,symbolRotate:g,symbolOffset:y,symbolKeepAspect:m,style:x})}),f.updateData(c),this.group.add(f.group),c.eachItemGraphicEl(function(h){h.traverse(function(v){St(v).dataModel=n})}),this.markKeep(f),f.group.silent=n.get("silent")||e.get("silent")},t.type="markPoint",t}(iS);function ort(r,t,e){var n;r?n=Z(r&&r.dimensions,function(s){var l=t.getData().getDimensionInfo(t.getData().mapDimension(s))||{};return F(F({},l),{name:s,ordinalMeta:null})}):n=[{name:"value",type:"float"}];var i=new sr(n,e),a=Z(e.get("data"),bt(df,t));r&&(a=$t(a,bt(pf,r)));var o=IO(!!r,n);return i.initData(a,null,o),i}const srt=art;function lrt(r){r.registerComponentModel(trt),r.registerComponentView(srt),r.registerPreprocessor(function(t){rS(t.series,"markPoint")&&(t.markPoint=t.markPoint||{})})}var urt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.createMarkerModelFromSeries=function(e,n,i){return new t(e,n,i)},t.type="markLine",t.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},t}(va);const frt=urt;var Uc=Nt(),crt=function(r,t,e,n){var i=r.getData(),a;if(Y(n))a=n;else{var o=n.type;if(o==="min"||o==="max"||o==="average"||o==="median"||n.xAxis!=null||n.yAxis!=null){var s=void 0,l=void 0;if(n.yAxis!=null||n.xAxis!=null)s=t.getAxis(n.yAxis!=null?"y":"x"),l=Re(n.yAxis,n.xAxis);else{var u=DO(n,i,t,r);s=u.valueAxis;var f=hR(i,u.valueDataDim);l=nS(i,f,o)}var c=s.dim==="x"?0:1,h=1-c,v=mt(n),d={coord:[]};v.type=null,v.coord=[],v.coord[h]=-1/0,d.coord[h]=1/0;var p=e.get("precision");p>=0&&Ft(l)&&(l=+l.toFixed(Math.min(p,20))),v.coord[c]=d.coord[c]=l,a=[v,d,{type:o,valueIndex:n.valueIndex,value:l}]}else a=[]}var g=[df(r,a[0]),df(r,a[1]),F({},a[2])];return g[2].type=g[2].type||null,Tt(g[2],g[0]),Tt(g[2],g[1]),g};function bv(r){return!isNaN(r)&&!isFinite(r)}function EM(r,t,e,n){var i=1-r,a=n.dimensions[r];return bv(t[i])&&bv(e[i])&&t[r]===e[r]&&n.getAxis(a).containData(t[r])}function hrt(r,t){if(r.type==="cartesian2d"){var e=t[0].coord,n=t[1].coord;if(e&&n&&(EM(1,e,n,r)||EM(0,e,n,r)))return!0}return pf(r,t[0])&&pf(r,t[1])}function sy(r,t,e,n,i){var a=n.coordinateSystem,o=r.getItemModel(t),s,l=rt(o.get("x"),i.getWidth()),u=rt(o.get("y"),i.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(n.getMarkerPosition)s=n.getMarkerPosition(r.getValues(r.dimensions,t));else{var f=a.dimensions,c=r.get(f[0],t),h=r.get(f[1],t);s=a.dataToPoint([c,h])}if(Fo(a,"cartesian2d")){var v=a.getAxis("x"),d=a.getAxis("y"),f=a.dimensions;bv(r.get(f[0],t))?s[0]=v.toGlobalCoord(v.getExtent()[e?0:1]):bv(r.get(f[1],t))&&(s[1]=d.toGlobalCoord(d.getExtent()[e?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}r.setItemLayout(t,s)}var vrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.updateTransform=function(e,n,i){n.eachSeries(function(a){var o=va.getMarkerModelFromSeries(a,"markLine");if(o){var s=o.getData(),l=Uc(o).from,u=Uc(o).to;l.each(function(f){sy(l,f,!0,a,i),sy(u,f,!1,a,i)}),s.each(function(f){s.setItemLayout(f,[l.getItemLayout(f),u.getItemLayout(f)])}),this.markerGroupMap.get(a.id).updateLayout()}},this)},t.prototype.renderSeries=function(e,n,i,a){var o=e.coordinateSystem,s=e.id,l=e.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,new A1);this.group.add(f.group);var c=drt(o,e,n),h=c.from,v=c.to,d=c.line;Uc(n).from=h,Uc(n).to=v,n.setData(d);var p=n.get("symbol"),g=n.get("symbolSize"),y=n.get("symbolRotate"),m=n.get("symbolOffset");Y(p)||(p=[p,p]),Y(g)||(g=[g,g]),Y(y)||(y=[y,y]),Y(m)||(m=[m,m]),c.from.each(function(S){_(h,S,!0),_(v,S,!1)}),d.each(function(S){var x=d.getItemModel(S).getModel("lineStyle").getLineStyle();d.setItemLayout(S,[h.getItemLayout(S),v.getItemLayout(S)]),x.stroke==null&&(x.stroke=h.getItemVisual(S,"style").fill),d.setItemVisual(S,{fromSymbolKeepAspect:h.getItemVisual(S,"symbolKeepAspect"),fromSymbolOffset:h.getItemVisual(S,"symbolOffset"),fromSymbolRotate:h.getItemVisual(S,"symbolRotate"),fromSymbolSize:h.getItemVisual(S,"symbolSize"),fromSymbol:h.getItemVisual(S,"symbol"),toSymbolKeepAspect:v.getItemVisual(S,"symbolKeepAspect"),toSymbolOffset:v.getItemVisual(S,"symbolOffset"),toSymbolRotate:v.getItemVisual(S,"symbolRotate"),toSymbolSize:v.getItemVisual(S,"symbolSize"),toSymbol:v.getItemVisual(S,"symbol"),style:x})}),f.updateData(d),c.line.eachItemGraphicEl(function(S){St(S).dataModel=n,S.traverse(function(x){St(x).dataModel=n})});function _(S,x,b){var w=S.getItemModel(x);sy(S,x,b,e,a);var T=w.getModel("itemStyle").getItemStyle();T.fill==null&&(T.fill=If(l,"color")),S.setItemVisual(x,{symbolKeepAspect:w.get("symbolKeepAspect"),symbolOffset:xt(w.get("symbolOffset",!0),m[b?0:1]),symbolRotate:xt(w.get("symbolRotate",!0),y[b?0:1]),symbolSize:xt(w.get("symbolSize"),g[b?0:1]),symbol:xt(w.get("symbol",!0),p[b?0:1]),style:T})}this.markKeep(f),f.group.silent=n.get("silent")||e.get("silent")},t.type="markLine",t}(iS);function drt(r,t,e){var n;r?n=Z(r&&r.dimensions,function(u){var f=t.getData().getDimensionInfo(t.getData().mapDimension(u))||{};return F(F({},f),{name:u,ordinalMeta:null})}):n=[{name:"value",type:"float"}];var i=new sr(n,e),a=new sr(n,e),o=new sr([],e),s=Z(e.get("data"),bt(crt,t,r,e));r&&(s=$t(s,bt(hrt,r)));var l=IO(!!r,n);return i.initData(Z(s,function(u){return u[0]}),null,l),a.initData(Z(s,function(u){return u[1]}),null,l),o.initData(Z(s,function(u){return u[2]})),o.hasItemOption=!0,{from:i,to:a,line:o}}const prt=vrt;function grt(r){r.registerComponentModel(frt),r.registerComponentView(prt),r.registerPreprocessor(function(t){rS(t.series,"markLine")&&(t.markLine=t.markLine||{})})}var yrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.createMarkerModelFromSeries=function(e,n,i){return new t(e,n,i)},t.type="markArea",t.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},t}(va);const mrt=yrt;var Yc=Nt(),_rt=function(r,t,e,n){var i=n[0],a=n[1];if(!(!i||!a)){var o=df(r,i),s=df(r,a),l=o.coord,u=s.coord;l[0]=Re(l[0],-1/0),l[1]=Re(l[1],-1/0),u[0]=Re(u[0],1/0),u[1]=Re(u[1],1/0);var f=J0([{},o,s]);return f.coord=[o.coord,s.coord],f.x0=o.x,f.y0=o.y,f.x1=s.x,f.y1=s.y,f}};function wv(r){return!isNaN(r)&&!isFinite(r)}function kM(r,t,e,n){var i=1-r;return wv(t[i])&&wv(e[i])}function Srt(r,t){var e=t.coord[0],n=t.coord[1],i={coord:e,x:t.x0,y:t.y0},a={coord:n,x:t.x1,y:t.y1};return Fo(r,"cartesian2d")?e&&n&&(kM(1,e,n)||kM(0,e,n))?!0:nrt(r,i,a):pf(r,i)||pf(r,a)}function OM(r,t,e,n,i){var a=n.coordinateSystem,o=r.getItemModel(t),s,l=rt(o.get(e[0]),i.getWidth()),u=rt(o.get(e[1]),i.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(n.getMarkerPosition){var f=r.getValues(["x0","y0"],t),c=r.getValues(["x1","y1"],t),h=a.clampData(f),v=a.clampData(c),d=[];e[0]==="x0"?d[0]=h[0]>v[0]?c[0]:f[0]:d[0]=h[0]>v[0]?f[0]:c[0],e[1]==="y0"?d[1]=h[1]>v[1]?c[1]:f[1]:d[1]=h[1]>v[1]?f[1]:c[1],s=n.getMarkerPosition(d,e,!0)}else{var p=r.get(e[0],t),g=r.get(e[1],t),y=[p,g];a.clampData&&a.clampData(y,y),s=a.dataToPoint(y,!0)}if(Fo(a,"cartesian2d")){var m=a.getAxis("x"),_=a.getAxis("y"),p=r.get(e[0],t),g=r.get(e[1],t);wv(p)?s[0]=m.toGlobalCoord(m.getExtent()[e[0]==="x0"?0:1]):wv(g)&&(s[1]=_.toGlobalCoord(_.getExtent()[e[1]==="y0"?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}return s}var NM=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],xrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.updateTransform=function(e,n,i){n.eachSeries(function(a){var o=va.getMarkerModelFromSeries(a,"markArea");if(o){var s=o.getData();s.each(function(l){var u=Z(NM,function(c){return OM(s,l,c,a,i)});s.setItemLayout(l,u);var f=s.getItemGraphicEl(l);f.setShape("points",u)})}},this)},t.prototype.renderSeries=function(e,n,i,a){var o=e.coordinateSystem,s=e.id,l=e.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,{group:new _t});this.group.add(f.group),this.markKeep(f);var c=brt(o,e,n);n.setData(c),c.each(function(h){var v=Z(NM,function(T){return OM(c,h,T,e,a)}),d=o.getAxis("x").scale,p=o.getAxis("y").scale,g=d.getExtent(),y=p.getExtent(),m=[d.parse(c.get("x0",h)),d.parse(c.get("x1",h))],_=[p.parse(c.get("y0",h)),p.parse(c.get("y1",h))];$r(m),$r(_);var S=!(g[0]>m[1]||g[1]_[1]||y[1]<_[0]),x=!S;c.setItemLayout(h,{points:v,allClipped:x});var b=c.getItemModel(h).getModel("itemStyle").getItemStyle(),w=If(l,"color");b.fill||(b.fill=w,nt(b.fill)&&(b.fill=Bh(b.fill,.4))),b.stroke||(b.stroke=w),c.setItemVisual(h,"style",b)}),c.diff(Yc(f).data).add(function(h){var v=c.getItemLayout(h);if(!v.allClipped){var d=new yr({shape:{points:v.points}});c.setItemGraphicEl(h,d),f.group.add(d)}}).update(function(h,v){var d=Yc(f).data.getItemGraphicEl(v),p=c.getItemLayout(h);p.allClipped?d&&f.group.remove(d):(d?Ht(d,{shape:{points:p.points}},n,h):d=new yr({shape:{points:p.points}}),c.setItemGraphicEl(h,d),f.group.add(d))}).remove(function(h){var v=Yc(f).data.getItemGraphicEl(h);f.group.remove(v)}).execute(),c.eachItemGraphicEl(function(h,v){var d=c.getItemModel(v),p=c.getItemVisual(v,"style");h.useStyle(c.getItemVisual(v,"style")),He(h,De(d),{labelFetcher:n,labelDataIndex:v,defaultText:c.getName(v)||"",inheritColor:nt(p.fill)?Bh(p.fill,1):"#000"}),Fe(h,d),ue(h,null,null,d.get(["emphasis","disabled"])),St(h).dataModel=n}),Yc(f).data=c,f.group.silent=n.get("silent")||e.get("silent")},t.type="markArea",t}(iS);function brt(r,t,e){var n,i,a=["x0","y0","x1","y1"];if(r){var o=Z(r&&r.dimensions,function(u){var f=t.getData(),c=f.getDimensionInfo(f.mapDimension(u))||{};return F(F({},c),{name:u,ordinalMeta:null})});i=Z(a,function(u,f){return{name:u,type:o[f%2].type}}),n=new sr(i,e)}else i=[{name:"value",type:"float"}],n=new sr(i,e);var s=Z(e.get("data"),bt(_rt,t,r,e));r&&(s=$t(s,bt(Srt,r)));var l=r?function(u,f,c,h){var v=u.coord[Math.floor(h/2)][h%2];return ra(v,i[h])}:function(u,f,c,h){return ra(u.value,i[h])};return n.initData(s,null,l),n.hasItemOption=!0,n}const wrt=xrt;function Trt(r){r.registerComponentModel(mrt),r.registerComponentView(wrt),r.registerPreprocessor(function(t){rS(t.series,"markArea")&&(t.markArea=t.markArea||{})})}var Art=function(r,t){if(t==="all")return{type:"all",title:r.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:r.getLocaleModel().get(["legend","selector","inverse"])}},Crt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.layoutMode={type:"box",ignoreSize:!0},e}return t.prototype.init=function(e,n,i){this.mergeDefaultAndTheme(e,i),e.selected=e.selected||{},this._updateSelector(e)},t.prototype.mergeOption=function(e,n){r.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},t.prototype._updateSelector=function(e){var n=e.selector,i=this.ecModel;n===!0&&(n=e.selector=["all","inverse"]),Y(n)&&M(n,function(a,o){nt(a)&&(a={type:a}),n[o]=Tt(a,Art(i,a.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var e=this._data;if(e[0]&&this.get("selectedMode")==="single"){for(var n=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(Bt);const p0=Crt;var us=bt,g0=M,Zc=_t,Mrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.newlineDisabled=!1,e}return t.prototype.init=function(){this.group.add(this._contentGroup=new Zc),this.group.add(this._selectorGroup=new Zc),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(e,n,i){var a=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!e.get("show",!0)){var o=e.get("align"),s=e.get("orient");(!o||o==="auto")&&(o=e.get("left")==="right"&&s==="vertical"?"right":"left");var l=e.get("selector",!0),u=e.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,e,n,i,l,s,u);var f=e.getBoxLayoutParams(),c={width:i.getWidth(),height:i.getHeight()},h=e.get("padding"),v=be(f,c,h),d=this.layoutInner(e,o,v,a,l,u),p=be(pt({width:d.width,height:d.height},f),c,h);this.group.x=p.x-d.x,this.group.y=p.y-d.y,this.group.markRedraw(),this.group.add(this._backgroundEl=yO(d,e))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(e,n,i,a,o,s,l){var u=this.getContentGroup(),f=ft(),c=n.get("selectedMode"),h=[];i.eachRawSeries(function(v){!v.get("legendHoverLink")&&h.push(v.id)}),g0(n.getData(),function(v,d){var p=v.get("name");if(!this.newlineDisabled&&(p===""||p===` `)){var g=new Zc;g.newline=!0,u.add(g);return}var y=i.getSeriesByName(p)[0];if(!f.get(p))if(y){var m=y.getData(),_=m.getVisual("legendLineStyle")||{},S=m.getVisual("legendIcon"),x=m.getVisual("style"),b=this._createItem(y,p,d,v,n,e,_,x,S,c,a);b.on("click",us(VM,p,null,a,h)).on("mouseover",us(y0,y.name,null,a,h)).on("mouseout",us(m0,y.name,null,a,h)),i.ssr&&b.eachChild(function(w){var T=St(w);T.seriesIndex=y.seriesIndex,T.dataIndex=d,T.ssrType="legend"}),f.set(p,!0)}else i.eachRawSeries(function(w){if(!f.get(p)&&w.legendVisualProvider){var T=w.legendVisualProvider;if(!T.containName(p))return;var A=T.indexOfName(p),C=T.getItemVisual(A,"style"),D=T.getItemVisual(A,"legendIcon"),I=Mr(C.fill);I&&I[3]===0&&(I[3]=.2,C=F(F({},C),{fill:ci(I,"rgba")}));var L=this._createItem(w,p,d,v,n,e,{},C,D,c,a);L.on("click",us(VM,null,p,a,h)).on("mouseover",us(y0,null,p,a,h)).on("mouseout",us(m0,null,p,a,h)),i.ssr&&L.eachChild(function(P){var E=St(P);E.seriesIndex=w.seriesIndex,E.dataIndex=d,E.ssrType="legend"}),f.set(p,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},t.prototype._createSelector=function(e,n,i,a,o){var s=this.getSelectorGroup();g0(e,function(u){var f=u.type,c=new Gt({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect",legendId:n.id})}});s.add(c);var h=n.getModel("selectorLabel"),v=n.getModel(["emphasis","selectorLabel"]);He(c,{normal:h,emphasis:v},{defaultText:u.title}),xo(c)})},t.prototype._createItem=function(e,n,i,a,o,s,l,u,f,c,h){var v=e.visualDrawType,d=o.get("itemWidth"),p=o.get("itemHeight"),g=o.isSelected(n),y=a.get("symbolRotate"),m=a.get("symbolKeepAspect"),_=a.get("icon");f=_||f||"roundRect";var S=Drt(f,a,l,u,v,g,h),x=new Zc,b=a.getModel("textStyle");if(vt(e.getLegendIcon)&&(!_||_==="inherit"))x.add(e.getLegendIcon({itemWidth:d,itemHeight:p,icon:f,iconRotate:y,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:m}));else{var w=_==="inherit"&&e.getData().getVisual("symbol")?y==="inherit"?e.getData().getVisual("symbolRotate"):y:0;x.add(Irt({itemWidth:d,itemHeight:p,icon:f,iconRotate:w,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:m}))}var T=s==="left"?d+5:-5,A=s,C=o.get("formatter"),D=n;nt(C)&&C?D=C.replace("{name}",n!=null?n:""):vt(C)&&(D=C(n));var I=g?b.getTextColor():a.get("inactiveColor");x.add(new Gt({style:Qt(b,{text:D,x:T,y:p/2,fill:I,align:A,verticalAlign:"middle"},{inheritColor:I})}));var L=new Vt({shape:x.getBoundingRect(),style:{fill:"transparent"}}),P=a.getModel("tooltip");return P.get("show")&&No({el:L,componentModel:o,itemName:n,itemTooltipOption:P.option}),x.add(L),x.eachChild(function(E){E.silent=!0}),L.silent=!c,this.getContentGroup().add(x),xo(x),x.__legendDataIndex=i,x},t.prototype.layoutInner=function(e,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();wo(e.get("orient"),l,e.get("itemGap"),i.width,i.height);var f=l.getBoundingRect(),c=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){wo("horizontal",u,e.get("selectorItemGap",!0));var h=u.getBoundingRect(),v=[-h.x,-h.y],d=e.get("selectorButtonGap",!0),p=e.getOrient().index,g=p===0?"width":"height",y=p===0?"height":"width",m=p===0?"y":"x";s==="end"?v[p]+=f[g]+d:c[p]+=h[g]+d,v[1-p]+=f[y]/2-h[y]/2,u.x=v[0],u.y=v[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[g]=f[g]+d+h[g],_[y]=Math.max(f[y],h[y]),_[m]=Math.min(0,h[m]+v[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(fe);function Drt(r,t,e,n,i,a,o){function s(g,y){g.lineWidth==="auto"&&(g.lineWidth=y.lineWidth>0?2:0),g0(g,function(m,_){g[_]==="inherit"&&(g[_]=y[_])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),f=r.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:$s(c,o),u.fill==="inherit"&&(u.fill=n[i]),u.stroke==="inherit"&&(u.stroke=n[f]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?n:e).opacity),s(u,n);var h=t.getModel("lineStyle"),v=h.getLineStyle();if(s(v,e),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),v.stroke==="auto"&&(v.stroke=n.fill),!a){var d=t.get("inactiveBorderWidth"),p=u[f];u.lineWidth=d==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),v.stroke=h.get("inactiveColor"),v.lineWidth=h.get("inactiveWidth")}return{itemStyle:u,lineStyle:v}}function Irt(r){var t=r.icon||"roundRect",e=me(t,0,0,r.itemWidth,r.itemHeight,r.itemStyle.fill,r.symbolKeepAspect);return e.setStyle(r.itemStyle),e.rotation=(r.iconRotate||0)*Math.PI/180,e.setOrigin([r.itemWidth/2,r.itemHeight/2]),t.indexOf("empty")>-1&&(e.style.stroke=e.style.fill,e.style.fill="#fff",e.style.lineWidth=2),e}function VM(r,t,e,n){m0(r,t,e,n),e.dispatchAction({type:"legendToggleSelect",name:r!=null?r:t}),y0(r,t,e,n)}function LO(r){for(var t=r.getZr().storage.getDisplayList(),e,n=0,i=t.length;ni[o],g=[-v.x,-v.y];n||(g[a]=f[u]);var y=[0,0],m=[-d.x,-d.y],_=xt(e.get("pageButtonGap",!0),e.get("itemGap",!0));if(p){var S=e.get("pageButtonPosition",!0);S==="end"?m[a]+=i[o]-d[o]:y[a]+=d[o]+_}m[1-a]+=v[s]/2-d[s]/2,f.setPosition(g),c.setPosition(y),h.setPosition(m);var x={x:0,y:0};if(x[o]=p?i[o]:v[o],x[s]=Math.max(v[s],d[s]),x[l]=Math.min(0,d[l]+m[1-a]),c.__rectSize=i[o],p){var b={x:0,y:0};b[o]=Math.max(i[o]-d[o]-_,0),b[s]=x[s],c.setClipPath(new Vt({shape:b})),c.__rectSize=b[o]}else h.eachChild(function(T){T.attr({invisible:!0,silent:!0})});var w=this._getPageInfo(e);return w.pageIndex!=null&&Ht(f,{x:w.contentPosition[0],y:w.contentPosition[1]},p?e:null),this._updatePageInfoView(e,w),x},t.prototype._pageGo=function(e,n,i){var a=this._getPageInfo(n)[e];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(e,n){var i=this._controllerGroup;M(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,v=i.childOfName(f);v&&(v.setStyle("fill",h?e.get("pageIconColor",!0):e.get("pageIconInactiveColor",!0)),v.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=e.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",nt(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(e){var n=e.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=e.getOrient().index,s=ly[o],l=uy[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,v=h?1:0,d={contentPosition:[i.x,i.y],pageCount:v,pageIndex:v-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return d;var p=S(c);d.contentPosition[o]=-p.s;for(var g=u+1,y=p,m=p,_=null;g<=h;++g)_=S(f[g]),(!_&&m.e>y.s+a||_&&!x(_,y.s))&&(m.i>y.i?y=m:y=_,y&&(d.pageNextDataIndex==null&&(d.pageNextDataIndex=y.i),++d.pageCount)),m=_;for(var g=u-1,y=p,m=p,_=null;g>=-1;--g)_=S(f[g]),(!_||!x(m,_.s))&&y.i=w&&b.s<=w+a}},t.prototype._findTargetItemIndex=function(e){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===e&&(n=s)}),n!=null?n:a},t.type="legend.scroll",t}(PO);const Ort=krt;function Nrt(r){r.registerAction("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;n!=null&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function Vrt(r){Lt(RO),r.registerComponentModel(Ert),r.registerComponentView(Ort),Nrt(r)}function Brt(r){Lt(RO),Lt(Vrt)}var zrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.type="dataZoom.inside",t.defaultOption=ya(vf.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(vf);const Grt=zrt;var aS=Nt();function Frt(r,t,e){aS(r).coordSysRecordMap.each(function(n){var i=n.dataZoomInfoMap.get(t.uid);i&&(i.getRange=e)})}function Hrt(r,t){for(var e=aS(r).coordSysRecordMap,n=e.keys(),i=0;in[e+t]&&(t=s),i=i&&o.get("preventDefaultMouseMove",!0)}),{controlType:t,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!i}}}function Zrt(r){r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER,function(t,e){var n=aS(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ft());i.each(function(a){a.dataZoomInfoMap=null}),t.eachComponent({mainType:"dataZoom",subType:"inside"},function(a){var o=dO(a);M(o.infoList,function(s){var l=s.model.uid,u=i.get(l)||i.set(l,Wrt(e,s.model)),f=u.dataZoomInfoMap||(u.dataZoomInfoMap=ft());f.set(a.uid,{dzReferCoordSysInfo:s,model:a,getRange:null})})}),i.each(function(a){var o=a.controller,s,l=a.dataZoomInfoMap;if(l){var u=l.keys()[0];u!=null&&(s=l.get(u))}if(!s){EO(i,a);return}var f=Yrt(l);o.enable(f.controlType,f.opt),o.setPointerChecker(a.containsPoint),fl(a,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var Xrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return t.prototype.render=function(e,n,i){if(r.prototype.render.apply(this,arguments),e.noTarget()){this._clear();return}this.range=e.getPercentRange(),Frt(i,e,{pan:at(fy.pan,this),zoom:at(fy.zoom,this),scrollMove:at(fy.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){Hrt(this.api,this.dataZoomModel),this.range=null},t.type="dataZoom.inside",t}(K1),fy={zoom:function(r,t,e,n){var i=this.range,a=i.slice(),o=r.axisModels[0];if(o){var s=cy[t](null,[n.originX,n.originY],o,e,r),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],u=Math.max(1/n.scale,0);a[0]=(a[0]-l)*u+l,a[1]=(a[1]-l)*u+l;var f=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(Wo(0,a,[0,100],0,f.minSpan,f.maxSpan),this.range=a,i[0]!==a[0]||i[1]!==a[1])return a}},pan:FM(function(r,t,e,n,i,a){var o=cy[n]([a.oldX,a.oldY],[a.newX,a.newY],t,i,e);return o.signal*(r[1]-r[0])*o.pixel/o.pixelLength}),scrollMove:FM(function(r,t,e,n,i,a){var o=cy[n]([0,0],[a.scrollDelta,a.scrollDelta],t,i,e);return o.signal*(r[1]-r[0])*a.scrollDelta})};function FM(r){return function(t,e,n,i){var a=this.range,o=a.slice(),s=t.axisModels[0];if(s){var l=r(o,s,t,e,n,i);if(Wo(l,o,[0,100],"all"),this.range=o,a[0]!==o[0]||a[1]!==o[1])return o}}}var cy={grid:function(r,t,e,n,i){var a=e.axis,o={},s=i.model.coordinateSystem.getRect();return r=r||[0,0],a.dim==="x"?(o.pixel=t[0]-r[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=t[1]-r[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(r,t,e,n,i){var a=e.axis,o={},s=i.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return r=r?s.pointToCoord(r):[0,0],t=s.pointToCoord(t),e.mainType==="radiusAxis"?(o.pixel=t[0]-r[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?1:-1):(o.pixel=t[1]-r[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=a.inverse?-1:1),o},singleAxis:function(r,t,e,n,i){var a=e.axis,o=i.model.coordinateSystem.getRect(),s={};return r=r||[0,0],a.orient==="horizontal"?(s.pixel=t[0]-r[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=t[1]-r[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};const qrt=Xrt;function kO(r){j1(r),r.registerComponentModel(Grt),r.registerComponentView(qrt),Zrt(r)}var Krt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.type="dataZoom.slider",t.layoutMode="box",t.defaultOption=ya(vf.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),t}(vf);const jrt=Krt;var Zl=Vt,HM=7,Jrt=1,hy=30,Qrt=7,Xl="horizontal",WM="vertical",tnt=5,ent=["line","bar","candlestick","scatter"],rnt={easing:"cubicOut",duration:100,delay:0},nnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e._displayables={},e}return t.prototype.init=function(e,n){this.api=n,this._onBrush=at(this._onBrush,this),this._onBrushEnd=at(this._onBrushEnd,this)},t.prototype.render=function(e,n,i,a){if(r.prototype.render.apply(this,arguments),fl(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),e.get("show")===!1){this.group.removeAll();return}if(e.noTarget()){this._clear(),this.group.removeAll();return}(!a||a.type!=="dataZoom"||a.from!==this.uid)&&this._buildView(),this._updateView()},t.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){tf(this,"_dispatchZoomAction");var e=this.api.getZr();e.off("mousemove",this._onBrush),e.off("mouseup",this._onBrushEnd)},t.prototype._buildView=function(){var e=this.group;e.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var n=this._displayables.sliderGroup=new _t;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),e.add(n),this._positionGroup()},t.prototype._resetLocation=function(){var e=this.dataZoomModel,n=this.api,i=e.get("brushSelect"),a=i?Qrt:0,o=this._findCoordRect(),s={width:n.getWidth(),height:n.getHeight()},l=this._orient===Xl?{right:s.width-o.x-o.width,top:s.height-hy-HM-a,width:o.width,height:hy}:{right:HM,top:o.y,width:hy,height:o.height},u=ol(e.option);M(["right","top","width","height"],function(c){u[c]==="ph"&&(u[c]=l[c])});var f=be(u,s);this._location={x:f.x,y:f.y},this._size=[f.width,f.height],this._orient===WM&&this._size.reverse()},t.prototype._positionGroup=function(){var e=this.group,n=this._location,i=this._orient,a=this.dataZoomModel.getFirstTargetAxisModel(),o=a&&a.get("inverse"),s=this._displayables.sliderGroup,l=(this._dataShadowInfo||{}).otherAxisInverse;s.attr(i===Xl&&!o?{scaleY:l?1:-1,scaleX:1}:i===Xl&&o?{scaleY:l?1:-1,scaleX:-1}:i===WM&&!o?{scaleY:l?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:l?-1:1,scaleX:-1,rotation:Math.PI/2});var u=e.getBoundingRect([s]);e.x=n.x-u.x,e.y=n.y-u.y,e.markRedraw()},t.prototype._getViewExtent=function(){return[0,this._size[0]]},t.prototype._renderBackground=function(){var e=this.dataZoomModel,n=this._size,i=this._displayables.sliderGroup,a=e.get("brushSelect");i.add(new Zl({silent:!0,shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:e.get("backgroundColor")},z2:-40}));var o=new Zl({shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:"transparent"},z2:0,onclick:at(this._onClickPanel,this)}),s=this.api.getZr();a?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",s.on("mousemove",this._onBrush),s.on("mouseup",this._onBrushEnd)):(s.off("mousemove",this._onBrush),s.off("mouseup",this._onBrushEnd)),i.add(o)},t.prototype._renderDataShadow=function(){var e=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!e)return;var n=this._size,i=this._shadowSize||[],a=e.series,o=a.getRawData(),s=a.getShadowDim&&a.getShadowDim(),l=s&&o.getDimensionInfo(s)?a.getShadowDim():e.otherDim;if(l==null)return;var u=this._shadowPolygonPts,f=this._shadowPolylinePts;if(o!==this._shadowData||l!==this._shadowDim||n[0]!==i[0]||n[1]!==i[1]){var c=o.getDataExtent(l),h=(c[1]-c[0])*.3;c=[c[0]-h,c[1]+h];var v=[0,n[1]],d=[0,n[0]],p=[[n[0],0],[0,0]],g=[],y=d[1]/(o.count()-1),m=0,_=Math.round(o.count()/n[0]),S;o.each([l],function(A,C){if(_>0&&C%_){m+=y;return}var D=A==null||isNaN(A)||A==="",I=D?0:Ut(A,c,v,!0);D&&!S&&C?(p.push([p[p.length-1][0],0]),g.push([g[g.length-1][0],0])):!D&&S&&(p.push([m,0]),g.push([m,0])),p.push([m,I]),g.push([m,I]),m+=y,S=D}),u=this._shadowPolygonPts=p,f=this._shadowPolylinePts=g}this._shadowData=o,this._shadowDim=l,this._shadowSize=[n[0],n[1]];var x=this.dataZoomModel;function b(A){var C=x.getModel(A?"selectedDataBackground":"dataBackground"),D=new _t,I=new yr({shape:{points:u},segmentIgnoreThreshold:1,style:C.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),L=new mr({shape:{points:f},segmentIgnoreThreshold:1,style:C.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return D.add(I),D.add(L),D}for(var w=0;w<3;w++){var T=b(w===1);this._displayables.sliderGroup.add(T),this._displayables.dataShadowSegs.push(T)}},t.prototype._prepareDataShadowInfo=function(){var e=this.dataZoomModel,n=e.get("showDataShadow");if(n!==!1){var i,a=this.ecModel;return e.eachTargetAxis(function(o,s){var l=e.getAxisProxy(o,s).getTargetSeriesModels();M(l,function(u){if(!i&&!(n!==!0&&Dt(ent,u.get("type"))<0)){var f=a.getComponent(Qi(o),s).axis,c=int(o),h,v=u.coordinateSystem;c!=null&&v.getOtherAxis&&(h=v.getOtherAxis(f).inverse),c=u.getData().mapDimension(c),i={thisAxis:f,series:u,thisDim:o,otherDim:c,otherAxisInverse:h}}},this)},this),i}},t.prototype._renderHandle=function(){var e=this.group,n=this._displayables,i=n.handles=[null,null],a=n.handleLabels=[null,null],o=this._displayables.sliderGroup,s=this._size,l=this.dataZoomModel,u=this.api,f=l.get("borderRadius")||0,c=l.get("brushSelect"),h=n.filler=new Zl({silent:c,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(h),o.add(new Zl({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:s[0],height:s[1],r:f},style:{stroke:l.get("dataBackgroundColor")||l.get("borderColor"),lineWidth:Jrt,fill:"rgba(0,0,0,0)"}})),M([0,1],function(_){var S=l.get("handleIcon");!Qh[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var x=me(S,-1,0,2,2,null,!0);x.attr({cursor:$M(this._orient),draggable:!0,drift:at(this._onDragMove,this,_),ondragend:at(this._onDragEnd,this),onmouseover:at(this._showDataInfo,this,!0),onmouseout:at(this._showDataInfo,this,!1),z2:5});var b=x.getBoundingRect(),w=l.get("handleSize");this._handleHeight=rt(w,this._size[1]),this._handleWidth=b.width/b.height*this._handleHeight,x.setStyle(l.getModel("handleStyle").getItemStyle()),x.style.strokeNoScale=!0,x.rectHover=!0,x.ensureState("emphasis").style=l.getModel(["emphasis","handleStyle"]).getItemStyle(),xo(x);var T=l.get("handleColor");T!=null&&(x.style.fill=T),o.add(i[_]=x);var A=l.getModel("textStyle"),C=l.get("handleLabel")||{},D=C.show||!1;e.add(a[_]=new Gt({silent:!0,invisible:!D,style:Qt(A,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:A.getTextColor(),font:A.getFont()}),z2:10}))},this);var v=h;if(c){var d=rt(l.get("moveHandleSize"),s[1]),p=n.moveHandle=new Vt({style:l.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:s[1]-.5,height:d}}),g=d*.8,y=n.moveHandleIcon=me(l.get("moveHandleIcon"),-g/2,-g/2,g,g,"#fff",!0);y.silent=!0,y.y=s[1]+d/2-.5,p.ensureState("emphasis").style=l.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var m=Math.min(s[1]/2,Math.max(d,10));v=n.moveZone=new Vt({invisible:!0,shape:{y:s[1]-m,height:d+m}}),v.on("mouseover",function(){u.enterEmphasis(p)}).on("mouseout",function(){u.leaveEmphasis(p)}),o.add(p),o.add(y),o.add(v)}v.attr({draggable:!0,cursor:$M(this._orient),drift:at(this._onDragMove,this,"all"),ondragstart:at(this._showDataInfo,this,!0),ondragend:at(this._onDragEnd,this),onmouseover:at(this._showDataInfo,this,!0),onmouseout:at(this._showDataInfo,this,!1)})},t.prototype._resetInterval=function(){var e=this._range=this.dataZoomModel.getPercentRange(),n=this._getViewExtent();this._handleEnds=[Ut(e[0],[0,100],n,!0),Ut(e[1],[0,100],n,!0)]},t.prototype._updateInterval=function(e,n){var i=this.dataZoomModel,a=this._handleEnds,o=this._getViewExtent(),s=i.findRepresentativeAxisProxy().getMinMaxSpan(),l=[0,100];Wo(n,a,o,i.get("zoomLock")?"all":e,s.minSpan!=null?Ut(s.minSpan,l,o,!0):null,s.maxSpan!=null?Ut(s.maxSpan,l,o,!0):null);var u=this._range,f=this._range=$r([Ut(a[0],o,l,!0),Ut(a[1],o,l,!0)]);return!u||u[0]!==f[0]||u[1]!==f[1]},t.prototype._updateView=function(e){var n=this._displayables,i=this._handleEnds,a=$r(i.slice()),o=this._size;M([0,1],function(v){var d=n.handles[v],p=this._handleHeight;d.attr({scaleX:p/2,scaleY:p/2,x:i[v]+(v?-1:1),y:o[1]/2-p/2})},this),n.filler.setShape({x:a[0],y:0,width:a[1]-a[0],height:o[1]});var s={x:a[0],width:a[1]-a[0]};n.moveHandle&&(n.moveHandle.setShape(s),n.moveZone.setShape(s),n.moveZone.getBoundingRect(),n.moveHandleIcon&&n.moveHandleIcon.attr("x",s.x+s.width/2));for(var l=n.dataShadowSegs,u=[0,a[0],a[1],o[0]],f=0;fn[0]||i[1]<0||i[1]>n[1])){var a=this._handleEnds,o=(a[0]+a[1])/2,s=this._updateInterval("all",i[0]-o);this._updateView(),s&&this._dispatchZoomAction(!1)}},t.prototype._onBrushStart=function(e){var n=e.offsetX,i=e.offsetY;this._brushStart=new Ct(n,i),this._brushing=!0,this._brushStartTime=+new Date},t.prototype._onBrushEnd=function(e){if(this._brushing){var n=this._displayables.brushRect;if(this._brushing=!1,!!n){n.attr("ignore",!0);var i=n.shape,a=+new Date;if(!(a-this._brushStartTime<200&&Math.abs(i.width)<5)){var o=this._getViewExtent(),s=[0,100];this._range=$r([Ut(i.x,o,s,!0),Ut(i.x+i.width,o,s,!0)]),this._handleEnds=[i.x,i.x+i.width],this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(e){this._brushing&&(gi(e.event),this._updateBrushRect(e.offsetX,e.offsetY))},t.prototype._updateBrushRect=function(e,n){var i=this._displayables,a=this.dataZoomModel,o=i.brushRect;o||(o=i.brushRect=new Zl({silent:!0,style:a.getModel("brushStyle").getItemStyle()}),i.sliderGroup.add(o)),o.attr("ignore",!1);var s=this._brushStart,l=this._displayables.sliderGroup,u=l.transformCoordToLocal(e,n),f=l.transformCoordToLocal(s.x,s.y),c=this._size;u[0]=Math.max(Math.min(c[0],u[0]),0),o.setShape({x:f[0],y:0,width:u[0]-f[0],height:c[1]})},t.prototype._dispatchZoomAction=function(e){var n=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:e?rnt:null,start:n[0],end:n[1]})},t.prototype._findCoordRect=function(){var e,n=dO(this.dataZoomModel).infoList;if(!e&&n.length){var i=n[0].model.coordinateSystem;e=i.getRect&&i.getRect()}if(!e){var a=this.api.getWidth(),o=this.api.getHeight();e={x:a*.2,y:o*.2,width:a*.6,height:o*.6}}return e},t.type="dataZoom.slider",t}(K1);function int(r){var t={x:"y",y:"x",radius:"angle",angle:"radius"};return t[r]}function $M(r){return r==="vertical"?"ns-resize":"ew-resize"}const ant=nnt;function OO(r){r.registerComponentModel(jrt),r.registerComponentView(ant),j1(r)}function ont(r){Lt(kO),Lt(OO)}var snt={get:function(r,t,e){var n=mt((lnt[r]||{})[t]);return e&&Y(n)?n[n.length-1]:n}},lnt={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}};const NO=snt;var UM=Ge.mapVisual,unt=Ge.eachVisual,fnt=Y,YM=M,cnt=$r,hnt=Ut,vnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.stateList=["inRange","outOfRange"],e.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],e.layoutMode={type:"box",ignoreSize:!0},e.dataBound=[-1/0,1/0],e.targetVisuals={},e.controllerVisuals={},e}return t.prototype.init=function(e,n,i){this.mergeDefaultAndTheme(e,i)},t.prototype.optionUpdated=function(e,n){var i=this.option;!n&&TO(i,e,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},t.prototype.resetVisual=function(e){var n=this.stateList;e=at(e,this),this.controllerVisuals=h0(this.option.controller,n,e),this.targetVisuals=h0(this.option.target,n,e)},t.prototype.getItemSymbol=function(){return null},t.prototype.getTargetSeriesIndices=function(){var e=this.option.seriesIndex,n=[];return e==null||e==="all"?this.ecModel.eachSeries(function(i,a){n.push(a)}):n=Zt(e),n},t.prototype.eachTargetSeries=function(e,n){M(this.getTargetSeriesIndices(),function(i){var a=this.ecModel.getSeriesByIndex(i);a&&e.call(n,a)},this)},t.prototype.isTargetSeries=function(e){var n=!1;return this.eachTargetSeries(function(i){i===e&&(n=!0)}),n},t.prototype.formatValueText=function(e,n,i){var a=this.option,o=a.precision,s=this.dataBound,l=a.formatter,u;i=i||["<",">"],Y(e)&&(e=e.slice(),u=!0);var f=n?e:u?[c(e[0]),c(e[1])]:c(e);if(nt(l))return l.replace("{value}",u?f[0]:f).replace("{value2}",u?f[1]:f);if(vt(l))return u?l(e[0],e[1]):l(e);if(u)return e[0]===s[0]?i[0]+" "+f[1]:e[1]===s[1]?i[1]+" "+f[0]:f[0]+" - "+f[1];return f;function c(h){return h===s[0]?"min":h===s[1]?"max":(+h).toFixed(Math.min(o,20))}},t.prototype.resetExtent=function(){var e=this.option,n=cnt([e.min,e.max]);this._dataExtent=n},t.prototype.getDataDimensionIndex=function(e){var n=this.option.dimension;if(n!=null)return e.getDimensionIndex(n);for(var i=e.dimensions,a=i.length-1;a>=0;a--){var o=i[a],s=e.getDimensionInfo(o);if(!s.isCalculationCoord)return s.storeDimIndex}},t.prototype.getExtent=function(){return this._dataExtent.slice()},t.prototype.completeVisualOption=function(){var e=this.ecModel,n=this.option,i={inRange:n.inRange,outOfRange:n.outOfRange},a=n.target||(n.target={}),o=n.controller||(n.controller={});Tt(a,i),Tt(o,i);var s=this.isCategory();l.call(this,a),l.call(this,o),u.call(this,a,"inRange","outOfRange"),f.call(this,o);function l(c){fnt(n.color)&&!c.inRange&&(c.inRange={color:n.color.slice().reverse()}),c.inRange=c.inRange||{color:e.get("gradientColor")}}function u(c,h,v){var d=c[h],p=c[v];d&&!p&&(p=c[v]={},YM(d,function(g,y){if(Ge.isValidType(y)){var m=NO.get(y,"inactive",s);m!=null&&(p[y]=m,y==="color"&&!p.hasOwnProperty("opacity")&&!p.hasOwnProperty("colorAlpha")&&(p.opacity=[0,0]))}}))}function f(c){var h=(c.inRange||{}).symbol||(c.outOfRange||{}).symbol,v=(c.inRange||{}).symbolSize||(c.outOfRange||{}).symbolSize,d=this.get("inactiveColor"),p=this.getItemSymbol(),g=p||"roundRect";YM(this.stateList,function(y){var m=this.itemSize,_=c[y];_||(_=c[y]={color:s?d:[d]}),_.symbol==null&&(_.symbol=h&&mt(h)||(s?g:[g])),_.symbolSize==null&&(_.symbolSize=v&&mt(v)||(s?m[0]:[m[0],m[0]])),_.symbol=UM(_.symbol,function(b){return b==="none"?g:b});var S=_.symbolSize;if(S!=null){var x=-1/0;unt(S,function(b){b>x&&(x=b)}),_.symbolSize=UM(S,function(b){return hnt(b,[0,x],[0,m[0]],!0)})}},this)}},t.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},t.prototype.isCategory=function(){return!!this.option.categories},t.prototype.setSelected=function(e){},t.prototype.getSelected=function(){return null},t.prototype.getValueState=function(e){return null},t.prototype.getVisualMeta=function(e){return null},t.type="visualMap",t.dependencies=["series"],t.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},t}(Bt);const Tv=vnt;var ZM=[20,140],dnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.optionUpdated=function(e,n){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(i){i.mappingMethod="linear",i.dataExtent=this.getExtent()}),this._resetRange()},t.prototype.resetItemSize=function(){r.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(e[0]==null||isNaN(e[0]))&&(e[0]=ZM[0]),(e[1]==null||isNaN(e[1]))&&(e[1]=ZM[1])},t.prototype._resetRange=function(){var e=this.getExtent(),n=this.option.range;!n||n.auto?(e.auto=1,this.option.range=e):Y(n)&&(n[0]>n[1]&&n.reverse(),n[0]=Math.max(n[0],e[0]),n[1]=Math.min(n[1],e[1]))},t.prototype.completeVisualOption=function(){r.prototype.completeVisualOption.apply(this,arguments),M(this.stateList,function(e){var n=this.option.controller[e].symbolSize;n&&n[0]!==n[1]&&(n[0]=n[1]/3)},this)},t.prototype.setSelected=function(e){this.option.range=e.slice(),this._resetRange()},t.prototype.getSelected=function(){var e=this.getExtent(),n=$r((this.get("range")||[]).slice());return n[0]>e[1]&&(n[0]=e[1]),n[1]>e[1]&&(n[1]=e[1]),n[0]=i[1]||e<=n[1])?"inRange":"outOfRange"},t.prototype.findTargetDataIndices=function(e){var n=[];return this.eachTargetSeries(function(i){var a=[],o=i.getData();o.each(this.getDataDimensionIndex(o),function(s,l){e[0]<=s&&s<=e[1]&&a.push(l)},this),n.push({seriesId:i.id,dataIndex:a})},this),n},t.prototype.getVisualMeta=function(e){var n=XM(this,"outOfRange",this.getExtent()),i=XM(this,"inRange",this.option.range.slice()),a=[];function o(v,d){a.push({value:v,color:e(v,d)})}for(var s=0,l=0,u=i.length,f=n.length;le[1])break;a.push({color:this.getControllerVisual(l,"color",n),offset:s/i})}return a.push({color:this.getControllerVisual(e[1],"color",n),offset:1}),a},t.prototype._createBarPoints=function(e,n){var i=this.visualMapModel.itemSize;return[[i[0]-n[0],e[0]],[i[0],e[0]],[i[0],e[1]],[i[0]-n[1],e[1]]]},t.prototype._createBarGroup=function(e){var n=this._orient,i=this.visualMapModel.get("inverse");return new _t(n==="horizontal"&&!i?{scaleX:e==="bottom"?1:-1,rotation:Math.PI/2}:n==="horizontal"&&i?{scaleX:e==="bottom"?-1:1,rotation:-Math.PI/2}:n==="vertical"&&!i?{scaleX:e==="left"?1:-1,scaleY:-1}:{scaleX:e==="left"?1:-1})},t.prototype._updateHandle=function(e,n){if(this._useHandle){var i=this._shapes,a=this.visualMapModel,o=i.handleThumbs,s=i.handleLabels,l=a.itemSize,u=a.getExtent(),f=this._applyTransform("left",i.mainGroup);ynt([0,1],function(c){var h=o[c];h.setStyle("fill",n.handlesColor[c]),h.y=e[c];var v=Mn(e[c],[0,l[1]],u,!0),d=this.getControllerVisual(v,"symbolSize");h.scaleX=h.scaleY=d/l[0],h.x=l[0]-d/2;var p=cn(i.handleLabelPoints[c],bo(h,this.group));if(this._orient==="horizontal"){var g=f==="left"||f==="top"?(l[0]-d)/2:(l[0]-d)/-2;p[1]+=g}s[c].setStyle({x:p[0],y:p[1],text:a.formatValueText(this._dataInterval[c]),verticalAlign:"middle",align:this._orient==="vertical"?this._applyTransform("left",i.mainGroup):"center"})},this)}},t.prototype._showIndicator=function(e,n,i,a){var o=this.visualMapModel,s=o.getExtent(),l=o.itemSize,u=[0,l[1]],f=this._shapes,c=f.indicator;if(c){c.attr("invisible",!1);var h={convertOpacityToAlpha:!0},v=this.getControllerVisual(e,"color",h),d=this.getControllerVisual(e,"symbolSize"),p=Mn(e,s,u,!0),g=l[0]-d/2,y={x:c.x,y:c.y};c.y=p,c.x=g;var m=cn(f.indicatorLabelPoint,bo(c,this.group)),_=f.indicatorLabel;_.attr("invisible",!1);var S=this._applyTransform("left",f.mainGroup),x=this._orient,b=x==="horizontal";_.setStyle({text:(i||"")+o.formatValueText(n),verticalAlign:b?S:"middle",align:b?"center":S});var w={x:g,y:p,style:{fill:v}},T={style:{x:m[0],y:m[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var A={duration:100,easing:"cubicInOut",additive:!0};c.x=y.x,c.y=y.y,c.animateTo(w,A),_.animateTo(T,A)}else c.attr(w),_.attr(T);this._firstShowIndicator=!1;var C=this._shapes.handleLabels;if(C)for(var D=0;Do[1]&&(c[1]=1/0),n&&(c[0]===-1/0?this._showIndicator(f,c[1],"< ",l):c[1]===1/0?this._showIndicator(f,c[0],"> ",l):this._showIndicator(f,f,"≈ ",l));var h=this._hoverLinkDataIndices,v=[];(n||JM(i))&&(v=this._hoverLinkDataIndices=i.findTargetDataIndices(c));var d=sF(h,v);this._dispatchHighDown("downplay",Sh(d[0],i)),this._dispatchHighDown("highlight",Sh(d[1],i))}},t.prototype._hoverLinkFromSeriesMouseOver=function(e){var n;if(uo(e.target,function(l){var u=St(l);if(u.dataIndex!=null)return n=u,!0},!0),!!n){var i=this.ecModel.getSeriesByIndex(n.seriesIndex),a=this.visualMapModel;if(a.isTargetSeries(i)){var o=i.getData(n.dataType),s=o.getStore().get(a.getDataDimensionIndex(o),n.dataIndex);isNaN(s)||this._showIndicator(s,s)}}},t.prototype._hideIndicator=function(){var e=this._shapes;e.indicator&&e.indicator.attr("invisible",!0),e.indicatorLabel&&e.indicatorLabel.attr("invisible",!0);var n=this._shapes.handleLabels;if(n)for(var i=0;i=0&&(a.dimension=o,n.push(a))}}),r.getData().setVisual("visualMeta",n)}}];function Cnt(r,t,e,n){for(var i=t.targetVisuals[n],a=Ge.prepareVisualTypes(i),o={color:If(r.getData(),"color")},s=0,l=a.length;s0:t.splitNumber>0)||t.calculable)?"continuous":"piecewise"}),r.registerAction(wnt,Tnt),M(Ant,function(t){r.registerVisual(r.PRIORITY.VISUAL.COMPONENT,t)}),r.registerPreprocessor(Mnt))}function GO(r){r.registerComponentModel(pnt),r.registerComponentView(bnt),zO(r)}var Dnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e._pieceList=[],e}return t.prototype.optionUpdated=function(e,n){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],Int[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var a=this.option.categories;this.resetVisual(function(o,s){i==="categories"?(o.mappingMethod="category",o.categories=mt(a)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=Z(this._pieceList,function(l){return l=mt(l),s!=="inRange"&&(l.visual=null),l}))})},t.prototype.completeVisualOption=function(){var e=this.option,n={},i=Ge.listVisualTypes(),a=this.isCategory();M(e.pieces,function(s){M(i,function(l){s.hasOwnProperty(l)&&(n[l]=1)})}),M(n,function(s,l){var u=!1;M(this.stateList,function(f){u=u||o(e,f,l)||o(e.target,f,l)},this),!u&&M(this.stateList,function(f){(e[f]||(e[f]={}))[l]=NO.get(l,f==="inRange"?"active":"inactive",a)})},this);function o(s,l,u){return s&&s[l]&&s[l].hasOwnProperty(u)}r.prototype.completeVisualOption.apply(this,arguments)},t.prototype._resetSelected=function(e,n){var i=this.option,a=this._pieceList,o=(n?i:e).selected||{};if(i.selected=o,M(a,function(l,u){var f=this.getSelectedMapKey(l);o.hasOwnProperty(f)||(o[f]=!0)},this),i.selectedMode==="single"){var s=!1;M(a,function(l,u){var f=this.getSelectedMapKey(l);o[f]&&(s?o[f]=!1:s=!0)},this)}},t.prototype.getItemSymbol=function(){return this.get("itemSymbol")},t.prototype.getSelectedMapKey=function(e){return this._mode==="categories"?e.value+"":e.index+""},t.prototype.getPieceList=function(){return this._pieceList},t.prototype._determineMode=function(){var e=this.option;return e.pieces&&e.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},t.prototype.setSelected=function(e){this.option.selected=mt(e)},t.prototype.getValueState=function(e){var n=Ge.findPieceIndex(e,this._pieceList);return n!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[n])]?"inRange":"outOfRange"},t.prototype.findTargetDataIndices=function(e){var n=[],i=this._pieceList;return this.eachTargetSeries(function(a){var o=[],s=a.getData();s.each(this.getDataDimensionIndex(s),function(l,u){var f=Ge.findPieceIndex(l,i);f===e&&o.push(u)},this),n.push({seriesId:a.id,dataIndex:o})},this),n},t.prototype.getRepresentValue=function(e){var n;if(this.isCategory())n=e.value;else if(e.value!=null)n=e.value;else{var i=e.interval||[];n=i[0]===-1/0&&i[1]===1/0?0:(i[0]+i[1])/2}return n},t.prototype.getVisualMeta=function(e){if(this.isCategory())return;var n=[],i=["",""],a=this;function o(f,c){var h=a.getRepresentValue({interval:f});c||(c=a.getValueState(h));var v=e(h,c);f[0]===-1/0?i[0]=v:f[1]===1/0?i[1]=v:n.push({value:f[0],color:v},{value:f[1],color:v})}var s=this._pieceList.slice();if(!s.length)s.push({interval:[-1/0,1/0]});else{var l=s[0].interval[0];l!==-1/0&&s.unshift({interval:[-1/0,l]}),l=s[s.length-1].interval[1],l!==1/0&&s.push({interval:[l,1/0]})}var u=-1/0;return M(s,function(f){var c=f.interval;c&&(c[0]>u&&o([u,c[0]],"outOfRange"),o(c.slice()),u=c[1])},this),{stops:n,outerColors:i}},t.type="visualMap.piecewise",t.defaultOption=ya(Tv.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),t}(Tv),Int={splitNumber:function(r){var t=this.option,e=Math.min(t.precision,20),n=this.getExtent(),i=t.splitNumber;i=Math.max(parseInt(i,10),1),t.splitNumber=i;for(var a=(n[1]-n[0])/i;+a.toFixed(e)!==a&&e<5;)e++;t.precision=e,a=+a.toFixed(e),t.minOpen&&r.push({interval:[-1/0,n[0]],close:[0,0]});for(var o=0,s=n[0];o","≥"][n[0]]];e.text=e.text||this.formatValueText(e.value!=null?e.value:e.interval,!1,i)},this)}};function rD(r,t){var e=r.inverse;(r.orient==="vertical"?!e:e)&&t.reverse()}const Lnt=Dnt;var Pnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.doRender=function(){var e=this.group;e.removeAll();var n=this.visualMapModel,i=n.get("textGap"),a=n.textStyleModel,o=a.getFont(),s=a.getTextColor(),l=this._getItemAlign(),u=n.itemSize,f=this._getViewData(),c=f.endsText,h=Re(n.get("showLabel",!0),!c),v=!n.get("selectedMode");c&&this._renderEndsText(e,c[0],u,h,l),M(f.viewPieceList,function(d){var p=d.piece,g=new _t;g.onclick=at(this._onItemClick,this,p),this._enableHoverLink(g,d.indexInModelPieceList);var y=n.getRepresentValue(p);if(this._createItemSymbol(g,y,[0,0,u[0],u[1]],v),h){var m=this.visualMapModel.getValueState(y);g.add(new Gt({style:{x:l==="right"?-i:u[0]+i,y:u[1]/2,text:p.text,verticalAlign:"middle",align:l,font:o,fill:s,opacity:m==="outOfRange"?.5:1},silent:v}))}e.add(g)},this),c&&this._renderEndsText(e,c[1],u,h,l),wo(n.get("orient"),e,n.get("itemGap")),this.renderBackground(e),this.positionGroup(e)},t.prototype._enableHoverLink=function(e,n){var i=this;e.on("mouseover",function(){return a("highlight")}).on("mouseout",function(){return a("downplay")});var a=function(o){var s=i.visualMapModel;s.option.hoverLink&&i.api.dispatchAction({type:o,batch:Sh(s.findTargetDataIndices(n),s)})}},t.prototype._getItemAlign=function(){var e=this.visualMapModel,n=e.option;if(n.orient==="vertical")return BO(e,this.api,e.itemSize);var i=n.align;return(!i||i==="auto")&&(i="left"),i},t.prototype._renderEndsText=function(e,n,i,a,o){if(n){var s=new _t,l=this.visualMapModel.textStyleModel;s.add(new Gt({style:Qt(l,{x:a?o==="right"?i[0]:0:i[0]/2,y:i[1]/2,verticalAlign:"middle",align:a?o:"center",text:n})})),e.add(s)}},t.prototype._getViewData=function(){var e=this.visualMapModel,n=Z(e.getPieceList(),function(s,l){return{piece:s,indexInModelPieceList:l}}),i=e.get("text"),a=e.get("orient"),o=e.get("inverse");return(a==="horizontal"?o:!o)?n.reverse():i&&(i=i.slice().reverse()),{viewPieceList:n,endsText:i}},t.prototype._createItemSymbol=function(e,n,i,a){var o=me(this.getControllerVisual(n,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(n,"color"));o.silent=a,e.add(o)},t.prototype._onItemClick=function(e){var n=this.visualMapModel,i=n.option,a=i.selectedMode;if(a){var o=mt(i.selected),s=n.getSelectedMapKey(e);a==="single"||a===!0?(o[s]=!0,M(o,function(l,u){o[u]=u===s})):o[s]=!o[s],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},t.type="visualMap.piecewise",t}(VO);const Rnt=Pnt;function FO(r){r.registerComponentModel(Lnt),r.registerComponentView(Rnt),zO(r)}function Ent(r){Lt(GO),Lt(FO)}var knt={label:{enabled:!0},decal:{show:!1}},nD=Nt(),Ont={};function Nnt(r,t){var e=r.getModel("aria");if(!e.get("enabled"))return;var n=mt(knt);Tt(n.label,r.getLocaleModel().get("aria"),!1),Tt(e.option,n,!1),i(),a();function i(){var u=e.getModel("decal"),f=u.get("show");if(f){var c=ft();r.eachSeries(function(h){if(!h.isColorBySeries()){var v=c.get(h.type);v||(v={},c.set(h.type,v)),nD(h).scope=v}}),r.eachRawSeries(function(h){if(r.isSeriesFiltered(h))return;if(vt(h.enableAriaDecal)){h.enableAriaDecal();return}var v=h.getData();if(h.isColorBySeries()){var m=Sm(h.ecModel,h.name,Ont,r.getSeriesCount()),_=v.getVisual("decal");v.setVisual("decal",S(_,m))}else{var d=h.getRawData(),p={},g=nD(h).scope;v.each(function(x){var b=v.getRawIndex(x);p[b]=x});var y=d.count();d.each(function(x){var b=p[x],w=d.getName(x)||x+"",T=Sm(h.ecModel,w,g,y),A=v.getItemVisual(b,"decal");v.setItemVisual(b,"decal",S(A,T))})}function S(x,b){var w=x?F(F({},b),x):b;return w.dirty=!0,w}})}}function a(){var u=t.getZr().dom;if(u){var f=r.getLocaleModel().get("aria"),c=e.getModel("label");if(c.option=pt(c.option,f),!!c.get("enabled")){if(u.setAttribute("role","img"),c.get("description")){u.setAttribute("aria-label",c.get("description"));return}var h=r.getSeriesCount(),v=c.get(["data","maxCount"])||10,d=c.get(["series","maxCount"])||10,p=Math.min(h,d),g;if(!(h<1)){var y=s();if(y){var m=c.get(["general","withTitle"]);g=o(m,{title:y})}else g=c.get(["general","withoutTitle"]);var _=[],S=h>1?c.get(["series","multiple","prefix"]):c.get(["series","single","prefix"]);g+=o(S,{seriesCount:h}),r.eachSeries(function(T,A){if(A1?c.get(["series","multiple",I]):c.get(["series","single",I]),C=o(C,{seriesId:T.seriesIndex,seriesName:T.get("name"),seriesType:l(T.subType)});var L=T.getData();if(L.count()>v){var P=c.get(["data","partialData"]);C+=o(P,{displayCnt:v})}else C+=c.get(["data","allData"]);for(var E=c.get(["data","separator","middle"]),O=c.get(["data","separator","end"]),V=c.get(["data","excludeDimensionId"]),N=[],G=0;G":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},znt=function(){function r(t){var e=this._condVal=nt(t)?new RegExp(t):g5(t)?t:null;if(e==null){var n="";Wt(n)}}return r.prototype.evaluate=function(t){var e=typeof t;return nt(e)?this._condVal.test(t):Ft(e)?this._condVal.test(t+""):!1},r}(),Gnt=function(){function r(){}return r.prototype.evaluate=function(){return this.value},r}(),Fnt=function(){function r(){}return r.prototype.evaluate=function(){for(var t=this.children,e=0;e2&&n.push(i),i=[L,P]}function f(L,P,E,O){ws(L,E)&&ws(P,O)||i.push(L,P,E,O,E,O)}function c(L,P,E,O,V,N){var G=Math.abs(P-L),$=Math.tan(G/4)*4/3,q=PT:D2&&n.push(i),n}function S0(r,t,e,n,i,a,o,s,l,u){if(ws(r,e)&&ws(t,n)&&ws(i,o)&&ws(a,s)){l.push(o,s);return}var f=2/u,c=f*f,h=o-r,v=s-t,d=Math.sqrt(h*h+v*v);h/=d,v/=d;var p=e-r,g=n-t,y=i-o,m=a-s,_=p*p+g*g,S=y*y+m*m;if(_=0&&T=0){l.push(o,s);return}var A=[],C=[];oa(r,e,i,o,.5,A),oa(t,n,a,s,.5,C),S0(A[0],C[0],A[1],C[1],A[2],C[2],A[3],C[3],l,u),S0(A[4],C[4],A[5],C[5],A[6],C[6],A[7],C[7],l,u)}function eit(r,t){var e=_0(r),n=[];t=t||1;for(var i=0;i0)for(var u=0;uMath.abs(u),c=WO([l,u],f?0:1,t),h=(f?s:u)/c.length,v=0;vi,o=WO([n,i],a?0:1,t),s=a?"width":"height",l=a?"height":"width",u=a?"x":"y",f=a?"y":"x",c=r[s]/o.length,h=0;h1?null:new Ct(p*l+r,p*u+t)}function iit(r,t,e){var n=new Ct;Ct.sub(n,e,t),n.normalize();var i=new Ct;Ct.sub(i,r,t);var a=i.dot(n);return a}function cs(r,t){var e=r[r.length-1];e&&e[0]===t[0]&&e[1]===t[1]||r.push(t)}function ait(r,t,e){for(var n=r.length,i=[],a=0;ao?(u.x=f.x=s+a/2,u.y=l,f.y=l+o):(u.y=f.y=l+o/2,u.x=s,f.x=s+a),ait(t,u,f)}function Av(r,t,e,n){if(e===1)n.push(t);else{var i=Math.floor(e/2),a=r(t);Av(r,a[0],i,n),Av(r,a[1],e-i,n)}return n}function oit(r,t){for(var e=[],n=0;n0)for(var x=n/e,b=-n/2;b<=n/2;b+=x){for(var w=Math.sin(b),T=Math.cos(b),A=0,_=0;_0;u/=2){var f=0,c=0;(r&u)>0&&(f=1),(t&u)>0&&(c=1),s+=u*u*(3*f^c),c===0&&(f===1&&(r=u-1-r,t=u-1-t),l=r,r=t,t=l)}return s}function Dv(r){var t=1/0,e=1/0,n=-1/0,i=-1/0,a=Z(r,function(s){var l=s.getBoundingRect(),u=s.getComputedTransform(),f=l.x+l.width/2+(u?u[4]:0),c=l.y+l.height/2+(u?u[5]:0);return t=Math.min(f,t),e=Math.min(c,e),n=Math.max(f,n),i=Math.max(c,i),[f,c]}),o=Z(a,function(s,l){return{cp:s,z:pit(s[0],s[1],t,e,n,i),path:r[l]}});return o.sort(function(s,l){return s.z-l.z}).map(function(s){return s.path})}function YO(r){return uit(r.path,r.count)}function x0(){return{fromIndividuals:[],toIndividuals:[],count:0}}function git(r,t,e){var n=[];function i(x){for(var b=0;b=0;i--)if(!e[i].many.length){var l=e[s].many;if(l.length<=1)if(s)s=0;else return e;var a=l.length,u=Math.ceil(a/2);e[i].many=l.slice(u,a),e[s].many=l.slice(0,u),s++}return e}var mit={clone:function(r){for(var t=[],e=1-Math.pow(1-r.path.style.opacity,1/r.count),n=0;n0))return;var s=n.getModel("universalTransition").get("delay"),l=Object.assign({setToFinal:!0},o),u,f;hD(r)&&(u=r,f=t),hD(t)&&(u=t,f=r);function c(y,m,_,S,x){var b=y.many,w=y.one;if(b.length===1&&!x){var T=m?b[0]:w,A=m?w:b[0];if(Cv(T))c({many:[T],one:A},!0,_,S,!0);else{var C=s?pt({delay:s(_,S)},l):l;sS(T,A,C),a(T,A,T,A,C)}}else for(var D=pt({dividePath:mit[e],individualDelay:s&&function(V,N,G,$){return s(V+_,S)}},l),I=m?git(b,w,D):yit(w,b,D),L=I.fromIndividuals,P=I.toIndividuals,E=L.length,O=0;Ot.length,v=u?vD(f,u):vD(h?t:r,[h?r:t]),d=0,p=0;pZO))for(var a=n.getIndices(),o=0;o0&&b.group.traverse(function(T){T instanceof Pt&&!T.animators.length&&T.animateFrom({style:{opacity:0}},w)})})}function mD(r){var t=r.getModel("universalTransition").get("seriesKey");return t||r.id}function _D(r){return Y(r)?r.sort().join(","):r}function $i(r){if(r.hostModel)return r.hostModel.getModel("universalTransition").get("divideShape")}function Ait(r,t){var e=ft(),n=ft(),i=ft();return M(r.oldSeries,function(a,o){var s=r.oldDataGroupIds[o],l=r.oldData[o],u=mD(a),f=_D(u);n.set(f,{dataGroupId:s,data:l}),Y(u)&&M(u,function(c){i.set(c,{key:f,dataGroupId:s,data:l})})}),M(t.updatedSeries,function(a){if(a.isUniversalTransitionEnabled()&&a.isAnimationEnabled()){var o=a.get("dataGroupId"),s=a.getData(),l=mD(a),u=_D(l),f=n.get(u);if(f)e.set(u,{oldSeries:[{dataGroupId:f.dataGroupId,divide:$i(f.data),data:f.data}],newSeries:[{dataGroupId:o,divide:$i(s),data:s}]});else if(Y(l)){var c=[];M(l,function(d){var p=n.get(d);p.data&&c.push({dataGroupId:p.dataGroupId,divide:$i(p.data),data:p.data})}),c.length&&e.set(u,{oldSeries:c,newSeries:[{dataGroupId:o,data:s,divide:$i(s)}]})}else{var h=i.get(l);if(h){var v=e.get(h.key);v||(v={oldSeries:[{dataGroupId:h.dataGroupId,data:h.data,divide:$i(h.data)}],newSeries:[]},e.set(h.key,v)),v.newSeries.push({dataGroupId:o,data:s,divide:$i(s)})}}}}),e}function SD(r,t){for(var e=0;e=0&&i.push({dataGroupId:t.oldDataGroupIds[s],data:t.oldData[s],divide:$i(t.oldData[s]),groupIdDim:o.dimension})}),M(Zt(r.to),function(o){var s=SD(e.updatedSeries,o);if(s>=0){var l=e.updatedSeries[s].getData();a.push({dataGroupId:t.oldDataGroupIds[s],data:l,divide:$i(l),groupIdDim:o.dimension})}}),i.length>0&&a.length>0&&XO(i,a,n)}function Mit(r){r.registerUpdateLifecycle("series:beforeupdate",function(t,e,n){M(Zt(n.seriesTransition),function(i){M(Zt(i.to),function(a){for(var o=n.updatedSeries,s=0;s{b0(r)}))}function b0(r,t=new WeakSet){if(!(!r||typeof r!="object")&&!t.has(r)){if(t.add(r),Array.isArray(r)){r.forEach(e=>b0(e,t));return}r.tooltip&&typeof r.tooltip=="object"&&(r.tooltip=Iit(r.tooltip)),Object.keys(r).forEach(e=>{const n=r[e];!n||typeof n!="object"||b0(n,t)})}}function Iit(r){var t,e;return dS(vS({},r),{appendToBody:(t=r.appendToBody)!=null?t:!0,confine:(e=r.confine)!=null?e:!1,extraCssText:Lit(r.extraCssText)})}function Lit(r=""){const t=String(r||"").trim();return t?/z-index\s*:/i.test(t)?t:`${t.replace(/;$/,"")};${xD}`:xD}Dit();let Pit=PB(Qz);Pit.use(GI).mount("#app");export{Zit as A,Yz as B,Bv as C,Fit as D,Wit as E,zr as F,Uit as G,Vit as H,U0 as I,qit as J,Xit as K,Af as L,jit as M,Kit as N,V0 as O,KV as P,Oit as Q,TI as R,Eit as S,Nit as T,Jit as U,ke as V,F_ as W,Kz as _,xI as a,Pe as b,Git as c,qc as d,nn as e,lV as f,Hit as g,aV as h,un as i,E0 as j,Bit as k,A0 as l,Ih as m,C0 as n,Mh as o,Kc as p,UV as q,zit as r,kN as s,hN as t,go as u,YN as v,jc as w,Yit as x,kit as y,$it as z}; +`||i==="")){var a=r.isSelected(i);lt(e,i)?e[i]=e[i]&&a:e[i]=a}}),e}function Prt(r){r.registerAction("legendToggleSelect","legendselectchanged",bt(Yl,"toggleSelected")),r.registerAction("legendAllSelect","legendselectall",bt(Yl,"allSelect")),r.registerAction("legendInverseSelect","legendinverseselect",bt(Yl,"inverseSelect")),r.registerAction("legendSelect","legendselected",bt(Yl,"select")),r.registerAction("legendUnSelect","legendunselected",bt(Yl,"unSelect"))}function RO(r){r.registerComponentModel(p0),r.registerComponentView(PO),r.registerProcessor(r.PRIORITY.PROCESSOR.SERIES_FILTER,Lrt),r.registerSubTypeDefaulter("legend",function(){return"plain"}),Prt(r)}var Rrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.setScrollDataIndex=function(e){this.option.scrollDataIndex=e},t.prototype.init=function(e,n,i){var a=ol(e);r.prototype.init.call(this,e,n,i),zM(this,e,a)},t.prototype.mergeOption=function(e,n){r.prototype.mergeOption.call(this,e,n),zM(this,this.option,e)},t.type="legend.scroll",t.defaultOption=ya(p0.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),t}(p0);function zM(r,t,e){var n=r.getOrient(),i=[1,1];i[n.index]=0,la(t,e,{type:"box",ignoreSize:!!i})}const Ert=Rrt;var GM=_t,ly=["width","height"],uy=["x","y"],krt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.newlineDisabled=!0,e._currentIndex=0,e}return t.prototype.init=function(){r.prototype.init.call(this),this.group.add(this._containerGroup=new GM),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new GM)},t.prototype.resetInner=function(){r.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},t.prototype.renderInner=function(e,n,i,a,o,s,l){var u=this;r.prototype.renderInner.call(this,e,n,i,a,o,s,l);var f=this._controllerGroup,c=n.get("pageIconSize",!0),h=Y(c)?c:[c,c];d("pagePrev",0);var v=n.getModel("pageTextStyle");f.add(new Gt({name:"pageText",style:{text:"xx/xx",fill:v.getTextColor(),font:v.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1);function d(p,g){var y=p+"DataIndex",m=Mf(n.get("pageIcons",!0)[n.getOrient().name][g],{onclick:at(u._pageGo,u,y,n,a)},{x:-h[0]/2,y:-h[1]/2,width:h[0],height:h[1]});m.name=p,f.add(m)}},t.prototype.layoutInner=function(e,n,i,a,o,s){var l=this.getSelectorGroup(),u=e.getOrient().index,f=ly[u],c=uy[u],h=ly[1-u],v=uy[1-u];o&&wo("horizontal",l,e.get("selectorItemGap",!0));var d=e.get("selectorButtonGap",!0),p=l.getBoundingRect(),g=[-p.x,-p.y],y=mt(i);o&&(y[f]=i[f]-p[f]-d);var m=this._layoutContentAndController(e,a,y,u,f,h,v,c);if(o){if(s==="end")g[u]+=m[f]+d;else{var _=p[f]+d;g[u]-=_,m[c]-=_}m[f]+=p[f]+d,g[1-u]+=m[v]+m[h]/2-p[h]/2,m[h]=Math.max(m[h],p[h]),m[v]=Math.min(m[v],p[v]+g[1-u]),l.x=g[0],l.y=g[1],l.markRedraw()}return m},t.prototype._layoutContentAndController=function(e,n,i,a,o,s,l,u){var f=this.getContentGroup(),c=this._containerGroup,h=this._controllerGroup;wo(e.get("orient"),f,e.get("itemGap"),a?i.width:null,a?null:i.height),wo("horizontal",h,e.get("pageButtonItemGap",!0));var v=f.getBoundingRect(),d=h.getBoundingRect(),p=this._showController=v[o]>i[o],g=[-v.x,-v.y];n||(g[a]=f[u]);var y=[0,0],m=[-d.x,-d.y],_=xt(e.get("pageButtonGap",!0),e.get("itemGap",!0));if(p){var S=e.get("pageButtonPosition",!0);S==="end"?m[a]+=i[o]-d[o]:y[a]+=d[o]+_}m[1-a]+=v[s]/2-d[s]/2,f.setPosition(g),c.setPosition(y),h.setPosition(m);var x={x:0,y:0};if(x[o]=p?i[o]:v[o],x[s]=Math.max(v[s],d[s]),x[l]=Math.min(0,d[l]+m[1-a]),c.__rectSize=i[o],p){var b={x:0,y:0};b[o]=Math.max(i[o]-d[o]-_,0),b[s]=x[s],c.setClipPath(new Vt({shape:b})),c.__rectSize=b[o]}else h.eachChild(function(T){T.attr({invisible:!0,silent:!0})});var w=this._getPageInfo(e);return w.pageIndex!=null&&Ht(f,{x:w.contentPosition[0],y:w.contentPosition[1]},p?e:null),this._updatePageInfoView(e,w),x},t.prototype._pageGo=function(e,n,i){var a=this._getPageInfo(n)[e];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},t.prototype._updatePageInfoView=function(e,n){var i=this._controllerGroup;M(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",h=n[c]!=null,v=i.childOfName(f);v&&(v.setStyle("fill",h?e.get("pageIconColor",!0):e.get("pageIconInactiveColor",!0)),v.cursor=h?"pointer":"default")});var a=i.childOfName("pageText"),o=e.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;a&&o&&a.setStyle("text",nt(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(e){var n=e.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=e.getOrient().index,s=ly[o],l=uy[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],h=f.length,v=h?1:0,d={contentPosition:[i.x,i.y],pageCount:v,pageIndex:v-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return d;var p=S(c);d.contentPosition[o]=-p.s;for(var g=u+1,y=p,m=p,_=null;g<=h;++g)_=S(f[g]),(!_&&m.e>y.s+a||_&&!x(_,y.s))&&(m.i>y.i?y=m:y=_,y&&(d.pageNextDataIndex==null&&(d.pageNextDataIndex=y.i),++d.pageCount)),m=_;for(var g=u-1,y=p,m=p,_=null;g>=-1;--g)_=S(f[g]),(!_||!x(m,_.s))&&y.i=w&&b.s<=w+a}},t.prototype._findTargetItemIndex=function(e){if(!this._showController)return 0;var n,i=this.getContentGroup(),a;return i.eachChild(function(o,s){var l=o.__legendDataIndex;a==null&&l!=null&&(a=s),l===e&&(n=s)}),n!=null?n:a},t.type="legend.scroll",t}(PO);const Ort=krt;function Nrt(r){r.registerAction("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;n!=null&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(n)})})}function Vrt(r){Lt(RO),r.registerComponentModel(Ert),r.registerComponentView(Ort),Nrt(r)}function Brt(r){Lt(RO),Lt(Vrt)}var zrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.type="dataZoom.inside",t.defaultOption=ya(vf.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(vf);const Grt=zrt;var aS=Nt();function Frt(r,t,e){aS(r).coordSysRecordMap.each(function(n){var i=n.dataZoomInfoMap.get(t.uid);i&&(i.getRange=e)})}function Hrt(r,t){for(var e=aS(r).coordSysRecordMap,n=e.keys(),i=0;in[e+t]&&(t=s),i=i&&o.get("preventDefaultMouseMove",!0)}),{controlType:t,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!i}}}function Zrt(r){r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER,function(t,e){var n=aS(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ft());i.each(function(a){a.dataZoomInfoMap=null}),t.eachComponent({mainType:"dataZoom",subType:"inside"},function(a){var o=dO(a);M(o.infoList,function(s){var l=s.model.uid,u=i.get(l)||i.set(l,Wrt(e,s.model)),f=u.dataZoomInfoMap||(u.dataZoomInfoMap=ft());f.set(a.uid,{dzReferCoordSysInfo:s,model:a,getRange:null})})}),i.each(function(a){var o=a.controller,s,l=a.dataZoomInfoMap;if(l){var u=l.keys()[0];u!=null&&(s=l.get(u))}if(!s){EO(i,a);return}var f=Yrt(l);o.enable(f.controlType,f.opt),o.setPointerChecker(a.containsPoint),fl(a,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var Xrt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return t.prototype.render=function(e,n,i){if(r.prototype.render.apply(this,arguments),e.noTarget()){this._clear();return}this.range=e.getPercentRange(),Frt(i,e,{pan:at(fy.pan,this),zoom:at(fy.zoom,this),scrollMove:at(fy.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){Hrt(this.api,this.dataZoomModel),this.range=null},t.type="dataZoom.inside",t}(K1),fy={zoom:function(r,t,e,n){var i=this.range,a=i.slice(),o=r.axisModels[0];if(o){var s=cy[t](null,[n.originX,n.originY],o,e,r),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],u=Math.max(1/n.scale,0);a[0]=(a[0]-l)*u+l,a[1]=(a[1]-l)*u+l;var f=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(Wo(0,a,[0,100],0,f.minSpan,f.maxSpan),this.range=a,i[0]!==a[0]||i[1]!==a[1])return a}},pan:FM(function(r,t,e,n,i,a){var o=cy[n]([a.oldX,a.oldY],[a.newX,a.newY],t,i,e);return o.signal*(r[1]-r[0])*o.pixel/o.pixelLength}),scrollMove:FM(function(r,t,e,n,i,a){var o=cy[n]([0,0],[a.scrollDelta,a.scrollDelta],t,i,e);return o.signal*(r[1]-r[0])*a.scrollDelta})};function FM(r){return function(t,e,n,i){var a=this.range,o=a.slice(),s=t.axisModels[0];if(s){var l=r(o,s,t,e,n,i);if(Wo(l,o,[0,100],"all"),this.range=o,a[0]!==o[0]||a[1]!==o[1])return o}}}var cy={grid:function(r,t,e,n,i){var a=e.axis,o={},s=i.model.coordinateSystem.getRect();return r=r||[0,0],a.dim==="x"?(o.pixel=t[0]-r[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=t[1]-r[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(r,t,e,n,i){var a=e.axis,o={},s=i.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return r=r?s.pointToCoord(r):[0,0],t=s.pointToCoord(t),e.mainType==="radiusAxis"?(o.pixel=t[0]-r[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?1:-1):(o.pixel=t[1]-r[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=a.inverse?-1:1),o},singleAxis:function(r,t,e,n,i){var a=e.axis,o=i.model.coordinateSystem.getRect(),s={};return r=r||[0,0],a.orient==="horizontal"?(s.pixel=t[0]-r[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=t[1]-r[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};const qrt=Xrt;function kO(r){j1(r),r.registerComponentModel(Grt),r.registerComponentView(qrt),Zrt(r)}var Krt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.type="dataZoom.slider",t.layoutMode="box",t.defaultOption=ya(vf.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),t}(vf);const jrt=Krt;var Zl=Vt,HM=7,Jrt=1,hy=30,Qrt=7,Xl="horizontal",WM="vertical",tnt=5,ent=["line","bar","candlestick","scatter"],rnt={easing:"cubicOut",duration:100,delay:0},nnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e._displayables={},e}return t.prototype.init=function(e,n){this.api=n,this._onBrush=at(this._onBrush,this),this._onBrushEnd=at(this._onBrushEnd,this)},t.prototype.render=function(e,n,i,a){if(r.prototype.render.apply(this,arguments),fl(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),e.get("show")===!1){this.group.removeAll();return}if(e.noTarget()){this._clear(),this.group.removeAll();return}(!a||a.type!=="dataZoom"||a.from!==this.uid)&&this._buildView(),this._updateView()},t.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){tf(this,"_dispatchZoomAction");var e=this.api.getZr();e.off("mousemove",this._onBrush),e.off("mouseup",this._onBrushEnd)},t.prototype._buildView=function(){var e=this.group;e.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var n=this._displayables.sliderGroup=new _t;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),e.add(n),this._positionGroup()},t.prototype._resetLocation=function(){var e=this.dataZoomModel,n=this.api,i=e.get("brushSelect"),a=i?Qrt:0,o=this._findCoordRect(),s={width:n.getWidth(),height:n.getHeight()},l=this._orient===Xl?{right:s.width-o.x-o.width,top:s.height-hy-HM-a,width:o.width,height:hy}:{right:HM,top:o.y,width:hy,height:o.height},u=ol(e.option);M(["right","top","width","height"],function(c){u[c]==="ph"&&(u[c]=l[c])});var f=be(u,s);this._location={x:f.x,y:f.y},this._size=[f.width,f.height],this._orient===WM&&this._size.reverse()},t.prototype._positionGroup=function(){var e=this.group,n=this._location,i=this._orient,a=this.dataZoomModel.getFirstTargetAxisModel(),o=a&&a.get("inverse"),s=this._displayables.sliderGroup,l=(this._dataShadowInfo||{}).otherAxisInverse;s.attr(i===Xl&&!o?{scaleY:l?1:-1,scaleX:1}:i===Xl&&o?{scaleY:l?1:-1,scaleX:-1}:i===WM&&!o?{scaleY:l?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:l?-1:1,scaleX:-1,rotation:Math.PI/2});var u=e.getBoundingRect([s]);e.x=n.x-u.x,e.y=n.y-u.y,e.markRedraw()},t.prototype._getViewExtent=function(){return[0,this._size[0]]},t.prototype._renderBackground=function(){var e=this.dataZoomModel,n=this._size,i=this._displayables.sliderGroup,a=e.get("brushSelect");i.add(new Zl({silent:!0,shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:e.get("backgroundColor")},z2:-40}));var o=new Zl({shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:"transparent"},z2:0,onclick:at(this._onClickPanel,this)}),s=this.api.getZr();a?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",s.on("mousemove",this._onBrush),s.on("mouseup",this._onBrushEnd)):(s.off("mousemove",this._onBrush),s.off("mouseup",this._onBrushEnd)),i.add(o)},t.prototype._renderDataShadow=function(){var e=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!e)return;var n=this._size,i=this._shadowSize||[],a=e.series,o=a.getRawData(),s=a.getShadowDim&&a.getShadowDim(),l=s&&o.getDimensionInfo(s)?a.getShadowDim():e.otherDim;if(l==null)return;var u=this._shadowPolygonPts,f=this._shadowPolylinePts;if(o!==this._shadowData||l!==this._shadowDim||n[0]!==i[0]||n[1]!==i[1]){var c=o.getDataExtent(l),h=(c[1]-c[0])*.3;c=[c[0]-h,c[1]+h];var v=[0,n[1]],d=[0,n[0]],p=[[n[0],0],[0,0]],g=[],y=d[1]/(o.count()-1),m=0,_=Math.round(o.count()/n[0]),S;o.each([l],function(A,C){if(_>0&&C%_){m+=y;return}var D=A==null||isNaN(A)||A==="",I=D?0:Ut(A,c,v,!0);D&&!S&&C?(p.push([p[p.length-1][0],0]),g.push([g[g.length-1][0],0])):!D&&S&&(p.push([m,0]),g.push([m,0])),p.push([m,I]),g.push([m,I]),m+=y,S=D}),u=this._shadowPolygonPts=p,f=this._shadowPolylinePts=g}this._shadowData=o,this._shadowDim=l,this._shadowSize=[n[0],n[1]];var x=this.dataZoomModel;function b(A){var C=x.getModel(A?"selectedDataBackground":"dataBackground"),D=new _t,I=new yr({shape:{points:u},segmentIgnoreThreshold:1,style:C.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),L=new mr({shape:{points:f},segmentIgnoreThreshold:1,style:C.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return D.add(I),D.add(L),D}for(var w=0;w<3;w++){var T=b(w===1);this._displayables.sliderGroup.add(T),this._displayables.dataShadowSegs.push(T)}},t.prototype._prepareDataShadowInfo=function(){var e=this.dataZoomModel,n=e.get("showDataShadow");if(n!==!1){var i,a=this.ecModel;return e.eachTargetAxis(function(o,s){var l=e.getAxisProxy(o,s).getTargetSeriesModels();M(l,function(u){if(!i&&!(n!==!0&&Dt(ent,u.get("type"))<0)){var f=a.getComponent(Qi(o),s).axis,c=int(o),h,v=u.coordinateSystem;c!=null&&v.getOtherAxis&&(h=v.getOtherAxis(f).inverse),c=u.getData().mapDimension(c),i={thisAxis:f,series:u,thisDim:o,otherDim:c,otherAxisInverse:h}}},this)},this),i}},t.prototype._renderHandle=function(){var e=this.group,n=this._displayables,i=n.handles=[null,null],a=n.handleLabels=[null,null],o=this._displayables.sliderGroup,s=this._size,l=this.dataZoomModel,u=this.api,f=l.get("borderRadius")||0,c=l.get("brushSelect"),h=n.filler=new Zl({silent:c,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(h),o.add(new Zl({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:s[0],height:s[1],r:f},style:{stroke:l.get("dataBackgroundColor")||l.get("borderColor"),lineWidth:Jrt,fill:"rgba(0,0,0,0)"}})),M([0,1],function(_){var S=l.get("handleIcon");!Qh[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var x=me(S,-1,0,2,2,null,!0);x.attr({cursor:$M(this._orient),draggable:!0,drift:at(this._onDragMove,this,_),ondragend:at(this._onDragEnd,this),onmouseover:at(this._showDataInfo,this,!0),onmouseout:at(this._showDataInfo,this,!1),z2:5});var b=x.getBoundingRect(),w=l.get("handleSize");this._handleHeight=rt(w,this._size[1]),this._handleWidth=b.width/b.height*this._handleHeight,x.setStyle(l.getModel("handleStyle").getItemStyle()),x.style.strokeNoScale=!0,x.rectHover=!0,x.ensureState("emphasis").style=l.getModel(["emphasis","handleStyle"]).getItemStyle(),xo(x);var T=l.get("handleColor");T!=null&&(x.style.fill=T),o.add(i[_]=x);var A=l.getModel("textStyle"),C=l.get("handleLabel")||{},D=C.show||!1;e.add(a[_]=new Gt({silent:!0,invisible:!D,style:Qt(A,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:A.getTextColor(),font:A.getFont()}),z2:10}))},this);var v=h;if(c){var d=rt(l.get("moveHandleSize"),s[1]),p=n.moveHandle=new Vt({style:l.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:s[1]-.5,height:d}}),g=d*.8,y=n.moveHandleIcon=me(l.get("moveHandleIcon"),-g/2,-g/2,g,g,"#fff",!0);y.silent=!0,y.y=s[1]+d/2-.5,p.ensureState("emphasis").style=l.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var m=Math.min(s[1]/2,Math.max(d,10));v=n.moveZone=new Vt({invisible:!0,shape:{y:s[1]-m,height:d+m}}),v.on("mouseover",function(){u.enterEmphasis(p)}).on("mouseout",function(){u.leaveEmphasis(p)}),o.add(p),o.add(y),o.add(v)}v.attr({draggable:!0,cursor:$M(this._orient),drift:at(this._onDragMove,this,"all"),ondragstart:at(this._showDataInfo,this,!0),ondragend:at(this._onDragEnd,this),onmouseover:at(this._showDataInfo,this,!0),onmouseout:at(this._showDataInfo,this,!1)})},t.prototype._resetInterval=function(){var e=this._range=this.dataZoomModel.getPercentRange(),n=this._getViewExtent();this._handleEnds=[Ut(e[0],[0,100],n,!0),Ut(e[1],[0,100],n,!0)]},t.prototype._updateInterval=function(e,n){var i=this.dataZoomModel,a=this._handleEnds,o=this._getViewExtent(),s=i.findRepresentativeAxisProxy().getMinMaxSpan(),l=[0,100];Wo(n,a,o,i.get("zoomLock")?"all":e,s.minSpan!=null?Ut(s.minSpan,l,o,!0):null,s.maxSpan!=null?Ut(s.maxSpan,l,o,!0):null);var u=this._range,f=this._range=$r([Ut(a[0],o,l,!0),Ut(a[1],o,l,!0)]);return!u||u[0]!==f[0]||u[1]!==f[1]},t.prototype._updateView=function(e){var n=this._displayables,i=this._handleEnds,a=$r(i.slice()),o=this._size;M([0,1],function(v){var d=n.handles[v],p=this._handleHeight;d.attr({scaleX:p/2,scaleY:p/2,x:i[v]+(v?-1:1),y:o[1]/2-p/2})},this),n.filler.setShape({x:a[0],y:0,width:a[1]-a[0],height:o[1]});var s={x:a[0],width:a[1]-a[0]};n.moveHandle&&(n.moveHandle.setShape(s),n.moveZone.setShape(s),n.moveZone.getBoundingRect(),n.moveHandleIcon&&n.moveHandleIcon.attr("x",s.x+s.width/2));for(var l=n.dataShadowSegs,u=[0,a[0],a[1],o[0]],f=0;fn[0]||i[1]<0||i[1]>n[1])){var a=this._handleEnds,o=(a[0]+a[1])/2,s=this._updateInterval("all",i[0]-o);this._updateView(),s&&this._dispatchZoomAction(!1)}},t.prototype._onBrushStart=function(e){var n=e.offsetX,i=e.offsetY;this._brushStart=new Ct(n,i),this._brushing=!0,this._brushStartTime=+new Date},t.prototype._onBrushEnd=function(e){if(this._brushing){var n=this._displayables.brushRect;if(this._brushing=!1,!!n){n.attr("ignore",!0);var i=n.shape,a=+new Date;if(!(a-this._brushStartTime<200&&Math.abs(i.width)<5)){var o=this._getViewExtent(),s=[0,100];this._range=$r([Ut(i.x,o,s,!0),Ut(i.x+i.width,o,s,!0)]),this._handleEnds=[i.x,i.x+i.width],this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(e){this._brushing&&(gi(e.event),this._updateBrushRect(e.offsetX,e.offsetY))},t.prototype._updateBrushRect=function(e,n){var i=this._displayables,a=this.dataZoomModel,o=i.brushRect;o||(o=i.brushRect=new Zl({silent:!0,style:a.getModel("brushStyle").getItemStyle()}),i.sliderGroup.add(o)),o.attr("ignore",!1);var s=this._brushStart,l=this._displayables.sliderGroup,u=l.transformCoordToLocal(e,n),f=l.transformCoordToLocal(s.x,s.y),c=this._size;u[0]=Math.max(Math.min(c[0],u[0]),0),o.setShape({x:f[0],y:0,width:u[0]-f[0],height:c[1]})},t.prototype._dispatchZoomAction=function(e){var n=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:e?rnt:null,start:n[0],end:n[1]})},t.prototype._findCoordRect=function(){var e,n=dO(this.dataZoomModel).infoList;if(!e&&n.length){var i=n[0].model.coordinateSystem;e=i.getRect&&i.getRect()}if(!e){var a=this.api.getWidth(),o=this.api.getHeight();e={x:a*.2,y:o*.2,width:a*.6,height:o*.6}}return e},t.type="dataZoom.slider",t}(K1);function int(r){var t={x:"y",y:"x",radius:"angle",angle:"radius"};return t[r]}function $M(r){return r==="vertical"?"ns-resize":"ew-resize"}const ant=nnt;function OO(r){r.registerComponentModel(jrt),r.registerComponentView(ant),j1(r)}function ont(r){Lt(kO),Lt(OO)}var snt={get:function(r,t,e){var n=mt((lnt[r]||{})[t]);return e&&Y(n)?n[n.length-1]:n}},lnt={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}};const NO=snt;var UM=Ge.mapVisual,unt=Ge.eachVisual,fnt=Y,YM=M,cnt=$r,hnt=Ut,vnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.stateList=["inRange","outOfRange"],e.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],e.layoutMode={type:"box",ignoreSize:!0},e.dataBound=[-1/0,1/0],e.targetVisuals={},e.controllerVisuals={},e}return t.prototype.init=function(e,n,i){this.mergeDefaultAndTheme(e,i)},t.prototype.optionUpdated=function(e,n){var i=this.option;!n&&TO(i,e,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},t.prototype.resetVisual=function(e){var n=this.stateList;e=at(e,this),this.controllerVisuals=h0(this.option.controller,n,e),this.targetVisuals=h0(this.option.target,n,e)},t.prototype.getItemSymbol=function(){return null},t.prototype.getTargetSeriesIndices=function(){var e=this.option.seriesIndex,n=[];return e==null||e==="all"?this.ecModel.eachSeries(function(i,a){n.push(a)}):n=Zt(e),n},t.prototype.eachTargetSeries=function(e,n){M(this.getTargetSeriesIndices(),function(i){var a=this.ecModel.getSeriesByIndex(i);a&&e.call(n,a)},this)},t.prototype.isTargetSeries=function(e){var n=!1;return this.eachTargetSeries(function(i){i===e&&(n=!0)}),n},t.prototype.formatValueText=function(e,n,i){var a=this.option,o=a.precision,s=this.dataBound,l=a.formatter,u;i=i||["<",">"],Y(e)&&(e=e.slice(),u=!0);var f=n?e:u?[c(e[0]),c(e[1])]:c(e);if(nt(l))return l.replace("{value}",u?f[0]:f).replace("{value2}",u?f[1]:f);if(vt(l))return u?l(e[0],e[1]):l(e);if(u)return e[0]===s[0]?i[0]+" "+f[1]:e[1]===s[1]?i[1]+" "+f[0]:f[0]+" - "+f[1];return f;function c(h){return h===s[0]?"min":h===s[1]?"max":(+h).toFixed(Math.min(o,20))}},t.prototype.resetExtent=function(){var e=this.option,n=cnt([e.min,e.max]);this._dataExtent=n},t.prototype.getDataDimensionIndex=function(e){var n=this.option.dimension;if(n!=null)return e.getDimensionIndex(n);for(var i=e.dimensions,a=i.length-1;a>=0;a--){var o=i[a],s=e.getDimensionInfo(o);if(!s.isCalculationCoord)return s.storeDimIndex}},t.prototype.getExtent=function(){return this._dataExtent.slice()},t.prototype.completeVisualOption=function(){var e=this.ecModel,n=this.option,i={inRange:n.inRange,outOfRange:n.outOfRange},a=n.target||(n.target={}),o=n.controller||(n.controller={});Tt(a,i),Tt(o,i);var s=this.isCategory();l.call(this,a),l.call(this,o),u.call(this,a,"inRange","outOfRange"),f.call(this,o);function l(c){fnt(n.color)&&!c.inRange&&(c.inRange={color:n.color.slice().reverse()}),c.inRange=c.inRange||{color:e.get("gradientColor")}}function u(c,h,v){var d=c[h],p=c[v];d&&!p&&(p=c[v]={},YM(d,function(g,y){if(Ge.isValidType(y)){var m=NO.get(y,"inactive",s);m!=null&&(p[y]=m,y==="color"&&!p.hasOwnProperty("opacity")&&!p.hasOwnProperty("colorAlpha")&&(p.opacity=[0,0]))}}))}function f(c){var h=(c.inRange||{}).symbol||(c.outOfRange||{}).symbol,v=(c.inRange||{}).symbolSize||(c.outOfRange||{}).symbolSize,d=this.get("inactiveColor"),p=this.getItemSymbol(),g=p||"roundRect";YM(this.stateList,function(y){var m=this.itemSize,_=c[y];_||(_=c[y]={color:s?d:[d]}),_.symbol==null&&(_.symbol=h&&mt(h)||(s?g:[g])),_.symbolSize==null&&(_.symbolSize=v&&mt(v)||(s?m[0]:[m[0],m[0]])),_.symbol=UM(_.symbol,function(b){return b==="none"?g:b});var S=_.symbolSize;if(S!=null){var x=-1/0;unt(S,function(b){b>x&&(x=b)}),_.symbolSize=UM(S,function(b){return hnt(b,[0,x],[0,m[0]],!0)})}},this)}},t.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},t.prototype.isCategory=function(){return!!this.option.categories},t.prototype.setSelected=function(e){},t.prototype.getSelected=function(){return null},t.prototype.getValueState=function(e){return null},t.prototype.getVisualMeta=function(e){return null},t.type="visualMap",t.dependencies=["series"],t.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},t}(Bt);const Tv=vnt;var ZM=[20,140],dnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.optionUpdated=function(e,n){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(i){i.mappingMethod="linear",i.dataExtent=this.getExtent()}),this._resetRange()},t.prototype.resetItemSize=function(){r.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(e[0]==null||isNaN(e[0]))&&(e[0]=ZM[0]),(e[1]==null||isNaN(e[1]))&&(e[1]=ZM[1])},t.prototype._resetRange=function(){var e=this.getExtent(),n=this.option.range;!n||n.auto?(e.auto=1,this.option.range=e):Y(n)&&(n[0]>n[1]&&n.reverse(),n[0]=Math.max(n[0],e[0]),n[1]=Math.min(n[1],e[1]))},t.prototype.completeVisualOption=function(){r.prototype.completeVisualOption.apply(this,arguments),M(this.stateList,function(e){var n=this.option.controller[e].symbolSize;n&&n[0]!==n[1]&&(n[0]=n[1]/3)},this)},t.prototype.setSelected=function(e){this.option.range=e.slice(),this._resetRange()},t.prototype.getSelected=function(){var e=this.getExtent(),n=$r((this.get("range")||[]).slice());return n[0]>e[1]&&(n[0]=e[1]),n[1]>e[1]&&(n[1]=e[1]),n[0]=i[1]||e<=n[1])?"inRange":"outOfRange"},t.prototype.findTargetDataIndices=function(e){var n=[];return this.eachTargetSeries(function(i){var a=[],o=i.getData();o.each(this.getDataDimensionIndex(o),function(s,l){e[0]<=s&&s<=e[1]&&a.push(l)},this),n.push({seriesId:i.id,dataIndex:a})},this),n},t.prototype.getVisualMeta=function(e){var n=XM(this,"outOfRange",this.getExtent()),i=XM(this,"inRange",this.option.range.slice()),a=[];function o(v,d){a.push({value:v,color:e(v,d)})}for(var s=0,l=0,u=i.length,f=n.length;le[1])break;a.push({color:this.getControllerVisual(l,"color",n),offset:s/i})}return a.push({color:this.getControllerVisual(e[1],"color",n),offset:1}),a},t.prototype._createBarPoints=function(e,n){var i=this.visualMapModel.itemSize;return[[i[0]-n[0],e[0]],[i[0],e[0]],[i[0],e[1]],[i[0]-n[1],e[1]]]},t.prototype._createBarGroup=function(e){var n=this._orient,i=this.visualMapModel.get("inverse");return new _t(n==="horizontal"&&!i?{scaleX:e==="bottom"?1:-1,rotation:Math.PI/2}:n==="horizontal"&&i?{scaleX:e==="bottom"?-1:1,rotation:-Math.PI/2}:n==="vertical"&&!i?{scaleX:e==="left"?1:-1,scaleY:-1}:{scaleX:e==="left"?1:-1})},t.prototype._updateHandle=function(e,n){if(this._useHandle){var i=this._shapes,a=this.visualMapModel,o=i.handleThumbs,s=i.handleLabels,l=a.itemSize,u=a.getExtent(),f=this._applyTransform("left",i.mainGroup);ynt([0,1],function(c){var h=o[c];h.setStyle("fill",n.handlesColor[c]),h.y=e[c];var v=Mn(e[c],[0,l[1]],u,!0),d=this.getControllerVisual(v,"symbolSize");h.scaleX=h.scaleY=d/l[0],h.x=l[0]-d/2;var p=cn(i.handleLabelPoints[c],bo(h,this.group));if(this._orient==="horizontal"){var g=f==="left"||f==="top"?(l[0]-d)/2:(l[0]-d)/-2;p[1]+=g}s[c].setStyle({x:p[0],y:p[1],text:a.formatValueText(this._dataInterval[c]),verticalAlign:"middle",align:this._orient==="vertical"?this._applyTransform("left",i.mainGroup):"center"})},this)}},t.prototype._showIndicator=function(e,n,i,a){var o=this.visualMapModel,s=o.getExtent(),l=o.itemSize,u=[0,l[1]],f=this._shapes,c=f.indicator;if(c){c.attr("invisible",!1);var h={convertOpacityToAlpha:!0},v=this.getControllerVisual(e,"color",h),d=this.getControllerVisual(e,"symbolSize"),p=Mn(e,s,u,!0),g=l[0]-d/2,y={x:c.x,y:c.y};c.y=p,c.x=g;var m=cn(f.indicatorLabelPoint,bo(c,this.group)),_=f.indicatorLabel;_.attr("invisible",!1);var S=this._applyTransform("left",f.mainGroup),x=this._orient,b=x==="horizontal";_.setStyle({text:(i||"")+o.formatValueText(n),verticalAlign:b?S:"middle",align:b?"center":S});var w={x:g,y:p,style:{fill:v}},T={style:{x:m[0],y:m[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var A={duration:100,easing:"cubicInOut",additive:!0};c.x=y.x,c.y=y.y,c.animateTo(w,A),_.animateTo(T,A)}else c.attr(w),_.attr(T);this._firstShowIndicator=!1;var C=this._shapes.handleLabels;if(C)for(var D=0;Do[1]&&(c[1]=1/0),n&&(c[0]===-1/0?this._showIndicator(f,c[1],"< ",l):c[1]===1/0?this._showIndicator(f,c[0],"> ",l):this._showIndicator(f,f,"≈ ",l));var h=this._hoverLinkDataIndices,v=[];(n||JM(i))&&(v=this._hoverLinkDataIndices=i.findTargetDataIndices(c));var d=sF(h,v);this._dispatchHighDown("downplay",Sh(d[0],i)),this._dispatchHighDown("highlight",Sh(d[1],i))}},t.prototype._hoverLinkFromSeriesMouseOver=function(e){var n;if(uo(e.target,function(l){var u=St(l);if(u.dataIndex!=null)return n=u,!0},!0),!!n){var i=this.ecModel.getSeriesByIndex(n.seriesIndex),a=this.visualMapModel;if(a.isTargetSeries(i)){var o=i.getData(n.dataType),s=o.getStore().get(a.getDataDimensionIndex(o),n.dataIndex);isNaN(s)||this._showIndicator(s,s)}}},t.prototype._hideIndicator=function(){var e=this._shapes;e.indicator&&e.indicator.attr("invisible",!0),e.indicatorLabel&&e.indicatorLabel.attr("invisible",!0);var n=this._shapes.handleLabels;if(n)for(var i=0;i=0&&(a.dimension=o,n.push(a))}}),r.getData().setVisual("visualMeta",n)}}];function Cnt(r,t,e,n){for(var i=t.targetVisuals[n],a=Ge.prepareVisualTypes(i),o={color:If(r.getData(),"color")},s=0,l=a.length;s0:t.splitNumber>0)||t.calculable)?"continuous":"piecewise"}),r.registerAction(wnt,Tnt),M(Ant,function(t){r.registerVisual(r.PRIORITY.VISUAL.COMPONENT,t)}),r.registerPreprocessor(Mnt))}function GO(r){r.registerComponentModel(pnt),r.registerComponentView(bnt),zO(r)}var Dnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e._pieceList=[],e}return t.prototype.optionUpdated=function(e,n){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],Int[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var a=this.option.categories;this.resetVisual(function(o,s){i==="categories"?(o.mappingMethod="category",o.categories=mt(a)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=Z(this._pieceList,function(l){return l=mt(l),s!=="inRange"&&(l.visual=null),l}))})},t.prototype.completeVisualOption=function(){var e=this.option,n={},i=Ge.listVisualTypes(),a=this.isCategory();M(e.pieces,function(s){M(i,function(l){s.hasOwnProperty(l)&&(n[l]=1)})}),M(n,function(s,l){var u=!1;M(this.stateList,function(f){u=u||o(e,f,l)||o(e.target,f,l)},this),!u&&M(this.stateList,function(f){(e[f]||(e[f]={}))[l]=NO.get(l,f==="inRange"?"active":"inactive",a)})},this);function o(s,l,u){return s&&s[l]&&s[l].hasOwnProperty(u)}r.prototype.completeVisualOption.apply(this,arguments)},t.prototype._resetSelected=function(e,n){var i=this.option,a=this._pieceList,o=(n?i:e).selected||{};if(i.selected=o,M(a,function(l,u){var f=this.getSelectedMapKey(l);o.hasOwnProperty(f)||(o[f]=!0)},this),i.selectedMode==="single"){var s=!1;M(a,function(l,u){var f=this.getSelectedMapKey(l);o[f]&&(s?o[f]=!1:s=!0)},this)}},t.prototype.getItemSymbol=function(){return this.get("itemSymbol")},t.prototype.getSelectedMapKey=function(e){return this._mode==="categories"?e.value+"":e.index+""},t.prototype.getPieceList=function(){return this._pieceList},t.prototype._determineMode=function(){var e=this.option;return e.pieces&&e.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},t.prototype.setSelected=function(e){this.option.selected=mt(e)},t.prototype.getValueState=function(e){var n=Ge.findPieceIndex(e,this._pieceList);return n!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[n])]?"inRange":"outOfRange"},t.prototype.findTargetDataIndices=function(e){var n=[],i=this._pieceList;return this.eachTargetSeries(function(a){var o=[],s=a.getData();s.each(this.getDataDimensionIndex(s),function(l,u){var f=Ge.findPieceIndex(l,i);f===e&&o.push(u)},this),n.push({seriesId:a.id,dataIndex:o})},this),n},t.prototype.getRepresentValue=function(e){var n;if(this.isCategory())n=e.value;else if(e.value!=null)n=e.value;else{var i=e.interval||[];n=i[0]===-1/0&&i[1]===1/0?0:(i[0]+i[1])/2}return n},t.prototype.getVisualMeta=function(e){if(this.isCategory())return;var n=[],i=["",""],a=this;function o(f,c){var h=a.getRepresentValue({interval:f});c||(c=a.getValueState(h));var v=e(h,c);f[0]===-1/0?i[0]=v:f[1]===1/0?i[1]=v:n.push({value:f[0],color:v},{value:f[1],color:v})}var s=this._pieceList.slice();if(!s.length)s.push({interval:[-1/0,1/0]});else{var l=s[0].interval[0];l!==-1/0&&s.unshift({interval:[-1/0,l]}),l=s[s.length-1].interval[1],l!==1/0&&s.push({interval:[l,1/0]})}var u=-1/0;return M(s,function(f){var c=f.interval;c&&(c[0]>u&&o([u,c[0]],"outOfRange"),o(c.slice()),u=c[1])},this),{stops:n,outerColors:i}},t.type="visualMap.piecewise",t.defaultOption=ya(Tv.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),t}(Tv),Int={splitNumber:function(r){var t=this.option,e=Math.min(t.precision,20),n=this.getExtent(),i=t.splitNumber;i=Math.max(parseInt(i,10),1),t.splitNumber=i;for(var a=(n[1]-n[0])/i;+a.toFixed(e)!==a&&e<5;)e++;t.precision=e,a=+a.toFixed(e),t.minOpen&&r.push({interval:[-1/0,n[0]],close:[0,0]});for(var o=0,s=n[0];o","≥"][n[0]]];e.text=e.text||this.formatValueText(e.value!=null?e.value:e.interval,!1,i)},this)}};function rD(r,t){var e=r.inverse;(r.orient==="vertical"?!e:e)&&t.reverse()}const Lnt=Dnt;var Pnt=function(r){B(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.doRender=function(){var e=this.group;e.removeAll();var n=this.visualMapModel,i=n.get("textGap"),a=n.textStyleModel,o=a.getFont(),s=a.getTextColor(),l=this._getItemAlign(),u=n.itemSize,f=this._getViewData(),c=f.endsText,h=Re(n.get("showLabel",!0),!c),v=!n.get("selectedMode");c&&this._renderEndsText(e,c[0],u,h,l),M(f.viewPieceList,function(d){var p=d.piece,g=new _t;g.onclick=at(this._onItemClick,this,p),this._enableHoverLink(g,d.indexInModelPieceList);var y=n.getRepresentValue(p);if(this._createItemSymbol(g,y,[0,0,u[0],u[1]],v),h){var m=this.visualMapModel.getValueState(y);g.add(new Gt({style:{x:l==="right"?-i:u[0]+i,y:u[1]/2,text:p.text,verticalAlign:"middle",align:l,font:o,fill:s,opacity:m==="outOfRange"?.5:1},silent:v}))}e.add(g)},this),c&&this._renderEndsText(e,c[1],u,h,l),wo(n.get("orient"),e,n.get("itemGap")),this.renderBackground(e),this.positionGroup(e)},t.prototype._enableHoverLink=function(e,n){var i=this;e.on("mouseover",function(){return a("highlight")}).on("mouseout",function(){return a("downplay")});var a=function(o){var s=i.visualMapModel;s.option.hoverLink&&i.api.dispatchAction({type:o,batch:Sh(s.findTargetDataIndices(n),s)})}},t.prototype._getItemAlign=function(){var e=this.visualMapModel,n=e.option;if(n.orient==="vertical")return BO(e,this.api,e.itemSize);var i=n.align;return(!i||i==="auto")&&(i="left"),i},t.prototype._renderEndsText=function(e,n,i,a,o){if(n){var s=new _t,l=this.visualMapModel.textStyleModel;s.add(new Gt({style:Qt(l,{x:a?o==="right"?i[0]:0:i[0]/2,y:i[1]/2,verticalAlign:"middle",align:a?o:"center",text:n})})),e.add(s)}},t.prototype._getViewData=function(){var e=this.visualMapModel,n=Z(e.getPieceList(),function(s,l){return{piece:s,indexInModelPieceList:l}}),i=e.get("text"),a=e.get("orient"),o=e.get("inverse");return(a==="horizontal"?o:!o)?n.reverse():i&&(i=i.slice().reverse()),{viewPieceList:n,endsText:i}},t.prototype._createItemSymbol=function(e,n,i,a){var o=me(this.getControllerVisual(n,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(n,"color"));o.silent=a,e.add(o)},t.prototype._onItemClick=function(e){var n=this.visualMapModel,i=n.option,a=i.selectedMode;if(a){var o=mt(i.selected),s=n.getSelectedMapKey(e);a==="single"||a===!0?(o[s]=!0,M(o,function(l,u){o[u]=u===s})):o[s]=!o[s],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},t.type="visualMap.piecewise",t}(VO);const Rnt=Pnt;function FO(r){r.registerComponentModel(Lnt),r.registerComponentView(Rnt),zO(r)}function Ent(r){Lt(GO),Lt(FO)}var knt={label:{enabled:!0},decal:{show:!1}},nD=Nt(),Ont={};function Nnt(r,t){var e=r.getModel("aria");if(!e.get("enabled"))return;var n=mt(knt);Tt(n.label,r.getLocaleModel().get("aria"),!1),Tt(e.option,n,!1),i(),a();function i(){var u=e.getModel("decal"),f=u.get("show");if(f){var c=ft();r.eachSeries(function(h){if(!h.isColorBySeries()){var v=c.get(h.type);v||(v={},c.set(h.type,v)),nD(h).scope=v}}),r.eachRawSeries(function(h){if(r.isSeriesFiltered(h))return;if(vt(h.enableAriaDecal)){h.enableAriaDecal();return}var v=h.getData();if(h.isColorBySeries()){var m=Sm(h.ecModel,h.name,Ont,r.getSeriesCount()),_=v.getVisual("decal");v.setVisual("decal",S(_,m))}else{var d=h.getRawData(),p={},g=nD(h).scope;v.each(function(x){var b=v.getRawIndex(x);p[b]=x});var y=d.count();d.each(function(x){var b=p[x],w=d.getName(x)||x+"",T=Sm(h.ecModel,w,g,y),A=v.getItemVisual(b,"decal");v.setItemVisual(b,"decal",S(A,T))})}function S(x,b){var w=x?F(F({},b),x):b;return w.dirty=!0,w}})}}function a(){var u=t.getZr().dom;if(u){var f=r.getLocaleModel().get("aria"),c=e.getModel("label");if(c.option=pt(c.option,f),!!c.get("enabled")){if(u.setAttribute("role","img"),c.get("description")){u.setAttribute("aria-label",c.get("description"));return}var h=r.getSeriesCount(),v=c.get(["data","maxCount"])||10,d=c.get(["series","maxCount"])||10,p=Math.min(h,d),g;if(!(h<1)){var y=s();if(y){var m=c.get(["general","withTitle"]);g=o(m,{title:y})}else g=c.get(["general","withoutTitle"]);var _=[],S=h>1?c.get(["series","multiple","prefix"]):c.get(["series","single","prefix"]);g+=o(S,{seriesCount:h}),r.eachSeries(function(T,A){if(A1?c.get(["series","multiple",I]):c.get(["series","single",I]),C=o(C,{seriesId:T.seriesIndex,seriesName:T.get("name"),seriesType:l(T.subType)});var L=T.getData();if(L.count()>v){var P=c.get(["data","partialData"]);C+=o(P,{displayCnt:v})}else C+=c.get(["data","allData"]);for(var E=c.get(["data","separator","middle"]),O=c.get(["data","separator","end"]),V=c.get(["data","excludeDimensionId"]),N=[],G=0;G":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},znt=function(){function r(t){var e=this._condVal=nt(t)?new RegExp(t):g5(t)?t:null;if(e==null){var n="";Wt(n)}}return r.prototype.evaluate=function(t){var e=typeof t;return nt(e)?this._condVal.test(t):Ft(e)?this._condVal.test(t+""):!1},r}(),Gnt=function(){function r(){}return r.prototype.evaluate=function(){return this.value},r}(),Fnt=function(){function r(){}return r.prototype.evaluate=function(){for(var t=this.children,e=0;e2&&n.push(i),i=[L,P]}function f(L,P,E,O){ws(L,E)&&ws(P,O)||i.push(L,P,E,O,E,O)}function c(L,P,E,O,V,N){var G=Math.abs(P-L),$=Math.tan(G/4)*4/3,q=PT:D2&&n.push(i),n}function S0(r,t,e,n,i,a,o,s,l,u){if(ws(r,e)&&ws(t,n)&&ws(i,o)&&ws(a,s)){l.push(o,s);return}var f=2/u,c=f*f,h=o-r,v=s-t,d=Math.sqrt(h*h+v*v);h/=d,v/=d;var p=e-r,g=n-t,y=i-o,m=a-s,_=p*p+g*g,S=y*y+m*m;if(_=0&&T=0){l.push(o,s);return}var A=[],C=[];oa(r,e,i,o,.5,A),oa(t,n,a,s,.5,C),S0(A[0],C[0],A[1],C[1],A[2],C[2],A[3],C[3],l,u),S0(A[4],C[4],A[5],C[5],A[6],C[6],A[7],C[7],l,u)}function eit(r,t){var e=_0(r),n=[];t=t||1;for(var i=0;i0)for(var u=0;uMath.abs(u),c=WO([l,u],f?0:1,t),h=(f?s:u)/c.length,v=0;vi,o=WO([n,i],a?0:1,t),s=a?"width":"height",l=a?"height":"width",u=a?"x":"y",f=a?"y":"x",c=r[s]/o.length,h=0;h1?null:new Ct(p*l+r,p*u+t)}function iit(r,t,e){var n=new Ct;Ct.sub(n,e,t),n.normalize();var i=new Ct;Ct.sub(i,r,t);var a=i.dot(n);return a}function cs(r,t){var e=r[r.length-1];e&&e[0]===t[0]&&e[1]===t[1]||r.push(t)}function ait(r,t,e){for(var n=r.length,i=[],a=0;ao?(u.x=f.x=s+a/2,u.y=l,f.y=l+o):(u.y=f.y=l+o/2,u.x=s,f.x=s+a),ait(t,u,f)}function Av(r,t,e,n){if(e===1)n.push(t);else{var i=Math.floor(e/2),a=r(t);Av(r,a[0],i,n),Av(r,a[1],e-i,n)}return n}function oit(r,t){for(var e=[],n=0;n0)for(var x=n/e,b=-n/2;b<=n/2;b+=x){for(var w=Math.sin(b),T=Math.cos(b),A=0,_=0;_0;u/=2){var f=0,c=0;(r&u)>0&&(f=1),(t&u)>0&&(c=1),s+=u*u*(3*f^c),c===0&&(f===1&&(r=u-1-r,t=u-1-t),l=r,r=t,t=l)}return s}function Dv(r){var t=1/0,e=1/0,n=-1/0,i=-1/0,a=Z(r,function(s){var l=s.getBoundingRect(),u=s.getComputedTransform(),f=l.x+l.width/2+(u?u[4]:0),c=l.y+l.height/2+(u?u[5]:0);return t=Math.min(f,t),e=Math.min(c,e),n=Math.max(f,n),i=Math.max(c,i),[f,c]}),o=Z(a,function(s,l){return{cp:s,z:pit(s[0],s[1],t,e,n,i),path:r[l]}});return o.sort(function(s,l){return s.z-l.z}).map(function(s){return s.path})}function YO(r){return uit(r.path,r.count)}function x0(){return{fromIndividuals:[],toIndividuals:[],count:0}}function git(r,t,e){var n=[];function i(x){for(var b=0;b=0;i--)if(!e[i].many.length){var l=e[s].many;if(l.length<=1)if(s)s=0;else return e;var a=l.length,u=Math.ceil(a/2);e[i].many=l.slice(u,a),e[s].many=l.slice(0,u),s++}return e}var mit={clone:function(r){for(var t=[],e=1-Math.pow(1-r.path.style.opacity,1/r.count),n=0;n0))return;var s=n.getModel("universalTransition").get("delay"),l=Object.assign({setToFinal:!0},o),u,f;hD(r)&&(u=r,f=t),hD(t)&&(u=t,f=r);function c(y,m,_,S,x){var b=y.many,w=y.one;if(b.length===1&&!x){var T=m?b[0]:w,A=m?w:b[0];if(Cv(T))c({many:[T],one:A},!0,_,S,!0);else{var C=s?pt({delay:s(_,S)},l):l;sS(T,A,C),a(T,A,T,A,C)}}else for(var D=pt({dividePath:mit[e],individualDelay:s&&function(V,N,G,$){return s(V+_,S)}},l),I=m?git(b,w,D):yit(w,b,D),L=I.fromIndividuals,P=I.toIndividuals,E=L.length,O=0;Ot.length,v=u?vD(f,u):vD(h?t:r,[h?r:t]),d=0,p=0;pZO))for(var a=n.getIndices(),o=0;o0&&b.group.traverse(function(T){T instanceof Pt&&!T.animators.length&&T.animateFrom({style:{opacity:0}},w)})})}function mD(r){var t=r.getModel("universalTransition").get("seriesKey");return t||r.id}function _D(r){return Y(r)?r.sort().join(","):r}function $i(r){if(r.hostModel)return r.hostModel.getModel("universalTransition").get("divideShape")}function Ait(r,t){var e=ft(),n=ft(),i=ft();return M(r.oldSeries,function(a,o){var s=r.oldDataGroupIds[o],l=r.oldData[o],u=mD(a),f=_D(u);n.set(f,{dataGroupId:s,data:l}),Y(u)&&M(u,function(c){i.set(c,{key:f,dataGroupId:s,data:l})})}),M(t.updatedSeries,function(a){if(a.isUniversalTransitionEnabled()&&a.isAnimationEnabled()){var o=a.get("dataGroupId"),s=a.getData(),l=mD(a),u=_D(l),f=n.get(u);if(f)e.set(u,{oldSeries:[{dataGroupId:f.dataGroupId,divide:$i(f.data),data:f.data}],newSeries:[{dataGroupId:o,divide:$i(s),data:s}]});else if(Y(l)){var c=[];M(l,function(d){var p=n.get(d);p.data&&c.push({dataGroupId:p.dataGroupId,divide:$i(p.data),data:p.data})}),c.length&&e.set(u,{oldSeries:c,newSeries:[{dataGroupId:o,data:s,divide:$i(s)}]})}else{var h=i.get(l);if(h){var v=e.get(h.key);v||(v={oldSeries:[{dataGroupId:h.dataGroupId,data:h.data,divide:$i(h.data)}],newSeries:[]},e.set(h.key,v)),v.newSeries.push({dataGroupId:o,data:s,divide:$i(s)})}}}}),e}function SD(r,t){for(var e=0;e=0&&i.push({dataGroupId:t.oldDataGroupIds[s],data:t.oldData[s],divide:$i(t.oldData[s]),groupIdDim:o.dimension})}),M(Zt(r.to),function(o){var s=SD(e.updatedSeries,o);if(s>=0){var l=e.updatedSeries[s].getData();a.push({dataGroupId:t.oldDataGroupIds[s],data:l,divide:$i(l),groupIdDim:o.dimension})}}),i.length>0&&a.length>0&&XO(i,a,n)}function Mit(r){r.registerUpdateLifecycle("series:beforeupdate",function(t,e,n){M(Zt(n.seriesTransition),function(i){M(Zt(i.to),function(a){for(var o=n.updatedSeries,s=0;s{b0(r)}))}function b0(r,t=new WeakSet){if(!(!r||typeof r!="object")&&!t.has(r)){if(t.add(r),Array.isArray(r)){r.forEach(e=>b0(e,t));return}r.tooltip&&typeof r.tooltip=="object"&&(r.tooltip=Iit(r.tooltip)),Object.keys(r).forEach(e=>{const n=r[e];!n||typeof n!="object"||b0(n,t)})}}function Iit(r){var t,e;return dS(vS({},r),{appendToBody:(t=r.appendToBody)!=null?t:!0,confine:(e=r.confine)!=null?e:!1,extraCssText:Lit(r.extraCssText)})}function Lit(r=""){const t=String(r||"").trim();return t?/z-index\s*:/i.test(t)?t:`${t.replace(/;$/,"")};${xD}`:xD}Dit();let Pit=PB(Qz);Pit.use(GI).mount("#app");export{E0 as A,UV as B,Ih as C,Vit as D,jit as E,zr as F,U0 as G,$it as H,Kit as I,A0 as J,kN as K,Af as L,Bv as M,Uit as N,KV as O,V0 as P,Oit as Q,TI as R,Eit as S,Nit as T,Jit as U,ke as V,F_ as W,Kz as _,xI as a,Pe as b,Git as c,qc as d,Zit as e,Yit as f,nn as g,lV as h,un as i,Hit as j,Yz as k,qit as l,Xit as m,C0 as n,Mh as o,Kc as p,aV as q,zit as r,kit as s,hN as t,go as u,Wit as v,jc as w,YN as x,Bit as y,Fit as z}; diff --git a/docs/assets/index-41d168c2-balabala-1784043664472.css b/docs/assets/index-41d168c2-balabala-1784043664472.css new file mode 100644 index 0000000..9fcc48c --- /dev/null +++ b/docs/assets/index-41d168c2-balabala-1784043664472.css @@ -0,0 +1 @@ +.pasture-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.pasture-map-scene,.pasture-ol-map-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.pasture-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 58%,rgba(1,9,15,.16) 82%,rgba(1,8,13,.42) 100%),linear-gradient(90deg,rgba(0,12,20,.24),transparent 22%,transparent 78%,rgba(0,12,20,.24)),linear-gradient(180deg,rgba(2,16,27,.01),rgba(2,13,22,.12))}.pasture-map-loading{position:absolute;left:50%;top:54%;z-index:4;color:#defaffc7;font-size:14px;transform:translate(-50%,-50%)}.pasture-management-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.pasture-left,.pasture-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.pasture-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.pasture-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.pasture-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.pasture-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.pasture-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.pasture-side-card{flex:0 0 auto}.pasture-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.pasture-household-rank{display:flex;flex-direction:column;gap:4px;height:100%;padding:1px 12px 3px;box-sizing:border-box}.pasture-household-rank-row{position:relative;flex:1 1 0;min-height:24px}.pasture-household-rank-row:before{position:absolute;left:0;top:8px;width:5px;height:5px;border:1px solid var(--rank-color);border-radius:50%;content:"";background:rgba(6,28,40,.92);box-shadow:none}.pasture-household-rank-row.is-leading .pasture-rank-value{color:#fff;text-shadow:none}.pasture-rank-copy{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:7px;align-items:center;height:18px;padding-left:12px}.pasture-rank-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:15px;border:1px solid rgba(48,220,255,.24);color:var(--rank-color);font-size:10px;line-height:1;font-weight:800;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.02));box-shadow:inset 0 0 10px #30dcff1a}.pasture-rank-name{overflow:hidden;color:#e2faffe6;font-size:14px;line-height:17px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.pasture-rank-value{color:#f0fdfff0;font-size:14px;line-height:17px;font-weight:900}.pasture-rank-value em{margin-left:4px;color:#d2f2f8b8;font-size:10px;font-style:normal;font-weight:700}.pasture-rank-track{position:relative;height:6px;margin:1px 0 0 45px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02)),rgba(3,22,33,.72);box-shadow:inset 0 0 12px #0000003d}.pasture-rank-track i{display:block;width:var(--rank-rate);height:100%;background:linear-gradient(90deg,rgba(35,246,200,.18),var(--rank-color));box-shadow:0 0 3px #30dcff1f}.pasture-grassland-profile{display:grid;grid-template-rows:54px minmax(0,1fr);gap:5px;height:100%;padding:2px 11px 3px;box-sizing:border-box}.pasture-grassland-featured{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-height:0}.pasture-grassland-feature-card{position:relative;overflow:hidden;padding:5px 9px 6px;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--area-color) 14%,transparent),transparent 42%),linear-gradient(135deg,rgba(19,90,112,.24),rgba(3,28,42,.5));box-shadow:inset 0 0 0 1px #ffffff08,inset 0 -18px 28px #00000024}.pasture-grassland-feature-card:after{position:absolute;right:-18px;top:-18px;width:54px;height:54px;border:1px solid color-mix(in srgb,var(--area-color) 55%,transparent);border-radius:50%;content:"";opacity:.28;box-shadow:none}.pasture-grassland-feature-card span{display:block;color:#dcfaffd1;font-size:12px;line-height:14px;font-weight:800}.pasture-grassland-feature-card strong{display:block;margin-top:1px;color:#fff;font-size:19px;line-height:22px;font-weight:900;text-shadow:none}.pasture-grassland-feature-card em,.pasture-grassland-mini-row em{margin-left:4px;color:#d8f4fab8;font-size:10px;font-style:normal;font-weight:800}.pasture-feature-track{position:absolute;right:10px;bottom:6px;left:10px;height:3px;overflow:hidden;background:rgba(14,57,72,.72)}.pasture-feature-track i{display:block;width:var(--area-rate);height:100%;background:linear-gradient(90deg,rgba(255,255,255,.18),var(--area-color));box-shadow:0 0 3px #30dcff1f}.pasture-grassland-mini-list{display:flex;flex-direction:column;gap:3px;min-height:0}.pasture-grassland-mini-row{display:grid;grid-template-columns:64px minmax(0,1fr) 70px;gap:6px;align-items:center;min-height:14px}.pasture-grassland-mini-row span{overflow:hidden;color:#defaffd6;font-size:12px;line-height:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.pasture-grassland-mini-row strong{justify-self:end;color:#f5fdfff0;font-size:12px;line-height:14px;font-weight:900}.pasture-mini-track{height:5px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(8,39,54,.66)}.pasture-mini-track i{display:block;width:var(--area-rate);height:100%;background:linear-gradient(90deg,rgba(48,220,255,.08),var(--area-color));box-shadow:0 0 3px #30dcff1f}.pasture-video-card .m-card-bd-content{bottom:12px}.pasture-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.pasture-video-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;height:100%;min-height:0}.pasture-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.pasture-video-screen{position:relative;width:100%;height:100%;min-width:0;margin:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.pasture-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.pasture-video-screen:not(.is-active){opacity:.88}.pasture-video-screen.is-playing{background-image:none!important}.pasture-video-screen>.pasture-video-player,.pasture-video-screen [id$=-wrap],.pasture-video-screen [id$=-wrap]>.pasture-video-player>div,.pasture-video-screen [id$=-wrap]>.pasture-video-player .play-window,.pasture-video-screen [id$=-wrap]>.pasture-video-player video,.pasture-video-screen [id$=-wrap]>.pasture-video-player canvas,.pasture-video-screen [id$=-wrap]>.pasture-video-player iframe{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important}.pasture-video-screen>.pasture-video-player,.pasture-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.pasture-video-screen [id$=-wrap]>.pasture-video-player{position:relative!important;inset:auto!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.pasture-video-screen [id$=-wrap]>.pasture-video-player>div,.pasture-video-screen [id$=-wrap]>.pasture-video-player .play-window,.pasture-video-screen [id$=-wrap]>.pasture-video-player video,.pasture-video-screen [id$=-wrap]>.pasture-video-player canvas,.pasture-video-screen [id$=-wrap]>.pasture-video-player iframe{z-index:1}.pasture-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.pasture-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.pasture-video-player video{object-fit:cover}.pasture-video-screen .loading-container,.pasture-video-screen .loading-item,.pasture-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.pasture-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.pasture-video-nav:disabled{cursor:not-allowed;opacity:.38}.pasture-video-prev{left:18px}.pasture-video-next{right:18px}.pasture-video-screen:before{display:none;content:none}.pasture-video-play{position:absolute;left:50%;top:46%;z-index:4;width:30px;height:30px;border:1px solid rgba(255,255,255,.62);border-radius:50%;background:rgba(0,0,0,.36);box-shadow:none;transform:translate(-50%,-50%)}.pasture-video-play:after{position:absolute;left:12px;top:8px;width:0;height:0;content:"";border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid #ffffff}.pasture-video-point-name{position:absolute;right:10px;bottom:8px;left:10px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.pasture-video-screen.is-playing .pasture-video-point-name{z-index:2;opacity:0}.pasture-video-loading,.pasture-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.pasture-video-error{border-color:#8bf7ff6b;color:#c9fbff}.pasture-map-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;height:430px;pointer-events:all}.pasture-map-layer-tools .m-card{width:100%!important;height:100%!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.pasture-map-feature-info{position:absolute;z-index:9;width:460px;pointer-events:all}.pasture-map-feature-info .m-card{width:100%!important;background:rgba(3,18,30,.7);backdrop-filter:blur(2px)}.pasture-map-feature-close{position:absolute;top:18px;right:18px;z-index:3;width:30px;height:30px;border:1px solid rgba(64,224,255,.56);border-radius:2px;color:#e4fafff5;background:linear-gradient(135deg,rgba(37,213,255,.22),rgba(10,55,76,.72));box-shadow:inset 0 0 12px #2ad2ff2e,0 0 10px #1eb8e629;font-size:23px;line-height:26px;font-weight:400;text-align:center;cursor:pointer;pointer-events:all;transition:border-color .16s ease,color .16s ease,background .16s ease,transform .16s ease}.pasture-map-feature-close:hover{color:#fff;border-color:#34f6ffe6;background:linear-gradient(135deg,rgba(38,240,255,.34),rgba(13,75,102,.86));transform:translateY(-1px)}.pasture-management .business-bars.is-distribution{max-height:100%;padding-right:8px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.pasture-management .business-bars.is-distribution::-webkit-scrollbar{width:0;height:0} diff --git a/docs/assets/index-695ff00c-balabala-1783995319167.css b/docs/assets/index-46ddbb9a-balabala-1784043664472.css similarity index 97% rename from docs/assets/index-695ff00c-balabala-1783995319167.css rename to docs/assets/index-46ddbb9a-balabala-1784043664472.css index f4826a2..02a7f03 100644 --- a/docs/assets/index-695ff00c-balabala-1783995319167.css +++ b/docs/assets/index-46ddbb9a-balabala-1784043664472.css @@ -1 +1 @@ -.login-screen[data-v-8ebd0d6e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1783995319167.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-8ebd0d6e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-8ebd0d6e]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-8ebd0d6e]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-8ebd0d6e]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-8ebd0d6e]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-8ebd0d6e]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-8ebd0d6e]{margin-bottom:26px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-8ebd0d6e]{display:block;margin-bottom:18px}.login-field span[data-v-8ebd0d6e]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-8ebd0d6e]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-8ebd0d6e]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-8ebd0d6e]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-8ebd0d6e]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-8ebd0d6e]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-8ebd0d6e]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-8ebd0d6e]{font-size:30px}.login-panel[data-v-8ebd0d6e]{width:100%}} +.login-screen[data-v-8ebd0d6e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1784043664472.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-8ebd0d6e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-8ebd0d6e]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-8ebd0d6e]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-8ebd0d6e]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-8ebd0d6e]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-8ebd0d6e]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-8ebd0d6e]{margin-bottom:26px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-8ebd0d6e]{display:block;margin-bottom:18px}.login-field span[data-v-8ebd0d6e]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-8ebd0d6e]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-8ebd0d6e]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-8ebd0d6e]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-8ebd0d6e]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-8ebd0d6e]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-8ebd0d6e]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-8ebd0d6e]{font-size:30px}.login-panel[data-v-8ebd0d6e]{width:100%}} diff --git a/docs/assets/index-4921f42e-1784043664472.js b/docs/assets/index-4921f42e-1784043664472.js new file mode 100644 index 0000000..08195c0 --- /dev/null +++ b/docs/assets/index-4921f42e-1784043664472.js @@ -0,0 +1,112 @@ +var Yn=Object.defineProperty,Qn=Object.defineProperties;var Jn=Object.getOwnPropertyDescriptors;var io=Object.getOwnPropertySymbols;var Zn=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var ro=(C,n,r)=>n in C?Yn(C,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):C[n]=r,D=(C,n)=>{for(var r in n||(n={}))Zn.call(n,r)&&ro(C,r,n[r]);if(io)for(var r of io(n))Xn.call(n,r)&&ro(C,r,n[r]);return C},V=(C,n)=>Qn(C,Jn(n));var re=(C,n,r)=>new Promise((c,s)=>{var f=h=>{try{m(r.next(h))}catch(b){s(b)}},p=h=>{try{m(r.throw(h))}catch(b){s(b)}},m=h=>h.done?c(h.value):Promise.resolve(h.value).then(f,p);m((r=r.apply(C,n)).next())});import{h as Ao,w as ht,o as L,c as F,a as w,d as G,K as ei,g as I,L as je,q as ti,A as W,s as so,v as lo,b as At,C as xe,j as q,J as lt,u as We,F as _e,y as Ie,x as la,B as ai,n as Ue,e as Tt,f as Se,t as z,T as oi,M as ni}from"./index-1784043664472.js";import{l as co,g as ii,E as ri}from"./live-scene-1-16ce1514-1784043664472.js";import{H as ca}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as uo}from"./index-e3442fcf-1784043664472.js";import{g as ua,C as si,H as li,a as ci,M as ui}from"./index-0060e718-1784043664472.js";import{O as di,P as Ee,a as Z,D as qe,C as se,A as me,b as Q,e as fi,F as hi,G as fe,c as mi,d as pi,f as gi,g as fo,L as ho,V as Y,h as mo,R as he,B as vi,S as da,i as yi,j as bi,k as wi,l as xi,N as Si,Q as Mi,T as ki,m as Pi,n as po,o as go,p as Ci,q as vo,r as Li}from"./screen2Standard-15e4461a-1784043664472.js";import{M as Ai,h as Ti,L as _i,B as yo,a as fa,E as Ii,G as Fi,D as Ei,b as Oi,l as ha,P as bo,c as wo,g as Bi,d as Gi,s as ma,f as _t,e as Ni,i as Hi,j as Ri,k as xo}from"./data-3d6664cd-1784043664472.js";import{g as Ye}from"./index-e9f36657-1784043664472.js";import{h as Di,a as To,f as zi,g as $i,b as Vi}from"./townshipBoundaries-1b068bef-1784043664472.js";import{R as ji,p as So,a as Wi,b as Ui,h as Ki,r as qi,c as Yi,g as Mo,d as Qi,e as Ji,o as Zi,s as Xi,f as er,i as tr,j as ar,k as or,l as nr,m as ir,n as rr,_ as sr}from"./TopicSwitcher-f0c08774-1784043664472.js";import{_ as lr,a as ko}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{g as Po,a as cr}from"./openApi-928665d4-1784043664472.js";import{c as ur,F as dr,g as fr,a as hr}from"./featurePanelLayout-93409244-1784043664472.js";import{g as mr}from"./yakApi-032bf70c-1784043664472.js";import{w as ct,f as pa}from"./chartTheme-95a980bb-1784043664472.js";import{b as pr}from"./data-5c83c66b-1784043664472.js";import{h as gr,y as vr}from"./data-b0a5f9a8-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.js";import"./geoserver-6574cb91-1784043664472.js";class yr extends di{constructor(n,r){super(),this.config=Object.assign({color1:16566615,color2:16777215},r),this.assets={instance:null},this.assets.instance=n.assets.instance,this.sceneGroup=n.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let n=this.config.color1,r=new Ee(1.5,1.5,1),c=new Ee(1,3,1);c.translate(0,1,0);let s=new Z({color:n,transparent:!0,fog:!1,side:qe,depthWrite:!1}),f=s.clone();f.map=this.assets.instance.getResource("focusArrows");let p=s.clone();p.map=this.assets.instance.getResource("focusBar");let m=s.clone();m.map=this.assets.instance.getResource("focusBg");let h=s.clone();h.color=new se(this.config.color2),h.map=this.assets.instance.getResource("focusMidQuan");let b=s.clone();b.map=this.assets.instance.getResource("focusMoveBg"),b.blending=me;let P=new Q(r,f),S=new Q(c,p);S.rotation.x=Math.PI/2;let O=S.clone();O.rotation.y=Math.PI/2;let x=new Q(r,m),v=new Q(r,h),_=new Q(r,b),B=[v,x,P,_,S,O];B.map(H=>{H.renderOrder=99}),this.add(...B);let E=0;_.scale.setScalar(E),this.animateElements={focusMidQuan:v,focusArrows:P,focusMoveBg:_},this.startAnimate()}startAnimate(){let n=Ye.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),r=Ye.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=Ye.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),s=Ye.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[n,r,c,s]}pausedAnimate(){this.gsapObjects.map(n=>{n.paused=!0})}destroy(){this.gsapObjects.map(n=>{n.kill()}),fi(this)}}const br=Di.map(C=>D({},C)),Co=To.map(C=>D({},C)),wr=To.map(C=>{var n,r;return{name:C.name,value:C.value,lng:(n=C.center)==null?void 0:n[0],lat:(r=C.center)==null?void 0:r[1]}}),xr=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function ga(C){return C.sort((n,r)=>r.value-n.value),C}function Sr(C){return C?typeof C=="string"?JSON.parse(C):C:null}function va(C){const n=Sr(C);return n!=null&&n.features&&n.features.forEach(r=>{var c;((c=r.geometry)==null?void 0:c.type)==="Polygon"&&(r.geometry.coordinates=[r.geometry.coordinates])}),n}function Mr(C,n,r){const c=Number(C);return Number.isFinite(c)?Math.max(n,Math.min(r,c)):n}class kr extends Ai{constructor(n,r,c={}){super(n),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new hi(1058614,1,50),this.scene.background=new se(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new Ti(this.renderer.instance,this.camera.instance,this.canvas),this.assets=r,this.staticMapData={china:va(this.assets.instance.getResource("china")),mapJson:va(this.assets.instance.getResource("mapJson")),mapStroke:va(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(n){var r;return n&&(this.sceneTweens.push(n),this.scenePaused&&((r=n.pause)==null||r.call(n)),n)}addSceneTimer(n){return n&&this.sceneTimers.push(n),n}init(){this.labelGroup=new fe,this.label3d=new _i(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new fe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let n=Ye.timeline({onComplete:()=>{}});n.pause(),this.animateTl=n,n.addLabel("focusMap",1.5),n.addLabel("focusMapOpacity",2),n.addLabel("bar",3),n.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),n.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),n.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),n.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((r,c)=>{let s=r.element.querySelector(".other-label");n.to(s,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),n.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),n.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var r,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(r=this.options).onPlayComplete)==null||c.call(r)}},"focusMapOpacity"),(this.allBar||[]).map((r,c)=>{if(r.userData.name==="邛溪镇")return!1;n.to(r.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((r,c)=>{n.to(r,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((r,c)=>{let s=r.element.querySelector(".provinces-label-wrap"),f=r.element.querySelector(".number .value"),p=Number(f.innerText),m={score:0};n.to(s,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),n.to(m,{duration:1,delay:.2*c,score:p,onUpdate:h},"bar");function h(){f.innerText=m.score.toFixed(0)}}),(this.allGuangquan||[]).map((r,c)=>{n.to(r.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),n.to(r.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let n=new mi(16777215,5);this.scene.add(n);let r=new pi(16777215,5);r.position.set(-30,6,-8),r.castShadow=!0,r.shadow.radius=20,r.shadow.mapSize.width=1024,r.shadow.mapSize.height=1024,this.scene.add(r),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(n){const r=new gi(1924702,n.intensity,n.distance);r.position.set(n.x,n.y,n.z),this.scene.add(r)}createMap(){let n=new fe,r=new fe;this.focusMapGroup=r;let{china:c,chinaTopLine:s}=this.createChina(),{map:f,mapTop:p,mapLine:m}=this.createProvince();c.setParent(n),s.setParent(n),this.createDiffuse(),f.setParent(r),p.setParent(r),m.setParent(r),r.position.set(0,0,-.01),r.scale.set(1,1,0),n.add(r),n.rotation.x=-Math.PI/2,n.position.set(0,.2,0),this.scene.add(n),this.showDataOverlays?this.createBar():(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){let n={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},r=this.staticMapData.china,c=new fo({color:new se(n.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),s=new yo(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),f=new ho({color:n.lineColor}),p=new fa(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:f,renderOrder:3});return p.lineGroup.position.z+=.01,{china:s,chinaTopLine:p}}createProvince(){let n=this.staticMapData.mapJson,[r,c]=this.createProvinceMaterial();this.focusMapTopMaterial=r,this.focusMapSideMaterial=c;let s=new Ii(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,.11),data:n,depth:this.depth,topFaceMaterial:r,sideMaterial:c,renderOrder:9}),f=new mo({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(f),this.defaultMaterial=f,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new se("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let p=new yo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,this.depth+.22),data:n,material:f,renderOrder:2});p.mapGroup.children.map(h=>{h.children.map(b=>{b.type==="Mesh"&&this.eventElement.push(b)})}),this.mapLineMaterial=new ho({color:16777215,opacity:0,transparent:!0,fog:!1});let m=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:n,material:this.mapLineMaterial,renderOrder:3});return m.lineGroup.position.z+=this.depth+.23,{map:s,mapTop:p,mapLine:m}}createProvinceMaterial(){let n=new fo({color:16777215,transparent:!0,opacity:0,fog:!1,side:qe});n.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(1058614)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); + outgoingLight = outgoingLight*gradient; + float topAlpha = 0.5; + if(vPosition.z>0.3){ + diffuseColor.a *= topAlpha; + } + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)};let r=this.assets.instance.getResource("side");r.wrapS=he,r.wrapT=he,r.repeat.set(1,1.5),r.offset.y+=.065;let c=new mo({color:16777215,map:r,fog:!1,opacity:0,side:qe});return this.time.on("tick",()=>{r.offset.y+=.005}),c.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(2780818)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); + outgoingLight = outgoingLight*gradient; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)},[n,c]}createTerrainSurfaceShader(n){n.onBeforeCompile=r=>{r.uniforms=V(D({},r.uniforms),{uTerrainColor1:{value:new se(807272)},uTerrainColor2:{value:new se(1619414)},uTerrainColor3:{value:new se(7074015)}}),r.vertexShader=r.vertexShader.replace("void main() {",` + varying vec3 vTerrainPosition; + void main() { + vTerrainPosition = position; + `),r.fragmentShader=r.fragmentShader.replace("void main() {",` + varying vec3 vTerrainPosition; + uniform vec3 uTerrainColor1; + uniform vec3 uTerrainColor2; + uniform vec3 uTerrainColor3; + float terrainHash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); + } + float terrainNoise(vec2 p) { + vec2 i = floor(p); + vec2 f = fract(p); + vec2 u = f * f * (3.0 - 2.0 * f); + return mix( + mix(terrainHash(i + vec2(0.0, 0.0)), terrainHash(i + vec2(1.0, 0.0)), u.x), + mix(terrainHash(i + vec2(0.0, 1.0)), terrainHash(i + vec2(1.0, 1.0)), u.x), + u.y + ); + } + void main() { + `),r.fragmentShader=r.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec2 terrainUv = vTerrainPosition.xz; + float broad = terrainNoise(terrainUv * 0.32); + float detail = terrainNoise(terrainUv * 1.6); + float bands = sin(terrainUv.x * 0.75 + terrainUv.y * 0.46) * 0.5 + 0.5; + float ridges = smoothstep(0.48, 0.86, bands) * 0.16; + float mixValue = clamp((vTerrainPosition.x + 9.0) / 18.0 + (broad - 0.5) * 0.28, 0.0, 1.0); + vec3 terrainColor = mix(uTerrainColor1, uTerrainColor2, mixValue); + terrainColor = mix(terrainColor, uTerrainColor3, clamp(detail * 0.18 + ridges, 0.0, 0.28)); + float shade = 0.8 + broad * 0.24 + detail * 0.1; + outgoingLight *= terrainColor * shade; + diffuseColor.a *= 0.68; + gl_FragColor = vec4(outgoingLight, diffuseColor.a); + `)}}createBar(){let n=this,r=ga(Co).filter((h,b)=>b<7);const c=new fe;this.barGroup=c;const s=.7,f=4*s,p=r[0].value;this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],r.map((h,b)=>{let P=f*(h.value/p),S=new Z({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Fi(S,{uColor1:b>3?16506760:5291006,uColor2:b>3?16776948:7863285,size:P,dir:"y"});const O=new vi(.1*s,.1*s,P);O.translate(0,0,P/2);const x=new Q(O,S);x.renderOrder=5;let v=x,[_,B]=this.geoProjection(h.centroid);v.position.set(_,-B,this.depth+.45),v.scale.set(1,1,0),v.userData=D({},h);let E=this.createQuan(new Y(_,this.depth+.44,B),b),H=this.createHUIGUANG(P,b>3?16776948:7863285);v.add(...H),c.add(v),c.rotation.x=-Math.PI/2;let X=m(h,b,new Y(_,-B,this.depth+1.1+P));this.allBar.push(v),this.allBarMaterial.push(S),this.allGuangquan.push(E),this.allProvinceLabel.push(X)}),this.scene.add(c);function m(h,b,P){let S=n.label3d.create("","provinces-label",!1);return S.init(`
+
+
${h.value}km²
+
${b+1}
+
+
`,P),n.label3d.setLabelStyle(S,.01,"x"),S.setParent(n.labelGroup),S}}createEvent(){let n=[];this.selectedRegion=null;const r=(s,f=!1)=>{var p,m,h;!f&&((m=(p=this.selectedRegion)==null?void 0:p.userData)==null?void 0:m.name)===((h=s==null?void 0:s.userData)==null?void 0:h.name)||s.traverse(b=>{b.isMesh&&(b.material=this.defaultMaterial)})},c=s=>{s.traverse(f=>{f.isMesh&&(f.material=this.defaultLightMaterial)})};this.eventElement.map(s=>{this.interactionManager.add(s),s.addEventListener("mousedown",f=>{var m;const p=((m=f.target)==null?void 0:m.parent)||f.target;this.selectedRegion&&this.selectedRegion!==p&&r(this.selectedRegion,!0),this.selectedRegion=p,c(p),this.emitTownClick((p==null?void 0:p.userData)||{})}),s.addEventListener("mouseover",f=>{n.includes(f.target.parent)||n.push(f.target.parent),document.body.style.cursor="pointer",c(f.target.parent)}),s.addEventListener("mouseout",f=>{n=n.filter(p=>p.userData.name!==f.target.parent.userData.name),n.length>0&&n[n.length-1],r(f.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(n,r){let c=new Ee(.35,n);c.translate(0,n/2,0);const s=this.assets.instance.getResource("huiguang");s.colorSpace=da,s.wrapS=he,s.wrapT=he;let f=new Z({color:r,map:s,transparent:!0,opacity:.4,depthWrite:!1,side:qe,blending:me}),p=new Q(c,f);p.renderOrder=10,p.rotateX(Math.PI/2);let m=p.clone(),h=p.clone();return m.rotateY(Math.PI/180*60),h.rotateY(Math.PI/180*120),[p,m,h]}createQuan(n,r){const c=this.assets.instance.getResource("guangquan1"),s=this.assets.instance.getResource("guangquan2");let f=new Ee(.5,.5),p=new Z({color:16777215,map:c,alphaMap:c,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),m=new Z({color:16777215,map:s,alphaMap:s,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),h=new Q(f,p),b=new Q(f,m);return h.renderOrder=6,b.renderOrder=6,h.rotateX(-Math.PI/2),b.rotateX(-Math.PI/2),h.position.copy(n),b.position.copy(n),b.position.y-=.001,h.scale.set(0,0,0),b.scale.set(0,0,0),this.quanGroup=new fe,this.quanGroup.add(h,b),this.scene.add(this.quanGroup),this.time.on("tick",()=>{h.rotation.z+=.05}),this.quanGroup}createDiffuse(){let n=new Ee(200,200),r=new Z({color:0,depthWrite:!1,transparent:!0,blending:yi});r.blendEquation=bi,r.blendSrc=wi,r.blendDst=xi,new Ei({material:r,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:s=>{const f=setTimeout(()=>{this.addSceneTween(Ye.to(s.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(f)}});let c=new Q(n,r);c.renderOrder=3,c.rotation.x=-Math.PI/2,c.position.set(0,.21,0),this.scene.add(c)}createGrid(){new Oi(this,{gridSize:68,gridDivision:28,gridColor:2123149,shapeSize:.58,shapeColor:4035005,pointSize:.12,pointColor:1805508,pointLayout:{row:170,col:170},pointBlending:me})}createBottomBg(){let n=new Ee(42,42);const r=this.assets.instance.getResource("ocean");r.colorSpace=da,r.wrapS=he,r.wrapT=he,r.repeat.set(1,1);let c=new Z({map:r,opacity:1,fog:!1}),s=new Q(n,c);s.rotation.x=-Math.PI/2,s.position.set(0,-.7,0),this.scene.add(s)}createChinaBlurLine(){let n=new Ee(147,147);const r=this.assets.instance.getResource("chinaBlurLine");r.colorSpace=da,r.wrapS=he,r.wrapT=he,r.generateMipmaps=!1,r.minFilter=Si,r.repeat.set(1,1);let c=new Z({color:4162253,alphaMap:r,transparent:!0,opacity:.5}),s=new Q(n,c);s.rotateX(-Math.PI/2),s.position.set(-19.3,-.5,-19.7),this.scene.add(s)}createLabel(){let n=this,r=this.labelGroup,c=this.label3d,s=[];if(br.map(m=>{if(m.hide==!0)return!1;let h=f(m,c,r);s.push(h)}),this.showDataOverlays){let m=p({icon:ha,center:[103.13,33.01],width:"40px",height:"40px",reflect:!0},c,r),h=p({icon:ha,center:[102.03,32.44],width:"20px",height:"20px",reflect:!1},c,r);s.push(m),s.push(h)}this.otherLabel=s;function f(m,h,b){let P=h.create("",`china-label ${m.blur?" blur":""}`,!1);const[S,O]=n.geoProjection(m.center),x=n.showDataOverlays?``:"";return P.init(`
${x}${m.name}
`,new Y(S,-O,n.depth+.85)),h.setLabelStyle(P,.018,"x"),P.setParent(b),P.userData=V(D({},m),{labelType:"town-label",baseScale:.018}),P}function p(m,h,b){let P=h.create("",`decoration-label ${m.reflect?" reflect":""}`,!1);const[S,O]=n.geoProjection(m.center);return P.init(`
`,new Y(S,-O,.4)),h.setLabelStyle(P,.02,"x"),P.setParent(b),P}}createRotateBorder(){let n=12,r=this.assets.instance.getResource("rotationBorder1"),c=this.assets.instance.getResource("rotationBorder2"),s=new bo(this,{width:n*1.178,needRotate:!0,rotateSpeed:.001,material:new Z({map:r,color:4763647,transparent:!0,opacity:.2,side:qe,depthWrite:!1,blending:me}),position:new Y(0,.28,0)});s.instance.rotation.x=-Math.PI/2,s.instance.renderOrder=6,s.instance.scale.set(0,0,0),s.setParent(this.scene);let f=new bo(this,{width:n*1.116,needRotate:!0,rotateSpeed:-.004,material:new Z({map:c,color:4763647,transparent:!0,opacity:.4,side:qe,depthWrite:!1,blending:me}),position:new Y(0,.3,0)});f.instance.rotation.x=-Math.PI/2,f.instance.renderOrder=6,f.instance.scale.set(0,0,0),f.setParent(this.scene),this.rotateBorder1=s.instance,this.rotateBorder2=f.instance}createFlyLine(){this.flyLineGroup=new fe,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup);const n=this.assets.instance.getResource("mapFlyline");n.wrapS=n.wrapT=he,n.repeat.set(.5,2);const r=.1,c=32,s=2,f=!1;let[p,m]=this.geoProjection(this.flyLineCenter),h=new Y(p,-m,0);const b=new Z({map:n,color:2781042,transparent:!0,fog:!1,opacity:1,depthTest:!1,blending:me});this.flyLineMaterial=b,this.flyLineTexture=n,this.time.on("tick",()=>{n.offset.x-=this.sceneMode==="trade"?.014:.006}),Co.filter((P,S)=>S<7).map(P=>{let[S,O]=this.geoProjection(P.centroid),x=new Y(S,-O,0);const v=new Y;v.addVectors(h,x).multiplyScalar(.5),v.setZ(3);const _=new Mi(h,v,x),B=new ki(_,c,r,s,f),E=new Q(B,b);E.rotation.x=-Math.PI/2,E.position.set(0,this.depth+.44,0),E.renderOrder=21,this.flyLineGroup.add(E)})}createFocus(){let n=new yr(this,{color1:12451325,color2:12451325}),[r,c]=this.geoProjection(this.flyLineCenter);n.position.set(r,-c,this.depth+.44),n.scale.set(1,1,1),this.flyLineFocusGroup.add(n)}createParticles(){this.particles=new wo(this,{num:10,range:30,dir:"up",speed:.05,material:new Pi({map:wo.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:me,sizeAttenuation:!0})}),this.particleGroup=new fe,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new fe,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const n=this.assets.instance.getResource("arrow"),r=new po({map:n,color:16776948,fog:!1,transparent:!0,depthTest:!1});let c=ga(wr),s=c[0].value;c.map(f=>{const p=new go(r);p.renderOrder=23;let m=.1+f.value/s*.2;p.scale.set(m,m,m);let[h,b]=this.geoProjection([f.lng,f.lat]);p.position.set(h,-b,this.depth+.45),p.userData.position=[h,-b,this.depth+.45],this.scatterGroup.add(p)})}createInfoPoint(){let n=this;this.InfoPointGroup=new fe,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[];let r=this.label3d;const c=this.assets.instance.getResource("point");let s=[16776948,7863285],f=ga(xr),p=f[0].value;f.map((h,b)=>{const P=new po({map:c,color:s[b%s.length],fog:!1,transparent:!0,depthTest:!1}),S=new go(P);S.renderOrder=23;let O=.7+h.value/p*.4;S.scale.set(O,O,O);let[x,v]=this.geoProjection([h.lng,h.lat]),_=[x,-v,this.depth+.7];S.position.set(..._),S.userData.position=[..._],S.userData={position:[x,-v,this.depth+.7],name:h.name,value:h.value,level:h.level,index:b},this.InfoPointGroup.add(S);let B=m(h,r,this.InfoPointGroup);this.infoLabelElement.push(B),this.interactionManager.add(S),S.addEventListener("mousedown",E=>{if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.emitTownClick(E.target.userData,"info-point"),this.infoPointIndex=E.target.userData.index,this.infoLabelElement.map(H=>{H.visible=!1}),B.visible=!0,this.createInfoPointLabelLoop()}),S.addEventListener("mouseup",E=>{this.clicked=!1}),S.addEventListener("mouseover",E=>{document.body.style.cursor="pointer"}),S.addEventListener("mouseout",E=>{document.body.style.cursor="default"})});function m(h,b,P){let S=b.create("","info-point",!0);const[O,x]=n.geoProjection([h.lng,h.lat]);return S.init(`
+
+
+
+
+
+
+
+
名称${h.name}
+
面积${h.value}km²
+
类型${h.level}
+
+
+
+ `,new Y(O,-x,n.depth+1.9)),b.setLabelStyle(S,.015,"x"),S.setParent(P),S.visible=!1,S}}emitTownClick(n={},r="region"){var s,f;const c=n.name||n.fullName;c&&((f=(s=this.options)==null?void 0:s.onTownClick)==null||f.call(s,V(D({},n),{name:c,source:r})))}setSceneMode(n="default"){this.sceneMode=n,this.applySceneMode()}setDataOverlaysVisible(n=!0){this.showDataOverlays=!!n,this.applySceneMode()}applySceneMode(){var r,c,s,f;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(r=this.allProvinceLabel)==null||r.forEach(p=>{p.visible=!1}),(c=this.allGuangquan)==null||c.forEach(p=>{p.visible=!1});return}const n=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=n||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=n||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(n?7534280:2781042),this.flyLineMaterial.opacity=n?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(n?.32:.5,n?3:2),this.scatterGroup&&(this.scatterGroup.visible=!n&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!n&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!n),(s=this.allProvinceLabel)==null||s.forEach(p=>{p.visible=!n}),(f=this.allGuangquan)==null||f.forEach(p=>{p.visible=!n})}createInfoPointLabelLoop(){var n;this.scenePaused||!((n=this.infoLabelElement)!=null&&n.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((r,c)=>{this.infoPointIndex===c?r.visible=!0:r.visible=!1})},3e3))}createStorke(){const n=this.staticMapData.mapStroke,r=this.assets.instance.getResource("pathLine3");r.wrapS=r.wrapT=he,r.repeat.set(2,1);let c=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,this.depth+.24),data:n,material:new Z({color:2868444,map:r,alphaMap:r,fog:!1,transparent:!0,opacity:1,blending:me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{r.offset.x+=.005})}geoProjection(n){return Bi().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0])(n)}updateTownLabelScale(){var m,h,b;const n=this.otherLabel||[],r=(m=this.camera)==null?void 0:m.instance,c=(b=(h=this.camera)==null?void 0:h.controls)==null?void 0:b.target;if(!n.length||!r||!c)return;const s=r.position.distanceTo(c),f=Mr(s*72e-5,.011,.026),p=s>45?"0.76":s<22?"0.94":"1";n.forEach(P=>{var O,x,v;if(((O=P==null?void 0:P.userData)==null?void 0:O.labelType)!=="town-label")return;P.scale.set(f,f,f);const S=(v=(x=P.element)==null?void 0:x.querySelector)==null?void 0:v.call(x,".other-label");S&&(S.style.opacity=p)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var n,r;this.scenePaused=!0,(r=(n=this.time)==null?void 0:n.pause)==null||r.call(n),this.sceneTweens.forEach(c=>{var s;return(s=c==null?void 0:c.pause)==null?void 0:s.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var n,r,c;this.scenePaused=!1,(r=(n=this.time)==null?void 0:n.resume)==null||r.call(n),this.sceneTweens.forEach(s=>{var f;return(f=s==null?void 0:s.resume)==null?void 0:f.call(s)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(n=>clearTimeout(n)),this.sceneTimers=[],this.sceneTweens.forEach(n=>{var r;return(r=n==null?void 0:n.kill)==null?void 0:r.call(n)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const Pr={class:"map"},Cr={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0}},emits:["town-click","play-complete"],setup(C,{expose:n,emit:r}){const c=G(null),s=ei(null),f=C,p=r;let m=!1;Ao(()=>{O()});function h(x){var v,_,B,E;s.value||!c.value||(s.value=new kr(c.value,x,{showDataOverlays:f.showDataOverlays,onTownClick:H=>p("town-click",H),onPlayComplete:()=>p("play-complete")}),(_=(v=s.value).setSceneMode)==null||_.call(v,f.sceneMode),(E=(B=s.value).setDataOverlaysVisible)==null||E.call(B,f.showDataOverlays),s.value.time.pause())}function b(){return re(this,null,function*(){var x,v,_,B;s.value&&(P(),!(m||s.value.mapAnimationDone)&&(m=!0,(v=(x=s.value.animateTl)==null?void 0:x.timeScale)==null||v.call(x,1),(B=(_=s.value.animateTl)==null?void 0:_.play)==null||B.call(_)))})}function P(){var x,v;s.value&&((v=(x=s.value).resumeScene)==null||v.call(x),s.value.resumeScene||s.value.time.resume())}function S(){var x,v,_,B,E,H;s.value&&((v=(x=s.value.animateTl)==null?void 0:x.pause)==null||v.call(x),(B=(_=s.value).pauseScene)==null||B.call(_),s.value.pauseScene||(H=(E=s.value.time)==null?void 0:E.pause)==null||H.call(E))}function O(){var x,v;(v=(x=s.value)==null?void 0:x.destroy)==null||v.call(x),s.value=null}return n({loadMap:h,play:b,resume:P,pause:S,destroyMap:O,canvasMap:s}),ht(()=>f.sceneMode,x=>{var v,_;(_=(v=s.value)==null?void 0:v.setSceneMode)==null||_.call(v,x)},{immediate:!0}),ht(()=>f.showDataOverlays,x=>{var v,_;(_=(v=s.value)==null?void 0:v.setDataOverlaysVisible)==null||_.call(v,x)}),(x,v)=>(L(),F("div",Pr,[w("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Lr=""+new URL("flyline6-525edf67-balabala-1784043664472.png",import.meta.url).href;class Ar{constructor(){this.init()}init(){this.instance=new ji,this.instance.addLoader(Ci,"FileLoader");let n=[{type:"Texture",name:"flyline",path:So},{type:"Texture",name:"pathLine",path:So},{type:"Texture",name:"pathLine2",path:Wi},{type:"Texture",name:"pathLine3",path:Ui},{type:"File",name:"china",path:ua(si)},{type:"File",name:"mapJson",path:ua(li)},{type:"File",name:"mapStroke",path:ua(ci)},{type:"Texture",name:"huiguang",path:Ki},{type:"Texture",name:"rotationBorder1",path:qi},{type:"Texture",name:"rotationBorder2",path:Yi},{type:"Texture",name:"guangquan1",path:Mo},{type:"Texture",name:"guangquan2",path:Qi},{type:"Texture",name:"chinaBlurLine",path:Ji},{type:"Texture",name:"ocean",path:Zi},{type:"Texture",name:"side",path:Xi},{type:"Texture",name:"flyLineFocus",path:Mo},{type:"Texture",name:"mapFlyline",path:Lr},{type:"Texture",name:"arrow",path:er},{type:"Texture",name:"point",path:tr},{type:"Texture",name:"focusArrows",path:ar},{type:"Texture",name:"focusBar",path:or},{type:"Texture",name:"focusBg",path:nr},{type:"Texture",name:"focusMidQuan",path:ir},{type:"Texture",name:"focusMoveBg",path:rr}];this.instance.loadAll(n)}}const Tr={class:"home-dashboard"},_r={class:"home-bottom-switcher"},Ir={class:"home-left"},Fr={class:"home-side-stack is-left"},Er={class:"home-right"},Or={class:"home-side-stack is-right"},Br=["aria-label","onClick"],Gr={key:0,class:"home-video-monitor"},Nr=["disabled"],Hr=["data-video-index","onClick","onKeydown"],Rr={key:0,class:"home-video-loading"},Dr={key:1,class:"home-video-error"},zr=["onClick"],$r={class:"home-video-point-name"},Vr=["disabled"],jr={key:1,class:"home-forecast-trend-card"},Wr={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},Ur=["onClick"],Kr={key:3,class:"home-balance-gauge-grid"},qr={class:"home-balance-gauge-head"},Yr={class:"home-balance-gauge-ring"},Qr={class:"home-balance-gauge-value"},Jr={class:"home-balance-gauge-name"},Zr={class:"home-balance-gauge-extra"},Xr={class:"home-more-dialog home-video-dialog"},es={class:"home-more-dialog-head"},ts={key:0,class:"home-video-modal-grid"},as=["data-video-index","onClick","onKeydown"],os={key:0,class:"home-video-loading"},ns={key:1,class:"home-video-error"},is=["onClick"],rs={class:"home-video-point-name"},ss={key:1,class:"home-more-empty"},ls={key:2,class:"home-more-pager"},cs=["disabled"],us=["disabled"],ds={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},fs={class:"home-more-dialog home-balance-dialog"},hs={class:"home-more-dialog-head"},ms={class:"home-balance-modal-grid"},ps={class:"home-balance-modal-title"},gs={class:"home-balance-modal-value"},vs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",ys="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",bs=4,Lo="#ffffff",ut="#ffffff",dt="rgba(246, 253, 255, 0.92)",Ke="rgba(242, 253, 255, 0.9)",It="rgba(218, 250, 255, 0.28)",ws=12e3,xs=9.35,Fe="home-3d",ft=9,Vs={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(C,{expose:n,emit:r}){const c={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},s=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),f=C,p=r,m=G(null),h=G(null),b=G(null),P=G(null),S=new Map,O=G({}),x=new Map;let v=!1,_=!1,B=null,E=null;const H=new Map,X=new Map,Ft=new Set,Et=new Map;let Me=null,Qe="",ya=!1,Je=0,ee=null,Ze=!1,Ot=!1;const ke=new Map,pe=G(0),te=G([]),Bt=G(0),ye=G(0),le=G(!1),ce=G(1),Xe=G(!1),ae=G(null),Gt=G(!1),Nt=G("month"),Ht=G(!1),ba=G(!1),U=G(""),_o=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=ni({}),Io=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],wa=vo.sideCardWidth,xa=G(typeof window=="undefined"?1080:window.innerHeight);vo.sideCardGap;const et=I(()=>Li(xa.value)),mt=I(()=>et.value),Fo=mt,Eo=Gi("2028"),Rt=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],Dt=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92}],Oo={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},Sa={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},oe=G(Fe),ue=G(null),Oe=G(!1),Be=G(!1),de=G(null),J=I(()=>oe.value!==Fe),Bo=I(()=>f.active&&!J.value),Ma=I(()=>{var d,g,M;const e=oe.value,t=Sa[e];if(!t)return null;const a=zi.find(k=>k.key===t.topicKey),o=In(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const i=Oo[e],l=t.legendKey?(o.legends||[]).find(k=>k.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(k=>(o.legends||[]).find(y=>y.key===k)).filter(Boolean):[];return t.type==="vector"?V(D({},o),{activeLegend:l||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=Dt.find(k=>k.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(g=t.opacity)!=null?g:o.opacity,homePresentationMaxOpacity:(M=t.opacity)!=null?M:.96,showPointLabels:!1,hidePointFeatures:!1}):i?V(D({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:i.opacity,homePresentationMaxOpacity:i.maxOpacity,softMask:!1,homeGlowColor:i.glowColor,homeGlowBlur:i.glowBlur,homeGlowOpacity:i.glowOpacity,sldBody:Fn(o.layerName,i)}):null}),zt=I(()=>!!de.value),Go=dr,ka=I(()=>ur({point:de.value?On(de.value):null,rowCount:ue.value?ra(ue.value):0,loading:Be.value,empty:Oe.value||!ue.value})),No=I(()=>ka.value.height),Ho=I(()=>ka.value.style),Pa=I(()=>ta(ma.length)),Ge=I(()=>ta(_t.length)),Ca=I(()=>Pn(Nt.value)),La=I(()=>Cn(Eo,Ca.value.key)),tt=I(()=>ta(La.value.labels.length)),pt=I(()=>pr.filter(t=>t==null?void 0:t.name).map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",extra:`载畜 ${ie(t.livestockCapacity)}头`}))),$t=I(()=>{const e=pt.value,t=3,a=e.length?Math.floor(pe.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,i)=>e[(a+i)%e.length])}),Ro=I(()=>{const e=$t.value.length;return e?pe.value%e:0}),gt={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:co,playUrl:"",hdPlayUrl:"",token:""};function at(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ne=I(()=>te.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>at(e.live))),Vt=I(()=>{const e=Ne.value;if(!e.length)return 0;const t=K(ye.value),a=e.findIndex(i=>i.index===t),o=a>=0?a:0;return Xe.value||Ht.value||le.value?o:(Math.floor(pe.value/bs)+o)%e.length}),R=I(()=>{var e,t;return te.value.length?le.value?K(ye.value):(t=(e=Ne.value[Vt.value])==null?void 0:e.index)!=null?t:0:0}),Do=I(()=>te.value[R.value]||gt),Aa=I(()=>tn(Ne.value,Vt.value,gt)),zo=I(()=>te.value.filter(e=>at(e)).length),vt=I(()=>te.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(at(t.live))-Number(at(e.live))||e.index-t.index)),yt=I(()=>Math.max(1,Math.ceil(vt.value.length/ft))),Ta=I(()=>{const e=(ce.value-1)*ft;return vt.value.slice(e,e+ft).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),$o=I(()=>gr.map(e=>e.key==="today-outflow"?V(D({},e),{value:Bt.value}):e)),Vo=I(()=>{const e=Sn();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:kn(e,"生产力"),height:et.value}:null}),jo=I(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:mt.value,option:oa({key:"yak-stock-distribution",rows:vr},"牦牛存栏",{showTrendLine:!0})})),Wo=I(()=>[aa(Ae("grassland","grassland-town"),"草地面积"),aa(Ae("wetland","wetland-town-area"),"湿地面积"),aa(Ae("grassland","grassland-type-proportion"),"草原类别"),Vo.value].filter(Boolean).map((e,t)=>Mn(e,`forest-grass-wet-${t}`))),Uo=I(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:Fo.value,live:Do.value},jo.value,{key:"yak-structure",title:"畜群结构",height:mt.value,option:Ko.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:mt.value,max:100,rows:$t.value}]),Ko=I(()=>ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:Io,tooltip:pa(e=>`${e.name}
占比:${e.percent}%
估算数量:${ie(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=ma.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:dt,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:ut,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:ma.map((e,t)=>({name:e.name,value:e.count,selected:t===Pa.value}))}]}));I(()=>ct({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:V(D({},pa()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=_t[e[0].dataIndex];return`${t.label}
预测存栏:${ie(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:_t.map(e=>e.shortLabel),axisLabel:{color:Ke,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:Ke,fontSize:10,margin:4,formatter:e=>Za(e,1)},splitLine:{lineStyle:{color:It,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:_t.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:t===Ge.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ge.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ge.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ge.value?16:8,shadowColor:t===Ge.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:ut,fontSize:10,formatter:({value:e})=>Za(e)}}]})),I(()=>{const e=Ca.value,t=La.value,a=Tn(t),o=Ln(a.length,e.key);return ct({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:V(D({},pa()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(i){var M,k,y;const l=Array.isArray(i)?i:[i],u=l.find(T=>T.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(y=(k=u==null?void 0:u.dataIndex)!=null?k:(M=l[0])==null?void 0:M.dataIndex)!=null?y:0];if(!d)return"";const g=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${ie(d.close)}头`,`较上期:${_n(g)}头`,`繁殖补充:${ie(d.birth)}头`,`出栏扣减:${ie(d.outflow)}头`].join("
")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:dt,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:Ke,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:Ke,fontSize:10,formatter:we},splitLine:{lineStyle:{color:It,type:"dashed"}}},{type:"value",axisLabel:{color:dt,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:An(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((i,l)=>({value:i.close,symbolSize:l===tt.value?7:3,itemStyle:{color:l===tt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},Ja("繁殖补充",t.births,"#8bf7ff",1,!1,tt.value),Ja("出栏扣减",t.outflow,"#48cfff",1,!1,tt.value)]})}),ti(()=>{na(),window.addEventListener("resize",na),window.addEventListener("keydown",eo),document.addEventListener("pointerdown",no,!0),document.addEventListener("click",Wa,!0),Ha(),jt()}),Ao(()=>{var e,t,a,o;v=!0,window.removeEventListener("resize",na),window.removeEventListener("keydown",eo),document.removeEventListener("pointerdown",no,!0),document.removeEventListener("click",Wa,!0),qa(),be(),Ut(),qt(),x.clear(),(t=(e=m.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=h.value)==null?void 0:a.destroyMap)==null||o.call(a),Jo()}),ht(R,()=>{if(!le.value){if(!Ht.value&&!ba.value&&!H.size){U.value="";return}be({resetError:!0})}}),ht(oe,e=>{var t,a;if(ve(),e===Fe){(a=(t=m.value)==null?void 0:t.pause)==null||a.call(t),W(()=>{bt(),Pe()});return}Fa(),W(()=>{var o,i;(i=(o=m.value)==null?void 0:o.resume)==null||i.call(o)})}),ht(()=>f.active,e=>{var t,a;e?(jt(),Zo(),Ga(),ya||Oa()):(_=!1,(a=(t=m.value)==null?void 0:t.pause)==null||a.call(t),Fa(),Ut(),qt(),be({resetError:!0}),xt(),St())});function jt(){_=!1,p("loading-progress",{progress:0}),W(()=>{var e,t,a,o;if(J.value){(t=(e=m.value)==null?void 0:e.hasMap)!=null&&t.call(e)?He():(o=(a=m.value)==null?void 0:a.loadMap)==null||o.call(a);return}bt()})}function bt(){if(!(v||!f.active||J.value)){if(Ea()){Pe(),He();return}if(Ot){Ia();return}Ze||(Ze=!0,ee=new Ar,ee.instance.on("onProgress",qo),ee.instance.on("onLoad",_a),ee.instance.on("onError",Yo),ee.instance.loaded&&_a())}}function qo(e,t,a){if(v||J.value)return;const o=Math.max(1,Number(a)||1),i=Math.max(0,Number(t)||0);p("loading-progress",{progress:Math.min(98,Math.floor(i/o*92))})}function _a(){v||(Ze=!1,Ot=!0,p("loading-progress",{progress:96}),W(Ia))}function Yo(e){Ze=!1,console.warn("[home] 3D map assets load failed",e),He()}function Ia(){var e,t,a,o;v||!f.active||J.value||!ee||((t=(e=h.value)==null?void 0:e.loadMap)==null||t.call(e,ee),Pe(),(o=(a=h.value)==null?void 0:a.play)==null||o.call(a),He())}function Pe(){var a,o,i,l,u,d,g,M;const e=h.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=Ea();(i=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||i.call(o),(l=t==null?void 0:t.resize)==null||l.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(M=(g=t==null?void 0:t.label3d)==null?void 0:g.update)==null||M.call(g)}function Fa(){var e,t;(t=(e=h.value)==null?void 0:e.pause)==null||t.call(e)}function Ea(){var t;const e=(t=h.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Qo(){J.value||He()}function Jo(){var e,t;(t=(e=ee==null?void 0:ee.instance)==null?void 0:e.destroy)==null||t.call(e),ee=null,Ze=!1,Ot=!1}function He(){v||_||(_=!0,p("loading-progress",{progress:100}),p("map-ready"),Oa())}function Wt(e={}){var t,a,o,i,l,u,d,g,M;if(!J.value){Pe();return}if((a=(t=m.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(i=(o=m.value)==null?void 0:o.resetView)==null||i.call(o),(l=m.value)!=null&&l.resetView||(d=(u=m.value)==null?void 0:u.refreshView)==null||d.call(u);return}(M=(g=m.value)==null?void 0:g.refreshView)==null||M.call(g)}function Zo(){oe.value!==Fe&&!Sa[oe.value]&&(oe.value=Fe);const e=()=>{if(!(v||!f.active)){if(J.value){Wt({reset:!0});return}bt(),Pe()}};W(()=>{e(),window.setTimeout(e,180)})}function Xo(){var e,t;if(ve(),!J.value){Pe();return}if((t=(e=m.value)==null?void 0:e.hasMap)!=null&&t.call(e)){Wt({reset:!0});return}jt(),W(()=>{var a,o;(o=(a=m.value)==null?void 0:a.resume)==null||o.call(a)})}function en(){if(ve(),oe.value===Fe){W(()=>{bt(),Pe()});return}oe.value=Fe}n({refreshMapView:Wt,resetMap:Xo,showDefaultThreeMap:en});function Oa(){Ut();const e=()=>{Me=null,Qe="",!(v||!f.active)&&(ya=!0,xn(),nn(),an(),f.active&&Ga())};if(typeof window.requestIdleCallback=="function"){Qe="idle",Me=window.requestIdleCallback(e,{timeout:1800});return}Qe="timeout",Me=window.setTimeout(e,650)}function Ut(){Me&&(Qe==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Me):window.clearTimeout(Me),Me=null,Qe="")}function Kt(e,t){e&&(t?x.set(e,t):x.delete(e))}function Ba(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?S.set(a,e):S.delete(a)),t!=null&&t.isActive&&(b.value=e||null)}function tn(e=[],t=0,a=gt){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const i=(t+o.length)%o.length,l=o[i],u=(l==null?void 0:l.live)||l||a,d=Number.isFinite(Number(l==null?void 0:l.index))?Number(l.index):i;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function Ga(){!f.active||v||(qt(),B=window.setInterval(Na,2600),E=window.setTimeout(Na,800))}function qt(){B&&(window.clearInterval(B),B=null),E&&(window.clearTimeout(E),E=null)}function Na(){v||!f.active||(E=null,pe.value+=1,yn(),bn(),wn())}function Ha(){p("module-stats",{moduleKey:"home",items:$o.value})}function an(){return re(this,null,function*(){var t,a;const e=on(new Date);try{const o=yield mr({year:Number(e.slice(0,4)),startDate:e,endDate:e}),i=(o==null?void 0:o.metrics)||{},l=Number((a=(t=i.headCount)!=null?t:i.head_count)!=null?a:0);Bt.value=Number.isFinite(l)?l:0}catch(o){Bt.value=0}v||Ha()})}function on(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function nn(){return re(this,null,function*(){try{const e=yield ii({includeOffline:!0,includeHidden:!0});if(v)return;te.value=e,ye.value=0,ce.value=1,Xe.value=!1,U.value=e.some(t=>at(t))?"":"暂无在线可播放摄像头"}catch(e){if(v)return;te.value=[],U.value="监控接口暂不可用",window.setTimeout(()=>{v||U.value==="监控接口暂不可用"&&(U.value="")},2400)}})}function K(e){const t=te.value.length;return t?((Number(e)||0)+t)%t:0}function ne(e){return String(K(e))}function Ra(e){const t=ne(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function ot(e){return ge[ne(e)]||{}}function nt(e){return`${_o}-${ne(e)}`}function Yt(e){return!!ot(e).playing}function wt(e){return!!ot(e).loading}function Re(e){const t=ot(e).error;return t||(K(e)===R.value?U.value:"")}function Da(e){const t=ot(e);return!!(t.playing||t.loading)}function Ce(){const e=Object.values(ge);Ht.value=e.some(t=>t.playing),ba.value=e.some(t=>t.loading)}function za(e,t=!0,a=R.value){const o=(e==null?void 0:e.image)||co;return Yt(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function rn(){Va(-1)}function sn(){Va(1)}function ln(){const e=R.value;be({resetError:!0}),ye.value=e,Xe.value=!0,pe.value=0;const t=vt.value.findIndex(a=>a.index===e);ce.value=Math.floor(Math.max(0,t)/ft)+1,le.value=!0,W(()=>Jt())}function xt(){le.value&&(be({resetError:!0}),le.value=!1)}function $a(e){var o,i;const t=Math.max(1,Math.min(yt.value,Number(e)||1));if(t===ce.value)return;be({resetError:!0}),ce.value=t;const a=(t-1)*ft;ye.value=(i=(o=vt.value[a])==null?void 0:o.index)!=null?i:0,W(()=>Jt())}function cn(){Gt.value=!0}function St(){Gt.value=!1}function Va(e){var i,l;const t=Ne.value,a=t.length;if(!a)return;be({resetError:!0});const o=Vt.value;ye.value=(l=(i=t[(o+e+a)%a])==null?void 0:i.index)!=null?l:0,Xe.value=!0,pe.value=0}function Le(e){if(!te.value.length){mn();return}const a=K(e),o=ne(a),i=ot(a);if(ye.value=a,Xe.value=!0,pe.value=0,Ft.has(o)||H.has(o)||(i.playing||i.loading)&&!i.error){ze(a);return}Ft.add(o),W(()=>re(this,null,function*(){try{yield Ka(a,{stopOthers:!le.value})}finally{Ft.delete(o)}}))}function ja(e,t){dn(t==null?void 0:t.target)||Le(e)}function Wa(e){var i,l,u,d,g,M,k,y,T,A;const t=((l=(i=e==null?void 0:e.target)==null?void 0:i.closest)==null?void 0:l.call(i,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(N=>String((N==null?void 0:N.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((M=(g=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:g.dataset)==null?void 0:M.videoIndex),o=(k=ae.value)!=null?k:Number.isFinite(a)?a:R.value;(y=e.preventDefault)==null||y.call(e),(T=e.stopPropagation)==null||T.call(e),(A=e.stopImmediatePropagation)==null||A.call(e),un(o)}function un(e){return re(this,null,function*(){var i,l;const t=K(e);if(ae.value===t){Mt();return}ae.value!==null&&Mt();const a=document.getElementById(`${nt(t)}-wrap`);if(!a)return;ae.value=t,yield W();const o=(l=(i=P.value)==null?void 0:i.querySelector)==null?void 0:l.call(i,".home-video-web-player-slot");if(!o){ae.value=null;return}o.appendChild(a),ze(t),De(t)})}function Mt(e={}){var i;const{restore:t=!0}=e,a=ae.value;if(a===null)return;const o=document.getElementById(`${nt(a)}-wrap`);if(t&&o){const l=kt(a)||b.value,u=(i=l==null?void 0:l.querySelector)==null?void 0:i.call(l,".home-video-player-host");u&&u.appendChild(o)}ae.value=null,t&&W(()=>{ze(a),De(a)})}function dn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function fn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...pt.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function hn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function Ua(e){return{"--balance-color":hn(e),"--balance-progress":`${fn(e)}%`}}function mn(){return re(this,null,function*(){return Ka(R.value,{stopOthers:!le.value})})}function Ka(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,i=K(e),l=te.value[i]||gt,u=ne(i);let d=Ra(i);if((l==null?void 0:l.status)!=="直播中"||!(l!=null&&l.hdPlayUrl)||!(l!=null&&l.token)){d.error=(l==null?void 0:l.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,i===R.value&&(U.value=d.error),Ce();return}if(H.has(u)||(d.playing||d.loading)&&!d.error)return;ye.value=i,pe.value=0,o?be({resetError:!0}):(H.has(u)||d.loading)&&it(i,{resetError:!0}),d=Ra(i),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,i===R.value&&(U.value=""),Ce(),yield W();const g=(X.get(u)||0)+1;X.set(u,g);let M=null;gn(i,g);try{const k=kt(i)||b.value,y=nt(i);if(!pn(k,y))throw new Error("视频容器未就绪");const{width:T,height:A}=Ya(k,340,92);if(M=new ri.EZUIKitPlayer({id:y,accessToken:l.token,url:l.hdPlayUrl,audio:0,width:T,height:A,themeData:vn(),handleError(N){g===X.get(u)&&(rt(i),console.warn("EZUIKit player error",N),Zt(M),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,X.set(u,g+1),H.delete(u),Xt(i),i===R.value&&(U.value=d.error),Ce())},handleSuccess(){g===X.get(u)&&(rt(i),d.error="",d.ready=!0,d.loading=!1,i===R.value&&(U.value=""),ze(i),De(i),Qt(y),Ce())},fullScreenChangeCallBack(){}}),g!==X.get(u)){Zt(M),Xt(i);return}H.set(u,M),d.playing=!0,Ce(),W(()=>{ze(i),De(i),Qt(y)})}catch(k){rt(i),console.warn("EZUIKit init error",k),d.error="视频加载失败",i===R.value&&(U.value=d.error),it(i,{resetError:!1})}})}function Qt(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function De(e=R.value,t=0){if(typeof window=="undefined")return;const a=K(e),o=ne(a),i=ke.get(o);t===0&&i&&window.cancelAnimationFrame(i);const l=window.requestAnimationFrame(()=>{ze(a),t<8?De(a,t+1):ke.delete(o)});ke.set(o,l)}function qa(e){if(typeof window!="undefined"){if(e!==void 0){const t=ne(e),a=ke.get(t);a&&window.cancelAnimationFrame(a),ke.delete(t);return}ke.forEach(t=>window.cancelAnimationFrame(t)),ke.clear()}}function Jt(){Array.from(H.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&De(t)})}function Ya(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),i=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,l=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(i||1)),height:Math.max(1,Math.floor(l||1))}}function kt(e=R.value){if(typeof document=="undefined")return null;const t=K(e),a=le.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const i=S.get(t);return i!=null&&i.isConnected?i:null}function pn(e,t){var i;const a=(i=e==null?void 0:e.querySelector)==null?void 0:i.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function ze(e=R.value){var $e,Ve;if(typeof document=="undefined")return;const t=K(e),a=ne(t),o=nt(t),i=ae.value===t&&P.value?P.value:kt(t)||b.value,l=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=l||u;if(!i||!d)return;const{width:g,height:M}=Ya(i),k=H.get(a);try{l&&u&&k&&typeof k.reSize=="function"?k.reSize(g,M):l&&u&&k&&typeof k.autoResize=="function"&&k.autoResize()}catch(j){console.warn("EZUIKit resize failed",j)}const y={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${g}px`,height:`${M}px`};Object.assign(d.style,y,{display:"block",verticalAlign:"top"}),l&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const T=document.getElementById(`EZUIKitPlayer-${o}`);T&&(T.setAttribute("width",String(g)),T.setAttribute("height",String(M)));const A=document.getElementById(`${o}-player`),N=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),Te=[d,u,A,N==null?void 0:N.parentElement,N,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from((($e=d==null?void 0:d.querySelectorAll)==null?void 0:$e.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((Ve=u==null?void 0:u.querySelectorAll)==null?void 0:Ve.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),T].filter(Boolean);Array.from(new Set(Te)).forEach(j=>{var st,Lt;(st=j.setAttribute)==null||st.call(j,"width",String(g)),(Lt=j.setAttribute)==null||Lt.call(j,"height",String(M)),Object.assign(j.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),Qt(o)}function be(e={}){Array.from(H.keys()).forEach(t=>{it(Number(t),e)}),Object.keys(ge).forEach(t=>{H.has(t)||it(Number(t),e)}),Ce()}function it(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,i=K(e),l=ne(i);qa(i),rt(i);const u=H.get(l);H.delete(l),X.set(l,(X.get(l)||0)+1),u&&Zt(u),a&&Xt(i);const d=ge[l];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[l]),i===R.value&&o&&(U.value=""),Ce()}function gn(e,t){const a=K(e),o=ne(a);rt(a);const i=window.setTimeout(()=>{const l=ge[o];t!==X.get(o)||!(l!=null&&l.loading)||(l.error="视频加载超时",a===R.value&&(U.value=l.error),it(a,{resetError:!1}))},ws);Et.set(o,i)}function rt(e){const t=ne(e),a=Et.get(t);a&&(window.clearTimeout(a),Et.delete(t))}function Zt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function Xt(e=R.value){var d;if(typeof document=="undefined")return;const t=K(e),a=nt(t),o=document.getElementById(`${a}-wrap`),i=document.getElementById(a),l=kt(t)||b.value,u=(d=l==null?void 0:l.querySelector)==null?void 0:d.call(l,".home-video-player-host");ae.value===t&&Mt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),i!=null&&i.isConnected&&i.remove()}function vn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function yn(){const e=x.get("yak-structure");ea(e,"畜群结构",Pa.value)}function bn(){const e=x.get("yak-three-year-forecast");ea(e,"预测存栏",Ge.value)}function wn(){const e=x.get("yak-forecast-trend");ea(e,"预测存栏",tt.value)}function ea(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function ta(e){return e?pe.value%e:0}function xn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Po("grassland","grassland-distribution"),Po("wetland","wetland-distribution")]);v||(O.value={grassland:e,wetland:t})})}function Ae(e,t){const a=O.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(i=>(i==null?void 0:i.key)===t)}function aa(e,t){return e?V(D({},e),{title:t}):null}function Sn(){var M,k,y,T;const e=((M=Ae("grassland","grassland-town"))==null?void 0:M.rows)||[],t=((k=Ae("wetland","wetland-town-area"))==null?void 0:k.rows)||[],a=((y=Ae("grassland","grassland-productivity-town"))==null?void 0:y.rows)||[],o=((T=Ae("wetland","wetland-mu-yield"))==null?void 0:T.rows)||[],i=Pt(e),l=Pt(t),u=Pt(a),d=Pt(o);return[...new Set([...e,...t,...a,...o].map(A=>A==null?void 0:A.name).filter(Boolean))].map((A,N)=>{const $=i.get(A)||0,Te=l.get(A)||0,Ct=u.get(A)||0,$e=d.get(A)||0;let Ve=0,j=0;$>0&&Ct>0&&(Ve+=$*Ct,j+=$),Te>0&&$e>0&&(Ve+=Te*$e,j+=Te);const st=[Ct,$e].filter(sa=>sa>0),Lt=j>0?Ve/j:st.reduce((sa,qn)=>sa+qn,0)/Math.max(st.length,1);return{key:`home-pasture-productivity-${A}`,name:A,value:Number(Lt.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:N}}).filter(A=>A.value>0)}function Pt(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function Mn(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title)}):a.includes("wetland-town-area")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title,{variant:"water"})}):V(D({},e),{key:`home-${t}-${e.key}`,height:et.value})}function oa(e,t,a={}){var k;const o=(e.rows||[]).filter(y=>Number.isFinite(Number(y.value))).slice(0,10),i=((k=o.find(y=>y.unit))==null?void 0:k.unit)||"万亩",l=o.map(y=>Number(y.value)||0),u=Math.max(...l,1),d=Math.ceil(u*1.14),g=a.showTrendLine===!0,M=a.variant==="water";return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${i}`,left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(y){var $;const T=Array.isArray(y)?y:[y],A=T.find(Te=>Te.seriesName===t)||T[0],N=o[($=A==null?void 0:A.dataIndex)!=null?$:0];return N?`${N.name}
${t}:${ie(N.value)}${N.unit||i}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(y=>y.name),axisLabel:{interval:0,hideOverlap:!1,color:Lo,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:Xa},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(y=>y.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:It,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:M?10:6,stack:"b",z:3,data:o.map(y=>Number(y.value)||0),label:{show:!0,position:"top",distance:9,color:ut,fontSize:10,fontWeight:700,formatter:({value:y})=>we(y)},itemStyle:{borderRadius:M?[7,7,3,3]:2,color:new je(0,0,0,1,[...M?[{offset:0,color:"#a8fbff"},{offset:.42,color:"#31dcff"},{offset:1,color:"#2b8fff"}]:[{offset:0,color:"#19FFC6"},{offset:1,color:"#33AAFF"}]])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:M?"rgba(49, 220, 255, 0.18)":"rgba(25, 255, 198, 0.16)"}}},...g?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:l,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:ut,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],...M?[{name:"水柱顶",type:"pictorialBar",symbol:"circle",symbolSize:[18,7],symbolOffset:[0,-2],symbolPosition:"end",data:l,itemStyle:{color:"#a8fbff",opacity:.92,shadowBlur:3,shadowColor:"rgba(168, 251, 255, 0.18)"},tooltip:{show:!1},z:4}]:[{type:"custom",renderItem(y,T){const A=T.value(0),N=T.value(1),$=T.coord([A,N]);return{type:"image",style:{x:$[0]-4.5,y:$[1]-9,width:10,height:10,image:vs},silent:!0}},data:o.map((y,T)=>[T,Number(y.value)||0]),tooltip:{show:!1},z:4}],{type:"bar",barWidth:M?20:30,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:M?"rgba(58, 164, 215, 0.75)":"rgba(122, 140, 153, 0.6)",opacity:M?.12:.075},tooltip:{show:!1},z:0}]})}function kn(e=[],t="数值"){var d;const a=e.filter(g=>Number.isFinite(Number(g.value))).slice(0,10),o=((d=a.find(g=>g.unit))==null?void 0:d.unit)||"",i=a.map(g=>Number(g.value)||0),l=Math.max(...i,1),u=Math.ceil(l*1.12);return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var T;const k=(Array.isArray(g)?g:[g])[0],y=a[(T=k==null?void 0:k.dataIndex)!=null?T:0];return y?`${y.name}
${t}:${ie(y.value)}${y.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(g=>g.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Lo,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:Xa}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:It,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,data:i,type:"line",smooth:!0,symbol:ys,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:ut,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new je(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new je(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function Qa(e){const t=String((e==null?void 0:e.key)||"");return t.includes("grassland-town")||t.includes("wetland-town-area")}function Ja(e,t,a,o=0,i=!1,l=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===l?10:5,itemStyle:{color:d===l?"#ffffff":a},label:{show:d===l,position:"top",color:a,fontSize:10,formatter:({value:g})=>we(g)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:i?{color:new je(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function Pn(e){return Rt.find(t=>t.key===e)||Rt[2]}function Cn(e,t="month"){if(t==="month")return Ni(e);const a=Hi(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),i=t==="week"?7:1,l=Math.ceil(o/i)+1,u=Array.from({length:l},(k,y)=>{const T=Math.min(o,y*i);return Ri(T)}),d=u.map((k,y)=>{const A=Math.min(o,y*i)/o,N=Math.sin(y/(t==="week"?1.8:8.5))*Math.sin(Math.PI*A)*Math.min(360,e.months*18);return Math.round(xo+(e.stock-xo)*A+N)}),g=u.map((k,y)=>Math.round(e.births*(Math.min(o,y*i)/o))),M=u.map((k,y)=>Math.round(e.outflow*(Math.min(o,y*i)/o)));return{labels:u,stock:d,births:g,outflow:M}}function Ln(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function An(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function Tn(e){return(e.labels||[]).map((t,a)=>{var k,y,T,A,N,$;const o=Number(((k=e.stock)==null?void 0:k[Math.max(a-1,0)])||0),i=Number(((y=e.stock)==null?void 0:y[a])||o),l=Math.max(0,Number(((T=e.births)==null?void 0:T[a])||0)-Number(((A=e.births)==null?void 0:A[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((N=e.outflow)==null?void 0:N[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((l+u)*.18)),g=Math.max(o,i)+Math.max(d,Math.round(l*.32)),M=Math.max(0,Math.min(o,i)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:i,low:M,high:g,birth:l,outflow:u,value:[o,i,M,g]}})}function ie(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function _n(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${ie(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Za(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function Xa(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function In(e){if(!e)return null;const t=$i(e.topicKey,e.layerKey);if(t)return t;const a=Vi(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function Fn(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",i=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,l=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${i}${l}round`}function En(e){Dt.some(t=>t.key===e)&&(oe.value=e)}function eo(e){if(e.key==="Escape"){if(ae.value!==null){Mt();return}xt(),St()}}function na(){xa.value=typeof window=="undefined"?1080:window.innerHeight,Jt()}function On(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),i=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(i)?{x:960,y:540}:o>=0&&o<=1920&&i>=0&&i<=1080&&(o>a.width||i>a.height)?{x:o,y:i}:{x:(o-a.left)/a.width*1920,y:(i-a.top)/a.height*1080}}function ia(e,t){var a,o,i,l;return((o=(a=m.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((l=(i=m.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:l.call(i,e))||t}function Bn(){if(!zt.value||!ue.value)return;const e=ia(ue.value,de.value);if(!e)return;const t=de.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(de.value=e)}function ra(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>to(o,t[o])).length}function to(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!s.has(String(e||"").toLowerCase())}function ao(e={}){const t=String(oe.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Gn(e={}){const t=oo(e.lng),a=oo(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function oo(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Nn(){return re(this,arguments,function*(e={}){var d,g,M,k,y,T;const t=Number((d=e==null?void 0:e.lngLat)==null?void 0:d.lng),a=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lat),o=Ma.value,i=ao(o);if(!Number.isFinite(t)||!Number.isFinite(a)||!i){ve();return}const l=++Je,u=e.screen||{x:960,y:540};de.value=null,ue.value=null,Oe.value=!1,Be.value=!0,(k=(M=m.value)==null?void 0:M.clearSelectedFeature)==null||k.call(M);try{const A=yield Hn(o,{lng:t,lat:a},i);if(l!==Je||v)return;if(!A){ve();return}ue.value=A,Oe.value=!1,(T=(y=m.value)==null?void 0:y.highlightFeature)==null||T.call(y,A,{highlightTone:"v21"}),de.value=ia(A,u)}catch(A){l===Je&&ve()}finally{l===Je&&(Be.value=!1)}})}function Hn(o,i){return re(this,arguments,function*(e,t,a=ao(e)){const l=Gn(t);if(!l)return null;let u=null;a==="grassland"?u=yield fr({wkt:l}):a==="wetland"?u=yield hr({wkt:l}):a==="woodland"&&(u=yield cr(l));const d=Rn(u,a);if(!zn(d))return null;const g=Vn(d,e,t,a);return ra(g)>0?g:null})}function Rn(e,t){var o,i,l,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(i=e==null?void 0:e.data)==null?void 0:i.grassland,(l=e==null?void 0:e.data)==null?void 0:l.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const g=Dn(d);if(g)return g}return null}function Dn(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function zn(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some($n)?!0:Object.keys(e).some(t=>to(t,e[t]))}function $n(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Vn(e,t,a,o){const i=Wn(e),l=jn(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:i,feature:{type:"Feature",properties:i,geometry:l},geometry:l,layer:t,lngLat:a}}function jn(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Wn(e={}){const t=D({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const i=o==null?void 0:o.value;if(i==null||i==="")return;const l=c[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Un(u),l].filter(Boolean).forEach(g=>{(t[g]===void 0||t[g]===null||t[g]==="")&&(t[g]=i)})}),t}function Un(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function Kn(e){var a,o;const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||ra(t)<=0){ve();return}ue.value=t,Oe.value=!1,e!=null&&e.screen&&(de.value=ia(t,e.screen))}function ve(){var e,t;Je+=1,ue.value=null,Oe.value=!1,Be.value=!1,de.value=null,(t=(e=m.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function no(e){if(!zt.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||ve()}return(e,t)=>(L(),F("div",Tr,[so(At(Cr,{ref_key:"threeMapSceneRef",ref:h,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,onPlayComplete:Qo},null,512),[[lo,Bo.value]]),J.value?so((L(),xe(ui,{key:0,ref_key:"mapSceneRef",ref:m,class:"home-map-scene home-remote-map-scene",active:f.active&&J.value,"active-layer":Ma.value,"admin-boundary-line-scale":2.4,"initial-zoom":xs,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:He,onFeatureLoading:t[0]||(t[0]=a=>Be.value=a),onFeatureInfo:Kn,onMapClick:Nn,onViewChange:Bn},null,8,["active","active-layer"])),[[lo,J.value]]):q("",!0),t[12]||(t[12]=w("div",{class:"home-map-scrim"},null,-1)),w("div",_r,[At(sr,{"model-value":oe.value,topics:Dt,"onUpdate:modelValue":En},null,8,["model-value"])]),zt.value?(L(),F("div",{key:1,class:"home-map-feature-info",style:lt(Ho.value)},[At(lr,{feature:ue.value,empty:Oe.value,loading:Be.value,width:We(Go),height:No.value,closable:"",onClose:ve},null,8,["feature","empty","loading","width","height"])],4)):q("",!0),w("div",Ir,[w("div",Fr,[(L(!0),F(_e,null,Ie(Wo.value,a=>(L(),xe(uo,{key:a.key,class:"home-card left-card",title:a.title,width:We(wa),height:a.height},{default:la(()=>[a.option?(L(),xe(We(ca),{key:0,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(L(),xe(ko,{key:1,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),w("div",Er,[w("div",Or,[(L(!0),F(_e,null,Ie(Uo.value,a=>(L(),xe(uo,{key:a.key,class:Ue(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:We(wa),height:a.height},{extra:la(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(L(),F("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?ln():cn()},[...t[3]||(t[3]=[ai(" 更多 ",-1),w("span",{"aria-hidden":"true"},"›",-1)])],8,Br)):q("",!0)]),default:la(()=>[a.type==="video"?(L(),F("div",Gr,[w("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ne.value.length<=1,onClick:rn},"‹",8,Nr),w("div",{class:Ue(["home-video-grid",{"is-single":Aa.value.length<=1}])},[(L(!0),F(_e,null,Ie(Aa.value,o=>(L(),F("div",{key:o.key,ref_for:!0,ref:i=>Ba(i,o),"data-video-index":o.index,class:Ue(["home-video-screen",{"is-active":o.isActive,"is-playing":Yt(o.index),"is-loading":wt(o.index)}]),style:lt(za(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:i=>ja(o.index,i),onKeydown:[Tt(Se(i=>Le(o.index),["prevent"]),["enter"]),Tt(Se(i=>Le(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=w("div",{class:"home-video-player-host"},null,-1)),wt(o.index)?(L(),F("div",Rr,"加载中")):q("",!0),Re(o.index)?(L(),F("div",Dr,z(Re(o.index)),1)):q("",!0),o.live.hdPlayUrl&&(!Da(o.index)||Re(o.index))?(L(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(i=>Le(o.index),["stop"])},null,8,zr)):q("",!0),w("div",$r,z(o.live.title),1)],46,Hr))),128))],2),w("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ne.value.length<=1,onClick:sn},"›",8,Vr)])):a.key==="yak-forecast-trend"?(L(),F("div",jr,[w("div",Wr,[(L(),F(_e,null,Ie(Rt,o=>w("button",{key:o.key,type:"button",class:Ue({active:o.key===Nt.value}),onClick:i=>Nt.value=o.key},z(o.label),11,Ur)),64))]),At(We(ca),{ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(L(),xe(We(ca),{key:2,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(L(),F("div",Kr,[(L(!0),F(_e,null,Ie($t.value,(o,i)=>(L(),F("div",{key:o.key,class:Ue(["home-balance-gauge-card",{"is-active":i===Ro.value}]),style:lt(Ua(o))},[w("div",qr,[w("strong",null,z(o.status),1)]),w("div",Yr,[w("div",Qr,[w("strong",null,z(ie(o.value)),1),t[5]||(t[5]=w("em",null,"%",-1))])]),w("div",Jr,z(o.name),1),w("div",Zr,z(o.extra),1)],6))),128))])):(L(),xe(ko,{key:4,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),le.value?(L(),F("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Se(xt,["self"])},[w("section",Xr,[w("header",es,[w("div",null,[t[6]||(t[6]=w("h2",null,"基地监控",-1)),w("p",null,"共 "+z(te.value.length)+" 路,在线 "+z(zo.value)+" 路",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:xt},"×")]),Ta.value.length?(L(),F("div",ts,[(L(!0),F(_e,null,Ie(Ta.value,a=>(L(),F("div",{key:a.key,ref_for:!0,ref:o=>Ba(o,a),"data-video-index":a.index,class:Ue(["home-video-modal-item home-video-screen",{"is-active":a.index===R.value,"is-playing":Yt(a.index),"is-loading":wt(a.index),"is-offline":a.live.status!=="直播中"}]),style:lt(za(a.live,a.index===R.value,a.index)),role:"button",tabindex:"0",onClick:o=>ja(a.index,o),onKeydown:[Tt(Se(o=>Le(a.index),["prevent"]),["enter"]),Tt(Se(o=>Le(a.index),["prevent"]),["space"])]},[t[7]||(t[7]=w("div",{class:"home-video-player-host"},null,-1)),wt(a.index)?(L(),F("div",os,"加载中")):q("",!0),Re(a.index)?(L(),F("div",ns,z(Re(a.index)),1)):q("",!0),a.live.hdPlayUrl&&(!Da(a.index)||Re(a.index))?(L(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(o=>Le(a.index),["stop"])},null,8,is)):q("",!0),w("span",rs,z(a.live.title),1)],46,as))),128))])):(L(),F("div",ss,"暂无监控数据")),yt.value>1?(L(),F("footer",ls,[w("button",{type:"button",disabled:ce.value<=1,onClick:t[1]||(t[1]=a=>$a(ce.value-1))},"上一页",8,cs),w("span",null,z(ce.value)+" / "+z(yt.value),1),w("button",{type:"button",disabled:ce.value>=yt.value,onClick:t[2]||(t[2]=a=>$a(ce.value+1))},"下一页",8,us)])):q("",!0)])])):q("",!0),(L(),xe(oi,{to:"body"},[ae.value!==null?(L(),F("div",ds,[w("div",{ref_key:"homeVideoWebStageRef",ref:P,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[8]||(t[8]=[w("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):q("",!0)])),Gt.value?(L(),F("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Se(St,["self"])},[w("section",fs,[w("header",hs,[w("div",null,[t[9]||(t[9]=w("h2",null,"全县乡镇草畜平衡",-1)),w("p",null,"全部 "+z(pt.value.length)+" 个乡镇,超载率沿用草畜平衡结果库口径",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:St},"×")]),w("div",ms,[(L(!0),F(_e,null,Ie(pt.value,a=>(L(),F("article",{key:a.key,class:"home-balance-modal-item",style:lt(Ua(a))},[w("div",ps,[w("strong",null,z(a.name),1),w("span",null,z(a.status),1)]),w("div",gs,[w("strong",null,z(ie(a.value)),1),t[10]||(t[10]=w("em",null,"%",-1))]),t[11]||(t[11]=w("div",{class:"home-balance-modal-track"},[w("i")],-1)),w("p",null,z(a.extra),1)],4))),128))])])])):q("",!0)]))}};export{Vs as default}; diff --git a/docs/assets/index-51731c25-balabala-1784043664472.css b/docs/assets/index-51731c25-balabala-1784043664472.css new file mode 100644 index 0000000..c918921 --- /dev/null +++ b/docs/assets/index-51731c25-balabala-1784043664472.css @@ -0,0 +1 @@ +@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1784043664472.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1784043664472.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1784043664472.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1784043664472.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1784043664472.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1784043664472.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1784043664472.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1784043664472.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1784043664472.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1784043664472.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1784043664472.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1784043664472.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1784043664472.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1784043664472.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1784043664472.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1784043664472.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784043664472.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1784043664472.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1784043664472.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:15px;font-weight:600;line-height:18px;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:10px;font-weight:500;line-height:11px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:420px;right:420px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:420px;right:420px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px}.platform-screen .top-count-card.is-four .count-card-icon{width:64px;height:78px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:390px;right:390px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:390px;right:390px;top:102px;display:flex;grid-template-columns:none;grid-auto-rows:auto;column-gap:0;row-gap:0;justify-content:space-between;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{flex:0 0 auto;width:auto;min-width:184px;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:442px;top:82px;display:grid;grid-template-columns:208px 220px 242px 168px 168px;column-gap:10px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:390px;right:430px;top:96px;display:flex;justify-content:space-between}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} diff --git a/docs/assets/index-5afedc21-balabala-1784043664472.css b/docs/assets/index-5afedc21-balabala-1784043664472.css new file mode 100644 index 0000000..31bc100 --- /dev/null +++ b/docs/assets/index-5afedc21-balabala-1784043664472.css @@ -0,0 +1 @@ +.yak-industry-chain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.industry-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.industry-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(4,18,28,0) 0%,rgba(4,18,28,.05) 37%,rgba(2,10,17,.34) 78%,rgba(1,7,12,.62) 100%),linear-gradient(90deg,rgba(0,12,20,.42),transparent 26%,transparent 74%,rgba(0,12,20,.42))}.industry-map-loading{position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);color:#dcfaffc7;font-size:18px}.industry-artificial-layer-tools{position:absolute;right:452px;bottom:122px;z-index:8;pointer-events:all}.industry-map-feature-info{position:absolute;z-index:10;pointer-events:all}.industry-map-feature-info:after{position:absolute;top:var(--feature-arrow-top);left:var(--feature-arrow-left);z-index:0;width:12px;height:12px;content:"";border-right:1px solid rgba(48,220,255,.58);border-bottom:1px solid rgba(48,220,255,.58);background:rgba(5,26,38,.94);box-shadow:3px 3px 8px #0000003d;transform:translate(-50%) rotate(var(--feature-arrow-rotate))}.industry-map-feature-info>.m-card{position:relative;z-index:1}.industry-side-panel{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.industry-side-panel--left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.industry-side-panel--right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.industry-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.industry-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.industry-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.industry-side-card{flex:0 0 auto}.industry-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.industry-side-card .industry-town-column-chart{position:relative;z-index:1;width:100%;height:100%;min-height:0}.industry-side-card .industry-panel-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#e2fbffad;font-size:13px;font-weight:600;letter-spacing:0;text-shadow:0 0 8px rgba(48,220,255,.14)}.industry-side-card .business-columns.is-variant-plain{grid-template-columns:repeat(auto-fit,minmax(34px,1fr));gap:8px;padding-right:12px;padding-left:12px}.industry-side-card .business-columns.is-variant-plain .business-column-item{grid-template-rows:16px minmax(62px,1fr) 32px}.industry-side-card .business-columns.is-variant-plain .business-column-item span{display:-webkit-box;max-width:58px;color:#f0fdffdb;line-height:13px;white-space:normal;word-break:keep-all;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-plain .business-column-track{width:6px}.industry-side-card .business-columns.is-variant-townCompact{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:35px 13px 10px}.industry-side-card .business-columns.is-variant-townCompact:before{left:13px;right:13px;top:55px;bottom:40px;opacity:.46;background:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(48,220,255,.58) calc(100% - 1px)),repeating-linear-gradient(to bottom,rgba(159,220,230,.16) 0 1px,transparent 1px 21px)}.industry-side-card .business-columns.is-variant-townCompact:after{content:"";position:absolute;left:13px;right:13px;bottom:39px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(60,244,255,.72),transparent);box-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item{position:relative;z-index:1;grid-template-rows:17px minmax(74px,1fr) 29px;min-width:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item strong{width:100%;color:#f4fcfff0;font-size:10px;line-height:14px;text-align:center;text-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item span{display:-webkit-box;align-self:start;width:100%;max-width:36px;height:25px;margin-top:3px;color:#e8fcffd1;font-size:10px;line-height:12px;text-align:center;white-space:normal;word-break:break-all;writing-mode:horizontal-tb;text-orientation:initial;letter-spacing:0;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-townCompact .business-column-track{width:8px;height:100%;min-height:74px;align-self:end;border:0;border-radius:2px 2px 0 0;background:linear-gradient(180deg,rgba(48,220,255,.12),rgba(36,246,196,.015)),linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02) 48%,rgba(48,220,255,.1)),rgba(4,26,38,.22);box-shadow:inset 0 -1px #30dcff29}.industry-side-card .business-columns.is-variant-townCompact .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:18px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.12),rgba(48,220,255,0) 68%);transform:translate(-50%)}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i{left:0;right:0;min-height:5px;border-radius:3px 3px 0 0;box-shadow:inset 0 1px #ffffff3d}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:before,.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:after{display:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero strong{opacity:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero .business-column-track i{height:4px!important;opacity:.16;box-shadow:none}.industry-side-card .business-bars.is-rank-bar{padding-right:12px;padding-left:12px}.industry-side-card .business-bars.is-rank-bar .business-bar-name{font-size:12px;line-height:14px}.industry-featured-base-list{position:relative;z-index:1;display:grid;gap:8px;height:100%;padding:2px 3px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact{display:grid;grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:2px;padding:5px 13px 8px;overflow:hidden}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-row{height:auto;min-height:0;gap:10px;grid-template-columns:25px minmax(0,1fr) 104px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-rank{width:18px;height:18px;font-size:12px;line-height:19px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-name{font-size:13px;line-height:16px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-bar{height:5px;margin-top:6px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value strong{font-size:16px;line-height:18px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value em{font-size:12px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value span{margin-top:3px;font-size:11px;line-height:13px}.industry-featured-base{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;width:100%;min-height:76px;padding:9px 28px 9px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.16);border-radius:3px;background:linear-gradient(90deg,rgba(18,88,106,.27),rgba(6,25,38,.3)),rgba(3,20,31,.46);color:inherit;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.industry-featured-base:after{content:">";position:absolute;right:10px;top:50%;color:#24f6c4e6;font-size:16px;font-weight:800;transform:translateY(-50%)}.industry-featured-base:hover,.industry-featured-base:focus-visible{border-color:#24f6c48a;background:linear-gradient(90deg,rgba(18,112,120,.38),rgba(6,31,43,.38)),rgba(3,20,31,.56);outline:0;transform:translate(2px)}.industry-featured-base.is-active{border-color:#24f6c4b8;background:linear-gradient(90deg,rgba(30,124,119,.38),rgba(7,41,48,.42)),rgba(3,26,34,.62);box-shadow:inset 3px 0 #24f6c4e6,0 0 16px #24f6c41c}.industry-featured-base.is-active:after{color:#c9fbff}.industry-featured-base:disabled{cursor:default;opacity:.58}.industry-featured-base__index{display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(48,220,255,.42);background:rgba(48,220,255,.09);color:#35f1ff;font-family:D-DIN,DIN Alternate,sans-serif;font-size:14px;font-weight:800}.industry-featured-base__copy{display:grid;min-width:0;gap:2px}.industry-featured-base__copy strong,.industry-featured-base__copy em,.industry-featured-base__copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-featured-base__copy strong{color:#f6fffff5;font-size:14px;font-weight:760;line-height:18px}.industry-featured-base__copy em{color:#24f6c4eb;font-size:11px;font-style:normal;line-height:15px}.industry-featured-base__copy small{color:#cdeef4a8;font-size:11px;line-height:15px}.industry-leadership-mode-list{position:relative;z-index:1;display:grid;gap:7px;padding:3px 5px}.industry-leadership-mode{display:grid;grid-template-columns:4px 26px minmax(0,1fr);gap:8px;align-items:center;min-height:48px;padding:5px 6px;border-bottom:1px solid rgba(48,220,255,.1)}.industry-leadership-mode>i{display:block;width:4px;height:30px;box-shadow:0 0 10px currentColor}.industry-leadership-mode>span{color:#cff7ff75;font-family:D-DIN,DIN Alternate,sans-serif;font-size:13px;font-weight:800}.industry-leadership-mode div{display:grid;min-width:0;gap:2px}.industry-leadership-mode strong{color:#f6fffff2;font-size:13px;font-weight:760}.industry-leadership-mode small{overflow:hidden;color:#cdeef4a8;font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-list{display:grid;gap:7px}.industry-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:7px 8px;border:1px solid rgba(48,220,255,.1);border-radius:4px;background:rgba(4,20,31,.42)}.industry-ledger-row div{min-width:0}.industry-ledger-row strong,.industry-ledger-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-row strong{color:#f1feffeb;font-size:13px;font-weight:760}.industry-ledger-row span{margin-top:4px;color:#c9edf494;font-size:11px}.industry-ledger-row em{color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}.industry-point-detail{position:absolute;z-index:7;width:456px;padding:18px 20px 20px;border:1px solid rgba(48,220,255,.42);background:linear-gradient(180deg,rgba(12,54,70,.86),rgba(5,24,37,.9)),radial-gradient(circle at 20% 0%,rgba(36,246,196,.18),transparent 46%);box-shadow:0 0 24px #30dcff2e,inset 0 0 18px #30dcff14;color:#efffff;box-sizing:border-box;pointer-events:all}.industry-point-detail:after{content:"";position:absolute;left:var(--point-arrow-left, 50%);top:var(--point-arrow-top, 50%);width:16px;height:16px;border-right:1px solid rgba(48,220,255,.42);border-bottom:1px solid rgba(48,220,255,.42);background:rgba(5,24,37,.9);transform:translate(var(--point-arrow-x, -50%),var(--point-arrow-y, -50%)) rotate(var(--point-arrow-rotate, 45deg))}.industry-point-detail__head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#c9fbff;font-size:16px;font-weight:700}.industry-point-detail__head button{width:26px;height:26px;border:1px solid rgba(48,220,255,.36);border-radius:0;background:rgba(6,28,43,.72);color:#efffffe0;cursor:pointer;font-size:20px;line-height:20px}.industry-point-detail__name{margin-top:12px;color:#fff;font-size:23px;font-weight:800;line-height:1.35}.industry-point-detail__profile{margin-top:12px;padding-top:11px;border-top:1px solid rgba(48,220,255,.2)}.industry-point-detail__profile-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.industry-point-detail__profile-head span{color:#caf1f8b8;font-size:13px}.industry-point-detail__profile-head strong{color:#8bf7ff;font-size:13px;font-weight:760}.industry-point-detail__profile>p{display:-webkit-box;margin:6px 0 0;overflow:hidden;color:#edfcffdb;font-size:14px;line-height:20px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-point-detail__image{display:block;width:100%;height:116px;margin-top:9px;border:1px solid rgba(48,220,255,.22);object-fit:cover;object-position:center 35%}.industry-point-detail__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.industry-point-detail__facts div{min-width:0;padding:6px 7px;border:1px solid rgba(48,220,255,.13);background:rgba(2,18,30,.3)}.industry-point-detail__facts span,.industry-point-detail__facts strong,.industry-point-detail__facts small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-point-detail__facts span,.industry-point-detail__facts small{color:#c7ecf39e;font-size:11px;line-height:14px}.industry-point-detail__facts strong{margin:1px 0;color:#c9fbff;font-family:D-DIN,DIN Alternate,sans-serif;font-size:18px;font-weight:800;line-height:20px}.industry-point-detail__highlights{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:9px}.industry-point-detail__highlights>span{margin-right:2px;color:#caf1f8ad;font-size:12px}.industry-point-detail__highlights i{padding:3px 6px;border:1px solid rgba(36,246,196,.28);background:rgba(36,246,196,.08);color:#dcffd3eb;font-size:11px;font-style:normal;line-height:15px}.industry-point-detail__grid{display:grid;gap:9px;margin-top:16px}.industry-point-detail__row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;min-height:34px;align-items:center;border-bottom:1px solid rgba(48,220,255,.12)}.industry-point-detail__row span{color:#c4edf4bd;font-size:15px}.industry-point-detail__row strong{overflow:hidden;color:#f6fffff2;font-size:16px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.industry-point-detail__grid.is-family-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-top:14px}.industry-point-detail__grid.is-family-layout .industry-point-detail__row{grid-template-columns:74px minmax(0,1fr);gap:8px;min-height:31px;padding:2px 0}.industry-point-detail__grid.is-family-layout .industry-point-detail__row.is-wide{grid-column:1/-1}.industry-point-detail__grid.is-family-layout .industry-point-detail__row span{font-size:13px;line-height:16px}.industry-point-detail__grid.is-family-layout .industry-point-detail__row strong{font-size:14px;line-height:18px}.industry-bottom-switcher{position:absolute;left:50%;bottom:48px;z-index:8;display:flex;align-items:center;justify-content:center;transform:translate(-50%);pointer-events:all}.industry-bottom-switcher .topic-switcher{width:1340px}.industry-bottom-switcher .topic-switcher-item{width:var(--topic-item-width, 112px)}.industry-bottom-switcher .topic-switcher-item .topic-name{font-size:14px}.industry-bottom-switcher .topic-switcher-item .topic-title{font-size:14px;line-height:16px}.industry-bottom-switcher .topic-switcher-item .topic-name small{font-size:10px;line-height:11px} diff --git a/docs/assets/index-6e1f3341-balabala-1784043664472.css b/docs/assets/index-6e1f3341-balabala-1784043664472.css new file mode 100644 index 0000000..739ee3d --- /dev/null +++ b/docs/assets/index-6e1f3341-balabala-1784043664472.css @@ -0,0 +1 @@ +.grassland-ndvi-timeline[data-v-86212a95]{width:680px;height:68px;box-sizing:border-box;padding:8px 12px 9px;border:1px solid rgba(72,226,255,.28);background:linear-gradient(180deg,rgba(6,36,50,.76),rgba(3,18,30,.66)),linear-gradient(90deg,rgba(28,191,255,.08),rgba(38,246,198,.12),rgba(28,191,255,.08));backdrop-filter:blur(6px);box-shadow:inset 0 1px #bbfaff1f,inset 0 0 18px #1cbfff14,0 10px 28px #000c1a57;color:#efffff;pointer-events:all}.grassland-ndvi-timeline.is-dense[data-v-86212a95]{width:740px;height:86px;padding:8px 14px 10px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-head[data-v-86212a95]{margin-bottom:5px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-body[data-v-86212a95]{align-items:start}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-track[data-v-86212a95]{height:52px;margin:0 4px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-line[data-v-86212a95],.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-fill[data-v-86212a95],.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-thumb[data-v-86212a95]{top:13px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark[data-v-86212a95]{width:70px;height:52px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark .grassland-ndvi-timeline-tick[data-v-86212a95]{top:8px;height:12px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark .grassland-ndvi-timeline-label[data-v-86212a95]{top:24px;width:68px;font-size:11px;line-height:15px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark.is-staggered .grassland-ndvi-timeline-label[data-v-86212a95]{top:38px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark.is-active[data-v-86212a95]{z-index:4}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-label[data-v-86212a95]{width:72px;font-size:12px}.grassland-ndvi-timeline-head[data-v-86212a95]{display:flex;align-items:center;justify-content:space-between;height:18px;margin-bottom:8px}.grassland-ndvi-timeline-head span[data-v-86212a95]{position:relative;padding-left:10px;color:#e8fcffdb;font-size:13px;font-weight:700}.grassland-ndvi-timeline-head span[data-v-86212a95]:before{content:"";position:absolute;left:0;top:4px;width:4px;height:10px;background:#26f6c6;box-shadow:0 0 10px #26f6c6b8}.grassland-ndvi-timeline-head strong[data-v-86212a95]{color:#29ffcf;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;line-height:18px;letter-spacing:0;text-shadow:0 0 12px rgba(41,255,207,.42)}.grassland-ndvi-timeline-state[data-v-86212a95]{display:flex;align-items:center;justify-content:center;height:30px;color:#e4fbffad;font-size:13px}.grassland-ndvi-timeline-body[data-v-86212a95]{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:12px}.grassland-ndvi-timeline-nav[data-v-86212a95]{width:28px;height:28px;padding:0;border:1px solid rgba(72,226,255,.34);background:rgba(7,35,48,.68);color:#e6fdffe0;font-size:22px;line-height:20px;cursor:pointer;outline:none}.grassland-ndvi-timeline-nav[data-v-86212a95]:hover,.grassland-ndvi-timeline-nav[data-v-86212a95]:focus-visible{color:#fff;border-color:#30dcffc7;box-shadow:0 0 12px #30dcff42}.grassland-ndvi-timeline-track[data-v-86212a95]{position:relative;height:34px;margin:0 8px}.grassland-ndvi-timeline-line[data-v-86212a95],.grassland-ndvi-timeline-fill[data-v-86212a95]{position:absolute;left:var(--timeline-edge-offset);top:8px;height:3px;border-radius:999px}.grassland-ndvi-timeline-line[data-v-86212a95]{right:var(--timeline-edge-offset);background:rgba(90,199,228,.28);box-shadow:inset 0 0 8px #00071247}.grassland-ndvi-timeline-fill[data-v-86212a95]{right:auto;width:var(--timeline-fill-width);background:linear-gradient(90deg,#35bff8,#29ffcf);box-shadow:0 0 12px #29ffcf5c}.grassland-ndvi-timeline-thumb[data-v-86212a95]{position:absolute;z-index:3;left:var(--timeline-active-left);top:8px;width:0;height:0;pointer-events:none;transform:translate(-50%)}.grassland-ndvi-timeline-thumb i[data-v-86212a95]{content:"";position:absolute;left:-9px;top:-9px;width:18px;height:18px;box-sizing:border-box;border:2px solid rgba(240,255,255,.92);border-radius:50%;background:#29ffcf;box-shadow:0 0 0 5px #29ffcf1f,0 0 18px #29ffcfa8}.grassland-ndvi-timeline-mark[data-v-86212a95]{position:absolute;z-index:2;top:0;display:block;width:84px;height:34px;padding:0;border:0;background:transparent;color:#e8faffc2;cursor:pointer;outline:none;transform:translate(-50%)}.grassland-ndvi-timeline-mark .grassland-ndvi-timeline-tick[data-v-86212a95]{position:absolute;left:50%;top:4px;width:2px;height:11px;border-radius:999px;background:rgba(148,234,255,.74);box-shadow:0 0 8px #30dcff3d;transform:translate(-50%)}.grassland-ndvi-timeline-mark .grassland-ndvi-timeline-label[data-v-86212a95]{position:absolute;left:50%;top:18px;width:78px;box-sizing:border-box;overflow:visible;padding:0 3px;color:#e8faff9e;font-size:12px;font-weight:700;line-height:16px;text-align:center;text-overflow:clip;white-space:nowrap;transform:translate(-50%)}.grassland-ndvi-timeline-mark[data-v-86212a95]:hover,.grassland-ndvi-timeline-mark[data-v-86212a95]:focus-visible,.grassland-ndvi-timeline-mark.is-active[data-v-86212a95]{color:#fff}.grassland-ndvi-timeline-mark:hover .grassland-ndvi-timeline-tick[data-v-86212a95],.grassland-ndvi-timeline-mark:focus-visible .grassland-ndvi-timeline-tick[data-v-86212a95],.grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-tick[data-v-86212a95]{background:#29ffcf;box-shadow:0 0 12px #29ffcf94}.grassland-ndvi-timeline-mark:hover .grassland-ndvi-timeline-label[data-v-86212a95],.grassland-ndvi-timeline-mark:focus-visible .grassland-ndvi-timeline-label[data-v-86212a95],.grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-label[data-v-86212a95]{color:#fff}.grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-label[data-v-86212a95]{width:78px;padding:0 8px;border:1px solid rgba(41,255,207,.34);background:rgba(4,39,48,.78);box-shadow:0 0 14px #29ffcf29} diff --git a/docs/assets/index-6fbdaf34-balabala-1784043664472.css b/docs/assets/index-6fbdaf34-balabala-1784043664472.css new file mode 100644 index 0000000..60c84b9 --- /dev/null +++ b/docs/assets/index-6fbdaf34-balabala-1784043664472.css @@ -0,0 +1 @@ +.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{transform:translate(-50%,-50%);opacity:0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;width:112px;height:46px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4)}.map .provinces-label .number{color:#fff;font-size:24px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translateY(-50%)}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1784043664472.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:760px;transform:translate(-50%);pointer-events:auto}.home-bottom-switcher .topic-switcher{width:760px}.home-bottom-switcher .topic-switcher-menu{flex:0 0 auto}.home-bottom-switcher .topic-switcher-arrow{display:none}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-video-modal-status{position:absolute;top:10px;right:10px;z-index:5;padding:3px 8px;border-left:2px solid #24f6c4;color:#b9ffe9;font-size:11px;line-height:15px;font-weight:800;background:rgba(1,28,26,.76)}.home-video-modal-item.is-offline .home-video-modal-status{border-left-color:#8bf7ff;color:#ffe6a7;background:rgba(42,31,5,.76)}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} diff --git a/docs/assets/index-7103e996-1784043664472.js b/docs/assets/index-7103e996-1784043664472.js new file mode 100644 index 0000000..c287956 --- /dev/null +++ b/docs/assets/index-7103e996-1784043664472.js @@ -0,0 +1,4 @@ +var Ii=Object.defineProperty,Ci=Object.defineProperties;var Li=Object.getOwnPropertyDescriptors;var la=Object.getOwnPropertySymbols;var Ri=Object.prototype.hasOwnProperty,Ti=Object.prototype.propertyIsEnumerable;var ua=(t,e,s)=>e in t?Ii(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Tt=(t,e)=>{for(var s in e||(e={}))Ri.call(e,s)&&ua(t,s,e[s]);if(la)for(var s of la(e))Ti.call(e,s)&&ua(t,s,e[s]);return t},kt=(t,e)=>Ci(t,Li(e));var ot=(t,e,s)=>new Promise((a,i)=>{var r=h=>{try{n(s.next(h))}catch(l){i(l)}},o=h=>{try{n(s.throw(h))}catch(l){i(l)}},n=h=>h.done?a(h.value):Promise.resolve(h.value).then(r,o);n((s=s.apply(t,e)).next())});import{g as ca}from"./index-e9f36657-1784043664472.js";/* empty css */import{_ as fa}from"./index-e3442fcf-1784043664472.js";import{i as Pe,g as Oi,b as ga}from"./townshipBoundaries-1b068bef-1784043664472.js";import{r as Fi,n as ji}from"./index-d0c7091a-1784043664472.js";import{c as ki,F as qi,b as $i}from"./featurePanelLayout-93409244-1784043664472.js";import{A as Di}from"./assets-93f7396b-1784043664472.js";import{q as Ui,r as Bi,s as zi}from"./screen2Standard-15e4461a-1784043664472.js";import{M as Wi}from"./index-0060e718-1784043664472.js";import{_ as Vi}from"./LayerPanel-4a87f4f0-1784043664472.js";import{a as va,_ as Hi}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{_ as Qi}from"./TopicSwitcher-f0c08774-1784043664472.js";import{_ as Ji,g as z,q as Ua,o as J,c as Y,a as L,t as ut,j as At,n as Ot,f as se,F as fs,y as gs,d as Q,h as Xi,w as es,A as ss,b as ae,C as Cs,x as da,u as as,J as _a,z as Ki}from"./index-1784043664472.js";import{b as is,e as Ls,r as Zi,a as Yi,p as tr,g as er,c as Rs,d as sr}from"./data-b5a92f08-1784043664472.js";import"./data-5c83c66b-1784043664472.js";const ar="/openApi";function ir(t){return ot(this,null,function*(){const e=yield Fi(`${ar}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:t},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:t})}),s=ji(e);return nr(Array.isArray(s)?s[0]||{}:s||{})})}const rr={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function nr(t={}){return!t||typeof t!="object"?{}:Object.entries(t).reduce((e,[s,a])=>{e[s]=a;const i=rr[s];return i&&e[i]===void 0&&(e[i]=a),e},{})}function or(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var e=1;e<=60;++e)t("EPSG:"+(32600+e),"+proj=utm +zone="+e+" +datum=WGS84 +units=m"),t("EPSG:"+(32700+e),"+proj=utm +zone="+e+" +south +datum=WGS84 +units=m");t("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}var Jt=1,Xt=2,le=3,hr=4,qs=5,Ma=6378137,lr=6356752314e-3,ma=.0066943799901413165,Ne=484813681109536e-20,P=Math.PI/2,ur=.16666666666666666,cr=.04722222222222222,fr=.022156084656084655,p=1e-10,Z=.017453292519943295,yt=57.29577951308232,D=Math.PI/4,Re=Math.PI*2,tt=3.14159265359,wt={};wt.greenwich=0;wt.lisbon=-9.131906111111;wt.paris=2.337229166667;wt.bogota=-74.080916666667;wt.madrid=-3.687938888889;wt.rome=12.452333333333;wt.bern=7.439583333333;wt.jakarta=106.807719444444;wt.ferro=-17.666666666667;wt.brussels=4.367975;wt.stockholm=18.058277777778;wt.athens=23.7163375;wt.oslo=10.722916666667;const gr={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var ya=/[\s_\-\/\(\)]/g;function $t(t,e){if(t[e])return t[e];for(var s=Object.keys(t),a=e.toLowerCase().replace(ya,""),i=-1,r,o;++iArray.isArray(a)&&a[0]==="ID");return s&&s.length>=3?{authority:s[1],code:parseInt(s[2],10)}:null}static convertUnit(e,s="unit"){if(!e||e.length<3)return{type:s,name:"unknown",conversion_factor:null};const a=e[1],i=parseFloat(e[2])||null,r=e.find(n=>Array.isArray(n)&&n[0]==="ID"),o=r?{authority:r[1],code:parseInt(r[2],10)}:null;return{type:s,name:a,conversion_factor:i,id:o}}static convertAxis(e){const s=e[1]||"Unknown";let a;const i=s.match(/^\((.)\)$/);if(i){const l=i[1].toUpperCase();if(l==="E")a="east";else if(l==="N")a="north";else if(l==="U")a="up";else if(e[2])a=e[2];else throw new Error(`Unknown axis abbreviation: ${l}`)}else a=e[2]||"unknown";const r=e.find(l=>Array.isArray(l)&&l[0]==="ORDER"),o=r?parseInt(r[1],10):null,n=e.find(l=>Array.isArray(l)&&(l[0]==="LENGTHUNIT"||l[0]==="ANGLEUNIT"||l[0]==="SCALEUNIT")),h=this.convertUnit(n);return{name:s,direction:a,unit:h,order:o}}static extractAxes(e){return e.filter(s=>Array.isArray(s)&&s[0]==="AXIS").map(s=>this.convertAxis(s)).sort((s,a)=>(s.order||0)-(a.order||0))}static convert(e,s={}){switch(e[0]){case"PROJCRS":s.type="ProjectedCRS",s.name=e[1],s.base_crs=e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")):null,s.conversion=e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")):null;const a=e.find(u=>Array.isArray(u)&&u[0]==="CS");a&&(s.coordinate_system={type:a[1],axis:this.extractAxes(e)});const i=e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT");if(i){const u=this.convertUnit(i);s.coordinate_system.unit=u}s.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":s.type=e[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",s.name=e[1];const r=e.find(u=>Array.isArray(u)&&(u[0]==="DATUM"||u[0]==="ENSEMBLE"));if(r){const u=this.convert(r);r[0]==="ENSEMBLE"?s.datum_ensemble=u:s.datum=u;const m=e.find(w=>Array.isArray(w)&&w[0]==="PRIMEM");m&&m[1]!=="Greenwich"&&(u.prime_meridian={name:m[1],longitude:parseFloat(m[2])})}s.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},s.id=this.getId(e);break;case"DATUM":s.type="GeodeticReferenceFrame",s.name=e[1],s.ellipsoid=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":s.type="DatumEnsemble",s.name=e[1],s.members=e.filter(u=>Array.isArray(u)&&u[0]==="MEMBER").map(u=>({type:"DatumEnsembleMember",name:u[1],id:this.getId(u)}));const o=e.find(u=>Array.isArray(u)&&u[0]==="ENSEMBLEACCURACY");o&&(s.accuracy=parseFloat(o[1]));const n=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID");n&&(s.ellipsoid=this.convert(n)),s.id=this.getId(e);break;case"ELLIPSOID":s.type="Ellipsoid",s.name=e[1],s.semi_major_axis=parseFloat(e[2]),s.inverse_flattening=parseFloat(e[3]),e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT")&&this.convert(e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT"),s);break;case"CONVERSION":s.type="Conversion",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&u[0]==="PARAMETER").map(u=>this.convert(u));break;case"METHOD":s.type="Method",s.name=e[1],s.id=this.getId(e);break;case"PARAMETER":s.type="Parameter",s.name=e[1],s.value=parseFloat(e[2]),s.unit=this.convertUnit(e.find(u=>Array.isArray(u)&&(u[0]==="LENGTHUNIT"||u[0]==="ANGLEUNIT"||u[0]==="SCALEUNIT"))),s.id=this.getId(e);break;case"BOUNDCRS":s.type="BoundCRS";const h=e.find(u=>Array.isArray(u)&&u[0]==="SOURCECRS");if(h){const u=h.find(m=>Array.isArray(m));s.source_crs=u?this.convert(u):null}const l=e.find(u=>Array.isArray(u)&&u[0]==="TARGETCRS");if(l){const u=l.find(m=>Array.isArray(m));s.target_crs=u?this.convert(u):null}const g=e.find(u=>Array.isArray(u)&&u[0]==="ABRIDGEDTRANSFORMATION");g?s.transformation=this.convert(g):s.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(s.type="Transformation",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&(u[0]==="PARAMETER"||u[0]==="PARAMETERFILE")).map(u=>{if(u[0]==="PARAMETER")return this.convert(u);if(u[0]==="PARAMETERFILE")return{name:u[1],value:u[2],id:{authority:"EPSG",code:8656}}}),s.parameters.length===7){const u=s.parameters[6];u.name==="Scale difference"&&(u.value=Math.round((u.value-1)*1e12)/1e6)}s.id=this.getId(e);break;case"AXIS":s.coordinate_system||(s.coordinate_system={type:"unspecified",axis:[]}),s.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":const f=this.convertUnit(e,"LinearUnit");s.coordinate_system&&s.coordinate_system.axis&&s.coordinate_system.axis.forEach(u=>{u.unit||(u.unit=f)}),f.conversion_factor&&f.conversion_factor!==1&&s.semi_major_axis&&(s.semi_major_axis={value:s.semi_major_axis,unit:f});break;default:s.keyword=e[0];break}return s}}class vr extends Ba{static convert(e,s={}){return super.convert(e,s),s.coordinate_system&&s.coordinate_system.subtype==="Cartesian"&&delete s.coordinate_system,s.usage&&delete s.usage,s}}class dr extends Ba{static convert(e,s={}){super.convert(e,s);const a=e.find(r=>Array.isArray(r)&&r[0]==="CS");a&&(s.coordinate_system={subtype:a[1],axis:this.extractAxes(e)});const i=e.find(r=>Array.isArray(r)&&r[0]==="USAGE");if(i){const r=i.find(h=>Array.isArray(h)&&h[0]==="SCOPE"),o=i.find(h=>Array.isArray(h)&&h[0]==="AREA"),n=i.find(h=>Array.isArray(h)&&h[0]==="BBOX");s.usage={},r&&(s.usage.scope=r[1]),o&&(s.usage.area=o[1]),n&&(s.usage.bbox=n.slice(1))}return s}}function _r(t){return t.find(e=>Array.isArray(e)&&e[0]==="USAGE")?"2019":(t.find(e=>Array.isArray(e)&&e[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function Mr(t){return(_r(t)==="2019"?dr:vr).convert(t)}function mr(t){const e=t.toUpperCase();return e.includes("PROJCRS")||e.includes("GEOGCRS")||e.includes("BOUNDCRS")||e.includes("VERTCRS")||e.includes("LENGTHUNIT")||e.includes("ANGLEUNIT")||e.includes("SCALEUNIT")?"WKT2":(e.includes("PROJCS")||e.includes("GEOGCS")||e.includes("LOCAL_CS")||e.includes("VERT_CS")||e.includes("UNIT"),"WKT1")}var Te=1,za=2,Wa=3,vs=4,Va=5,Vs=-1,yr=/\s/,wr=/[A-Za-z]/,Er=/[A-Za-z84_]/,Ss=/[,\]]/,Ha=/[\d\.E\-\+]/;function Ft(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=Te}Ft.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==vs)for(;yr.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case Te:return this.neutral(t);case za:return this.keyword(t);case vs:return this.quoted(t);case Va:return this.afterquote(t);case Wa:return this.number(t);case Vs:return}};Ft.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=vs;return}if(Ss.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};Ft.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=Te;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=Te,this.currentObject=this.stack.pop(),this.currentObject||(this.state=Vs);return}};Ft.prototype.number=function(t){if(Ha.test(t)){this.word+=t;return}if(Ss.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};Ft.prototype.quoted=function(t){if(t==='"'){this.state=Va;return}this.word+=t};Ft.prototype.keyword=function(t){if(Er.test(t)){this.word+=t;return}if(t==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=Te;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};Ft.prototype.neutral=function(t){if(wr.test(t)){this.word=t,this.state=za;return}if(t==='"'){this.word="",this.state=vs;return}if(Ha.test(t)){this.word=t,this.state=Wa;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};Ft.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(e==="polar stereographic"||e==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=St(t.lat0>0?90:-90),delete t.lat1)}function wa(t){let e={units:null,to_meter:void 0};return typeof t=="string"?(e.units=t.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.units==="meter"&&(e.to_meter=1)):t&&t.name&&(e.units=t.name.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.to_meter=t.conversion_factor),e}function Ea(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Sa(t,e){t.ellipsoid.radius?(e.a=t.ellipsoid.radius,e.rf=0):(e.a=Ea(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?e.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(e.rf=e.a/(e.a-Ea(t.ellipsoid.semi_minor_axis))))}function ds(t,e={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(ds(t.source_crs,e),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?e.nadgrids=t.transformation.parameters[0].value:e.datum_params=t.transformation.parameters.map(s=>s.value)),e):(Object.keys(t).forEach(s=>{const a=t[s];if(a!==null)switch(s){case"name":if(e.srsCode)break;e.name=a,e.srsCode=a;break;case"type":a==="GeographicCRS"?e.projName="longlat":a==="GeodeticCRS"?t.coordinate_system&&t.coordinate_system.subtype==="Cartesian"?e.projName="geocent":e.projName="longlat":a==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(e.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":a.ellipsoid&&(e.ellps=a.ellipsoid.name,Sa(a,e)),a.prime_meridian&&(e.from_greenwich=a.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":e.ellps=a.name,Sa(a,e);break;case"prime_meridian":e.long0=(a.longitude||0)*Math.PI/180;break;case"coordinate_system":if(a.axis){const i={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},r=a.axis.map(o=>i[o.direction.toLowerCase()]);if(r.every(Boolean)&&(e.axis=r.join(""),e.axis.length===2&&(e.axis+="u")),a.unit){const{units:o,to_meter:n}=wa(a.unit);e.units=o,e.to_meter=n}else if(a.axis[0]&&a.axis[0].unit){const{units:o,to_meter:n}=wa(a.axis[0].unit);e.units=o,e.to_meter=n}}break;case"id":a.authority&&a.code&&(e.title=a.authority+":"+a.code);break;case"conversion":a.method&&a.method.name&&(e.projName=a.method.name),a.parameters&&a.parameters.forEach(i=>{const r=i.name.toLowerCase().replace(/\s+/g,"_"),o=i.value;i.unit&&i.unit.conversion_factor?e[r]=o*i.unit.conversion_factor:i.unit==="degree"?e[r]=o*Math.PI/180:e[r]=o});break;case"unit":a.name&&(e.units=a.name.toLowerCase(),e.units==="metre"&&(e.units="meter")),a.conversion_factor&&(e.to_meter=a.conversion_factor);break;case"base_crs":ds(a,e),e.datumCode=a.id?a.id.authority+"_"+a.id.code:a.name;break}}),e.latitude_of_false_origin!==void 0&&(e.lat0=e.latitude_of_false_origin),e.longitude_of_false_origin!==void 0&&(e.long0=e.longitude_of_false_origin),e.latitude_of_standard_parallel!==void 0&&(e.lat0=e.latitude_of_standard_parallel,e.lat1=e.latitude_of_standard_parallel),e.latitude_of_1st_standard_parallel!==void 0&&(e.lat1=e.latitude_of_1st_standard_parallel),e.latitude_of_2nd_standard_parallel!==void 0&&(e.lat2=e.latitude_of_2nd_standard_parallel),e.latitude_of_projection_centre!==void 0&&(e.lat0=e.latitude_of_projection_centre),e.longitude_of_projection_centre!==void 0&&(e.longc=e.longitude_of_projection_centre),e.easting_at_false_origin!==void 0&&(e.x0=e.easting_at_false_origin),e.northing_at_false_origin!==void 0&&(e.y0=e.northing_at_false_origin),e.latitude_of_natural_origin!==void 0&&(e.lat0=e.latitude_of_natural_origin),e.longitude_of_natural_origin!==void 0&&(e.long0=e.longitude_of_natural_origin),e.longitude_of_origin!==void 0&&(e.long0=e.longitude_of_origin),e.false_easting!==void 0&&(e.x0=e.false_easting),e.easting_at_projection_centre&&(e.x0=e.easting_at_projection_centre),e.false_northing!==void 0&&(e.y0=e.false_northing),e.northing_at_projection_centre&&(e.y0=e.northing_at_projection_centre),e.standard_parallel_1!==void 0&&(e.lat1=e.standard_parallel_1),e.standard_parallel_2!==void 0&&(e.lat2=e.standard_parallel_2),e.scale_factor_at_natural_origin!==void 0&&(e.k0=e.scale_factor_at_natural_origin),e.scale_factor_at_projection_centre!==void 0&&(e.k0=e.scale_factor_at_projection_centre),e.scale_factor_on_pseudo_standard_parallel!==void 0&&(e.k0=e.scale_factor_on_pseudo_standard_parallel),e.azimuth!==void 0&&(e.alpha=e.azimuth),e.azimuth_at_projection_centre!==void 0&&(e.alpha=e.azimuth_at_projection_centre),e.angle_from_rectified_to_skew_grid&&(e.rectified_grid_angle=e.angle_from_rectified_to_skew_grid),Qa(e),e)}var xr=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function pr(t,e){var s=e[0],a=e[1];!(s in t)&&a in t&&(t[s]=t[a],e.length===3&&(t[s]=e[2](t[s])))}function Ja(t){for(var e=Object.keys(t),s=0,a=e.length;s-1;var e=$t(t,"authority");if(e){var s=$t(e,"epsg");return s&&Pa.indexOf(s)>-1}}function Cr(t){var e=$t(t,"extension");if(e)return $t(e,"proj4")}function Lr(t){return t[0]==="+"}function Rr(t){let e;if(Gr(t))if(Nr(t))e=ht[t];else if(Ar(t)){e=_s(t);var s=Cr(e);s&&(e=$s(s))}else Lr(t)&&(e=$s(t));else"projName"in t?e=t:e=_s(t);return e&&Ir(e)?ht["EPSG:3857"]:e}function xa(t,e){t=t||{};var s,a;if(!e)return t;for(a in e)s=e[a],s!==void 0&&(t[a]=s);return t}function Ct(t,e,s){var a=t*e;return s/Math.sqrt(1-a*a)}function ke(t){return t<0?-1:1}function G(t,e){return e||Math.abs(t)<=tt?t:t-ke(t)*Re}function Gt(t,e,s){var a=t*s,i=.5*t;return a=Math.pow((1-a)/(1+a),i),Math.tan(.5*(P-e))/a}function Oe(t,e){for(var s=.5*t,a,i,r=P-2*Math.atan(e),o=0;o<=15;o++)if(a=t*Math.sin(r),i=P-2*Math.atan(e*Math.pow((1-a)/(1+a),s))-r,r+=i,Math.abs(i)<=1e-10)return r;return-9999}function Tr(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=Ct(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function Or(t){var e=t.x,s=t.y;if(s*yt>90&&s*yt<-90&&e*yt>180&&e*yt<-180)return null;var a,i;if(Math.abs(Math.abs(s)-P)<=p)return null;if(this.sphere)a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0+this.a*this.k0*Math.log(Math.tan(D+.5*s));else{var r=Math.sin(s),o=Gt(this.e,s,r);a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=a,t.y=i,t}function Fr(t){var e=t.x-this.x0,s=t.y-this.y0,a,i;if(this.sphere)i=P-2*Math.atan(Math.exp(-s/(this.a*this.k0)));else{var r=Math.exp(-s/(this.a*this.k0));if(i=Oe(this.e,r),i===-9999)return null}return a=G(this.long0+e/(this.a*this.k0),this.over),t.x=a,t.y=i,t}var jr=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const kr={init:Tr,forward:Or,inverse:Fr,names:jr};function qr(){}function pa(t){return t}var Xa=["longlat","identity"];const $r={init:qr,forward:pa,inverse:pa,names:Xa};var Dr=[kr,$r],Ht={},ne=[];function Ka(t,e){var s=ne.length;return t.names?(ne[s]=t,t.names.forEach(function(a){Ht[a.toLowerCase()]=s}),this):(console.log(e),!0)}function Za(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function Ur(t){if(!t)return!1;var e=t.toLowerCase();if(typeof Ht[e]!="undefined"&&ne[Ht[e]]||(e=Za(e),e in Ht&&ne[Ht[e]]))return ne[Ht[e]]}function Br(){Dr.forEach(Ka)}const zr={start:Br,add:Ka,get:Ur};var Ya={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Wr=Ya.WGS84;function Vr(t,e,s,a){var i=t*t,r=e*e,o=(i-r)/i,n=0;a?(t*=1-o*(ur+o*(cr+o*fr)),i=t*t,o=0):n=Math.sqrt(o);var h=(i-r)/r;return{es:o,e:n,ep2:h}}function Hr(t,e,s,a,i){if(!t){var r=$t(Ya,a);r||(r=Wr),t=r.a,e=r.b,s=r.rf}return s&&!e&&(e=(1-1/s)*t),(s===0||Math.abs(t-e)3&&(n.datum_params[3]!==0||n.datum_params[4]!==0||n.datum_params[5]!==0||n.datum_params[6]!==0)&&(n.datum_type=Xt,n.datum_params[3]*=Ne,n.datum_params[4]*=Ne,n.datum_params[5]*=Ne,n.datum_params[6]=n.datum_params[6]/1e6+1)),o&&(n.datum_type=le,n.grids=o),n.a=s,n.b=a,n.es=i,n.ep2=r,n}var Hs={};function Xr(t,e,s){return e instanceof ArrayBuffer?Kr(t,e,s):{ready:Zr(t,e)}}function Kr(t,e,s){var a=!0;s!==void 0&&s.includeErrorFields===!1&&(a=!1);var i=new DataView(e),r=en(i),o=sn(i,r),n=an(i,o,r,a),h={header:o,subgrids:n};return Hs[t]=h,h}function Zr(t,e){return ot(this,null,function*(){for(var s=[],a=yield e.getImageCount(),i=a-1;i>=0;i--){var r=yield e.getImage(i),o=yield r.readRasters(),n=o,h=[r.getWidth(),r.getHeight()],l=r.getBoundingBox().map(ba),g=typeof r.fileDirectory.getValue=="function"?r.fileDirectory.getValue("ModelPixelScale"):r.fileDirectory.ModelPixelScale,f=[g[0],g[1]].map(ba),u=l[0]+(h[0]-1)*f[0],m=l[3]-(h[1]-1)*f[1],w=n[0],E=n[1],S=[];for(let I=h[1]-1;I>=0;I--)for(let R=h[0]-1;R>=0;R--){var b=I*h[0]+R;S.push([-qt(E[b]),qt(w[b])])}s.push({del:f,lim:h,ll:[-u,m],cvs:S})}var A={header:{nSubgrids:a},subgrids:s};return Hs[t]=A,A})}function Yr(t){if(t===void 0)return null;var e=t.split(",");return e.map(tn)}function tn(t){if(t.length===0)return null;var e=t[0]==="@";return e&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Hs[t]||null,isNull:!1}}function ba(t){return t*Math.PI/180}function qt(t){return t/3600*Math.PI/180}function en(t){var e=t.getInt32(8,!1);return e===11?!1:(e=t.getInt32(8,!0),e!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function sn(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Ds(t,56,56+8).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Ds(t,e,s){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,s)))}function an(t,e,s,a){for(var i=176,r=[],o=0;o5e-11?!1:t.datum_type===Jt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type===Xt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]:!0}function ti(t,e,s){var a=t.x,i=t.y,r=t.z?t.z:0,o,n,h,l;if(i<-P&&i>-1.001*P)i=-P;else if(i>P&&i<1.001*P)i=P;else{if(i<-P)return{x:-1/0,y:-1/0,z:t.z};if(i>P)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),n=Math.sin(i),l=Math.cos(i),h=n*n,o=s/Math.sqrt(1-e*h),{x:(o+r)*l*Math.cos(a),y:(o+r)*l*Math.sin(a),z:(o*(1-e)+r)*n}}function ei(t,e,s,a){var i=1e-12,r=i*i,o=30,n,h,l,g,f,u,m,w,E,S,b,A,I,R=t.x,j=t.y,O=t.z?t.z:0,F,K,W;if(n=Math.sqrt(R*R+j*j),h=Math.sqrt(R*R+j*j+O*O),n/sr&&Ia.y||m>a.x||Sn&&Math.abs(h.y)>n);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=G(r.x+s.ll[0]),a.y=r.y+s.ll[1]}else isNaN(r.x)||(a.x=t.x+r.x,a.y=t.y+r.y);return a}function Na(t,e){var s={x:t.x/e.del[0],y:t.y/e.del[1]},a={x:Math.floor(s.x),y:Math.floor(s.y)},i={x:s.x-1*a.x,y:s.y-1*a.y},r={x:Number.NaN,y:Number.NaN},o;if(a.x<0||a.x>=e.lim[0]||a.y<0||a.y>=e.lim[1])return r;o=a.y*e.lim[0]+a.x;var n={x:e.cvs[o][0],y:e.cvs[o][1]};o++;var h={x:e.cvs[o][0],y:e.cvs[o][1]};o+=e.lim[0];var l={x:e.cvs[o][0],y:e.cvs[o][1]};o--;var g={x:e.cvs[o][0],y:e.cvs[o][1]},f=i.x*i.y,u=i.x*(1-i.y),m=(1-i.x)*(1-i.y),w=(1-i.x)*i.y;return r.x=m*n.x+u*h.x+w*g.x+f*l.x,r.y=m*n.y+u*h.y+w*g.y+f*l.y,r}var Qt=["x","y","z"];function gn(t,e){const s={};for(let a=0,i=t.axis.length;a2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function dn(t){Aa(t.x),Aa(t.y)}function Aa(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function _n(t,e){return(t.datum.datum_type===Jt||t.datum.datum_type===Xt||t.datum.datum_type===le)&&e.datumCode!=="WGS84"||(e.datum.datum_type===Jt||e.datum.datum_type===Xt||e.datum.datum_type===le)&&t.datumCode!=="WGS84"}function Ms(t,e,s,a){var i,r=s.z!==void 0;if(dn(s),t.datum&&e.datum&&_n(t,e)&&(i=new xt("WGS84"),s=Ms(t,i,s,a),t=i),a&&t.axis!=="enu"&&(s=gn(t,s)),t.projName==="longlat")s={x:s.x*Z,y:s.y*Z,z:s.z||0};else if(t.to_meter&&(s={x:s.x*t.to_meter,y:s.y*t.to_meter,z:s.z||0}),s=t.inverse(s),!s)return;if(t.from_greenwich&&(s.x+=t.from_greenwich),s=cn(t.datum,e.datum,s),!!s)return s=s,e.from_greenwich&&(s={x:s.x-e.from_greenwich,y:s.y,z:s.z||0}),e.projName==="longlat"?s={x:s.x*yt,y:s.y*yt,z:s.z||0}:(s=e.forward(s),e.to_meter&&(s={x:s.x/e.to_meter,y:s.y/e.to_meter,z:s.z||0})),a&&e.axis!=="enu"?vn(e,s):(s&&!r&&e.projName!=="geocent"&&delete s.z,s)}function Mn(t,e,s,a){var i;return Array.isArray(s)?i=Qs(s):i={x:s.x,y:s.y,z:s.z,m:s.m},Ms(t,e,i,a)}var Ia=xt("WGS84");function Fs(t,e,s,a){var i,r,o;return Array.isArray(s)?(i=Ms(t,e,Qs(s),a)||{x:NaN,y:NaN},s.length>2?(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",r?typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y,s[2]].concat(s.slice(3)):a&&typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y].concat(s.slice(2))):[i.x,i.y]):(i=Ms(t,e,{x:s.x,y:s.y,z:s.z,m:s.m},a)||{x:NaN,y:NaN},o=Object.keys(s),o.length===2||(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",o.forEach(function(n){n==="x"||n==="y"||n==="z"&&(r||a)||(i[n]=s[n])})),i)}function ns(t){return t instanceof xt?t:typeof t=="object"&&"oProj"in t?t.oProj:xt(t)}function mn(t,e,s){var a,i,r=!1,o;return typeof e=="undefined"?(i=ns(t),a=Ia,r=!0):(typeof e.x!="undefined"||Array.isArray(e))&&(s=e,i=ns(t),a=Ia,r=!0),a||(a=ns(t)),i||(i=ns(e)),s?Fs(a,i,s):(o={forward:function(n,h){return Fs(a,i,n,h)},inverse:function(n,h){return Fs(i,a,n,h)}},r&&(o.oProj=i),o)}var Ca=6,si="AJSAJS",ai="AFAFAF",oe=65,Mt=73,Pt=79,pe=86,be=90;const yn={forward:ii,inverse:wn,toPoint:ri};function ii(t,e){return e=e||5,Pn(En({lat:t[1],lon:t[0]}),e)}function wn(t){var e=Js(oi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function ri(t){var e=Js(oi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function js(t){return t*(Math.PI/180)}function La(t){return 180*(t/Math.PI)}function En(t){var e=t.lat,s=t.lon,a=6378137,i=.00669438,r=.9996,o,n,h,l,g,f,u,m=js(e),w=js(s),E,S;S=Math.floor((s+180)/6)+1,s===180&&(S=60),e>=56&&e<64&&s>=3&&s<12&&(S=32),e>=72&&e<84&&(s>=0&&s<9?S=31:s>=9&&s<21?S=33:s>=21&&s<33?S=35:s>=33&&s<42&&(S=37)),o=(S-1)*6-180+3,E=js(o),n=i/(1-i),h=a/Math.sqrt(1-i*Math.sin(m)*Math.sin(m)),l=Math.tan(m)*Math.tan(m),g=n*Math.cos(m)*Math.cos(m),f=Math.cos(m)*(w-E),u=a*((1-i/4-3*i*i/64-5*i*i*i/256)*m-(3*i/8+3*i*i/32+45*i*i*i/1024)*Math.sin(2*m)+(15*i*i/256+45*i*i*i/1024)*Math.sin(4*m)-35*i*i*i/3072*Math.sin(6*m));var b=r*h*(f+(1-l+g)*f*f*f/6+(5-18*l+l*l+72*g-58*n)*f*f*f*f*f/120)+5e5,A=r*(u+h*Math.tan(m)*(f*f/2+(5-l+9*g+4*g*g)*f*f*f*f/24+(61-58*l+l*l+600*g-330*n)*f*f*f*f*f*f/720));return e<0&&(A+=1e7),{northing:Math.round(A),easting:Math.round(b),zoneNumber:S,zoneLetter:Sn(e)}}function Js(t){var e=t.northing,s=t.easting,a=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var r=.9996,o=6378137,n=.00669438,h,l=(1-Math.sqrt(1-n))/(1+Math.sqrt(1-n)),g,f,u,m,w,E,S,b,A,I=s-5e5,R=e;a<"N"&&(R-=1e7),S=(i-1)*6-180+3,h=n/(1-n),E=R/r,b=E/(o*(1-n/4-3*n*n/64-5*n*n*n/256)),A=b+(3*l/2-27*l*l*l/32)*Math.sin(2*b)+(21*l*l/16-55*l*l*l*l/32)*Math.sin(4*b)+151*l*l*l/96*Math.sin(6*b),g=o/Math.sqrt(1-n*Math.sin(A)*Math.sin(A)),f=Math.tan(A)*Math.tan(A),u=h*Math.cos(A)*Math.cos(A),m=o*(1-n)/Math.pow(1-n*Math.sin(A)*Math.sin(A),1.5),w=I/(g*r);var j=A-g*Math.tan(A)/m*(w*w/2-(5+3*f+10*u-4*u*u-9*h)*w*w*w*w/24+(61+90*f+298*u+45*f*f-252*h-3*u*u)*w*w*w*w*w*w/720);j=La(j);var O=(w-(1+2*f+u)*w*w*w/6+(5-2*u+28*f-3*u*u+8*h+24*f*f)*w*w*w*w*w/120)/Math.cos(A);O=S+La(O);var F;if(t.accuracy){var K=Js({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});F={top:K.lat,right:K.lon,bottom:j,left:O}}else F={lat:j,lon:O};return F}function Sn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function Pn(t,e){var s="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+xn(t.easting,t.northing,t.zoneNumber)+s.substr(s.length-5,e)+a.substr(a.length-5,e)}function xn(t,e,s){var a=ni(s),i=Math.floor(t/1e5),r=Math.floor(e/1e5)%20;return pn(i,r,a)}function ni(t){var e=t%Ca;return e===0&&(e=Ca),e}function pn(t,e,s){var a=s-1,i=si.charCodeAt(a),r=ai.charCodeAt(a),o=i+t-1,n=r+e,h=!1;o>be&&(o=o-be+oe-1,h=!0),(o===Mt||iMt||(o>Mt||iPt||(o>Pt||ibe&&(o=o-be+oe-1),n>pe?(n=n-pe+oe-1,h=!0):h=!1,(n===Mt||rMt||(n>Mt||rPt||(n>Pt||rpe&&(n=n-pe+oe-1);var l=String.fromCharCode(o)+String.fromCharCode(n);return l}function oi(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var e=t.length,s=null,a="",i,r=0;!/[A-Z]/.test(i=t.charAt(r));){if(r>=2)throw"MGRSPoint bad conversion from: "+t;a+=i,r++}var o=parseInt(a,10);if(r===0||r+3>e)throw"MGRSPoint bad conversion from: "+t;var n=t.charAt(r++);if(n<="A"||n==="B"||n==="Y"||n>="Z"||n==="I"||n==="O")throw"MGRSPoint zone letter "+n+" not handled: "+t;s=t.substring(r,r+=2);for(var h=ni(o),l=bn(s.charAt(0),h),g=Gn(s.charAt(1),h);g0&&(E=1e5/Math.pow(10,u),S=t.substring(r,r+u),m=parseFloat(S)*E,b=t.substring(r+u),w=parseFloat(b)*E),A=m+l,I=w+g,{easting:A,northing:I,zoneLetter:n,zoneNumber:o,accuracy:E}}function bn(t,e){for(var s=si.charCodeAt(e-1),a=1e5,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>be){if(i)throw"Bad character: "+t;s=oe,i=!0}a+=1e5}return a}function Gn(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var s=ai.charCodeAt(e-1),a=0,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>pe){if(i)throw"Bad character: "+t;s=oe,i=!0}a+=1e5}return a}function Nn(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function ce(t,e,s){if(!(this instanceof ce))return new ce(t,e,s);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if(typeof t=="object")this.x=t.x,this.y=t.y,this.z=t.z||0;else if(typeof t=="string"&&typeof e=="undefined"){var a=t.split(",");this.x=parseFloat(a[0]),this.y=parseFloat(a[1]),this.z=parseFloat(a[2])||0}else this.x=t,this.y=e,this.z=s||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}ce.fromMGRS=function(t){return new ce(ri(t))};ce.prototype.toMGRS=function(t){return ii([this.x,this.y],t)};var An=1,In=.25,Ra=.046875,Ta=.01953125,Oa=.01068115234375,Cn=.75,Ln=.46875,Rn=.013020833333333334,Tn=.007120768229166667,On=.3645833333333333,Fn=.005696614583333333,jn=.3076171875;function Xs(t){var e=[];e[0]=An-t*(In+t*(Ra+t*(Ta+t*Oa))),e[1]=t*(Cn-t*(Ra+t*(Ta+t*Oa)));var s=t*t;return e[2]=s*(Ln-t*(Rn+t*Tn)),s*=t,e[3]=s*(On-t*Fn),e[4]=s*t*jn,e}function ge(t,e,s,a){return s*=e,e*=e,a[0]*t-s*(a[1]+e*(a[2]+e*(a[3]+e*a[4])))}var kn=20;function Ks(t,e,s){for(var a=1/(1-e),i=t,r=kn;r;--r){var o=Math.sin(i),n=1-e*o*o;if(n=(ge(i,o,Math.cos(i),s)-t)*(n*Math.sqrt(n))*a,i-=n,Math.abs(n)p?Math.tan(s):0,E=Math.pow(w,2),S=Math.pow(E,2);i=1-this.es*Math.pow(n,2),g=g/Math.sqrt(i);var b=ge(s,n,h,this.en);r=this.a*(this.k0*g*(1+f/6*(1-E+u+f/20*(5-18*E+S+14*u-58*E*u+f/42*(61+179*S-S*E-479*E)))))+this.x0,o=this.a*(this.k0*(b-this.ml0+n*a*g/2*(1+f/12*(5-E+9*u+4*m+f/30*(61+S-58*E+270*u-330*E*u+f/56*(1385+543*S-S*E-3111*E))))))+this.y0}else{var l=h*Math.sin(a);if(Math.abs(Math.abs(l)-1)=1){if(l-1>p)return 93;o=0}else o=Math.acos(o);s<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return t.x=r,t.y=o,t}function Dn(t){var e,s,a,i,r=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+o/this.k0,s=Ks(e,this.es,this.en),Math.abs(s)p?Math.tan(s):0,w=this.ep2*Math.pow(u,2),E=Math.pow(w,2),S=Math.pow(m,2),b=Math.pow(S,2);e=1-this.es*Math.pow(f,2);var A=r*Math.sqrt(e)/this.k0,I=Math.pow(A,2);e=e*m,a=s-e*I/(1-this.es)*.5*(1-I/12*(5+3*S-9*w*S+w-4*E-I/30*(61+90*S-252*w*S+45*b+46*w-I/56*(1385+3633*S+4095*b+1574*b*S)))),i=G(this.long0+A*(1-I/6*(1+2*S+w-I/20*(5+28*S+24*b+8*w*S+6*w-I/42*(61+662*S+1320*b+720*b*S))))/u,this.over)}else a=P*ke(o),i=0;else{var n=Math.exp(r/this.k0),h=.5*(n-1/n),l=this.lat0+o/this.k0,g=Math.cos(l);e=Math.sqrt((1-Math.pow(g,2))/(1+Math.pow(h,2))),a=Math.asin(e),o<0&&(a=-a),h===0&&g===0?i=0:i=G(Math.atan2(h,g)+this.long0,this.over)}return t.x=i,t.y=a,t}var Un=["Fast_Transverse_Mercator","Fast Transverse Mercator"];const ls={init:qn,forward:$n,inverse:Dn,names:Un};function hi(t){var e=Math.exp(t);return e=(e-1/e)/2,e}function mt(t,e){t=Math.abs(t),e=Math.abs(e);var s=Math.max(t,e),a=Math.min(t,e)/(s||1);return s*Math.sqrt(1+Math.pow(a,2))}function Bn(t){var e=1+t,s=e-1;return s===0?t:t*Math.log(e)/s}function zn(t){var e=Math.abs(t);return e=Bn(e*(1+e/(mt(1,e)+1))),t<0?-e:e}function Zs(t,e){for(var s=2*Math.cos(2*e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return e+o*Math.sin(2*e)}function Wn(t,e){for(var s=2*Math.cos(e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return Math.sin(e)*o}function Vn(t){var e=Math.exp(t);return e=(e+1/e)/2,e}function li(t,e,s){for(var a=Math.sin(e),i=Math.cos(e),r=hi(s),o=Vn(s),n=2*i*o,h=-2*a*r,l=t.length-1,g=t[l],f=0,u=0,m=0,w,E;--l>=0;)w=u,E=f,u=g,f=m,g=-w+n*u-h*f+t[l],m=-E+h*u+n*f;return n=a*o,h=i*r,[n*g-h*m,n*m+h*g]}function Hn(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(ls.init.apply(this),this.forward=ls.forward,this.inverse=ls.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),s=e;this.cgb[0]=e*(2+e*(-2/3+e*(-2+e*(116/45+e*(26/45+e*(-2854/675)))))),this.cbg[0]=e*(-2+e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))),s=s*e,this.cgb[1]=s*(7/3+e*(-8/5+e*(-227/45+e*(2704/315+e*(2323/945))))),this.cbg[1]=s*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),s=s*e,this.cgb[2]=s*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=s*(-26/15+e*(34/21+e*(8/5+e*(-12686/2835)))),s=s*e,this.cgb[3]=s*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=s*(1237/630+e*(-12/5+e*(-24832/14175))),s=s*e,this.cgb[4]=s*(4174/315+e*(-144838/6237)),this.cbg[4]=s*(-734/315+e*(109598/31185)),s=s*e,this.cgb[5]=s*(601676/22275),this.cbg[5]=s*(444337/155925),s=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+s*(1/4+s*(1/64+s/256))),this.utg[0]=e*(-.5+e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=s*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=s*(13/48+e*(-3/5+e*(557/1440+e*(281/630+e*(-1983433/1935360))))),s=s*e,this.utg[2]=s*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=s*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),s=s*e,this.utg[3]=s*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=s*(49561/161280+e*(-179/168+e*(6601661/7257600))),s=s*e,this.utg[4]=s*(-4583/161280+e*(108847/3991680)),this.gtu[4]=s*(34729/80640+e*(-3418889/1995840)),s=s*e,this.utg[5]=s*(-20648693/638668800),this.gtu[5]=s*(212378941/319334400);var a=Zs(this.cbg,this.lat0);this.Zb=-this.Qn*(a+Wn(this.gtu,2*a))}function Qn(t){var e=G(t.x-this.long0,this.over),s=t.y;s=Zs(this.cbg,s);var a=Math.sin(s),i=Math.cos(s),r=Math.sin(e),o=Math.cos(e);s=Math.atan2(a,o*i),e=Math.atan2(r*i,mt(a,i*o)),e=zn(Math.tan(e));var n=li(this.gtu,2*s,2*e);s=s+n[0],e=e+n[1];var h,l;return Math.abs(e)<=2.623395162778?(h=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*s+this.Zb)+this.y0):(h=1/0,l=1/0),t.x=h,t.y=l,t}function Jn(t){var e=(t.x-this.x0)*(1/this.a),s=(t.y-this.y0)*(1/this.a);s=(s-this.Zb)/this.Qn,e=e/this.Qn;var a,i;if(Math.abs(e)<=2.623395162778){var r=li(this.utg,2*s,2*e);s=s+r[0],e=e+r[1],e=Math.atan(hi(e));var o=Math.sin(s),n=Math.cos(s),h=Math.sin(e),l=Math.cos(e);s=Math.atan2(o*l,mt(h,l*n)),e=Math.atan2(h,l*n),a=G(e+this.long0,this.over),i=Zs(this.cgb,s)}else a=1/0,i=1/0;return t.x=a,t.y=i,t}var Xn=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"];const us={init:Hn,forward:Qn,inverse:Jn,names:Xn};function Kn(t,e){if(t===void 0){if(t=Math.floor((G(e)+Math.PI)*30/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var Zn="etmerc";function Yn(){var t=Kn(this.zone,this.long0);if(t===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Z,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,us.init.apply(this),this.forward=us.forward,this.inverse=us.inverse}var to=["Universal Transverse Mercator System","utm"];const eo={init:Yn,names:to,dependsOn:Zn};function Ys(t,e){return Math.pow((1-t)/(1+t),e)}var so=20;function ao(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+D)/(Math.pow(Math.tan(.5*this.lat0+D),this.C)*Ys(this.e*t,this.ratexp))}function io(t){var e=t.x,s=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*s+D),this.C)*Ys(this.e*Math.sin(s),this.ratexp))-P,t.x=this.C*e,t}function ro(t){for(var e=1e-14,s=t.x/this.C,a=t.y,i=Math.pow(Math.tan(.5*a+D)/this.K,1/this.C),r=so;r>0&&(a=2*Math.atan(i*Ys(this.e*Math.sin(t.y),-.5*this.e))-P,!(Math.abs(a-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=p&&Math.abs(Math.cos(this.lat_ts))>p&&(this.k0=.5*this.cons*Ct(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/Gt(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=Ct(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(ea(this.lat0,this.sinlat0,this.e))-P,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function go(t){var e=t.x,s=t.y,a=Math.sin(s),i=Math.cos(s),r,o,n,h,l,g,f=G(e-this.long0,this.over);return Math.abs(Math.abs(e-this.long0)-Math.PI)<=p&&Math.abs(s+this.lat0)<=p?(t.x=NaN,t.y=NaN,t):this.sphere?(r=2*this.k0/(1+this.sinlat0*a+this.coslat0*i*Math.cos(f)),t.x=this.a*r*i*Math.sin(f)+this.x0,t.y=this.a*r*(this.coslat0*a-this.sinlat0*i*Math.cos(f))+this.y0,t):(o=2*Math.atan(ea(s,a,this.e))-P,h=Math.cos(o),n=Math.sin(o),Math.abs(this.coslat0)<=p?(l=Gt(this.e,s*this.con,this.con*a),g=2*this.a*this.k0*l/this.cons,t.x=this.x0+g*Math.sin(e-this.long0),t.y=this.y0-this.con*g*Math.cos(e-this.long0),t):(Math.abs(this.sinlat0)0?e=G(this.long0+Math.atan2(t.x,-1*t.y),this.over):e=G(this.long0+Math.atan2(t.x,t.y),this.over):e=G(this.long0+Math.atan2(t.x*Math.sin(n),o*this.coslat0*Math.cos(n)-t.y*this.sinlat0*Math.sin(n)),this.over),t.x=e,t.y=s,t)}else if(Math.abs(this.coslat0)<=p){if(o<=p)return s=this.lat0,e=this.long0,t.x=e,t.y=s,t;t.x*=this.con,t.y*=this.con,a=o*this.cons/(2*this.a*this.k0),s=this.con*Oe(this.e,a),e=this.con*G(this.con*this.long0+Math.atan2(t.x,-1*t.y),this.over)}else i=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=p?r=this.X0:(r=Math.asin(Math.cos(i)*this.sinX0+t.y*Math.sin(i)*this.cosX0/o),e=G(this.long0+Math.atan2(t.x*Math.sin(i),o*this.cosX0*Math.cos(i)-t.y*this.sinX0*Math.sin(i)),this.over)),s=-1*Oe(this.e,Math.tan(.5*(P+r)));return t.x=e,t.y=s,t}var _o=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"];const Mo={init:fo,forward:go,inverse:vo,names:_o,ssfn_:ea};function mo(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),s=this.a,a=this.rf,i=1/a,r=2*i-Math.pow(i,2),o=this.e=Math.sqrt(r);this.R=this.k0*s*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var n=Math.log(Math.tan(Math.PI/4+this.b0/2)),h=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+o*e)/(1-o*e));this.K=n-this.alpha*h+this.alpha*o/2*l}function yo(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),s=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),a=-this.alpha*(e+s)+this.K,i=2*(Math.atan(Math.exp(a))-Math.PI/4),r=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(r)/(Math.sin(this.b0)*Math.tan(i)+Math.cos(this.b0)*Math.cos(r))),n=Math.asin(Math.cos(this.b0)*Math.sin(i)-Math.sin(this.b0)*Math.cos(i)*Math.cos(r));return t.y=this.R/2*Math.log((1+Math.sin(n))/(1-Math.sin(n)))+this.y0,t.x=this.R*o+this.x0,t}function wo(t){for(var e=t.x-this.x0,s=t.y-this.y0,a=e/this.R,i=2*(Math.atan(Math.exp(s/this.R))-Math.PI/4),r=Math.asin(Math.cos(this.b0)*Math.sin(i)+Math.sin(this.b0)*Math.cos(i)*Math.cos(a)),o=Math.atan(Math.sin(a)/(Math.cos(this.b0)*Math.cos(a)-Math.sin(this.b0)*Math.tan(i))),n=this.lambda0+o/this.alpha,h=0,l=r,g=-1e3,f=0;Math.abs(l-g)>1e-7;){if(++f>20)return;h=1/this.alpha*(Math.log(Math.tan(Math.PI/4+r/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),g=l,l=2*Math.atan(Math.exp(h))-Math.PI/2}return t.x=n,t.y=l,t}var Eo=["somerc"];const So={init:mo,forward:yo,inverse:wo,names:Eo};var ie=1e-7;function Po(t){var e=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],s=typeof t.projName=="object"?Object.keys(t.projName)[0]:t.projName;return"no_uoff"in t||"no_off"in t||e.indexOf(s)!==-1||e.indexOf(Za(s))!==-1}function xo(){var t,e,s,a,i,r,o,n,h,l,g=0,f,u=0,m=0,w=0,E=0,S=0,b=0;this.no_off=Po(this),this.no_rot="no_rot"in this;var A=!1;"alpha"in this&&(A=!0);var I=!1;if("rectified_grid_angle"in this&&(I=!0),A&&(b=this.alpha),I&&(g=this.rectified_grid_angle,A||(b=0,A=!0)),A||I)u=this.longc;else if(m=this.long1,E=this.lat1,w=this.long2,S=this.lat2,Math.abs(E-S)<=ie||(t=Math.abs(E))<=ie||Math.abs(t-P)<=ie||Math.abs(Math.abs(this.lat0)-P)<=ie||Math.abs(Math.abs(S)-P)<=ie)throw new Error;var R=1-this.es;e=Math.sqrt(R),Math.abs(this.lat0)>p?(n=Math.sin(this.lat0),s=Math.cos(this.lat0),t=1-this.es*n*n,this.B=s*s,this.B=Math.sqrt(1+this.es*this.B*this.B/R),this.A=this.B*this.k0*e/t,a=this.B*e/(s*Math.sqrt(t)),i=a*a-1,i<=0?i=0:(i=Math.sqrt(i),this.lat0<0&&(i=-i)),this.E=i+=a,this.E*=Math.pow(Gt(this.e,this.lat0,n),this.B)):(this.B=1/e,this.A=this.k0,this.E=a=i=1),A||I?(A?(f=Math.asin(Math.sin(b)/a),I||(g=b)):(f=g,b=Math.asin(a*Math.sin(f))),this.lam0=u-Math.asin(.5*(i-1/i)*Math.tan(f))/this.B):(r=Math.pow(Gt(this.e,E,Math.sin(E)),this.B),o=Math.pow(Gt(this.e,S,Math.sin(S)),this.B),i=this.E/r,h=(o-r)/(o+r),l=this.E*this.E,l=(l-o*r)/(l+o*r),t=m-w,t<-Math.PI?w-=Re:t>Math.PI&&(w+=Re),this.lam0=G(.5*(m+w)-Math.atan(l*Math.tan(.5*this.B*(m-w))/h)/this.B,this.over),f=Math.atan(2*Math.sin(this.B*G(m-this.lam0,this.over))/(i-1/i)),g=b=Math.asin(a*Math.sin(f))),this.singam=Math.sin(f),this.cosgam=Math.cos(f),this.sinrot=Math.sin(g),this.cosrot=Math.cos(g),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(a*a-1)/Math.cos(b))),this.lat0<0&&(this.u_0=-this.u_0)),i=.5*f,this.v_pole_n=this.ArB*Math.log(Math.tan(D-i)),this.v_pole_s=this.ArB*Math.log(Math.tan(D+i))}function po(t){var e={},s,a,i,r,o,n,h,l;if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-P)>p){if(o=this.E/Math.pow(Gt(this.e,t.y,Math.sin(t.y)),this.B),n=1/o,s=.5*(o-n),a=.5*(o+n),r=Math.sin(this.B*t.x),i=(s*this.singam-r*this.cosgam)/a,Math.abs(Math.abs(i)-1)0?this.v_pole_n:this.v_pole_s,h=this.ArB*t.y;return this.no_rot?(e.x=h,e.y=l):(h-=this.u_0,e.x=l*this.cosrot+h*this.sinrot,e.y=h*this.cosrot-l*this.sinrot),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e}function bo(t){var e,s,a,i,r,o,n,h={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(s=t.y,e=t.x):(s=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),a=Math.exp(-this.BrA*s),i=.5*(a-1/a),r=.5*(a+1/a),o=Math.sin(this.BrA*e),n=(o*this.cosgam+i*this.singam)/r,Math.abs(Math.abs(n)-1)p?this.ns=Math.log(a/n)/Math.log(i/h):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=a/(this.ns*Math.pow(i,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function Io(t){var e=t.x,s=t.y;Math.abs(2*Math.abs(s)-Math.PI)<=p&&(s=ke(s)*(P-2*p));var a=Math.abs(Math.abs(s)-P),i,r;if(a>p)i=Gt(this.e,s,Math.sin(s)),r=this.a*this.f0*Math.pow(i,this.ns);else{if(a=s*this.ns,a<=0)return null;r=0}var o=this.ns*G(e-this.long0,this.over);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t}function Co(t){var e,s,a,i,r,o=(t.x-this.x0)/this.k0,n=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+n*n),s=1):(e=-Math.sqrt(o*o+n*n),s=-1);var h=0;if(e!==0&&(h=Math.atan2(s*o,s*n)),e!==0||this.ns>0){if(s=1/this.ns,a=Math.pow(e/(this.a*this.f0),s),i=Oe(this.e,a),i===-9999)return null}else i=-P;return r=G(h/this.ns+this.long0,this.over),t.x=r,t.y=i,t}var Lo=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"];const Ro={init:Ao,forward:Io,inverse:Co,names:Lo};function To(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function Oo(t){var e,s,a,i,r,o,n,h=t.x,l=t.y,g=G(h-this.long0,this.over);return e=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),s=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/e)-this.s45),a=-g*this.alfa,i=Math.asin(Math.cos(this.ad)*Math.sin(s)+Math.sin(this.ad)*Math.cos(s)*Math.cos(a)),r=Math.asin(Math.cos(s)*Math.sin(a)/Math.cos(i)),o=this.n*r,n=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(i/2+this.s45),this.n),t.y=n*Math.cos(o)/1,t.x=n*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t}function Fo(t){var e,s,a,i,r,o,n,h,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),o=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x),i=r/Math.sin(this.s0),a=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(a)-Math.sin(this.ad)*Math.cos(a)*Math.cos(i)),s=Math.asin(Math.cos(a)*Math.sin(i)/Math.cos(e)),t.x=this.long0-s/this.alfa,n=e,h=0;var g=0;do t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(n))/(1-this.e*Math.sin(n)),this.e/2))-this.s45),Math.abs(n-t.y)<1e-10&&(h=1),n=t.y,g+=1;while(h===0&&g<15);return g>=15?null:t}var jo=["Krovak","Krovak Modified","Krovak (North Orientated)","Krovak Modified (North Orientated)","krovak"];const ko={init:To,forward:Oo,inverse:Fo,names:jo};function vt(t,e,s,a,i){return t*i-e*Math.sin(2*i)+s*Math.sin(4*i)-a*Math.sin(6*i)}function qe(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function $e(t){return .375*t*(1+.25*t*(1+.46875*t))}function De(t){return .05859375*t*t*(1+.75*t)}function Ue(t){return t*t*t*(35/3072)}function sa(t,e,s){var a=e*s;return t/Math.sqrt(1-a*a)}function Ut(t){return Math.abs(t)1e-7?(s=t*e,(1-t*t)*(e/(1-s*s)-.5/t*Math.log((1-s)/(1+s)))):2*e}var zo=.3333333333333333,Wo=.17222222222222222,Vo=.10257936507936508,Ho=.06388888888888888,Qo=.0664021164021164,Jo=.016415012942191543;function ui(t){var e,s=[];return s[0]=t*zo,e=t*t,s[0]+=e*Wo,s[1]=e*Ho,e*=t,s[0]+=e*Vo,s[1]+=e*Qo,s[2]=e*Jo,s}function ci(t,e){var s=t+t;return t+e[0]*Math.sin(s)+e[1]*Math.sin(s+s)+e[2]*Math.sin(s+s+s)}var Us=1,Bs=2,zs=3,cs=4;function Xo(){var t=Math.abs(this.lat0);if(Math.abs(t-P)0){var e;switch(this.qp=It(this.e,1),this.mmf=.5/(1-this.es),this.apa=ui(this.es),this.mode){case Bs:this.dd=1;break;case Us:this.dd=1;break;case zs:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case cs:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=It(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===cs&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Ko(t){var e,s,a,i,r,o,n,h,l,g,f=t.x,u=t.y;if(f=G(f-this.long0,this.over),this.sphere){if(r=Math.sin(u),g=Math.cos(u),a=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(s=this.mode===this.EQUIT?1+g*a:1+this.sinph0*r+this.cosph0*g*a,s<=p)return null;s=Math.sqrt(2/s),e=s*g*Math.sin(f),s*=this.mode===this.EQUIT?r:this.cosph0*r-this.sinph0*g*a}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(a=-a),Math.abs(u+this.lat0)=0?(e=(l=Math.sqrt(o))*i,s=a*(this.mode===this.S_POLE?l:-l)):e=s=0;break}}return t.x=this.a*e+this.x0,t.y=this.a*s+this.y0,t}function Zo(t){t.x-=this.x0,t.y-=this.y0;var e=t.x/this.a,s=t.y/this.a,a,i,r,o,n,h,l;if(this.sphere){var g=0,f,u=0;if(f=Math.sqrt(e*e+s*s),i=f*.5,i>1)return null;switch(i=2*Math.asin(i),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(u=Math.sin(i),g=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(f)<=p?0:Math.asin(s*u/f),e*=u,s=g*f;break;case this.OBLIQ:i=Math.abs(f)<=p?this.lat0:Math.asin(g*this.sinph0+s*u*this.cosph0/f),e*=u*this.cosph0,s=(g-Math.sin(i)*this.sinph0)*f;break;case this.N_POLE:s=-s,i=P-i;break;case this.S_POLE:i-=P;break}a=s===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(e,s)}else{if(l=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e/=this.dd,s*=this.dd,h=Math.sqrt(e*e+s*s),h1&&(t=t>1?1:-1),Math.asin(t)}function eh(){Math.abs(this.lat1+this.lat2)p?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function sh(t){var e=t.x,s=t.y;this.sin_phi=Math.sin(s),this.cos_phi=Math.cos(s);var a=It(this.e3,this.sin_phi),i=this.a*Math.sqrt(this.c-this.ns0*a)/this.ns0,r=this.ns0*G(e-this.long0,this.over),o=i*Math.sin(r)+this.x0,n=this.rh-i*Math.cos(r)+this.y0;return t.x=o,t.y=n,t}function ah(t){var e,s,a,i,r,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),a=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),a=-1),i=0,e!==0&&(i=Math.atan2(a*t.x,a*t.y)),a=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-a*a)/(2*this.ns0)):(s=(this.c-a*a)/this.ns0,o=this.phi1z(this.e3,s)),r=G(i/this.ns0+this.long0,this.over),t.x=r,t.y=o,t}function ih(t,e){var s,a,i,r,o,n=Dt(.5*e);if(t0||Math.abs(o)<=p?(n=this.x0+this.a*r*s*Math.sin(a)/o,h=this.y0+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)/o):(n=this.x0+this.infinity_dist*s*Math.sin(a),h=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function lh(t){var e,s,a,i,r,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(i=Math.atan2(e,this.rc),s=Math.sin(i),a=Math.cos(i),o=Dt(a*this.sin_p14+t.y*s*this.cos_p14/e),r=Math.atan2(t.x*s,e*this.cos_p14*a-t.y*this.sin_p14*s),r=G(this.long0+r,this.over)):(o=this.phic0,r=0),t.x=r,t.y=o,t}var uh=["gnom"];const ch={init:oh,forward:hh,inverse:lh,names:uh};function fh(t,e){var s=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-s)<1e-6)return e<0?-1*P:P;for(var a=Math.asin(.5*e),i,r,o,n,h=0;h<30;h++)if(r=Math.sin(a),o=Math.cos(a),n=t*r,i=Math.pow(1-n*n,2)/(2*o)*(e/(1-t*t)-r/(1-n*n)+.5/t*Math.log((1-n)/(1+n))),a+=i,Math.abs(i)<=1e-10)return a;return NaN}function gh(){this.sphere||(this.k0=Ct(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function vh(t){var e=t.x,s=t.y,a,i,r=G(e-this.long0,this.over);if(this.sphere)a=this.x0+this.a*r*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(s)/Math.cos(this.lat_ts);else{var o=It(this.e,Math.sin(s));a=this.x0+this.a*this.k0*r,i=this.y0+this.a*o*.5/this.k0}return t.x=a,t.y=i,t}function dh(t){t.x-=this.x0,t.y-=this.y0;var e,s;return this.sphere?(e=G(this.long0+t.x/this.a/Math.cos(this.lat_ts),this.over),s=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(s=fh(this.e,2*t.y*this.k0/this.a),e=G(this.long0+t.x/(this.a*this.k0),this.over)),t.x=e,t.y=s,t}var _h=["cea"];const Mh={init:gh,forward:vh,inverse:dh,names:_h};function mh(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function yh(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i=Ut(s-this.lat0);return t.x=this.x0+this.a*a*this.rc,t.y=this.y0+this.a*i,t}function wh(t){var e=t.x,s=t.y;return t.x=G(this.long0+(e-this.x0)/(this.a*this.rc),this.over),t.y=Ut(this.lat0+(s-this.y0)/this.a),t}var Eh=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"];const Sh={init:mh,forward:yh,inverse:wh,names:Eh};var Fa=20;function Ph(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=qe(this.es),this.e1=$e(this.es),this.e2=De(this.es),this.e3=Ue(this.es),this.ml0=this.a*vt(this.e0,this.e1,this.e2,this.e3,this.lat0)}function xh(t){var e=t.x,s=t.y,a,i,r,o=G(e-this.long0,this.over);if(r=o*Math.sin(s),this.sphere)Math.abs(s)<=p?(a=this.a*o,i=-1*this.a*this.lat0):(a=this.a*Math.sin(r)/Math.tan(s),i=this.a*(Ut(s-this.lat0)+(1-Math.cos(r))/Math.tan(s)));else if(Math.abs(s)<=p)a=this.a*o,i=-1*this.ml0;else{var n=sa(this.a,this.e,Math.sin(s))/Math.tan(s);a=n*Math.sin(r),i=this.a*vt(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+n*(1-Math.cos(r))}return t.x=a+this.x0,t.y=i+this.y0,t}function ph(t){var e,s,a,i,r,o,n,h,l;if(a=t.x-this.x0,i=t.y-this.y0,this.sphere)if(Math.abs(i+this.a*this.lat0)<=p)e=G(a/this.a+this.long0,this.over),s=0;else{o=this.lat0+i/this.a,n=a*a/this.a/this.a+o*o,h=o;var g;for(r=Fa;r;--r)if(g=Math.tan(h),l=-1*(o*(h*g+1)-h-.5*(h*h+n)*g)/((h-o)/g-1),h+=l,Math.abs(l)<=p){s=h;break}e=G(this.long0+Math.asin(a*Math.tan(h)/this.a)/Math.sin(s),this.over)}else if(Math.abs(i+this.ml0)<=p)s=0,e=G(this.long0+a/this.a,this.over);else{o=(this.ml0+i)/this.a,n=a*a/this.a/this.a+o*o,h=o;var f,u,m,w,E;for(r=Fa;r;--r)if(E=this.e*Math.sin(h),f=Math.sqrt(1-E*E)*Math.tan(h),u=this.a*vt(this.e0,this.e1,this.e2,this.e3,h),m=this.e0-2*this.e1*Math.cos(2*h)+4*this.e2*Math.cos(4*h)-6*this.e3*Math.cos(6*h),w=u/this.a,l=(o*(f*w+1)-w-.5*f*(w*w+n))/(this.es*Math.sin(2*h)*(w*w+n-2*o*w)/(4*f)+(o-w)*(f*m-2/Math.sin(2*h))-m),h-=l,Math.abs(l)<=p){s=h;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(s),2))*Math.tan(s),e=G(this.long0+Math.asin(a*f/this.a)/Math.sin(s),this.over)}return t.x=e,t.y=s,t}var bh=["Polyconic","American_Polyconic","poly"];const Gh={init:Ph,forward:xh,inverse:ph,names:bh};function Nh(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Ah(t){var e,s=t.x,a=t.y,i=a-this.lat0,r=s-this.long0,o=i/Ne*1e-5,n=r,h=1,l=0;for(e=1;e<=10;e++)h=h*o,l=l+this.A[e]*h;var g=l,f=n,u=1,m=0,w,E,S=0,b=0;for(e=1;e<=6;e++)w=u*g-m*f,E=m*g+u*f,u=w,m=E,S=S+this.B_re[e]*u-this.B_im[e]*m,b=b+this.B_im[e]*u+this.B_re[e]*m;return t.x=b*this.a+this.x0,t.y=S*this.a+this.y0,t}function Ih(t){var e,s=t.x,a=t.y,i=s-this.x0,r=a-this.y0,o=r/this.a,n=i/this.a,h=1,l=0,g,f,u=0,m=0;for(e=1;e<=6;e++)g=h*o-l*n,f=l*o+h*n,h=g,l=f,u=u+this.C_re[e]*h-this.C_im[e]*l,m=m+this.C_im[e]*h+this.C_re[e]*l;for(var w=0;w.999999999999&&(s=.999999999999),e=Math.asin(s);var a=G(this.long0+t.x/(.900316316158*this.a*Math.cos(e)),this.over);a<-Math.PI&&(a=-Math.PI),a>Math.PI&&(a=Math.PI),s=(2*e+Math.sin(2*e))/Math.PI,Math.abs(s)>1&&(s=1);var i=Math.asin(s);return t.x=a,t.y=i,t}var Xh=["Mollweide","moll"];const Kh={init:Hh,forward:Qh,inverse:Jh,names:Xh};function Zh(){Math.abs(this.lat1+this.lat2)=0?(s=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(s=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var r=0;if(s!==0&&(r=Math.atan2(e*t.x,e*t.y)),this.sphere)return i=G(this.long0+r/this.ns,this.over),a=Ut(this.g-s/this.a),t.x=i,t.y=a,t;var o=this.g-s/this.a;return a=ms(o,this.e0,this.e1,this.e2,this.e3),i=G(this.long0+r/this.ns,this.over),t.x=i,t.y=a,t}var e0=["Equidistant_Conic","eqdc"];const s0={init:Zh,forward:Yh,inverse:t0,names:e0};function a0(){this.R=this.a}function i0(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i,r;Math.abs(s)<=p&&(i=this.x0+this.R*a,r=this.y0);var o=Dt(2*Math.abs(s/Math.PI));(Math.abs(a)<=p||Math.abs(Math.abs(s)-P)<=p)&&(i=this.x0,s>=0?r=this.y0+Math.PI*this.R*Math.tan(.5*o):r=this.y0+Math.PI*this.R*-Math.tan(.5*o));var n=.5*Math.abs(Math.PI/a-a/Math.PI),h=n*n,l=Math.sin(o),g=Math.cos(o),f=g/(l+g-1),u=f*f,m=f*(2/l-1),w=m*m,E=Math.PI*this.R*(n*(f-w)+Math.sqrt(h*(f-w)*(f-w)-(w+h)*(u-w)))/(w+h);a<0&&(E=-E),i=this.x0+E;var S=h+f;return E=Math.PI*this.R*(m*S-n*Math.sqrt((w+h)*(h+1)-S*S))/(w+h),s>=0?r=this.y0+E:r=this.y0-E,t.x=i,t.y=r,t}function r0(t){var e,s,a,i,r,o,n,h,l,g,f,u,m;return t.x-=this.x0,t.y-=this.y0,f=Math.PI*this.R,a=t.x/f,i=t.y/f,r=a*a+i*i,o=-Math.abs(i)*(1+r),n=o-2*i*i+a*a,h=-2*o+1+2*i*i+r*r,m=i*i/h+(2*n*n*n/h/h/h-9*o*n/h/h)/27,l=(o-n*n/3/h)/h,g=2*Math.sqrt(-l/3),f=3*m/l/g,Math.abs(f)>1&&(f>=0?f=1:f=-1),u=Math.acos(f)/3,t.y>=0?s=(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI:s=-(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI,Math.abs(a)1e-12&&--E>0);return E===0?{azi1:NaN,s12:NaN}:(W=O*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),dt=1+W/16384*(4096+W*(-768+W*(320-175*W))),lt=W/1024*(256+W*(-128+W*(74-47*W))),B=lt*A*(F+lt/4*(I*(-1+2*F*F)-lt/6*F*(-3+4*A*A)*(-3+4*F*F))),_t=i*(1-r)*dt*(R-B),{azi1:Math.atan2(u*S,g*f-l*u*b),s12:_t})}function l0(t,e,s,a,i,r){const o=Math.atan((1-r)*Math.tan(t)),n=Math.sin(o),h=Math.cos(o),l=Math.sin(s),g=Math.cos(s),f=Math.atan2(n,h*g),u=h*l,m=1-u*u,w=m*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),E=1+w/16384*(4096+w*(-768+w*(320-175*w))),S=w/1024*(256+w*(-128+w*(74-47*w)));let b=a/(i*(1-r)*E),A,I=100,R,j,O,F;do R=Math.cos(2*f+b),j=Math.sin(b),O=Math.cos(b),F=S*j*(R+S/4*(O*(-1+2*R*R)-S/6*R*(-3+4*j*j)*(-3+4*R*R))),A=b,b=a/(i*(1-r)*E)+F;while(Math.abs(b-A)>1e-12&&--I>0);if(I===0)return{lat2:NaN,lon2:NaN};const K=n*j-h*O*g,W=Math.atan2(n*O+h*j*g,(1-r)*Math.sqrt(u*u+K*K)),dt=Math.atan2(j*l,h*O-n*j*g),lt=r/16*m*(4+r*(4-3*m)),B=dt-(1-lt)*r*u*(b+lt*j*(R+lt*O*(-1+2*R*R))),_t=e+B;return{lat2:W,lon2:_t}}function u0(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function c0(t){var e=t.x,s=t.y,a=Math.sin(t.y),i=Math.cos(t.y),r=G(e-this.long0,this.over),o,n,h,l,g,f,u,m,w,E,S;return this.sphere?Math.abs(this.sin_p12-1)<=p?(t.x=this.x0+this.a*(P-s)*Math.sin(r),t.y=this.y0-this.a*(P-s)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=p?(t.x=this.x0+this.a*(P+s)*Math.sin(r),t.y=this.y0+this.a*(P+s)*Math.cos(r),t):(w=this.sin_p12*a+this.cos_p12*i*Math.cos(r),u=Math.acos(w),m=u?u/Math.sin(u):1,t.x=this.x0+this.a*m*i*Math.sin(r),t.y=this.y0+this.a*m*(this.cos_p12*a-this.sin_p12*i*Math.cos(r)),t):(o=qe(this.es),n=$e(this.es),h=De(this.es),l=Ue(this.es),Math.abs(this.sin_p12-1)<=p?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g-f)*Math.sin(r),t.y=this.y0-(g-f)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=p?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g+f)*Math.sin(r),t.y=this.y0+(g+f)*Math.cos(r),t):Math.abs(e)2*P*this.a?void 0:(s=e/this.a,a=Math.sin(s),i=Math.cos(s),r=this.long0,Math.abs(e)<=p?o=this.lat0:(o=Dt(i*this.sin_p12+t.y*a*this.cos_p12/e),n=Math.abs(this.lat0)-P,Math.abs(n)<=p?this.lat0>=0?r=G(this.long0+Math.atan2(t.x,-t.y),this.over):r=G(this.long0-Math.atan2(-t.x,t.y),this.over):r=G(this.long0+Math.atan2(t.x*a,e*this.cos_p12*i-t.y*this.sin_p12*a),this.over)),t.x=r,t.y=o,t)):(h=qe(this.es),l=$e(this.es),g=De(this.es),f=Ue(this.es),Math.abs(this.sin_p12-1)<=p?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),m=u-e,o=ms(m/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,-1*t.y),this.over),t.x=r,t.y=o,t):Math.abs(this.sin_p12+1)<=p?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),m=e-u,o=ms(m/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,t.y),this.over),t.x=r,t.y=o,t):(w=Math.atan2(t.x,t.y),E=Math.sqrt(t.x*t.x+t.y*t.y),S=l0(this.lat0,this.long0,w,E,this.a,this.f),t.x=S.lon2,t.y=S.lat2,t))}var g0=["Azimuthal_Equidistant","aeqd"];const v0={init:u0,forward:c0,inverse:f0,names:g0};function d0(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function _0(t){var e,s,a,i,r,o,n,h,l=t.x,g=t.y;return a=G(l-(this.long0||0),this.over),e=Math.sin(g),s=Math.cos(g),i=Math.cos(a),o=this.sin_p14*e+this.cos_p14*s*i,r=1,(o>0||Math.abs(o)<=p)&&(n=this.a*r*s*Math.sin(a),h=(this.y0||0)+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function M0(t){var e,s,a,i,r,o,n,h,l;return t.x-=this.x0||0,t.y-=this.y0||0,e=Math.sqrt(t.x*t.x+t.y*t.y),s=Dt(e/this.a),a=Math.sin(s),i=Math.cos(s),h=this.long0||0,l=this.lat0||0,o=h,Math.abs(e)<=p?(n=l,t.x=o,t.y=n,t):(n=Dt(i*this.sin_p14+t.y*a*this.cos_p14/e),r=Math.abs(l)-P,Math.abs(r)<=p?(l>=0?o=G(h+Math.atan2(t.x,-t.y),this.over):o=G(h-Math.atan2(-t.x,t.y),this.over),t.x=o,t.y=n,t):(o=G(h+Math.atan2(t.x*a,e*this.cos_p14*i-t.y*this.sin_p14*a),this.over),t.x=o,t.y=n,t))}var m0=["ortho"];const y0={init:d0,forward:_0,inverse:M0,names:m0};var X={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},U={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function w0(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=P-D/2?this.face=X.TOP:this.lat0<=-(P-D/2)?this.face=X.BOTTOM:Math.abs(this.long0)<=D?this.face=X.FRONT:Math.abs(this.long0)<=P+D?this.face=this.long0>0?X.RIGHT:X.LEFT:this.face=X.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function E0(t){var e={x:0,y:0},s,a,i,r,o,n,h={value:0};if(t.x-=this.long0,this.es!==0?s=Math.atan(this.one_minus_f_squared*Math.tan(t.y)):s=t.y,a=t.x,this.face===X.TOP)r=P-s,a>=D&&a<=P+D?(h.value=U.AREA_0,i=a-P):a>P+D||a<=-(P+D)?(h.value=U.AREA_1,i=a>0?a-tt:a+tt):a>-(P+D)&&a<=-D?(h.value=U.AREA_2,i=a+P):(h.value=U.AREA_3,i=a);else if(this.face===X.BOTTOM)r=P+s,a>=D&&a<=P+D?(h.value=U.AREA_0,i=-a+P):a=-D?(h.value=U.AREA_1,i=-a):a<-D&&a>=-(P+D)?(h.value=U.AREA_2,i=-a-P):(h.value=U.AREA_3,i=a>0?-a+tt:-a-tt);else{var l,g,f,u,m,w,E;this.face===X.RIGHT?a=ue(a,+P):this.face===X.BACK?a=ue(a,+tt):this.face===X.LEFT&&(a=ue(a,-P)),u=Math.sin(s),m=Math.cos(s),w=Math.sin(a),E=Math.cos(a),l=m*E,g=m*w,f=u,this.face===X.FRONT?(r=Math.acos(l),i=os(r,f,g,h)):this.face===X.RIGHT?(r=Math.acos(g),i=os(r,f,-l,h)):this.face===X.BACK?(r=Math.acos(-l),i=os(r,f,-g,h)):this.face===X.LEFT?(r=Math.acos(-g),i=os(r,f,l,h)):(r=i=0,h.value=U.AREA_0)}return n=Math.atan(12/tt*(i+Math.acos(Math.sin(i)*Math.cos(D))-P)),o=Math.sqrt((1-Math.cos(r))/(Math.cos(n)*Math.cos(n))/(1-Math.cos(Math.atan(1/Math.cos(i))))),h.value===U.AREA_1?n+=P:h.value===U.AREA_2?n+=tt:h.value===U.AREA_3&&(n+=1.5*tt),e.x=o*Math.cos(n),e.y=o*Math.sin(n),e.x=e.x*this.a+this.x0,e.y=e.y*this.a+this.y0,t.x=e.x,t.y=e.y,t}function S0(t){var e={lam:0,phi:0},s,a,i,r,o,n,h,l,g,f={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,a=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),s=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?f.value=U.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(f.value=U.AREA_1,s-=P):t.x<0&&-t.x>=Math.abs(t.y)?(f.value=U.AREA_2,s=s<0?s+tt:s-tt):(f.value=U.AREA_3,s+=P),g=tt/12*Math.tan(s),o=Math.sin(g)/(Math.cos(g)-1/Math.sqrt(2)),n=Math.atan(o),i=Math.cos(s),r=Math.tan(a),h=1-i*i*r*r*(1-Math.cos(Math.atan(1/Math.cos(n)))),h<-1?h=-1:h>1&&(h=1),this.face===X.TOP)l=Math.acos(h),e.phi=P-l,f.value===U.AREA_0?e.lam=n+P:f.value===U.AREA_1?e.lam=n<0?n+tt:n-tt:f.value===U.AREA_2?e.lam=n-P:e.lam=n;else if(this.face===X.BOTTOM)l=Math.acos(h),e.phi=l-P,f.value===U.AREA_0?e.lam=-n+P:f.value===U.AREA_1?e.lam=-n:f.value===U.AREA_2?e.lam=-n-P:e.lam=n<0?-n-tt:-n+tt;else{var u,m,w;u=h,g=u*u,g>=1?w=0:w=Math.sqrt(1-g)*Math.sin(n),g+=w*w,g>=1?m=0:m=Math.sqrt(1-g),f.value===U.AREA_1?(g=m,m=-w,w=g):f.value===U.AREA_2?(m=-m,w=-w):f.value===U.AREA_3&&(g=m,m=w,w=-g),this.face===X.RIGHT?(g=u,u=-m,m=g):this.face===X.BACK?(u=-u,m=-m):this.face===X.LEFT&&(g=u,u=m,m=-g),e.phi=Math.acos(-w)-P,e.lam=Math.atan2(m,u),this.face===X.RIGHT?e.lam=ue(e.lam,-P):this.face===X.BACK?e.lam=ue(e.lam,-tt):this.face===X.LEFT&&(e.lam=ue(e.lam,+P))}if(this.es!==0){var E,S,b;E=e.phi<0?1:0,S=Math.tan(e.phi),b=this.b/Math.sqrt(S*S+this.one_minus_f_squared),e.phi=Math.atan(Math.sqrt(this.a*this.a-b*b)/(this.one_minus_f*b)),E&&(e.phi=-e.phi)}return e.lam+=this.long0,t.x=e.lam,t.y=e.phi,t}function os(t,e,s,a){var i;return tD&&i<=P+D?(a.value=U.AREA_1,i-=P):i>P+D||i<=-(P+D)?(a.value=U.AREA_2,i=i>=0?i-tt:i+tt):(a.value=U.AREA_3,i+=P)),i}function ue(t,e){var s=t+e;return s<-tt?s+=Re:s>+tt&&(s-=Re),s}var P0=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"];const x0={init:w0,forward:E0,inverse:S0,names:P0};var Ws=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Ge=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],vi=.8487,di=1.3523,_i=yt/5,p0=1/_i,he=18,ys=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))},b0=function(t,e){return t[1]+e*(2*t[2]+e*3*t[3])};function G0(t,e,s,a){for(var i=e;a;--a){var r=t(i);if(i-=r,Math.abs(r)=he&&(a=he-1),s=yt*(s-p0*a);var i={x:ys(Ws[a],s)*e,y:ys(Ge[a],s)};return t.y<0&&(i.y=-i.y),i.x=i.x*this.a*vi+this.x0,i.y=i.y*this.a*di+this.y0,i}function I0(t){var e={x:(t.x-this.x0)/(this.a*vi),y:Math.abs(t.y-this.y0)/(this.a*di)};if(e.y>=1)e.x/=Ws[he][0],e.y=t.y<0?-P:P;else{var s=Math.floor(e.y*he);for(s<0?s=0:s>=he&&(s=he-1);;)if(Ge[s][0]>e.y)--s;else if(Ge[s+1][0]<=e.y)++s;else break;var a=Ge[s],i=5*(e.y-a[0])/(Ge[s+1][0]-a[0]);i=G0(function(r){return(ys(a,r)-e.y)/b0(a,r)},i,p,100),e.x/=ys(Ws[s],i),e.y=(5*s+i)*Z,t.y<0&&(e.y=-e.y)}return e.x=G(e.x+this.long0,this.over),e}var C0=["Robinson","robin"];const L0={init:N0,forward:A0,inverse:I0,names:C0};function R0(){this.name="geocent"}function T0(t){var e=ti(t,this.es,this.a);return e}function O0(t){var e=ei(t,this.es,this.a,this.b);return e}var F0=["Geocentric","geocentric","geocent","Geocent"];const j0={init:R0,forward:T0,inverse:O0,names:F0};var ct={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},xe={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function k0(){if(Object.keys(xe).forEach(function(s){if(typeof this[s]=="undefined")this[s]=xe[s].def;else{if(xe[s].num&&isNaN(this[s]))throw new Error("Invalid parameter value, must be numeric "+s+" = "+this[s]);xe[s].num&&(this[s]=parseFloat(this[s]))}xe[s].degrees&&(this[s]=this[s]*Z)}.bind(this)),Math.abs(Math.abs(this.lat0)-P)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,e=this.azi;this.cg=Math.cos(e),this.sg=Math.sin(e),this.cw=Math.cos(t),this.sw=Math.sin(t)}function q0(t){t.x-=this.long0;var e=Math.sin(t.y),s=Math.cos(t.y),a=Math.cos(t.x),i,r;switch(this.mode){case ct.OBLIQ:r=this.sinph0*e+this.cosph0*s*a;break;case ct.EQUIT:r=s*a;break;case ct.S_POLE:r=-e;break;case ct.N_POLE:r=e;break}switch(r=this.pn1/(this.p-r),i=r*s*Math.sin(t.x),this.mode){case ct.OBLIQ:r*=this.cosph0*e-this.sinph0*s*a;break;case ct.EQUIT:r*=e;break;case ct.N_POLE:r*=-(s*a);break;case ct.S_POLE:r*=s*a;break}var o,n;return o=r*this.cg+i*this.sg,n=1/(o*this.sw*this.h1+this.cw),i=(i*this.cg-r*this.sg)*this.cw*n,r=o*n,t.x=i*this.a,t.y=r*this.a,t}function $0(t){t.x/=this.a,t.y/=this.a;var e={x:t.x,y:t.y},s,a,i;i=1/(this.pn1-t.y*this.sw),s=this.pn1*t.x*i,a=this.pn1*t.y*this.cw*i,t.x=s*this.cg+a*this.sg,t.y=a*this.cg-s*this.sg;var r=mt(t.x,t.y);if(Math.abs(r)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function z0(t){var e=t.x,s=t.y,a,i,r,o;if(e=e-this.long0,this.shape==="ellipse"){s=Math.atan(this.radius_p2*Math.tan(s));var n=this.radius_p/mt(this.radius_p*Math.cos(s),Math.sin(s));if(i=n*Math.cos(e)*Math.cos(s),r=n*Math.sin(e)*Math.cos(s),o=n*Math.sin(s),(this.radius_g-i)*i-r*r-o*o*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a)))}else this.shape==="sphere"&&(a=Math.cos(s),i=Math.cos(e)*a,r=Math.sin(e)*a,o=Math.sin(s),a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function W0(t){var e=-1,s=0,a=0,i,r,o,n;if(t.x=t.x/this.a,t.y=t.y/this.a,this.shape==="ellipse"){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*mt(1,a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*mt(1,s));var h=a/this.radius_p;if(i=s*s+h*h+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if(this.shape==="sphere"){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+s*s)),i=s*s+a*a+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e)}return t.x=t.x+this.long0,t}var V0=["Geostationary Satellite View","Geostationary_Satellite","geos"];const H0={init:B0,forward:z0,inverse:W0,names:V0};var Ae=1.340264,Ie=-.081106,Ce=893e-6,Le=.003796,ws=Math.sqrt(3)/2;function Q0(){this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.es!==0&&(this.apa=ui(this.es),this.qp=It(this.e,1),this.rqda=Math.sqrt(.5*this.qp))}function J0(t){var e=G(t.x-this.long0,this.over),s=t.y,a=Math.sin(s);this.es!==0&&(a=It(this.e,a)/this.qp);var i=Math.asin(ws*a),r=i*i,o=r*r*r;return t.x=e*Math.cos(i)/(ws*(Ae+3*Ie*r+o*(7*Ce+9*Le*r))),t.y=i*(Ae+Ie*r+o*(Ce+Le*r)),this.es!==0&&(t.x*=this.rqda,t.y*=this.rqda),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function X0(t){t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,this.es!==0&&(t.x/=this.rqda,t.y/=this.rqda);var e=1e-9,s=12,a=t.y,i,r,o,n,h,l;for(l=0;l=P?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=al,this.forward=sl)}function tl(t){var e=G(t.x-(this.long0||0),this.over),s=t.y,a,i,r;return a=this.am1+this.m1-ge(s,i=Math.sin(s),r=Math.cos(s),this.en),i=r*e/(a*Math.sqrt(1-this.es*i*i)),t.x=a*Math.sin(i),t.y=this.am1-a*Math.cos(i),t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function el(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a,i;if(s=mt(t.x,t.y=this.am1-t.y),i=Ks(this.am1+this.m1-s,this.es,this.en),(e=Math.abs(i))Fe?(t.x=i*Math.sin(a=e*Math.cos(s)/i),t.y=this.cphi1-i*Math.cos(a)):t.x=t.y=0,t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function al(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a=mt(t.x,t.y=this.cphi1-t.y);if(s=this.cphi1+this.phi1-a,Math.abs(s)>P)throw new Error;return Math.abs(Math.abs(s)-P)<=Fe?e=0:e=a*Math.atan2(t.x,t.y)/Math.cos(s),t.x=G(e+(this.long0||0),this.over),t.y=Ut(s),t}var il=["bonne","Bonne (Werner lat_1=90)"];const rl={init:Y0,names:il},ja={OBLIQUE:{forward:ul,inverse:fl},TRANSVERSE:{forward:cl,inverse:gl}},Es={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function nl(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=Xa.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);const t=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),e=xt(t);if(!e)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);e.long0=0,this.obliqueProjection=e;let s;const a=Object.keys(Es),i=n=>{if(typeof this[n]=="undefined")return;const h=parseFloat(this[n])*Z;if(isNaN(h))throw new Error("Invalid value for "+n+": "+this[n]);return h};for(let n=0;ntypeof this[u]!="undefined")){s=l;for(let u=0;up?(this.cphip=Math.cos(o),this.sphip=Math.sin(o),this.projectionType=ja.OBLIQUE):this.projectionType=ja.TRANSVERSE}function ol(t){return this.projectionType.forward(this,t)}function hl(t){return this.projectionType.inverse(this,t)}function ll(t,e){let s,a;if(e===Es.ROTATE){let i=t.oLongC,r=t.oLatC,o=t.oAlpha;if(Math.abs(Math.abs(r)-P)<=p)throw new Error("Invalid value for o_lat_c: "+t.o_lat_c+" should be < 90°");a=i+Math.atan2(-1*Math.cos(o),-1*Math.sin(o)*Math.sin(r)),s=Math.asin(Math.cos(r)*Math.sin(o))}else if(e===Es.NEW_POLE)a=t.oLongP,s=t.oLatP;else{let i=t.oLong1,r=t.oLat1,o=t.oLong2,n=t.oLat2,h=Math.abs(r);if(Math.abs(r)>P-p)throw new Error("Invalid value for o_lat_1: "+t.o_lat_1+" should be < 90°");if(Math.abs(n)>P-p)throw new Error("Invalid value for o_lat_2: "+t.o_lat_2+" should be < 90°");if(Math.abs(r-n)new DecompressionStream("deflate-raw"),e=s=>new Response(s);t(),Mi=s=>e(e(s).body.pipeThrough(t())).arrayBuffer().then(a=>new Uint8Array(a))}catch(t){}var Mi,ka=new TextDecoder,ks=t=>{throw Error("but-unzip~"+t)};function*Ml(t,e=Mi){let s=t.length-21,a=s-65536,i=new DataView(t.buffer,t.byteOffset),r=h=>i.getUint16(h+s,1),o=h=>i.getUint32(h+s,1),n=(h,l)=>t.subarray(s+=h,s+=l);for(;s>a&&(s=t.lastIndexOf(80,s-1))+1&&(t[s+1]-75||t[s+2]-5||t[s+3]-6););for(s<0&&ks(2),a=r(10),a-r(8)&&ks(3),s=o(16);a--;){let h=r(10),l=r(28),g=r(30),f=r(32),u=o(20),m=o(42),w=ka.decode(n(46,l)),E=ka.decode(n(g,f)),S=s,b;s=m,b=n(30+r(26)+r(28),u),yield{filename:w,comment:E,read:()=>h-8?h?ks(1):b:e(b)},s=S}}const ml=/.+\.(shp|dbf|json|prj|cpg)$/i,yl=t=>ot(void 0,null,function*(){const e={},s=[];for(const r of Ml(t))ml.test(r.filename)&&s.push(Promise.resolve(r.read()).then(o=>e[r.filename]=o));yield Promise.all(s);const a={},i=new TextDecoder;for(const[r,o]of Object.entries(e))r.slice(-3).toLowerCase()==="shp"||r.slice(-3).toLowerCase()==="dbf"?a[r]=new DataView(o.buffer,o.byteOffset,o.byteLength):a[r]=i.decode(o);return a}),wl=globalThis.URL,El=(t,e)=>{if(!e)return t;const s=new wl(t);return s.pathname=`${s.pathname}.${e}`,s.href};function je(t,e){return ot(this,null,function*(){const s=El(t,e),a=e==="prj"||e==="cpg";try{const i=yield fetch(s);if(i.status>399)throw new Error(i.statusText);if(a)return i.text();const r=yield i.arrayBuffer();return new DataView(r)}catch(i){if(a||e==="dbf")return!1;throw i}})}function Sl(t){let e=0,s=1;const a=t.length;let i,r;const o=[t[0][0],t[0][1],t[0][0],t[0][1]];for(;so[2]&&(o[2]=r[0]),r[1]>o[3]&&(o[3]=r[1]);return{ring:t,clockWise:e>0,bbox:o,children:[]}}function qa(t,e){return!(t.bbox[0]>e.bbox[0]||t.bbox[1]>e.bbox[1]||t.bbox[2]l.toReversed())));return n}}const r=[];for(const o of s)r.push([o.ring].concat(o.children));return r}et.prototype.parsePoint=function(t){return{type:"Point",coordinates:this.parseCoord(t,0)}};et.prototype.parseZPoint=function(t){const e=this.parsePoint(t);return e.coordinates.push(t.getFloat64(16,!0)),e};et.prototype.parsePointArray=function(t,e,s){const a=[];let i=0;for(;i20&&(e-=20),!(e in $a))throw new Error(`I don't know shp type "${e}"`);this.parseFunc=this[$a[e]],this.parseCoord=Pl(t)};et.prototype.getShpCode=function(){return this.parseHeader().shpCode};et.prototype.parseHeader=function(){const t=this.buffer;return{length:t.getInt32(24)<<1,version:t.getInt32(28,!0),shpCode:t.getInt32(32,!0),bbox:[t.getFloat64(36,!0),t.getFloat64(44,!0),t.getFloat64(52,!0),t.getFloat64(60,!0)]}};et.prototype.getRows=function(){let t=100;const e=this.buffer.byteLength-8,s=[];let a;for(;t<=e&&(a=this.getRow(t),!!a);)t+=8,t+=a.len,a.type?s.push(this.parseFunc(a.data)):s.push(null);return s};et.prototype.getRow=function(t){const e=this.buffer.getInt32(t),s=this.buffer.getInt32(t+4)<<1;if(s===0)return{id:e,len:s,type:0};if(!(t+s+8>this.buffer.byteLength))return{id:e,len:s,data:new DataView(this.buffer.buffer,this.buffer.byteOffset+t+12,s-4),type:this.buffer.getInt32(t+8,!0)}};function aa(t,e){return new et(t,e).rows}var xl=/^(?:ANSI\s)?(\d+)$/m;function yi(t,e){if(!t)return a;try{new TextDecoder(t.trim())}catch(i){var s=xl.exec(t);return s&&!e?yi("windows-"+s[1],!0):(t=void 0,a)}return a;function a(i){var r=new TextDecoder(t||void 0),o=r.decode(i,{stream:!0})+r.decode();return o.replace(/\0/g,"").trim()}}function pl(t){var e={};return e.lastUpdated=new Date(t.getUint8(1)+1900,t.getUint8(2),t.getUint8(3)),e.records=t.getUint32(4,!0),e.headerLen=t.getUint16(8,!0),e.recLen=t.getUint16(10,!0),e}function bl(t,e,s){for(var a=[],i=32;i{if(!t)throw new Error("forgot to pass buffer");if(fe(t))return new Uint8Array(t);if(fe(t.buffer))return t.BYTES_PER_ELEMENT===1?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")},Cl=new TextDecoder,wi=t=>{if(t){if(typeof t=="string")return t;if(fe(t)||ArrayBuffer.isView(t)||ra(t))return Cl.decode(t)}},Ei=t=>{if(!t)throw new Error("forgot to pass buffer");if(ra(t))return t;if(fe(t))return new DataView(t);if(fe(t.buffer))return new DataView(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")};function fe(t){return t instanceof globalThis.ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]"}function ra(t){return t instanceof globalThis.DataView||Object.prototype.toString.call(t)==="[object DataView]"}const na=function([t,e]){const s={};s.type="FeatureCollection",s.features=[];let a=0;const i=t.length;for(e||(e=[]);a-1?i.push(s.slice(0,-3)+s.slice(-3).toLowerCase()):(s.slice(-4).toLowerCase()===".dbf"||s.slice(-4).toLowerCase()===".cpg")&&(a[s.slice(0,-3)+s.slice(-3).toLowerCase()]=a[s]));if(!i.length)throw new Error("no layers founds");const r=i.map(function(o){let n,h;const l=o.lastIndexOf(".");return l>-1&&o.slice(l).indexOf("json")>-1?(n=JSON.parse(a[o]),n.fileName=o.slice(0,l)):e.indexOf(o.slice(l+1))>-1?(n=a[o],n.fileName=o):(a[o+".dbf"]&&(h=ia(a[o+".dbf"],a[o+".cpg"])),n=na([aa(a[o+".shp"],a[o+".prj"]),h]),n.fileName=o),n});return r.length===1?r[0]:r})};function Ll(t,e){return ot(this,null,function*(){const s=yield je(t);return Si(s,e)})}const Rl=t=>ot(void 0,null,function*(){const e=yield Promise.all([je(t,"shp"),je(t,"prj")]);let s=!1;try{e[1]&&(s=Ps(e[1]))}catch(a){s=!1}return aa(e[0],s)}),Tl=t=>ot(void 0,null,function*(){const[e,s]=yield Promise.all([je(t,"dbf"),je(t,"cpg")]);if(e)return ia(e,s)}),Da=(t,e)=>{var a;return new Al(t,(a=globalThis==null?void 0:globalThis.document)==null?void 0:a.location).pathname.slice(-4).toLowerCase()===e},Ol=({shp:t,dbf:e,cpg:s,prj:a})=>{const i=[jl(t,a)];return e&&i.push(kl(e,s)),na(i)},Fl=function(t,e){return ot(this,null,function*(){if(typeof t!="string"){if(fe(t)||ArrayBuffer.isView(t)||ra(t))return Si(t);if(t.shp)return Ol(t);throw new TypeError("must be a string, some sort of Buffer, or an object with at least a .shp property")}if(Da(t,".zip"))return Ll(t,e);Da(t,".shp")&&(t=t.slice(0,-4));const s=yield Promise.all([Rl(t),Tl(t)]);return na(s)})},jl=function(t,e){if(t=Ei(t),e=wi(e),typeof e=="string")try{e=Ps(e)}catch(s){e=!1}return aa(t,e)},kl=function(t,e){return t=Ei(t),e=wi(e),ia(t,e)};const ql={class:"engineering-analysis-panel"},$l={class:"analysis-card-head"},Dl={key:0},Ul=["disabled"],Bl=["disabled"],zl={key:1,class:"analysis-drawing-stage"},Wl={class:"analysis-point-count"},Vl=["disabled"],Hl=["disabled"],Ql={key:2,class:"analysis-boundary-bar"},Jl={class:"analysis-card-head"},Xl={key:0,class:"analysis-running"},Kl={class:"analysis-conclusion-head"},Zl={class:"analysis-conclusion-tags"},Yl={key:2,class:"analysis-empty is-success"},t1={key:3,class:"analysis-project-list"},e1=["onPointerup"],s1={class:"analysis-project-name"},a1={class:"analysis-project-meta"},i1={__name:"EngineeringAnalysisPanel",props:{drawingPointCount:{type:Number,default:0}},emits:["drawing-change","finish-drawing","undo-point","clear-boundary","analysis-result","focus-project"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(!1),o=Q(null),n=Q([]),h=Q([]),l=Q(""),g=Q("idle"),f=Q([]),u=Q("idle"),m=Q("");let w=null,E=0;const S=z(()=>{var x;const v=h.value.length,d=n.value.length,_=n.value.reduce((C,k)=>C+Number(k.overlapAreaWanMu||0),0);return{boundaryAreaWanMu:Yt((x=o.value)==null?void 0:x.geometry),featureCount:v,projectCount:d,overlapAreaWanMu:_}}),b=z(()=>l.value?l.value:I.value?"自动分析中":g.value==="loading"?"项目库加载中":g.value==="error"?"项目库加载失败":""),A=z(()=>o.value?I.value?"正在分析":u.value==="error"?"分析异常":n.value.length?"已发现建设记录":"未发现建设记录":"未分析"),I=z(()=>u.value==="running"),R=z(()=>!!o.value&&u.value==="done"),j=z(()=>I.value?"正在自动分析":u.value==="error"?"分析失败":n.value.length?`命中 ${n.value.length} 项`:A.value),O=z(()=>r.value&&a.drawingPointCount>=3),F=z(()=>{if(!o.value)return{levelClass:"",verdict:"",summary:"",tags:[],advice:""};if(!n.value.length)return{levelClass:"is-clear",verdict:"未发现建设记录",summary:"该边界范围暂未与项目库中的已建设工程形成空间叠加。",tags:[`分析范围 ${Ke(S.value.boundaryAreaWanMu)} 万亩`,"项目库未命中"],advice:"可进入新增工程选址论证,仍需结合保护红线、审批台账和现场踏勘复核。"};const v=Ze(n.value),d=ee(n.value),_=[...n.value].sort((k,V)=>Number(V.overlapAreaWanMu||0)-Number(k.overlapAreaWanMu||0))[0],x=Vt(S.value.overlapAreaWanMu),C=n.value.length>=6||S.value.overlapAreaWanMu>=1?"存在建设叠加":"存在局部叠加";return{levelClass:n.value.length>=6?"is-heavy":"is-hit",verdict:C,summary:`该边界命中 ${n.value.length} 个历史项目,叠加约 ${x} 亩,项目类型以${v.name}为主,年份集中在 ${d}。`,tags:[`主类型 ${v.name}`,`年份 ${d}`,`最大叠加 ${Vt(_==null?void 0:_.overlapAreaWanMu)} 亩`],advice:`重点复核“${Ye(_==null?void 0:_.projectName)}”(${(_==null?void 0:_.year)||"未知"},${(_==null?void 0:_.category)||"未知类型"})与拟建范围的重合边界。`}});Ua(()=>{_e().catch(()=>{})});function K(v){return ot(this,null,function*(){var _;const d=(_=v.target.files)==null?void 0:_[0];if(v.target.value="",!!d){l.value="";try{const x=yield W(d);r.value&&(r.value=!1,i("drawing-change",!1)),i("clear-boundary"),yield Bt(x)}catch(x){l.value="边界文件解析失败"}}})}function W(v){return ot(this,null,function*(){const d=String(v.name||"").toLowerCase();if(d.endsWith(".json")||d.endsWith(".geojson"))return dt(JSON.parse(yield v.text()));if(d.endsWith(".zip")){const _=yield Fl(yield v.arrayBuffer());return dt(_)}throw new Error("unsupported file")})}function dt(v){const d=zt(v).filter(_=>Ve(_==null?void 0:_.geometry));if(d.length)return jt(d);throw new Error("no polygon")}function lt(){r.value||(E+=1,l.value="",u.value="idle",m.value="",r.value=!0,o.value=null,n.value=[],h.value=[],i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}),i("drawing-change",!0))}function B(){r.value&&(E+=1,r.value=!1,u.value="idle",m.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}))}function _t(){O.value&&i("finish-drawing")}function ve(){i("undo-point")}function xs(){E+=1,r.value=!1,o.value=null,n.value=[],h.value=[],l.value="",u.value="idle",m.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value})}function Lt(v){v!=null&&v.geometry&&(r.value=!1,Bt(v))}function Bt(v){return ot(this,null,function*(){const d=++E;o.value=v,h.value=[],n.value=[],m.value="",l.value="",u.value="running";let _=[];i("analysis-result",{boundary:v,matches:[],rows:[],summary:S.value});try{const x=yield _e();if(d!==E)return;_=Be(v,x),h.value=_,n.value=ps(_),u.value="done"}catch(x){if(d!==E)return;l.value="项目库加载失败",u.value="error"}d===E&&i("analysis-result",{boundary:v,matches:_,rows:n.value,summary:S.value})})}function de(v){m.value=(v==null?void 0:v.key)||"",i("focus-project",kt(Tt({},v),{boundary:o.value}))}function _e(){return ot(this,null,function*(){return f.value.length?f.value:w||(g.value="loading",w=fetch(Me("datas/ecological-protection/ecological_restoration_projects.geojson"),{credentials:"include"}).then(d=>{if(!d.ok)throw new Error(`HTTP ${d.status}`);return d.json()}).then(d=>{const _=zt(d).filter(x=>{var C;return(C=x==null?void 0:x.geometry)==null?void 0:C.coordinates}).map((x,C)=>kt(Tt({},x),{properties:kt(Tt({},x.properties||{}),{source_index:C})}));return f.value=_,g.value="success",_}).catch(d=>{throw g.value="error",w=null,d}),w)})}function Me(v){return v?/^https?:\/\//.test(v)||v.startsWith("/")?v:`./${v}`:""}function zt(v){return v?Array.isArray(v)?v.flatMap(d=>zt(d)):v.type==="FeatureCollection"?(v.features||[]).filter(Boolean):v.type==="Feature"?v.geometry?[v]:[]:He(v)?[{type:"Feature",properties:{},geometry:v}]:typeof v=="object"?Object.values(v).flatMap(d=>zt(d)):[]:[]}function jt(v){const d=v.flatMap(_=>_.geometry.type==="Polygon"?[_.geometry.coordinates]:_.geometry.coordinates);return d.length===1?{type:"Feature",properties:v[0].properties||{},geometry:{type:"Polygon",coordinates:d[0]}}:{type:"Feature",properties:{sourceFeatureCount:v.length},geometry:{type:"MultiPolygon",coordinates:d}}}function Be(v,d=f.value){const _=Zt(v.geometry);return d.filter(x=>bs(x.geometry,v.geometry,_)).map(x=>({feature:x,properties:x.properties||{},overlapAreaWanMu:Gs(x,v.geometry)}))}function ps(v){const d=new Map;return v.forEach(_=>{const x=_.properties||{},C=x.project_name||x.projectName||"未命名项目",k=d.get(C)||{key:C,projectName:C,category:x.project_category||"未知类型",year:x.year||"未知",featureCount:0,overlapAreaWanMu:0,features:[],sourceIndex:Number(x.source_index||0)};k.featureCount+=1,k.overlapAreaWanMu+=Number(_.overlapAreaWanMu||0),k.features.push(_.feature),d.set(C,k)}),[...d.values()].map(_=>kt(Tt({},_),{overlapAreaWanMu:Number(_.overlapAreaWanMu.toFixed(4))}))}function bs(v,d,_){if(!we(Zt(v),_))return!1;const x=Wt(d);return x.length?Ve(v)?ze(v,x):(v==null?void 0:v.type)==="Point"?Rt(v.coordinates,x):(v==null?void 0:v.type)==="MultiPoint"?v.coordinates.some(C=>Rt(C,x)):(v==null?void 0:v.type)==="LineString"?me(v.coordinates,x):(v==null?void 0:v.type)==="MultiLineString"?v.coordinates.some(C=>me(C,x)):!1:!1}function ze(v,d){const _=Wt(v);return _.length?_.some(x=>x.some(C=>Rt(C,d)))||d.some(x=>x.some(C=>Rt(C,_)))||_.some(x=>d.some(C=>ye(x,C))):!1}function me(v=[],d){return!Array.isArray(v)||!v.length?!1:v.some(_=>Rt(_,d))?!0:d.some(_=>We(v,_))}function We(v,d){for(let _=1;_at+nt.filter(pt=>Rt(pt,C)).length,0),it=x.reduce((at,nt)=>at+nt.length,0);return st?Number((k*Math.max(.08,Math.min(1,st/Math.max(it,1)))).toFixed(4)):C.reduce((at,nt)=>at+nt.filter(pt=>Rt(pt,x)).length,0)?Number(Math.min(k,V).toFixed(4)):x.some(at=>C.some(nt=>ye(at,nt)))?Number((Math.min(k,V)*.12).toFixed(4)):0}function Wt(v){var d;return(v==null?void 0:v.type)==="Polygon"?[((d=v.coordinates)==null?void 0:d[0])||[]]:(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.map(_=>(_==null?void 0:_[0])||[]).filter(_=>_.length):[]}function Ve(v){return(v==null?void 0:v.type)==="Polygon"||(v==null?void 0:v.type)==="MultiPolygon"}function He(v){return["Polygon","MultiPolygon","LineString","MultiLineString","Point","MultiPoint"].includes(v==null?void 0:v.type)}function Rt(v,d){return d.some(_=>Ns(v,_))}function Ns(v,d){var k,V,st,it;let _=!1;const x=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]);for(let rt=0,at=d.length-1;rtC!=Ee>C&&x<(ts-nt)*(C-pt)/(Ee-pt)+nt&&(_=!_)}return _}function ye(v,d){for(let _=1;_(Number(at[0])-Number(rt[0]))*(Number(nt[1])-Number(rt[1]))-(Number(at[1])-Number(rt[1]))*(Number(nt[0])-Number(rt[0])),k=C(v,d,_),V=C(v,d,x),st=C(_,x,v),it=C(_,x,d);return k===0&&Kt(_,v,d)||V===0&&Kt(x,v,d)||st===0&&Kt(v,_,x)||it===0&&Kt(d,_,x)?!0:(k>0&&V<0||k<0&&V>0)&&(st>0&&it<0||st<0&&it>0)}function As(v,d,_,x){const C=te([v,d]),k=te([_,x]);return we(C,k)}function Kt(v,d,_){const x=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]),k=Number(d==null?void 0:d[0]),V=Number(d==null?void 0:d[1]),st=Number(_==null?void 0:_[0]),it=Number(_==null?void 0:_[1]),rt=(x-k)*(it-V)-(C-V)*(st-k);return Math.abs(rt)>1e-10?!1:x>=Math.min(k,st)-1e-10&&x<=Math.max(k,st)+1e-10&&C>=Math.min(V,it)-1e-10&&C<=Math.max(V,it)+1e-10}function Zt(v){const d=[];return Xe(v==null?void 0:v.coordinates,d),d.length?d.reduce((_,x)=>({minLng:Math.min(_.minLng,Number(x[0])),minLat:Math.min(_.minLat,Number(x[1])),maxLng:Math.max(_.maxLng,Number(x[0])),maxLat:Math.max(_.maxLat,Number(x[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}function we(v,d){return!v||!d?!1:!(v.maxLngd.maxLng||v.maxLatd.maxLat)}function Is(v){return Yt(v==null?void 0:v.geometry)}function Yt(v){return(v==null?void 0:v.type)==="Polygon"?Je(v.coordinates):(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.reduce((d,_)=>d+Je(_),0):0}function Je(v=[]){const d=v[0]||[];if(d.length<3)return 0;const _=d.reduce((V,st)=>V+Number(st[1]||0),0)/d.length,x=111320*Math.cos(_*Math.PI/180),C=110540;let k=0;for(let V=0;VXe(_,d))}}function te(v){return v.reduce((d,_)=>({minLng:Math.min(d.minLng,Number(_==null?void 0:_[0])),minLat:Math.min(d.minLat,Number(_==null?void 0:_[1])),maxLng:Math.max(d.maxLng,Number(_==null?void 0:_[0])),maxLat:Math.max(d.maxLat,Number(_==null?void 0:_[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY})}function Ke(v){const d=Number(v||0);return Number.isFinite(d)?Number(d.toFixed(d>=10?2:4)).toString():"0"}function Vt(v){const d=Number(v||0)*1e4;return Number.isFinite(d)?d>=1e3?Number(d.toFixed(0)).toLocaleString("zh-CN"):d>=10?Number(d.toFixed(1)).toLocaleString("zh-CN"):Number(d.toFixed(2)).toString():"0"}function Ze(v=[]){const d=new Map;return v.forEach(_=>{const x=_.category||"未知类型",C=d.get(x)||{name:x,count:0,area:0};C.count+=1,C.area+=Number(_.overlapAreaWanMu||0),d.set(x,C)}),[...d.values()].sort((_,x)=>x.area-_.area||x.count-_.count)[0]||{name:"未知类型",count:0,area:0}}function ee(v=[]){const d=v.map(C=>Number(C.year)).filter(C=>Number.isFinite(C));if(!d.length)return"未知年份";const _=Math.min(...d),x=Math.max(...d);return _===x?`${_} 年`:`${_}-${x} 年`}function Ye(v,d=18){const _=String(v||"未命名项目");return _.length>d?`${_.slice(0,d)}...`:_}return e({applyDrawnBoundary:Lt}),(v,d)=>(J(),Y("div",ql,[L("div",{class:Ot(["analysis-card analysis-workbench",{"is-running":I.value,"is-complete":R.value}])},[L("div",$l,[d[0]||(d[0]=L("span",null,"生态工程分析",-1)),b.value?(J(),Y("strong",Dl,ut(b.value),1)):At("",!0)]),r.value?At("",!0):(J(),Y("div",{key:0,class:Ot(["analysis-operation",{"has-boundary":o.value}])},[L("label",{class:Ot(["analysis-entry is-upload",{"is-disabled":r.value||I.value}])},[L("input",{type:"file",accept:".zip,.json,.geojson",disabled:r.value||I.value,onChange:K},null,40,Ul),L("span",null,ut(o.value?"更换边界":"上传边界"),1),d[1]||(d[1]=L("strong",null,"SHP / GeoJSON",-1))],2),L("button",{type:"button",class:"analysis-entry is-draw",disabled:r.value||I.value,onPointerup:se(lt,["stop","prevent"])},[L("span",null,ut(o.value?"重新绘制":"在线绘制"),1),d[2]||(d[2]=L("strong",null,"地图圈定",-1))],40,Bl)],2)),r.value?(J(),Y("div",zl,[L("div",Wl,[d[3]||(d[3]=L("span",null,"已落点",-1)),L("strong",null,ut(t.drawingPointCount),1),d[4]||(d[4]=L("em",null,"点",-1)),d[5]||(d[5]=L("small",null,"至少 3 点",-1))]),L("button",{type:"button",class:"analysis-control is-primary",disabled:!O.value||I.value,onPointerup:se(_t,["stop","prevent"])}," 完成绘制 ",40,Vl),L("button",{type:"button",class:"analysis-control",disabled:!t.drawingPointCount,onPointerup:se(ve,["stop","prevent"])},"撤销",40,Hl),L("button",{type:"button",class:"analysis-control is-danger",onPointerup:se(B,["stop","prevent"])},"删除图形",32)])):o.value?(J(),Y("div",Ql,[d[6]||(d[6]=L("span",null,"边界已加载",-1)),L("strong",null,ut(j.value),1),L("button",{type:"button",onPointerup:se(xs,["stop","prevent"])},"删除图形",32)])):At("",!0)],2),o.value?(J(),Y("div",{key:0,class:Ot(["analysis-card analysis-result",{"is-running":I.value,"is-empty":R.value&&!n.value.length}])},[L("div",Jl,[d[7]||(d[7]=L("span",null,"建设记录核查",-1)),L("strong",null,ut(A.value),1)]),I.value?(J(),Y("div",Xl,[...d[8]||(d[8]=[L("div",{class:"analysis-running-orbit","aria-hidden":"true"},null,-1),L("div",null,[L("strong",null,"空间叠加分析中"),L("span",null,"正在核对边界与建设项目库")],-1)])])):(J(),Y("div",{key:1,class:Ot(["analysis-conclusion",F.value.levelClass])},[L("div",Kl,[d[9]||(d[9]=L("span",null,"分析结论",-1)),L("strong",null,ut(F.value.verdict),1)]),L("p",null,ut(F.value.summary),1),L("div",Zl,[(J(!0),Y(fs,null,gs(F.value.tags,_=>(J(),Y("span",{key:_},ut(_),1))),128))]),L("small",null,ut(F.value.advice),1)],2)),R.value&&!n.value.length?(J(),Y("div",Yl,"该边界范围内暂未匹配到已建设项目")):R.value?(J(),Y("div",t1,[(J(!0),Y(fs,null,gs(n.value,_=>(J(),Y("button",{key:_.key,type:"button",class:Ot(["analysis-project-row",{"is-active":_.key===m.value}]),onPointerup:se(x=>de(_),["stop","prevent"])},[L("span",s1,ut(_.projectName),1),L("div",a1,[L("strong",null,ut(_.year),1),L("em",null,ut(_.category),1),L("small",null,"叠加 "+ut(Vt(_.overlapAreaWanMu))+" 亩",1)]),L("b",null,ut(_.featureCount)+" 个要素",1)],42,e1))),128))])):At("",!0)],2)):At("",!0)]))}},r1=Ji(i1,[["__scopeId","data-v-96bdd213"]]);const n1={class:"forest-grass-wet ecological-protection"},o1={class:"forest-grass-wet-ui ecological-protection-ui"},h1={key:0,class:"fgw-left"},l1={class:"fgw-side-stack is-left"},u1={key:1,class:"fgw-right"},c1={class:"fgw-side-stack is-right"},f1={class:"fgw-bottom-topic ecological-bottom-topic"},g1={key:0,class:"loading"},v1={class:"loading-progress"},d1={class:"value"},L1={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(null),o=Q(null),n=Q(""),h=Q(""),l=Q(is({},"ecological-redline")),g=Q(null),f=Q(!1),u=Q(!1),m=Q(null),w=Q(0),E=Q(a.showLoading),S=Q(null),b=Q(0),A=Q({type:"idle",text:"等待生态保护图层加载"});let I=null,R=!1,j=!1,O=!1,F=null,K=0,W=0;const dt=new Map,lt=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),B=z(()=>Pe.some(c=>c.key===a.activeView)?a.activeView:"ecological-redline"),_t=z(()=>B.value==="engineering-analysis"),ve=z(()=>["restoration","engineering-analysis"].includes(B.value)),xs=z(()=>Ls.includes(B.value)),Lt=z(()=>n.value?Oi(B.value,n.value):null),Bt=z(()=>{var c;return(((c=Lt.value)==null?void 0:c.legends)||[]).find(M=>M.key===h.value)||null}),de=z(()=>{var c;return((c=Lt.value)==null?void 0:c.legends)||[]}),_e=z(()=>ga(B.value)),Me=z(()=>!_t.value&&_e.value.length<=2&&de.value.length<=6),zt=z(()=>{if(!Me.value)return 430;const c=Math.max(1,_e.value.length),y=30+Math.max(1,de.value.length)*28;return Math.max(220,Math.min(360,96+c*32+y))}),jt=z(()=>{const c=Lt.value;return c?Bt.value?kt(Tt({},c),{cqlFilter:Bt.value.cqlFilter||c.cqlFilter,activeLegend:Bt.value,name:Bt.value.name||c.name}):c:null}),Be=z(()=>xs.value?l.value:B.value==="restoration"?Zi:B.value==="engineering-analysis"?Yi:tr),ps=z(()=>Be.value.left||[]),bs=z(()=>Be.value.right||[]),ze=Q(typeof window=="undefined"?1080:window.innerHeight),me=Ui.sideCardWidth,We=z(()=>Bi(ze.value)),Gs=z(()=>zi(We.value,2)),Wt=z(()=>!!m.value),Ve=qi,He=z(()=>ki({point:m.value?Xe(m.value):null,rowCount:g.value?ee(g.value):0,loading:u.value,empty:f.value||!g.value})),Rt=z(()=>He.value.height),Ns=z(()=>He.value.style);Ua(()=>{te(),window.addEventListener("resize",te),document.addEventListener("pointerdown",ha,!0),Kt(),ye(B.value)}),Xi(()=>{R=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",te),document.removeEventListener("pointerdown",ha,!0)}),es(B,c=>{ye(c)}),es(n,()=>{h.value="",ft()}),es(h,()=>{ft()}),es(()=>a.active,c=>{var M,y,N,T;r.value&&(c?(Zt(),(y=(M=r.value).resume)==null||y.call(M)):(T=(N=r.value).pause)==null||T.call(N))});function ye(c){var N,T,q,$,H;const M=Pe.find(gt=>gt.key===c)||Pe[0],y=ga(c);h.value="",n.value=M.defaultLayerKey||((N=y[0])==null?void 0:N.key)||"",S.value=er(c),b.value=0,(q=(T=r.value)==null?void 0:T.setBoundaryDrawing)==null||q.call(T,!1),c!=="engineering-analysis"&&((H=($=r.value)==null?void 0:$.clearAnalysisBoundary)==null||H.call($)),ft(),Ls.includes(c)&&(l.value=is({},c),As(c)),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Ls.includes(c)?Rs({},c):sr(c)})}function Qe(c){const M=Pe.some(y=>y.key===c)?c:"ecological-redline";M!==B.value&&i("view-change",M)}function As(c){return ot(this,null,function*(){const M=++K;try{const N=dt.get(c)||(yield ir(c));if(M!==K||B.value!==c)return;dt.set(c,N),l.value=is(N,c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Rs(N,c)})}catch(y){if(M!==K||B.value!==c)return;l.value=is({},c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Rs({},c)}),A.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",y)}})}function Kt(){var y;I=new Di;const c={progress:0};I.instance.on("onProgress",(N,T,q)=>{const $=Math.floor(T/q*100);ca.to(c,{progress:$,onUpdate:()=>{w.value=Math.floor(c.progress)}})});const M=()=>{R||j||(j=!0,Zt())};I.instance.on("onLoad",M),(y=I.ready)==null||y.then(M).catch(()=>{R||(A.value={type:"error",text:"地图资源加载失败"})})}function Zt(){R||!a.active||!j||O||(O=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,we()},600))}function we(c=0){return ot(this,null,function*(){var y,N,T,q,$;if(R)return;if(!a.active){O=!1;return}if(yield ss(),!a.active){O=!1;return}if(!!((N=(y=r.value)==null?void 0:y.loadMap)!=null&&N.call(y,I)||(q=(T=r.value)==null?void 0:T.hasMap)!=null&&q.call(T))){yield Ai(),yield ss(),($=r.value)==null||$.play();return}if(c<24){window.setTimeout(()=>we(c+1),120);return}O=!1})}function Is(){F&&(window.clearTimeout(F),F=null)}function Yt(){var c,M,y,N;(M=(c=r.value)==null?void 0:c.resume)==null||M.call(c),(N=(y=r.value)==null?void 0:y.refreshView)==null||N.call(y)}function Je(){var c,M,y,N,T,q;if(ft(),(M=(c=r.value)==null?void 0:c.setBoundaryDrawing)==null||M.call(c,!1),(N=(y=r.value)==null?void 0:y.clearAnalysisBoundary)==null||N.call(y),(q=(T=r.value)==null?void 0:T.hasMap)!=null&&q.call(T)){Yt();return}Is(),O=!1,ss(()=>{Zt()})}e({refreshMapView:Yt,resetMap:Je});function Xe(c){const M=document.querySelector(".ecological-protection"),y=M==null?void 0:M.getBoundingClientRect();return!(y!=null&&y.width)||!(y!=null&&y.height)?c:{x:(c.x-y.left)/y.width*1920,y:(c.y-y.top)/y.height*1080}}function te(){ze.value=typeof window=="undefined"?1080:window.innerHeight}function Ke(c,M){return`${B.value}-${M}-${(c==null?void 0:c.key)||(c==null?void 0:c.title)||"panel"}`}function Vt(c){return(c==null?void 0:c.span)===2}function Ze(c){return Vt(c)?Gs.value:We.value}function ee(c){const M=(c==null?void 0:c.properties)||{};return Object.keys(M).filter(y=>Ye(y,M[y])).length}function Ye(c,M){return M==null||M===""||Array.isArray(M)||typeof M=="object"?!1:!lt.has(String(c||"").toLowerCase())}function v(c={}){const M=d(c.lng),y=d(c.lat);return M===""||y===""?"":`POINT(${M} ${y})`}function d(c){const M=Number(c);return Number.isFinite(M)?M.toFixed(8).replace(/\.?0+$/,""):""}function _(){return ot(this,arguments,function*(c={}){var q,$,H,gt,Et,bt;if(!ve.value)return;if(x(c.overlayLayer||jt.value||Lt.value)){ft();return}const M=Number((q=c==null?void 0:c.lngLat)==null?void 0:q.lng),y=Number(($=c==null?void 0:c.lngLat)==null?void 0:$.lat);if(!Number.isFinite(M)||!Number.isFinite(y)){ft();return}const N=++W,T=c.screen||{x:960,y:540};m.value=null,g.value=null,f.value=!1,u.value=!0;try{const Nt=yield $i(v({lng:M,lat:y}));if(N!==W||R)return;const Se=C(Nt,c);if(!Se||ee(Se)<=0){ft();return}g.value=Se,m.value=((gt=(H=r.value)==null?void 0:H.getVectorFeatureAnchorScreen)==null?void 0:gt.call(H,Se))||T,f.value=!1,(bt=(Et=r.value)==null?void 0:Et.highlightFeature)==null||bt.call(Et,Se,{highlightTone:"v21"})}catch(Nt){if(N!==W)return;ft()}finally{N===W&&(u.value=!1)}})}function x(c=jt.value){const M=String((c==null?void 0:c.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(M)||String((c==null?void 0:c.dataPath)||"").includes("ecological_restoration_projects")}function C(c,M={}){var q,$,H;const y=V((c==null?void 0:c.project)||((q=c==null?void 0:c.data)==null?void 0:q.project)||(c==null?void 0:c.data)||c);if(!st(y))return null;const N=rt(y,c),T=y.geom||y.geometry||y.wkt||null;return{id:y.id||N.id||N.project_name||`project-${($=M==null?void 0:M.lngLat)==null?void 0:$.lng}-${(H=M==null?void 0:M.lngLat)==null?void 0:H.lat}`,properties:N,feature:{type:"Feature",properties:N,geometry:T},geometry:T,layer:M.overlayLayer||jt.value||Lt.value,lngLat:M.lngLat}}function k(c,M={}){var gt,Et,bt;const y=c!=null&&c.feature&&c.feature.type==="Feature"?kt(Tt({},c.feature),{id:c.id||c.feature.id,layer:c.layer,lngLat:c.lngLat}):c,N=(y==null?void 0:y.type)==="Feature"?y:((gt=y==null?void 0:y.feature)==null?void 0:gt.type)==="Feature"?y.feature:null,T=(y==null?void 0:y.properties)||(N==null?void 0:N.properties)||{},q=(y==null?void 0:y.geometry)||(N==null?void 0:N.geometry)||T.geometry||T.geom||T.wkt||null,$=rt(T,M),H=(y==null?void 0:y.id)||(N==null?void 0:N.id)||$.id||$.gid||$.project_id||$.project_name||`project-${((Et=M==null?void 0:M.lngLat)==null?void 0:Et.lng)||""}-${((bt=M==null?void 0:M.lngLat)==null?void 0:bt.lat)||""}`;return{id:H,properties:$,feature:{type:"Feature",id:H,properties:$,geometry:q},geometry:q,layer:(y==null?void 0:y.layer)||M.overlayLayer||jt.value||Lt.value,lngLat:(y==null?void 0:y.lngLat)||M.lngLat}}function V(c){return Array.isArray(c)?c.find(M=>M&&typeof M=="object")||null:c&&typeof c=="object"?c:null}function st(c){return!c||typeof c!="object"?!1:Array.isArray(c.dyColumn)&&c.dyColumn.some(it)?!0:Object.keys(c).some(M=>Ye(M,c[M]))}function it(c={}){const M=c==null?void 0:c.value;return M==null||M===""?!1:!!String((c==null?void 0:c.field)||(c==null?void 0:c.title)||"").trim()}function rt(c={},M={}){const y=Tt({},c);(Array.isArray(c.dyColumn)?c.dyColumn:[]).forEach(H=>{const gt=H==null?void 0:H.value;if(gt==null||gt==="")return;const Et=String((H==null?void 0:H.field)||"").trim();[Et,at(Et)].filter(Boolean).forEach(Nt=>{(y[Nt]===void 0||y[Nt]===null||y[Nt]==="")&&(y[Nt]=gt)})});const T=y.project_name||y.projectName||y.name,q=y.area_mu||y.areaMu||y.acreage,$=y.project_status||y.projectStatus;return kt(Tt({},y),{project_name:T,name:T||y.name,area_mu:q,project_status:$,progress_count:Array.isArray(M==null?void 0:M.progress)?M.progress.length:void 0})}function at(c){return String(c||"").replace(/[A-Z]/g,M=>`_${M.toLowerCase()}`)}function nt(c){var y,N,T,q;const M=(N=(y=c==null?void 0:c.feature)!=null?y:c)!=null?N:null;if(!M||ee(M)<=0){ft();return}if(ve.value){W+=1;const $=k(M,c);if(!$||ee($)<=0){ft();return}g.value=$,f.value=!1,u.value=!1,m.value=((q=(T=r.value)==null?void 0:T.getVectorFeatureAnchorScreen)==null?void 0:q.call(T,$))||(c==null?void 0:c.screen)||null;return}g.value=M,f.value=!1,c!=null&&c.screen&&(m.value=c.screen)}function pt(c){A.value=c}function ts(c,M){var T,q;if(B.value==="national-park"&&(M!=null&&M.name)){ft(),(q=(T=r.value)==null?void 0:T.focusTown)==null||q.call(T,M.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(B.value!=="restoration"||(c==null?void 0:c.key)!=="restoration-projects"||!((M==null?void 0:M.projectName)||(M==null?void 0:M.name)))return;ft();const N=()=>Ee(M);if(h.value){h.value="",ss(()=>window.setTimeout(N,80));return}N()}function Ee(c,M=0){var q,$,H,gt,Et,bt,Nt;if(B.value!=="restoration")return;const y=(c==null?void 0:c.projectName)||(c==null?void 0:c.name);if(!y)return;const N=($=(q=r.value)==null?void 0:q.focusProject)==null?void 0:$.call(q,{id:c==null?void 0:c.id,key:c==null?void 0:c.key,name:y,projectName:y,project_name:y,highlightTone:"white"});if(!(N!=null&&N.feature)){if(M<10){window.setTimeout(()=>Ee(c,M+1),120);return}A.value={type:"warning",text:"当前项目图斑尚未加载"};return}const T=k({id:N.feature.id,properties:N.feature.properties||{},geometry:N.feature.geometry,feature:N.feature,layer:jt.value||Lt.value},{});g.value=T,f.value=!1,u.value=!1,m.value=N.screen||((Et=(H=r.value)==null?void 0:H.getVectorFeaturesAnchorScreen)==null?void 0:Et.call(H,(gt=N.highlightFeatures)!=null&>.length?N.highlightFeatures:N.features))||((Nt=(bt=r.value)==null?void 0:bt.getVectorFeatureAnchorScreen)==null?void 0:Nt.call(bt,T))}function oa(c){var M,y;ft(),b.value=0,(y=(M=r.value)==null?void 0:M.setBoundaryDrawing)==null||y.call(M,c)}function Pi(){var c,M;(M=(c=r.value)==null?void 0:c.finishBoundaryDrawing)==null||M.call(c)}function xi(){var c,M;(M=(c=r.value)==null?void 0:c.undoBoundaryPoint)==null||M.call(c)}function pi(){var c,M;b.value=0,(M=(c=r.value)==null?void 0:c.clearAnalysisBoundary)==null||M.call(c)}function bi(c={}){var M,y,N;b.value=c.pointCount||((M=c.points)==null?void 0:M.length)||0,c.status==="complete"&&c.feature&&(b.value=0,(N=(y=o.value)==null?void 0:y.applyDrawnBoundary)==null||N.call(y,c.feature)),c.status==="clear"&&(b.value=0)}function Gi(c={}){var M,y;(y=(M=r.value)==null?void 0:M.showAnalysisResult)==null||y.call(M,{boundary:c.boundary,matches:c.matches,preserveView:B.value==="engineering-analysis"}),B.value}function Ni(c){var y,N;const M=((c==null?void 0:c.features)||[]).filter(Boolean);(N=(y=r.value)==null?void 0:y.showAnalysisResult)==null||N.call(y,{boundary:c==null?void 0:c.boundary,matches:M})}function ft(){var c,M;W+=1,g.value=null,f.value=!1,u.value=!1,m.value=null,(M=(c=r.value)==null?void 0:c.clearSelectedFeature)==null||M.call(c)}function ha(c){if(!Wt.value)return;const M=document.querySelector(".fgw-map-feature-info"),y=c.target;M&&y instanceof Node&&M.contains(y)||ft()}function Ai(){return E.value?new Promise(c=>{ca.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{E.value=!1,c()}})}):Promise.resolve()}return(c,M)=>(J(),Y("div",n1,[ae(Wi,{ref_key:"mapSceneRef",ref:r,"active-layer":jt.value,"map-ranking":S.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureLoading:M[0]||(M[0]=y=>u.value=y),onFeatureInfo:nt,onMapClick:_,onLayerStatus:pt,onDrawBoundary:bi},null,8,["active-layer","map-ranking"]),L("div",o1,[_t.value?At("",!0):(J(),Y("div",h1,[L("div",l1,[(J(!0),Y(fs,null,gs(ps.value,y=>(J(),Cs(fa,{key:Ke(y,"left"),class:Ot(["fgw-side-card left-card",{"is-double":Vt(y)}]),title:y.title,width:as(me),height:Ze(y)},{default:da(()=>[ae(va,{panel:y,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>ts(y,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?At("",!0):(J(),Y("div",u1,[L("div",c1,[(J(!0),Y(fs,null,gs(bs.value,y=>(J(),Cs(fa,{key:Ke(y,"right"),class:Ot(["fgw-side-card right-card",{"is-double":Vt(y)}]),title:y.title,width:as(me),height:Ze(y)},{default:da(()=>[ae(va,{panel:y,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>ts(y,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?(J(),Cs(r1,{key:2,ref_key:"engineeringAnalysisRef",ref:o,"drawing-point-count":b.value,onDrawingChange:oa,onFinishDrawing:Pi,onUndoPoint:xi,onClearBoundary:pi,onAnalysisResult:Gi,onFocusProject:Ni},null,8,["drawing-point-count"])):At("",!0),L("div",{class:Ot(["fgw-map-layer-tools",{"is-analysis":_t.value,"is-compact":Me.value}]),style:_a({height:`${zt.value}px`})},[ae(Vi,{modelValue:n.value,"onUpdate:modelValue":M[1]||(M[1]=y=>n.value=y),"selected-legend-key":h.value,"onUpdate:selectedLegendKey":M[2]||(M[2]=y=>h.value=y),"topic-key":B.value,legends:de.value,width:248,height:zt.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact"])],6),Wt.value?(J(),Y("div",{key:3,class:"fgw-map-feature-info",style:_a(Ns.value)},[ae(Hi,{feature:g.value,empty:f.value,loading:u.value,width:as(Ve),height:Rt.value,closable:"",onClose:ft},null,8,["feature","empty","loading","width","height"])],4)):At("",!0),L("div",f1,[ae(Qi,{"model-value":B.value,topics:as(Pe),"onUpdate:modelValue":Qe},null,8,["model-value","topics"])])]),E.value?(J(),Y("div",g1,[M[4]||(M[4]=Ki('
LOADING
',1)),L("div",v1,[L("span",d1,ut(w.value),1),M[3]||(M[3]=L("span",{class:"unit"},"%",-1))])])):At("",!0)]))}};export{L1 as default}; diff --git a/docs/assets/index-7c335907-balabala-1784043664472.css b/docs/assets/index-7c335907-balabala-1784043664472.css new file mode 100644 index 0000000..06c8f44 --- /dev/null +++ b/docs/assets/index-7c335907-balabala-1784043664472.css @@ -0,0 +1 @@ +.engineering-analysis-panel[data-v-96bdd213]{position:absolute;z-index:8;left:32px;top:188px;width:454px;display:grid;grid-template-rows:auto auto;gap:12px;max-height:calc(100vh - 190px);pointer-events:auto}.analysis-card[data-v-96bdd213]{position:relative;overflow:hidden;min-height:0;padding:14px 16px 16px;border:1px solid rgba(55,228,255,.28);background:linear-gradient(135deg,rgba(7,36,52,.88),rgba(4,18,29,.74)),radial-gradient(circle at 16% 4%,rgba(36,246,196,.18),transparent 38%),radial-gradient(circle at 90% 0,rgba(48,220,255,.12),transparent 34%);box-shadow:inset 0 1px #b4fcff29,inset 0 0 26px #30dcff1f,0 16px 30px #00000052;backdrop-filter:blur(4px);box-sizing:border-box}.analysis-card[data-v-96bdd213]:before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,#24f6c4,rgba(48,220,255,.18),transparent);opacity:.8}.analysis-card[data-v-96bdd213]:after{content:"";position:absolute;right:12px;top:10px;width:78px;height:18px;border-top:1px solid rgba(48,220,255,.22);background:repeating-linear-gradient(90deg,rgba(48,220,255,.18) 0 7px,transparent 7px 14px);opacity:.42;pointer-events:none}.analysis-workbench[data-v-96bdd213]{transition:border-color .2s ease,box-shadow .2s ease}.analysis-workbench.is-running[data-v-96bdd213]{border-color:#7efbf680;box-shadow:inset 0 1px #b4fcff2e,inset 0 0 30px #30dcff29,0 18px 32px #0000005c}.analysis-workbench.is-complete[data-v-96bdd213]{border-color:#24f6c46b}.analysis-card-head[data-v-96bdd213]{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;height:26px;color:#fff}.analysis-card-head span[data-v-96bdd213]{padding-left:10px;font-size:16px;font-weight:800;letter-spacing:0}.analysis-card-head span[data-v-96bdd213]:before{content:"";position:absolute;left:0;top:7px;width:3px;height:14px;background:#24f6c4;box-shadow:0 0 10px #24f6c4cc}.analysis-card-head strong[data-v-96bdd213]{color:#24f6c4;font-size:13px;font-weight:700}.analysis-operation[data-v-96bdd213]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.analysis-operation.has-boundary[data-v-96bdd213]{margin-top:10px}.analysis-operation.has-boundary .analysis-entry[data-v-96bdd213]{height:40px}.analysis-operation.has-boundary .analysis-entry span[data-v-96bdd213]{font-size:13px}.analysis-entry[data-v-96bdd213]{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-content:center;align-items:center;min-width:0;height:64px;padding:0 16px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04)),rgba(4,23,34,.62);color:#fff;text-align:left;cursor:pointer;box-sizing:border-box;box-shadow:inset 0 0 18px #30dcff14;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.analysis-entry[data-v-96bdd213]:before{content:"";grid-row:1/3;width:34px;height:34px;border:1px solid rgba(36,246,196,.42);background:linear-gradient(135deg,rgba(36,246,196,.22),rgba(48,220,255,.08)),rgba(4,23,34,.7);box-shadow:inset 0 0 12px #30dcff1f,0 0 12px #24f6c429}.analysis-entry.is-upload[data-v-96bdd213]:before{background:linear-gradient(#24f6c4 0 0) 50% 9px/2px 15px no-repeat,linear-gradient(45deg,transparent 42%,#24f6c4 43% 56%,transparent 57%) 10px 8px/8px 8px no-repeat,linear-gradient(-45deg,transparent 42%,#24f6c4 43% 56%,transparent 57%) 16px 8px/8px 8px no-repeat,linear-gradient(#24f6c4 0 0) 50% 25px/16px 2px no-repeat,linear-gradient(135deg,rgba(36,246,196,.22),rgba(48,220,255,.08)),rgba(4,23,34,.7)}.analysis-entry.is-draw[data-v-96bdd213]:before{background:radial-gradient(circle,#24f6c4 0 2px,transparent 2.5px) 21px 7px/8px 8px no-repeat,linear-gradient(135deg,transparent 42%,#24f6c4 43% 56%,transparent 57%) 9px 11px/18px 18px no-repeat,linear-gradient(#24f6c4 0 0) 9px 25px/14px 2px no-repeat,linear-gradient(135deg,rgba(36,246,196,.22),rgba(48,220,255,.08)),rgba(4,23,34,.7)}.analysis-entry[data-v-96bdd213]:after{content:"";position:absolute;right:9px;top:9px;width:18px;height:18px;border-top:1px solid rgba(36,246,196,.45);border-right:1px solid rgba(36,246,196,.45)}.analysis-entry span[data-v-96bdd213]{min-width:0;font-size:16px;font-weight:700;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-entry strong[data-v-96bdd213]{min-width:0;margin-top:2px;color:#e8fcffb8;font-size:11px;font-weight:500;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-entry input[data-v-96bdd213]{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.analysis-entry[data-v-96bdd213]:disabled,.analysis-entry.is-disabled[data-v-96bdd213]{opacity:.42;cursor:not-allowed}.analysis-entry[data-v-96bdd213]:not(:disabled):not(.is-disabled):hover{border-color:#24f6c4b8;background:linear-gradient(90deg,rgba(36,246,196,.2),rgba(48,220,255,.06)),rgba(4,23,34,.56);box-shadow:inset 0 0 20px #24f6c41a,0 0 16px #24f6c41f;transform:translateY(-1px)}.analysis-entry[data-v-96bdd213]:focus-visible{outline:2px solid rgba(139,247,255,.8);outline-offset:2px}.analysis-drawing-bar[data-v-96bdd213],.analysis-drawing-stage[data-v-96bdd213],.analysis-boundary-bar[data-v-96bdd213]{display:grid;align-items:center;gap:8px;margin-top:14px;padding:0 12px;border:1px solid rgba(36,246,196,.34);background:linear-gradient(90deg,rgba(36,246,196,.13),rgba(48,220,255,.06)),rgba(4,23,34,.58);box-sizing:border-box}.analysis-drawing-stage[data-v-96bdd213]{grid-template-columns:78px 74px 54px minmax(68px,1fr);height:70px;padding:0 12px;border-color:#7efbf675;background:linear-gradient(90deg,rgba(36,246,196,.15),rgba(48,220,255,.08)),rgba(4,23,34,.54)}.analysis-drawing-bar[data-v-96bdd213]{grid-template-columns:92px minmax(0,1fr) 66px 74px}.analysis-boundary-bar[data-v-96bdd213]{grid-template-columns:92px minmax(0,1fr) 86px;height:42px}.analysis-boundary-bar span[data-v-96bdd213]{color:#24f6c4;font-size:13px;font-weight:700}.analysis-boundary-bar strong[data-v-96bdd213]{min-width:0;overflow:hidden;color:#e8fcffb8;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.analysis-boundary-bar button[data-v-96bdd213]{height:30px;border:1px solid rgba(139,247,255,.46);background:rgba(48,220,255,.1);color:#c9fbff;font-size:13px;font-weight:700;cursor:pointer;transition:border-color .18s ease,background .18s ease}.analysis-boundary-bar button[data-v-96bdd213]:hover{border-color:#8bf7ffb8;background:rgba(48,220,255,.18)}.analysis-point-count[data-v-96bdd213]{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:3px;color:#e8fcffd1;font-size:12px}.analysis-point-count span[data-v-96bdd213]{grid-column:1/-1;color:#e8fcffb3;line-height:18px}.analysis-point-count strong[data-v-96bdd213]{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:30px;line-height:32px}.analysis-point-count em[data-v-96bdd213]{color:#e8fcffb8;font-style:normal}.analysis-point-count small[data-v-96bdd213]{grid-column:1/-1;margin-top:2px;color:#c9fbffc7;font-size:11px;line-height:14px}.analysis-control[data-v-96bdd213]{height:34px;min-width:0;padding:0 4px;border:1px solid rgba(48,220,255,.26);background:rgba(48,220,255,.08);color:#ffffffe6;font-size:12px;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.analysis-control.is-primary[data-v-96bdd213]{border-color:#24f6c4c7;background:rgba(36,246,196,.22);color:#fff;font-weight:700}.analysis-control.is-danger[data-v-96bdd213]{border-color:#8bf7ff6b;background:rgba(48,220,255,.11);color:#c9fbff}.analysis-control[data-v-96bdd213]:disabled{opacity:.42;cursor:not-allowed}.analysis-control[data-v-96bdd213]:not(:disabled):hover{border-color:#8bf7ff9e;background:rgba(48,220,255,.16);transform:translateY(-1px)}.analysis-result[data-v-96bdd213]{display:flex;flex-direction:column;gap:10px;height:clamp(500px,56vh,620px);min-height:0;max-height:calc(100vh - 350px)}.analysis-result.is-running[data-v-96bdd213]{min-height:214px;height:auto}.analysis-result.is-empty[data-v-96bdd213]{min-height:286px;height:auto}.analysis-running[data-v-96bdd213]{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;min-height:104px;padding:14px;border:1px solid rgba(126,251,246,.24);background:radial-gradient(circle at 22px 22px,rgba(126,251,246,.18),transparent 46px),linear-gradient(135deg,rgba(48,220,255,.09),rgba(4,23,34,.5));box-sizing:border-box}.analysis-running strong[data-v-96bdd213],.analysis-running span[data-v-96bdd213]{display:block;min-width:0}.analysis-running strong[data-v-96bdd213]{color:#fff;font-size:14px;line-height:22px}.analysis-running span[data-v-96bdd213]{margin-top:4px;color:#e8fcffb8;font-size:12px;line-height:18px}.analysis-running-orbit[data-v-96bdd213]{position:relative;width:42px;height:42px;border:1px solid rgba(126,251,246,.42);border-radius:50%;box-shadow:inset 0 0 12px #30dcff2e,0 0 18px #24f6c429}.analysis-running-orbit[data-v-96bdd213]:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:2px solid transparent;border-top-color:#24f6c4;border-right-color:#30dcffd6;border-radius:50%;animation:analysisSpin-96bdd213 1.1s linear infinite}.analysis-running-orbit[data-v-96bdd213]:after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#eaffff;box-shadow:0 0 12px #7efbf6cc;transform:translate(-50%,-50%)}.analysis-empty[data-v-96bdd213]{display:flex;align-items:center;justify-content:center;min-height:126px;color:#e8fcffad;font-size:13px;text-align:center}.analysis-empty.is-success[data-v-96bdd213]{min-height:64px;border:1px solid rgba(36,246,196,.18);background:rgba(36,246,196,.06);color:#24f6c4}.analysis-conclusion[data-v-96bdd213]{display:grid;gap:8px;padding:12px;border:1px solid rgba(48,220,255,.22);background:linear-gradient(135deg,rgba(48,220,255,.09),rgba(4,23,34,.48)),rgba(4,23,34,.5);box-sizing:border-box}.analysis-conclusion.is-hit[data-v-96bdd213]{border-color:#8bf7ff47;background:linear-gradient(135deg,rgba(48,220,255,.08),rgba(4,23,34,.36))}.analysis-conclusion.is-heavy[data-v-96bdd213]{border-color:#8bf7ff3d;background:linear-gradient(135deg,rgba(139,247,255,.08),rgba(4,23,34,.38))}.analysis-conclusion.is-clear[data-v-96bdd213]{border-color:#24f6c43d;background:linear-gradient(135deg,rgba(36,246,196,.08),rgba(4,23,34,.36))}.analysis-conclusion p[data-v-96bdd213],.analysis-conclusion small[data-v-96bdd213]{margin:0;color:#e8fcffc2;font-size:12px;line-height:20px}.analysis-conclusion small[data-v-96bdd213]{color:#c9fbffdb;font-weight:600}.analysis-conclusion-head[data-v-96bdd213]{display:flex;align-items:center;justify-content:space-between;gap:10px}.analysis-conclusion-head span[data-v-96bdd213]{color:#e8fcffb8;font-size:11px}.analysis-conclusion-head strong[data-v-96bdd213]{color:#24f6c4;font-size:13px;font-weight:700}.analysis-conclusion-tags[data-v-96bdd213]{display:flex;flex-wrap:wrap;gap:6px}.analysis-conclusion-tags span[data-v-96bdd213]{max-width:100%;height:24px;padding:0 9px;overflow:hidden;border:1px solid rgba(48,220,255,.2);background:rgba(48,220,255,.08);color:#e8fcffcc;font-size:11px;line-height:22px;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.analysis-project-list[data-v-96bdd213]{flex:1 1 auto;min-height:0;overflow:auto;padding-right:6px;scrollbar-color:rgba(48,220,255,.58) rgba(48,220,255,.1);scrollbar-width:thin}.analysis-project-list[data-v-96bdd213]::-webkit-scrollbar{width:4px}.analysis-project-list[data-v-96bdd213]::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.analysis-project-list[data-v-96bdd213]::-webkit-scrollbar-thumb{border-radius:0;background:linear-gradient(180deg,rgba(36,246,196,.9),rgba(48,220,255,.42))}.analysis-project-row[data-v-96bdd213]{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:7px;width:100%;min-height:86px;margin-bottom:8px;padding:10px 12px;border:1px solid rgba(48,220,255,.18);border-left-color:#24f6c48f;background:linear-gradient(90deg,rgba(36,246,196,.1),rgba(48,220,255,.04)),rgba(4,23,34,.54);color:#fff;font-size:12px;text-align:left;cursor:pointer;box-sizing:border-box;box-shadow:inset 0 0 16px #30dcff0d;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.analysis-project-row .analysis-project-name[data-v-96bdd213],.analysis-project-row b[data-v-96bdd213]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-project-row .analysis-project-name[data-v-96bdd213]{display:block;color:#fff;font-size:13px;font-weight:700;line-height:18px}.analysis-project-row .analysis-project-meta[data-v-96bdd213]{display:grid;grid-template-columns:52px 72px minmax(0,1fr);align-items:center;gap:6px;min-width:0}.analysis-project-row strong[data-v-96bdd213],.analysis-project-row em[data-v-96bdd213],.analysis-project-row small[data-v-96bdd213]{height:26px;min-width:0;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:rgba(4,23,34,.46);font-size:12px;line-height:24px;text-align:center;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.analysis-project-row strong[data-v-96bdd213]{color:#24f6c4;font-weight:700}.analysis-project-row em[data-v-96bdd213]{color:#ffffffd1;font-style:normal}.analysis-project-row small[data-v-96bdd213]{padding:0 5px;color:#c9fbffe6;text-align:right}.analysis-project-row b[data-v-96bdd213]{color:#e8fcffa8;font-size:12px;font-weight:500;line-height:16px}.analysis-project-row[data-v-96bdd213]:hover{border-color:#24f6c47a;background:linear-gradient(90deg,rgba(36,246,196,.14),rgba(48,220,255,.06)),rgba(4,23,34,.62);box-shadow:inset 0 0 18px #30dcff14,0 0 14px #24f6c414;transform:translate(2px)}.analysis-project-row.is-active[data-v-96bdd213]{border-color:#24f6c4b8;border-left-color:#24f6c4;background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.08)),rgba(4,28,38,.7);box-shadow:inset 3px 0 #24f6c4e6,inset 0 0 18px #24f6c414,0 0 18px #24f6c41f}.analysis-project-row[data-v-96bdd213]:focus-visible{outline:2px solid rgba(139,247,255,.78);outline-offset:2px}@keyframes analysisSpin-96bdd213{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ecological-protection .fgw-map-layer-tools{top:auto;right:458px;bottom:132px;left:auto;width:248px;height:430px}.ecological-protection .fgw-map-layer-tools.is-analysis{top:auto;right:458px;bottom:132px;left:auto;transform:none;transform-origin:right top}.ecological-protection .fgw-map-layer-tools.is-compact{height:auto}.ecological-protection .ecological-bottom-topic{bottom:48px}.ecological-protection .ecological-bottom-topic .topic-switcher{width:820px}.ecological-protection .ecological-bottom-topic .topic-switcher-item{width:154px}.ecological-protection .ecological-bottom-topic .topic-name{font-size:15px;letter-spacing:0} diff --git a/docs/assets/index-82127856-1784043664472.js b/docs/assets/index-82127856-1784043664472.js new file mode 100644 index 0000000..eafa06b --- /dev/null +++ b/docs/assets/index-82127856-1784043664472.js @@ -0,0 +1 @@ +var Ht=Object.defineProperty,Ut=Object.defineProperties;var Kt=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var Yt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable;var Ye=(l,i,r)=>i in l?Ht(l,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[i]=r,A=(l,i)=>{for(var r in i||(i={}))Yt.call(i,r)&&Ye(l,r,i[r]);if(Ke)for(var r of Ke(i))Qt.call(i,r)&&Ye(l,r,i[r]);return l},E=(l,i)=>Ut(l,Kt(i));var I=(l,i,r)=>new Promise((k,S)=>{var f=y=>{try{w(r.next(y))}catch($){S($)}},u=y=>{try{w(r.throw(y))}catch($){S($)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,i)).next())});import{g as Qe}from"./index-e9f36657-1784043664472.js";import{A as Jt}from"./assets-93f7396b-1784043664472.js";/* empty css */import{f as Xt,c as Je,b as Zt,g as Xe}from"./townshipBoundaries-1b068bef-1784043664472.js";import{g as en,b as tn,a as nn,c as sn}from"./openApi-928665d4-1784043664472.js";import{c as rn,F as an,g as ln,a as un}from"./featurePanelLayout-93409244-1784043664472.js";import{q as Ze,r as on,s as cn}from"./screen2Standard-15e4461a-1784043664472.js";import{M as dn}from"./index-0060e718-1784043664472.js";import{_ as vn}from"./TopicSwitcher-f0c08774-1784043664472.js";import{_ as fn}from"./LayerPanel-4a87f4f0-1784043664472.js";import{a as et,_ as gn}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{_ as mn,g as c,o as _,c as L,a as b,t as Ne,F as Te,y as xe,n as de,J as ve,d as g,q as hn,h as wn,w as B,A as ee,b as q,C as tt,x as nt,u as Se,j as ce,z as yn}from"./index-1784043664472.js";import{_ as st}from"./index-e3442fcf-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./geoserver-6574cb91-1784043664472.js";const bn="/jsyApi/api/map/ndvi_timeline";function kn(){return I(this,null,function*(){const l=yield fetch(bn,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const i=yield l.json().catch(()=>({}));if((i==null?void 0:i.code)===401||(i==null?void 0:i.code)==="401"){const k=new Error((i==null?void 0:i.msg)||(i==null?void 0:i.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(i==null?void 0:i.data)?i.data:Array.isArray(i)?i:[];return _n(r)})}function _n(l=[]){const i=new Set;return l.map((r,k)=>{const S=pn(it(r,["url","layerName","layer_name","layer","name"]));if(!S)return null;const f=it(r,["date","month","time","label"])||S,u=Ln(f);return{key:`${S}-${f||k}`,label:u,date:String(f),layerName:S,source:r}}).filter(Boolean).filter(r=>i.has(r.key)?!1:(i.add(r.key),!0))}function it(l,i){for(const r of i)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function pn(l){const i=String(l||"").trim();return i?i.includes(":")||/^https?:\/\//i.test(i)?i:`ne:${i}`:""}function Ln(l){const i=String(l||"").trim();if(!i)return"";const r=i.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:i}const Sn={class:"grassland-ndvi-timeline-head"},Nn={key:0,class:"grassland-ndvi-timeline-state"},Tn={key:1,class:"grassland-ndvi-timeline-state"},xn={key:2,class:"grassland-ndvi-timeline-body"},Pn=["aria-checked","title","onClick"],Cn={class:"grassland-ndvi-timeline-label"},$n=42,Mn=28,Fn={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:i}){const r=l,k=i,S=c(()=>r.items.findIndex(v=>v.key===r.modelValue)),f=c(()=>S.value===-1?Math.max(0,r.items.length-1):S.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),$=c(()=>y.value?Mn:$n),te=c(()=>K(f.value)),ne=c(()=>G(f.value));function H(v){if(!r.items.length)return;const d=Math.min(r.items.length-1,Math.max(0,f.value+v));k("update:modelValue",r.items[d].key)}function se(v){!v||v.key===r.modelValue||k("update:modelValue",v.key)}function U(v){return!r.items.length||v<0?0:r.items.length===1?.5:v/(r.items.length-1)}function K(v){const d=U(v),x=p(d*100),m=$.value*(1-d*2);return`calc(${x}% ${m<0?"-":"+"} ${p(Math.abs(m))}px)`}function G(v){const d=U(v);return d<=0?"0px":`calc(${p(d*100)}% - ${p($.value*2*d)}px)`}function p(v){return Number(v.toFixed(4)).toString()}return(v,d)=>{var x;return _(),L("div",{class:de(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Sn,[d[2]||(d[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,Ne(((x=u.value)==null?void 0:x.label)||w.value),1)]),l.loading?(_(),L("div",Nn,"加载月份数据")):l.items.length?(_(),L("div",xn,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:d[0]||(d[0]=m=>H(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:ve({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${$.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[d[4]||(d[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),d[5]||(d[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),d[6]||(d[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(_(!0),L(Te,null,xe(l.items,(m,R)=>{var j,N;return _(),L("button",{key:m.key,class:de(["grassland-ndvi-timeline-mark",{"is-active":m.key===((j=u.value)==null?void 0:j.key),"is-past":R<=f.value,"is-staggered":y.value&&R%2===1}]),type:"button",role:"radio","aria-checked":m.key===((N=u.value)==null?void 0:N.key),style:ve({left:K(R)}),title:m.date,onClick:Y=>se(m)},[d[3]||(d[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",Cn,Ne(m.label),1)],14,Pn)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:d[1]||(d[1]=m=>H(1))},"›")])):(_(),L("div",Tn,"暂无月份数据"))],2)}}},An=mn(Fn,[["__scopeId","data-v-86212a95"]]),In={class:"forest-grass-wet"},Vn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},En={class:"fgw-left"},Bn={class:"fgw-side-stack is-left"},qn={class:"fgw-right"},Gn={class:"fgw-side-stack is-right"},Rn={key:1,class:"fgw-ndvi-timeline"},jn={class:"fgw-bottom-topic"},Dn={key:0,class:"loading"},zn={class:"loading-progress"},Wn={class:"value"},ls={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:i,emit:r}){const k=l,S=r,f=g(null),u=g(Xt[0].key),w=g(""),y=g([]),$=g([]),te=g("idle"),ne=g(!1),H=g({title:"业务统计",rows:[]}),se=g({title:"业务统计",rows:[]}),U=g([]),K=g([]),G=g(null),p=g(""),v=g(null),d=g(!1),x=g(!1),m=g(null),R=g(0),j=g(k.showLoading),N=g([]),Y=g("idle"),M=g(""),V=g({type:"idle",text:"等待 GeoServer 图层加载"});let Q=null,C=!1,fe=!1,D=!1,F=null,Pe=0,Ce=0,ge=0,z=0,ie=!1,me=!1;const rt={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},at=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),lt=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ut=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase()));c(()=>Je(u.value));const ot=c(()=>Zt(u.value)),re=c(()=>lt.map(e=>kt(e)).filter(Boolean)),ae=c(()=>u.value==="overview"?re.value:ot.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),J=c(()=>w.value?Xe(u.value,w.value):null),X=c(()=>u.value==="grassland"&&w.value==="grassland-health"),ct=c(()=>X.value),dt=c(()=>N.value.find(e=>e.key===M.value)||null),W=c(()=>{var e;return(((e=J.value)==null?void 0:e.legends)||[]).find(t=>t.key===p.value)||null}),vt=c(()=>re.value.flatMap(e=>e.legends||[])),he=c(()=>{var e;return u.value==="overview"?vt.value:((e=J.value)==null?void 0:e.legends)||[]}),ft=c(()=>ae.value.length>0),Me=c(()=>ae.value.length<=6&&he.value.length<=8),Fe=c(()=>{if(!Me.value)return 430;const e=Math.max(1,ae.value.length),t=Math.max(1,he.value.length),n=e*32,s=30+t*28;return Math.max(272,Math.min(520,96+n+s))}),gt=c(()=>{var s;if(u.value==="overview"){const a=new Set(y.value),o=re.value.filter(h=>a.has(h.key));return _t(o)}const e=J.value;if(!e)return null;let t=(s=W.value)!=null&&s.cqlFilter?E(A({},e),{cqlFilter:W.value.cqlFilter,activeLegend:W.value,name:W.value.name||e.name}):e;const n=dt.value;return X.value&&(n!=null&&n.layerName)&&(t=E(A({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ae=g(typeof window=="undefined"?1080:window.innerHeight),Ie=Ze.sideCardWidth;c(()=>Ze.sideCardGap);const Ve=c(()=>on(Ae.value)),mt=c(()=>cn(Ve.value,2)),we=c(()=>!!m.value),ht=an,Ee=c(()=>rn({point:m.value?bt(m.value):null,rowCount:v.value?pe(v.value):0,loading:x.value,empty:d.value||!v.value})),wt=c(()=>Ee.value.height),yt=c(()=>Ee.value.style);function bt(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function ye(){Ae.value=typeof window=="undefined"?1080:window.innerHeight}function kt({topicKey:e,layerKey:t,name:n,legendName:s}){var h;const a=Xe(e,t);if(!a||a.key!==t)return null;const o=((h=a.legends)==null?void 0:h[0])||{};return E(A({},a),{name:n,overviewTopicKey:e,legends:[E(A({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function _t(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return E(A({},n),{overlayLayers:s})}hn(()=>{ye(),window.addEventListener("resize",ye),document.addEventListener("pointerdown",Oe,!0),pt(),ke(u.value,""),le(u.value,"")}),wn(()=>{C=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",ye),document.removeEventListener("pointerdown",Oe,!0)}),B(u,e=>{ie=!0,p.value="",w.value="",e==="overview"&&(y.value=[]),T(),V.value={type:"idle",text:"等待 GeoServer 图层加载"},ke(e,""),le(e,"",null),ee(()=>{ie=!1})}),B(w,()=>{ie||(me=!0,p.value="",T(),V.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&ke(u.value,w.value),le(u.value,w.value,null),ee(()=>{me=!1}))}),B(y,()=>{u.value==="overview"&&(p.value="",T(),V.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},G.value=We("overview",y.value.join(",")))},{deep:!0}),B(p,()=>{ie||me||(T(),le(u.value,w.value,W.value))}),B(X,e=>{if(e){Nt();return}M.value=""}),B(M,()=>{X.value&&T()}),B(()=>k.active,e=>{var t,n,s,a;f.value&&(e?(be(),(n=(t=f.value).resume)==null||n.call(t)):(a=(s=f.value).pause)==null||a.call(s))});function pt(){var n;Q=new Jt;const e={progress:0};Q.instance.on("onProgress",(s,a,o)=>{const h=Math.floor(a/o*100);Qe.to(e,{progress:h,onUpdate:()=>{R.value=Math.floor(e.progress)}})});const t=()=>{C||fe||(fe=!0,be())};Q.instance.on("onLoad",t),(n=Q.ready)==null||n.then(t).catch(()=>{C||(V.value={type:"error",text:"地图资源加载失败"})})}function be(){C||!k.active||!fe||D||(D=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Be()},600))}function Be(e=0){return I(this,null,function*(){var n,s,a,o,h;if(C)return;if(!k.active){D=!1;return}if(yield ee(),!k.active){D=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,Q)||(o=(a=f.value)==null?void 0:a.hasMap)!=null&&o.call(a))){yield Ot(),yield ee(),(h=f.value)==null||h.play();return}if(e<24){window.setTimeout(()=>Be(e+1),120);return}D=!1})}function Lt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function St(){var e,t;if(T(),V.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),V.value={type:"success",text:"地图已复位"};return}Lt(),D=!1,ee(()=>{be()})}i({refreshMapView:qe,resetMap:St});function ke(n){return I(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,a=++Ce;ne.value=!0,te.value="loading";const o=yield en(e,s);C||a!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Tt(o,e))})}function Nt(e=!1){return I(this,null,function*(){if(!X.value)return;if(!e&&N.value.length){Ge();return}const t=++ge;Y.value="loading";try{const n=yield kn();if(C||t!==ge)return;N.value=n,Y.value=n.length?"success":"empty",Ge()}catch(n){if(C||t!==ge)return;N.value=[],M.value="",Y.value="error"}})}function Ge(){if(!N.value.length){M.value="";return}N.value.some(t=>t.key===M.value)||(M.value=N.value[N.value.length-1].key)}function Tt(e,t){var s,a,o;const n=xt(e);$.value=n.core||[],H.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},U.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[H.value],K.value=(a=n.rightPanels)!=null&&a.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,S("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function xt(e){return e||{}}function Re(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function je(e){return _e(e)?mt.value:Ve.value}function pe(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>De(s,t[s])).length}function De(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ut.has(String(e||"").toLowerCase())}function Pt(){if(u.value==="overview"){const e=new Set(y.value);return re.value.filter(t=>e.has(t.key)).slice().reverse()}return J.value?[J.value]:[]}function Ct(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function $t(e={}){const t=ze(e.lng),n=ze(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ze(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Mt(){return I(this,arguments,function*(e={}){var h,O,P,Z,ue,He;const t=Number((h=e==null?void 0:e.lngLat)==null?void 0:h.lng),n=Number((O=e==null?void 0:e.lngLat)==null?void 0:O.lat),s=Pt();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){T();return}const a=++z,o=e.screen||{x:960,y:540};m.value=null,v.value=null,d.value=!1,x.value=!0,(Z=(P=f.value)==null?void 0:P.clearSelectedFeature)==null||Z.call(P);try{for(const Ue of s){const oe=yield Ft(Ue,{lng:t,lat:n});if(a!==z||C)return;if(oe){v.value=oe,m.value=Le(oe,o),d.value=!1,(He=(ue=f.value)==null?void 0:ue.highlightFeature)==null||He.call(ue,oe,{highlightTone:"v21"});return}}a===z&&T()}catch(Ue){a===z&&T()}finally{a===z&&(x.value=!1)}})}function Ft(e,t){return I(this,null,function*(){const n=Ct(e);if(!n)return null;const s=$t(t);let a=null;n==="grassland"?a=yield ln({wkt:s}):n==="wetland"?a=yield un({wkt:s}):n==="woodland"?a=yield nn(s):n==="basicGrassland"&&(a=yield sn(s));const o=At(a,n);if(!Vt(o))return null;const h=Bt(o,e,t,n);return pe(h)>0?h:null})}function At(e,t){var s,a,o,h,O;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(a=e==null?void 0:e.data)==null?void 0:a.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(h=e==null?void 0:e.data)==null?void 0:h.woodland,(O=e==null?void 0:e.data)==null?void 0:O.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const P of n){const Z=It(P);if(Z)return Z}return null}function It(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Vt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Et)?!0:Object.keys(e).some(t=>De(t,e[t]))}function Et(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Bt(e,t,n,s){const a=Gt(e),o=qt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:a,feature:{type:"Feature",properties:a,geometry:o},geometry:o,layer:t,lngLat:n}}function qt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Gt(e={}){const t=A({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const a=s==null?void 0:s.value;if(a==null||a==="")return;const o=rt[String((s==null?void 0:s.title)||"").trim()],h=String((s==null?void 0:s.field)||"").trim();[h,Rt(h),o].filter(Boolean).forEach(P=>{(t[P]===void 0||t[P]===null||t[P]==="")&&(t[P]=a)})}),t}function Rt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function le(s,a){return I(this,arguments,function*(e,t,n=W.value){const o=++Pe;if(!t||!jt(t,n)){G.value=We(e,t);return}const h=yield tn(e,t,n);C||o!==Pe||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===p.value&&(G.value=E(A({},h),{hideTownLabelStats:!0}))})}function jt(e,t=null){return!!(t!=null&&t.key)||at.has(e)}function We(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Dt(e){var n,s;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||pe(t)<=0){T();return}v.value=t,d.value=!1,m.value=Le(t,(e==null?void 0:e.screen)||m.value)}function Le(e,t=null){var n,s,a,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(a=f.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:o.call(a,e))||t}function zt(){if(!we.value||!v.value)return;const e=Le(v.value,m.value);if(!e)return;const t=m.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(m.value=e)}function Wt(e){V.value=e}function T(){var e,t;z+=1,v.value=null,d.value=!1,x.value=!1,m.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Oe(e){if(!we.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||T()}function Ot(){return j.value?new Promise(e=>{Qe.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{j.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(_(),L("div",In,[q(dn,{ref_key:"mapSceneRef",ref:f,"active-layer":gt.value,"map-ranking":G.value,"admin-boundary-line-scale":2.4,"initial-zoom":9.55,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>x.value=n),onFeatureInfo:Dt,onMapClick:Mt,onLayerStatus:Wt,onViewChange:zt},null,8,["active-layer","map-ranking"]),b("div",Vn,[b("div",En,[b("div",Bn,[(_(!0),L(Te,null,xe(U.value,n=>(_(),tt(st,{key:Re(n,"left"),class:de(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[q(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",qn,[b("div",Gn,[(_(!0),L(Te,null,xe(K.value,n=>(_(),tt(st,{key:Re(n,"right"),class:de(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[q(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),ft.value?(_(),L("div",{key:0,class:"fgw-map-layer-tools",style:ve({height:`${Fe.value}px`})},[q(fn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":p.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>p.value=n),"topic-key":u.value,layers:ae.value,legends:he.value,multiple:u.value==="overview",width:248,height:Fe.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):ce("",!0),ct.value?(_(),L("div",Rn,[q(An,{modelValue:M.value,"onUpdate:modelValue":t[3]||(t[3]=n=>M.value=n),items:N.value,loading:Y.value==="loading"},null,8,["modelValue","items","loading"])])):ce("",!0),we.value?(_(),L("div",{key:2,class:"fgw-map-feature-info",style:ve(yt.value)},[q(gn,{feature:v.value,empty:d.value,loading:x.value,width:Se(ht),height:wt.value,closable:"",onClose:T},null,8,["feature","empty","loading","width","height"])],4)):ce("",!0),b("div",jn,[q(vn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),j.value?(_(),L("div",Dn,[t[6]||(t[6]=yn('
LOADING
',1)),b("div",zn,[b("span",Wn,Ne(R.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):ce("",!0)]))}};export{ls as default}; diff --git a/docs/assets/index-8532142c-1784043664472.js b/docs/assets/index-8532142c-1784043664472.js new file mode 100644 index 0000000..ae3b428 --- /dev/null +++ b/docs/assets/index-8532142c-1784043664472.js @@ -0,0 +1 @@ +var ca=Object.defineProperty,da=Object.defineProperties;var fa=Object.getOwnPropertyDescriptors;var Et=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,pa=Object.prototype.propertyIsEnumerable;var Mt=(N,v,y)=>v in N?ca(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))ga.call(v,y)&&Mt(N,y,v[y]);if(Et)for(var y of Et(v))pa.call(v,y)&&Mt(N,y,v[y]);return N},P=(N,v)=>da(N,fa(v));var C=(N,v,y)=>new Promise((ee,U)=>{var z=E=>{try{L(y.next(E))}catch(h){U(h)}},ye=E=>{try{L(y.throw(E))}catch(h){U(h)}},L=E=>E.done?ee(E.value):Promise.resolve(E.value).then(z,ye);L((y=y.apply(N,v)).next())});import{g as f,q as ya,h as ha,w as ma,o as F,c as $,C as va,a as S,j as re,b as k,x as X,u as K,n as Gt,F as ka,y as ba,J as wt,t as Vt,f as _a,d as p,A as Te}from"./index-1784043664472.js";import{g as Pa,l as Ot,E as Na}from"./live-scene-1-16ce1514-1784043664472.js";import{_ as Q}from"./index-e3442fcf-1784043664472.js";import{M as Aa}from"./index-0060e718-1784043664472.js";import{_ as Ca}from"./LayerPanel-4a87f4f0-1784043664472.js";import{a as se,_ as Sa}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{l as Ia,d as La,e as xa,m as Ta}from"./townshipBoundaries-1b068bef-1784043664472.js";import{c as Ra,d as Ba,F as Fa,e as za,f as Ea,h as Ma,i as Ga}from"./featurePanelLayout-93409244-1784043664472.js";import{q as $t,r as wa,s as Va}from"./screen2Standard-15e4461a-1784043664472.js";import{p as Oa,a as qe,b as $a,c as ja,d as Wa,e as Ka,f as ge,g as Ze,h as Ye,i as jt,j as Ua}from"./data-defd9b10-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./index-e9f36657-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.js";const Da={class:"pasture-management"},Ha={key:0,class:"pasture-map-loading"},qa={class:"pasture-management-ui"},Za={class:"pasture-left"},Ya={class:"pasture-side-stack is-left"},Ja={class:"pasture-video-monitor"},Xa=["disabled"],Qa=["onClick"],er={key:1,class:"pasture-video-play"},tr={key:2,class:"pasture-video-loading"},nr={key:3,class:"pasture-video-error"},ar={class:"pasture-video-point-name"},rr=["disabled"],sr={class:"pasture-right"},ur={class:"pasture-side-stack is-right"},or={class:"pasture-map-layer-tools"},Je="pasture-grassland-boundary",Wt="pasture-yak-marks-layer",lr=12e3,ir="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Xe="#FFE600",Cr={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,z=$t.sideCardWidth;$t.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),L=f(()=>wa(ye.value)),E=f(()=>Va(L.value,2)),h=p(null),ue=p(!1),Qe=p(0);let he=0;const D=p(null),oe=p(!1),le=p(!1),te=p(null),x=p(Ze),H=p(Ye),ne=p([Je,Wt]),Re=p(""),Kt=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],me=["#30dcff","#24f6c4","#8bf7ff","#48cfff","#16b6e8","#b9fbff","#67ffe4"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Ut=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),et=[102.58,32.72],Dt=Wn("ne:t_pasture_grassland",pe),Ht={key:Wt,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别标记",color:Xe,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Xe,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Xe,strokeColor:"#FFF58A",selectable:!1}]},Be={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Ot,playUrl:"",hdPlayUrl:"",token:""},Fe=p(null),M=p([]),ve=p(0),q=p(!1),G=p(!1),A=p("");let w=!1,ae=0,V=null,I=null,ze=!1,Z=0,ke=null,ie=0;const qt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Zt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Yt=ua(Ta),tt=f(()=>[{key:Je,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:Dt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:et,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Ht]),Jt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),be=f(()=>{const e=new Set(Jt.value);return tt.value.filter(t=>e.has(t.key))}),Xt=f(()=>be.value[0]||null),ce=f(()=>be.value.flatMap(e=>e.legends||[]).find(e=>e.key===Re.value)||null),Qt=f(()=>be.value.flatMap(e=>e.legends||[]));function en(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const nt=f(()=>be.value.map(en).filter(Boolean)),_e=f(()=>nt.value[0]||null),tn=f(()=>!!te.value),nn=Fa,at=f(()=>Ra({point:te.value?Gn(te.value):null,rowCount:D.value?yt(D.value):0,loading:le.value,empty:oe.value||!D.value})),an=f(()=>at.value.height),rn=f(()=>at.value.style),rt=f(()=>bt(x.value.core).length?bt(x.value.core):Oa),Pe=f(()=>Ee(_t(x.value.distribution).length?_t(x.value.distribution):qe,ge)),sn=f(()=>{const e=Jn(x.value.online);return Xn(e.length?e:$a)}),un=f(()=>Ee(Pt(x.value.age).length?Pt(x.value.age):ja,ge)),on=f(()=>Ee(Nt(x.value.age).length?Nt(x.value.age):Wa,ge)),st=f(()=>Qn(Ua));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(Pe.value.length?Pe.value:Ka).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:Pe.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:st.value}));const ln=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",scrollable:!1,rows:hn(Pe.value).slice(0,10).map((e,t)=>P(g({},e),{unit:e.unit||"户",color:me[t%me.length]}))})),cn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",rows:st.value.map((e,t)=>P(g({},e),{unit:e.unit||"万亩",color:me[(t+1)%me.length]}))})),dn=f(()=>({key:"pasture-online",type:"line",rows:sn.value})),fn=f(()=>({key:"pasture-age",type:"column",variant:"plain",lineOverlay:!0,labelMode:"horizontal",scrollable:!1,rows:un.value})),gn=f(()=>({key:"pasture-gender",type:"donut",rows:on.value})),pn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:H.value})),Ne=f(()=>{const e=M.value.length;return e?ve.value%e:0}),yn=f(()=>M.value[Ne.value]||Be),ut=f(()=>kn(M.value,Ne.value,Be));function hn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Ee(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ya(()=>{Me(),window.addEventListener("resize",Me),kt(),zn(),Sn(),mn()}),ha(()=>{w=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),ma(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function mn(){return C(this,null,function*(){try{const e=yield Pa();if(w)return;M.value=e,ve.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(w)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!w&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function vn(e,t){t!=null&&t.isActive&&(Fe.value=e||null)}function kn(e=[],t=0,n=Be){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function bn(e,t=!0){const n=(e==null?void 0:e.image)||Ot;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function _n(){ot(-1)}function Pn(){ot(1)}function ot(e){const t=M.value.length;t&&(Y({resetError:!0}),ve.value=(Ne.value+e+t)%t)}function Nn(e){const t=M.value.length;if(!t){lt();return}const n=((Number(e)||0)+t)%t;(n!==Ne.value||I||G.value)&&Y({resetError:!0}),ve.value=n,Te(lt)}function lt(){return C(this,null,function*(){var a,s;const e=yn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||G.value)return;I&&Y({resetError:!0}),A.value="",G.value=!0,yield Te();const t=++Z;let n=null;An(t);try{const r=(s=(a=Fe.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Na.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Cn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",G.value=!1,q.value=!1,Z+=1,I=null,ze=!1,Ge())},handleSuccess(){t===Z&&(de(),A.value="",ze=!0,G.value=!1,ct(),it())},fullScreenChangeCallBack(){}}),t!==Z){dt(n),Ge();return}I=n,q.value=!0,Te(()=>{ct(),it()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function it(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function ct(){var d,l;if(typeof document=="undefined")return;const e=Fe.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,ze=!1,Z+=1,a&&dt(a),t&&Ge(),q.value=!1,G.value=!1,n&&(A.value="")}function An(e){de(),ke=window.setTimeout(()=>{e!==Z||!G.value||(A.value="视频加载超时",Y({resetError:!1}))},lr)}function de(){ke&&(window.clearTimeout(ke),ke=null)}function dt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function Ge(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Cn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function Sn(){return C(this,null,function*(){try{const e=yield Ba();if(w)return;x.value=g(g({},Ze),e),kt();const t=ea(e.list);H.value=t.length?t:At(Ye),In(H.value)}catch(e){x.value=Ze,H.value=At(Ye)}})}function In(e=H.value,t=600){w||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(w||!ee.active)&&Ln(e)},t))}function Ln(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(xn).slice(0,60);if(!n.length)return;const a=yield gt(n,5,r=>C(this,null,function*(){const u=xt(r),o=W(r);let i=o,d=null,l=Ie(r,o)||Le(r,r.name,u);try{(!l||!i.some(b))&&(i=yield pt(r))}catch(R){i=o}if(l=l||Ie(r,i)||Le(r,r.name,u),!l){try{d=u?yield za(u):null}catch(Ft){d=null}const R=W(d);l=Rn(d)||Ie(d,R),R.length&&!i.length&&(i=R)}l=l||Le(r,r.name,u);const m=!!(u||Se(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?St(i):O(r),canLocate:m,locateText:m?"定位":"--"};return Tn(_,t),_}));if(w||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&&ft(s)})}function xn(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||W(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function Tn(e,t=ae){if(!e||w||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),ft(n)}function ft(e){e!=null&&e.size&&(H.value=H.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function we(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=W(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Rn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return T(Ae(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return T(Ae(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return T(Ae(u))}return""}function Ae(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function gt(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=It(a);if(!s)return a;try{const r=yield Ma(s),o=we([r]).find(b);return o?na(a,o):a}catch(r){return a}}));return $e(n)})}function Fn(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield pt(e)}catch(d){n=W(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){vt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||vt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function En(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function Mn(e=_e.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===Je||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function yt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>wn(n,a)).length)}function wn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Ut.has(String(e||"").toLowerCase())}function Vn(e={}){const t=ht(e.lng),n=ht(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ht(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function On(e={},t={}){var s,r;const n=$n(e);if(!n||!Object.keys(n).length)return null;const a=jn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:_e.value||Xt.value,lngLat:t.lngLat}}function $n(e={}){var o,i,d,l;const t=mt(e),n=j((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=j((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=j((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||j(t==null?void 0:t.data)||j(t==null?void 0:t.result)||j(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function mt(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function jn(e={},t={}){var r,u;const n=mt(e),a=j((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=j((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function j(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){D.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function vt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Wn(e,t){return`${e}${e}${t}0.025${t}0.90.74`}function Kn(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!Mn(e.overlayLayer||_e.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,D.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Ga(Vn({lng:t,lat:n}));if(a!==ie)return;const _=On(m,e);if(!_||yt(_)<=0){Oe();return}D.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Un(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Qe.value+=1,Te(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Un,resetMap:Dn});function kt(){U("module-stats",{moduleKey:"pasture-management",items:Hn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function Hn(){const e=new Map;(Array.isArray(rt.value)?rt.value:[]).forEach(n=>{!(n!=null&&n.name)||Yn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||jt.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Kt.map(n=>e.get(n)||jt.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function bt(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=qn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Zn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function qn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Zn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Yn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function _t(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Jn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Xn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=T((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=T((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function Pt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function Nt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ea(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=W(t),r=O(t)||St(s),u=fe(t,s),o=xt(t),i=Ie(t,s)||Le(t,a,o),d=Ce(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Se(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(Ct)}function At(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ce(t),grasslandArea:O(t),acreage:O(t)})).sort(Ct)}function Ce(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function Ct(e,t){const n=Ce(e),a=Ce(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Se(e)?1:0,r=Se(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Se(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>ta(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function St(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function ta(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function W(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function na(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=aa(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function aa(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=It(e);return n?`id:${n}`:""}function It(e={}){return Lt(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(Lt).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function Lt(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function xt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:W(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Ie(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=T(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=T(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Tt(e);if(r)return r;for(const u of t){const o=Tt(u);if(o)return o}return""}function T(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(Ia(t))return t;const a=La.find(r=>t.includes(r));if(a)return a;const s=Ae(t);return s&&s!==t?T(s):""}function Le(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=qt[String(r||"").trim()];if(u)return T(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Zt[ra(r)];if(u)return T(u)}return""}function ra(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?xa(n):""}function Tt(e={}){const t=Ue(e),n=oa(t);if(!n)return"";const a=Yt.find(s=>ia(n,s.geometry));return a!=null&&a.name?T(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return sa(n)}function sa(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:De(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:xe(s).map(De).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:He(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:xe(s).map(He).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:Rt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:xe(s).map(Rt).filter(u=>u.length)}:null}function De(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function He(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(De).filter(Boolean)}function Rt(e){return xe(e).map(He).filter(t=>t.length>=3)}function xe(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function ua(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function oa(e){const t=la(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function la(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ia(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Bt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Bt(e,n)):!1}function Bt(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=zt>r&&s<(Ft-_)*(r-R)/(zt-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",Da,[(F(),va(Aa,{key:Qe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":ir,center:et,"initial-zoom":9,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":_e.value,"overlay-layers":nt.value,onReady:En,onMapClick:Kn},null,8,["active","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Ha,"3D地图加载中")),S("div",qa,[S("div",Za,[S("div",Ya,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:ln.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:K(z),height:L.value},{default:X(()=>[S("div",Ja,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:_n}," ‹ ",8,Xa),S("div",{class:Gt(["pasture-video-grid",{"is-single":ut.value.length<=1}])},[(F(!0),$(ka,null,ba(ut.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>vn(a,n),class:Gt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":G.value&&n.isActive}]),style:wt(bn(n.live,n.isActive)),onClick:a=>Nn(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",er)):re("",!0),G.value&&n.isActive?(F(),$("div",tr,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",nr,Vt(A.value),1)):re("",!0),S("div",ar,Vt(n.live.title),1)],14,Qa))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Pn}," › ",8,rr)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",sr,[S("div",ur,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:K(z),height:E.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21",onRowSelect:Fn},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[k(Ca,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Re.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Re.value=n),"topic-key":"grassland",layers:tt.value,legends:Qt.value,multiple:"",width:232,height:430},null,8,["modelValue","selected-legend-key","layers","legends"])]),tn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:wt(rn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":"关闭图斑详情",title:"关闭",onClick:_a(J,["stop"])}," × "),k(Sa,{feature:D.value,empty:oe.value,loading:le.value,width:K(nn),height:an.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{Cr as default}; diff --git a/docs/assets/index-89c6439f-1783995319167.js b/docs/assets/index-89c6439f-1783995319167.js deleted file mode 100644 index 59a8b53..0000000 --- a/docs/assets/index-89c6439f-1783995319167.js +++ /dev/null @@ -1,17858 +0,0 @@ -var UC=Object.defineProperty,OC=Object.defineProperties;var jC=Object.getOwnPropertyDescriptors;var Z7=Object.getOwnPropertySymbols;var jd=Object.prototype.hasOwnProperty,zd=Object.prototype.propertyIsEnumerable;var ss=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")},n5=Math.pow,ls=(t,e,n)=>e in t?UC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,B2=(t,e)=>{for(var n in e||(e={}))jd.call(e,n)&&ls(t,n,e[n]);if(Z7)for(var n of Z7(e))zd.call(e,n)&&ls(t,n,e[n]);return t},t3=(t,e)=>OC(t,jC(e));var Q9=(t,e)=>{var n={};for(var a in t)jd.call(t,a)&&e.indexOf(a)<0&&(n[a]=t[a]);if(t!=null&&Z7)for(var a of Z7(t))e.indexOf(a)<0&&zd.call(t,a)&&(n[a]=t[a]);return n};var H0=(t,e,n)=>(ls(t,typeof e!="symbol"?e+"":e,n),n);var L3=(t,e,n)=>new Promise((a,i)=>{var r=u=>{try{s(n.next(u))}catch(m){i(m)}},o=u=>{try{s(n.throw(u))}catch(m){i(m)}},s=u=>u.done?a(u.value):Promise.resolve(u.value).then(r,o);s((n=n.apply(t,e)).next())}),zC=function(t,e){this[0]=t,this[1]=e};var Yd=t=>{var e=t[ss("asyncIterator")],n=!1,a,i={};return e==null?(e=t[ss("iterator")](),a=r=>i[r]=o=>e[r](o)):(e=e.call(t),a=r=>i[r]=o=>{if(n){if(n=!1,r==="throw")throw o;return o}return n=!0,{done:!1,value:new zC(new Promise(s=>{var u=e[r](o);if(!(u instanceof Object))throw TypeError("Object expected");s(u)}),1)}}),i[ss("iterator")]=()=>i,a("next"),"throw"in e?a("throw"):i.throw=r=>{throw r},"return"in e&&a("return"),i};import{_ as Na,o as O,c as V,a as S,t as l2,r as zi,b as S1,d as a3,w as ie,p as $d,i as Wd,n as o1,u as D1,e as r2,f as On,g as U3,h as jn,j as ae,s as Nm,F as Y3,k as e1,l as o0,m as _e,q as Ae,v as M0,x as ue,y as qe,z as s5,A as Bt,T as Rm,B as Vd,L as ut,C as YC,D as fa,E as r5,G as L4,H as $C,I as WC,J as VC,K as HC,M as KC}from"./index-1783995319167.js";import{C as qC,T as JC,a as al,b as Lm,B as g6,c as v6,L as Jl,d as ta,F as ha,e as ct,f as Y6,S as QC,P as Im,D as Fm,M as Pe,g as bn,h as m5,V as gt,i as x9,j as _0,I as ZC,k as XC,O as Ra,l as Bm,m as eA,n as tA,o as A9,p as Dm,R as pn,q as Tr,r as us,s as N5,t as f8,u as xt,v as nA,w as aA,x as nt,y as iA,z as il,A as Yi,E as Ql,G as Ge,H as Gm,J as Um,K as Om,N as rA,Q as oA,U as sA,W as jm,X as Hd,Y as Zl,Z as rl,_ as lA,$ as uA,a0 as cA,a1 as ma,a2 as dA,a3 as fA,a4 as hA,a5 as T9,a6 as Kd,a7 as qd,a8 as Jd,a9 as Qd,aa as Cr,ab as Xl,ac as mA,ad as pA,ae as gA,af as yA,ag as cs,ah as vA,ai as SA,aj as wA,ak as bA,al as pa,am as eu,an as o5,ao as Rt,ap as $i,aq as TA,ar as CA,as as ol,at as sl,au as AA,av as ki,aw as zm,ax as Ei,ay as _A,az as Ar,aA as xA,aB as Ym,aC as $m,aD as l5,aE as Wm,aF as U0,aG as Tn,aH as j8,aI as s8,aJ as Ni,aK as Ke,aL as M9,aM as nn,aN as MA,aO as PA,aP as kA,aQ as ds,aR as Z9,aS as X9,aT as EA,aU as NA,aV as RA,aW as LA,aX as IA,aY as fs,aZ as Zd,a_ as Xd,a$ as ef,b0 as FA,b1 as BA,b2 as DA,b3 as GA,b4 as tf,b5 as hs}from"./chartTheme-0e0a1707-1783995319167.js";const Wi=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1783995319167.svg",import.meta.url).href,Vi=""+new URL("bottom-menu-arrow-small-19304179-balabala-1783995319167.svg",import.meta.url).href;/** - * @name: autofit.js - * @author: Larry Zhu - * @version: 3.2.8 - * @description: autofit.js 是迄今为止最易用的自适应工具 - * @license: MIT - */let ms=null,ga="",ll="",ul="",ps=null,nf=null,Lt=1,w8=!1;const _r={isAutofitRunning:!1,init(t={},e=!0){e&&console.log("autofit.js is running");const{dw:n=1920,dh:a=1080,el:i=typeof t=="string"?t:"body",resize:r=!0,ignore:o=[],transition:s="none",delay:u=0,limit:m=.1,cssMode:p="scale",allowScroll:f=!1}=t;ms=i;const g=document.querySelector(i);if(!g){console.error(`autofit: '${i}' is not exist`);return}const C=document.createElement("style"),F=document.createElement("style");C.lang="text/css",F.lang="text/css",C.id="autofit-style",F.id="ignoreStyle",!f&&(C.innerHTML="body {overflow: hidden;}");const z=document.querySelector("body");z.appendChild(C),z.appendChild(F),g.style.height=`${a}px`,g.style.width=`${n}px`,g.style.transformOrigin="0 0",!f&&(g.style.overflow="hidden"),gs(n,a,g,o,m,p),ps=()=>{clearTimeout(nf),u!=0?nf=setTimeout(()=>{gs(n,a,g,o,m,p),w8&&cl(ga,ul,ll)},u):(gs(n,a,g,o,m,p),w8&&cl(ga,ul,ll))},r&&window.addEventListener("resize",ps),this.isAutofitRunning=!0,setTimeout(()=>{g.style.transition=`${s}s`})},off(t="body"){try{window.removeEventListener("resize",ps);const e=document.querySelector("#autofit-style");e&&e.remove();const n=document.querySelector("#ignoreStyle");n&&n.remove();const a=document.querySelector(ms||t);a&&(a.style.cssText=""),w8&&Vm()}catch(e){console.error("autofit: Failed to remove normally",e)}this.isAutofitRunning=!1,console.log("autofit.js is off")},elRectification:null,scale:Lt};function cl(t,e=!0,n=1){if(!_r.isAutofitRunning){console.error("autofit.js:(elRectification): autofit has not been initialized yet");return}Vm(),!t&&console.error(`autofit.js:elRectification bad selector: ${t}`),ga=t,ll=n,ul=e;const a=Array.from(document.querySelectorAll(t));if(a.length==0){console.error(`autofit.js:elRectification found no element by selector: "${t}"`);return}for(const i of a){const r=Lt==1?1:Number(Lt)*Number(n);w8||(i.originalWidth=i.clientWidth,i.originalHeight=i.clientHeight),e?(i.style.width=`${i.originalWidth*r}px`,i.style.height=`${i.originalHeight*r}px`):(i.style.width=`${100*r}%`,i.style.height=`${100*r}%`),i.style.transform=`translateZ(0) scale(${1/Number(Lt)})`,i.style.transformOrigin="0 0"}w8=!0}function Vm(){if(ga){w8=!1;for(const t of Array.from(document.querySelectorAll(ga)))t.style.width="",t.style.height="",t.style.transform=""}}function gs(t,e,n,a,i,r="scale"){const o=document.documentElement.clientHeight,s=document.documentElement.clientWidth;Lt=s/oi?Lt:1,_r.scale=+Lt;const u=Math.round(o/Number(Lt)),m=Math.round(s/Number(Lt));n.style.height=`${u}px`,n.style.width=`${m}px`,r==="zoom"?n.style.zoom=`${Lt}`:n.style.transform=`translateZ(0) scale(${Lt})`;const p=document.querySelector("#ignoreStyle");p.innerHTML="";for(const f of a){const g=f;let C=g.el||g.dom;if(typeof g=="string"&&(C=g),!C||typeof C=="object"&&!Object.keys(C).length){console.error(`autofit: found invalid or empty selector/object: ${C}`);continue}const F=g.scale?g.scale:1/Number(Lt),z=F!=Lt&&g.fontSize,Y=F!=Lt&&g.width,i2=F!=Lt&&g.height;p.innerHTML+=` -${C} { - transform: scale(${F})!important; - transform-origin: 0 0; - ${Y?`width: ${Y}!important;`:""} - ${i2?`height: ${i2}!important;`:""} - }`,z&&(p.innerHTML+=` -${C} div ,${C} span,${C} a,${C} * { - font-size: ${z}px; - }`)}}_r.elRectification=cl;const UA={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let t=1;return{maskId:"svgline-"+t,radialGradientId:"radialGradient-"+t}},mounted(){let t=this._.uid;this.maskId="svgline-"+t,this.radialGradientId="radialGradient-"+t}},OA={class:"svg-line-animation"},jA=["viewBox"],zA=["id"],YA=["stop-opacity"],$A=["stop-opacity"],WA=["id"],VA=["r","fill"],HA=["begin","dur","path","keyPoints"],KA=["d","stroke","stroke-width","mask"];function qA(t,e,n,a,i,r){return O(),V("div",OA,[(O(),V("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S("defs",null,[S("radialGradient",{id:i.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[S("stop",{offset:"0%","stop-color":"#fff","stop-opacity":n.dir[1]},null,8,YA),S("stop",{offset:"100%","stop-color":"#fff","stop-opacity":n.dir[0]},null,8,$A)],8,zA),S("mask",{id:i.maskId},[S("circle",{r:n.length,cx:"0",cy:"0",fill:`url(#${i.radialGradientId})`},[S("animateMotion",{begin:`${n.begin}s`,dur:`${n.duration}s`,path:n.path,rotate:"auto",keyPoints:`${n.dir[0]};${n.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,HA)],8,VA)],8,WA)]),S("path",{class:"path-line",d:n.path,stroke:n.color,"stroke-width":n.strokeWidth,mask:`url(#${i.maskId})`},null,8,KA)],8,jA))])}const Hi=Na(UA,[["render",qA]]);const JA={class:"m-header"},QA={class:"m-header-wrap"},ZA={class:"m-header-title"},XA={class:"m-header-subtext"},e_={class:"m-header-left",style:{color:"#fff"}},t_={class:"m-header-right"},n_={class:"m-header-line"},a_={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(t){return(e,n)=>(O(),V("div",JA,[S("div",QA,[S("div",ZA,l2(t.title),1),S("div",XA,l2(t.subText),1)]),S("div",e_,[zi(e.$slots,"left")]),S("div",t_,[zi(e.$slots,"right")]),S("div",n_,[S1(Hi,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),S1(Hi,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const i_={class:"m-menu"},r_={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(t,{emit:e}){const n=e,a=t,i=a3(a.defaultActive);return $d("updateActive",o=>{o!==i.value&&(i.value=o,n("select",o))}),$d("activeIndex",i),ie(()=>a.defaultActive,o=>{o!==i.value&&(i.value=o)}),(o,s)=>(O(),V("div",i_,[zi(o.$slots,"default")]))}},o_={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(t){const e=t,n=Wd("updateActive"),a=Wd("activeIndex"),i=()=>{n(e.index)};return(r,o)=>(O(),V("div",{class:o1(["m-menu-item",{"is-active":t.index===D1(a)}]),onClick:i},[zi(r.$slots,"default")],2))}};let af=0;const rf="webkit moz ms o".split(" ");let B6,D6;const s_=typeof window=="undefined";if(s_)B6=function(){},D6=function(){};else{B6=window.requestAnimationFrame,D6=window.cancelAnimationFrame;let t;for(let e=0;e{e(n+a)},a);return af=n+a,i},D6=function(e){window.clearTimeout(e)})}const l_={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(t){return t>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(t,e,n,a){return n*(-Math.pow(2,-10*t/a)+1)*1024/1023+e}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=B6(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){D6(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,B6(this.count)},reset(){this.startTime=null,D6(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(t){this.startTime||(this.startTime=t),this.timestamp=t;const e=t-this.startTime;this.remaining=this.localDuration-e,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(e,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(e,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(e/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(e/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),e1?this.decimal+e[1]:"",i=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;i.test(n);)n=n.replace(i,"$1"+this.separator+"$2");return this.prefix+n+a+this.suffix}},destroyed(){D6(this.rAF)}};function u_(t,e,n,a,i,r){return O(),V("span",null,l2(i.displayValue),1)}const Hm=Na(l_,[["render",u_]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",Hm);const c_={class:"count-card-left"},d_={class:"count-card-title"},f_={class:"title-zh"},h_={key:0,class:"title-en"},m_={class:"count-card-right"},p_={class:"unit"},g_={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(t){const e=t,n=a3(!0),a=a3(!1),i=a3(0);let r=null;const o=r2(()=>e.info.duration||1800);ie(()=>[e.info.value,e.info.zh],()=>{r&&window.clearTimeout(r),n.value=!0,a.value=!1,i.value+=1},{immediate:!0});function s(p){return p.toUpperCase()}function u(){n.value=!0,a.value=!1}function m(){n.value=!1,a.value=!0,r&&window.clearTimeout(r),r=window.setTimeout(()=>{a.value=!1},900)}return On(()=>{r&&window.clearTimeout(r)}),(p,f)=>(O(),V("div",{class:o1(["count-card",{"is-counting":n.value,"is-settled":a.value}])},[S("div",c_,[S("div",{class:o1(["count-card-icon","icon-"+t.info.icon])},null,2),S("div",d_,[S("div",f_,l2(t.info.zh),1),t.info.en?(O(),V("div",h_,l2(s(t.info.en)),1)):U3("",!0)])]),S("div",m_,[(O(),V("div",{class:"value",key:i.value},[S1(D1(Hm),{startVal:0,endVal:t.info.value,decimals:t.info.decimals,duration:o.value,separator:"",autoplay:!0,onMountedCallback:u,onCallback:m},null,8,["endVal","decimals","duration"])])),S("div",p_,l2(t.info.unit),1)])],2))}};var X7=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function y_(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function ei(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ki={exports:{}};Ki.exports;(function(t,e){function n(N){"@babel/helpers - typeof";return n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_){return typeof _}:function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},n(N)}function a(N,_){if(!(N instanceof _))throw new TypeError("Cannot call a class as a function")}function i(N,_){for(var d=0;d<_.length;d++){var h=_[d];h.enumerable=h.enumerable||!1,h.configurable=!0,"value"in h&&(h.writable=!0),Object.defineProperty(N,h.key,h)}}function r(N,_,d){return _&&i(N.prototype,_),d&&i(N,d),Object.defineProperty(N,"prototype",{writable:!1}),N}function o(N,_,d){return _ in N?Object.defineProperty(N,_,{value:d,enumerable:!0,configurable:!0,writable:!0}):N[_]=d,N}var s=function(){function N(_,d){a(this,N),this.coreX=_,this.coreY=d}return r(N,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}}]),N}();Date.prototype.Format=function(N){var _={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(N)&&(N=N.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var d in _)new RegExp("("+d+")").test(N)&&(N=N.replace(RegExp.$1,RegExp.$1.length==1?_[d]:("00"+_[d]).substr((""+_[d]).length)));return N};var u=function(_,d,h){var y=document.getElementsByTagName("head")[0].getElementsByTagName("script"),w=!1;if(h)w=h();else for(var x=0;x>>1,q3=[["ary",D2],["bind",f2],["bindKey",O2],["curry",T],["curryRight",j],["flip",q2],["partial",K],["partialRight",E2],["rearg",Z2]],T1="[object Arguments]",l0="[object Array]",X1="[object AsyncFunction]",h0="[object Boolean]",y0="[object Date]",je="[object DOMException]",Ve="[object Error]",se="[object Function]",Le="[object GeneratorFunction]",g1="[object Map]",D="[object Number]",u2="[object Null]",K2="[object Object]",i1="[object Promise]",G3="[object Proxy]",B3="[object RegExp]",y1="[object Set]",k1="[object String]",Z="[object Symbol]",_2="[object Undefined]",G2="[object WeakMap]",z2="[object WeakSet]",h2="[object ArrayBuffer]",o3="[object DataView]",J2="[object Float32Array]",m3="[object Float64Array]",k3="[object Int8Array]",P="[object Int16Array]",I="[object Int32Array]",G="[object Uint8Array]",T2="[object Uint8ClampedArray]",u3="[object Uint16Array]",V2="[object Uint32Array]",W=/\b__p \+= '';/g,e3=/\b(__p \+=) '' \+/g,r1=/(__e\(.*?\)|\b__t\)) \+\n'';/g,c0=/&(?:amp|lt|gt|quot|#39);/g,t0=/[&<>"']/g,b=RegExp(c0.source),B=RegExp(t0.source),q=/<%-([\s\S]+?)%>/g,b2=/<%([\s\S]+?)%>/g,C2=/<%=([\s\S]+?)%>/g,m2=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T3=/^\w*$/,x3=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,K3=/[\\^$.*+?()[\]{}|]/g,v1=RegExp(K3.source),Q1=/^\s+/,L1=/\s/,n0=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,K0=/\{\n\/\* \[wrapped with (.+)\] \*/,U=/,? & /,t2=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,N2=/[()=,{}\[\]\/\s]/,Y2=/\\(\\)?/g,g3=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,W3=/\w*$/,l1=/^[-+]0x[0-9a-f]+$/i,c1=/^0b[01]+$/i,z1=/^\[object .+?Constructor\]$/,w0=/^0o[0-7]+$/i,A0=/^(?:0|[1-9]\d*)$/,K1=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,$0=/($^)/,j0=/['\n\r\u2028\u2029\\]/g,Z0="\\ud800-\\udfff",Xe="\\u0300-\\u036f",St="\\ufe20-\\ufe2f",w5="\\u20d0-\\u20ff",En=Xe+St+w5,et="\\u2700-\\u27bf",rt="a-z\\xdf-\\xf6\\xf8-\\xff",r6="\\xac\\xb1\\xd7\\xf7",o6="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ht="\\u2000-\\u206f",L9=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",K8="A-Z\\xc0-\\xd6\\xd8-\\xde",Z5="\\ufe0e\\ufe0f",qa=r6+o6+Ht+L9,X5="['’]",$r="["+Z0+"]",I9="["+qa+"]",F9="["+En+"]",Ja="\\d+",q8="["+et+"]",Qa="["+rt+"]",J8="[^"+Z0+qa+Ja+et+rt+K8+"]",on="\\ud83c[\\udffb-\\udfff]",Za="(?:"+F9+"|"+on+")",Xa="[^"+Z0+"]",Q8="(?:\\ud83c[\\udde6-\\uddff]){2}",Z8="[\\ud800-\\udbff][\\udc00-\\udfff]",b5="["+K8+"]",X8="\\u200d",B9="(?:"+Qa+"|"+J8+")",e7="(?:"+b5+"|"+J8+")",e4="(?:"+X5+"(?:d|ll|m|re|s|t|ve))?",t7="(?:"+X5+"(?:D|LL|M|RE|S|T|VE))?",e9=Za+"?",Pt="["+Z5+"]?",n7="(?:"+X8+"(?:"+[Xa,Q8,Z8].join("|")+")"+Pt+e9+")*",Wr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Vr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",a7=Pt+e9+n7,Hr="(?:"+[q8,Q8,Z8].join("|")+")"+a7,Kr="(?:"+[Xa+F9+"?",F9,Q8,Z8,$r].join("|")+")",qr=RegExp(X5,"g"),Jr=RegExp(F9,"g"),t9=RegExp(on+"(?="+on+")|"+Kr+a7,"g"),i7=RegExp([b5+"?"+Qa+"+"+e4+"(?="+[I9,b5,"$"].join("|")+")",e7+"+"+t7+"(?="+[I9,b5+B9,"$"].join("|")+")",b5+"?"+B9+"+"+e4,b5+"+"+t7,Vr,Wr,Ja,Hr].join("|"),"g"),Qr=RegExp("["+X8+Z0+En+Z5+"]"),t4=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,pe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Zr=-1,W0={};W0[J2]=W0[m3]=W0[k3]=W0[P]=W0[I]=W0[G]=W0[T2]=W0[u3]=W0[V2]=!0,W0[T1]=W0[l0]=W0[h2]=W0[h0]=W0[o3]=W0[y0]=W0[Ve]=W0[se]=W0[g1]=W0[D]=W0[K2]=W0[B3]=W0[y1]=W0[k1]=W0[G2]=!1;var fe={};fe[T1]=fe[l0]=fe[h2]=fe[o3]=fe[h0]=fe[y0]=fe[J2]=fe[m3]=fe[k3]=fe[P]=fe[I]=fe[g1]=fe[D]=fe[K2]=fe[B3]=fe[y1]=fe[k1]=fe[Z]=fe[G]=fe[T2]=fe[u3]=fe[V2]=!0,fe[Ve]=fe[se]=fe[G2]=!1;var r7={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Xr={"&":"&","<":"<",">":">",'"':""","'":"'"},eo={"&":"&","<":"<",">":">",""":'"',"'":"'"},to={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},o7=parseFloat,no=parseInt,n4=typeof c3=="object"&&c3&&c3.Object===Object&&c3,a4=typeof self=="object"&&self&&self.Object===Object&&self,wt=n4||a4||Function("return this")(),i4=_&&!_.nodeType&&_,_6=i4&&!0&&N&&!N.nodeType&&N,r4=_6&&_6.exports===i4,D9=r4&&n4.process,Kt=function(){try{var X=_6&&_6.require&&_6.require("util").types;return X||D9&&D9.binding&&D9.binding("util")}catch(M2){}}(),o4=Kt&&Kt.isArrayBuffer,s7=Kt&&Kt.isDate,s4=Kt&&Kt.isMap,n9=Kt&&Kt.isRegExp,l4=Kt&&Kt.isSet,l7=Kt&&Kt.isTypedArray;function Ut(X,M2,I2){switch(I2.length){case 0:return X.call(M2);case 1:return X.call(M2,I2[0]);case 2:return X.call(M2,I2[0],I2[1]);case 3:return X.call(M2,I2[0],I2[1],I2[2])}return X.apply(M2,I2)}function u7(X,M2,I2,I3){for(var Q3=-1,f1=X==null?0:X.length;++Q3-1}function c4(X,M2,I2){for(var I3=-1,Q3=X==null?0:X.length;++I3-1;);return I2}function p7(X,M2){for(var I2=X.length;I2--&&x6(M2,X[I2],0)>-1;);return I2}function so(X,M2){for(var I2=X.length,I3=0;I2--;)X[I2]===M2&&++I3;return I3}var V0=m4(r7),ye=m4(Xr);function j9(X){return"\\"+to[X]}function sn(X,M2){return X==null?d:X[M2]}function ln(X){return Qr.test(X)}function lo(X){return t4.test(X)}function g7(X){for(var M2,I2=[];!(M2=X.next()).done;)I2.push(M2.value);return I2}function z9(X){var M2=-1,I2=Array(X.size);return X.forEach(function(I3,Q3){I2[++M2]=[Q3,I3]}),I2}function y7(X,M2){return function(I2){return X(M2(I2))}}function l6(X,M2){for(var I2=-1,I3=X.length,Q3=0,f1=[];++I2-1}function cv(l,c){var v=this.__data__,L=E7(v,l);return L<0?(++this.size,v.push([l,c])):v[L][1]=c,this}H6.prototype.clear=ov,H6.prototype.delete=sv,H6.prototype.get=lv,H6.prototype.has=uv,H6.prototype.set=cv;function K6(l){var c=-1,v=l==null?0:l.length;for(this.clear();++c=c?l:c)),l}function $n(l,c,v,L,Q,w2){var W2,r3=c&J,y3=c&H,t1=c&R2;if(v&&(W2=Q?v(l,L,Q,w2):v(l)),W2!==d)return W2;if(!He(l))return l;var n1=q0(l);if(n1){if(W2=mS(l),!r3)return un(l,W2)}else{var h1=zt(l),Y1=h1==se||h1==Le;if(k5(l))return Rc(l,r3);if(h1==K2||h1==T1||Y1&&!Q){if(W2=y3||Y1?{}:Qc(l),!r3)return y3?aS(l,xv(W2,l)):nS(l,lc(W2,l))}else{if(!fe[h1])return Q?l:{};W2=pS(l,h1,r3)}}w2||(w2=new u6);var m0=w2.get(l);if(m0)return m0;w2.set(l,W2),xd(l)?l.forEach(function(R0){W2.add($n(R0,c,v,R0,l,w2))}):Ad(l)&&l.forEach(function(R0,re){W2.set(re,$n(R0,c,v,re,l,w2))});var N0=t1?y3?Go:Do:y3?dn:_t,X0=n1?d:N0(l);return qt(X0||l,function(R0,re){X0&&(re=R0,R0=l[re]),A4(W2,re,$n(R0,c,v,re,l,w2))}),W2}function Mv(l){var c=_t(l);return function(v){return uc(v,l,c)}}function uc(l,c,v){var L=v.length;if(l==null)return!L;for(l=e0(l);L--;){var Q=v[L],w2=c[Q],W2=l[Q];if(W2===d&&!(Q in l)||!w2(W2))return!1}return!0}function cc(l,c,v){if(typeof l!="function")throw new Ne(x);return N4(function(){l.apply(d,v)},c)}function _4(l,c,v,L){var Q=-1,w2=a9,W2=!0,r3=l.length,y3=[],t1=c.length;if(!r3)return y3;v&&(c=Be(c,Jt(v))),L?(w2=c4,W2=!1):c.length>=y&&(w2=i9,W2=!1,c=new u9(c));e:for(;++QQ?0:Q+v),L=L===d||L>Q?Q:J0(L),L<0&&(L+=Q),L=v>L?0:Pd(L);v0&&v(r3)?c>1?kt(r3,c-1,v,L,Q):Nn(Q,r3):L||(Q[Q.length]=r3)}return Q}var So=Gc(),hc=Gc(!0);function P6(l,c){return l&&So(l,c,_t)}function wo(l,c){return l&&hc(l,c,_t)}function R7(l,c){return s6(c,function(v){return X6(l[v])})}function d9(l,c){c=M5(c,l);for(var v=0,L=c.length;l!=null&&vc}function Ev(l,c){return l!=null&&Se.call(l,c)}function Nv(l,c){return l!=null&&c in e0(l)}function Rv(l,c,v){return l>=jt(c,v)&&l=120&&n1.length>=120)?new u9(W2&&n1):d}n1=l[0];var h1=-1,Y1=r3[0];e:for(;++h1-1;)r3!==l&&C7.call(r3,y3,1),C7.call(l,y3,1);return l}function Ac(l,c){for(var v=l?c.length:0,L=v-1;v--;){var Q=c[v];if(v==L||Q!==w2){var w2=Q;Z6(Q)?C7.call(l,Q,1):Eo(l,Q)}}return l}function Mo(l,c){return l+x7(ic()*(c-l+1))}function Wv(l,c,v,L){for(var Q=-1,w2=Tt(_7((c-l)/(v||1)),0),W2=I2(w2);w2--;)W2[L?w2:++Q]=l,l+=v;return W2}function Po(l,c){var v="";if(!l||c<1||c>$1)return v;do c%2&&(v+=l),c=x7(c/2),c&&(l+=l);while(c);return v}function te(l,c){return Wo(ed(l,c,fn),l+"")}function Vv(l){return sc(J9(l))}function Hv(l,c){var v=J9(l);return Y7(v,c9(c,0,v.length))}function P4(l,c,v,L){if(!He(l))return l;c=M5(c,l);for(var Q=-1,w2=c.length,W2=w2-1,r3=l;r3!=null&&++QQ?0:Q+c),v=v>Q?Q:v,v<0&&(v+=Q),Q=c>v?0:v-c>>>0,c>>>=0;for(var w2=I2(Q);++L>>1,W2=l[w2];W2!==null&&!In(W2)&&(v?W2<=c:W2=y){var t1=c?null:sS(l);if(t1)return r9(t1);W2=!1,Q=i9,y3=new u9}else y3=c?[]:r3;e:for(;++L=L?l:Wn(l,c,v)}var Nc=Gy||function(l){return wt.clearTimeout(l)};function Rc(l,c){if(c)return l.slice();var v=l.length,L=Xu?Xu(v):new l.constructor(v);return l.copy(L),L}function Io(l){var c=new l.constructor(l.byteLength);return new b7(c).set(new b7(l)),c}function Zv(l,c){var v=c?Io(l.buffer):l.buffer;return new l.constructor(v,l.byteOffset,l.byteLength)}function Xv(l){var c=new l.constructor(l.source,W3.exec(l));return c.lastIndex=l.lastIndex,c}function eS(l){return C4?e0(C4.call(l)):{}}function Lc(l,c){var v=c?Io(l.buffer):l.buffer;return new l.constructor(v,l.byteOffset,l.length)}function Ic(l,c){if(l!==c){var v=l!==d,L=l===null,Q=l===l,w2=In(l),W2=c!==d,r3=c===null,y3=c===c,t1=In(c);if(!r3&&!t1&&!w2&&l>c||w2&&W2&&y3&&!r3&&!t1||L&&W2&&y3||!v&&y3||!Q)return 1;if(!L&&!w2&&!t1&&l=r3)return y3;var t1=v[L];return y3*(t1=="desc"?-1:1)}}return l.index-c.index}function Fc(l,c,v,L){for(var Q=-1,w2=l.length,W2=v.length,r3=-1,y3=c.length,t1=Tt(w2-W2,0),n1=I2(y3+t1),h1=!L;++r31?v[Q-1]:d,W2=Q>2?v[2]:d;for(w2=l.length>3&&typeof w2=="function"?(Q--,w2):d,W2&&Zt(v[0],v[1],W2)&&(w2=Q<3?d:w2,Q=1),c=e0(c);++L-1?Q[w2?c[W2]:W2]:d}}function jc(l){return Q6(function(c){var v=c.length,L=v,Q=Yn.prototype.thru;for(l&&c.reverse();L--;){var w2=c[L];if(typeof w2!="function")throw new Ne(x);if(Q&&!W2&&j7(w2)=="wrapper")var W2=new Yn([],!0)}for(L=W2?L:v;++L1&&me.reverse(),n1&&y3r3))return!1;var t1=w2.get(l),n1=w2.get(c);if(t1&&n1)return t1==c&&n1==l;var h1=-1,Y1=!0,m0=v&c2?new u9:d;for(w2.set(l,c),w2.set(c,l);++h11?"& ":"")+c[L],c=c.join(v>2?", ":" "),l.replace(n0,`{ -/* [wrapped with `+c+`] */ -`)}function yS(l){return q0(l)||m9(l)||!!(nc&&l&&l[nc])}function Z6(l,c){var v=typeof l;return c=c==null?$1:c,!!c&&(v=="number"||v!="symbol"&&A0.test(l))&&l>-1&&l%1==0&&l0){if(++c>=j3)return arguments[0]}else c=0;return l.apply(d,arguments)}}function Y7(l,c){var v=-1,L=l.length,Q=L-1;for(c=c===d?L:c;++v1?l[c-1]:d;return v=typeof v=="function"?(l.pop(),v):d,fd(l,v)});function hd(l){var c=g2(l);return c.__chain__=!0,c}function Pw(l,c){return c(l),l}function $7(l,c){return c(l)}var kw=Q6(function(l){var c=l.length,v=c?l[0]:0,L=this.__wrapped__,Q=function(w2){return vo(w2,l)};return c>1||this.__actions__.length||!(L instanceof le)||!Z6(v)?this.thru(Q):(L=L.slice(v,+v+(c?1:0)),L.__actions__.push({func:$7,args:[Q],thisArg:d}),new Yn(L,this.__chain__).thru(function(w2){return c&&!w2.length&&w2.push(d),w2}))});function Ew(){return hd(this)}function Nw(){return new Yn(this.value(),this.__chain__)}function Rw(){this.__values__===d&&(this.__values__=Md(this.value()));var l=this.__index__>=this.__values__.length,c=l?d:this.__values__[this.__index__++];return{done:l,value:c}}function Lw(){return this}function Iw(l){for(var c,v=this;v instanceof k7;){var L=od(v);L.__index__=0,L.__values__=d,c?Q.__wrapped__=L:c=L;var Q=L;v=v.__wrapped__}return Q.__wrapped__=l,c}function Fw(){var l=this.__wrapped__;if(l instanceof le){var c=l;return this.__actions__.length&&(c=new le(this)),c=c.reverse(),c.__actions__.push({func:$7,args:[Vo],thisArg:d}),new Yn(c,this.__chain__)}return this.thru(Vo)}function Bw(){return kc(this.__wrapped__,this.__actions__)}var Dw=B7(function(l,c,v){Se.call(l,v)?++l[v]:q6(l,v,1)});function Gw(l,c,v){var L=q0(l)?u4:Pv;return v&&Zt(l,c,v)&&(c=d),L(l,k0(c,3))}function Uw(l,c){var v=q0(l)?s6:fc;return v(l,k0(c,3))}var Ow=Oc(sd),jw=Oc(ld);function zw(l,c){return kt(W7(l,c),1)}function Yw(l,c){return kt(W7(l,c),I1)}function $w(l,c,v){return v=v===d?1:J0(v),kt(W7(l,c),v)}function md(l,c){var v=q0(l)?qt:_5;return v(l,k0(c,3))}function pd(l,c){var v=q0(l)?c7:dc;return v(l,k0(c,3))}var Ww=B7(function(l,c,v){Se.call(l,v)?l[v].push(c):q6(l,v,[c])});function Vw(l,c,v,L){l=cn(l)?l:J9(l),v=v&&!L?J0(v):0;var Q=l.length;return v<0&&(v=Tt(Q+v,0)),J7(l)?v<=Q&&l.indexOf(c,v)>-1:!!Q&&x6(l,c,v)>-1}var Hw=te(function(l,c,v){var L=-1,Q=typeof c=="function",w2=cn(l)?I2(l.length):[];return _5(l,function(W2){w2[++L]=Q?Ut(c,W2,v):x4(W2,c,v)}),w2}),Kw=B7(function(l,c,v){q6(l,v,c)});function W7(l,c){var v=q0(l)?Be:vc;return v(l,k0(c,3))}function qw(l,c,v,L){return l==null?[]:(q0(c)||(c=c==null?[]:[c]),v=L?d:v,q0(v)||(v=v==null?[]:[v]),Tc(l,c,v))}var Jw=B7(function(l,c,v){l[v?0:1].push(c)},function(){return[[],[]]});function Qw(l,c,v){var L=q0(l)?G9:m7,Q=arguments.length<3;return L(l,k0(c,4),v,Q,_5)}function Zw(l,c,v){var L=q0(l)?ao:m7,Q=arguments.length<3;return L(l,k0(c,4),v,Q,dc)}function Xw(l,c){var v=q0(l)?s6:fc;return v(l,K7(k0(c,3)))}function eb(l){var c=q0(l)?sc:Vv;return c(l)}function tb(l,c,v){(v?Zt(l,c,v):c===d)?c=1:c=J0(c);var L=q0(l)?Cv:Hv;return L(l,c)}function nb(l){var c=q0(l)?Av:qv;return c(l)}function ab(l){if(l==null)return 0;if(cn(l))return J7(l)?T5(l):l.length;var c=zt(l);return c==g1||c==y1?l.size:Ao(l).length}function ib(l,c,v){var L=q0(l)?V6:Jv;return v&&Zt(l,c,v)&&(c=d),L(l,k0(c,3))}var rb=te(function(l,c){if(l==null)return[];var v=c.length;return v>1&&Zt(l,c[0],c[1])?c=[]:v>2&&Zt(c[0],c[1],c[2])&&(c=[c[0]]),Tc(l,kt(c,1),[])}),V7=Uy||function(){return wt.Date.now()};function ob(l,c){if(typeof c!="function")throw new Ne(x);return l=J0(l),function(){if(--l<1)return c.apply(this,arguments)}}function gd(l,c,v){return c=v?d:c,c=l&&c==null?l.length:c,J6(l,D2,d,d,d,d,c)}function yd(l,c){var v;if(typeof c!="function")throw new Ne(x);return l=J0(l),function(){return--l>0&&(v=c.apply(this,arguments)),l<=1&&(c=d),v}}var Ko=te(function(l,c,v){var L=f2;if(v.length){var Q=l6(v,K9(Ko));L|=K}return J6(l,L,c,v,Q)}),vd=te(function(l,c,v){var L=f2|O2;if(v.length){var Q=l6(v,K9(vd));L|=K}return J6(c,L,l,v,Q)});function Sd(l,c,v){c=v?d:c;var L=J6(l,T,d,d,d,d,d,c);return L.placeholder=Sd.placeholder,L}function wd(l,c,v){c=v?d:c;var L=J6(l,j,d,d,d,d,d,c);return L.placeholder=wd.placeholder,L}function bd(l,c,v){var L,Q,w2,W2,r3,y3,t1=0,n1=!1,h1=!1,Y1=!0;if(typeof l!="function")throw new Ne(x);c=Hn(c)||0,He(v)&&(n1=!!v.leading,h1="maxWait"in v,w2=h1?Tt(Hn(v.maxWait)||0,c):w2,Y1="trailing"in v?!!v.trailing:Y1);function m0(lt){var d6=L,t5=Q;return L=Q=d,t1=lt,W2=l.apply(t5,d6),W2}function N0(lt){return t1=lt,r3=N4(re,c),n1?m0(lt):W2}function X0(lt){var d6=lt-y3,t5=lt-t1,Od=c-d6;return h1?jt(Od,w2-t5):Od}function R0(lt){var d6=lt-y3,t5=lt-t1;return y3===d||d6>=c||d6<0||h1&&t5>=w2}function re(){var lt=V7();if(R0(lt))return me(lt);r3=N4(re,X0(lt))}function me(lt){return r3=d,Y1&&L?m0(lt):(L=Q=d,W2)}function Fn(){r3!==d&&Nc(r3),t1=0,L=y3=Q=r3=d}function Xt(){return r3===d?W2:me(V7())}function Bn(){var lt=V7(),d6=R0(lt);if(L=arguments,Q=this,y3=lt,d6){if(r3===d)return N0(y3);if(h1)return Nc(r3),r3=N4(re,c),m0(y3)}return r3===d&&(r3=N4(re,c)),W2}return Bn.cancel=Fn,Bn.flush=Xt,Bn}var sb=te(function(l,c){return cc(l,1,c)}),lb=te(function(l,c,v){return cc(l,Hn(c)||0,v)});function ub(l){return J6(l,q2)}function H7(l,c){if(typeof l!="function"||c!=null&&typeof c!="function")throw new Ne(x);var v=function(){var L=arguments,Q=c?c.apply(this,L):L[0],w2=v.cache;if(w2.has(Q))return w2.get(Q);var W2=l.apply(this,L);return v.cache=w2.set(Q,W2)||w2,W2};return v.cache=new(H7.Cache||K6),v}H7.Cache=K6;function K7(l){if(typeof l!="function")throw new Ne(x);return function(){var c=arguments;switch(c.length){case 0:return!l.call(this);case 1:return!l.call(this,c[0]);case 2:return!l.call(this,c[0],c[1]);case 3:return!l.call(this,c[0],c[1],c[2])}return!l.apply(this,c)}}function cb(l){return yd(2,l)}var db=Qv(function(l,c){c=c.length==1&&q0(c[0])?Be(c[0],Jt(k0())):Be(kt(c,1),Jt(k0()));var v=c.length;return te(function(L){for(var Q=-1,w2=jt(L.length,v);++Q=c}),m9=pc(function(){return arguments}())?pc:function(l){return tt(l)&&Se.call(l,"callee")&&!tc.call(l,"callee")},q0=I2.isArray,xb=o4?Jt(o4):Iv;function cn(l){return l!=null&&q7(l.length)&&!X6(l)}function st(l){return tt(l)&&cn(l)}function Mb(l){return l===!0||l===!1||tt(l)&&Qt(l)==h0}var k5=jy||os,Pb=s7?Jt(s7):Fv;function kb(l){return tt(l)&&l.nodeType===1&&!R4(l)}function Eb(l){if(l==null)return!0;if(cn(l)&&(q0(l)||typeof l=="string"||typeof l.splice=="function"||k5(l)||q9(l)||m9(l)))return!l.length;var c=zt(l);if(c==g1||c==y1)return!l.size;if(E4(l))return!Ao(l).length;for(var v in l)if(Se.call(l,v))return!1;return!0}function Nb(l,c){return M4(l,c)}function Rb(l,c,v){v=typeof v=="function"?v:d;var L=v?v(l,c):d;return L===d?M4(l,c,d,v):!!L}function Jo(l){if(!tt(l))return!1;var c=Qt(l);return c==Ve||c==je||typeof l.message=="string"&&typeof l.name=="string"&&!R4(l)}function Lb(l){return typeof l=="number"&&ac(l)}function X6(l){if(!He(l))return!1;var c=Qt(l);return c==se||c==Le||c==X1||c==G3}function Cd(l){return typeof l=="number"&&l==J0(l)}function q7(l){return typeof l=="number"&&l>-1&&l%1==0&&l<=$1}function He(l){var c=typeof l;return l!=null&&(c=="object"||c=="function")}function tt(l){return l!=null&&typeof l=="object"}var Ad=s4?Jt(s4):Dv;function Ib(l,c){return l===c||Co(l,c,Oo(c))}function Fb(l,c,v){return v=typeof v=="function"?v:d,Co(l,c,Oo(c),v)}function Bb(l){return _d(l)&&l!=+l}function Db(l){if(wS(l))throw new Q3(w);return gc(l)}function Gb(l){return l===null}function Ub(l){return l==null}function _d(l){return typeof l=="number"||tt(l)&&Qt(l)==D}function R4(l){if(!tt(l)||Qt(l)!=K2)return!1;var c=T7(l);if(c===null)return!0;var v=Se.call(c,"constructor")&&c.constructor;return typeof v=="function"&&v instanceof v&&M6.call(v)==Fy}var Qo=n9?Jt(n9):Gv;function Ob(l){return Cd(l)&&l>=-$1&&l<=$1}var xd=l4?Jt(l4):Uv;function J7(l){return typeof l=="string"||!q0(l)&&tt(l)&&Qt(l)==k1}function In(l){return typeof l=="symbol"||tt(l)&&Qt(l)==Z}var q9=l7?Jt(l7):Ov;function jb(l){return l===d}function zb(l){return tt(l)&&zt(l)==G2}function Yb(l){return tt(l)&&Qt(l)==z2}var $b=O7(_o),Wb=O7(function(l,c){return l<=c});function Md(l){if(!l)return[];if(cn(l))return J7(l)?Rn(l):un(l);if(S4&&l[S4])return g7(l[S4]());var c=zt(l),v=c==g1?z9:c==y1?r9:J9;return v(l)}function e5(l){if(!l)return l===0?l:0;if(l=Hn(l),l===I1||l===-I1){var c=l<0?-1:1;return c*W1}return l===l?l:0}function J0(l){var c=e5(l),v=c%1;return c===c?v?c-v:c:0}function Pd(l){return l?c9(J0(l),0,L2):0}function Hn(l){if(typeof l=="number")return l;if(In(l))return E0;if(He(l)){var c=typeof l.valueOf=="function"?l.valueOf():l;l=He(c)?c+"":c}if(typeof l!="string")return l===0?l:+l;l=O9(l);var v=c1.test(l);return v||w0.test(l)?no(l.slice(2),v?2:8):l1.test(l)?E0:+l}function kd(l){return k6(l,dn(l))}function Vb(l){return l?c9(J0(l),-$1,$1):l===0?l:0}function Me(l){return l==null?"":Ln(l)}var Hb=V9(function(l,c){if(E4(c)||cn(c)){k6(c,_t(c),l);return}for(var v in c)Se.call(c,v)&&A4(l,v,c[v])}),Ed=V9(function(l,c){k6(c,dn(c),l)}),Q7=V9(function(l,c,v,L){k6(c,dn(c),l,L)}),Kb=V9(function(l,c,v,L){k6(c,_t(c),l,L)}),qb=Q6(vo);function Jb(l,c){var v=W9(l);return c==null?v:lc(v,c)}var Qb=te(function(l,c){l=e0(l);var v=-1,L=c.length,Q=L>2?c[2]:d;for(Q&&Zt(c[0],c[1],Q)&&(L=1);++v1),w2}),k6(l,Go(l),v),L&&(v=$n(v,J|H|R2,lS));for(var Q=c.length;Q--;)Eo(v,c[Q]);return v});function pT(l,c){return Rd(l,K7(k0(c)))}var gT=Q6(function(l,c){return l==null?{}:Yv(l,c)});function Rd(l,c){if(l==null)return{};var v=Be(Go(l),function(L){return[L]});return c=k0(c),Cc(l,v,function(L,Q){return c(L,Q[0])})}function yT(l,c,v){c=M5(c,l);var L=-1,Q=c.length;for(Q||(Q=1,l=d);++Lc){var L=l;l=c,c=L}if(v||l%1||c%1){var Q=ic();return jt(l+Q*(c-l+o7("1e-"+((Q+"").length-1))),c)}return Mo(l,c)}var PT=H9(function(l,c,v){return c=c.toLowerCase(),l+(v?Fd(c):c)});function Fd(l){return es(Me(l).toLowerCase())}function Bd(l){return l=Me(l),l&&l.replace(K1,V0).replace(Jr,"")}function kT(l,c,v){l=Me(l),c=Ln(c);var L=l.length;v=v===d?L:c9(J0(v),0,L);var Q=v;return v-=c.length,v>=0&&l.slice(v,Q)==c}function ET(l){return l=Me(l),l&&B.test(l)?l.replace(t0,ye):l}function NT(l){return l=Me(l),l&&v1.test(l)?l.replace(K3,"\\$&"):l}var RT=H9(function(l,c,v){return l+(v?"-":"")+c.toLowerCase()}),LT=H9(function(l,c,v){return l+(v?" ":"")+c.toLowerCase()}),IT=Uc("toLowerCase");function FT(l,c,v){l=Me(l),c=J0(c);var L=c?T5(l):0;if(!c||L>=c)return l;var Q=(c-L)/2;return U7(x7(Q),v)+l+U7(_7(Q),v)}function BT(l,c,v){l=Me(l),c=J0(c);var L=c?T5(l):0;return c&&L>>0,v?(l=Me(l),l&&(typeof c=="string"||c!=null&&!Qo(c))&&(c=Ln(c),!c&&ln(l))?P5(Rn(l),0,v):l.split(c,v)):[]}var YT=H9(function(l,c,v){return l+(v?" ":"")+es(c)});function $T(l,c,v){return l=Me(l),v=v==null?0:c9(J0(v),0,l.length),c=Ln(c),l.slice(v,v+c.length)==c}function WT(l,c,v){var L=g2.templateSettings;v&&Zt(l,c,v)&&(c=d),l=Me(l),c=Q7({},c,L,Vc);var Q=Q7({},c.imports,L.imports,Vc),w2=_t(Q),W2=y4(Q,w2),r3,y3,t1=0,n1=c.interpolate||$0,h1="__p += '",Y1=b0((c.escape||$0).source+"|"+n1.source+"|"+(n1===C2?g3:$0).source+"|"+(c.evaluate||$0).source+"|$","g"),m0="//# sourceURL="+(Se.call(c,"sourceURL")?(c.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Zr+"]")+` -`;l.replace(Y1,function(R0,re,me,Fn,Xt,Bn){return me||(me=Fn),h1+=l.slice(t1,Bn).replace(j0,j9),re&&(r3=!0,h1+=`' + -__e(`+re+`) + -'`),Xt&&(y3=!0,h1+=`'; -`+Xt+`; -__p += '`),me&&(h1+=`' + -((__t = (`+me+`)) == null ? '' : __t) + -'`),t1=Bn+R0.length,R0}),h1+=`'; -`;var N0=Se.call(c,"variable")&&c.variable;if(!N0)h1=`with (obj) { -`+h1+` -} -`;else if(N2.test(N0))throw new Q3(k);h1=(y3?h1.replace(W,""):h1).replace(e3,"$1").replace(r1,"$1;"),h1="function("+(N0||"obj")+`) { -`+(N0?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(r3?", __e = _.escape":"")+(y3?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+h1+`return __p -}`;var X0=Gd(function(){return f1(w2,m0+"return "+h1).apply(d,W2)});if(X0.source=h1,Jo(X0))throw X0;return X0}function VT(l){return Me(l).toLowerCase()}function HT(l){return Me(l).toUpperCase()}function KT(l,c,v){if(l=Me(l),l&&(v||c===d))return O9(l);if(!l||!(c=Ln(c)))return l;var L=Rn(l),Q=Rn(c),w2=v4(L,Q),W2=p7(L,Q)+1;return P5(L,w2,W2).join("")}function qT(l,c,v){if(l=Me(l),l&&(v||c===d))return l.slice(0,o9(l)+1);if(!l||!(c=Ln(c)))return l;var L=Rn(l),Q=p7(L,Rn(c))+1;return P5(L,0,Q).join("")}function JT(l,c,v){if(l=Me(l),l&&(v||c===d))return l.replace(Q1,"");if(!l||!(c=Ln(c)))return l;var L=Rn(l),Q=v4(L,Rn(c));return P5(L,Q).join("")}function QT(l,c){var v=f3,L=P3;if(He(c)){var Q="separator"in c?c.separator:Q;v="length"in c?J0(c.length):v,L="omission"in c?Ln(c.omission):L}l=Me(l);var w2=l.length;if(ln(l)){var W2=Rn(l);w2=W2.length}if(v>=w2)return l;var r3=v-T5(L);if(r3<1)return L;var y3=W2?P5(W2,0,r3).join(""):l.slice(0,r3);if(Q===d)return y3+L;if(W2&&(r3+=y3.length-r3),Qo(Q)){if(l.slice(r3).search(Q)){var t1,n1=y3;for(Q.global||(Q=b0(Q.source,Me(W3.exec(Q))+"g")),Q.lastIndex=0;t1=Q.exec(n1);)var h1=t1.index;y3=y3.slice(0,h1===d?r3:h1)}}else if(l.indexOf(Ln(Q),r3)!=r3){var Y1=y3.lastIndexOf(Q);Y1>-1&&(y3=y3.slice(0,Y1))}return y3+L}function ZT(l){return l=Me(l),l&&b.test(l)?l.replace(c0,ho):l}var XT=H9(function(l,c,v){return l+(v?" ":"")+c.toUpperCase()}),es=Uc("toUpperCase");function Dd(l,c,v){return l=Me(l),c=v?d:c,c===d?lo(l)?R(l):io(l):l.match(c)||[]}var Gd=te(function(l,c){try{return Ut(l,d,c)}catch(v){return Jo(v)?v:new Q3(v)}}),eC=Q6(function(l,c){return qt(c,function(v){v=E6(v),q6(l,v,Ko(l[v],l))}),l});function tC(l){var c=l==null?0:l.length,v=k0();return l=c?Be(l,function(L){if(typeof L[1]!="function")throw new Ne(x);return[v(L[0]),L[1]]}):[],te(function(L){for(var Q=-1;++Q$1)return[];var v=L2,L=jt(l,L2);c=k0(c),l-=L2;for(var Q=g4(L,c);++v0||c<0)?new le(v):(l<0?v=v.takeRight(-l):l&&(v=v.drop(l)),c!==d&&(c=J0(c),v=c<0?v.dropRight(-c):v.take(c-l)),v)},le.prototype.takeRightWhile=function(l){return this.reverse().takeWhile(l).reverse()},le.prototype.toArray=function(){return this.take(L2)},P6(le.prototype,function(l,c){var v=/^(?:filter|find|map|reject)|While$/.test(c),L=/^(?:head|last)$/.test(c),Q=g2[L?"take"+(c=="last"?"Right":""):c],w2=L||/^find/.test(c);Q&&(g2.prototype[c]=function(){var W2=this.__wrapped__,r3=L?[1]:arguments,y3=W2 instanceof le,t1=r3[0],n1=y3||q0(W2),h1=function(re){var me=Q.apply(g2,Nn([re],r3));return L&&Y1?me[0]:me};n1&&v&&typeof t1=="function"&&t1.length!=1&&(y3=n1=!1);var Y1=this.__chain__,m0=!!this.__actions__.length,N0=w2&&!Y1,X0=y3&&!m0;if(!w2&&n1){W2=X0?W2:new le(this);var R0=l.apply(W2,r3);return R0.__actions__.push({func:$7,args:[h1],thisArg:d}),new Yn(R0,Y1)}return N0&&X0?l.apply(this,r3):(R0=this.thru(h1),N0?L?R0.value()[0]:R0.value():R0)})}),qt(["pop","push","shift","sort","splice","unshift"],function(l){var c=Ot[l],v=/^(?:push|sort|unshift)$/.test(l)?"tap":"thru",L=/^(?:pop|shift)$/.test(l);g2.prototype[l]=function(){var Q=arguments;if(L&&!this.__chain__){var w2=this.value();return c.apply(q0(w2)?w2:[],Q)}return this[v](function(W2){return c.apply(q0(W2)?W2:[],Q)})}}),P6(le.prototype,function(l,c){var v=g2[c];if(v){var L=v.name+"";Se.call($9,L)||($9[L]=[]),$9[L].push({name:c,func:v})}}),$9[D7(d,O2).name]=[{name:"wrapper",func:d}],le.prototype.clone=Zy,le.prototype.reverse=Xy,le.prototype.value=ev,g2.prototype.at=kw,g2.prototype.chain=Ew,g2.prototype.commit=Nw,g2.prototype.next=Rw,g2.prototype.plant=Iw,g2.prototype.reverse=Fw,g2.prototype.toJSON=g2.prototype.valueOf=g2.prototype.value=Bw,g2.prototype.first=g2.prototype.head,S4&&(g2.prototype[S4]=Lw),g2},k2=n2();_6?((_6.exports=k2)._=k2,i4._=k2):wt._=k2}).call(c3)});function b3(N,_){var d=_.parentNode;d.lastChild==_?d.appendChild(N):d.insertBefore(N,_.nextSibling)}var N3=function(){function N(_,d){a(this,N),this.id=d,this.jSPlugin=_,this.state={play:!1,loading:!1,text:""},this.loadingSetText=this.loadingSetText}return r(N,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"setPlayStatus",value:function(d){this.state=Object.assign(this.state,d)}},{key:"loadingStart",value:function(d){var h=document.createElement("style");document.getElementsByTagName("head")[0].appendChild(h),h.innerHTML="@keyframes antRotate {to {transform: rotate(400deg);transform-origin:50% 50%;}} .loading {display: inline-block;z-index: 1000;-webkit-animation: antRotate 1s infinite linear;animation: antRotate 1s infinite linear;}";var y=d,w=document.getElementById(y),x=w.offsetWidth,k=w.offsetHeight,a2=0,e2=w.offsetLeft;document.getElementById("".concat(d,"-loading-id-0"))&&document.getElementById("".concat(d,"-loading-id-0")).parentNode.removeChild(document.getElementById("".concat(d,"-loading-id-0")));var s2=document.createElement("div");s2.setAttribute("id","".concat(d,"-loading-id-0"));var p2="position:absolute;outline:none;pointer-events:none;";console.log("this.jSPlugin",this.jSPlugin),p2+="width: 100%;background-size: cover; background-repeat:no-repeat;",p2+="height: 100%;",p2+="top:"+a2+";",p2+="left:"+e2+"px;",s2.setAttribute("style",p2),s2.style.height=k,s2.setAttribute("class","loading-container"),b3(s2,w);var J=1,H=document.createElement("div"),R2=document.createElement("div");H.setAttribute("class","loading-item"),H.setAttribute("id","".concat(d,"-loading-item-0"));var p2="display:inline-flex;pointer-events:none;flex-direction:column;justify-content:center;align-items: center;width:100%;height:"+k+"px;outline:none;vertical-align: top;position:absolute;";p2+="left:"+c2(k,x,J,0).left+"px;",p2+="top:"+c2(k,x,J,0).top+"px;",H.setAttribute("style",p2);function c2(o2,T,j,K){var E2=parseInt(K/j,10)*(o2/j),D2=K%j*(T/j);return{top:E2,left:D2}}var f2=document.createElement("div");R2.innerHTML="",R2.style.color="#fff",f2.setAttribute("class","loading"),f2.setAttribute("id","loading-icon");var O2='';f2.innerHTML=O2,H.appendChild(f2),H.appendChild(R2),s2.appendChild(H)}},{key:"loadingStop",value:function(d){var h=document.getElementById("".concat(d,"-loading-item-0"));h&&h.removeChild(document.getElementById("loading-icon"))}},{key:"loadingSetText",value:function(d){var h=this;if(this.loadingClearText(),document.getElementById("".concat(this.id,"-loading-item-0"))){var y=document.getElementById("".concat(this.id,"-loading-item-0")).childNodes[1];if(!y){var w=document.getElementById("".concat(this.id,"-loading-item-0"));w.style.height="100%",y=document.createElement("div"),y.innerHTML=d.text,w.appendChild(y)}y.innerHTML=d.text,y.style.fontSize="14px",y.style.color=d.color||"#FFFFFF",this.state.text=d.text,d.delayClear&&setTimeout(function(){h.loadingClearText()},parseInt(d.delayClear))}}},{key:"loadingClearText",value:function(){if(document.getElementById("".concat(this.id,"-loading-item-0"))){var d=document.getElementById("".concat(this.id,"-loading-item-0")).childNodes;d.length>1?d[1].parentNode.removeChild(d[1]):d[0]&&d[0].parentNode.removeChild(d[0])}}},{key:"loadingClear",value:function(){if(document.getElementById("".concat(this.id,"-loading-item-0"))){for(var d=document.getElementById("".concat(this.id,"-loading-item-0")).childNodes,h=d.length-1;h>=0;h--)d[h].parentNode.removeChild(d[h]);document.getElementById("".concat(this.id,"-loading-id-0"))&&(document.getElementById("".concat(this.id,"-loading-id-0")).style.background="none"),document.getElementById("loading-icon")&&document.getElementById("loading-icon").parentNode.removeChild(document.getElementById("loading-icon"))}}},{key:"loadingEnd",value:function(){var d=document.getElementById("".concat(this.id,"-loading-item-0"));if(d){d.parentNode.removeChild(d);var h=document.getElementById("".concat(this.id,"-loading-id-0"));h&&h.children.length===0&&h.parentNode.removeChild(h)}document.getElementById("".concat(this.id,"-loading-item-0")).style.background="none"}}]),N}(),_3=function(){function N(_,d){a(this,N),this.id=d,this.jSPlugin=_,this.timer=null,this.state={play:!1,loading:!1}}return r(N,[{key:"default",value:function(d){var h=this,y="msgId";document.getElementById("".concat(this.id,"-").concat(y))&&document.getElementById("".concat(this.id,"-wrap")).removeChild(document.getElementById("".concat(this.id,"-").concat(y)));var w=document.createElement("div");w.id="".concat(this.id,"-").concat(y),w.style="position: absolute;top: 50%;left:calc(50% - ".concat(d.length*14/2,"px);padding: 4px 16px;background: #00000080;color: #FFFFFF;font-size: 14px"),w.innerHTML=d,document.getElementById("".concat(this.id,"-wrap")).appendChild(w),this.timer&&clearTimeout(this.timer),this.timer=setTimeout(function(){document.getElementById("".concat(h.id,"-wrap")).removeChild(document.getElementById("".concat(h.id,"-").concat(y)))},2e3)}}]),N}(),J3=[{moduleCode:"",detailCode:"405984",description:"",solution:"",updateTime:1559564188e3},{moduleCode:"",detailCode:"10035",description:"获取子账户AccessToken异常,子账户不存在或子账户不属于该开发者",solution:"",updateTime:1559551958e3},{moduleCode:"",detailCode:"1052674",description:"获取本地录像失败",solution:"",updateTime:1558579653e3},{moduleCode:"",detailCode:"395547",description:"",solution:"",updateTime:1557367296e3},{moduleCode:"",detailCode:"12",description:"",solution:"",updateTime:1557229476e3},{moduleCode:"",detailCode:"10052",description:"余额不足",solution:"",updateTime:1557121463e3},{moduleCode:"",detailCode:"20108",description:"当前用户和所添加用户不是好友关系",solution:"",updateTime:1556541725e3},{moduleCode:"",detailCode:"10009",description:"",solution:"",updateTime:1556422452e3},{moduleCode:"",detailCode:"320001",description:"通道不存在",solution:"请检查录像机的关联状态是否正常,没有摄像头的通道无法播放",updateTime:1556419044e3},{moduleCode:"",detailCode:"120001",description:"通道不存在",solution:"请检查录像机的关联状态是否正常,没有摄像头的通道无法播放",updateTime:155641903e4},{moduleCode:"",detailCode:"320049",description:"",solution:"",updateTime:1556272984e3},{moduleCode:"",detailCode:"380227",description:"",solution:"",updateTime:1556264379e3},{moduleCode:"",detailCode:"10033",description:"policy参数信息异常",solution:"",updateTime:1555922124e3},{moduleCode:"",detailCode:"10065",description:"weakAppKey 不属于accessToken对应的用户",solution:"",updateTime:1555497522e3},{moduleCode:"",detailCode:"100001",description:"",solution:"",updateTime:1555141776e3},{moduleCode:"",detailCode:"395558",description:"",solution:"",updateTime:1554987121e3},{moduleCode:"",detailCode:"70001",description:"智能家居买断用户设备受到限制,建议合理选择pagestart和pageSize",solution:"",updateTime:1554691023e3},{moduleCode:"",detailCode:"170001",description:"",solution:"",updateTime:1554691023e3},{moduleCode:"",detailCode:"1012",description:"重置失败",solution:"",updateTime:1554645841e3},{moduleCode:"",detailCode:"1043",description:"重置失败",solution:"",updateTime:1554645834e3},{moduleCode:"",detailCode:"60060",description:"直播功能未开通",solution:"通道未开通直播功能,请先开通直播",updateTime:1554346018e3},{moduleCode:"",detailCode:"380203",description:"",solution:"",updateTime:1554093666e3},{moduleCode:"",detailCode:"399048",description:"免费版并发数达到上限,请升级企业版使用多并发能力",solution:"升级成为企业版套餐即可取消并发数限制",updateTime:1553839878e3},{moduleCode:"",detailCode:"60007",description:"预置点个数超过最大值",solution:"",updateTime:1553671316e3},{moduleCode:"",detailCode:"1005",description:"",solution:"",updateTime:1553513701e3},{moduleCode:"",detailCode:"20605",description:"其他用户正在认证中",solution:"",updateTime:1552976317e3},{moduleCode:"",detailCode:"90004",description:"当前型号设备暂时不支持AI任务:CS-C3W-3B1WFR-YGL",solution:"",updateTime:1552898525e3},{moduleCode:"",detailCode:"60046",description:"添加的设备的IP和本设备的IP冲突",solution:"",updateTime:1552872372e3},{moduleCode:"",detailCode:"3",description:"修改视频清晰度失败!",solution:"",updateTime:1552440229e3},{moduleCode:"",detailCode:"1013",description:"",solution:"",updateTime:1552035069e3},{moduleCode:"",detailCode:"370007",description:"",solution:"",updateTime:1551852327e3},{moduleCode:"",detailCode:"-1",description:"",solution:"",updateTime:1551752889e3},{moduleCode:"",detailCode:"30005",description:"弱账户不存在",solution:"",updateTime:1551422358e3},{moduleCode:"",detailCode:"90006",description:"用户操作AI任务受限",solution:"",updateTime:155107332e4},{moduleCode:"",detailCode:"60203",description:"未开通相关服务",solution:"",updateTime:155062307e4},{moduleCode:"",detailCode:"10002",description:"accessToken过期或异常",solution:"",updateTime:1550300346e3},{moduleCode:"",detailCode:"380339",description:"",solution:"",updateTime:1549889458e3},{moduleCode:"",detailCode:"90002",description:"AI任务设备配置数达到上限:3",solution:"",updateTime:1549071664e3},{moduleCode:"",detailCode:"380008",description:"",solution:"",updateTime:1549005979e3},{moduleCode:"",detailCode:"320227",description:"",solution:"",updateTime:1548739731e3},{moduleCode:"",detailCode:"60059",description:"ezopen地址均不可用",solution:"",updateTime:154839535e4},{moduleCode:"",detailCode:"10005",description:"appKey异常",solution:"",updateTime:1548317858e3},{moduleCode:"",detailCode:"60045",description:"添加的设备的IP和其他通道的IP冲突",solution:"",updateTime:1548155085e3},{moduleCode:"",detailCode:"60047",description:"码流类型不支持",solution:"",updateTime:1547962108e3},{moduleCode:"",detailCode:"60041",description:"添加的设备被其他设备关联或响应超时",solution:"",updateTime:154796098e4},{moduleCode:"",detailCode:"110029",description:"个人用户接口调用频率超限",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1547606859e3},{moduleCode:"",detailCode:"380355",description:"设备直连推流异常结束",solution:"",updateTime:1547106294e3},{moduleCode:"",detailCode:"320081",description:"",solution:"",updateTime:1547106279e3},{moduleCode:"",detailCode:"60035",description:"购买云存储服务失败",solution:"",updateTime:1547026959e3},{moduleCode:"",detailCode:"90005",description:"设备已存在:C75714141",solution:"",updateTime:1546940622e3},{moduleCode:"",detailCode:"1053445",description:"该时间段没有录像片段",solution:"",updateTime:1546935727e3},{moduleCode:"",detailCode:"90007",description:"设备未加入到AI任务",solution:"",updateTime:1546932948e3},{moduleCode:"",detailCode:"326000",description:"",solution:"",updateTime:1546823143e3},{moduleCode:"",detailCode:"1021",description:"重置失败",solution:"",updateTime:1546781152e3},{moduleCode:"",detailCode:"2001",description:"删除设备失败!",solution:"",updateTime:1546422886e3},{moduleCode:"",detailCode:"380425",description:"",solution:"",updateTime:1546407694e3},{moduleCode:"",detailCode:"120097",description:"",solution:"",updateTime:1546085995e3},{moduleCode:"",detailCode:"10059",description:"requestId已存在",solution:"",updateTime:1545824509e3},{moduleCode:"",detailCode:"1154723",description:"",solution:"",updateTime:1545795209e3},{moduleCode:"",detailCode:"60043",description:"添加的设备超出最大数量",solution:"",updateTime:1545493607e3},{moduleCode:"",detailCode:"1152677",description:"",solution:"",updateTime:1545313404e3},{moduleCode:"",detailCode:"20097",description:"设备添加异常,设备验证码为ABCDEF或设备被N1,R1关联",solution:"",updateTime:1545310795e3},{moduleCode:"",detailCode:"10060",description:"设备不支持该云存储类型",solution:"",updateTime:1545309064e3},{moduleCode:"",detailCode:"20102",description:"无相应邀请信息,无法接受邀请",solution:"",updateTime:1545204966e3},{moduleCode:"",detailCode:"10053",description:"云存储开通中",solution:"",updateTime:1545100293e3},{moduleCode:"",detailCode:"20401",description:"用户云空间信息不存在",solution:"",updateTime:154501788e4},{moduleCode:"",detailCode:"20600",description:"临时密码数已达上限",solution:"",updateTime:1544873457e3},{moduleCode:"",detailCode:"901",description:"",solution:"",updateTime:1544693519e3},{moduleCode:"",detailCode:"60210",description:"图片数据错误",solution:"",updateTime:1544604457e3},{moduleCode:"",detailCode:"10013",description:"您的应用没有权限调用",solution:"",updateTime:1544416237e3},{moduleCode:"",detailCode:"70007",description:"授权码不存在",solution:"",updateTime:1544179533e3},{moduleCode:"",detailCode:"10015",description:"授权地址不存在",solution:"",updateTime:154416324e4},{moduleCode:"",detailCode:"320423",description:"",solution:"",updateTime:1544100685e3},{moduleCode:"",detailCode:"370009",description:"",solution:"",updateTime:1544077151e3},{moduleCode:"",detailCode:"10031",description:"子账户或萤石用户没有权限",solution:"",updateTime:1543990462e3},{moduleCode:"",detailCode:"10055",description:"设备不支持试用云存储服务",solution:"",updateTime:1543986292e3},{moduleCode:"",detailCode:"60042",description:"添加的设备密码错误",solution:"",updateTime:1543710913e3},{moduleCode:"",detailCode:"60082",description:"设备正在响应本次声源定位",solution:"",updateTime:1543647426e3},{moduleCode:"",detailCode:"10056",description:"设备不支持云存储服务转出",solution:"",updateTime:1543558342e3},{moduleCode:"",detailCode:"20104",description:"好友不存在",solution:"",updateTime:1543492403e3},{moduleCode:"",detailCode:"20111",description:"好友不是等待验证状态,无法接受邀请",solution:"",updateTime:1543492365e3},{moduleCode:"",detailCode:"20107",description:"不能添加自己为好友",solution:"",updateTime:1543480986e3},{moduleCode:"",detailCode:"1",description:"设备返回其他错误",solution:"",updateTime:1543459921e3},{moduleCode:"",detailCode:"60084",description:"当前正在关闭隐私遮蔽",solution:"",updateTime:1543456515e3},{moduleCode:"",detailCode:"380255",description:"",solution:"",updateTime:1543411652e3},{moduleCode:"",detailCode:"20015",description:"设备不支持",solution:"",updateTime:1543390936e3},{moduleCode:"",detailCode:"30003",description:"手机验证码错误",solution:"",updateTime:1543389137e3},{moduleCode:"",detailCode:"20615",description:"锁用户已存在",solution:"",updateTime:1543388325e3},{moduleCode:"",detailCode:"60061",description:"账户流量已超出或未购买,限制开通",solution:"",updateTime:1543372581e3},{moduleCode:"",detailCode:"60020",description:"设备不支持该信令",solution:"",updateTime:1543321636e3},{moduleCode:"",detailCode:"320146",description:"",solution:"",updateTime:1543318472e3},{moduleCode:"",detailCode:"60018",description:"设备升级失败",solution:"",updateTime:1543304928e3},{moduleCode:"",detailCode:"60044",description:"添加的设备网络不可达超时",solution:"",updateTime:1543304102e3},{moduleCode:"",detailCode:"20619",description:"主用户无法删除",solution:"",updateTime:1543290219e3},{moduleCode:"",detailCode:"20608",description:"锁用户不存在",solution:"",updateTime:154328195e4},{moduleCode:"",detailCode:"20609",description:"设备响应超时,门锁通信故障或者电量不足,请重试.",solution:"",updateTime:1543281601e3},{moduleCode:"",detailCode:"1049954",description:"升级设备失败",solution:"",updateTime:1543279264e3},{moduleCode:"",detailCode:"60009",description:"正在调用预置点",solution:"",updateTime:1543238114e3},{moduleCode:"",detailCode:"1052677",description:"获取本地录像失败",solution:"",updateTime:1543207604e3},{moduleCode:"",detailCode:"327000",description:"",solution:"",updateTime:1543196609e3},{moduleCode:"",detailCode:"20021",description:"设备在线,未被用户添加",solution:"",updateTime:1543193436e3},{moduleCode:"",detailCode:"20202",description:"操作留言信息失败",solution:"",updateTime:1543191562e3},{moduleCode:"",detailCode:"1052678",description:"获取本地录像失败",solution:"",updateTime:1543132218e3},{moduleCode:"",detailCode:"1054723",description:"格式化设备失败",solution:"",updateTime:1543129833e3},{moduleCode:"",detailCode:"20109",description:"对应分享不存在",solution:"",updateTime:1543129111e3},{moduleCode:"",detailCode:"60026",description:"设备处于隐私遮蔽状态",solution:"",updateTime:1543110403e3},{moduleCode:"",detailCode:"60083",description:"当前正在开启隐私遮蔽",solution:"",updateTime:1543071148e3},{moduleCode:"",detailCode:"60001",description:"用户无云台控制权限",solution:"",updateTime:1543059167e3},{moduleCode:"",detailCode:"2003",description:"设备不在线",solution:"",updateTime:1543051046e3},{moduleCode:"",detailCode:"-24",description:"设置设备enable错误",solution:"",updateTime:1543042701e3},{moduleCode:"",detailCode:"10018",description:"",solution:"",updateTime:1543041564e3},{moduleCode:"",detailCode:"20103",description:"好友已存在",solution:"",updateTime:154303843e4},{moduleCode:"",detailCode:"70010",description:"授权异常请重试",solution:"",updateTime:154303559e4},{moduleCode:"",detailCode:"60056",description:"删除设备失败",solution:"",updateTime:1543031275e3},{moduleCode:"",detailCode:"60040",description:"添加的设备不在同一局域网",solution:"",updateTime:154303121e4},{moduleCode:"",detailCode:"60019",description:"加密已开启",solution:"",updateTime:1543029931e3},{moduleCode:"",detailCode:"1054722",description:"格式化设备失败",solution:"",updateTime:1543028537e3},{moduleCode:"",detailCode:"20016",description:"当前设备正在格式化",solution:"",updateTime:1543028537e3},{moduleCode:"",detailCode:"10024",description:"透明通道权限校验不通过",solution:"",updateTime:154302554e4},{moduleCode:"",detailCode:"6002",description:"删除设备失败!",solution:"",updateTime:1543025026e3},{moduleCode:"",detailCode:"1011",description:"验证码错误!",solution:"",updateTime:1543016865e3},{moduleCode:"",detailCode:"60032",description:"卡密已使用",solution:"",updateTime:1543006668e3},{moduleCode:"",detailCode:"10034",description:"子账号已存在",solution:"",updateTime:1542989194e3},{moduleCode:"",detailCode:"20301",description:"根据uuid查询联动信息不存在",solution:"",updateTime:1542988651e3},{moduleCode:"",detailCode:"1041",description:"获取验证码过于频繁",solution:"",updateTime:1542980953e3},{moduleCode:"",detailCode:"10012",description:"该appkey下已绑定重复的phone!",solution:"",updateTime:15429808e5},{moduleCode:"",detailCode:"1008",description:"phone不合法!",solution:"",updateTime:1542979812e3},{moduleCode:"",detailCode:"60023",description:"订阅操作失败",solution:"",updateTime:1542979006e3},{moduleCode:"",detailCode:"5",description:"设备返回其他错误",solution:"",updateTime:1542977828e3},{moduleCode:"",detailCode:"60006",description:"云台当前操作失败",solution:"",updateTime:1542977598e3},{moduleCode:"",detailCode:"131",description:"修改视频清晰度失败!",solution:"",updateTime:1542977246e3},{moduleCode:"",detailCode:"10019",description:"密码错误",solution:"",updateTime:1542976628e3},{moduleCode:"",detailCode:"10004",description:"用户不存在",solution:"",updateTime:1542976268e3},{moduleCode:"",detailCode:"20201",description:"操作报警信息失败",solution:"",updateTime:1542975906e3},{moduleCode:"",detailCode:"20024",description:"设备不在线,已经被别的用户添加",solution:"",updateTime:1542975858e3},{moduleCode:"",detailCode:"60004",description:"设备云台旋转达到左限位",solution:"",updateTime:1542975207e3},{moduleCode:"",detailCode:"1052679",description:"修改视频清晰度失败!",solution:"",updateTime:1542974886e3},{moduleCode:"",detailCode:"20031",description:"请在萤石客户端关闭终端绑定",solution:"",updateTime:1542974756e3},{moduleCode:"",detailCode:"1053825",description:"获取本地录像失败",solution:"",updateTime:1542974692e3},{moduleCode:"",detailCode:"60011",description:"预置点不存在",solution:"",updateTime:1542974414e3},{moduleCode:"",detailCode:"1052936",description:"修改视频清晰度失败!",solution:"",updateTime:154297439e4},{moduleCode:"",detailCode:"1016",description:"",solution:"",updateTime:1542974273e3},{moduleCode:"",detailCode:"10032",description:"子账号不存在",solution:"",updateTime:1542973906e3},{moduleCode:"",detailCode:"20013",description:"设备已被别人添加",solution:"",updateTime:1542973817e3},{moduleCode:"",detailCode:"50000",description:"服务器错误!",solution:"",updateTime:1542973801e3},{moduleCode:"",detailCode:"60010",description:"该预置点已经是当前位置",solution:"",updateTime:15429738e5},{moduleCode:"",detailCode:"60003",description:"设备云台旋转达到下限位",solution:"",updateTime:154297377e4},{moduleCode:"",detailCode:"4",description:"设备返回其他错误",solution:"",updateTime:1542973755e3},{moduleCode:"",detailCode:"60016",description:"加密未开启,无需关闭",solution:"",updateTime:1542973753e3},{moduleCode:"",detailCode:"60002",description:"设备云台旋转达到上限位",solution:"",updateTime:1542973742e3},{moduleCode:"",detailCode:"20023",description:"设备不在线,未被用户添加",solution:"",updateTime:1542973685e3},{moduleCode:"",detailCode:"10008",description:"",solution:"",updateTime:1542973676e3},{moduleCode:"",detailCode:"20010",description:"设备验证码错误",solution:"",updateTime:1542973658e3},{moduleCode:"",detailCode:"60005",description:"设备云台旋转达到右限位",solution:"",updateTime:1542973657e3},{moduleCode:"",detailCode:"20017",description:"设备已经被自己添加",solution:"",updateTime:1542973648e3},{moduleCode:"",detailCode:"20020",description:"设备在线,已经被自己添加",solution:"",updateTime:1542973533e3},{moduleCode:"",detailCode:"20029",description:"设备不在线,已经被自己添加",solution:"",updateTime:154297353e4},{moduleCode:"",detailCode:"10014",description:"APPKEY下对应的第三方userId和phone未绑定!",solution:"",updateTime:1542973499e3},{moduleCode:"",detailCode:"20002",description:"设备不存在",solution:"",updateTime:1542973499e3},{moduleCode:"",detailCode:"10030",description:"appkey和appsecret不匹配",solution:"",updateTime:154297349e4},{moduleCode:"",detailCode:"20022",description:"设备在线,已经被别的用户添加",solution:"",updateTime:1542973486e3},{moduleCode:"",detailCode:"20008",description:"设备响应超时",solution:"",updateTime:1542973484e3},{moduleCode:"",detailCode:"20032",description:"该用户下通道不存在",solution:"",updateTime:1542973481e3},{moduleCode:"",detailCode:"20006",description:"网络异常",solution:"",updateTime:1542973475e3},{moduleCode:"",detailCode:"20014",description:"deviceSerial不合法!",solution:"",updateTime:1542973454e3},{moduleCode:"",detailCode:"20007",description:"设备不在线",solution:"",updateTime:1542973454e3},{moduleCode:"",detailCode:"20018",description:"该用户不拥有该设备",solution:"",updateTime:1542973453e3},{moduleCode:"",detailCode:"10010",description:"",solution:"",updateTime:1542973453e3},{moduleCode:"",detailCode:"10011",description:"未绑定!",solution:"",updateTime:1542973453e3},{moduleCode:"",detailCode:"20001",description:"通道不存在!",solution:"",updateTime:1542973452e3},{moduleCode:"",detailCode:"10017",description:"appKey不存在",solution:"",updateTime:1542973451e3},{moduleCode:"",detailCode:"400259",description:"",solution:"",updateTime:1542875643e3},{moduleCode:"",detailCode:"400004",description:"",solution:"",updateTime:1542873364e3},{moduleCode:"",detailCode:"3840",description:"",solution:"",updateTime:154186e7},{moduleCode:"",detailCode:"-1017",description:"",solution:"",updateTime:1541733663e3},{moduleCode:"",detailCode:"320025",description:"",solution:"",updateTime:1541078281e3},{moduleCode:"",detailCode:"320024",description:"",solution:"",updateTime:1540801374e3},{moduleCode:"",detailCode:"321002",description:"",solution:"",updateTime:1540631734e3},{moduleCode:"",detailCode:"321000",description:"",solution:"",updateTime:1540609178e3},{moduleCode:"",detailCode:"321022",description:"",solution:"",updateTime:1540548345e3},{moduleCode:"",detailCode:"321016",description:"",solution:"",updateTime:1540287187e3},{moduleCode:"",detailCode:"320023",description:"",solution:"",updateTime:1539825993e3},{moduleCode:"",detailCode:"-1016",description:"",solution:"",updateTime:1539584931e3},{moduleCode:"",detailCode:"8",description:"",solution:"",updateTime:1539391812e3},{moduleCode:"",detailCode:"1075127593",description:"",solution:"",updateTime:1538959251e3},{moduleCode:"",detailCode:"380421",description:"",solution:"",updateTime:1537288465e3},{moduleCode:"",detailCode:"322000",description:"麦克风权限未开启",solution:"",updateTime:1536820136e3},{moduleCode:"",detailCode:"1152678",description:"",solution:"",updateTime:1536738348e3},{moduleCode:"",detailCode:"320047",description:"",solution:"",updateTime:1536664472e3},{moduleCode:"",detailCode:"327006",description:"",solution:"",updateTime:153613612e4},{moduleCode:"",detailCode:"1074807593",description:"",solution:"",updateTime:1536135035e3},{moduleCode:"",detailCode:"320291",description:"",solution:"",updateTime:1536110836e3},{moduleCode:"",detailCode:"320045",description:"",solution:"",updateTime:1535963775e3},{moduleCode:"",detailCode:"370004",description:"",solution:"",updateTime:1535883699e3},{moduleCode:"",detailCode:"1149954",description:"",solution:"",updateTime:1535700674e3},{moduleCode:"",detailCode:"320053",description:"",solution:"",updateTime:1535681079e3},{moduleCode:"",detailCode:"400000",description:"",solution:"",updateTime:1535532332e3},{moduleCode:"",detailCode:"110028",description:"个人版抓图接口日调用次数超出限制",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1535348756e3},{moduleCode:"",detailCode:"110027",description:"个人版帐号数量超出安全限制,无法调用",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1535348734e3},{moduleCode:"",detailCode:"110026",description:"设备数量超出个人版限制,当前设备无法操作",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1535348588e3},{moduleCode:"",detailCode:"100000",description:"",solution:"",updateTime:1534980008e3},{moduleCode:"",detailCode:"324004",description:"",solution:"",updateTime:1534927762e3},{moduleCode:"",detailCode:"360104",description:"",solution:"",updateTime:1534761006e3},{moduleCode:"",detailCode:"320204",description:"",solution:"",updateTime:1534584221e3},{moduleCode:"",detailCode:"380001",description:"",solution:"",updateTime:1534404715e3},{moduleCode:"",detailCode:"380204",description:"",solution:"",updateTime:1534401682e3},{moduleCode:"",detailCode:"328006",description:"",solution:"",updateTime:1534144407e3},{moduleCode:"",detailCode:"321703",description:"",solution:"",updateTime:1534127274e3},{moduleCode:"",detailCode:"321510",description:"",solution:"",updateTime:1533428892e3},{moduleCode:"",detailCode:"321006",description:"",solution:"",updateTime:1533036916e3},{moduleCode:"",detailCode:"50009",description:"",solution:"",updateTime:1532078548e3},{moduleCode:"",detailCode:"50007",description:"",solution:"",updateTime:153199172e4},{moduleCode:"",detailCode:"50018",description:"",solution:"",updateTime:1531912829e3},{moduleCode:"",detailCode:"380451",description:"",solution:"",updateTime:15316157e5},{moduleCode:"",detailCode:"380336",description:"",solution:"",updateTime:1531231721e3},{moduleCode:"",detailCode:"360020",description:"",solution:"",updateTime:1531117554e3},{moduleCode:"",detailCode:"380418",description:"",solution:"",updateTime:153110707e4},{moduleCode:"",detailCode:"1153445",description:"设备在该时间段内没有录像",solution:"",updateTime:1530944007e3},{moduleCode:"",detailCode:"110007",description:"调用接口总次数达到上限",solution:"请升级企业版,获取更高能力",updateTime:1530935584e3},{moduleCode:"",detailCode:"360019",description:"",solution:"",updateTime:1530869771e3},{moduleCode:"",detailCode:"360100",description:"",solution:"",updateTime:1530786188e3},{moduleCode:"",detailCode:"380042",description:"",solution:"",updateTime:1530775199e3},{moduleCode:"",detailCode:"320355",description:"",solution:"",updateTime:1530716074e3},{moduleCode:"",detailCode:"100003",description:"",solution:"",updateTime:1530232541e3},{moduleCode:"",detailCode:"371026",description:"",solution:"",updateTime:15301926e5},{moduleCode:"",detailCode:"102",description:"",solution:"",updateTime:1529895641e3},{moduleCode:"",detailCode:"380201",description:"",solution:"",updateTime:1529740929e3},{moduleCode:"",detailCode:"320054",description:"",solution:"",updateTime:1529544875e3},{moduleCode:"",detailCode:"500101",description:"",solution:"",updateTime:1529485953e3},{moduleCode:"",detailCode:"321001",description:"",solution:"",updateTime:1529411048e3},{moduleCode:"",detailCode:"321508",description:"",solution:"",updateTime:1529393279e3},{moduleCode:"",detailCode:"405991",description:"",solution:"",updateTime:1529380238e3},{moduleCode:"",detailCode:"380461",description:"",solution:"",updateTime:1529130941e3},{moduleCode:"",detailCode:"-1019",description:"",solution:"",updateTime:1529057245e3},{moduleCode:"",detailCode:"322009",description:"",solution:"",updateTime:1528965717e3},{moduleCode:"",detailCode:"324005",description:"",solution:"",updateTime:1528950153e3},{moduleCode:"",detailCode:"325000",description:"",solution:"",updateTime:1528947143e3},{moduleCode:"",detailCode:"326032",description:"",solution:"",updateTime:1528872971e3},{moduleCode:"",detailCode:"325032",description:"",solution:"",updateTime:1528863189e3},{moduleCode:"",detailCode:"328000",description:"",solution:"",updateTime:1528794505e3},{moduleCode:"",detailCode:"53",description:"",solution:"",updateTime:1528693249e3},{moduleCode:"",detailCode:"-1020",description:"",solution:"",updateTime:152849944e4},{moduleCode:"",detailCode:"329032",description:"",solution:"",updateTime:1528446301e3},{moduleCode:"",detailCode:"-1202",description:"",solution:"",updateTime:152843982e4},{moduleCode:"",detailCode:"2",description:"",solution:"",updateTime:1528434175e3},{moduleCode:"",detailCode:"1152936",description:"",solution:"",updateTime:1528345986e3},{moduleCode:"",detailCode:"328011",description:"",solution:"",updateTime:15283386e5},{moduleCode:"",detailCode:"28",description:"",solution:"",updateTime:152833753e4},{moduleCode:"",detailCode:"320356",description:"",solution:"",updateTime:1528188693e3},{moduleCode:"",detailCode:"320357",description:"",solution:"",updateTime:1528188517e3},{moduleCode:"",detailCode:"405800",description:"",solution:"",updateTime:1528168732e3},{moduleCode:"",detailCode:"405996",description:"",solution:"",updateTime:1528168686e3},{moduleCode:"",detailCode:"380357",description:"",solution:"",updateTime:1528011565e3},{moduleCode:"",detailCode:"328022",description:"",solution:"",updateTime:1527929065e3},{moduleCode:"",detailCode:"380003",description:"",solution:"",updateTime:1527927819e3},{moduleCode:"",detailCode:"50004",description:"",solution:"",updateTime:1527770643e3},{moduleCode:"",detailCode:"50011",description:"",solution:"",updateTime:1527770635e3},{moduleCode:"",detailCode:"370017",description:"",solution:"",updateTime:1527739514e3},{moduleCode:"",detailCode:"327032",description:"",solution:"",updateTime:1527726704e3},{moduleCode:"",detailCode:"324001",description:"",solution:"",updateTime:1527681892e3},{moduleCode:"",detailCode:"405997",description:"",solution:"",updateTime:1527653408e3},{moduleCode:"",detailCode:"405995",description:"",solution:"",updateTime:1527647283e3},{moduleCode:"",detailCode:"1153825",description:"",solution:"",updateTime:1527601747e3},{moduleCode:"",detailCode:"328002",description:"",solution:"",updateTime:1527495292e3},{moduleCode:"",detailCode:"1152679",description:"",solution:"",updateTime:1527486665e3},{moduleCode:"",detailCode:"380356",description:"",solution:"",updateTime:1527125669e3},{moduleCode:"",detailCode:"328032",description:"",solution:"",updateTime:1527069382e3},{moduleCode:"",detailCode:"22",description:"",solution:"",updateTime:1527049826e3},{moduleCode:"",detailCode:"9",description:"",solution:"",updateTime:1527006778e3},{moduleCode:"",detailCode:"89",description:"",solution:"",updateTime:1526622784e3},{moduleCode:"",detailCode:"328016",description:"",solution:"",updateTime:1526452365e3},{moduleCode:"",detailCode:"368005",description:"",solution:"",updateTime:1525921264e3},{moduleCode:"",detailCode:"0",description:"",solution:"",updateTime:1525920242e3},{moduleCode:"",detailCode:"380006",description:"",solution:"",updateTime:1525918868e3},{moduleCode:"",detailCode:"310",description:"",solution:"",updateTime:1525834436e3},{moduleCode:"",detailCode:"360011",description:"",solution:"",updateTime:1525681552e3},{moduleCode:"",detailCode:"170005",description:"",solution:"",updateTime:15254339e5},{moduleCode:"",detailCode:"50023",description:"",solution:"",updateTime:1525403338e3},{moduleCode:"",detailCode:"100131",description:"",solution:"",updateTime:1525229691e3},{moduleCode:"",detailCode:"-1018",description:"",solution:"",updateTime:1525142341e3},{moduleCode:"",detailCode:"362026",description:"",solution:"",updateTime:1524882677e3},{moduleCode:"",detailCode:"368007",description:"",solution:"",updateTime:1524832269e3},{moduleCode:"",detailCode:"54",description:"",solution:"",updateTime:1524793646e3},{moduleCode:"",detailCode:"1154722",description:"",solution:"",updateTime:1524620807e3},{moduleCode:"",detailCode:"320229",description:"",solution:"",updateTime:1524551682e3},{moduleCode:"",detailCode:"360012",description:"",solution:"",updateTime:1524472094e3},{moduleCode:"",detailCode:"380229",description:"",solution:"",updateTime:1524110755e3},{moduleCode:"",detailCode:"360016",description:"",solution:"",updateTime:1523933518e3},{moduleCode:"",detailCode:"-1003",description:"",solution:"",updateTime:1523584804e3},{moduleCode:"",detailCode:"410026",description:"",solution:"",updateTime:152351743e4},{moduleCode:"",detailCode:"360102",description:"TTS初始化失败",solution:"",updateTime:1523503528e3},{moduleCode:"",detailCode:"360013",description:"设备开启了隐私保护",solution:"",updateTime:1523503507e3},{moduleCode:"",detailCode:"360010",description:"设备正在对讲中",solution:"",updateTime:1523503491e3},{moduleCode:"",detailCode:"360007",description:"TTS关闭了与客户端的连接",solution:"",updateTime:1523503475e3},{moduleCode:"",detailCode:"360006",description:"客户端接收发生错误",solution:"",updateTime:1523503457e3},{moduleCode:"",detailCode:"360005",description:"客户端发送的消息错误",solution:"",updateTime:1523503437e3},{moduleCode:"",detailCode:"360004",description:"TTS内部发生错误",solution:"",updateTime:1523503421e3},{moduleCode:"",detailCode:"360003",description:"TTS的设备端发生错误",solution:"",updateTime:1523503397e3},{moduleCode:"",detailCode:"360002",description:"对讲发起超时",solution:"",updateTime:1523503376e3},{moduleCode:"",detailCode:"360001",description:"客户端请求超时",solution:"",updateTime:1523503357e3},{moduleCode:"",detailCode:"320077",description:"",solution:"",updateTime:1523444274e3},{moduleCode:"",detailCode:"370047",description:"",solution:"",updateTime:152344048e4},{moduleCode:"",detailCode:"100002",description:"",solution:"",updateTime:1523413964e3},{moduleCode:"",detailCode:"-1004",description:"",solution:"",updateTime:1523336653e3},{moduleCode:"",detailCode:"380000",description:"",solution:"",updateTime:1523180856e3},{moduleCode:"",detailCode:"380213",description:"",solution:"",updateTime:1523180623e3},{moduleCode:"",detailCode:"380101",description:"",solution:"",updateTime:1522834231e3},{moduleCode:"",detailCode:"50047",description:"",solution:"",updateTime:1522833243e3},{moduleCode:"",detailCode:"-999",description:"",solution:"",updateTime:1522831034e3},{moduleCode:"",detailCode:"320418",description:"",solution:"",updateTime:1522829072e3},{moduleCode:"",detailCode:"-1009",description:"",solution:"",updateTime:1522746247e3},{moduleCode:"",detailCode:"320209",description:"",solution:"",updateTime:1522744395e3},{moduleCode:"",detailCode:"368006",description:"",solution:"",updateTime:15227443e5},{moduleCode:"",detailCode:"369003",description:"",solution:"",updateTime:1522736355e3},{moduleCode:"",detailCode:"405989",description:"",solution:"",updateTime:1522726571e3},{moduleCode:"",detailCode:"-1012",description:"",solution:"",updateTime:1522726203e3},{moduleCode:"",detailCode:"322016",description:"",solution:"",updateTime:1522722918e3},{moduleCode:"",detailCode:"500103",description:"",solution:"",updateTime:1522655556e3},{moduleCode:"",detailCode:"405999",description:"",solution:"",updateTime:1522654716e3},{moduleCode:"",detailCode:"321032",description:"",solution:"",updateTime:1522647732e3},{moduleCode:"",detailCode:"381101",description:"",solution:"",updateTime:1522392414e3},{moduleCode:"",detailCode:"399999",description:"",solution:"",updateTime:1522379834e3},{moduleCode:"",detailCode:"380103",description:"",solution:"",updateTime:1522312724e3},{moduleCode:"",detailCode:"360014",description:"",solution:"",updateTime:1522304341e3},{moduleCode:"",detailCode:"-1005",description:"",solution:"",updateTime:1522288195e3},{moduleCode:"",detailCode:"100005",description:"",solution:"",updateTime:1522218849e3},{moduleCode:"",detailCode:"100004",description:"",solution:"",updateTime:1522209053e3},{moduleCode:"",detailCode:"106002",description:"",solution:"",updateTime:15222062e5},{moduleCode:"",detailCode:"410030",description:"",solution:"",updateTime:1522162252e3},{moduleCode:"",detailCode:"-1002",description:"",solution:"",updateTime:152215069e4},{moduleCode:"",detailCode:"-1200",description:"",solution:"",updateTime:1522139025e3},{moduleCode:"",detailCode:"-1001",description:"",solution:"",updateTime:1522046436e3},{moduleCode:"",detailCode:"-1011",description:"",solution:"",updateTime:1522045931e3},{moduleCode:"",detailCode:"381102",description:"",solution:"",updateTime:1522044953e3},{moduleCode:"",detailCode:"381103",description:"",solution:"",updateTime:1522044953e3},{moduleCode:"",detailCode:"391205",description:"vtdu解析服务器ip失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391206",description:"vtdu描述符select失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391207",description:"vtdu文件描述符不在可读中",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391208",description:"vtdu网络发生错误getsockopt",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391209",description:"vtdu描述符select超时",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395000",description:"cas回复信令,发现内存已经释放(和设备之间异常断开)",msg:"播放失败请重试",solution:"检查设备网络;刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395400",description:"私有化协议vtm检测私有化协议中码流类型小于0或者设备序列号为空等非法参数场景返回(app不重试取流)",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395402",description:"回放找不到录像文件",msg:"回放找不到录像文件,本地存储请检查存储卡是否接触良好",solution:"检查是否有存储卡并且接触良好",updateTime:1522034841e3},{moduleCode:"",detailCode:"395403",description:"操作码或信令密钥与设备不匹配",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395404",description:"设备不在线",solution:"检查设备网络;重启设备接入萤石云",msg:"设备不在线,请检查设备网络或重启设备接入萤石云",updateTime:1522034841e3},{moduleCode:"",detailCode:"395405",description:"流媒体向设备发送或接受信令超时/cas响应超时",msg:"播放失败,请检查设备网络或重启设备",solution:"检查设备网络;重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"395406",description:"token失效",msg:"播放失败请重试或重启设备",solution:"刷新重试或者重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"395407",description:"客户端的URL格式错误",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395409",description:"预览开启隐私保护",msg:"播放失败请关闭隐私遮蔽",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395410",description:"设备达到最大连接数",solution:"请升级设备固件版本",updateTime:1522034841e3},{moduleCode:"",detailCode:"395411",description:"token无权限",msg:"播放失败",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395412",description:"session不存在",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395413",description:"验证token的他异常(不具体) ",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395415",description:"设备通道错",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395416",description:"设备资源受限",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395451",description:"设备不支持的码流类型",msg:"播放失败请重试或切换设备码流",solution:"刷新重试或者切换到高清模式",updateTime:1522034841e3},{moduleCode:"",detailCode:"395452",description:"设备链接流媒体服务器失败",msg:"播放失败,请检查设备网络或重启设备或重新加载",solution:"检查设备网络,重启设备,刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395454",description:"流媒体中关于设备取流会话不存在",msg:"播放失败请重试",solution:"流媒体中关于设备取流会话不存在",updateTime:152222018e4},{moduleCode:"",detailCode:"395455",description:"设备通道未关联",msg:"播放失败,请检查设备通道是否关联",solution:"检查设备通道是否关联",updateTime:152222018e4},{moduleCode:"",detailCode:"395456",description:"设备通道关联设备不在线",msg:"播放失败,请检查设备通道是否上线",solution:"检查设备通道是否上线",updateTime:152222018e4},{moduleCode:"",detailCode:"395457",description:"客户端不支持端到端加密",msg:"播放失败",solution:"客户端不支持端到端加密",updateTime:152222018e4},{moduleCode:"",detailCode:"395458",description:"设备不支持当前并发ECDH密",msg:"客户端不支持端到端加密",solution:"设备不支持当前并发ECDH密",updateTime:152222018e4},{moduleCode:"",detailCode:"395459",description:"VTDU 处理ECDH 加密失败",msg:"播放失败",solution:"VTDU 处理ECDH 加密失败",updateTime:152222018e4},{moduleCode:"",detailCode:"395460",description:"流媒体中关于设备取流会话不存在",msg:"播放失败请重试",solution:"流媒体中关于设备取流会话不存在",updateTime:152222018e4},{moduleCode:"",detailCode:"395492",description:"设备不支持的命令",msg:"操作失败,设备不支持",solution:"",updateTime:152222018e4},{moduleCode:"",detailCode:"395500",description:"服务器处理失败",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395501",description:"流媒体vtdu达到最大负载,请扩容",msg:"播放失败请重试",solution:"服务器负载达到上限,请稍后重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395503",description:"vtm返回分配vtdu失败",msg:"播放失败请重试",solution:"vtdu服务异常,请请稍后重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395504",description:"流媒体vtdu达到最大负载",msg:"播放失败请重试",solution:"服务器负载达到上限,请稍后重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395505",description:"vtm ecdh解密失败",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395506",description:"vtm 返回IPC不支持取流(需要IPC添加NVR后支持)",msg:"播放失败,请绑定NVR使用",solution:"IPC绑定NVR使用",updateTime:1522034841e3},{moduleCode:"",detailCode:"395544",description:"设备返回无视频源",msg:"播放失败,请检查设备接触情况",solution:"设备是否接触良好; 如果一直无法解决,请联系技术支持",updateTime:1522034841e3},{moduleCode:"",detailCode:"395545",description:"视频分享时间已经结束",msg:"视频分享时间已结束",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395546",description:"vtdu返回达到取流并发路数限制",msg:"并发上限,请升级为企业版",solution:"请升级为企业版,放开并发限制",updateTime:1522034841e3},{moduleCode:"",detailCode:"395547",description:"vtdu返回开放平台用户并发限制",msg:"并发上限,请升级为企业版",solution:"请确定开放平台用户预览是否超过用户并发数量限制",updateTime:1522034841e3},{moduleCode:"",detailCode:"395556",description:"ticket校验失败",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395557",description:"回放服务器等待流头超时",msg:"播放失败请重试",solution:"刷新重试,检测设备网络,重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"395558",description:"查找录像开始时间错误",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395560",description:"群组分享取流二次验证失败",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395561",description:"分享群组用户被锁住",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395562",description:"群组分享用户权限变更",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395563",description:"认证服务连接失败",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395564",description:"认证超时",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395566",description:"不在分享时间内预览",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395567",description:"分享通道被锁定",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395568",description:"未找到认证类型",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395569",description:"认证返回的参数异常",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395600",description:"分享设备不在分享时间内",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395601",description:"群组分享用户没权限",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395602",description:"群组分享权限变更",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395610",description:"接收流头失败",msg:"播放失败请重试并检查设备网络情况以及设备配置",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395620",description:"心跳超时",msg:"播放失败请重试并检查设备网络情况以及设备配置",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395530",description:"机房故障不可用",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395701",description:"cas信令返回格式错误",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395702",description:"SPGW请求Cas、Status透传超时",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395703",description:"SPGW请求http不通",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396001",description:"客户端参数出错",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396099",description:"客户端默认错误",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396101",description:"不支持的命令",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396102",description:"设备流头发送失败",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396103",description:"cas/设备返回错误1",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396104",description:"cas/设备返回错误-1",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396105",description:"设备返回错误码3",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396106",description:"设备返回错误码4",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396107",description:"设备返回错误码5",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396108",description:"cas信令回应重复",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396109",description:"视频广场取消分享",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396110",description:"设备信令默认错误",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396501",description:"设备数据链路和实际链路不匹配",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396502",description:"设备数据链路重复建立连接",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396503",description:"设备数据链路端口不匹配",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396504",description:"缓存设备数据链路失败(内存块不足)",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396505",description:"设备发送确认头消息重复",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396506",description:"设备数据先于确定头部到达",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396508",description:"设备数据头部长度非法",msg:"播放失败请重试或重启设备",solution:"刷新重试,或者重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"396509",description:"索引找不到设备数据管理块",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396510",description:"设备数据链路vtdu内存块协议状态不匹配",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396511",description:"设备数据头部没有streamkey错误",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396512",description:"设备数据头部非法(较笼统)",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396513",description:"设备数据长度过小",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396514",description:"设备老协议推流头部没有streamkey错误",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396515",description:"设备老协议推流数据非法",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396516",description:"设备老协议索引找不到内存管理块",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396517",description:"设备老协议推流数据非法",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396518",description:"设备数据包过大",msg:"播放失败请重试或重启设备",solution:"刷新重试,或者重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"396519",description:"设备推流链路网络不稳定",msg:"播放失败,请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396520",description:"设备推流链路网络不稳定(默认)",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396700",description:"异常数据包",msg:"播放失败,设备重启",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396701",description:"回放结束数据包",msg:"回放结束",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397001",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397002",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397003",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397004",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397005",description:"VTDU连接失败,或VTDU侧断开连接",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397006",description:"vtm断开连接(无需 关注)",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397007",description:"客户端发送缓冲区满(上行带宽太小)",msg:"播放失败,上行带宽过小请检查设备网络情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"399000",description:"无效包,包过大",msg:" 检查设备重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"399001",description:"地址不合法",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"399002",description:"缺少端口",msg:" 播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"170003",description:"refreshToken不存在",solution:"建议用户重新调用logout接口,然后调用openLoginPage接口重新启动登录页面登录",updateTime:1522034841e3},{moduleCode:"",detailCode:"170004",description:"refreshToken已过期",solution:"建议用户重新调用logout接口,然后调用openLoginPage接口重新启动登录页面登录",updateTime:1522034841e3},{moduleCode:"",detailCode:"380011",description:"设备隐私保护中",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380045",description:"设备直连取流连接数量过大",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380047",description:"设备不支持该命令",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380077",description:"设备正在对讲中",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380102",description:"数据接收异常",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380205",description:"设备检测入参异常",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380209",description:"网络连接超时",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380212",description:"设备端网络连接超时",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"101007",description:"手机号未注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120503",description:"正在响铃",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390016",description:"vtdu成功响应未携带流头",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101008",description:"手机号码不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120504",description:"室内机正在通话",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390017",description:"无数据流,尚未使用",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101009",description:"用户名与手机不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120505",description:"设备操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390018",description:"信令消息体PB解析失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101010",description:"获取验证码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120506",description:"非法命令",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390019",description:"信令消息体PB封装失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101011",description:"验证码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120507",description:"智能锁密码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390020",description:"申请系统内存资源失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101012",description:"验证码失效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120508",description:"开关锁失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390021",description:"vtdu地址尚未获取到",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101013",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120509",description:"开关锁超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390022",description:"客户端尚未支持",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101014",description:"密码不正确或者appKey不正确",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120510",description:"智能锁设备繁忙",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390023",description:"获取系统socket资源失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101015",description:"用户被锁住",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120511",description:"远程开锁功能未打开",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390024",description:"上层填充的StreamSsnId不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101021",description:"验证参数异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120600",description:"临时密码数已达上限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390025",description:"链接服务器失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101026",description:"邮箱已经被注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120601",description:"添加临时密码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390026",description:"客户端请求未收到服务端应答",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101031",description:"邮箱未注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120602",description:"删除临时密码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390027",description:"链路断开",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101032",description:"邮箱不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120603",description:"该临时密码不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390028",description:"没有取流链接",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101041",description:"获取验证码过于频繁",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120604",description:"指纹锁射频通信失败,请稍后再试",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390029",description:"流成功停止",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101043",description:"手机验证码输入错误超过规定次数",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120605",description:"其他用户正在认证中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390030",description:"客户端防串流校验失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102000",description:"设备不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120606",description:"验证已启动,请在120s内进行本地验证和调用添加设备接口",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390031",description:"应用层tcp粘包处理缓冲区满",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102001",description:"摄像机不存在",solution:"摄像机未注册到萤石云平台,请仔细检查摄像机的网络配置,确保连接到网络",updateTime:152203484e4},{moduleCode:"",detailCode:"120607",description:"删除用户失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390032",description:"无效状态迁移",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102003",description:"设备不在线",solution:"参考服务中心排查方法",updateTime:152203484e4},{moduleCode:"",detailCode:"120608",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390033",description:"无效客户端状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102004",description:"设备异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120609",description:"设备响应超时,门锁通信故障或者电量不足,请重试.",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390034",description:"向vtm取流流媒体信息请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102007",description:"设备序列号不正确",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120610",description:"获取临时密码列表失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390035",description:"向代理取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102009",description:"设备请求响应超时异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130001",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390036",description:"向代理保活取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"105000",description:"设备已被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130002",description:"手机号码已经注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390037",description:"向vtdu取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"105001",description:"设备已被别人添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130003",description:"手机验证码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390038",description:"向vtdu保活取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"105002",description:"设备验证码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130004",description:"终端绑定操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391001",description:"vtm地址或端口非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107001",description:"邀请不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"149999",description:"数据异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391002",description:"vtm生成文件描述符失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107002",description:"邀请验证失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"150000",description:"服务器异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391003",description:"vtm设置文件描述符非阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107003",description:"邀请用户不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160000",description:"设备不支持云台控制",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391004",description:"vtm设置文件描述符阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107004",description:"云存储连接失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160001",description:"用户无云台控制权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391005",description:"vtm解析服务器ip失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"7005",description:"VTDU主动断开连接",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107005",description:"VTDU主动断开连接",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160002",description:"设备云台旋转达到上限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391006",description:"vtm描述符select失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107006",description:"不能邀请自己",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160003",description:"设备云台旋转达到下限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391007",description:"vtm文件描述符不在可读中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107007",description:"重复邀请",solution:"分享和删除分享必须全部由接口形式操作,如果与萤石客户端混用会造成这个问题,解决办法:在萤石客户端清空所有相关分享数据并重新添加设备,再通过接口操作即可",updateTime:152203484e4},{moduleCode:"",detailCode:"160004",description:"设备云台旋转达到左限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391008",description:"vtm网络发生错误getsockopt",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110001",description:"参数错误",solution:"参数为空或者格式不对",updateTime:152203484e4},{moduleCode:"",detailCode:"160005",description:"设备云台旋转达到右限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391009",description:"vtm描述符select超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110002",description:"accessToken异常或过期",solution:"accessToken有效期为七天,建议在accessToken即将过期或者出现10002错误码的时候重新获取accessToken",updateTime:152203484e4},{moduleCode:"",detailCode:"160006",description:"云台当前操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391101",description:"proxy地址或端口非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110004",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160007",description:"预置点个数超过最大值",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391102",description:"proxy生成文件描述符失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110005",description:"appKey异常",solution:"确认appKey状态,不通过或者冻结状态会返回该错误码",updateTime:152203484e4},{moduleCode:"",detailCode:"160009",description:"正在调用预置点",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391103",description:"proxy设置文件描述符非阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110006",description:"ip受限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160010",description:"该预置点已经是当前位置",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391104",description:"proxy设置文件描述符阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160011",description:"预置点不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391105",description:"proxy解析服务器ip失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110008",description:"签名错误",solution:"①获取签名方式详见apidemo及[旧]API文档 ②注意编码格式为UTF-8",updateTime:152203484e4},{moduleCode:"",detailCode:"160013",description:"设备版本已是最新",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391106",description:"proxy描述符select失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110009",description:"签名参数错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160014",description:"设备正在升级",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391107",description:"proxy文件描述符不在可读中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110010",description:"签名超时",solution:"请调用同步服务器时间接口进行校时",updateTime:152203484e4},{moduleCode:"",detailCode:"160015",description:"设备正在重启",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391108",description:"proxy网络发生错误getsockopt",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110011",description:"未开通萤石云服务",solution:"参照绑定流程",updateTime:152203484e4},{moduleCode:"",detailCode:"160016",description:"加密未开启,无须关闭",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391109",description:"proxy描述符select超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110012",description:"第三方账户与萤石账号已经绑定",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160017",description:"设备抓图失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391201",description:"vtdu地址或端口非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110013",description:"应用没有权限调用此接口",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160018",description:"设备升级失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391202",description:"vtdu生成文件描述符失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110014",description:"APPKEY下对应的第三方userId和phone未绑定",solution:"获取AccessToken时所用appKey与SDK所用appKey不一致",updateTime:152203484e4},{moduleCode:"",detailCode:"160019",description:"加密已开启",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391203",description:"vtdu设置文件描述符非阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110017",description:"appKey不存在",solution:"请填写在官网申请的应用秘钥",updateTime:152203484e4},{moduleCode:"",detailCode:"160020",description:"不支持该命令",solution:"请确认设备是否支持该命令",updateTime:152203484e4},{moduleCode:"",detailCode:"391204",description:"vtdu设置文件描述符阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110018",description:"AccessToken与Appkey不匹配",solution:"请检查获取accessToken对应的appKey和SDK中设置的appKey是否一致",updateTime:152203484e4},{moduleCode:"",detailCode:"160023",description:"订阅操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110019",description:"密码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160024",description:"取消订阅操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110020",description:"请求方法为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160025",description:"客流统计配置失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110021",description:"ticket校验失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160026",description:"设备处于隐私遮蔽状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110022",description:"透传目的地非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160027",description:"设备正在镜像操作",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110024",description:"无透传权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160028",description:"设备正在键控动作",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110025",description:"appKey被禁止使用通明通道",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160029",description:"设备处于语音对讲状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160030",description:"卡密输入错误次数过多,24小时后再输入",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160031",description:"卡密信息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160032",description:"卡密状态不对或已过期",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160033",description:"卡密非卖品,只能开通对应的绑定设备",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110030",description:"appKey和appSecret不匹配",solution:"请检查appKey和appSecret是否对应",updateTime:152203484e4},{moduleCode:"",detailCode:"160035",description:"购买云存储服务失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110031",description:"子账户或萤石用户没有权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160040",description:"添加的设备不在同一局域网",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110032",description:"子账户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160041",description:"添加的设备被其他设备关联或响应超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110033",description:"子账户未设置授权策略",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160042",description:"添加的设备密码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110034",description:"子账户已存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160043",description:"添加的设备超出最大数量",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110035",description:"获取子账户AccessToken异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160044",description:"添加的设备网络不可达超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110036",description:"子账户被禁用",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160045",description:"添加的设备的IP和其他通道的IP冲突",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110051",description:"无权限进行抓图",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160046",description:"添加的设备的IP和本设备的IP冲突",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160047",description:"码流类型不支持",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120002",description:"设备不存在",solution:"①设备没有注册到萤石云平台,请检查下设备网络参数,确保能正常连接网络②设备序列号不存在",updateTime:152203484e4},{moduleCode:"",detailCode:"160048",description:"带宽超出系统接入带宽",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120003",description:"参数异常,SDK版本过低",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160049",description:"IP或者端口不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120004",description:"参数异常,SDK版本过低",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160050",description:"添加的设备版本不支持需要升级才能接入",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120005",description:"安全认证失败,需进行SDK安全认证",solution:"已去掉安全验证",updateTime:152203484e4},{moduleCode:"",detailCode:"160051",description:"添加的设备不支持接入",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120006",description:"网络异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160052",description:"添加的设备通道号出错",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120007",description:"设备不在线",solution:"参考服务中心排查方法",updateTime:152203484e4},{moduleCode:"",detailCode:"160053",description:"添加的设备分辨率不支持",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120008",description:"设备响应超时",solution:"设备响应超时,请检测设备网络或重试",updateTime:152203484e4},{moduleCode:"",detailCode:"160054",description:"添加的设备账号被锁定",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120009",description:"子账号不能添加设备",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160055",description:"添加的设备取码流出错",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120010",description:"设备验证码错误",solution:"验证码在设备标签上,六位大写字母,注意大小写",updateTime:152203484e4},{moduleCode:"",detailCode:"160056",description:"删除设备失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120012",description:"设备添加失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160057",description:"删除的设备未关联",solution:"检查IPC与NVR是否有关联关系",updateTime:152203484e4},{moduleCode:"",detailCode:"120013",description:"设备已被别人添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160060",description:"地址未绑定",solution:"请前往官网设置直播",updateTime:152203484e4},{moduleCode:"",detailCode:"120014",description:"设备序列号不正确",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160061",description:"账户流量已超出或未购买,限制开通",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120015",description:"设备不支持该功能",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160062",description:"该通道直播已开通",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120016",description:"当前设备正在格式化",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160063",description:"直播未使用或直播已关闭",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120017",description:"设备已被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160070",description:"设备不能转移给自己",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120018",description:"该用户不拥有该设备",solution:"确认设备是否属于用户",updateTime:152203484e4},{moduleCode:"",detailCode:"160071",description:"设备不能转移,设备与其他设备存在关联关系",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400001",description:"参数为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120019",description:"设备不支持云存储服务",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160072",description:"设备不能转移,通道被分享给其他用户或者分享到视频广场",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400002",description:"参数错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120020",description:"设备在线,被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160073",description:"云存储转移失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400025",description:"设备不支持对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120021",description:"设备在线,但是未被用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160080",description:"当前正在声源定位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400029",description:"没有初始化或资源被释放",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120022",description:"设备在线,但是已经被别的用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160081",description:"当前正在轨迹巡航",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400030",description:"json解析异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120023",description:"设备不在线,未被用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160082",description:"设备正在响应本次声源定位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400031",description:"网络异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120024",description:"设备不在线,但是已经被别的用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160083",description:"当前正在开启隐私遮蔽",solution:"设备正在操作隐私遮蔽,无法进行当前操作",updateTime:152203484e4},{moduleCode:"",detailCode:"400032",description:"设备信息异常为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120025",description:"重复申请分享",solution:"确认设备是否由添加过该设备且申请过分享的账户下是否还存在分享记录",updateTime:152203484e4},{moduleCode:"",detailCode:"160084",description:"当前正在关闭隐私遮蔽",solution:"设备正在操作隐私遮蔽,无法进行当前操作",updateTime:152203484e4},{moduleCode:"",detailCode:"400034",description:"取流超时",solution:"一般是由于网络状况不好导致,可以尝试下让用户重新播放",updateTime:152203484e4},{moduleCode:"",detailCode:"120026",description:"视频广场不存在该视频",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"380290",description:" 连接CAS服务器失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400035",description:"设备已加密,需要输入验证码",solution:"收到此错误码,需要让用户输入验证码后,调用EZPlayer.setPlayKey传入验证码,并重新调用播放函数",updateTime:152203484e4},{moduleCode:"",detailCode:"120027",description:"视频转码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361001",description:"对讲服务端排队超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400036",description:"播放验证码错误",solution:"收到此错误码,需要让用户输入验证码后,调用EZPlayer.setPlayKey传入验证码,并重新调用播放函数",updateTime:152203484e4},{moduleCode:"",detailCode:"120028",description:"设备固件升级包不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361002",description:"对讲服务端处理超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400037",description:"surfacehold错误",solution:"请检查是否是播放之前销毁了surface,收到此错误也可以重新建立surface后播放",updateTime:152203484e4},{moduleCode:"",detailCode:"120029",description:"设备不在线,但是已经被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361003",description:"设备链接对讲服务器超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400100",description:"未知错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120030",description:"该用户不拥有该视频广场视频",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361004",description:"服务器内部错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400200",description:"player sdk出错,这种错误一般开发者也是无法解决,不具体分类传出,传一个统一的inner错误码出去",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120031",description:"开启终端绑定,硬件特征码验证失败",solution:"请在萤石客户端关闭终端绑定,参考此步骤",updateTime:152203484e4},{moduleCode:"",detailCode:"361005",description:"解析消息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400300",description:"内存溢出",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120032",description:"该用户下通道不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361006",description:"请求重定向--需要向其他服务申请对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400901",description:"设备不在线,可以提示用户",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120033",description:"无法收藏自己分享的视频",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361007",description:"请求url非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400902",description:"accesstoken异常或失效,需要重新获取accesstoken,并传入到sdk",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120034",description:"该用户下无设备",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361008",description:"token失效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400903",description:"当前账号开启了终端绑定,只允许指定设备登录操作,提示用户登录i.ys7.com解除终端绑定",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120090",description:"用户反馈失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361009",description:"设备验证码或者通信秘钥不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400904",description:"设备正在对讲中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120095",description:"APP包下载失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361010",description:"设备已经在对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400905",description:"设备开启了隐私保护,不允许预览、对讲等",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120096",description:"APP包信息删除失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361011",description:"设备10s响应超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120101",description:"视频不支持分享给本人",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361012",description:"设备不在线",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320002",description:"参数无效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120102",description:"无相应邀请信息",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361013",description:"设备开启隐私保护拒绝对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320003",description:"暂不支持此操作",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120103",description:"好友已存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361014",description:"token无权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320004",description:"内存溢出",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120104",description:"好友不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361015",description:"设备返回session不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320005",description:"创建CAS session失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120105",description:"好友状态错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361016",description:"验证token其他异常错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320006",description:"创建cloud session失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120106",description:"对应群组不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361017",description:"服务端监听设备建立端口超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320007",description:"token失效",solution:"重新设置token后再重试",updateTime:152203484e4},{moduleCode:"",detailCode:"120107",description:"不能添加自己为好友",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361018",description:"设备链路异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320008",description:"token池里面没有token,请传入token",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120108",description:"当前用户和所添加用户不是好友关系",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361019",description:"对讲服务端不支持的信令消息",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320009",description:"传入新的INIT_PARAM并reset(保留,目前未用)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120109",description:"对应分享不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361020",description:"对讲服务端解析对讲请求未携带会话描述能力集",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320010",description:"请重试",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120110",description:"好友群组不属于当前用户",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361021",description:"对讲服务端优先能力集结果为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320011",description:"500毫秒后请重试",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120111",description:"好友不是等待验证状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361022",description:"cas链路异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320012",description:"token池已满",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120112",description:"添加应用下的用户为好友失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361023",description:"对讲服务端分配对讲会话资源失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320013",description:"P2P client超过限制",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120201",description:"操作报警信息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361024",description:"对讲服务端解析信令消息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320014",description:"sdk未初始化",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120202",description:"操作留言信息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390001",description:"通用错误返回",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320015",description:"超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120301",description:"根据UUID查询报警消息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390002",description:"入参为空指针",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320016",description:"正在打洞中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120302",description:"根据UUID查询图片不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390003",description:"入参值无效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320017",description:"没有视频文件头(播放器层面产生和处理此错误)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120303",description:"根据FID查询图片不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390004",description:"信令消息解析非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320018",description:"解码错误/超时(播放器层面产生和处理此错误)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120305",description:"设备ip解析错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390005",description:"内存资源不足",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320019",description:"取消(保留,用户不用处理)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120401",description:"用户云空间信息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390006",description:"协议格式不对或者消息体长度超过STREAM_MAX_MSGBODY_LEN",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320020",description:"播放过程中预连接被用户清除预操作信息",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120402",description:"云空间操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390007",description:"设备序列号长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320021",description:"流加密码不对",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120403",description:"用户目录不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390008",description:"取流url长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320022",description:"未传入播放窗口",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120404",description:"要操作的目标目录不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390009",description:"解析vtm返回vtdu地址不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"100200",description:"操作成功",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120405",description:"要删除的文件信息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390010",description:"解析vtm返回级联vtdu地址不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101001",description:"用户名不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120406",description:"已开通云存储",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390011",description:"解析vtm返回会话标识长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101002",description:"用户名已被占用",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120407",description:"开通记录失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390012",description:"vtdu返回流头长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101003",description:"密码不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120500",description:"获取数据错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390013",description:"vtdu会话长度非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101004",description:"密码为同一字符",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120501",description:"开锁失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390014",description:"回调函数未注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101006",description:"手机号码已经被注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120502",description:"室内机未收到呼叫",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390015",description:"vtdu成功响应未携带会话标识",solution:"",updateTime:152203484e4}],R3="200",Z3="操作成功!",M1={data:J3,code:R3,msg:Z3},b1=function(){function N(_,d){a(this,N),this.coreX=_,this.coreY=d,console.log("ErrorCode",M1)}return r(N,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"matchErrorInfo",value:function(d){return M1.data.find(function(h){return h.detailCode.substr(-4)==d})}}]),N}(),j1={color:"red",backgroundColor:"red",activeColor:"red",btnList:[{btnKey:"ade5d065a113432e8091a1c5bc819c57-934f270c08b14e928bf0c2ae8e1a937d-header-0",iconId:"deviceID",part:"left",defaultActive:1,isrender:1,themeId:"934f270c08b14e928bf0c2ae8e1a937d"},{btnKey:"ade5d065a113432e8091a1c5bc819c57-934f270c08b14e928bf0c2ae8e1a937d-header-1",iconId:"deviceName",part:"left",defaultActive:1,isrender:1,themeId:"934f270c08b14e928bf0c2ae8e1a937d"}]},a1={color:"blue",backgroundColor:"blue",activeColor:"blue",btnList:[{btnKey:"ade5d065a113432e8091a1c5bc819c57-934f270c08b14e928bf0c2ae8e1a937d-footer-0",iconId:"play",part:"left",defaultActive:0,isrender:0,themeId:"934f270c08b14e928bf0c2ae8e1a937d"}]},G1={header:j1,footer:a1},s0=function N(_){this.jsPlugin=_;var d={isMouseDown:!1,isOver:!1,mousePosition:null,oldTime:null,nowTime:null,moved:null,hoverTime:"2018-12-07 12:00:00",hoverLeft:0,timeTipShow:!1,randomNum:123,timeWidthTbls:[60,1800,3600,86400],timeUnits:["范围: 1分钟; 单位: 秒","范围: 30分钟; 单位: 分钟","范围: 1小时; 单位: 分钟","范围: 1天; 单位: 小时","范围: 3天; 单位: 小时"],drawPen:null,timeSection:[],canvasWidth:null,canvasHeight:null,timeTips:null},h=this;Object.keys(d).forEach(function(y){h[y]=d[y]}),this.options={width:this.canvasWidth,height:48,time:new Date().getTime(),timeSection:[],timeWidth:0},N.prototype.subTime=function(y){return y<10?"0"+y:y},N.prototype.tranTime=function(y){var w=y;if(y){var x=new Date(y);w=x.getFullYear()+"/"+(x.getMonth()+1)+"/"+x.getDate()+" "+this.subTime(x.getHours())+":"+this.subTime(x.getMinutes())+":"+this.subTime(x.getSeconds())}return w},N.prototype.init=function(y){y.width&&document.getElementById(y.id).setAttribute("width",parseInt(y.width,10)+"px");var w=this,x=this.options;w.randomNum=(Math.random()+"").split(".").join(""),w.timeWidthTblIndex=x.timeWidth;var k=document.querySelector("#".concat(this.jsPlugin.id,"-canvas"));w.drawPen=k.getContext("2d"),w.nowTime=x.time||Date.now(),w.timeSection=x.timeSection||[],w.canvasWidth=k.offsetWidth,w.canvasHeight=k.offsetHeight,w.updata(),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mousemove",function(a2){w.options.readOnly||w.mousemove(a2)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mouseover",function(a2){w.options.readOnly||w.mouseover(a2)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mouseleave",function(a2){w.options.readOnly||w.mouseleave(a2)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mousedown",function(a2){w.options.readOnly||w.mousedown(a2)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mouseup",function(a2){if(!w.options.readOnly){var e2=y.onChange;w.mouseUpFn(a2,e2)}})},N.prototype.setWidth=function(y){var w=this,x=this;y.width&&(document.getElementById(this.jsPlugin.id).style.width=y.width,document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.width=y.width,document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).style.width=y.width,x.canvasWidth=y.width,setTimeout(function(){w.updata({time:new Date})},500))},N.prototype.mousemove=function(y){if(this.isMouseDown&&this.isOver){var w=this.mousePosition-y.pageX;if(w===0)return;var x=0;switch(this.timeWidth){case 60:x=1/10;break;case 1800:x=1/20*60;break;case 3600:x=1/20*60;break;case 86400:x=1/30*60*60;break}var k=new Date(this.oldTime).getTime()+w*x*1e3;this.updata({time:k}),this.moved=!0}else{var a2=parseInt(document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).offsetLeft,10);this.mousePosition=y.pageX-a2,this.updata()}},N.prototype.mousedown=function(y){this.isMouseDown=!0,this.mousePosition=y.pageX,this.oldTime=this.nowTime},N.prototype.mouseover=function(y){this.isOver=!0},N.prototype.mouseleave=function(y){this.isOver=!1,this.isMouseDown=!1,this.updata()},N.prototype.changeSize=function(y){console.log("changeSize",y),this.options.timeWidth=y,this.updata({timeWidth:y})},N.prototype.mouseUpFn=function(y,w){if(this.isMouseDown&&(this.isMouseDown=!1,this.moved)){this.moved=!1;var x=this.subTime(new Date(this.nowTime).getHours())+":"+this.subTime(new Date(this.nowTime).getMinutes())+":"+this.subTime(new Date(this.nowTime).getSeconds()),k=new Date(this.oldTime).getFullYear()+"/"+(new Date(this.oldTime).getMonth()+1)+"/"+new Date(this.oldTime).getDate();this.nowTime=new Date("".concat(k," ").concat(x)),this.updata({time:this.nowTime}),this.oldTime=this.nowTime,console.log("nowTime",new Date(this.nowTime),"".concat(k," ").concat(x)),w(this.nowTime)}},N.prototype.readOnly=function(y){console.log("更改为只读"),this.options.readOnly=!0,document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.cursor="not-allowed"},N.prototype.unReadOnly=function(y){console.log("更改为只读"),this.options.readOnly=!1,document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.cursor="pointer"},N.prototype.run=function(y){this.isMouseDown||this.updata(y)},N.prototype.getTime=function(y){console.log("this",this),console.log("当前时间",new Date(this.nowTime))},N.prototype.updata=function(y){var w=this;y=y||{},w.nowTime=y.time||w.nowTime,w.timeSection=y.timeSection||w.timeSection,w.timeWidthTblIndex=y.timeWidth||w.timeWidthTblIndex,w.timeWidth=w.timeWidthTbls[y.timeWidth||w.timeWidthTblIndex],w.timeUnit=w.timeUnits[y.timeWidth||w.timeWidthTblIndex],y.timeWidth===0&&(w.timeWidthTblIndex=0,w.timeWidth=w.timeWidthTbls[0],w.timeUnit=w.timeUnits[0]),w.drawPen.fillStyle="#000000",w.drawPen.fillRect(0,0,w.canvasWidth,w.canvasHeight),w.drawScale(),w.drawRecord(),w.drawOtherMsg(),document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).style.width=w.options.width+"px",document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.width=w.options.width+"px",document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).style.height=w.options.height+"px",document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.height=w.options.height+"px"},N.prototype.drawSolidLine=function(y,w,x,k,a2,e2){this.drawPen.save(),this.drawPen.strokeStyle=e2,this.drawPen.lineWidth=a2,this.drawPen.beginPath(),this.drawPen.moveTo(y,w),this.drawPen.lineTo(x,k),this.drawPen.stroke(),this.drawPen.restore()},N.prototype.drawString=function(y,w,x,k,a2){this.drawPen.font="12px serif",this.drawPen.fillStyle="#ffffff",this.drawPen.textAlign=k||"left",this.drawPen.fillText(y,w,x+10)},N.prototype.drawScale=function(){var y=this,w="rgba(255,255,255)",x=new Date(y.nowTime),k=x.getFullYear(),a2=x.getSeconds(),e2=x.getMinutes(),s2=x.getHours(),J=x.getDate(),H=0;switch(y.timeWidth){case 60:{var R2=parseInt(y.canvasWidth/10);x.setSeconds(x.getSeconds()-parseInt(R2/2,10)),J=x.getDate(),s2=x.getHours(),e2=x.getMinutes(),a2=x.getSeconds();for(var p2=0;p2w.canvasWidth&&(p2=w.canvasWidth),p2<=0&&(p2=0),p2}},N.prototype.drawOtherMsg=function(){this.drawSolidLine(this.canvasWidth/2,0,this.canvasWidth/2,this.canvasHeight,2,"#1890FF"),this.drawPen.shadowBlur=0,this.isOver&&!this.isMouseDown?(this.mouseTime=this.mousePosition/this.canvasWidth*this.timeWidth*1e3+this.nowTime-this.timeWidth/2*1e3,this.mouseString=this.tranTime(this.mouseTime),this.hoverTime=this.mouseString,this.hoverLeft=this.mousePosition-60,this.timeTipShow=!0):this.timeTipShow=!1}},i0=function(){function N(_){if(a(this,N),this.jSPlugin=_,!document.getElementById("".concat(this.jSPlugin.id,"-audioControls")))return!1;this.currentTimeWidth=0,this.date=new Date,this.datepickerVisible=!1,this.seekTimer=null,this.disabled=!1,this.seekFrequency=2e3,this.jSPlugin.params&&this.jSPlugin.params.seekFrequency&&(this.seekFrequency=this.jSPlugin.params.seekFrequency),this.recInit()}return r(N,[{key:"recInit",value:function(){var d=this;this.currentTimeWidth=0;var h=parseInt(getComputedStyle(document.getElementById(this.jSPlugin.id)).width,10)-100,y=document.createElement("div");y.style="display:inline-block;height:48px;",y.id=this.jSPlugin.id+"-canvas-container";var w=document.createElement("canvas");w.id=this.jSPlugin.id+"-canvas",w.className="time-line-body",w.height="48",w.width=h,w.style="display:inline-block;",w.innerHTML="该浏览器不支持canvas",y.appendChild(w),g(y,document.getElementById("".concat(this.jSPlugin.id,"-audioControls")));var x=document.createElement("div");x.className="timeline-controls",x.style="display:flex;width:100px;height:48px;text-align:center;line-height: 48px;vertical-align: top;background: #000000;";var k=` -
- - - add - - - - - - - - - - - - - - reduce - - - - - - - - -
- - -`);x.innerHTML=k,g(x,y),this.timeLine=new s0(this.jSPlugin),this.timeLine.init({id:this.jSPlugin.id+"-canvas",width:h,onChange:function(H){console.log("time",H,new Date(H).Format("yyyyMMddhhmmss"));var R2=new Date(H).Format("yyyyMMddhhmmss");if(console.log("----------------this.jSPlugin.url",d.jSPlugin.url),y2(d.jSPlugin.url).type==="cloud.rec"||d.jSPlugin.capacity&&d.jSPlugin.capacity.support_seek_playback=="1"){var p2=function(){d.jSPlugin.seek(R2.substr(8,6),"235959"),d.unSyncTimeLine(),setTimeout(function(){d.syncTimeLine()},6e3)};d.seekTimer?clearTimeout(d.seekTimer):p2(),d.seekTimer=setTimeout(function(){p2(),clearTimeout(d.seekTimer),d.seekTimer=null},d.seekFrequency)}else{var c2=function(){setTimeout(function(){d.disabled=!1},d.seekFrequency)},f2=function(o2){d.disabled=!0,d.jSPlugin.pause().then(function(){console.log("暂停成功"),d.jSPlugin.resume(R2).then(function(T){console.log("恢复成功:",T),d.jSPlugin.Theme&&d.jSPlugin.Theme.setDecoderState({play:!0}),d.jSPlugin.Theme&&d.jSPlugin.Theme.decoderState.state.sound&&d.jSPlugin.openSound(),o2&&o2()}).catch(function(T){console.log("恢复失败",T)})}).catch(function(){console.log("暂停失败"),d.jSPlugin.resume(R2).then(function(T){console.log("恢复成功"),d.jSPlugin.Theme&&d.jSPlugin.Theme.setDecoderState({play:!0}),o2&&o2()}).catch(function(T){console.log("恢复失败",T)})})};d.disabled?(console.log("操作频繁,等待2秒后执行"),d.seekTimer&&clearTimeout(d.seekTimer),d.seekTimer=setTimeout(function(){f2(c2)},d.seekFrequency)):f2(c2)}}}),this.syncTimeLine(),m("".concat(this.jSPlugin.staticPath,"/rec/datepicker.min.css")),u("".concat(this.jSPlugin.staticPath,"/rec/jquery.min.js"),function(){u("".concat(d.jSPlugin.staticPath,"/rec/datepicker.js"),function(){u("".concat(d.jSPlugin.staticPath,"/rec/datepicker.zh-CN.js"),function(){!document.getElementsByClassName("datepicker-container")[0]&&$("#".concat(d.jSPlugin.id,"-datepicker")).datepicker&&$("#".concat(d.jSPlugin.id,"-datepicker")).datepicker({autoShow:!1,autoHide:!0,autoPick:!0,language:"zh-CN",date:new Date(f("begin",d.jSPlugin.params.url).replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"))||new Date,format:"yyyy-mm-dd",endDate:new Date,inline:!0,container:document.getElementById("".concat(d.jSPlugin.id,"-wrap"))}),document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"),d.datepickerVisible=!1,$("#".concat(d.jSPlugin.id,"-datepicker")).on("pick.datepicker",function(J){console.log("重新选择日期",J.date,new Date(J.date).Format("yyyyMMdd"),new Date(document.getElementById("".concat(d.jSPlugin.id,"-datepicker")).value).Format("yyyyMMdd")),J.date>new Date||new Date(J.date).Format("yyyyMMdd")===new Date(document.getElementById("".concat(d.jSPlugin.id,"-datepicker")).value).Format("yyyyMMdd")?J.preventDefault():(document.getElementById("".concat(d.jSPlugin.id,"-datepicker")).value=new Date(J.date).Format("yyyy-MM-dd"),d.renderRec(J.date),d.jSPlugin.decoderState&&d.jSPlugin.decoderState.state?d.jSPlugin.decoderState.state.cloudRec?d.jSPlugin.changePlayUrl({begin:new Date(J.date).Format("yyyyMMdd"),type:"cloud.rec"}):d.jSPlugin.decoderState.state.rec?d.jSPlugin.changePlayUrl({begin:new Date(J.date).Format("yyyyMMdd"),type:"rec"}):d.jSPlugin.changePlayUrl({begin:new Date(J.date).Format("yyyyMMdd")}):d.jSPlugin.changePlayUrl({begin:new Date(J.date).Format("yyyyMMdd")})),document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"),d.datepickerVisible=!1,d.jSPlugin.decoderState&&d.jSPlugin.decoderState&&d.jSPlugin.decoderState.state&&d.jSPlugin.decoderState.state.zoom&&(d.jSPlugin.setDecoderState({zoom:!1}),d.jSPlugin.Zoom.stopZoom())}),$("#".concat(d.jSPlugin.id,"-datepicker")).off("click").on("click",function(J){console.log("点击日期"),d.datepickerVisible?document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"):document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="inline"),d.datepickerVisible=!d.datepickerVisible})})})}),document.getElementById("".concat(this.jSPlugin.id,"-timeline-scale-add")).onclick=function(){var J=d.currentTimeWidth;J<3&&d.timeLine.changeSize(++d.currentTimeWidth)},document.getElementById("".concat(this.jSPlugin.id,"-timeline-scale-sub")).onclick=function(){var J=d.currentTimeWidth;J>0&&d.timeLine.changeSize(--d.currentTimeWidth)};var a2=f("begin",this.jSPlugin.url)||new Date().Format("yyyyMMdd");this.renderRec("".concat(a2.slice(0,4),"-").concat(a2.slice(4,6),"-").concat(a2.slice(6,8))),this.observer=new MutationObserver(function(J,H){d.recAutoSize()});var e2={attributes:!0,attributeOldValue:!0,attributeFilter:["style"]},s2=document.getElementById("".concat(this.jSPlugin.id));this.observer.observe(s2,e2)}},{key:"setDatepickerDate",value:function(d){if(document.getElementsByClassName("datepicker-container")[0]){var h=document.getElementsByClassName("datepicker-container")[0],y=h.parentNode;y.removeChild(h),document.getElementById("".concat(this.jSPlugin.id,"-datepicker")).value=d.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"),$("#".concat(this.jSPlugin.id,"-datepicker")).datepicker({autoShow:!1,autoHide:!0,autoPick:!0,language:"zh-CN",defaultDate:d,format:"yyyy-mm-dd",endDate:new Date,inline:!0,container:document.getElementById("".concat(this.jSPlugin.id,"-wrap"))})}}},{key:"datepickerHide",value:function(){document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"),this.datepickerVisible=!1}},{key:"datepickerShow",value:function(){document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="inline"),this.datepickerVisible=!0}},{key:"recAutoSize",value:function(){var d=this;if(document.getElementById("".concat(this.jSPlugin.id,"-canvas"))){var h=parseInt(getComputedStyle(document.getElementById(this.jSPlugin.id)).width,10)-100;h!==parseInt(document.getElementById("".concat(this.jSPlugin.id,"-canvas")).width)&&(document.getElementById("".concat(this.jSPlugin.id,"-canvas")).width=h,this.timeLine.init({id:"".concat(this.jSPlugin.id,"-canvas"),width:h,onChange:function(w){console.log("time",w,new Date(w).Format("yyyyMMddhhmmss")),console.log("jSPlugin",d.jSPlugin);var x=new Date(w).Format("yyyyMMddhhmmss");d.jSPlugin.changePlayUrl({begin:x})}}),this.renderRec(this.date),this.syncTimeLine())}}},{key:"syncTimeLine",value:function(){var d=this;this.jSPlugin.recTimer&&clearInterval(this.jSPlugin.recTimer),this.jSPlugin.recTimer=setInterval(function(){var h=d.jSPlugin.getOSDTime();h.then(function(y){var w=y.data;w===-1?console.log("获取播放时间错误"):w>0&&d.timeLine.run({time:new Date(w>1e12?w:w*1e3)})}).catch(function(y){})},1e3)}},{key:"unSyncTimeLine",value:function(){this.jSPlugin.recTimer&&clearInterval(this.jSPlugin.recTimer)}},{key:"renderRec",value:function(d){var h=this;this.date=d;var y=this,w=new Date(new Date(d).Format("yyyy-MM-dd 00:00:00").replace(/-/g,"/")).getTime(),x=new Date(new Date(d).Format("yyyy-MM-dd 23:59:59").replace(/-/g,"/")).getTime();this.timeLine.getRecord([],w,x),console.log("-----------233---------this.jSPlugin.url",this.jSPlugin.url);var k={accessToken:this.jSPlugin.accessToken,recType:y2(this.jSPlugin.url).type==="cloud.rec"?1:2,deviceSerial:y2(this.jSPlugin.url).deviceSerial,channelNo:y2(this.jSPlugin.url).channelNo,startTime:w,endTime:x,version:"2.0"},a2=function(J){if(J.data&&J.data.files&&J.data.files.length>0){var H=J.data.files,R2=new Date().getTime(),p2=J.data.isAll;if(p2)h.timeLine.getRecord(H,w,x);else{var c2=function f2(){function O2(o2){o2.data&&o2.data.files&&o2.data.files.length>0?o2.data.isAll==!1?(o2.data.files&&(H=H.concat(o2.data.files)),R2=o2.data.nextFileTime>0?o2.data.nextFileTime:new Date().getTime(),f2()):(console.log("云存储执行渲染片段"),y.timeLine.getRecord(H,w,x)):y.timeLine.getRecord(H,w,x)}k.startTime=R2,S2(this.jSPlugin.env.domain+"/api/lapp/video/by/time","POST",k,"",O2)};c2()}h.timeLine.run({time:new Date(w)})}else J.data&&J.data.length>0&&(console.log("获取本地录像片段成功",J),y.timeLine.getRecord(J.data,w,x),y.timeLine.run({time:new Date(w)}))},e2=this.jSPlugin.env.domain+"/api/lapp/video/by/time";S2(e2,"POST",k,"",a2)}}]),N}(),r0=function(_){console.log("执行TimeLine - params",_),this.state={id:_.id,start:"00:00:00",end:"24:00:00",current:0,timelag:30,timeArr:[],availTimeLine:[],scrollTop:0,index:0,date:"",noTimeLineTxt:"",disabled:!1};var d=this;this.setState=function(h){Object.keys(h).forEach(function(y){d.state[y]=h[y],y==="scrollTop"&&document.getElementById("time-line-item").parentNode.scrollTo(0,h[y]),y==="current"&&(document.getElementById("time-line-current").innerHTML=h[y])})},this.setDisabled=function(h){this.setState({disabled:h}),document.getElementById("time-line-item").parentNode.style.overflowY=h?"hidden":"scroll"},this.timeToSecond=function(h){var y=h.split(":"),w=Number(y[0]),x=Number(y[1]),k=Number(y[2]);return w*60*60+x*60+(k||0)},this.minuteToTime=function(h){var y=Math.floor(h/60),w=h%60;return(y>9?y:"0"+y)+":"+(w>9?w:"0"+w)},this.timeToMinute=function(h){var y=h.split(":"),w=Number(y[0]),x=Number(y[1]);return w*60+x},this.getPalyParam=_.getPalyParam,document.getElementById("time-line-item").parentNode.ontouchstart=function(){if(d.state.disabled)return!1;_.ontouchstart()},document.getElementById("time-line-item").parentNode.ontouchmove=function(){if(d.state.disabled)return!1;_.ontouchmove()},document.getElementById("time-line-item").parentNode.ontouchend=function(){if(d.state.disabled)return!1;var h,y=new Promise(function(w,x){var k=-1;h=setInterval(function(){var a2=document.getElementById("time-line-item").parentNode.scrollTop;a2!==k?(console.log("scolling",a2,k),k=a2):(console.log("scoll stop",a2,k),clearInterval(h),w(a2))},100)});y.then(function(w){console.log("scollPromise: then",w,d),d.rectTopTotime(w),console.log("页面滚动实际高度",w,d.state),d.getPalyParam({current:d.state.current})}),_.ontouchend()},this.matchTimeDot()};r0.prototype.changeScale=function(N){this.setState({timelag:N}),this.matchTimeDot()},r0.prototype.setDateLine=function(N,_){N.length>0?(typeof _=="undefined"&&(_=N.length-1),this.setState({availTimeLine:N,start:N[_].st,end:N[_].et,current:N[_].st}),console.log("this.state",this.state),this.matchRecTimeDot(),this.primaryOffsetH()):(this.setState({availTimeLine:[]}),console.log("this.state",this.state),this.matchRecTimeDot())},r0.prototype.matchTimeDot=function(){var N=this.state,_=N.start,d=N.end,h=N.timelag;N.availTimeLine,console.log("start",_,"end",d);var y=[],w=this.timeToMinute(d);w=Math.floor(w/h)*h;for(var x=w;x>=0;){var k=0,a2=0,e2=[];x==w&&(k=70),x==0&&(a2=230);var s2=this.minuteToTime(x);y.push({id:x,current:s2,label:"a"+x,marginTop:k,marginBottom:a2,recArr:e2}),x=x-h}this.setState({timeArr:y}),this.renderDateLine()},r0.prototype.matchRecTimeDot=function(){var N=this.state,_=N.start,d=N.end,h=N.timelag,y=N.availTimeLine,w=N.timeArr;console.log("start",_,"end",d);var x=[],k=y.length;if(k===0)for(var a2=0;a2p2&&w[a2].id
')}),a2+="
').concat(y.current,"
"),x.innerHTML=a2,h.appendChild(x)})},r0.prototype.primaryOffsetH=function(){var N=this.state,_=N.start,d=N.timelag,h=N.timeArr,y=h[0].current,w=this.timeToSecond(y),x=this.timeToSecond(_),k=w-x,a2=Math.ceil(k/d)+60;this.setState({scrollTop:a2}),console.log("起始偏移量",a2)},r0.prototype.currentOffsetH=function(){var N=this.state,_=N.current,d=N.timelag,h=N.timeArr,y=h[0].current,w=this.timeToSecond(y),x=this.timeToSecond(_),k=w-x,a2=Math.ceil(k/d)+60;this.setState({scrollTop:a2})},r0.prototype.rectTopTotime=function(N){var _=this.state.timelag,d=Math.floor(N/60),h=N-d*60,y,w;if(console.log("index:",d,"offsetH:",h),h==0)y=this.state.timeArr[d-1].current,w=0;else{var x=this.state.timeArr[d].current,k=this.timeToMinute(x),a2=60-h,e2=a2*_,s2=Math.floor(e2/60)+k,J=Math.floor(e2/60)*60;w=Math.ceil(e2-J),y=this.minuteToTime(s2)}this.setState({current:y+":"+(w>9?w:"0"+w),scrollTop:N})},r0.prototype.stepScrollTimeLine=function(N){this.setState({current:N}),this.currentOffsetH()},r0.prototype.secondCountDown=function(N){var _=this.state.current,d=_.split(":"),h=Number(d[0]),y=Number(d[1]),w=Number(d[2]),x=h*60*60+y*60+w+1,k=Math.floor(x/3600),a2=Math.floor((x-k*3600)/60),e2=x-k*3600-a2*60;this.setState({current:(k>9?k:"0"+k)+":"+(a2>9?a2:"0"+a2)+":"+(e2>9?e2:"0"+e2)})};var q1=r0;Date.prototype.Format=function(N){var _={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(N)&&(N=N.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var d in _)new RegExp("("+d+")").test(N)&&(N=N.replace(RegExp.$1,RegExp.$1.length==1?_[d]:("00"+_[d]).substr((""+_[d]).length)));return N};function h3(N){var _=new Date(N),d=_.getHours(),h=_.getMinutes(),y=_.getSeconds();return(d>9?d:"0"+d)+":"+(h>9?h:"0"+h)+":"+(y>9?y:"0"+y)}var O3=function(){function N(_,d,h){var y=this;a(this,N),this.changeRecSpeed=d,this.resetMobileZoomStatus=h,this.isMobile=!0,this.jSPlugin=_,this.timer=null,this.date=new Date().Format("yyyy-MM-dd"),this.begin=(new Date().Format("yyyy-MM-dd")+" 00:00:00").replace(/-/g,"/"),this.end=(new Date().Format("yyyy-MM-dd")+" 23:59:59").replace(/-/g,"/"),this.initBegin=null,this.initEnd=null,this.type=y2(this.jSPlugin.url).type,this.operating=!1,this.seekTimer=null,this.disabled=!1,this.seekFrequency=2e3,this.jSPlugin.params&&this.jSPlugin.params.seekFrequency&&(this.seekFrequency=this.jSPlugin.params.seekFrequency);var w=document.createElement("style");if(w.innerHTML=` - body{ - padding: 0; - margin: 0; - } - .time-line-container { - text-align: left; - height: 300px; - /* outline: 1px solid red; */ - /* background: gray; */ - position: relative; - /* padding-top: 60px; */ - margin-top: 20px; - } - - .time-line-container .time-line-item-container { - display: inline-block; - /* height: 400px; */ - width: 30%; - /* background: indianred; */ - overflow-y: scroll; - overflow-x: hidden; - /* padding-top: 60px; */ - height: 300px; - box-sizing: border-box; - white-space: nowrap; - position: relative; - } - - .time-line-container .time-line-item-container::-webkit-scrollbar { - width: 0px; - /*滚动条宽度*/ - height: 0px; - /*滚动条高度*/ - } - - .time-line-item .time-item { - position: relative; - box-sizing: border-box; - height: 60px; - font-size: 12px; - color: rgb(150, 150, 150); - border-right: 6px solid; - border-right-color: #ddd; - } - - .time-line-item .time-item .scale { - width: 6px; - height: 9px; - border-bottom: 1px solid #ccc; - float: right; - clear: both; - } - - .time-line-item .time-item .item-unavail { - width: 6px; - position: absolute; - left: 100%; - background-color: #ddd; - } - - .time-line-container .current-time { - position: absolute; - left: 0; - top: 40px; - height: 29px; - /* line-height: 58px; */ - border-bottom: 1px solid #648FFC; - width: 60%; - margin-left: 26%; - } - - .time-line-container .current-time .current-time-bg { - position: relative; - top: 15px; - width: 100px; - height: 29px; - line-height: 29px; - left: -70px; - font-size: 12px; - color: #2C2C2C; - } - - .time-line-container .current-time .current-time-bg::before { - content: ''; - display: inline-block; - width: 6px; - height: 6px; - border-radius: 100%; - background: #648FFC; - top: 11px; - position: absolute; - right: 30px; - } - - .date-switch-container { - height: 40px; - position: relative; - text-align: center; - margin: 20px 10px; - } - - .date-switch-container .current-date { - line-height: 40px; - height: 22px; - font-size: 16px; - color: #2C2C2C; - text-align: center; - font-weight: bold; - } - - .date-container { - width: 40px; - height: 40px; - position: absolute; - right: 0; - top: 0; - } - - .rec-type-container { - display: flex; - justify-content: space-between; - } - - .rec-type-container .rec-type-text { - padding: 0 15px; - font-size: 12px; - color: #2C2C2C; - } - - .rec-type-container .rec-type-switch { - padding: 0 20px; - } - - .date-container input { - position: absolute; - opacity: 0; - display: inline-block; - width: 40px; - height: 40px; - z-index: 10; - left: 0; - } - - .date-container label { - position: absolute; - left: 0; - top: 0; - /* display: none; */ - z-index: 0; - } - - .date-icon { - display: inline-block; - width: 40px; - height: 40px; - background: url('https://resource.eziot.com/group2/M00/00/6A/CtwQF2F6VieAQrU9AAABP-_Nsqo949.png') no-repeat 100% 100%; - } - .select-container { - padding: 10px; - display: flex; - justify-content: space-between; - } - - .advice { - height: 24px; - width: 70px; - display: flex; - justify-content: space-between; - line-height: 24px; - background: #F8F8F8; - border-radius: 8px; - } - - .advice span { - width: 40px; - display: inline-block; - } - - input[type="checkbox"]:not(:checked)+.advice span:first-child { - box-shadow: 0px 2px 5px 0px rgb(23 45 101 / 20%); - border-radius: 8px; - text-align: center; - - } - - input[type="checkbox"]:checked+.advice span:last-child { - box-shadow: 0px 2px 5px 0px rgb(23 45 101 / 20%); - border-radius: 8px; - text-align: center; - } - - input[type="checkbox"]:not(:checked)+.advice span:first-child svg { - fill: #648FFC !important; - } - - input[type="checkbox"]:checked+.advice span:last-child svg { - fill: #648FFC !important; - }`,document.getElementsByTagName("head")[0].appendChild(w),f("begin",this.jSPlugin.url)){var x=f("begin",this.jSPlugin.url);this.date=x.slice(0,4)+"/"+x.slice(4,6)+"/"+x.slice(6,8),this.begin=this.date+" ".concat(x.slice(8,10)||"00",":").concat(x.slice(10,12)||"00",":").concat(x.slice(12,14)||"00"),this.end=this.date+" 23:59:59",this.initBegin=this.begin}if(f("end",this.jSPlugin.url)){var k=f("end",this.jSPlugin.url);this.end=this.date+" ".concat(k.slice(8,10)||"23",":").concat(k.slice(10,12)||"59",":").concat(k.slice(12,14)||"59"),this.initEnd=this.end}var a2=document.createElement("div");a2.id="date-switch-container-wrap",a2.className="date-switch-container-wrap",a2.style="",a2.innerHTML=` -
-
今日录像
-
- - -
-
- `,g(a2,document.getElementById("".concat(this.jSPlugin.id,"-wrap")));var e2=document.createElement("div");e2.id="rec-type-container-wrap",e2.className="rec-type-container-wrap",e2.style="",e2.innerHTML=` -
-
0个录像
-
- -
-
- `,g(e2,a2);var s2=document.createElement("div");s2.id="mobile-rec-wrap",s2.className="mobileRec-wrap",s2.style="",s2.innerHTML=` -
-
-
2020-01-01 00:00:00
-
-
-
-
-
-
- `,g(s2,e2);var J=function(f2){console.log("子组件传值到父组件",f2,f2.current);var O2=f2.current,o2=new Date(y.date).Format("yyyyMMdd").substr(0,8)+(f2.current?O2.replace(/:/g,""):f2.current.replace(/:/g,""));if(y.initBegin&&new Date("".concat(y.date," ").concat(f2.current)).getTime()new Date(y.initEnd).getTime()&&(console.log("超过限制最高值"),o2=new Date(y.initBegin).Format("yyyyMMddhhmmss")),y.type==="cloud.rec"){var T=function(){y.jSPlugin.seek(o2.substr(8,6),"235959"),setTimeout(function(){y.syncTimeLine()},6e3)};y.seekTimer?clearTimeout(y.seekTimer):T(),console.log("this.jsPlug",y.jSPlugin.params),y.seekTimer=setTimeout(function(){T(),clearTimeout(y.seekTimer),y.seekTimer=null},y.seekFrequency)}else{var j=function(){setTimeout(function(){y.disabled=!1},y.seekFrequency)},K=function(D2){y.disabled=!0,y.jSPlugin.pause().then(function(){console.log("暂停成功"),y.jSPlugin.resume(o2).then(function(Z2){console.log("恢复成功"),y.jSPlugin.Theme&&y.jSPlugin.Theme.setDecoderState({play:!0}),y.jSPlugin.Theme&&y.jSPlugin.Theme.decoderState.state.sound&&y.jSPlugin.openSound(),y.syncTimeLine(),D2&&D2()})}).catch(function(){console.log("暂停失败"),y.jSPlugin.resume(o2).then(function(Z2){console.log("恢复成功"),y.jSPlugin.Theme&&y.jSPlugin.Theme.setDecoderState({play:!0}),y.syncTimeLine(),D2&&D2()})})};y.disabled?(console.log("操作频繁,等待2秒后执行"),y.seekTimer&&clearTimeout(y.seekTimer),y.seekTimer=setTimeout(function(){K(j)},y.seekFrequency)):K(j)}},H=function(){y.operating=!0,y.unSyncTimeLine()},R2=function(){},p2=function(){y.operating=!1,console.log("ontouchend")};this.TimeLineOBJ=new q1({id:"time-line-item",getPalyParam:J,ontouchstart:H,ontouchmove:R2,ontouchend:p2}),this.fetchDeviceRec(),document.getElementById("date").addEventListener("change",function(c2){if(console.log("日期变化",c2.target.value),y.initBegin||y.initEnd)return console.log("您开启了时间限制,无法切换日期"),!1;y.date=new Date(c2.target.value).Format("yyyy/MM/dd"),y.begin=y.date+" 00:00:00",y.end=y.date+" 23:59:59",y.fetchDeviceRec(),y.jSPlugin.changePlayUrl({type:y.type,begin:"".concat(new Date(y.date).Format("yyyyMMdd"),"000000")}),y.changeRecSpeed(1),y.resetMobileZoomStatus()}),document.getElementById("cloudType").checked=this.type==="rec",document.getElementById("cloudType").addEventListener("change",function(c2){var f2=c2.target.checked?2:1;y.type=c2.target.checked?"rec":"cloud.rec",console.log("recType",f2),y.fetchDeviceRec(),y.jSPlugin.changePlayUrl({type:y.type,begin:"".concat(new Date(y.date).Format("yyyyMMdd"),"000000")}).then(function(){console.log("切换类型成功"),y.syncTimeLine(),y.changeRecSpeed(1),y.resetMobileZoomStatus()},function(O2){console.log("err",O2)}).catch(function(O2){console.log(O2)})}),this.syncTimeLine()}return r(N,[{key:"fetchDeviceRec",value:function(){var d=this,h=function(x){var k=x.length;document.getElementById("recCount").innerHTML=k;for(var a2=[],e2=k-1;e2>=0;e2--){var s2=x[e2],J=h3(s2.endTime),H=h3(s2.startTime);a2.push({st:H,et:J})}d.TimeLineOBJ.setDateLine(a2)},y=new FormData;y.append("deviceSerial",y2(this.jSPlugin.url).deviceSerial),y.append("channelNo",y2(this.jSPlugin.url).channelNo),y.append("accessToken",this.jSPlugin.accessToken),y.append("recType",this.type==="cloud.rec"?1:2),y.append("startTime",new Date(this.begin).getTime()),y.append("endTime",new Date(this.end).getTime()),fetch(this.jSPlugin.env.domain+"/api/lapp/video/by/time",{method:"POST",body:y}).then(function(w){return w.json()}).then(function(w){if(w.code==200&&w.data){var x=[];x=w.data,h(x)}else h([])})}},{key:"syncTimeLine",value:function(){var d=this,h=function(w){var x=new Date(w),k=x.getHours(),a2=x.getMinutes(),e2=x.getSeconds();return(k>9?k:"0"+k)+":"+(a2>9?a2:"0"+a2)+":"+(e2>9?e2:"0"+e2)};this.timer&&clearInterval(this.timer),this.timer=setInterval(function(){if(d.operating)return console.log("操作中"),!1;d.jSPlugin.getOSDTime().then(function(y){y.data>0?d.TimeLineOBJ.stepScrollTimeLine(h(y.data*1e3)):(console.log("未找到当前获取播放时间,等待中..."),console.log("res:-----------------",y))}).catch(function(y){console.log("err:-----",y),console.log("未找到当前获取播放时间,等待中...")})},1e3)}},{key:"unSyncTimeLine",value:function(){this.timer&&clearInterval(this.timer)}}]),N}(),V3=[{code:200,msg:"",desc:"请求成功",text:"操作成功",type:"ptzStart"},{code:10001,msg:"操作失败",desc:"参数为空或格式不正确",text:"参数错误",type:"ptzStart"},{code:10002,msg:"账号异常,操作失败",desc:"重新获取accessToken",text:"accessToken异常或过期",type:"ptzStart"},{code:10005,msg:"账号异常,操作失败",desc:"appKey被冻结",text:"appKey异常",type:"ptzStart"},{code:20002,msg:"设备不存在,请检查设备连接情况",desc:"",text:"设备不存在",type:"ptzStart"},{code:20006,msg:"操作失败,请检查设备网络情况",desc:"检查设备网络状况,稍后再试",text:"网络异常",type:"ptzStart"},{code:20007,msg:"操作失败,请检查设备在线情况",desc:"检查设备是否在线",text:"设备不在线",type:"ptzStart"},{code:20008,msg:"操作过于频繁,稍后再试",desc:"操作过于频繁,稍后再试",text:"设备响应超时",type:"ptzStart"},{code:20014,msg:"操作失败",desc:"",text:"deviceSerial不合法",type:"ptzStart"},{code:20032,msg:"通道不存在请检查设备连接情况",desc:"该用户下通道不存在",text:"该用户下通道不存在",type:"ptzStart"},{code:49999,msg:"操作失败,请重试",desc:"接口调用异常",text:"数据异常",type:"ptzStart"},{code:6e4,msg:"操作失败,设备不支持该操作",desc:"",text:"设备不支持云台控制",type:"ptzStart"},{code:60001,msg:"操作失败,用户无权限",desc:"",text:"用户无云台控制权限",type:"ptzStart"},{code:60002,msg:"设备已旋转到上限位",desc:"",text:"设备云台旋转达到上限位",type:"ptzStart"},{code:60003,msg:"设备已旋转到下限位",desc:"",text:"设备云台旋转达到下限位",type:"ptzStart"},{code:60004,msg:"设备已旋转到左限位",desc:"",text:"设备云台旋转达到左限位",type:"ptzStart"},{code:60005,msg:"设备已旋转到右限位",desc:"",text:"设备云台旋转达到右限位",type:"ptzStart"},{code:60006,msg:"操作失败,请重试",desc:"稍候再试",text:"云台当前操作失败",type:"ptzStart"},{code:60009,msg:"设备正在操作中",desc:"",text:"正在调用预置点",type:"ptzStart"},{code:60020,msg:"操作失败",desc:"确认设备是否支持该操作",text:"不支持该命令",type:"ptzStart"}],i3=[{code:200,msg:"",desc:"请求成功",text:"操作成功",type:"ptzStop"},{code:10001,msg:"操作失败",desc:"参数为空或格式不正确",text:"参数错误",type:"ptzStop"},{code:10002,msg:"账号异常,操作失败",desc:"重新获取accessToken",text:"accessToken异常或过期",type:"ptzStop"},{code:10005,msg:"账号异常,操作失败",desc:"appKey被冻结",text:"appKey异常",type:"ptzStop"},{code:20002,msg:"设备不存在,请检查设备连接情况",desc:"",text:"设备不存在",type:"ptzStop"},{code:20006,msg:"操作失败,请检查设备网络情况",desc:"检查设备网络状况,稍后再试",text:"网络异常",type:"ptzStop"},{code:20007,msg:"操作失败,请检查设备在线情况",desc:"检查设备是否在线",text:"设备不在线",type:"ptzStop"},{code:20008,msg:"操作过于频繁,稍后再试",desc:"操作过于频繁,稍后再试",text:"设备响应超时",type:"ptzStop"},{code:20014,msg:"操作失败",desc:"",text:"deviceSerial不合法",type:"ptzStop"},{code:20032,msg:"通道不存在请检查设备连接情况",desc:"该用户下通道不存在",text:"该用户下通道不存在",type:"ptzStop"},{code:49999,msg:"操作失败,请重试",desc:"接口调用异常",text:"数据异常",type:"ptzStop"},{code:6e4,msg:"操作失败,设备不支持该操作",desc:"",text:"设备不支持云台控制",type:"ptzStop"},{code:60001,msg:"操作失败,用户无权限",desc:"",text:"用户无云台控制权限",type:"ptzStop"},{code:60006,msg:"操作失败,请重试",desc:"稍候再试",text:"云台当前操作失败",type:"ptzStop"},{code:60009,msg:"设备正在操作中",desc:"",text:"正在调用预置点",type:"ptzStop"},{code:60020,msg:"操作失败",desc:"确认设备是否支持该操作",text:"不支持该命令",type:"ptzStop"}],U2=[{code:200,msg:"",desc:"请求成功",text:"操作成功",type:"talk"},{code:10001,msg:"播放失败",desc:"参数为空或格式不正确",text:"参数错误",type:"talk"},{code:10002,msg:"账号异常,操作失败",desc:"",text:"accessToken异常或过期",type:"talk"},{code:10031,msg:"账号异常,操作失败",desc:"",text:"子账户或萤石用户没有权限",type:"talk"},{code:20002,msg:"设备不存在请检查设备连接情况",desc:"设备序列号输入有误或者设备未被添加或者通道异常",text:"设备不存在",type:"talk"},{code:60059,msg:"播放失败",desc:"",text:"ezopen地址均不可用",type:"talk"}],D3=[{code:200,msg:"",desc:"",text:"操作成功",type:"time"},{code:10001,msg:"播放失败",desc:"参数为空或格式不正确",text:"参数错误",type:"time"},{code:10002,msg:"账号异常,播放失败",desc:"",text:"accessToken异常或过期",type:"time"},{code:10004,msg:"账号异常,播放失败",desc:"",text:"用户不存在",type:"time"},{code:10005,msg:"账号异常,播放失败",desc:"",text:"appKey异常",type:"time"},{code:10011,msg:"播放失败",desc:"设备对应用户未注册至应用下",text:"未开通萤石服务",type:"time"},{code:10013,msg:"账号异常,播放失败",desc:"",text:"非开发者账号无权限调用",type:"time"},{code:10030,msg:"播放失败",desc:"",text:"appkey和appsecret不匹配",type:"time"},{code:20002,msg:"设备不存在请检查设备连接情况",desc:"设备序列号输入有误或者设备未被添加或者通道异常",text:"设备不存在",type:"time"},{code:20014,msg:"播放失败",desc:"",text:"deviceSerial不合法",type:"time"},{code:20032,msg:"设备不存在请检查设备连接情况",desc:"",text:"该用户下通道不存在",type:"time"},{code:60024,msg:"播放失败请重试",desc:"",text:"取消订阅操作失败",type:"time"},{code:49999,msg:"播放失败请重试",desc:"",text:"操作异常",type:"time"}],F3={ptzStart:V3,ptzStop:i3,talk:U2,time:D3},u1=function(){function N(_,d){a(this,N),this.coreX=_,this.coreY=d,console.log("uikitCode",F3)}return r(N,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"matchInfo",value:function(d,h){if(F3[h]){var y={};return F3[h].map(function(w){w.code==d&&(y=w)}),y}else return{code:500,msg:"未知错误",desc:"未知的错误码,或错误码类型有误",text:"",type:h}}}]),N}(),A1=function(){function N(_){var d=this;if(a(this,N),this.jSPlugin=_,this.codeHandler=new u1,this.pluginStatus=new N3(this,this.jSPlugin.id),console.log("云台初始化"),document.getElementById(this.jSPlugin.id+"-ez-ptz-item"))return!1;var h=document.createElement("div");h.id=this.jSPlugin.id+"-ez-ptz-item",h.className="ez-ptz-wrap",h.style="display:none";var y=document.createElement("style");y.innerHTML=` - .ez-ptz-container { - position: relative; - width: 80px; - height: 80px; - background: rgba(255, 255, 255, 0.80); - box-shadow: 0px 0px 33px 4px rgb(0 0 0 / 15%); - border: 1px solid rgba(255, 255, 255, 0.80); - border-radius: 100%; - cursor: pointer; - overflow: hidden; - user-select: none; - } - .ez-ptz-container .ez-ptz-icon.top { - width: 0; - height: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 6px solid #333333; - position: absolute; - display: inline-block; - left: calc(50% - 3px); - top: 2px; - } - - .ez-ptz-container .ez-ptz-icon.top.active { - border-bottom-color: #1890FF; - } - - .ez-ptz-container .ez-ptz-icon.bottom { - width: 0; - height: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 6px solid #333333; - position: absolute; - display: inline-block; - left: calc(50% - 3px); - bottom: 2px; - } - - .ez-ptz-container .ez-ptz-icon.bottom.active { - border-top-color: #1890FF; - } - - .ez-ptz-container .ez-ptz-icon.right { - width: 0; - height: 0; - border-top: 3px solid transparent; - border-bottom: 3px solid transparent; - border-left: 6px solid #333333; - position: absolute; - display: inline-block; - top: calc(50% - 3px); - right: 2px; - } - - .ez-ptz-container .ez-ptz-icon.right.active { - border-left-color: #1890FF; - } - - .ez-ptz-container .ez-ptz-icon.left { - width: 0; - height: 0; - border-top: 3px solid transparent; - border-bottom: 3px solid transparent; - border-right: 6px solid #333333; - position: absolute; - display: inline-block; - top: calc(50% - 3px); - left: 2px; - } - - .ez-ptz-container .ez-ptz-icon.left.active { - border-right-color: #1890FF; - } - - .ez-ptz-container .ez-ptz-main.center { - width: 23px; - height: 23px; - background: #1890FF; - border-radius: 100%; - top: calc(50% - 12.3px); - left: calc(50% - 12.3px); - position: absolute; - } - - .ez-ptz-wrap { - position: absolute; - right: 20px; - top: calc(50% - 50px); - width: 100px; - height: 100px; - z-index: 999; - } - - .ez-ptz-close { - position: absolute; - color: #FFFFFF; - top: 0; - right: 0px; - }`,document.getElementsByTagName("head")[0].appendChild(y),h.innerHTML=` -
-
-
-
-
-
- `),document.getElementById("".concat(_.id,"-wrap")).appendChild(h),document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).onmousedown=function(w){w.preventDefault(),console.log("触摸开始"),d._handlePtzTouch(w,"start")},document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).onmouseup=function(w){w.preventDefault(),console.log("触摸结束"),d._handlePtzTouch(w,"stop")},document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).ontouchstart=function(w){w.preventDefault(),console.log("触摸开始"),d._handlePtzTouch(w,"start")},document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).ontouchend=function(w){w.preventDefault(),console.log("触摸结束",w),d._handlePtzTouch(w,"stop")}}return r(N,[{key:"show",value:function(){document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-item")).style="display: inline-block"}},{key:"hide",value:function(){document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-item")).style="display: none"}},{key:"_handlePtzTouch",value:function(d,h){var y=this,w=document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).getBoundingClientRect(),x=w.left+41,k=w.top+41,a2=d.x||d.changedTouches[0].clientX,e2=d.y||d.changedTouches[0].clientY,s2=a2-x,J=e2-k,H=0,R2=this.jSPlugin.env.domain+"/api/lapp/device/ptz/start";if(Math.abs(s2)>Math.abs(J)?s2>0?H=3:H=2:J>0?H=1:H=0,/^rotate\(90/.test(document.getElementById("".concat(this.jSPlugin.id,"-wrap")).style.transform))switch(H){case 0:H=2;break;case 1:H=3;break;case 2:H=1;break;case 3:H=0;break}document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).style="background-image:linear-gradient(".concat(H===0?180:H===1?0:H===2?90:270,"deg, #1d8dd8 0%, rgba(100,143,252,0.00) 30%)"),h==="stop"&&(R2=this.jSPlugin.env.domain+"/api/lapp/device/ptz/stop",document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).style="");var p2=new FormData;p2.append("deviceSerial",y2(this.jSPlugin.url).deviceSerial),p2.append("channelNo",y2(this.jSPlugin.url).channelNo),p2.append("speed",1),p2.append("direction",H),p2.append("accessToken",this.jSPlugin.accessToken),fetch(R2,{method:"POST",body:p2}).then(function(c2){return c2.json()}).then(function(c2){c2.code==200||(console.log(c2.code,y.codeHandler.matchInfo(c2.code,h==="start"?"ptzStart":"ptzStop")),y.pluginStatus.loadingSetText({text:y.codeHandler.matchInfo(c2.code,h==="start"?"ptzStart":"ptzStop").msg,color:"red",delayClear:2e3}),(c2.code==60005||c2.code==60002||c2.code==60003||c2.code==60004)&&(document.getElementById("".concat(y.jSPlugin.id,"-ez-ptz-container")).style="background-image:linear-gradient(".concat(H===0?180:H===1?0:H===2?90:270,"deg, #f45656 0%, rgba(100,143,252,0.00) 30%)")))}).catch(function(c2){console.log("云台调用异常",c2)})}}]),N}();(function(N){if(n(e)==="object")t.exports=N();else{var _;typeof window!="undefined"?_=window:typeof X7!="undefined"?_=X7:typeof self!="undefined"?_=self:_=this,_.adapter=N()}})(function(){return function(){function N(_,d,h){function y(k,a2){if(!d[k]){if(!_[k]){var e2=typeof ei=="function"&&ei;if(!a2&&e2)return e2(k,!0);if(w)return w(k,!0);var s2=new Error("Cannot find module '"+k+"'");throw s2.code="MODULE_NOT_FOUND",s2}var J=d[k]={exports:{}};_[k][0].call(J.exports,function(H){var R2=_[k][1][H];return y(R2||H)},J,J.exports,N,_,d,h)}return d[k].exports}for(var w=typeof ei=="function"&&ei,x=0;x0&&arguments[0]!==void 0?arguments[0]:{},o2=O2.window,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0},j=y.log,K=y.detectBrowser(o2),E2={browserDetails:K,commonShim:p2,extractVersion:y.extractVersion,disableLog:y.disableLog,disableWarnings:y.disableWarnings};switch(K.browser){case"chrome":if(!x||!x.shimPeerConnection||!T.shimChrome)return j("Chrome shim is not included in this adapter release."),E2;j("adapter.js shimming chrome."),E2.browserShim=x,x.shimGetUserMedia(o2),x.shimMediaStream(o2),x.shimPeerConnection(o2),x.shimOnTrack(o2),x.shimAddTrackRemoveTrack(o2),x.shimGetSendersWithDtmf(o2),x.shimGetStats(o2),x.shimSenderReceiverGetStats(o2),x.fixNegotiationNeeded(o2),p2.shimRTCIceCandidate(o2),p2.shimConnectionState(o2),p2.shimMaxMessageSize(o2),p2.shimSendThrowTypeError(o2),p2.removeAllowExtmapMixed(o2);break;case"firefox":if(!s2||!s2.shimPeerConnection||!T.shimFirefox)return j("Firefox shim is not included in this adapter release."),E2;j("adapter.js shimming firefox."),E2.browserShim=s2,s2.shimGetUserMedia(o2),s2.shimPeerConnection(o2),s2.shimOnTrack(o2),s2.shimRemoveStream(o2),s2.shimSenderGetStats(o2),s2.shimReceiverGetStats(o2),s2.shimRTCDataChannel(o2),s2.shimAddTransceiver(o2),s2.shimCreateOffer(o2),s2.shimCreateAnswer(o2),p2.shimRTCIceCandidate(o2),p2.shimConnectionState(o2),p2.shimMaxMessageSize(o2),p2.shimSendThrowTypeError(o2);break;case"edge":if(!a2||!a2.shimPeerConnection||!T.shimEdge)return j("MS edge shim is not included in this adapter release."),E2;j("adapter.js shimming edge."),E2.browserShim=a2,a2.shimGetUserMedia(o2),a2.shimGetDisplayMedia(o2),a2.shimPeerConnection(o2),a2.shimReplaceTrack(o2),p2.shimMaxMessageSize(o2),p2.shimSendThrowTypeError(o2);break;case"safari":if(!H||!T.shimSafari)return j("Safari shim is not included in this adapter release."),E2;j("adapter.js shimming safari."),E2.browserShim=H,H.shimRTCIceServerUrls(o2),H.shimCreateOfferLegacy(o2),H.shimCallbacksAPI(o2),H.shimLocalStreamsAPI(o2),H.shimRemoteStreamsAPI(o2),H.shimTrackEventTransceiver(o2),H.shimGetUserMedia(o2),p2.shimRTCIceCandidate(o2),p2.shimMaxMessageSize(o2),p2.shimSendThrowTypeError(o2),p2.removeAllowExtmapMixed(o2);break;default:j("Unsupported browser!");break}return E2}},{"./chrome/chrome_shim":3,"./common_shim":6,"./edge/edge_shim":7,"./firefox/firefox_shim":11,"./safari/safari_shim":14,"./utils":15}],3:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetDisplayMedia=d.shimGetUserMedia=void 0;var h=typeof Symbol=="function"&&n(Symbol.iterator)==="symbol"?function(T){return n(T)}:function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":n(T)},y=N("./getusermedia");Object.defineProperty(d,"shimGetUserMedia",{enumerable:!0,get:function(){return y.shimGetUserMedia}});var w=N("./getdisplaymedia");Object.defineProperty(d,"shimGetDisplayMedia",{enumerable:!0,get:function(){return w.shimGetDisplayMedia}}),d.shimMediaStream=s2,d.shimOnTrack=J,d.shimGetSendersWithDtmf=H,d.shimGetStats=R2,d.shimSenderReceiverGetStats=p2,d.shimAddTrackRemoveTrackWithNative=c2,d.shimAddTrackRemoveTrack=f2,d.shimPeerConnection=O2,d.fixNegotiationNeeded=o2;var x=N("../utils.js"),k=a2(x);function a2(T){if(T&&T.__esModule)return T;var j={};if(T!=null)for(var K in T)Object.prototype.hasOwnProperty.call(T,K)&&(j[K]=T[K]);return j.default=T,j}function e2(T,j,K){return j in T?Object.defineProperty(T,j,{value:K,enumerable:!0,configurable:!0,writable:!0}):T[j]=K,T}function s2(T){T.MediaStream=T.MediaStream||T.webkitMediaStream}function J(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection&&!("ontrack"in T.RTCPeerConnection.prototype)){Object.defineProperty(T.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(E2){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=E2)},enumerable:!0,configurable:!0});var j=T.RTCPeerConnection.prototype.setRemoteDescription;T.RTCPeerConnection.prototype.setRemoteDescription=function(){var E2=this;return this._ontrackpoly||(this._ontrackpoly=function(D2){D2.stream.addEventListener("addtrack",function(Z2){var q2=void 0;T.RTCPeerConnection.prototype.getReceivers?q2=E2.getReceivers().find(function(P3){return P3.track&&P3.track.id===Z2.track.id}):q2={track:Z2.track};var f3=new Event("track");f3.track=Z2.track,f3.receiver=q2,f3.transceiver={receiver:q2},f3.streams=[D2.stream],E2.dispatchEvent(f3)}),D2.stream.getTracks().forEach(function(Z2){var q2=void 0;T.RTCPeerConnection.prototype.getReceivers?q2=E2.getReceivers().find(function(P3){return P3.track&&P3.track.id===Z2.id}):q2={track:Z2};var f3=new Event("track");f3.track=Z2,f3.receiver=q2,f3.transceiver={receiver:q2},f3.streams=[D2.stream],E2.dispatchEvent(f3)})},this.addEventListener("addstream",this._ontrackpoly)),j.apply(this,arguments)}}else k.wrapPeerConnectionEvent(T,"track",function(K){return K.transceiver||Object.defineProperty(K,"transceiver",{value:{receiver:K.receiver}}),K})}function H(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection&&!("getSenders"in T.RTCPeerConnection.prototype)&&"createDTMFSender"in T.RTCPeerConnection.prototype){var j=function(P3,j3){return{track:j3,get dtmf(){return this._dtmf===void 0&&(j3.kind==="audio"?this._dtmf=P3.createDTMFSender(j3):this._dtmf=null),this._dtmf},_pc:P3}};if(!T.RTCPeerConnection.prototype.getSenders){T.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};var K=T.RTCPeerConnection.prototype.addTrack;T.RTCPeerConnection.prototype.addTrack=function(P3,j3){var E3=K.apply(this,arguments);return E3||(E3=j(this,P3),this._senders.push(E3)),E3};var E2=T.RTCPeerConnection.prototype.removeTrack;T.RTCPeerConnection.prototype.removeTrack=function(P3){E2.apply(this,arguments);var j3=this._senders.indexOf(P3);j3!==-1&&this._senders.splice(j3,1)}}var D2=T.RTCPeerConnection.prototype.addStream;T.RTCPeerConnection.prototype.addStream=function(P3){var j3=this;this._senders=this._senders||[],D2.apply(this,[P3]),P3.getTracks().forEach(function(E3){j3._senders.push(j(j3,E3))})};var Z2=T.RTCPeerConnection.prototype.removeStream;T.RTCPeerConnection.prototype.removeStream=function(P3){var j3=this;this._senders=this._senders||[],Z2.apply(this,[P3]),P3.getTracks().forEach(function(E3){var C1=j3._senders.find(function(P1){return P1.track===E3});C1&&j3._senders.splice(j3._senders.indexOf(C1),1)})}}else if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection&&"getSenders"in T.RTCPeerConnection.prototype&&"createDTMFSender"in T.RTCPeerConnection.prototype&&T.RTCRtpSender&&!("dtmf"in T.RTCRtpSender.prototype)){var q2=T.RTCPeerConnection.prototype.getSenders;T.RTCPeerConnection.prototype.getSenders=function(){var P3=this,j3=q2.apply(this,[]);return j3.forEach(function(E3){return E3._pc=P3}),j3},Object.defineProperty(T.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function R2(T){if(T.RTCPeerConnection){var j=T.RTCPeerConnection.prototype.getStats;T.RTCPeerConnection.prototype.getStats=function(){var E2=this,D2=Array.prototype.slice.call(arguments),Z2=D2[0],q2=D2[1],f3=D2[2];if(arguments.length>0&&typeof Z2=="function")return j.apply(this,arguments);if(j.length===0&&(arguments.length===0||typeof Z2!="function"))return j.apply(this,[]);var P3=function(P1){var x1={},I1=P1.result();return I1.forEach(function($1){var W1={id:$1.id,timestamp:$1.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[$1.type]||$1.type};$1.names().forEach(function(E0){W1[E0]=$1.stat(E0)}),x1[W1.id]=W1}),x1},j3=function(P1){return new Map(Object.keys(P1).map(function(x1){return[x1,P1[x1]]}))};if(arguments.length>=2){var E3=function(P1){q2(j3(P3(P1)))};return j.apply(this,[E3,Z2])}return new Promise(function(C1,P1){j.apply(E2,[function(x1){C1(j3(P3(x1)))},P1])}).then(q2,f3)}}}function p2(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection&&T.RTCRtpSender&&T.RTCRtpReceiver){if(!("getStats"in T.RTCRtpSender.prototype)){var j=T.RTCPeerConnection.prototype.getSenders;j&&(T.RTCPeerConnection.prototype.getSenders=function(){var q2=this,f3=j.apply(this,[]);return f3.forEach(function(P3){return P3._pc=q2}),f3});var K=T.RTCPeerConnection.prototype.addTrack;K&&(T.RTCPeerConnection.prototype.addTrack=function(){var q2=K.apply(this,arguments);return q2._pc=this,q2}),T.RTCRtpSender.prototype.getStats=function(){var q2=this;return this._pc.getStats().then(function(f3){return k.filterStats(f3,q2.track,!0)})}}if(!("getStats"in T.RTCRtpReceiver.prototype)){var E2=T.RTCPeerConnection.prototype.getReceivers;E2&&(T.RTCPeerConnection.prototype.getReceivers=function(){var q2=this,f3=E2.apply(this,[]);return f3.forEach(function(P3){return P3._pc=q2}),f3}),k.wrapPeerConnectionEvent(T,"track",function(Z2){return Z2.receiver._pc=Z2.srcElement,Z2}),T.RTCRtpReceiver.prototype.getStats=function(){var q2=this;return this._pc.getStats().then(function(f3){return k.filterStats(f3,q2.track,!1)})}}if("getStats"in T.RTCRtpSender.prototype&&"getStats"in T.RTCRtpReceiver.prototype){var D2=T.RTCPeerConnection.prototype.getStats;T.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof T.MediaStreamTrack){var q2=arguments[0],f3=void 0,P3=void 0,j3=void 0;return this.getSenders().forEach(function(E3){E3.track===q2&&(f3?j3=!0:f3=E3)}),this.getReceivers().forEach(function(E3){return E3.track===q2&&(P3?j3=!0:P3=E3),E3.track===q2}),j3||f3&&P3?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):f3?f3.getStats():P3?P3.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return D2.apply(this,arguments)}}}}function c2(T){T.RTCPeerConnection.prototype.getLocalStreams=function(){var q2=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(function(f3){return q2._shimmedLocalStreams[f3][0]})};var j=T.RTCPeerConnection.prototype.addTrack;T.RTCPeerConnection.prototype.addTrack=function(q2,f3){if(!f3)return j.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};var P3=j.apply(this,arguments);return this._shimmedLocalStreams[f3.id]?this._shimmedLocalStreams[f3.id].indexOf(P3)===-1&&this._shimmedLocalStreams[f3.id].push(P3):this._shimmedLocalStreams[f3.id]=[f3,P3],P3};var K=T.RTCPeerConnection.prototype.addStream;T.RTCPeerConnection.prototype.addStream=function(q2){var f3=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{},q2.getTracks().forEach(function(E3){var C1=f3.getSenders().find(function(P1){return P1.track===E3});if(C1)throw new DOMException("Track already exists.","InvalidAccessError")});var P3=this.getSenders();K.apply(this,arguments);var j3=this.getSenders().filter(function(E3){return P3.indexOf(E3)===-1});this._shimmedLocalStreams[q2.id]=[q2].concat(j3)};var E2=T.RTCPeerConnection.prototype.removeStream;T.RTCPeerConnection.prototype.removeStream=function(q2){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[q2.id],E2.apply(this,arguments)};var D2=T.RTCPeerConnection.prototype.removeTrack;T.RTCPeerConnection.prototype.removeTrack=function(q2){var f3=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},q2&&Object.keys(this._shimmedLocalStreams).forEach(function(P3){var j3=f3._shimmedLocalStreams[P3].indexOf(q2);j3!==-1&&f3._shimmedLocalStreams[P3].splice(j3,1),f3._shimmedLocalStreams[P3].length===1&&delete f3._shimmedLocalStreams[P3]}),D2.apply(this,arguments)}}function f2(T){if(!T.RTCPeerConnection)return;var j=k.detectBrowser(T);if(T.RTCPeerConnection.prototype.addTrack&&j.version>=65)return c2(T);var K=T.RTCPeerConnection.prototype.getLocalStreams;T.RTCPeerConnection.prototype.getLocalStreams=function(){var E3=this,C1=K.apply(this);return this._reverseStreams=this._reverseStreams||{},C1.map(function(P1){return E3._reverseStreams[P1.id]})};var E2=T.RTCPeerConnection.prototype.addStream;T.RTCPeerConnection.prototype.addStream=function(E3){var C1=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},E3.getTracks().forEach(function(x1){var I1=C1.getSenders().find(function($1){return $1.track===x1});if(I1)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[E3.id]){var P1=new T.MediaStream(E3.getTracks());this._streams[E3.id]=P1,this._reverseStreams[P1.id]=E3,E3=P1}E2.apply(this,[E3])};var D2=T.RTCPeerConnection.prototype.removeStream;T.RTCPeerConnection.prototype.removeStream=function(E3){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},D2.apply(this,[this._streams[E3.id]||E3]),delete this._reverseStreams[this._streams[E3.id]?this._streams[E3.id].id:E3.id],delete this._streams[E3.id]},T.RTCPeerConnection.prototype.addTrack=function(E3,C1){var P1=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var x1=[].slice.call(arguments,1);if(x1.length!==1||!x1[0].getTracks().find(function(E0){return E0===E3}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");var I1=this.getSenders().find(function(E0){return E0.track===E3});if(I1)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};var $1=this._streams[C1.id];if($1)$1.addTrack(E3),Promise.resolve().then(function(){P1.dispatchEvent(new Event("negotiationneeded"))});else{var W1=new T.MediaStream([E3]);this._streams[C1.id]=W1,this._reverseStreams[W1.id]=C1,this.addStream(W1)}return this.getSenders().find(function(E0){return E0.track===E3})};function Z2(j3,E3){var C1=E3.sdp;return Object.keys(j3._reverseStreams||[]).forEach(function(P1){var x1=j3._reverseStreams[P1],I1=j3._streams[x1.id];C1=C1.replace(new RegExp(I1.id,"g"),x1.id)}),new RTCSessionDescription({type:E3.type,sdp:C1})}function q2(j3,E3){var C1=E3.sdp;return Object.keys(j3._reverseStreams||[]).forEach(function(P1){var x1=j3._reverseStreams[P1],I1=j3._streams[x1.id];C1=C1.replace(new RegExp(x1.id,"g"),I1.id)}),new RTCSessionDescription({type:E3.type,sdp:C1})}["createOffer","createAnswer"].forEach(function(j3){var E3=T.RTCPeerConnection.prototype[j3],C1=e2({},j3,function(){var P1=this,x1=arguments,I1=arguments.length&&typeof arguments[0]=="function";return I1?E3.apply(this,[function($1){var W1=Z2(P1,$1);x1[0].apply(null,[W1])},function($1){x1[1]&&x1[1].apply(null,$1)},arguments[2]]):E3.apply(this,arguments).then(function($1){return Z2(P1,$1)})});T.RTCPeerConnection.prototype[j3]=C1[j3]});var f3=T.RTCPeerConnection.prototype.setLocalDescription;T.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?f3.apply(this,arguments):(arguments[0]=q2(this,arguments[0]),f3.apply(this,arguments))};var P3=Object.getOwnPropertyDescriptor(T.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(T.RTCPeerConnection.prototype,"localDescription",{get:function(){var E3=P3.get.apply(this);return E3.type===""?E3:Z2(this,E3)}}),T.RTCPeerConnection.prototype.removeTrack=function(E3){var C1=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!E3._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var P1=E3._pc===this;if(!P1)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};var x1=void 0;Object.keys(this._streams).forEach(function(I1){var $1=C1._streams[I1].getTracks().find(function(W1){return E3.track===W1});$1&&(x1=C1._streams[I1])}),x1&&(x1.getTracks().length===1?this.removeStream(this._reverseStreams[x1.id]):x1.removeTrack(E3.track),this.dispatchEvent(new Event("negotiationneeded")))}}function O2(T){var j=k.detectBrowser(T);if(!T.RTCPeerConnection&&T.webkitRTCPeerConnection&&(T.RTCPeerConnection=T.webkitRTCPeerConnection),!!T.RTCPeerConnection){j.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(E2){var D2=T.RTCPeerConnection.prototype[E2],Z2=e2({},E2,function(){return arguments[0]=new(E2==="addIceCandidate"?T.RTCIceCandidate:T.RTCSessionDescription)(arguments[0]),D2.apply(this,arguments)});T.RTCPeerConnection.prototype[E2]=Z2[E2]});var K=T.RTCPeerConnection.prototype.addIceCandidate;T.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?j.version<78&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():K.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}}function o2(T){k.wrapPeerConnectionEvent(T,"negotiationneeded",function(j){var K=j.target;if(K.signalingState==="stable")return j})}},{"../utils.js":15,"./getdisplaymedia":4,"./getusermedia":5}],4:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetDisplayMedia=h;function h(y,w){if(!(y.navigator.mediaDevices&&"getDisplayMedia"in y.navigator.mediaDevices)&&y.navigator.mediaDevices){if(typeof w!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}y.navigator.mediaDevices.getDisplayMedia=function(k){return w(k).then(function(a2){var e2=k.video&&k.video.width,s2=k.video&&k.video.height,J=k.video&&k.video.frameRate;return k.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:a2,maxFrameRate:J||3}},e2&&(k.video.mandatory.maxWidth=e2),s2&&(k.video.mandatory.maxHeight=s2),y.navigator.mediaDevices.getUserMedia(k)})}}}},{}],5:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0});var h=typeof Symbol=="function"&&n(Symbol.iterator)==="symbol"?function(e2){return n(e2)}:function(e2){return e2&&typeof Symbol=="function"&&e2.constructor===Symbol&&e2!==Symbol.prototype?"symbol":n(e2)};d.shimGetUserMedia=a2;var y=N("../utils.js"),w=x(y);function x(e2){if(e2&&e2.__esModule)return e2;var s2={};if(e2!=null)for(var J in e2)Object.prototype.hasOwnProperty.call(e2,J)&&(s2[J]=e2[J]);return s2.default=e2,s2}var k=w.log;function a2(e2){var s2=e2&&e2.navigator;if(s2.mediaDevices){var J=w.detectBrowser(e2),H=function(o2){if((typeof o2=="undefined"?"undefined":h(o2))!=="object"||o2.mandatory||o2.optional)return o2;var T={};return Object.keys(o2).forEach(function(j){if(!(j==="require"||j==="advanced"||j==="mediaSource")){var K=h(o2[j])==="object"?o2[j]:{ideal:o2[j]};K.exact!==void 0&&typeof K.exact=="number"&&(K.min=K.max=K.exact);var E2=function(q2,f3){return q2?q2+f3.charAt(0).toUpperCase()+f3.slice(1):f3==="deviceId"?"sourceId":f3};if(K.ideal!==void 0){T.optional=T.optional||[];var D2={};typeof K.ideal=="number"?(D2[E2("min",j)]=K.ideal,T.optional.push(D2),D2={},D2[E2("max",j)]=K.ideal,T.optional.push(D2)):(D2[E2("",j)]=K.ideal,T.optional.push(D2))}K.exact!==void 0&&typeof K.exact!="number"?(T.mandatory=T.mandatory||{},T.mandatory[E2("",j)]=K.exact):["min","max"].forEach(function(Z2){K[Z2]!==void 0&&(T.mandatory=T.mandatory||{},T.mandatory[E2(Z2,j)]=K[Z2])})}}),o2.advanced&&(T.optional=(T.optional||[]).concat(o2.advanced)),T},R2=function(o2,T){if(J.version>=61)return T(o2);if(o2=JSON.parse(JSON.stringify(o2)),o2&&h(o2.audio)==="object"){var j=function(q2,f3,P3){f3 in q2&&!(P3 in q2)&&(q2[P3]=q2[f3],delete q2[f3])};o2=JSON.parse(JSON.stringify(o2)),j(o2.audio,"autoGainControl","googAutoGainControl"),j(o2.audio,"noiseSuppression","googNoiseSuppression"),o2.audio=H(o2.audio)}if(o2&&h(o2.video)==="object"){var K=o2.video.facingMode;K=K&&((typeof K=="undefined"?"undefined":h(K))==="object"?K:{ideal:K});var E2=J.version<66;if(K&&(K.exact==="user"||K.exact==="environment"||K.ideal==="user"||K.ideal==="environment")&&!(s2.mediaDevices.getSupportedConstraints&&s2.mediaDevices.getSupportedConstraints().facingMode&&!E2)){delete o2.video.facingMode;var D2=void 0;if(K.exact==="environment"||K.ideal==="environment"?D2=["back","rear"]:(K.exact==="user"||K.ideal==="user")&&(D2=["front"]),D2)return s2.mediaDevices.enumerateDevices().then(function(Z2){Z2=Z2.filter(function(f3){return f3.kind==="videoinput"});var q2=Z2.find(function(f3){return D2.some(function(P3){return f3.label.toLowerCase().includes(P3)})});return!q2&&Z2.length&&D2.includes("back")&&(q2=Z2[Z2.length-1]),q2&&(o2.video.deviceId=K.exact?{exact:q2.deviceId}:{ideal:q2.deviceId}),o2.video=H(o2.video),k("chrome: "+JSON.stringify(o2)),T(o2)})}o2.video=H(o2.video)}return k("chrome: "+JSON.stringify(o2)),T(o2)},p2=function(o2){return J.version>=64?o2:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[o2.name]||o2.name,message:o2.message,constraint:o2.constraint||o2.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},c2=function(o2,T,j){R2(o2,function(K){s2.webkitGetUserMedia(K,T,function(E2){j&&j(p2(E2))})})};if(s2.getUserMedia=c2.bind(s2),s2.mediaDevices.getUserMedia){var f2=s2.mediaDevices.getUserMedia.bind(s2.mediaDevices);s2.mediaDevices.getUserMedia=function(O2){return R2(O2,function(o2){return f2(o2).then(function(T){if(o2.audio&&!T.getAudioTracks().length||o2.video&&!T.getVideoTracks().length)throw T.getTracks().forEach(function(j){j.stop()}),new DOMException("","NotFoundError");return T},function(T){return Promise.reject(p2(T))})})}}}}},{"../utils.js":15}],6:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0});var h=typeof Symbol=="function"&&n(Symbol.iterator)==="symbol"?function(c2){return n(c2)}:function(c2){return c2&&typeof Symbol=="function"&&c2.constructor===Symbol&&c2!==Symbol.prototype?"symbol":n(c2)};d.shimRTCIceCandidate=s2,d.shimMaxMessageSize=J,d.shimSendThrowTypeError=H,d.shimConnectionState=R2,d.removeAllowExtmapMixed=p2;var y=N("sdp"),w=e2(y),x=N("./utils"),k=a2(x);function a2(c2){if(c2&&c2.__esModule)return c2;var f2={};if(c2!=null)for(var O2 in c2)Object.prototype.hasOwnProperty.call(c2,O2)&&(f2[O2]=c2[O2]);return f2.default=c2,f2}function e2(c2){return c2&&c2.__esModule?c2:{default:c2}}function s2(c2){if(!(!c2.RTCIceCandidate||c2.RTCIceCandidate&&"foundation"in c2.RTCIceCandidate.prototype)){var f2=c2.RTCIceCandidate;c2.RTCIceCandidate=function(o2){if((typeof o2=="undefined"?"undefined":h(o2))==="object"&&o2.candidate&&o2.candidate.indexOf("a=")===0&&(o2=JSON.parse(JSON.stringify(o2)),o2.candidate=o2.candidate.substr(2)),o2.candidate&&o2.candidate.length){var T=new f2(o2),j=w.default.parseCandidate(o2.candidate),K=Object.assign(T,j);return K.toJSON=function(){return{candidate:K.candidate,sdpMid:K.sdpMid,sdpMLineIndex:K.sdpMLineIndex,usernameFragment:K.usernameFragment}},K}return new f2(o2)},c2.RTCIceCandidate.prototype=f2.prototype,k.wrapPeerConnectionEvent(c2,"icecandidate",function(O2){return O2.candidate&&Object.defineProperty(O2,"candidate",{value:new c2.RTCIceCandidate(O2.candidate),writable:"false"}),O2})}}function J(c2){if(c2.RTCPeerConnection){var f2=k.detectBrowser(c2);"sctp"in c2.RTCPeerConnection.prototype||Object.defineProperty(c2.RTCPeerConnection.prototype,"sctp",{get:function(){return typeof this._sctp=="undefined"?null:this._sctp}});var O2=function(D2){if(!D2||!D2.sdp)return!1;var Z2=w.default.splitSections(D2.sdp);return Z2.shift(),Z2.some(function(q2){var f3=w.default.parseMLine(q2);return f3&&f3.kind==="application"&&f3.protocol.indexOf("SCTP")!==-1})},o2=function(D2){var Z2=D2.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(Z2===null||Z2.length<2)return-1;var q2=parseInt(Z2[1],10);return q2!==q2?-1:q2},T=function(D2){var Z2=65536;return f2.browser==="firefox"&&(f2.version<57?D2===-1?Z2=16384:Z2=2147483637:f2.version<60?Z2=f2.version===57?65535:65536:Z2=2147483637),Z2},j=function(D2,Z2){var q2=65536;f2.browser==="firefox"&&f2.version===57&&(q2=65535);var f3=w.default.matchPrefix(D2.sdp,"a=max-message-size:");return f3.length>0?q2=parseInt(f3[0].substr(19),10):f2.browser==="firefox"&&Z2!==-1&&(q2=2147483637),q2},K=c2.RTCPeerConnection.prototype.setRemoteDescription;c2.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,f2.browser==="chrome"&&f2.version>=76){var D2=this.getConfiguration(),Z2=D2.sdpSemantics;Z2==="plan-b"&&Object.defineProperty(this,"sctp",{get:function(){return typeof this._sctp=="undefined"?null:this._sctp},enumerable:!0,configurable:!0})}if(O2(arguments[0])){var q2=o2(arguments[0]),f3=T(q2),P3=j(arguments[0],q2),j3=void 0;f3===0&&P3===0?j3=Number.POSITIVE_INFINITY:f3===0||P3===0?j3=Math.max(f3,P3):j3=Math.min(f3,P3);var E3={};Object.defineProperty(E3,"maxMessageSize",{get:function(){return j3}}),this._sctp=E3}return K.apply(this,arguments)}}}function H(c2){if(!(c2.RTCPeerConnection&&"createDataChannel"in c2.RTCPeerConnection.prototype))return;function f2(o2,T){var j=o2.send;o2.send=function(){var E2=arguments[0],D2=E2.length||E2.size||E2.byteLength;if(o2.readyState==="open"&&T.sctp&&D2>T.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+T.sctp.maxMessageSize+" bytes)");return j.apply(o2,arguments)}}var O2=c2.RTCPeerConnection.prototype.createDataChannel;c2.RTCPeerConnection.prototype.createDataChannel=function(){var T=O2.apply(this,arguments);return f2(T,this),T},k.wrapPeerConnectionEvent(c2,"datachannel",function(o2){return f2(o2.channel,o2.target),o2})}function R2(c2){if(!(!c2.RTCPeerConnection||"connectionState"in c2.RTCPeerConnection.prototype)){var f2=c2.RTCPeerConnection.prototype;Object.defineProperty(f2,"connectionState",{get:function(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(f2,"onconnectionstatechange",{get:function(){return this._onconnectionstatechange||null},set:function(o2){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),o2&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=o2)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(function(O2){var o2=f2[O2];f2[O2]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=function(T){var j=T.target;if(j._lastConnectionState!==j.connectionState){j._lastConnectionState=j.connectionState;var K=new Event("connectionstatechange",T);j.dispatchEvent(K)}return T},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),o2.apply(this,arguments)}})}}function p2(c2){if(c2.RTCPeerConnection){var f2=k.detectBrowser(c2);if(!(f2.browser==="chrome"&&f2.version>=71)){var O2=c2.RTCPeerConnection.prototype.setRemoteDescription;c2.RTCPeerConnection.prototype.setRemoteDescription=function(T){return T&&T.sdp&&T.sdp.indexOf(` -a=extmap-allow-mixed`)!==-1&&(T.sdp=T.sdp.split(` -`).filter(function(j){return j.trim()!=="a=extmap-allow-mixed"}).join(` -`)),O2.apply(this,arguments)}}}}},{"./utils":15,sdp:17}],7:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetDisplayMedia=d.shimGetUserMedia=void 0;var h=N("./getusermedia");Object.defineProperty(d,"shimGetUserMedia",{enumerable:!0,get:function(){return h.shimGetUserMedia}});var y=N("./getdisplaymedia");Object.defineProperty(d,"shimGetDisplayMedia",{enumerable:!0,get:function(){return y.shimGetDisplayMedia}}),d.shimPeerConnection=H,d.shimReplaceTrack=R2;var w=N("../utils"),x=J(w),k=N("./filtericeservers"),a2=N("rtcpeerconnection-shim"),e2=s2(a2);function s2(p2){return p2&&p2.__esModule?p2:{default:p2}}function J(p2){if(p2&&p2.__esModule)return p2;var c2={};if(p2!=null)for(var f2 in p2)Object.prototype.hasOwnProperty.call(p2,f2)&&(c2[f2]=p2[f2]);return c2.default=p2,c2}function H(p2){var c2=x.detectBrowser(p2);if(p2.RTCIceGatherer&&(p2.RTCIceCandidate||(p2.RTCIceCandidate=function(T){return T}),p2.RTCSessionDescription||(p2.RTCSessionDescription=function(T){return T}),c2.version<15025)){var f2=Object.getOwnPropertyDescriptor(p2.MediaStreamTrack.prototype,"enabled");Object.defineProperty(p2.MediaStreamTrack.prototype,"enabled",{set:function(T){f2.set.call(this,T);var j=new Event("enabled");j.enabled=T,this.dispatchEvent(j)}})}p2.RTCRtpSender&&!("dtmf"in p2.RTCRtpSender.prototype)&&Object.defineProperty(p2.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=new p2.RTCDtmfSender(this):this.track.kind==="video"&&(this._dtmf=null)),this._dtmf}}),p2.RTCDtmfSender&&!p2.RTCDTMFSender&&(p2.RTCDTMFSender=p2.RTCDtmfSender);var O2=(0,e2.default)(p2,c2.version);p2.RTCPeerConnection=function(T){return T&&T.iceServers&&(T.iceServers=(0,k.filterIceServers)(T.iceServers,c2.version),x.log("ICE servers after filtering:",T.iceServers)),new O2(T)},p2.RTCPeerConnection.prototype=O2.prototype}function R2(p2){p2.RTCRtpSender&&!("replaceTrack"in p2.RTCRtpSender.prototype)&&(p2.RTCRtpSender.prototype.replaceTrack=p2.RTCRtpSender.prototype.setTrack)}},{"../utils":15,"./filtericeservers":8,"./getdisplaymedia":9,"./getusermedia":10,"rtcpeerconnection-shim":16}],8:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.filterIceServers=x;var h=N("../utils"),y=w(h);function w(k){if(k&&k.__esModule)return k;var a2={};if(k!=null)for(var e2 in k)Object.prototype.hasOwnProperty.call(k,e2)&&(a2[e2]=k[e2]);return a2.default=k,a2}function x(k,a2){var e2=!1;return k=JSON.parse(JSON.stringify(k)),k.filter(function(s2){if(s2&&(s2.urls||s2.url)){var J=s2.urls||s2.url;s2.url&&!s2.urls&&y.deprecated("RTCIceServer.url","RTCIceServer.urls");var H=typeof J=="string";return H&&(J=[J]),J=J.filter(function(R2){if(R2.indexOf("stun:")===0)return!1;var p2=R2.startsWith("turn")&&!R2.startsWith("turn:[")&&R2.includes("transport=udp");return p2&&!e2?(e2=!0,!0):p2&&!e2}),delete s2.url,s2.urls=H?J[0]:J,!!J.length}})}},{"../utils":15}],9:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetDisplayMedia=h;function h(y){"getDisplayMedia"in y.navigator&&y.navigator.mediaDevices&&(y.navigator.mediaDevices&&"getDisplayMedia"in y.navigator.mediaDevices||(y.navigator.mediaDevices.getDisplayMedia=y.navigator.getDisplayMedia.bind(y.navigator)))}},{}],10:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetUserMedia=h;function h(y){var w=y&&y.navigator,x=function(e2){return{name:{PermissionDeniedError:"NotAllowedError"}[e2.name]||e2.name,message:e2.message,constraint:e2.constraint,toString:function(){return this.name}}},k=w.mediaDevices.getUserMedia.bind(w.mediaDevices);w.mediaDevices.getUserMedia=function(a2){return k(a2).catch(function(e2){return Promise.reject(x(e2))})}}},{}],11:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetDisplayMedia=d.shimGetUserMedia=void 0;var h=typeof Symbol=="function"&&n(Symbol.iterator)==="symbol"?function(T){return n(T)}:function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":n(T)},y=N("./getusermedia");Object.defineProperty(d,"shimGetUserMedia",{enumerable:!0,get:function(){return y.shimGetUserMedia}});var w=N("./getdisplaymedia");Object.defineProperty(d,"shimGetDisplayMedia",{enumerable:!0,get:function(){return w.shimGetDisplayMedia}}),d.shimOnTrack=s2,d.shimPeerConnection=J,d.shimSenderGetStats=H,d.shimReceiverGetStats=R2,d.shimRemoveStream=p2,d.shimRTCDataChannel=c2,d.shimAddTransceiver=f2,d.shimCreateOffer=O2,d.shimCreateAnswer=o2;var x=N("../utils"),k=a2(x);function a2(T){if(T&&T.__esModule)return T;var j={};if(T!=null)for(var K in T)Object.prototype.hasOwnProperty.call(T,K)&&(j[K]=T[K]);return j.default=T,j}function e2(T,j,K){return j in T?Object.defineProperty(T,j,{value:K,enumerable:!0,configurable:!0,writable:!0}):T[j]=K,T}function s2(T){(typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCTrackEvent&&"receiver"in T.RTCTrackEvent.prototype&&!("transceiver"in T.RTCTrackEvent.prototype)&&Object.defineProperty(T.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})}function J(T){var j=k.detectBrowser(T);if(!((typeof T=="undefined"?"undefined":h(T))!=="object"||!(T.RTCPeerConnection||T.mozRTCPeerConnection))){if(!T.RTCPeerConnection&&T.mozRTCPeerConnection&&(T.RTCPeerConnection=T.mozRTCPeerConnection),j.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(Z2){var q2=T.RTCPeerConnection.prototype[Z2],f3=e2({},Z2,function(){return arguments[0]=new(Z2==="addIceCandidate"?T.RTCIceCandidate:T.RTCSessionDescription)(arguments[0]),q2.apply(this,arguments)});T.RTCPeerConnection.prototype[Z2]=f3[Z2]}),j.version<68){var K=T.RTCPeerConnection.prototype.addIceCandidate;T.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?arguments[0]&&arguments[0].candidate===""?Promise.resolve():K.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}var E2={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},D2=T.RTCPeerConnection.prototype.getStats;T.RTCPeerConnection.prototype.getStats=function(){var q2=Array.prototype.slice.call(arguments),f3=q2[0],P3=q2[1],j3=q2[2];return D2.apply(this,[f3||null]).then(function(E3){if(j.version<53&&!P3)try{E3.forEach(function(C1){C1.type=E2[C1.type]||C1.type})}catch(C1){if(C1.name!=="TypeError")throw C1;E3.forEach(function(P1,x1){E3.set(x1,Object.assign({},P1,{type:E2[P1.type]||P1.type}))})}return E3}).then(P3,j3)}}}function H(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection&&T.RTCRtpSender&&!(T.RTCRtpSender&&"getStats"in T.RTCRtpSender.prototype)){var j=T.RTCPeerConnection.prototype.getSenders;j&&(T.RTCPeerConnection.prototype.getSenders=function(){var D2=this,Z2=j.apply(this,[]);return Z2.forEach(function(q2){return q2._pc=D2}),Z2});var K=T.RTCPeerConnection.prototype.addTrack;K&&(T.RTCPeerConnection.prototype.addTrack=function(){var D2=K.apply(this,arguments);return D2._pc=this,D2}),T.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}}function R2(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection&&T.RTCRtpSender&&!(T.RTCRtpSender&&"getStats"in T.RTCRtpReceiver.prototype)){var j=T.RTCPeerConnection.prototype.getReceivers;j&&(T.RTCPeerConnection.prototype.getReceivers=function(){var E2=this,D2=j.apply(this,[]);return D2.forEach(function(Z2){return Z2._pc=E2}),D2}),k.wrapPeerConnectionEvent(T,"track",function(K){return K.receiver._pc=K.srcElement,K}),T.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function p2(T){!T.RTCPeerConnection||"removeStream"in T.RTCPeerConnection.prototype||(T.RTCPeerConnection.prototype.removeStream=function(K){var E2=this;k.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(D2){D2.track&&K.getTracks().includes(D2.track)&&E2.removeTrack(D2)})})}function c2(T){T.DataChannel&&!T.RTCDataChannel&&(T.RTCDataChannel=T.DataChannel)}function f2(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection){var j=T.RTCPeerConnection.prototype.addTransceiver;j&&(T.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];var E2=arguments[1],D2=E2&&"sendEncodings"in E2;D2&&E2.sendEncodings.forEach(function(P3){if("rid"in P3){var j3=/^[a-z0-9]{0,16}$/i;if(!j3.test(P3.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in P3&&!(parseFloat(P3.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in P3&&!(parseFloat(P3.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});var Z2=j.apply(this,arguments);if(D2){var q2=Z2.sender,f3=q2.getParameters();"encodings"in f3||(f3.encodings=E2.sendEncodings,this.setParametersPromises.push(q2.setParameters(f3).catch(function(){})))}return Z2})}}function O2(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection){var j=T.RTCPeerConnection.prototype.createOffer;T.RTCPeerConnection.prototype.createOffer=function(){var E2=this,D2=arguments;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return j.apply(E2,D2)}).finally(function(){E2.setParametersPromises=[]}):j.apply(this,arguments)}}}function o2(T){if((typeof T=="undefined"?"undefined":h(T))==="object"&&T.RTCPeerConnection){var j=T.RTCPeerConnection.prototype.createAnswer;T.RTCPeerConnection.prototype.createAnswer=function(){var E2=this,D2=arguments;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return j.apply(E2,D2)}).finally(function(){E2.setParametersPromises=[]}):j.apply(this,arguments)}}}},{"../utils":15,"./getdisplaymedia":12,"./getusermedia":13}],12:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0}),d.shimGetDisplayMedia=h;function h(y,w){y.navigator.mediaDevices&&"getDisplayMedia"in y.navigator.mediaDevices||y.navigator.mediaDevices&&(y.navigator.mediaDevices.getDisplayMedia=function(k){if(!(k&&k.video)){var a2=new DOMException("getDisplayMedia without video constraints is undefined");return a2.name="NotFoundError",a2.code=8,Promise.reject(a2)}return k.video===!0?k.video={mediaSource:w}:k.video.mediaSource=w,y.navigator.mediaDevices.getUserMedia(k)})}},{}],13:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0});var h=typeof Symbol=="function"&&n(Symbol.iterator)==="symbol"?function(a2){return n(a2)}:function(a2){return a2&&typeof Symbol=="function"&&a2.constructor===Symbol&&a2!==Symbol.prototype?"symbol":n(a2)};d.shimGetUserMedia=k;var y=N("../utils"),w=x(y);function x(a2){if(a2&&a2.__esModule)return a2;var e2={};if(a2!=null)for(var s2 in a2)Object.prototype.hasOwnProperty.call(a2,s2)&&(e2[s2]=a2[s2]);return e2.default=a2,e2}function k(a2){var e2=w.detectBrowser(a2),s2=a2&&a2.navigator,J=a2&&a2.MediaStreamTrack;if(s2.getUserMedia=function(f2,O2,o2){w.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),s2.mediaDevices.getUserMedia(f2).then(O2,o2)},!(e2.version>55&&"autoGainControl"in s2.mediaDevices.getSupportedConstraints())){var H=function(O2,o2,T){o2 in O2&&!(T in O2)&&(O2[T]=O2[o2],delete O2[o2])},R2=s2.mediaDevices.getUserMedia.bind(s2.mediaDevices);if(s2.mediaDevices.getUserMedia=function(f2){return(typeof f2=="undefined"?"undefined":h(f2))==="object"&&h(f2.audio)==="object"&&(f2=JSON.parse(JSON.stringify(f2)),H(f2.audio,"autoGainControl","mozAutoGainControl"),H(f2.audio,"noiseSuppression","mozNoiseSuppression")),R2(f2)},J&&J.prototype.getSettings){var p2=J.prototype.getSettings;J.prototype.getSettings=function(){var f2=p2.apply(this,arguments);return H(f2,"mozAutoGainControl","autoGainControl"),H(f2,"mozNoiseSuppression","noiseSuppression"),f2}}if(J&&J.prototype.applyConstraints){var c2=J.prototype.applyConstraints;J.prototype.applyConstraints=function(f2){return this.kind==="audio"&&(typeof f2=="undefined"?"undefined":h(f2))==="object"&&(f2=JSON.parse(JSON.stringify(f2)),H(f2,"autoGainControl","mozAutoGainControl"),H(f2,"noiseSuppression","mozNoiseSuppression")),c2.apply(this,[f2])}}}}},{"../utils":15}],14:[function(N,_,d){Object.defineProperty(d,"__esModule",{value:!0});var h=typeof Symbol=="function"&&n(Symbol.iterator)==="symbol"?function(c2){return n(c2)}:function(c2){return c2&&typeof Symbol=="function"&&c2.constructor===Symbol&&c2!==Symbol.prototype?"symbol":n(c2)};d.shimLocalStreamsAPI=k,d.shimRemoteStreamsAPI=a2,d.shimCallbacksAPI=e2,d.shimGetUserMedia=s2,d.shimConstraints=J,d.shimRTCIceServerUrls=H,d.shimTrackEventTransceiver=R2,d.shimCreateOfferLegacy=p2;var y=N("../utils"),w=x(y);function x(c2){if(c2&&c2.__esModule)return c2;var f2={};if(c2!=null)for(var O2 in c2)Object.prototype.hasOwnProperty.call(c2,O2)&&(f2[O2]=c2[O2]);return f2.default=c2,f2}function k(c2){if(!((typeof c2=="undefined"?"undefined":h(c2))!=="object"||!c2.RTCPeerConnection)){if("getLocalStreams"in c2.RTCPeerConnection.prototype||(c2.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in c2.RTCPeerConnection.prototype)){var f2=c2.RTCPeerConnection.prototype.addTrack;c2.RTCPeerConnection.prototype.addStream=function(o2){var T=this;this._localStreams||(this._localStreams=[]),this._localStreams.includes(o2)||this._localStreams.push(o2),o2.getAudioTracks().forEach(function(j){return f2.call(T,j,o2)}),o2.getVideoTracks().forEach(function(j){return f2.call(T,j,o2)})},c2.RTCPeerConnection.prototype.addTrack=function(o2){var T=arguments[1];return T&&(this._localStreams?this._localStreams.includes(T)||this._localStreams.push(T):this._localStreams=[T]),f2.apply(this,arguments)}}"removeStream"in c2.RTCPeerConnection.prototype||(c2.RTCPeerConnection.prototype.removeStream=function(o2){var T=this;this._localStreams||(this._localStreams=[]);var j=this._localStreams.indexOf(o2);if(j!==-1){this._localStreams.splice(j,1);var K=o2.getTracks();this.getSenders().forEach(function(E2){K.includes(E2.track)&&T.removeTrack(E2)})}})}}function a2(c2){if(!((typeof c2=="undefined"?"undefined":h(c2))!=="object"||!c2.RTCPeerConnection)&&("getRemoteStreams"in c2.RTCPeerConnection.prototype||(c2.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in c2.RTCPeerConnection.prototype))){Object.defineProperty(c2.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(o2){var T=this;this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=o2),this.addEventListener("track",this._onaddstreampoly=function(j){j.streams.forEach(function(K){if(T._remoteStreams||(T._remoteStreams=[]),!T._remoteStreams.includes(K)){T._remoteStreams.push(K);var E2=new Event("addstream");E2.stream=K,T.dispatchEvent(E2)}})})}});var f2=c2.RTCPeerConnection.prototype.setRemoteDescription;c2.RTCPeerConnection.prototype.setRemoteDescription=function(){var o2=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(T){T.streams.forEach(function(j){if(o2._remoteStreams||(o2._remoteStreams=[]),!(o2._remoteStreams.indexOf(j)>=0)){o2._remoteStreams.push(j);var K=new Event("addstream");K.stream=j,o2.dispatchEvent(K)}})}),f2.apply(o2,arguments)}}}function e2(c2){if(!((typeof c2=="undefined"?"undefined":h(c2))!=="object"||!c2.RTCPeerConnection)){var f2=c2.RTCPeerConnection.prototype,O2=f2.createOffer,o2=f2.createAnswer,T=f2.setLocalDescription,j=f2.setRemoteDescription,K=f2.addIceCandidate;f2.createOffer=function(Z2,q2){var f3=arguments.length>=2?arguments[2]:arguments[0],P3=O2.apply(this,[f3]);return q2?(P3.then(Z2,q2),Promise.resolve()):P3},f2.createAnswer=function(Z2,q2){var f3=arguments.length>=2?arguments[2]:arguments[0],P3=o2.apply(this,[f3]);return q2?(P3.then(Z2,q2),Promise.resolve()):P3};var E2=function(Z2,q2,f3){var P3=T.apply(this,[Z2]);return f3?(P3.then(q2,f3),Promise.resolve()):P3};f2.setLocalDescription=E2,E2=function(Z2,q2,f3){var P3=j.apply(this,[Z2]);return f3?(P3.then(q2,f3),Promise.resolve()):P3},f2.setRemoteDescription=E2,E2=function(Z2,q2,f3){var P3=K.apply(this,[Z2]);return f3?(P3.then(q2,f3),Promise.resolve()):P3},f2.addIceCandidate=E2}}function s2(c2){var f2=c2&&c2.navigator;if(f2.mediaDevices&&f2.mediaDevices.getUserMedia){var O2=f2.mediaDevices,o2=O2.getUserMedia.bind(O2);f2.mediaDevices.getUserMedia=function(T){return o2(J(T))}}!f2.getUserMedia&&f2.mediaDevices&&f2.mediaDevices.getUserMedia&&(f2.getUserMedia=function(j,K,E2){f2.mediaDevices.getUserMedia(j).then(K,E2)}.bind(f2))}function J(c2){return c2&&c2.video!==void 0?Object.assign({},c2,{video:w.compactObject(c2.video)}):c2}function H(c2){var f2=c2.RTCPeerConnection;c2.RTCPeerConnection=function(o2,T){if(o2&&o2.iceServers){for(var j=[],K=0;K=j&&parseInt(K[j],10)}function a2(o2,T,j){if(o2.RTCPeerConnection){var K=o2.RTCPeerConnection.prototype,E2=K.addEventListener;K.addEventListener=function(Z2,q2){if(Z2!==T)return E2.apply(this,arguments);var f3=function(j3){var E3=j(j3);E3&&q2(E3)};return this._eventMap=this._eventMap||{},this._eventMap[q2]=f3,E2.apply(this,[Z2,f3])};var D2=K.removeEventListener;K.removeEventListener=function(Z2,q2){if(Z2!==T||!this._eventMap||!this._eventMap[q2])return D2.apply(this,arguments);var f3=this._eventMap[q2];return delete this._eventMap[q2],D2.apply(this,[Z2,f3])},Object.defineProperty(K,"on"+T,{get:function(){return this["_on"+T]},set:function(q2){this["_on"+T]&&(this.removeEventListener(T,this["_on"+T]),delete this["_on"+T]),q2&&this.addEventListener(T,this["_on"+T]=q2)},enumerable:!0,configurable:!0})}}function e2(o2){return typeof o2!="boolean"?new Error("Argument type: "+(typeof o2=="undefined"?"undefined":h(o2))+". Please use a boolean."):(w=o2,o2?"adapter.js logging disabled":"adapter.js logging enabled")}function s2(o2){return typeof o2!="boolean"?new Error("Argument type: "+(typeof o2=="undefined"?"undefined":h(o2))+". Please use a boolean."):(x=!o2,"adapter.js deprecation warnings "+(o2?"disabled":"enabled"))}function J(){if((typeof window=="undefined"?"undefined":h(window))==="object"){if(w)return;typeof console!="undefined"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function H(o2,T){x&&console.warn(o2+" is deprecated, please use "+T+" instead.")}function R2(o2){var T=o2.navigator,j={browser:null,version:null};if(typeof o2=="undefined"||!o2.navigator)return j.browser="Not a browser.",j;if(T.mozGetUserMedia)j.browser="firefox",j.version=k(T.userAgent,/Firefox\/(\d+)\./,1);else if(T.webkitGetUserMedia||o2.isSecureContext===!1&&o2.webkitRTCPeerConnection&&!o2.RTCIceGatherer)j.browser="chrome",j.version=k(T.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(T.mediaDevices&&T.userAgent.match(/Edge\/(\d+).(\d+)$/))j.browser="edge",j.version=k(T.userAgent,/Edge\/(\d+).(\d+)$/,2);else if(o2.RTCPeerConnection&&T.userAgent.match(/AppleWebKit\/(\d+)\./))j.browser="safari",j.version=k(T.userAgent,/AppleWebKit\/(\d+)\./,1),j.supportsUnifiedPlan=o2.RTCRtpTransceiver&&"currentDirection"in o2.RTCRtpTransceiver.prototype;else return j.browser="Not a supported browser.",j;return j}function p2(o2){return Object.prototype.toString.call(o2)==="[object Object]"}function c2(o2){return p2(o2)?Object.keys(o2).reduce(function(T,j){var K=p2(o2[j]),E2=K?c2(o2[j]):o2[j],D2=K&&!Object.keys(E2).length;return E2===void 0||D2?T:Object.assign(T,y({},j,E2))},{}):o2}function f2(o2,T,j){!T||j.has(T.id)||(j.set(T.id,T),Object.keys(T).forEach(function(K){K.endsWith("Id")?f2(o2,o2.get(T[K]),j):K.endsWith("Ids")&&T[K].forEach(function(E2){f2(o2,o2.get(E2),j)})}))}function O2(o2,T,j){var K=j?"outbound-rtp":"inbound-rtp",E2=new Map;if(T===null)return E2;var D2=[];return o2.forEach(function(Z2){Z2.type==="track"&&Z2.trackIdentifier===T.id&&D2.push(Z2)}),D2.forEach(function(Z2){o2.forEach(function(q2){q2.type===K&&q2.trackId===Z2.id&&f2(o2,q2,E2)})}),E2}},{}],16:[function(N,_,d){var h=N("sdp");function y(J){return{inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[J.type]||J.type}function w(J,H,R2,p2,c2){var f2=h.writeRtpDescription(J.kind,H);if(f2+=h.writeIceParameters(J.iceGatherer.getLocalParameters()),f2+=h.writeDtlsParameters(J.dtlsTransport.getLocalParameters(),R2==="offer"?"actpass":c2||"active"),f2+="a=mid:"+J.mid+`\r -`,J.rtpSender&&J.rtpReceiver?f2+=`a=sendrecv\r -`:J.rtpSender?f2+=`a=sendonly\r -`:J.rtpReceiver?f2+=`a=recvonly\r -`:f2+=`a=inactive\r -`,J.rtpSender){var O2=J.rtpSender._initialTrackId||J.rtpSender.track.id;J.rtpSender._initialTrackId=O2;var o2="msid:"+(p2?p2.id:"-")+" "+O2+`\r -`;f2+="a="+o2,f2+="a=ssrc:"+J.sendEncodingParameters[0].ssrc+" "+o2,J.sendEncodingParameters[0].rtx&&(f2+="a=ssrc:"+J.sendEncodingParameters[0].rtx.ssrc+" "+o2,f2+="a=ssrc-group:FID "+J.sendEncodingParameters[0].ssrc+" "+J.sendEncodingParameters[0].rtx.ssrc+`\r -`)}return f2+="a=ssrc:"+J.sendEncodingParameters[0].ssrc+" cname:"+h.localCName+`\r -`,J.rtpSender&&J.sendEncodingParameters[0].rtx&&(f2+="a=ssrc:"+J.sendEncodingParameters[0].rtx.ssrc+" cname:"+h.localCName+`\r -`),f2}function x(J,H){var R2=!1;return J=JSON.parse(JSON.stringify(J)),J.filter(function(p2){if(p2&&(p2.urls||p2.url)){var c2=p2.urls||p2.url;p2.url&&!p2.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var f2=typeof c2=="string";return f2&&(c2=[c2]),c2=c2.filter(function(O2){var o2=O2.indexOf("turn:")===0&&O2.indexOf("transport=udp")!==-1&&O2.indexOf("turn:[")===-1&&!R2;return o2?(R2=!0,!0):O2.indexOf("stun:")===0&&H>=14393&&O2.indexOf("?transport=udp")===-1}),delete p2.url,p2.urls=f2?c2[0]:c2,!!c2.length}})}function k(J,H){var R2={codecs:[],headerExtensions:[],fecMechanisms:[]},p2=function(O2,o2){O2=parseInt(O2,10);for(var T=0;T0;D2--)this._iceGatherers.push(new J.RTCIceGatherer({iceServers:j.iceServers,gatherPolicy:j.iceTransportPolicy}));else j.iceCandidatePoolSize=0;this._config=j,this.transceivers=[],this._sdpSessionId=h.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(f2.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(f2.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),f2.prototype.onicecandidate=null,f2.prototype.onaddstream=null,f2.prototype.ontrack=null,f2.prototype.onremovestream=null,f2.prototype.onsignalingstatechange=null,f2.prototype.oniceconnectionstatechange=null,f2.prototype.onconnectionstatechange=null,f2.prototype.onicegatheringstatechange=null,f2.prototype.onnegotiationneeded=null,f2.prototype.ondatachannel=null,f2.prototype._dispatchEvent=function(T,j){this._isClosed||(this.dispatchEvent(j),typeof this["on"+T]=="function"&&this["on"+T](j))},f2.prototype._emitGatheringStateChange=function(){var T=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",T)},f2.prototype.getConfiguration=function(){return this._config},f2.prototype.getLocalStreams=function(){return this.localStreams},f2.prototype.getRemoteStreams=function(){return this.remoteStreams},f2.prototype._createTransceiver=function(T,j){var K=this.transceivers.length>0,E2={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:T,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&K)E2.iceTransport=this.transceivers[0].iceTransport,E2.dtlsTransport=this.transceivers[0].dtlsTransport;else{var D2=this._createIceAndDtlsTransports();E2.iceTransport=D2.iceTransport,E2.dtlsTransport=D2.dtlsTransport}return j||this.transceivers.push(E2),E2},f2.prototype.addTrack=function(T,j){if(this._isClosed)throw s2("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var K=this.transceivers.find(function(Z2){return Z2.track===T});if(K)throw s2("InvalidAccessError","Track already exists.");for(var E2,D2=0;D2=15025)T.getTracks().forEach(function(E2){j.addTrack(E2,T)});else{var K=T.clone();T.getTracks().forEach(function(E2,D2){var Z2=K.getTracks()[D2];E2.addEventListener("enabled",function(q2){Z2.enabled=q2.enabled})}),K.getTracks().forEach(function(E2){j.addTrack(E2,K)})}},f2.prototype.removeTrack=function(T){if(this._isClosed)throw s2("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(T instanceof J.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var j=this.transceivers.find(function(D2){return D2.rtpSender===T});if(!j)throw s2("InvalidAccessError","Sender was not created by this connection.");var K=j.stream;j.rtpSender.stop(),j.rtpSender=null,j.track=null,j.stream=null;var E2=this.transceivers.map(function(D2){return D2.stream});E2.indexOf(K)===-1&&this.localStreams.indexOf(K)>-1&&this.localStreams.splice(this.localStreams.indexOf(K),1),this._maybeFireNegotiationNeeded()},f2.prototype.removeStream=function(T){var j=this;T.getTracks().forEach(function(K){var E2=j.getSenders().find(function(D2){return D2.track===K});E2&&j.removeTrack(E2)})},f2.prototype.getSenders=function(){return this.transceivers.filter(function(T){return!!T.rtpSender}).map(function(T){return T.rtpSender})},f2.prototype.getReceivers=function(){return this.transceivers.filter(function(T){return!!T.rtpReceiver}).map(function(T){return T.rtpReceiver})},f2.prototype._createIceGatherer=function(T,j){var K=this;if(j&&T>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var E2=new J.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(E2,"state",{value:"new",writable:!0}),this.transceivers[T].bufferedCandidateEvents=[],this.transceivers[T].bufferCandidates=function(D2){var Z2=!D2.candidate||Object.keys(D2.candidate).length===0;E2.state=Z2?"completed":"gathering",K.transceivers[T].bufferedCandidateEvents!==null&&K.transceivers[T].bufferedCandidateEvents.push(D2)},E2.addEventListener("localcandidate",this.transceivers[T].bufferCandidates),E2},f2.prototype._gather=function(T,j){var K=this,E2=this.transceivers[j].iceGatherer;if(!E2.onlocalcandidate){var D2=this.transceivers[j].bufferedCandidateEvents;this.transceivers[j].bufferedCandidateEvents=null,E2.removeEventListener("localcandidate",this.transceivers[j].bufferCandidates),E2.onlocalcandidate=function(Z2){if(!(K.usingBundle&&j>0)){var q2=new Event("icecandidate");q2.candidate={sdpMid:T,sdpMLineIndex:j};var f3=Z2.candidate,P3=!f3||Object.keys(f3).length===0;if(P3)(E2.state==="new"||E2.state==="gathering")&&(E2.state="completed");else{E2.state==="new"&&(E2.state="gathering"),f3.component=1,f3.ufrag=E2.getLocalParameters().usernameFragment;var j3=h.writeCandidate(f3);q2.candidate=Object.assign(q2.candidate,h.parseCandidate(j3)),q2.candidate.candidate=j3,q2.candidate.toJSON=function(){return{candidate:q2.candidate.candidate,sdpMid:q2.candidate.sdpMid,sdpMLineIndex:q2.candidate.sdpMLineIndex,usernameFragment:q2.candidate.usernameFragment}}}var E3=h.getMediaSections(K._localDescription.sdp);P3?E3[q2.candidate.sdpMLineIndex]+=`a=end-of-candidates\r -`:E3[q2.candidate.sdpMLineIndex]+="a="+q2.candidate.candidate+`\r -`,K._localDescription.sdp=h.getDescription(K._localDescription.sdp)+E3.join("");var C1=K.transceivers.every(function(P1){return P1.iceGatherer&&P1.iceGatherer.state==="completed"});K.iceGatheringState!=="gathering"&&(K.iceGatheringState="gathering",K._emitGatheringStateChange()),P3||K._dispatchEvent("icecandidate",q2),C1&&(K._dispatchEvent("icecandidate",new Event("icecandidate")),K.iceGatheringState="complete",K._emitGatheringStateChange())}},J.setTimeout(function(){D2.forEach(function(Z2){E2.onlocalcandidate(Z2)})},0)}},f2.prototype._createIceAndDtlsTransports=function(){var T=this,j=new J.RTCIceTransport(null);j.onicestatechange=function(){T._updateIceConnectionState(),T._updateConnectionState()};var K=new J.RTCDtlsTransport(j);return K.ondtlsstatechange=function(){T._updateConnectionState()},K.onerror=function(){Object.defineProperty(K,"state",{value:"failed",writable:!0}),T._updateConnectionState()},{iceTransport:j,dtlsTransport:K}},f2.prototype._disposeIceAndDtlsTransports=function(T){var j=this.transceivers[T].iceGatherer;j&&(delete j.onlocalcandidate,delete this.transceivers[T].iceGatherer);var K=this.transceivers[T].iceTransport;K&&(delete K.onicestatechange,delete this.transceivers[T].iceTransport);var E2=this.transceivers[T].dtlsTransport;E2&&(delete E2.ondtlsstatechange,delete E2.onerror,delete this.transceivers[T].dtlsTransport)},f2.prototype._transceive=function(T,j,K){var E2=k(T.localCapabilities,T.remoteCapabilities);j&&T.rtpSender&&(E2.encodings=T.sendEncodingParameters,E2.rtcp={cname:h.localCName,compound:T.rtcpParameters.compound},T.recvEncodingParameters.length&&(E2.rtcp.ssrc=T.recvEncodingParameters[0].ssrc),T.rtpSender.send(E2)),K&&T.rtpReceiver&&E2.codecs.length>0&&(T.kind==="video"&&T.recvEncodingParameters&&H<15019&&T.recvEncodingParameters.forEach(function(D2){delete D2.rtx}),T.recvEncodingParameters.length?E2.encodings=T.recvEncodingParameters:E2.encodings=[{}],E2.rtcp={compound:T.rtcpParameters.compound},T.rtcpParameters.cname&&(E2.rtcp.cname=T.rtcpParameters.cname),T.sendEncodingParameters.length&&(E2.rtcp.ssrc=T.sendEncodingParameters[0].ssrc),T.rtpReceiver.receive(E2))},f2.prototype.setLocalDescription=function(T){var j=this;if(["offer","answer"].indexOf(T.type)===-1)return Promise.reject(s2("TypeError",'Unsupported type "'+T.type+'"'));if(!a2("setLocalDescription",T.type,j.signalingState)||j._isClosed)return Promise.reject(s2("InvalidStateError","Can not set local "+T.type+" in state "+j.signalingState));var K,E2;if(T.type==="offer")K=h.splitSections(T.sdp),E2=K.shift(),K.forEach(function(Z2,q2){var f3=h.parseRtpParameters(Z2);j.transceivers[q2].localCapabilities=f3}),j.transceivers.forEach(function(Z2,q2){j._gather(Z2.mid,q2)});else if(T.type==="answer"){K=h.splitSections(j._remoteDescription.sdp),E2=K.shift();var D2=h.matchPrefix(E2,"a=ice-lite").length>0;K.forEach(function(Z2,q2){var f3=j.transceivers[q2],P3=f3.iceGatherer,j3=f3.iceTransport,E3=f3.dtlsTransport,C1=f3.localCapabilities,P1=f3.remoteCapabilities,x1=h.isRejected(Z2)&&h.matchPrefix(Z2,"a=bundle-only").length===0;if(!x1&&!f3.rejected){var I1=h.getIceParameters(Z2,E2),$1=h.getDtlsParameters(Z2,E2);D2&&($1.role="server"),(!j.usingBundle||q2===0)&&(j._gather(f3.mid,q2),j3.state==="new"&&j3.start(P3,I1,D2?"controlling":"controlled"),E3.state==="new"&&E3.start($1));var W1=k(C1,P1);j._transceive(f3,W1.codecs.length>0,!1)}})}return j._localDescription={type:T.type,sdp:T.sdp},T.type==="offer"?j._updateSignalingState("have-local-offer"):j._updateSignalingState("stable"),Promise.resolve()},f2.prototype.setRemoteDescription=function(T){var j=this;if(["offer","answer"].indexOf(T.type)===-1)return Promise.reject(s2("TypeError",'Unsupported type "'+T.type+'"'));if(!a2("setRemoteDescription",T.type,j.signalingState)||j._isClosed)return Promise.reject(s2("InvalidStateError","Can not set remote "+T.type+" in state "+j.signalingState));var K={};j.remoteStreams.forEach(function(j3){K[j3.id]=j3});var E2=[],D2=h.splitSections(T.sdp),Z2=D2.shift(),q2=h.matchPrefix(Z2,"a=ice-lite").length>0,f3=h.matchPrefix(Z2,"a=group:BUNDLE ").length>0;j.usingBundle=f3;var P3=h.matchPrefix(Z2,"a=ice-options:")[0];return P3?j.canTrickleIceCandidates=P3.substr(14).split(" ").indexOf("trickle")>=0:j.canTrickleIceCandidates=!1,D2.forEach(function(j3,E3){var C1=h.splitLines(j3),P1=h.getKind(j3),x1=h.isRejected(j3)&&h.matchPrefix(j3,"a=bundle-only").length===0,I1=C1[0].substr(2).split(" ")[2],$1=h.getDirection(j3,Z2),W1=h.parseMsid(j3),E0=h.getMid(j3)||h.generateIdentifier();if(x1||P1==="application"&&(I1==="DTLS/SCTP"||I1==="UDP/DTLS/SCTP")){j.transceivers[E3]={mid:E0,kind:P1,protocol:I1,rejected:!0};return}!x1&&j.transceivers[E3]&&j.transceivers[E3].rejected&&(j.transceivers[E3]=j._createTransceiver(P1,!0));var L2,v3,A3,q3,T1,l0,X1,h0,y0,je=h.parseRtpParameters(j3),Ve,se;x1||(Ve=h.getIceParameters(j3,Z2),se=h.getDtlsParameters(j3,Z2),se.role="client"),X1=h.parseRtpEncodingParameters(j3);var Le=h.parseRtcpParameters(j3),g1=h.matchPrefix(j3,"a=end-of-candidates",Z2).length>0,D=h.matchPrefix(j3,"a=candidate:").map(function(B3){return h.parseCandidate(B3)}).filter(function(B3){return B3.component===1});if((T.type==="offer"||T.type==="answer")&&!x1&&f3&&E3>0&&j.transceivers[E3]&&(j._disposeIceAndDtlsTransports(E3),j.transceivers[E3].iceGatherer=j.transceivers[0].iceGatherer,j.transceivers[E3].iceTransport=j.transceivers[0].iceTransport,j.transceivers[E3].dtlsTransport=j.transceivers[0].dtlsTransport,j.transceivers[E3].rtpSender&&j.transceivers[E3].rtpSender.setTransport(j.transceivers[0].dtlsTransport),j.transceivers[E3].rtpReceiver&&j.transceivers[E3].rtpReceiver.setTransport(j.transceivers[0].dtlsTransport)),T.type==="offer"&&!x1){L2=j.transceivers[E3]||j._createTransceiver(P1),L2.mid=E0,L2.iceGatherer||(L2.iceGatherer=j._createIceGatherer(E3,f3)),D.length&&L2.iceTransport.state==="new"&&(g1&&(!f3||E3===0)?L2.iceTransport.setRemoteCandidates(D):D.forEach(function(B3){e2(L2.iceTransport,B3)})),h0=J.RTCRtpReceiver.getCapabilities(P1),H<15019&&(h0.codecs=h0.codecs.filter(function(B3){return B3.name!=="rtx"})),l0=L2.sendEncodingParameters||[{ssrc:(2*E3+2)*1001}];var u2=!1;if($1==="sendrecv"||$1==="sendonly"){if(u2=!L2.rtpReceiver,T1=L2.rtpReceiver||new J.RTCRtpReceiver(L2.dtlsTransport,P1),u2){var K2;y0=T1.track,W1&&W1.stream==="-"||(W1?(K[W1.stream]||(K[W1.stream]=new J.MediaStream,Object.defineProperty(K[W1.stream],"id",{get:function(){return W1.stream}})),Object.defineProperty(y0,"id",{get:function(){return W1.track}}),K2=K[W1.stream]):(K.default||(K.default=new J.MediaStream),K2=K.default)),K2&&(R2(y0,K2),L2.associatedRemoteMediaStreams.push(K2)),E2.push([y0,T1,K2])}}else L2.rtpReceiver&&L2.rtpReceiver.track&&(L2.associatedRemoteMediaStreams.forEach(function(B3){var y1=B3.getTracks().find(function(k1){return k1.id===L2.rtpReceiver.track.id});y1&&p2(y1,B3)}),L2.associatedRemoteMediaStreams=[]);L2.localCapabilities=h0,L2.remoteCapabilities=je,L2.rtpReceiver=T1,L2.rtcpParameters=Le,L2.sendEncodingParameters=l0,L2.recvEncodingParameters=X1,j._transceive(j.transceivers[E3],!1,u2)}else if(T.type==="answer"&&!x1){L2=j.transceivers[E3],v3=L2.iceGatherer,A3=L2.iceTransport,q3=L2.dtlsTransport,T1=L2.rtpReceiver,l0=L2.sendEncodingParameters,h0=L2.localCapabilities,j.transceivers[E3].recvEncodingParameters=X1,j.transceivers[E3].remoteCapabilities=je,j.transceivers[E3].rtcpParameters=Le,D.length&&A3.state==="new"&&((q2||g1)&&(!f3||E3===0)?A3.setRemoteCandidates(D):D.forEach(function(B3){e2(L2.iceTransport,B3)})),(!f3||E3===0)&&(A3.state==="new"&&A3.start(v3,Ve,"controlling"),q3.state==="new"&&q3.start(se));var i1=k(L2.localCapabilities,L2.remoteCapabilities),G3=i1.codecs.filter(function(B3){return B3.name.toLowerCase()==="rtx"}).length;!G3&&L2.sendEncodingParameters[0].rtx&&delete L2.sendEncodingParameters[0].rtx,j._transceive(L2,$1==="sendrecv"||$1==="recvonly",$1==="sendrecv"||$1==="sendonly"),T1&&($1==="sendrecv"||$1==="sendonly")?(y0=T1.track,W1?(K[W1.stream]||(K[W1.stream]=new J.MediaStream),R2(y0,K[W1.stream]),E2.push([y0,T1,K[W1.stream]])):(K.default||(K.default=new J.MediaStream),R2(y0,K.default),E2.push([y0,T1,K.default]))):delete L2.rtpReceiver}}),j._dtlsRole===void 0&&(j._dtlsRole=T.type==="offer"?"active":"passive"),j._remoteDescription={type:T.type,sdp:T.sdp},T.type==="offer"?j._updateSignalingState("have-remote-offer"):j._updateSignalingState("stable"),Object.keys(K).forEach(function(j3){var E3=K[j3];if(E3.getTracks().length){if(j.remoteStreams.indexOf(E3)===-1){j.remoteStreams.push(E3);var C1=new Event("addstream");C1.stream=E3,J.setTimeout(function(){j._dispatchEvent("addstream",C1)})}E2.forEach(function(P1){var x1=P1[0],I1=P1[1];E3.id===P1[2].id&&c2(j,x1,I1,[E3])})}}),E2.forEach(function(j3){j3[2]||c2(j,j3[0],j3[1],[])}),J.setTimeout(function(){j&&j.transceivers&&j.transceivers.forEach(function(j3){j3.iceTransport&&j3.iceTransport.state==="new"&&j3.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),j3.iceTransport.addRemoteCandidate({}))})},4e3),Promise.resolve()},f2.prototype.close=function(){this.transceivers.forEach(function(T){T.iceTransport&&T.iceTransport.stop(),T.dtlsTransport&&T.dtlsTransport.stop(),T.rtpSender&&T.rtpSender.stop(),T.rtpReceiver&&T.rtpReceiver.stop()}),this._isClosed=!0,this._updateSignalingState("closed")},f2.prototype._updateSignalingState=function(T){this.signalingState=T;var j=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",j)},f2.prototype._maybeFireNegotiationNeeded=function(){var T=this;this.signalingState!=="stable"||this.needNegotiation===!0||(this.needNegotiation=!0,J.setTimeout(function(){if(T.needNegotiation){T.needNegotiation=!1;var j=new Event("negotiationneeded");T._dispatchEvent("negotiationneeded",j)}},0))},f2.prototype._updateIceConnectionState=function(){var T,j={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(E2){E2.iceTransport&&!E2.rejected&&j[E2.iceTransport.state]++}),T="new",j.failed>0?T="failed":j.checking>0?T="checking":j.disconnected>0?T="disconnected":j.new>0?T="new":j.connected>0?T="connected":j.completed>0&&(T="completed"),T!==this.iceConnectionState){this.iceConnectionState=T;var K=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",K)}},f2.prototype._updateConnectionState=function(){var T,j={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(E2){E2.iceTransport&&E2.dtlsTransport&&!E2.rejected&&(j[E2.iceTransport.state]++,j[E2.dtlsTransport.state]++)}),j.connected+=j.completed,T="new",j.failed>0?T="failed":j.connecting>0?T="connecting":j.disconnected>0?T="disconnected":j.new>0?T="new":j.connected>0&&(T="connected"),T!==this.connectionState){this.connectionState=T;var K=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",K)}},f2.prototype.createOffer=function(){var T=this;if(T._isClosed)return Promise.reject(s2("InvalidStateError","Can not call createOffer after close"));var j=T.transceivers.filter(function(q2){return q2.kind==="audio"}).length,K=T.transceivers.filter(function(q2){return q2.kind==="video"}).length,E2=arguments[0];if(E2){if(E2.mandatory||E2.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");E2.offerToReceiveAudio!==void 0&&(E2.offerToReceiveAudio===!0?j=1:E2.offerToReceiveAudio===!1?j=0:j=E2.offerToReceiveAudio),E2.offerToReceiveVideo!==void 0&&(E2.offerToReceiveVideo===!0?K=1:E2.offerToReceiveVideo===!1?K=0:K=E2.offerToReceiveVideo)}for(T.transceivers.forEach(function(q2){q2.kind==="audio"?(j--,j<0&&(q2.wantReceive=!1)):q2.kind==="video"&&(K--,K<0&&(q2.wantReceive=!1))});j>0||K>0;)j>0&&(T._createTransceiver("audio"),j--),K>0&&(T._createTransceiver("video"),K--);var D2=h.writeSessionBoilerplate(T._sdpSessionId,T._sdpSessionVersion++);T.transceivers.forEach(function(q2,f3){var P3=q2.track,j3=q2.kind,E3=q2.mid||h.generateIdentifier();q2.mid=E3,q2.iceGatherer||(q2.iceGatherer=T._createIceGatherer(f3,T.usingBundle));var C1=J.RTCRtpSender.getCapabilities(j3);H<15019&&(C1.codecs=C1.codecs.filter(function(x1){return x1.name!=="rtx"})),C1.codecs.forEach(function(x1){x1.name==="H264"&&x1.parameters["level-asymmetry-allowed"]===void 0&&(x1.parameters["level-asymmetry-allowed"]="1"),q2.remoteCapabilities&&q2.remoteCapabilities.codecs&&q2.remoteCapabilities.codecs.forEach(function(I1){x1.name.toLowerCase()===I1.name.toLowerCase()&&x1.clockRate===I1.clockRate&&(x1.preferredPayloadType=I1.payloadType)})}),C1.headerExtensions.forEach(function(x1){var I1=q2.remoteCapabilities&&q2.remoteCapabilities.headerExtensions||[];I1.forEach(function($1){x1.uri===$1.uri&&(x1.id=$1.id)})});var P1=q2.sendEncodingParameters||[{ssrc:(2*f3+1)*1001}];P3&&H>=15019&&j3==="video"&&!P1[0].rtx&&(P1[0].rtx={ssrc:P1[0].ssrc+1}),q2.wantReceive&&(q2.rtpReceiver=new J.RTCRtpReceiver(q2.dtlsTransport,j3)),q2.localCapabilities=C1,q2.sendEncodingParameters=P1}),T._config.bundlePolicy!=="max-compat"&&(D2+="a=group:BUNDLE "+T.transceivers.map(function(q2){return q2.mid}).join(" ")+`\r -`),D2+=`a=ice-options:trickle\r -`,T.transceivers.forEach(function(q2,f3){D2+=w(q2,q2.localCapabilities,"offer",q2.stream,T._dtlsRole),D2+=`a=rtcp-rsize\r -`,q2.iceGatherer&&T.iceGatheringState!=="new"&&(f3===0||!T.usingBundle)&&(q2.iceGatherer.getLocalCandidates().forEach(function(P3){P3.component=1,D2+="a="+h.writeCandidate(P3)+`\r -`}),q2.iceGatherer.state==="completed"&&(D2+=`a=end-of-candidates\r -`))});var Z2=new J.RTCSessionDescription({type:"offer",sdp:D2});return Promise.resolve(Z2)},f2.prototype.createAnswer=function(){var T=this;if(T._isClosed)return Promise.reject(s2("InvalidStateError","Can not call createAnswer after close"));if(!(T.signalingState==="have-remote-offer"||T.signalingState==="have-local-pranswer"))return Promise.reject(s2("InvalidStateError","Can not call createAnswer in signalingState "+T.signalingState));var j=h.writeSessionBoilerplate(T._sdpSessionId,T._sdpSessionVersion++);T.usingBundle&&(j+="a=group:BUNDLE "+T.transceivers.map(function(D2){return D2.mid}).join(" ")+`\r -`),j+=`a=ice-options:trickle\r -`;var K=h.getMediaSections(T._remoteDescription.sdp).length;T.transceivers.forEach(function(D2,Z2){if(!(Z2+1>K)){if(D2.rejected){D2.kind==="application"?D2.protocol==="DTLS/SCTP"?j+=`m=application 0 DTLS/SCTP 5000\r -`:j+="m=application 0 "+D2.protocol+` webrtc-datachannel\r -`:D2.kind==="audio"?j+=`m=audio 0 UDP/TLS/RTP/SAVPF 0\r -a=rtpmap:0 PCMU/8000\r -`:D2.kind==="video"&&(j+=`m=video 0 UDP/TLS/RTP/SAVPF 120\r -a=rtpmap:120 VP8/90000\r -`),j+=`c=IN IP4 0.0.0.0\r -a=inactive\r -a=mid:`+D2.mid+`\r -`;return}if(D2.stream){var q2;D2.kind==="audio"?q2=D2.stream.getAudioTracks()[0]:D2.kind==="video"&&(q2=D2.stream.getVideoTracks()[0]),q2&&H>=15019&&D2.kind==="video"&&!D2.sendEncodingParameters[0].rtx&&(D2.sendEncodingParameters[0].rtx={ssrc:D2.sendEncodingParameters[0].ssrc+1})}var f3=k(D2.localCapabilities,D2.remoteCapabilities),P3=f3.codecs.filter(function(j3){return j3.name.toLowerCase()==="rtx"}).length;!P3&&D2.sendEncodingParameters[0].rtx&&delete D2.sendEncodingParameters[0].rtx,j+=w(D2,f3,"answer",D2.stream,T._dtlsRole),D2.rtcpParameters&&D2.rtcpParameters.reducedSize&&(j+=`a=rtcp-rsize\r -`)}});var E2=new J.RTCSessionDescription({type:"answer",sdp:j});return Promise.resolve(E2)},f2.prototype.addIceCandidate=function(T){var j=this,K;return T&&!(T.sdpMLineIndex!==void 0||T.sdpMid)?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise(function(E2,D2){if(j._remoteDescription)if(!T||T.candidate==="")for(var Z2=0;Z20?h.parseCandidate(T.candidate):{};if(j3.protocol==="tcp"&&(j3.port===0||j3.port===9)||j3.component&&j3.component!==1)return E2();if((q2===0||q2>0&&P3.iceTransport!==j.transceivers[0].iceTransport)&&!e2(P3.iceTransport,j3))return D2(s2("OperationError","Can not add ICE candidate"));var E3=T.candidate.trim();E3.indexOf("a=")===0&&(E3=E3.substr(2)),K=h.getMediaSections(j._remoteDescription.sdp),K[q2]+="a="+(j3.type?E3:"end-of-candidates")+`\r -`,j._remoteDescription.sdp=h.getDescription(j._remoteDescription.sdp)+K.join("")}else return D2(s2("OperationError","Can not add ICE candidate"))}else return D2(s2("InvalidStateError","Can not add ICE candidate without a remote description"));E2()})},f2.prototype.getStats=function(T){if(T&&T instanceof J.MediaStreamTrack){var j=null;if(this.transceivers.forEach(function(E2){E2.rtpSender&&E2.rtpSender.track===T?j=E2.rtpSender:E2.rtpReceiver&&E2.rtpReceiver.track===T&&(j=E2.rtpReceiver)}),!j)throw s2("InvalidAccessError","Invalid selector.");return j.getStats()}var K=[];return this.transceivers.forEach(function(E2){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(D2){E2[D2]&&K.push(E2[D2].getStats())})}),Promise.all(K).then(function(E2){var D2=new Map;return E2.forEach(function(Z2){Z2.forEach(function(q2){D2.set(q2.id,q2)})}),D2})};var O2=["RTCRtpSender","RTCRtpReceiver","RTCIceGatherer","RTCIceTransport","RTCDtlsTransport"];O2.forEach(function(T){var j=J[T];if(j&&j.prototype&&j.prototype.getStats){var K=j.prototype.getStats;j.prototype.getStats=function(){return K.apply(this).then(function(E2){var D2=new Map;return Object.keys(E2).forEach(function(Z2){E2[Z2].type=y(E2[Z2]),D2.set(Z2,E2[Z2])}),D2})}}});var o2=["createOffer","createAnswer"];return o2.forEach(function(T){var j=f2.prototype[T];f2.prototype[T]=function(){var K=arguments;return typeof K[0]=="function"||typeof K[1]=="function"?j.apply(this,[arguments[2]]).then(function(E2){typeof K[0]=="function"&&K[0].apply(null,[E2])},function(E2){typeof K[1]=="function"&&K[1].apply(null,[E2])}):j.apply(this,arguments)}}),o2=["setLocalDescription","setRemoteDescription","addIceCandidate"],o2.forEach(function(T){var j=f2.prototype[T];f2.prototype[T]=function(){var K=arguments;return typeof K[1]=="function"||typeof K[2]=="function"?j.apply(this,arguments).then(function(){typeof K[1]=="function"&&K[1].apply(null)},function(E2){typeof K[2]=="function"&&K[2].apply(null,[E2])}):j.apply(this,arguments)}}),["getStats"].forEach(function(T){var j=f2.prototype[T];f2.prototype[T]=function(){var K=arguments;return typeof K[1]=="function"?j.apply(this,arguments).then(function(){typeof K[1]=="function"&&K[1].apply(null)}):j.apply(this,arguments)}}),f2}},{sdp:17}],17:[function(N,_,d){var h={};h.generateIdentifier=function(){return Math.random().toString(36).substr(2,10)},h.localCName=h.generateIdentifier(),h.splitLines=function(y){return y.trim().split(` -`).map(function(w){return w.trim()})},h.splitSections=function(y){var w=y.split(` -m=`);return w.map(function(x,k){return(k>0?"m="+x:x).trim()+`\r -`})},h.getDescription=function(y){var w=h.splitSections(y);return w&&w[0]},h.getMediaSections=function(y){var w=h.splitSections(y);return w.shift(),w},h.matchPrefix=function(y,w){return h.splitLines(y).filter(function(x){return x.indexOf(w)===0})},h.parseCandidate=function(y){var w;y.indexOf("a=candidate:")===0?w=y.substring(12).split(" "):w=y.substring(10).split(" ");for(var x={foundation:w[0],component:parseInt(w[1],10),protocol:w[2].toLowerCase(),priority:parseInt(w[3],10),ip:w[4],address:w[4],port:parseInt(w[5],10),type:w[7]},k=8;k0?w[0].split("/")[1]:"sendrecv",uri:w[1]}},h.writeExtmap=function(y){return"a=extmap:"+(y.id||y.preferredId)+(y.direction&&y.direction!=="sendrecv"?"/"+y.direction:"")+" "+y.uri+`\r -`},h.parseFmtp=function(y){for(var w={},x,k=y.substr(y.indexOf(" ")+1).split(";"),a2=0;a2-1?(x.attribute=y.substr(w+1,k-w-1),x.value=y.substr(k+1)):x.attribute=y.substr(w+1),x},h.parseSsrcGroup=function(y){var w=y.substr(13).split(" ");return{semantics:w.shift(),ssrcs:w.map(function(x){return parseInt(x,10)})}},h.getMid=function(y){var w=h.matchPrefix(y,"a=mid:")[0];if(w)return w.substr(6)},h.parseFingerprint=function(y){var w=y.substr(14).split(" ");return{algorithm:w[0].toLowerCase(),value:w[1]}},h.getDtlsParameters=function(y,w){var x=h.matchPrefix(y+w,"a=fingerprint:");return{role:"auto",fingerprints:x.map(h.parseFingerprint)}},h.writeDtlsParameters=function(y,w){var x="a=setup:"+w+`\r -`;return y.fingerprints.forEach(function(k){x+="a=fingerprint:"+k.algorithm+" "+k.value+`\r -`}),x},h.getIceParameters=function(y,w){var x=h.splitLines(y);x=x.concat(h.splitLines(w));var k={usernameFragment:x.filter(function(a2){return a2.indexOf("a=ice-ufrag:")===0})[0].substr(12),password:x.filter(function(a2){return a2.indexOf("a=ice-pwd:")===0})[0].substr(10)};return k},h.writeIceParameters=function(y){return"a=ice-ufrag:"+y.usernameFragment+`\r -a=ice-pwd:`+y.password+`\r -`},h.parseRtpParameters=function(y){for(var w={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},x=h.splitLines(y),k=x[0].split(" "),a2=3;a20?"9":"0",x+=" UDP/TLS/RTP/SAVPF ",x+=w.codecs.map(function(a2){return a2.preferredPayloadType!==void 0?a2.preferredPayloadType:a2.payloadType}).join(" ")+`\r -`,x+=`c=IN IP4 0.0.0.0\r -`,x+=`a=rtcp:9 IN IP4 0.0.0.0\r -`,w.codecs.forEach(function(a2){x+=h.writeRtpMap(a2),x+=h.writeFmtp(a2),x+=h.writeRtcpFb(a2)});var k=0;return w.codecs.forEach(function(a2){a2.maxptime>k&&(k=a2.maxptime)}),k>0&&(x+="a=maxptime:"+k+`\r -`),x+=`a=rtcp-mux\r -`,w.headerExtensions&&w.headerExtensions.forEach(function(a2){x+=h.writeExtmap(a2)}),x},h.parseRtpEncodingParameters=function(y){var w=[],x=h.parseRtpParameters(y),k=x.fecMechanisms.indexOf("RED")!==-1,a2=x.fecMechanisms.indexOf("ULPFEC")!==-1,e2=h.matchPrefix(y,"a=ssrc:").map(function(p2){return h.parseSsrcMedia(p2)}).filter(function(p2){return p2.attribute==="cname"}),s2=e2.length>0&&e2[0].ssrc,J,H=h.matchPrefix(y,"a=ssrc-group:FID").map(function(p2){var c2=p2.substr(17).split(" ");return c2.map(function(f2){return parseInt(f2,10)})});H.length>0&&H[0].length>1&&H[0][0]===s2&&(J=H[0][1]),x.codecs.forEach(function(p2){if(p2.name.toUpperCase()==="RTX"&&p2.parameters.apt){var c2={ssrc:s2,codecPayloadType:parseInt(p2.parameters.apt,10)};s2&&J&&(c2.rtx={ssrc:J}),w.push(c2),k&&(c2=JSON.parse(JSON.stringify(c2)),c2.fec={ssrc:s2,mechanism:a2?"red+ulpfec":"red"},w.push(c2))}}),w.length===0&&s2&&w.push({ssrc:s2});var R2=h.matchPrefix(y,"b=");return R2.length&&(R2[0].indexOf("b=TIAS:")===0?R2=parseInt(R2[0].substr(7),10):R2[0].indexOf("b=AS:")===0?R2=parseInt(R2[0].substr(5),10)*1e3*.95-50*40*8:R2=void 0,w.forEach(function(p2){p2.maxBitrate=R2})),w},h.parseRtcpParameters=function(y){var w={},x=h.matchPrefix(y,"a=ssrc:").map(function(e2){return h.parseSsrcMedia(e2)}).filter(function(e2){return e2.attribute==="cname"})[0];x&&(w.cname=x.value,w.ssrc=x.ssrc);var k=h.matchPrefix(y,"a=rtcp-rsize");w.reducedSize=k.length>0,w.compound=k.length===0;var a2=h.matchPrefix(y,"a=rtcp-mux");return w.mux=a2.length>0,w},h.parseMsid=function(y){var w,x=h.matchPrefix(y,"a=msid:");if(x.length===1)return w=x[0].substr(7).split(" "),{stream:w[0],track:w[1]};var k=h.matchPrefix(y,"a=ssrc:").map(function(a2){return h.parseSsrcMedia(a2)}).filter(function(a2){return a2.attribute==="msid"});if(k.length>0)return w=k[0].value.split(" "),{stream:w[0],track:w[1]}},h.parseSctpDescription=function(y){var w=h.parseMLine(y),x=h.matchPrefix(y,"a=max-message-size:"),k;x.length>0&&(k=parseInt(x[0].substr(19),10)),isNaN(k)&&(k=65536);var a2=h.matchPrefix(y,"a=sctp-port:");if(a2.length>0)return{port:parseInt(a2[0].substr(12),10),protocol:w.fmt,maxMessageSize:k};var e2=h.matchPrefix(y,"a=sctpmap:");if(e2.length>0){var s2=h.matchPrefix(y,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(s2[0],10),protocol:s2[1],maxMessageSize:k}}},h.writeSctpDescription=function(y,w){var x=[];return y.protocol!=="DTLS/SCTP"?x=["m="+y.kind+" 9 "+y.protocol+" "+w.protocol+`\r -`,`c=IN IP4 0.0.0.0\r -`,"a=sctp-port:"+w.port+`\r -`]:x=["m="+y.kind+" 9 "+y.protocol+" "+w.port+`\r -`,`c=IN IP4 0.0.0.0\r -`,"a=sctpmap:"+w.port+" "+w.protocol+` 65535\r -`],w.maxMessageSize!==void 0&&x.push("a=max-message-size:"+w.maxMessageSize+`\r -`),x.join("")},h.generateSessionId=function(){return Math.random().toString().substr(2,21)},h.writeSessionBoilerplate=function(y,w,x){var k,a2=w!==void 0?w:2;y?k=y:k=h.generateSessionId();var e2=x||"thisisadapterortc";return`v=0\r -o=`+e2+" "+k+" "+a2+` IN IP4 127.0.0.1\r -s=-\r -t=0 0\r -`},h.writeMediaSection=function(y,w,x,k){var a2=h.writeRtpDescription(y.kind,w);if(a2+=h.writeIceParameters(y.iceGatherer.getLocalParameters()),a2+=h.writeDtlsParameters(y.dtlsTransport.getLocalParameters(),x==="offer"?"actpass":"active"),a2+="a=mid:"+y.mid+`\r -`,y.direction?a2+="a="+y.direction+`\r -`:y.rtpSender&&y.rtpReceiver?a2+=`a=sendrecv\r -`:y.rtpSender?a2+=`a=sendonly\r -`:y.rtpReceiver?a2+=`a=recvonly\r -`:a2+=`a=inactive\r -`,y.rtpSender){var e2="msid:"+k.id+" "+y.rtpSender.track.id+`\r -`;a2+="a="+e2,a2+="a=ssrc:"+y.sendEncodingParameters[0].ssrc+" "+e2,y.sendEncodingParameters[0].rtx&&(a2+="a=ssrc:"+y.sendEncodingParameters[0].rtx.ssrc+" "+e2,a2+="a=ssrc-group:FID "+y.sendEncodingParameters[0].ssrc+" "+y.sendEncodingParameters[0].rtx.ssrc+`\r -`)}return a2+="a=ssrc:"+y.sendEncodingParameters[0].ssrc+" cname:"+h.localCName+`\r -`,y.rtpSender&&y.sendEncodingParameters[0].rtx&&(a2+="a=ssrc:"+y.sendEncodingParameters[0].rtx.ssrc+" cname:"+h.localCName+`\r -`),a2},h.getDirection=function(y,w){for(var x=h.splitLines(y),k=0;k=26&&N<=_?!0:E.extension.isInstalled()}else return!0};var S3={extensionId:"hapfgfdkleiggjjpfpenajgdnfckjpaj",isInstalled:function(){return document.querySelector("#janus-extension-installed")!==null},getScreen:function(_){var d=window.setTimeout(function(){var h=new Error("NavigatorUserMediaError");return h.name='The required Chrome extension is not installed: click here to install it. (NOTE: this will need you to refresh the page)',_(h)},1e3);this.cache[d]=_,window.postMessage({type:"janusGetScreen",id:d},"*")},init:function(){var _={};this.cache=_,window.addEventListener("message",function(d){if(d.origin==window.location.origin)if(d.data.type=="janusGotScreen"&&_[d.data.id]){var h=_[d.data.id];if(delete _[d.data.id],d.data.sourceId===""){var y=new Error("NavigatorUserMediaError");y.name="You cancelled the request for permission, giving up...",h(y)}else h(null,d.data.sourceId)}else d.data.type=="janusGetScreenPending"&&(console.log("clearing ",d.data.id),window.clearTimeout(d.data.id))})}};E.useDefaultDependencies=function(N){var _=N&&N.fetch||fetch,d=N&&N.Promise||Promise,h=N&&N.WebSocket||WebSocket;return{newWebSocket:function(w,x){return new h(w,x)},extension:N&&N.extension||S3,isArray:function(w){return Array.isArray(w)},webRTCAdapter:N&&N.adapter||window.adapter,httpAPICall:function(w,x){var k={method:x.verb,headers:{Accept:"application/json, text/plain, */*"},cache:"no-cache"};x.verb==="POST"&&(k.headers["Content-Type"]="application/json"),x.withCredentials!==void 0&&(k.credentials=x.withCredentials===!0?"include":x.withCredentials?x.withCredentials:"omit"),x.body!==void 0&&(k.body=JSON.stringify(x.body));var a2=_(w,k).catch(function(s2){return d.reject({message:"Probably a network error, is the server down?",error:s2})});if(x.timeout!==void 0){var e2=new d(function(s2,J){var H=setTimeout(function(){return clearTimeout(H),J({message:"Request timed out",timeout:x.timeout})},x.timeout)});a2=d.race([a2,e2])}return a2.then(function(s2){if(s2.ok){if(n(x.success)===n(E.noop))return s2.json().then(function(J){x.success(J)}).catch(function(J){return d.reject({message:"Failed to parse response body",error:J,response:s2})})}else return d.reject({message:"API call failed",response:s2})}).catch(function(s2){n(x.error)===n(E.noop)&&x.error(s2.message||"<< internal error >>",s2)}),a2}}},E.useOldDependencies=function(N){var _=N&&N.jQuery||jQuery,d=N&&N.WebSocket||WebSocket;return{newWebSocket:function(y,w){return new d(y,w)},isArray:function(y){return _.isArray(y)},extension:N&&N.extension||S3,webRTCAdapter:N&&N.adapter||adapter,httpAPICall:function(y,w){var x=w.body!==void 0?{contentType:"application/json",data:JSON.stringify(w.body)}:{},k=w.withCredentials!==void 0?{xhrFields:{withCredentials:w.withCredentials}}:{};return _.ajax(_.extend(x,k,{url:y,type:w.verb,cache:!1,dataType:"json",async:w.async,timeout:w.timeout,success:function(e2){n(w.success)===n(E.noop)&&w.success(e2)},error:function(e2,s2,J){n(w.error)===n(E.noop)&&w.error(s2,J)}}))}}},E.noop=function(){},E.dataChanDefaultLabel="JanusDataChannel",E.endOfCandidates=null,E.init=function(N){if(N=N||{},N.callback=typeof N.callback=="function"?N.callback:E.noop,E.initDone===!0)N.callback();else{if((typeof console=="undefined"||typeof console.log=="undefined")&&(console={log:function(){}}),E.trace=E.noop,E.debug=E.noop,E.vdebug=E.noop,E.log=E.noop,E.warn=E.noop,E.error=E.noop,N.debug===!0||N.debug==="all")E.trace=console.trace.bind(console),E.debug=console.debug.bind(console),E.vdebug=console.debug.bind(console),E.log=console.log.bind(console),E.warn=console.warn.bind(console),E.error=console.error.bind(console);else if(Array.isArray(N.debug))for(var _ in N.debug){var d=N.debug[_];switch(d){case"trace":E.trace=console.trace.bind(console);break;case"debug":E.debug=console.debug.bind(console);break;case"vdebug":E.vdebug=console.debug.bind(console);break;case"log":E.log=console.log.bind(console);break;case"warn":E.warn=console.warn.bind(console);break;case"error":E.error=console.error.bind(console);break;default:console.error("Unknown debugging option '"+d+"' (supported: 'trace', 'debug', 'vdebug', 'log', warn', 'error')");break}}E.log("Initializing library");var h=N.dependencies||E.useDefaultDependencies();E.isArray=h.isArray,E.webRTCAdapter=h.webRTCAdapter,E.httpAPICall=h.httpAPICall,E.newWebSocket=h.newWebSocket,E.extension=h.extension,E.extension.init(),E.listDevices=function(s2,J){s2=typeof s2=="function"?s2:E.noop,J==null&&(J={audio:!0,video:!0}),E.isGetUserMediaAvailable()?navigator.mediaDevices.getUserMedia(J).then(function(H){navigator.mediaDevices.enumerateDevices().then(function(R2){E.debug(R2),s2(R2);try{var p2=H.getTracks();for(var c2 in p2){var f2=p2[c2];f2!=null&&f2.stop()}}catch(O2){}})}).catch(function(H){E.error(H),s2([])}):(E.warn("navigator.mediaDevices unavailable"),s2([]))},E.attachMediaStream=function(s2,J){if(E.webRTCAdapter.browserDetails.browser==="chrome"){var H=E.webRTCAdapter.browserDetails.version;H>=52?s2.srcObject=J:E.error("Error attaching stream to element")}else s2.srcObject=J},E.reattachMediaStream=function(s2,J){if(E.webRTCAdapter.browserDetails.browser==="chrome"){var H=E.webRTCAdapter.browserDetails.version;H>=52?s2.srcObject=J.srcObject:typeof s2.src!="undefined"?s2.src=J.src:E.error("Error reattaching stream to element")}else s2.srcObject=J.srcObject};var y=["iPad","iPhone","iPod"].indexOf(navigator.platform)>=0,w=y?"pagehide":"beforeunload",x=window["on"+w];if(window.addEventListener(w,function(s2){E.log("Closing window");for(var J in E.sessions)E.sessions[J]!==null&&E.sessions[J]!==void 0&&E.sessions[J].destroyOnUnload&&(E.log("Destroying session "+J),E.sessions[J].destroy({asyncRequest:!1,notifyDestroyed:!1}));x&&typeof x=="function"&&x()}),E.safariVp8=!1,E.webRTCAdapter.browserDetails.browser==="safari"&&E.webRTCAdapter.browserDetails.version>=605)if(RTCRtpSender&&RTCRtpSender.getCapabilities&&RTCRtpSender.getCapabilities("video")&&RTCRtpSender.getCapabilities("video").codecs&&RTCRtpSender.getCapabilities("video").codecs.length){for(var _ in RTCRtpSender.getCapabilities("video").codecs){var k=RTCRtpSender.getCapabilities("video").codecs[_];if(k&&k.mimeType&&k.mimeType.toLowerCase()==="video/vp8"){E.safariVp8=!0;break}}E.safariVp8?E.log("This version of Safari supports VP8"):E.warn("This version of Safari does NOT support VP8: if you're using a Technology Preview, try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu")}else{var a2=new RTCPeerConnection({},{});a2.createOffer({offerToReceiveVideo:!0}).then(function(s2){E.safariVp8=s2.sdp.indexOf("VP8")!==-1,E.safariVp8?E.log("This version of Safari supports VP8"):E.warn("This version of Safari does NOT support VP8: if you're using a Technology Preview, try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu"),a2.close(),a2=null})}if(E.unifiedPlan=!1,E.webRTCAdapter.browserDetails.browser==="firefox"&&E.webRTCAdapter.browserDetails.version>=59)E.unifiedPlan=!0;else if(E.webRTCAdapter.browserDetails.browser==="chrome"&&E.webRTCAdapter.browserDetails.version<72)E.unifiedPlan=!1;else if(typeof RTCRtpTransceiver!="undefined"&&!("currentDirection"in RTCRtpTransceiver.prototype))E.unifiedPlan=!1;else{var e2=new RTCPeerConnection;try{e2.addTransceiver("audio"),E.unifiedPlan=!0}catch(s2){}e2.close()}E.initDone=!0,N.callback()}},E.isWebrtcSupported=function(){return window.RTCPeerConnection!==void 0&&window.RTCPeerConnection!==null},E.isGetUserMediaAvailable=function(){return navigator.mediaDevices!==void 0&&navigator.mediaDevices!==null&&navigator.mediaDevices.getUserMedia!==void 0&&navigator.mediaDevices.getUserMedia!==null},E.randomString=function(N){for(var _="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",d="",h=0;h3){T=!1,N.error("Lost connection to the server (is it down?)");return}q2()}})}}function f3(Z,_2){if(D2=0,!_&&j!==void 0&&j!==null&&_2!==!0&&q2(),!_&&E.isArray(Z)){for(var G2=0;G2 data channel: "+T2),T2==="open"){if(o3.dataChannel[G].pending&&o3.dataChannel[G].pending.length>0){E.log("Sending pending messages on <"+G+">:",o3.dataChannel[G].pending.length);for(var u3 in o3.dataChannel[G].pending){var V2=o3.dataChannel[G].pending[u3];E.log("Sending string on data channel <"+G+">: "+V2),o3.dataChannel[G].send(V2)}o3.dataChannel[G].pending=[]}h2.ondataopen(G)}},k3=function(I){E.error("Got error on data channel:",I)};G2?o3.dataChannel[_2]=G2:o3.dataChannel[_2]=o3.pc.createDataChannel(_2,{ordered:!1}),o3.dataChannel[_2].onmessage=J2,o3.dataChannel[_2].onopen=m3,o3.dataChannel[_2].onclose=m3,o3.dataChannel[_2].onerror=k3,o3.dataChannel[_2].pending=[],z2&&o3.dataChannel[_2].pending.push(z2)}function $1(Z,_2){_2=_2||{},_2.success=typeof _2.success=="function"?_2.success:E.noop,_2.error=typeof _2.error=="function"?_2.error:E.noop;var G2=K[Z];if(G2==null||G2.webrtcStuff===null||G2.webrtcStuff===void 0){E.warn("Invalid handle"),_2.error("Invalid handle");return}var z2=G2.webrtcStuff,h2=_2.text;if(h2==null){E.warn("Invalid text"),_2.error("Invalid text");return}var o3=_2.label?_2.label:E.dataChanDefaultLabel;if(!z2.dataChannel[o3]){I1(Z,o3,!1,h2),_2.success();return}if(z2.dataChannel[o3].readyState!=="open"){z2.dataChannel[o3].pending.push(h2),_2.success();return}E.log("Sending string on data channel <"+o3+">: "+h2),z2.dataChannel[o3].send(h2),_2.success()}function W1(Z,_2){_2=_2||{},_2.success=typeof _2.success=="function"?_2.success:E.noop,_2.error=typeof _2.error=="function"?_2.error:E.noop;var G2=K[Z];if(G2==null||G2.webrtcStuff===null||G2.webrtcStuff===void 0){E.warn("Invalid handle"),_2.error("Invalid handle");return}var z2=G2.webrtcStuff;if(z2.dtmfSender===null||z2.dtmfSender===void 0){if(z2.pc!==void 0&&z2.pc!==null){var h2=z2.pc.getSenders(),o3=h2.find(function(I){return I.track&&I.track.kind==="audio"});if(!o3){E.warn("Invalid DTMF configuration (no audio track)"),_2.error("Invalid DTMF configuration (no audio track)");return}z2.dtmfSender=o3.dtmf,z2.dtmfSender&&(E.log("Created DTMF Sender"),z2.dtmfSender.ontonechange=function(I){E.debug("Sent DTMF tone: "+I.tone)})}if(z2.dtmfSender===null||z2.dtmfSender===void 0){E.warn("Invalid DTMF configuration"),_2.error("Invalid DTMF configuration");return}}var J2=_2.dtmf;if(J2==null){E.warn("Invalid DTMF parameters"),_2.error("Invalid DTMF parameters");return}var m3=J2.tones;if(m3==null){E.warn("Invalid DTMF string"),_2.error("Invalid DTMF string");return}var k3=J2.duration;k3==null&&(k3=500);var P=J2.gap;P==null&&(P=50),E.debug("Sending DTMF string "+m3+" (duration "+k3+"ms, gap "+P+"ms)"),z2.dtmfSender.insertDTMF(m3,k3,P),_2.success()}function E0(Z,_2){_2=_2||{},_2.success=typeof _2.success=="function"?_2.success:E.noop,_2.error=typeof _2.error=="function"?_2.error:E.noop;var G2=!0;_2.asyncRequest!==void 0&&_2.asyncRequest!==null&&(G2=_2.asyncRequest===!0);var z2=!0;_2.noRequest!==void 0&&_2.noRequest!==null&&(z2=_2.noRequest===!0),E.log("Destroying handle "+Z+" (async="+G2+")"),se(Z);var h2=K[Z];if(h2==null||h2.detached){delete K[Z],_2.success();return}if(z2){delete K[Z],_2.success();return}if(!T){E.warn("Is the server down? (connected=false)"),_2.error("Is the server down? (connected=false)");return}var o3={rtcgw:"detach",transaction:E.randomString(12)};if(h2.token!==null&&h2.token!==void 0&&(o3.token=h2.token),c2!=null&&(o3.apisecret=c2),_){o3.session_id=j,o3.handle_id=Z,d.send(JSON.stringify(o3)),delete K[Z],_2.success();return}E.httpAPICall(k+"/"+j+"/"+Z,{verb:"POST",async:G2,withCredentials:H,body:o3,success:function(m3){E.log("Destroyed handle:"),E.debug(m3),m3.rtcgw!=="success"&&E.error("Ooops: "+m3.error.code+" "+m3.error.reason),delete K[Z],_2.success()},error:function(m3,k3){E.error(m3+":",k3),delete K[Z],_2.success()}})}function L2(Z,_2,G2,z2,h2){var o3=K[Z];if(o3==null||o3.webrtcStuff===null||o3.webrtcStuff===void 0){E.warn("Invalid handle"),z2.error("Invalid handle");return}var J2=o3.webrtcStuff;E.debug("streamsDone:",h2),h2&&(E.debug(" -- Audio tracks:",h2.getAudioTracks()),E.debug(" -- Video tracks:",h2.getVideoTracks()));var m3=!1;if(!J2.myStream||!G2.update||J2.streamExternal)J2.myStream=h2,m3=!0;else{if((!G2.update&&g1(G2)||G2.update&&(G2.addAudio||G2.replaceAudio))&&h2.getAudioTracks()&&h2.getAudioTracks().length)if(J2.myStream.addTrack(h2.getAudioTracks()[0]),E.unifiedPlan){E.log((G2.replaceAudio?"Replacing":"Adding")+" audio track:",h2.getAudioTracks()[0]);var k3=null,P=J2.pc.getTransceivers();if(P&&P.length>0)for(var I in P){var G=P[I];if(G.sender&&G.sender.track&&G.sender.track.kind==="audio"||G.receiver&&G.receiver.track&&G.receiver.track.kind==="audio"){k3=G;break}}k3&&k3.sender?k3.sender.replaceTrack(h2.getAudioTracks()[0]):J2.pc.addTrack(h2.getAudioTracks()[0],h2)}else E.log((G2.replaceAudio?"Replacing":"Adding")+" audio track:",h2.getAudioTracks()[0]),J2.pc.addTrack(h2.getAudioTracks()[0],h2);if((!G2.update&&K2(G2)||G2.update&&(G2.addVideo||G2.replaceVideo))&&h2.getVideoTracks()&&h2.getVideoTracks().length)if(J2.myStream.addTrack(h2.getVideoTracks()[0]),E.unifiedPlan){E.log((G2.replaceVideo?"Replacing":"Adding")+" video track:",h2.getVideoTracks()[0]);var T2=null,P=J2.pc.getTransceivers();if(P&&P.length>0)for(var I in P){var G=P[I];if(G.sender&&G.sender.track&&G.sender.track.kind==="video"||G.receiver&&G.receiver.track&&G.receiver.track.kind==="video"){T2=G;break}}T2&&T2.sender?T2.sender.replaceTrack(h2.getVideoTracks()[0]):J2.pc.addTrack(h2.getVideoTracks()[0],h2)}else E.log((G2.replaceVideo?"Replacing":"Adding")+" video track:",h2.getVideoTracks()[0]),J2.pc.addTrack(h2.getVideoTracks()[0],h2)}if(!J2.pc){var u3={iceServers:a2,iceTransportPolicy:e2,bundlePolicy:s2};E.webRTCAdapter.browserDetails.browser==="chrome"&&(u3.sdpSemantics=E.webRTCAdapter.browserDetails.version<72?"plan-b":"unified-plan");var V2={optional:[{DtlsSrtpKeyAgreement:!0}]};if(J===!0&&V2.optional.push({googIPv6:!0}),z2.rtcConstraints&&n(z2.rtcConstraints)==="object"){E.debug("Adding custom PeerConnection constraints:",z2.rtcConstraints);for(var I in z2.rtcConstraints)V2.optional.push(z2.rtcConstraints[I])}E.webRTCAdapter.browserDetails.browser==="edge"&&(u3.bundlePolicy="max-bundle"),E.log("Creating PeerConnection"),E.debug(V2),J2.pc=new RTCPeerConnection(u3,V2),E.debug(J2.pc),J2.pc.getStats&&(J2.volume={},J2.bitrate.value="0 kbits/sec"),E.log("Preparing local SDP and gathering candidates (trickle="+J2.trickle+")"),J2.pc.oniceconnectionstatechange=function(e3){J2.pc&&o3.iceState(J2.pc.iceConnectionState)},J2.pc.onicecandidate=function(e3){if(e3.candidate==null||E.webRTCAdapter.browserDetails.browser==="edge"&&e3.candidate.candidate.indexOf("endOfCandidates")>0)E.log("End of candidates."),J2.iceDone=!0,J2.trickle===!0?x1(Z,{completed:!0}):l0(Z,z2);else{var r1={candidate:e3.candidate.candidate,sdpMid:e3.candidate.sdpMid,sdpMLineIndex:e3.candidate.sdpMLineIndex};J2.trickle===!0&&x1(Z,r1)}},J2.pc.ontrack=function(e3){E.log("Handling Remote Track"),E.debug(e3),e3.streams&&(J2.remoteStream=e3.streams[0],o3.onremotestream(J2.remoteStream),!e3.track.onended&&(E.log("Adding onended callback to track:",e3.track),e3.track.onended=function(r1){E.log("Remote track muted/removed:",r1),J2.remoteStream&&(J2.remoteStream.removeTrack(r1.target),o3.onremotestream(J2.remoteStream))},e3.track.onmute=e3.track.onended,e3.track.onunmute=function(r1){E.log("Remote track flowing again:",r1);try{J2.remoteStream.addTrack(r1.target),o3.onremotestream(J2.remoteStream)}catch(c0){E.error(c0)}}))}}if(m3&&h2!==null&&h2!==void 0){E.log("Adding local stream");var W=z2.simulcast2===!0;h2.getTracks().forEach(function(e3){if(E.log("Adding local track:",e3),!W)J2.pc.addTrack(e3,h2);else if(e3.kind==="audio")J2.pc.addTrack(e3,h2);else{E.log("Enabling rid-based simulcasting:",e3);var r1=o2(z2.simulcastMaxBitrates);J2.pc.addTransceiver(e3,{direction:"sendrecv",streams:[h2],sendEncodings:[{rid:"h",active:!0,maxBitrate:r1.high},{rid:"m",active:!0,maxBitrate:r1.medium,scaleResolutionDownBy:2},{rid:"l",active:!0,maxBitrate:r1.low,scaleResolutionDownBy:4}]})}})}y1(G2)&&!J2.dataChannel[E.dataChanDefaultLabel]&&(E.log("Creating data channel"),I1(Z,E.dataChanDefaultLabel,!1),J2.pc.ondatachannel=function(e3){E.log("Data channel created by Janus:",e3),I1(Z,e3.channel.label,e3.channel)}),J2.myStream&&o3.onlocalstream(J2.myStream),_2==null?q3(Z,G2,z2):J2.pc.setRemoteDescription(_2).then(function(){if(E.log("Remote description accepted!"),J2.remoteSdp=_2.sdp,J2.candidates&&J2.candidates.length>0){for(var e3=0;e3=26&&C2<=m2?(W={video:{mandatory:{googLeakyBucket:!0,maxWidth:window.screen.width,maxHeight:window.screen.height,minFrameRate:h2.screenshareFrameRate,maxFrameRate:h2.screenshareFrameRate,chromeMediaSource:"screen"}},audio:g1(h2)&&!h2.keepAudio},b2(W,q)):E.extension.getScreen(function(x3,K3){if(x3)return o3.consentDialog(!1),G2.error(x3);W={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",maxWidth:window.screen.width,maxHeight:window.screen.height,minFrameRate:h2.screenshareFrameRate,maxFrameRate:h2.screenshareFrameRate},optional:[{googLeakyBucket:!0},{googTemporalLayeredScreencast:!0}]}},W.video.mandatory.chromeMediaSourceId=K3,b2(W,q,g1(h2)&&!h2.keepAudio)})}else if(E.webRTCAdapter.browserDetails.browser==="firefox")if(E.webRTCAdapter.browserDetails.version>=33)W={video:{mozMediaSource:h2.video,mediaSource:h2.video},audio:g1(h2)&&!h2.keepAudio},b2(W,function(x3,K3){if(q(x3,K3),!x3)var v1=K3.currentTime,Q1=window.setInterval(function(){K3||window.clearInterval(Q1),K3.currentTime==v1&&(window.clearInterval(Q1),K3.onended&&K3.onended()),v1=K3.currentTime},500)});else{var T3=new Error("NavigatorUserMediaError");T3.name="Your version of Firefox does not support screen sharing, please install Firefox 33 (or more recent versions)",o3.consentDialog(!1),G2.error(T3);return}return}}(h2==null||h2.video!=="screen")&&navigator.mediaDevices.enumerateDevices().then(function(x3){var K3=x3.some(function(Y2){return Y2.kind==="audioinput"}),v1=B3(h2)||x3.some(function(Y2){return Y2.kind==="videoinput"}),Q1=g1(h2),L1=K2(h2),n0=D(h2),K0=i1(h2);if(Q1||L1||n0||K0){var U=Q1?K3:!1,t2=L1?v1:!1;if(!U&&!t2)return o3.consentDialog(!1),G2.error("No capture device found"),!1;if(!U&&n0)return o3.consentDialog(!1),G2.error("Audio capture is required, but no capture device found"),!1;if(!t2&&K0)return o3.consentDialog(!1),G2.error("Video capture is required, but no capture device found"),!1}var N2={audio:K3&&!h2.keepAudio?e3:!1,video:v1&&!h2.keepVideo?r1:!1};E.debug("getUserMedia constraints",N2),!N2.audio&&!N2.video?(o3.consentDialog(!1),L2(Z,z2,h2,G2,G)):navigator.mediaDevices.getUserMedia(N2).then(function(Y2){o3.consentDialog(!1),L2(Z,z2,h2,G2,Y2)}).catch(function(Y2){o3.consentDialog(!1),G2.error({code:Y2.code,name:Y2.name,message:Y2.message})})}).catch(function(x3){o3.consentDialog(!1),G2.error("enumerateDevices error",x3)})}else L2(Z,z2,h2,G2)}function A3(Z,_2){_2=_2||{},_2.success=typeof _2.success=="function"?_2.success:E.noop,_2.error=typeof _2.error=="function"?_2.error:Ve;var G2=_2.jsep,z2=K[Z];if(z2==null||z2.webrtcStuff===null||z2.webrtcStuff===void 0){E.warn("Invalid handle"),_2.error("Invalid handle");return}var h2=z2.webrtcStuff;if(G2!=null){if(h2.pc===null){E.warn("Wait, no PeerConnection?? if this is an answer, use createAnswer and not handleRemoteJsep"),_2.error("No PeerConnection: if this is an answer, use createAnswer and not handleRemoteJsep");return}h2.pc.setRemoteDescription(G2).then(function(){if(E.log("Remote description accepted!"),h2.remoteSdp=G2.sdp,h2.candidates&&h2.candidates.length>0){for(var o3=0;o30)for(var I in P){var G=P[I];if(G.sender&&G.sender.track&&G.sender.track.kind==="audio"||G.receiver&&G.receiver.track&&G.receiver.track.kind==="audio"){m3||(m3=G);continue}if(G.sender&&G.sender.track&&G.sender.track.kind==="video"||G.receiver&&G.receiver.track&&G.receiver.track.kind==="video"){k3||(k3=G);continue}}var T2=g1(_2),u3=u2(_2);!T2&&!u3?_2.removeAudio&&m3&&(m3.setDirection?m3.setDirection("inactive"):m3.direction="inactive",E.log("Setting audio transceiver to inactive:",m3)):T2&&u3?m3&&(m3.setDirection?m3.setDirection("sendrecv"):m3.direction="sendrecv",E.log("Setting audio transceiver to sendrecv:",m3)):T2&&!u3?m3&&(m3.setDirection?m3.setDirection("sendonly"):m3.direction="sendonly",E.log("Setting audio transceiver to sendonly:",m3)):!T2&&u3&&(m3?(m3.setDirection?m3.setDirection("recvonly"):m3.direction="recvonly",E.log("Setting audio transceiver to recvonly:",m3)):(m3=h2.pc.addTransceiver("audio",{direction:"recvonly"}),E.log("Adding recvonly audio transceiver:",m3)));var V2=K2(_2),W=G3(_2);!V2&&!W?_2.removeVideo&&k3&&(k3.setDirection?k3.setDirection("inactive"):k3.direction="inactive",E.log("Setting video transceiver to inactive:",k3)):V2&&W?k3&&(k3.setDirection?k3.setDirection("sendrecv"):k3.direction="sendrecv",E.log("Setting video transceiver to sendrecv:",k3)):V2&&!W?k3&&(k3.setDirection?k3.setDirection("sendonly"):k3.direction="sendonly",E.log("Setting video transceiver to sendonly:",k3)):!V2&&W&&(k3?(k3.setDirection?k3.setDirection("recvonly"):k3.direction="recvonly",E.log("Setting video transceiver to recvonly:",k3)):(k3=h2.pc.addTransceiver("video",{direction:"recvonly"}),E.log("Adding recvonly video transceiver:",k3)))}else J2.offerToReceiveAudio=u2(_2),J2.offerToReceiveVideo=G3(_2);var e3=G2.iceRestart===!0;e3&&(J2.iceRestart=!0),E.debug(J2);var r1=K2(_2);if(r1&&o3&&E.webRTCAdapter.browserDetails.browser==="firefox"){E.log("Enabling Simulcasting for Firefox (RID)");var c0=h2.pc.getSenders().find(function(B){return B.track.kind=="video"});if(c0){var t0=c0.getParameters();t0||(t0={});var b=o2(G2.simulcastMaxBitrates);t0.encodings=[{rid:"h",active:!0,maxBitrate:b.high},{rid:"m",active:!0,maxBitrate:b.medium,scaleResolutionDownBy:2},{rid:"l",active:!0,maxBitrate:b.low,scaleResolutionDownBy:4}],c0.setParameters(t0)}}h2.pc.createOffer(J2).then(function(B){E.debug(B);var q={type:B.type,sdp:B.sdp};if(G2.customizeSdp(q),B.sdp=q.sdp,E.log("Setting local description"),r1&&o3&&(E.webRTCAdapter.browserDetails.browser==="chrome"||E.webRTCAdapter.browserDetails.browser==="safari"?(E.log("Enabling Simulcasting for Chrome (SDP munging)"),B.sdp=Le(B.sdp)):E.webRTCAdapter.browserDetails.browser!=="firefox"&&E.warn("simulcast=true, but this is not Chrome nor Firefox, ignoring")),h2.mySdp=B.sdp,h2.pc.setLocalDescription(B).catch(G2.error),h2.mediaConstraints=J2,!h2.iceDone&&!h2.trickle){E.log("Waiting for all candidates...");return}E.log("Offer ready"),E.debug(G2),G2.success(B)},G2.error)}function T1(Z,_2,G2){G2=G2||{},G2.success=typeof G2.success=="function"?G2.success:E.noop,G2.error=typeof G2.error=="function"?G2.error:E.noop,G2.customizeSdp=typeof G2.customizeSdp=="function"?G2.customizeSdp:E.noop;var z2=K[Z];if(z2==null||z2.webrtcStuff===null||z2.webrtcStuff===void 0){E.warn("Invalid handle"),G2.error("Invalid handle");return}var h2=z2.webrtcStuff,o3=G2.simulcast===!0;o3?E.log("Creating answer (iceDone="+h2.iceDone+", simulcast="+o3+")"):E.log("Creating answer (iceDone="+h2.iceDone+")");var J2=null;if(E.unifiedPlan){J2={};var m3=null,k3=null,P=h2.pc.getTransceivers();if(P&&P.length>0)for(var I in P){var G=P[I];if(G.sender&&G.sender.track&&G.sender.track.kind==="audio"||G.receiver&&G.receiver.track&&G.receiver.track.kind==="audio"){m3||(m3=G);continue}if(G.sender&&G.sender.track&&G.sender.track.kind==="video"||G.receiver&&G.receiver.track&&G.receiver.track.kind==="video"){k3||(k3=G);continue}}var T2=g1(_2),u3=u2(_2);if(!T2&&!u3){if(_2.removeAudio&&m3)try{m3.setDirection?m3.setDirection("inactive"):m3.direction="inactive",E.log("Setting audio transceiver to inactive:",m3)}catch(b){E.error(b)}}else if(T2&&u3){if(m3)try{m3.setDirection?m3.setDirection("sendrecv"):m3.direction="sendrecv",E.log("Setting audio transceiver to sendrecv:",m3)}catch(b){E.error(b)}}else if(T2&&!u3)try{m3&&(m3.setDirection?m3.setDirection("sendonly"):m3.direction="sendonly",E.log("Setting audio transceiver to sendonly:",m3))}catch(b){E.error(b)}else if(!T2&&u3)if(m3)try{m3.setDirection?m3.setDirection("recvonly"):m3.direction="recvonly",E.log("Setting audio transceiver to recvonly:",m3)}catch(b){E.error(b)}else m3=h2.pc.addTransceiver("audio",{direction:"recvonly"}),E.log("Adding recvonly audio transceiver:",m3);var V2=K2(_2),W=G3(_2);if(!V2&&!W){if(_2.removeVideo&&k3)try{k3.setDirection?k3.setDirection("inactive"):k3.direction="inactive",E.log("Setting video transceiver to inactive:",k3)}catch(b){E.error(b)}}else if(V2&&W){if(k3)try{k3.setDirection?k3.setDirection("sendrecv"):k3.direction="sendrecv",E.log("Setting video transceiver to sendrecv:",k3)}catch(b){E.error(b)}}else if(V2&&!W){if(k3)try{k3.setDirection?k3.setDirection("sendonly"):k3.direction="sendonly",E.log("Setting video transceiver to sendonly:",k3)}catch(b){E.error(b)}}else if(!V2&&W)if(k3)try{k3.setDirection?k3.setDirection("recvonly"):k3.direction="recvonly",E.log("Setting video transceiver to recvonly:",k3)}catch(b){E.error(b)}else k3=h2.pc.addTransceiver("video",{direction:"recvonly"}),E.log("Adding recvonly video transceiver:",k3)}else E.webRTCAdapter.browserDetails.browser=="firefox"||E.webRTCAdapter.browserDetails.browser=="edge"?J2={offerToReceiveAudio:u2(_2),offerToReceiveVideo:G3(_2)}:J2={mandatory:{OfferToReceiveAudio:u2(_2),OfferToReceiveVideo:G3(_2)}};E.debug(J2);var e3=K2(_2);if(e3&&o3&&E.webRTCAdapter.browserDetails.browser==="firefox"){E.log("Enabling Simulcasting for Firefox (RID)");var r1=h2.pc.getSenders()[1];E.log(r1);var c0=r1.getParameters();E.log(c0);var t0=o2(G2.simulcastMaxBitrates);r1.setParameters({encodings:[{rid:"high",active:!0,priority:"high",maxBitrate:t0.high},{rid:"medium",active:!0,priority:"medium",maxBitrate:t0.medium},{rid:"low",active:!0,priority:"low",maxBitrate:t0.low}]})}h2.pc.createAnswer(J2).then(function(b){E.debug(b);var B={type:b.type,sdp:b.sdp};if(G2.customizeSdp(B),b.sdp=B.sdp,E.log("Setting local description"),e3&&o3&&(E.webRTCAdapter.browserDetails.browser==="chrome"?E.warn("simulcast=true, but this is an answer, and video breaks in Chrome if we enable it"):E.webRTCAdapter.browserDetails.browser!=="firefox"&&E.warn("simulcast=true, but this is not Chrome nor Firefox, ignoring")),h2.mySdp=b.sdp,h2.pc.setLocalDescription(b).catch(G2.error),h2.mediaConstraints=J2,!h2.iceDone&&!h2.trickle){E.log("Waiting for all candidates...");return}G2.success(b)},G2.error)}function l0(Z,_2){_2=_2||{},_2.success=typeof _2.success=="function"?_2.success:E.noop,_2.error=typeof _2.error=="function"?_2.error:E.noop;var G2=K[Z];if(G2==null||G2.webrtcStuff===null||G2.webrtcStuff===void 0){E.warn("Invalid handle, not sending anything");return}var z2=G2.webrtcStuff;if(E.log("Sending offer/answer SDP..."),z2.mySdp===null||z2.mySdp===void 0){E.warn("Local SDP instance is invalid, not sending anything...");return}z2.mySdp={type:z2.pc.localDescription.type,sdp:z2.pc.localDescription.sdp},z2.trickle===!1&&(z2.mySdp.trickle=!1),E.debug(_2),z2.sdpSent=!0,_2.success(z2.mySdp)}function X1(Z,_2){var G2=K[Z];if(G2==null||G2.webrtcStuff===null||G2.webrtcStuff===void 0)return E.warn("Invalid handle"),0;var z2=_2?"remote":"local",h2=G2.webrtcStuff;return h2.volume[z2]||(h2.volume[z2]={value:0}),h2.pc.getStats&&E.webRTCAdapter.browserDetails.browser==="chrome"?_2&&(h2.remoteStream===null||h2.remoteStream===void 0)?(E.warn("Remote stream unavailable"),0):!_2&&(h2.myStream===null||h2.myStream===void 0)?(E.warn("Local stream unavailable"),0):h2.volume[z2].timer===null||h2.volume[z2].timer===void 0?(E.log("Starting "+z2+" volume monitor"),h2.volume[z2].timer=setInterval(function(){h2.pc.getStats(function(o3){for(var J2=o3.result(),m3=0;m3-1)&&h2.type==="inbound-rtp"&&h2.id.indexOf("rtcp")<0||h2.type=="ssrc"&&h2.bytesReceived&&(h2.googCodecName==="VP8"||h2.googCodecName===""))&&(o3=!0),o3)if(G2.bitrate.bsnow=h2.bytesReceived,G2.bitrate.tsnow=h2.timestamp,G2.bitrate.bsbefore===null||G2.bitrate.tsbefore===null)G2.bitrate.bsbefore=G2.bitrate.bsnow,G2.bitrate.tsbefore=G2.bitrate.tsnow;else{var J2=G2.bitrate.tsnow-G2.bitrate.tsbefore;E.webRTCAdapter.browserDetails.browser=="safari"&&(J2=J2/1e3);var m3=Math.round((G2.bitrate.bsnow-G2.bitrate.bsbefore)*8/J2);E.webRTCAdapter.browserDetails.browser==="safari"&&(m3=parseInt(m3/1e3)),G2.bitrate.value=m3+" kbits/sec",G2.bitrate.bsbefore=G2.bitrate.bsnow,G2.bitrate.tsbefore=G2.bitrate.tsnow}}})})},1e3),"0 kbits/sec"):G2.bitrate.value:(E.warn("Getting the video bitrate unsupported by browser"),"Feature unsupported by browser")}function Ve(Z){E.error("WebRTC error:",Z)}function se(Z,_2){E.log("Cleaning WebRTC stuff");var G2=K[Z];if(G2!=null){var z2=G2.webrtcStuff;if(z2!=null){if(_2===!0){var h2={rtcgw:"hangup",transaction:E.randomString(12)};G2.token!==null&&G2.token!==void 0&&(h2.token=G2.token),c2!=null&&(h2.apisecret=c2),E.debug("Sending hangup request (handle="+Z+"):"),E.debug(h2),_?(h2.session_id=j,h2.handle_id=Z,d.send(JSON.stringify(h2))):E.httpAPICall(k+"/"+j+"/"+Z,{verb:"POST",withCredentials:H,body:h2})}z2.remoteStream=null,z2.volume&&(z2.volume.local&&z2.volume.local.timer&&clearInterval(z2.volume.local.timer),z2.volume.remote&&z2.volume.remote.timer&&clearInterval(z2.volume.remote.timer)),z2.volume={},z2.bitrate.timer&&clearInterval(z2.bitrate.timer),z2.bitrate.timer=null,z2.bitrate.bsnow=null,z2.bitrate.bsbefore=null,z2.bitrate.tsnow=null,z2.bitrate.tsbefore=null,z2.bitrate.value=null;try{if(!z2.streamExternal&&z2.myStream!==null&&z2.myStream!==void 0){E.log("Stopping local stream tracks");var o3=z2.myStream.getTracks();for(var J2 in o3){var m3=o3[J2];E.log(m3),m3!=null&&m3.stop()}}}catch(k3){}z2.streamExternal=!1,z2.myStream=null;try{z2.pc.close()}catch(k3){}z2.pc=null,z2.candidates=null,z2.mySdp=null,z2.remoteSdp=null,z2.iceDone=!1,z2.dataChannel={},z2.dtmfSender=null}G2.oncleanup()}}function Le(Z){for(var _2=Z.split(`\r -`),G2=!1,z2=[-1],h2=[-1],o3=null,J2=null,m3=null,k3=null,P=-1,I=0;I<_2.length;I++){var G=_2[I].match(/m=(\w+) */);if(G){var T2=G[1];if(T2==="video")if(z2[0]<0)G2=!0;else{P=I;break}else if(z2[0]>-1){P=I;break}continue}if(G2){var u3=_2[I].match(/a=ssrc-group:FID (\d+) (\d+)/);if(u3){z2[0]=u3[1],h2[0]=u3[2],_2.splice(I,1),I--;continue}if(z2[0]){var V2=_2[I].match("a=ssrc:"+z2[0]+" cname:(.+)");if(V2&&(o3=V2[1]),V2=_2[I].match("a=ssrc:"+z2[0]+" msid:(.+)"),V2&&(J2=V2[1]),V2=_2[I].match("a=ssrc:"+z2[0]+" mslabel:(.+)"),V2&&(m3=V2[1]),V2=_2[I].match("a=ssrc:"+z2[0]+" label:(.+)"),V2&&(k3=V2[1]),_2[I].indexOf("a=ssrc:"+h2[0])===0){_2.splice(I,1),I--;continue}if(_2[I].indexOf("a=ssrc:"+z2[0])===0){_2.splice(I,1),I--;continue}}if(_2[I].length==0){_2.splice(I,1),I--;continue}}}if(z2[0]<0){P=-1,G2=!1;for(var I=0;I<_2.length;I++){var G=_2[I].match(/m=(\w+) */);if(G){var T2=G[1];if(T2==="video")if(z2[0]<0)G2=!0;else{P=I;break}else if(z2[0]>-1){P=I;break}continue}if(G2){if(z2[0]<0){var W=_2[I].match(/a=ssrc:(\d+)/);if(W){z2[0]=W[1],_2.splice(I,1),I--;continue}}else{var V2=_2[I].match("a=ssrc:"+z2[0]+" cname:(.+)");if(V2&&(o3=V2[1]),V2=_2[I].match("a=ssrc:"+z2[0]+" msid:(.+)"),V2&&(J2=V2[1]),V2=_2[I].match("a=ssrc:"+z2[0]+" mslabel:(.+)"),V2&&(m3=V2[1]),V2=_2[I].match("a=ssrc:"+z2[0]+" label:(.+)"),V2&&(k3=V2[1]),_2[I].indexOf("a=ssrc:"+h2[0])===0){_2.splice(I,1),I--;continue}if(_2[I].indexOf("a=ssrc:"+z2[0])===0){_2.splice(I,1),I--;continue}}if(_2[I].length==0){_2.splice(I,1),I--;continue}}}}if(z2[0]<0)return E.warn("Couldn't find the video SSRC, simulcasting NOT enabled"),Z;P<0&&(P=_2.length),z2[1]=Math.floor(Math.random()*4294967295),z2[2]=Math.floor(Math.random()*4294967295),h2[1]=Math.floor(Math.random()*4294967295),h2[2]=Math.floor(Math.random()*4294967295);for(var I=0;I -
-
-
-
-
-
- `,document.getElementById("mobile-ez-ptz-item")||y.appendChild(k),g(y,document.getElementById("".concat(this.jSPlugin.id,"-wrap"))),document.getElementById("mobile-ez-ptz-item").ontouchstart=function(a2){a2.preventDefault(),console.log("触摸开始"),d._handlePtzTouch(a2,"start")},document.getElementById("mobile-ez-ptz-item").ontouchend=function(a2){a2.preventDefault(),console.log("触摸结束",a2),d._handlePtzTouch(a2,"stop")},document.getElementById("mobile-ez-ptz-item").onmousedown=function(a2){a2.preventDefault(),console.log("触摸开始"),d._handlePtzTouch(a2,"start")},document.getElementById("mobile-ez-ptz-item").onmouseup=function(a2){a2.preventDefault(),console.log("触摸结束",a2),d._handlePtzTouch(a2,"stop")}}return r(N,[{key:"show",value:function(){document.getElementById("mobile-ez-ptz-item").style="display: inline-block"}},{key:"hide",value:function(){document.getElementById("mobile-ez-ptz-item").style="display: none"}},{key:"_handlePtzTouch",value:function(d,h){var y=document.getElementById("mobile-ez-ptz-item").getBoundingClientRect(),w=y.left+130,x=y.top+130,k=d.x||d.changedTouches[0].clientX,a2=d.y||d.changedTouches[0].clientY,e2=k-w,s2=a2-x,J=0,H=this.jSPlugin.env.domain+"/api/lapp/device/ptz/start";Math.abs(e2)>Math.abs(s2)?e2>0?(J=3,document.getElementsByClassName("mobile-ez-ptz-icon")[3].className=document.getElementsByClassName("mobile-ez-ptz-icon")[3].className.replace("default","active")):(J=2,document.getElementsByClassName("mobile-ez-ptz-icon")[1].className=document.getElementsByClassName("mobile-ez-ptz-icon")[1].className.replace("default","active")):s2>0?(J=1,document.getElementsByClassName("mobile-ez-ptz-icon")[2].className=document.getElementsByClassName("mobile-ez-ptz-icon")[2].className.replace("default","active")):(J=0,document.getElementsByClassName("mobile-ez-ptz-icon")[0].className=document.getElementsByClassName("mobile-ez-ptz-icon")[0].className.replace("default","active")),document.getElementById("mobile-ez-ptz-item").style="background-image:linear-gradient(".concat(J===0?180:J===1?0:J===2?90:270,"deg, #c0ddf1 0%, rgba(100,143,252,0.00) 50%)"),h==="stop"&&(H=this.jSPlugin.env.domain+"/api/lapp/device/ptz/stop",document.getElementById("mobile-ez-ptz-item").style="",document.getElementsByClassName("mobile-ez-ptz-icon")[3].className=document.getElementsByClassName("mobile-ez-ptz-icon")[3].className.replace("active","default"),document.getElementsByClassName("mobile-ez-ptz-icon")[1].className=document.getElementsByClassName("mobile-ez-ptz-icon")[1].className.replace("active","default"),document.getElementsByClassName("mobile-ez-ptz-icon")[2].className=document.getElementsByClassName("mobile-ez-ptz-icon")[2].className.replace("active","default"),document.getElementsByClassName("mobile-ez-ptz-icon")[0].className=document.getElementsByClassName("mobile-ez-ptz-icon")[0].className.replace("active","default"));var R2=new FormData;R2.append("deviceSerial",y2(this.jSPlugin.url).deviceSerial),R2.append("channelNo",y2(this.jSPlugin.url).channelNo),R2.append("speed",1),R2.append("direction",J),R2.append("accessToken",this.jSPlugin.accessToken),fetch(H,{method:"POST",body:R2}).then(function(p2){return p2.json()}).then(function(p2){p2.code==200||(p2.code==60005||p2.code==60002||p2.code==60003||p2.code==60004)&&(document.getElementById("mobile-ez-ptz-item").style="background-image:linear-gradient(".concat(J===0?180:J===1?0:J===2?90:270,"deg, #f45656 0%, rgba(100,143,252,0.00) 50%)"))}).catch(function(p2){console.log("云台调用异常",p2)})}}]),N}(),R1=0,N1="成功",G0={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-0",iconId:"deviceID",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-1",iconId:"deviceName",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-2",iconId:"cloudRec",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-3",iconId:"rec",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"}]},footer:{color:"#FFFFFF",backgroundColor:"rgb(0 0 0 / 0%)",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-0",iconId:"play",part:"left",defaultActive:1,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-1",iconId:"capturePicture",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-2",iconId:"sound",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-3",iconId:"pantile",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-4",iconId:"recordvideo",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-5",iconId:"talk",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-6",iconId:"hd",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-7",iconId:"webExpend",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-8",iconId:"expend",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"}]}},T0={retcode:R1,msg:N1,data:G0},S0={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},oe={data:S0},z0={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:1},{iconId:"rec",part:"right",defaultActive:0,isrender:1}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"speed",part:"right",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},P0={data:z0},x2={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-0",iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-1",iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-2",iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-3",iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:1},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"speed",part:"right",defaultActive:0,isrender:0},{iconId:"hd",part:"right",defaultActive:0,isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,isrender:1},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},j2={data:x2},H2={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-0",iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-1",iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-2",iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-3",iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},w3={data:H2},d1={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:0},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"sound",part:"left",defaultActive:1,isrender:0},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:0},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:0}]}},O1={data:d1},V1={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},I0={data:V1},F0={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:1},{iconId:"rec",part:"right",defaultActive:0,isrender:1}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:1},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"speed",part:"right",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:1},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},O0={data:F0},Z1=[{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"pcLive",themeIntro:"PC直播全量版",themeName:"PC直播全量版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:j2.data.header,footer:j2.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"security",themeIntro:"PC直播安防版",themeName:"PC直播安防版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:w3.data.header,footer:w3.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"voice",themeIntro:"PC直播语音版",themeName:"PC直播语音版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:I0.data.header,footer:I0.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"simple",themeIntro:"PC直播极简版",themeName:"PC直播极简版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"",header:O1.data.header,footer:O1.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"pcRec",themeIntro:"PC回放全量版",themeName:"PC回放全量版",themeType:"webRec",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:O0.data.header,footer:O0.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"mobileLive",themeIntro:"Mobile直播全量版",themeName:"Mobile直播全量版",themeType:"mobileLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_GmAL5IhAABZs1vUK0s564.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:oe.data.header,footer:oe.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"mobileRec",themeIntro:"Mobile回放全量版",themeName:"Mobile回放全量版",themeType:"mobileRec",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_GmAL5IhAABZs1vUK0s564.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:P0.data.header,footer:P0.data.footer}],Y0=function(){function N(_){var d=this;a(this,N),this.jSPlugin=_,this.enableZoom=!1,this.isMouseDown=!1,this.videoWidth=1920,this.videoHeight=1080,this.currentScale=1,this.currentPosition={x:0,y:0,xPercent:.1,yPercent:.1,xCurrentVideo:0,yCurrentVideo:0,left:0,top:0,right:1920,bottom:1080},this.DOM=document.getElementById(_.id),this.clientRect=document.getElementById(_.id).getBoundingClientRect();var h=document.createElement("div");h.id="".concat(_.id,"-zoom-container"),h.style=`position: absolute; - display:none; - left: 12px; - bottom: 80px;`;var y=` -
-
2.0X
-
- - - 放大 - - - - - - - - - - - - - -
-
-
-
-
-
- - - 缩小 - - - - - - - - - - -
-
- `);h.innerHTML=y,document.getElementById("".concat(_.id,"-audioControls-left")).parentNode.appendChild(h),document.getElementById("".concat(_.id,"-addScale")).onclick=function(){d.addScale()},document.getElementById("".concat(_.id,"-subScale")).onclick=function(){d.subScale()}}return r(N,[{key:"onMouseDown",value:function(d){this.currentPosition,this.currentScale;var h=this.enableZoom;if(!h)return!1;this.moveX=d.clientX,this.moveY=d.clientY,this.isMouseDown=!0}},{key:"onMouseUp",value:function(d){var h=this.currentPosition,y=this.enableZoom;if(!y)return!1;this.isMouseDown=!1,h.left=h.left-(d.clientX-this.moveX),h.top=h.top-(d.clientY-this.moveY),this.doScale()}},{key:"onMouseOut",value:function(d){var h=this.enableZoom;if(!h)return!1;this.isMouseDown&&(console.log("鼠标按上",d),this.isMouseDown=!1),this.isMouseDown=!1}},{key:"renderDot",value:function(){var d=this.currentScale;document.getElementById("".concat(this.jSPlugin.id,"-scale-value")).innerHTML="".concat(d,".0X"),document.getElementById("".concat(this.jSPlugin.id,"-line-dot")).style.height="".concat((d-1)/7*100,"%"),document.getElementById("".concat(this.jSPlugin.id,"-scale-body-line-dot")).style.bottom="calc(".concat((d-1)/7*100,"% - 6px)")}},{key:"startZoom",value:function(){var d=this,h=this.jSPlugin.jSPlugin._JSPlayM4_GetFrameInfo(0);this.videoWidth=h.width,this.videoHeight=h.height,this.currentPosition.right=h.width,this.currentPosition.bottom=h.height,this.currentScale=1,document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="block",this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),this.renderDot(),this.enableZoom=!0,document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0"))?(document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0")).addEventListener("mousedown",function(y){return d.onMouseDown(y)}),document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0")).addEventListener("mouseup",function(y){return d.onMouseUp(y)}),document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0")).addEventListener("mouseout",function(y){return d.onMouseOut(y)})):document.getElementById("".concat(this.jSPlugin.id,"-player"))&&(document.getElementById("".concat(this.jSPlugin.id,"-player")).addEventListener("mousedown",function(y){return d.onMouseDown(y)}),document.getElementById("".concat(this.jSPlugin.id,"-player")).addEventListener("mouseup",function(y){return d.onMouseUp(y)}),document.getElementById("".concat(this.jSPlugin.id,"-player")).addEventListener("mouseout",function(y){return d.onMouseOut(y)}))}},{key:"stopZoom",value:function(){var d=this;this.currentScale=1,this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="none",this.renderDot(),this.enableZoom=!1,document.getElementById(this.jSPlugin.id).removeEventListener("mousedown",function(h){return d.onMouseDown(h)}),document.getElementById(this.jSPlugin.id).removeEventListener("mouseup",function(h){return d.onMouseUp(h)}),document.getElementById(this.jSPlugin.id).removeEventListener("mouseout",function(h){return d.onMouseOut(h)})}},{key:"doScale",value:function(){console.log("执行放大");var d=this.currentPosition,h=this.currentScale;d.left=d.left+d.xPercent*(d.right-d.left)-1/2*(this.videoWidth/h),d.left<0?d.left=0:d.left>this.videoWidth-this.videoWidth/h&&(d.left=this.videoWidth-this.videoWidth/h),d.right=d.left+this.videoWidth/h,d.top=d.top+d.yPercent*(d.bottom-d.top)-1/2*(this.videoHeight/h),d.top<0?d.top=0:d.top>this.videoHeight-this.videoHeight/h&&(d.top=this.videoHeight-this.videoHeight/h),d.bottom=d.top+this.videoHeight/h,d.left=parseInt(d.left,10),d.right=parseInt(d.right,10),d.top=parseInt(d.top,10),d.bottom=parseInt(d.bottom,10),console.log("计算后,",this.jSPlugin.jSPlugin,d.left,d.right,d.top,d.bottom,d.xPercent,d.yPercent),this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(d.left,d.right,d.top,d.bottom),this.renderDot()}},{key:"calCurrentPosition",value:function(d){var h=this.currentPosition,y=this.clientRect;h.x=d.clientX,h.y=d.clientY,h.xPercent=(d.clientX-y.x)/y.width,h.yPercent=(d.clientY-y.y)/y.height,this.doScale()}},{key:"addScale",value:function(){var d=this.currentScale,h=this.currentPosition;if(d>=8)return console.log("达到最大倍率了"),this.jSPlugin.Message&&this.jSPlugin.Message.default("已经放大到最大倍数8.0X"),!1;this.currentScale++,h.xPercent=.5,h.yPercent=.5,this.doScale()}},{key:"subScale",value:function(){var d=this.currentScale,h=this.currentPosition;if(d<=1)return console.log("达到最小倍率了"),!1;this.currentScale--,h.xPercent=.5,h.yPercent=.5,this.doScale()}}]),N}();function d0(N,_){return Math.abs(_.clientX-N.clientX)*Math.abs(_.clientX-N.clientX)+Math.abs(_.clientY-N.clientY)*Math.abs(_.clientY-N.clientY)}var de=function(){function N(_){var d=this;a(this,N),this.jSPlugin=_,this.enableZoom=!1,this.isDubboTouch=!1,this.videoWidth=0,this.videoHeight=0,this.currentScale=1,this.currentPosition={x:0,y:0,xPercent:.1,yPercent:.1,xCurrentVideo:0,yCurrentVideo:0,left:0,top:0,right:1920,bottom:1080},this.DOM=document.getElementById(_.id),this.clientRect=document.getElementById(_.id).getBoundingClientRect(),this.point1={clientX:0,clientY:0},this.point2={clientX:0,clientY:0},this.touchLineLength=0,this.inited=!1;var h=document.createElement("div");h.id="".concat(_.id,"-zoom-container"),h.style=`display:none; - position: absolute; - left: 10px; - top: -30px; - border: 1px solid rgba(0,0,0,0.6); - color: #FFFFFF; - background: rgba(0,0,0,0.6); - border-radius: 10px; - width: 36px; - font-size: 12px; - text-align: center; - height: 22px; - line-height: 22px;`;var y="1X";h.innerHTML=y,document.getElementById("".concat(_.id,"-audioControls-left")).parentNode.appendChild(h),document.getElementById(this.jSPlugin.id).addEventListener("touchstart",function(w){return d.onTouchstart(w)}),document.getElementById(this.jSPlugin.id).addEventListener("touchmove",function(w){return d.onTouchmove(w)})}return r(N,[{key:"onTouchstart",value:function(d){var h=this.jSPlugin.beforeMobileZoomVerify();if(!h)return!1;if(!this.inited){var y=this.jSPlugin.jSPlugin._JSPlayM4_GetFrameInfo(0);this.videoWidth=y.width,this.videoHeight=y.height,this.currentPosition.right=y.width,this.currentPosition.bottom=y.height,this.inited=!0}var w=this.currentPosition;this.currentScale,console.log("双指按下",w);var x=d.touches,k=x[0],a2=x[1];k&&(this.point1.clientX=k.clientX,this.point1.clientY=k.clientY),a2&&(this.point2.clientX=a2.clientX,this.point2.clientY=a2.clientY,this.touchLineLength=d0(this.point1,this.point2),this.isDubboTouch=!0,this.moveX=k.clientX,this.moveY=k.clientY),console.log("双指按下2",w)}},{key:"onTouchmove",value:function(d){var h=this.isDubboTouch,y=this.currentPosition,w=this.clientRect,x=this.jSPlugin.beforeMobileZoomVerify();if(!x)return!1;if(d.touches.length===1){var a2=d.touches[0];return y.xPercent=y.xPercent+(this.point1.clientX-a2.clientX)/w.width/this.currentScale,y.yPercent=y.yPercent+(this.point1.clientY-a2.clientY)/w.height/this.currentScale,this.doScale(),this.point1.clientX=a2.clientX,this.point1.clientY=a2.clientY,!1}if(!h)return!1;var k=d.touches,a2=k[0],e2=k[1];if(a2&&(this.point1.clientX=a2.clientX,this.point1.clientY=a2.clientY),e2){this.point2.clientX=e2.clientX,this.point2.clientY=e2.clientY;var s2=d0(this.point1,this.point2);s2!==this.touchLineLength&&(s2>this.touchLineLength?this.currentScale<8?(++this.currentScale,y.xPercent=(this.point1.clientX+this.point2.clientX)/2/w.width,y.yPercent=(this.point1.clientY+this.point2.clientY)/2/w.height,this.doScale()):console.log("已经是最大8倍率了"):this.currentScale>1?(--this.currentScale,y.xPercent=(this.point1.clientX+this.point2.clientX)/2/w.width,y.yPercent=(this.point1.clientY+this.point2.clientY)/2/w.height,this.doScale()):console.log("已经是最小1倍率了"),this.isDubboTouch=!1)}}},{key:"startZoom",value:function(){var d=this.jSPlugin.jSPlugin._JSPlayM4_GetFrameInfo(0);this.videoWidth=d.width,this.videoHeight=d.height,this.currentPosition.right=d.width,this.currentPosition.bottom=d.height,this.currentScale=1,document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="block",this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),this.renderDot()}},{key:"stopZoom",value:function(){this.currentScale=1,this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="none",this.renderDot()}},{key:"resetZoom",value:function(){this.currentScale=1,document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="none"}},{key:"doScale",value:function(){var d=this.currentPosition,h=this.currentScale;d.left=d.left+d.xPercent*(d.right-d.left)-1/2*(this.videoWidth/h),d.left<0?d.left=0:d.left>this.videoWidth-this.videoWidth/h&&(d.left=this.videoWidth-this.videoWidth/h),d.right=d.left+this.videoWidth/h,d.top=d.top+d.yPercent*(d.bottom-d.top)-1/2*(this.videoHeight/h),d.top<0?d.top=0:d.top>this.videoHeight-this.videoHeight/h&&(d.top=this.videoHeight-this.videoHeight/h),d.bottom=d.top+this.videoHeight/h,d.left=parseInt(d.left,10),d.right=parseInt(d.right,10),d.top=parseInt(d.top,10),d.bottom=parseInt(d.bottom,10),console.log("视频宽高",this.videoWidth,this.videoHeight),console.log("计算后,",d.left,d.right,d.top,d.bottom,d.xPercent,d.yPercent),d.left0&&(this.autoFocus=parseInt(this.themeData.autoFocus),this.startAutoFocus(),document.getElementById("".concat(this.jSPlugin.id,"-wrap")).addEventListener("click",function(){d.stopAutoFocus()})),this.setDecoderState({cloudRec:y2(this.jSPlugin.url).type==="cloud.rec",rec:y2(this.jSPlugin.url).type==="rec",type:y2(this.jSPlugin.url).type});else if(!this.themeInited)var x=setInterval(function(){window.EZUIKit[d.jSPlugin.id].state.EZUIKitPlayer.init&&(clearInterval(x),d.jSPlugin.play(),d.themeInited=!0)},50);var k=l3.findIndex(this.themeData.footer.btnList,function(e2){return e2.iconId==="zoom"&&e2.isrender>0})>=0;k&&(this.isMobile?(this.jSPlugin.beforeMobileZoomVerify=function(){var e2=d.decoderState.state.play;return console.log("手机端电子放大前校验回调play------------",e2),!!e2},this.jSPlugin.Zoom=new de(this.jSPlugin)):this.jSPlugin.Zoom=new Y0(this.jSPlugin));var a2=setInterval(function(){window.EZUIKit[d.jSPlugin.id].state.EZUIKitPlayer.init&&(clearInterval(a2),d.jSPlugin.reSize(d.jSPlugin.params.width,d.jSPlugin.params.height))},50)}},{key:"setDecoderState",value:function(d){var h=this,y=this.themeData,w=y.header,x=y.footer;Object.keys(d).map(function(k,a2){var e2="#FFFFFF",s2="#FFFFFF",J=w.btnList.findIndex(function(H){return H.iconId===k});switch(J===-1?(e2=x.color.replace("-diy",""),s2=x.activeColor.replace("-diy","")):(e2=w.color.replace("-diy",""),s2=x.activeColor.replace("-diy","")),k){case"play":d[k]?document.getElementById("".concat(h.jSPlugin.id,"-play"))&&(document.getElementById("".concat(h.jSPlugin.id,"-play-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-play-content")).children[0].children[1].style="display:none",document.getElementById("".concat(h.jSPlugin.id,"-play")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-play-content")).childNodes[0].children[0].style.fill=d[k]?s2:e2):document.getElementById("".concat(h.jSPlugin.id,"-play"))&&(document.getElementById("".concat(h.jSPlugin.id,"-play-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-play-content")).children[0].children[0].style="display:none",document.getElementById("".concat(h.jSPlugin.id,"-play")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-play-content")).childNodes[0].children[1].style.fill=d[k]?s2:e2);break;case"sound":document.getElementById("".concat(h.jSPlugin.id,"-sound"))&&(d[k]?(document.getElementById("".concat(h.jSPlugin.id,"-sound-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-sound-content")).children[0].children[0].style="display:none",document.getElementById("".concat(h.jSPlugin.id,"-sound")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-sound-content")).childNodes[0].children[1].style.fill=d[k]?s2:e2):(document.getElementById("".concat(h.jSPlugin.id,"-sound-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-sound-content")).children[0].children[1].style="display:none",document.getElementById("".concat(h.jSPlugin.id,"-sound")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-sound-content")).childNodes[0].children[0].style.fill=d[k]?s2:e2));break;case"recordvideo":document.getElementById("".concat(h.jSPlugin.id,"-recordvideo"))&&(document.getElementById("".concat(h.jSPlugin.id,"-recordvideo")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-recordvideo-content")).childNodes[0].style.fill=d[k]?s2:e2,d[k]?h.countTime("add",0):h.countTime("destroy",0));break;case"talk":document.getElementById("".concat(h.jSPlugin.id,"-talk"))&&(document.getElementById("".concat(h.jSPlugin.id,"-talk")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-talk-content")).childNodes[1].style.fill=d[k]?s2:e2);break;case"zoom":document.getElementById("".concat(h.jSPlugin.id,"-zoom"))&&(document.getElementById("".concat(h.jSPlugin.id,"-zoom")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-zoom-content")).childNodes[1].style.fill=d[k]?s2:e2);break;case"pantile":document.getElementById("".concat(h.jSPlugin.id,"-pantile"))&&(document.getElementById("".concat(h.jSPlugin.id,"-pantile")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-pantile-content")).childNodes[0].style.fill=d[k]?s2:e2);break;case"webExpend":d[k]?(document.getElementById("".concat(h.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-webExpend-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-webExpend-content")).children[0].children[0].style="display:none"),document.getElementById("".concat(h.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-expend")).className="disabled")):(document.getElementById("".concat(h.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-webExpend-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-webExpend-content")).children[0].children[1].style="display:none"),document.getElementById("".concat(h.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-expend")).className="")),document.getElementById("".concat(h.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-webExpend")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-webExpend-content")).childNodes[0].childNodes[0].style.fill=d[k]?s2:e2,document.getElementById("".concat(h.jSPlugin.id,"-webExpend-content")).childNodes[0].childNodes[1].style.fill=d[k]?s2:e2);break;case"capturePicture":document.getElementById("".concat(h.jSPlugin.id,"-capturePicture"))&&(document.getElementById("".concat(h.jSPlugin.id,"-capturePicture")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-capturePicture-content")).childNodes[0].style.fill=d[k]?s2:e2);break;case"expend":d[k]?(document.getElementById("".concat(h.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-expend-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-expend-content")).children[0].children[0].style="display:none"),document.getElementById("".concat(h.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-webExpend")).className="disabled")):(document.getElementById("".concat(h.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-expend-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(h.jSPlugin.id,"-expend-content")).children[0].children[1].style="display:none"),document.getElementById("".concat(h.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-webExpend")).className="")),document.getElementById("".concat(h.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(h.jSPlugin.id,"-expend")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-expend-content")).childNodes[0].childNodes[0].style.fill=d[k]?s2:e2,document.getElementById("".concat(h.jSPlugin.id,"-expend-content")).childNodes[0].childNodes[1].style.fill=d[k]?s2:e2);break;case"hd":d[k]?document.getElementById("".concat(h.jSPlugin.id,"-hd"))&&(document.getElementById("".concat(h.jSPlugin.id,"-hd-content")).children[1].children[0].style="display:block",document.getElementById("".concat(h.jSPlugin.id,"-hd-content")).children[1].children[1].style="display:none"):document.getElementById("".concat(h.jSPlugin.id,"-hd"))&&(document.getElementById("".concat(h.jSPlugin.id,"-hd-content")).children[1].children[1].style="display:block",document.getElementById("".concat(h.jSPlugin.id,"-hd-content")).children[1].children[0].style="display:none");break;case"speed":document.getElementById("".concat(h.jSPlugin.id,"-speed"))&&(document.getElementById("".concat(h.jSPlugin.id,"-speed-content")).children[1].children[0].style.color=d[k]?s2:e2,document.getElementById("".concat(h.jSPlugin.id,"-speed-content")).children[1].children[0].style.borderColor=d[k]?s2:e2),document.getElementById("".concat(h.jSPlugin.id,"-select-mask"))&&(h.isMobile&&d[k]?document.getElementById("".concat(h.jSPlugin.id,"-select-mask")).style.display="block":document.getElementById("".concat(h.jSPlugin.id,"-select-mask")).style.display="none");break;case"cloudRec":document.getElementById("".concat(h.jSPlugin.id,"-cloudRec"))&&(console.log("document.getElementById(`${this.jSPlugin.id}-cloudRec-content`)",document.getElementById("".concat(h.jSPlugin.id,"-cloudRec"))),document.getElementById("".concat(h.jSPlugin.id,"-cloudRec")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-cloudRec-content")).children[0].children[0].style.fill=d[k]?s2:e2),document.getElementById("".concat(h.jSPlugin.id,"-rec"))&&(document.getElementById("".concat(h.jSPlugin.id,"-rec")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-rec-content")).children[0].children[0].style.fill=d[k]?e2:s2);break;case"rec":document.getElementById("".concat(h.jSPlugin.id,"-cloudRec"))&&(document.getElementById("".concat(h.jSPlugin.id,"-cloudRec")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-cloudRec-content")).children[0].children[0].style.fill=d[k]?e2:s2),document.getElementById("".concat(h.jSPlugin.id,"-rec"))&&(document.getElementById("".concat(h.jSPlugin.id,"-rec")).className=d[k]?"active":"",document.getElementById("".concat(h.jSPlugin.id,"-rec-content")).children[0].children[0].style.fill=d[k]?s2:e2);break}h.decoderState.state=Object.assign(h.decoderState.state,d)})}},{key:"startAutoFocus",value:function(){var d=this,h=this.autoFocus;this.autoFocusTimer&&clearTimeout(this.autoFocusTimer),this.autoFocusTimer=setTimeout(function(){document.getElementById("".concat(d.jSPlugin.id,"-audioControls"))&&(document.getElementById("".concat(d.jSPlugin.id,"-audioControls")).style.opacity=0,document.getElementById("".concat(d.jSPlugin.id,"-audioControls")).style.pointerEvents="none")},h*1e3)}},{key:"stopAutoFocus",value:function(){document.getElementById("".concat(this.jSPlugin.id,"-audioControls"))&&(document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.opacity=1,document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.pointerEvents="all"),this.autoFocusTimer&&clearTimeout(this.autoFocusTimer),this.startAutoFocus()}},{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"renderFooter",value:function(d,h){var y=this,w=this.matchBtn(d);if(this.isMobile&&w.id==="zoom")return!1;var x=document.createElement("div");x.className="theme-icon-item",x.innerHTML="".concat('')+'
')).concat(w.domString,"
")+"
",x.onclick=function(s2){if(y.decoderState.state.isEditing)return!1;w.onclick(s2)},w.onmouseenter&&(x.onmouseenter=function(s2){if(y.decoderState.state.isEditing)return!1;w.onmouseenter(s2)}),w.onmouseleave&&(x.onmouseleave=function(s2){if(y.decoderState.state.isEditing)return!1;w.onmouseleave(s2)});var k=document.createElement("span");k.className="icon-move left",k.innerHTML=''),k.onclick=function(){y.editIcon(w.id,"left","footer")},x.appendChild(k);var a2=document.createElement("span");a2.className="icon-move right",a2.innerHTML=''),a2.onclick=function(){y.editIcon(w.id,"right","footer")},x.appendChild(a2);var e2=document.createElement("span");e2.className="icon-move close",e2.innerHTML='')+'',e2.onclick=function(){y.editIcon(w.id,"delete","footer")},x.appendChild(e2),h==="left"?document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).childNodes[0].appendChild(x):document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).childNodes[1].appendChild(x)}},{key:"editIcon",value:function(d,h,y){console.log("编辑组件",d,h,y);var w=this.themeData;console.log("themeData",this.themeData);var x=this.themeData[y].btnList,k=l3.findIndex(x,function(R2){return R2.iconId===d}),a2=x[k];switch(h){case"delete":if(d==="rec"){if(l3.findIndex(x,function(R2){return R2.iconId==="cloudRec"&&R2.isrender==1})===-1)return this.jSPlugin.Message&&this.jSPlugin.Message.default("必须选中一种存储介质"),!1}else if(d==="cloudRec"&&l3.findIndex(x,function(R2){return R2.iconId==="rec"&&R2.isrender==1})===-1)return this.jSPlugin.Message&&this.jSPlugin.Message.default("必须选中一种存储介质"),!1;x[k].isrender=0;break;case"right":for(var e2=-1,s2=k+1;s2=0;H--)if(x[H].part===x[k].part&&x[H].isrender==1){J=H;break}J!==-1&&(x[k]=x[J],x[J]=a2);break}console.log("new btnList",x),w[y].btnList=x,this.changeTheme(w)}},{key:"renderHeader",value:function(d,h){var y=this,w=this.matchBtn(d),x=document.createElement("div");x.className="theme-icon-item",x.style="max-width:50%;",x.innerHTML="".concat('')+'')).concat(w.domString,"")+'',x.onclick=function(a2){if(y.decoderState.state.isEditing)return!1;w.onclick(a2)};var k=document.createElement("span");k.className="icon-move close",k.innerHTML='')+'',k.onclick=function(){y.editIcon(w.id,"delete","header")},x.appendChild(k),h==="left"?document.getElementById("".concat(this.jSPlugin.id,"-headControl")).childNodes[0].appendChild(x):document.getElementById("".concat(this.jSPlugin.id,"-headControl")).childNodes[1].appendChild(x)}},{key:"countTime",value:function(d){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,y=this;if(!document.getElementById(this.jSPlugin.id+"time-area")){var w=document.createElement("div");w.id=this.jSPlugin.id+"time-area",w.className="time-area",w.innerHTML='00:00',document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container"))&&document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).appendChild(w)}if(this.countTimer&&clearInterval(this.countTimer),d==="add"){var x=h;document.getElementById(y.jSPlugin.id+"time-area").style.display="flex",this.countTimer=setInterval(function(){++x,document.getElementById(y.jSPlugin.id+"time-area").children[1].innerHTML=k(x)},1e3)}else d==="destroy"&&(this.countTimer&&clearInterval(this.countTimer),this.countTimer=void 0,document.getElementById(y.jSPlugin.id+"time-area")&&(document.getElementById(y.jSPlugin.id+"time-area").children[1].innerHTML="00:00",document.getElementById(y.jSPlugin.id+"time-area").style.display="none"));function k(a2){var e2=parseInt(a2),s2=0,J=0,H="00",R2="00",p2="00";return e2>59&&(s2=parseInt(e2/60),e2=parseInt(e2%60),s2>59&&(J=parseInt(s2/60),s2=parseInt(s2%60))),H=parseInt(e2)>9?parseInt(e2):"0"+parseInt(e2),R2=parseInt(s2)>9?parseInt(s2):"0"+parseInt(s2),p2=parseInt(J)>9?parseInt(J):"0"+parseInt(J),J>0?p2+":"+R2+":"+H:s2>0?R2+":"+H:"00:"+H}}},{key:"setDisabled",value:function(d){var h=this.decoderState.state,y=h.sound,w=h.hd;document.getElementById(y?"".concat(this.jSPlugin.id,"-sound-icon"):"".concat(this.jSPlugin.id,"-nosound-icon"))!=null&&document.getElementById(y?"".concat(this.jSPlugin.id,"-sound-icon"):"".concat(this.jSPlugin.id,"-nosound-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-recordvideo-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-recordvideo-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-capturePicture-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-capturePicture-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-talk-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-talk-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-zoom-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-zoom-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-pantile-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-pantile-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById(w?"".concat(this.jSPlugin.id,"-hdSelect-icon"):"".concat(this.jSPlugin.id,"-sdSelect-icon"))!=null&&document.getElementById(w?"".concat(this.jSPlugin.id,"-hdSelect-icon"):"".concat(this.jSPlugin.id,"-sdSelect-icon")).setAttribute("style",d?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-speed-text"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-speed-text")).setAttribute("style",document.getElementById("".concat(this.jSPlugin.id,"-speed-text")).getAttribute("style")+";"+(d?"cursor: not-allowed;color: gray;border-color: gray;":"cursor: default;color: #ffffff;border-color: #ffffff;"))}},{key:"matchBtn",value:function(d){var h=this,y=this.themeData,w=y.header,x=y.footer,k={title:"",id:"",domString:"",color:"#FFFFFF",activeColor:"#FFFFFF",onclick:function(){},onmoveleft:function(){},onmoveright:function(){},onremove:function(){}},a2=w.btnList.findIndex(function(e2){return e2.iconId===d});switch(a2===-1?(k.color=x.color,k.backgroundColor=x.backgroundColor,k.activeColor=x.activeColor):(k.color=w.color,k.backgroundColor=w.backgroundColor,k.activeColor=w.activeColor),d){case"play":return k.title="播放/结束播放",k.id=d,k.domString='
'+'`)+'')+'
',k.onclick=function(){var e2=h.decoderState.state,s2=e2.play,J=e2.isEditing,H=e2.rec,R2=e2.cloudRec,p2=e2.recordvideo;if(J)return!1;s2?(H||R2?h.jSPlugin.pause():h.jSPlugin.stop(),p2&&h.setDecoderState({recordvideo:!1}),h.jSPlugin.Zoom.stopZoom()):(H||R2?h.jSPlugin.resume():h.jSPlugin.play(),h.resetMobileZoomStatus()),h.setDecoderState({zoom:!1,play:!s2}),h.setDisabled(s2)},k;case"sound":return k.title="声音",k.id=d,k.domString=''+'`)+' - - - - - `)+"",k.onclick=function(){var e2=h.decoderState.state,s2=e2.play,J=e2.sound,H=e2.talk;s2&&(J?(h.jSPlugin.closeSound(),h.setDecoderState({sound:!1})):H||(h.jSPlugin.openSound(),h.setDecoderState({sound:!0})))},k;case"recordvideo":return k.title="录屏",k.id=d,k.domString='')+'',k.onclick=function(){var e2=h.decoderState.state,s2=e2.play,J=e2.recordvideo;s2&&(J?(h.jSPlugin.stopSave(),h.setDecoderState({recordvideo:!1})):(h.jSPlugin.startSave("".concat(new Date().getTime())),h.setDecoderState({recordvideo:!0})))},k;case"capturePicture":return k.title="截图",k.id=d,k.domString='')+'',k.onclick=function(){var e2=h.decoderState.state.play;e2?h.jSPlugin.capturePicture("".concat(new Date().getTime())):console.log("视频未播放,无法截图")},k;case"talk":return k.title="对讲",k.id=d,k.domString="
"+'')+'',k.onclick=function(){var e2=h.decoderState.state,s2=e2.talk,J=e2.sound,H=e2.play;if(H)if(s2){console.log("结束对讲"),h.setDecoderState({talk:!1}),h.jSPlugin.Talk.stopTalk();var R2=l3.findIndex(h.themeData.footer.btnList,function(p2){return p2.iconId==="sound"&&p2.isrender===1&&p2.defaultActive===1})>-1;h.themeData&&R2&&(h.jSPlugin.openSound(),h.setDecoderState({sound:!0}))}else console.log("开始对讲"),h.setDecoderState({talk:!0}),J&&(h.jSPlugin.closeSound(),h.setDecoderState({sound:!1})),h.jSPlugin.Talk.startTalk()},k;case"zoom":return k.title="电子放大",k.id=d,k.domString="
"+' - - - - - `),k.onclick=function(){var e2=h.decoderState.state,s2=e2.zoom,J=e2.play;if(!J)return!1;s2?(console.log("结束电子放大"),h.setDecoderState({zoom:!1}),h.jSPlugin.Zoom.stopZoom()):(console.log("开始电子放大"),h.jSPlugin.Zoom.startZoom(),h.setDecoderState({zoom:!0}))},k;case"pantile":return k.title="云台控制",k.id=d,k.domString='')+'',k.onclick=function(){var e2=h.decoderState.state,s2=e2.play,J=e2.pantile,H=e2.expend;if(s2)if(J)console.log("隐藏云台"),h.Ptz.hide(),h.setDecoderState({pantile:!1});else{if(console.log("显示云台"),h.isMobile&&!H)return console.log("移动端,非全屏状态不展示云台"),!1;h.Ptz.show(),h.setDecoderState({pantile:!0})}},k;case"expend":return k.title="全局全屏",k.id=d,k.domString='')+''+' - `),k.onclick=function(){var e2=h.decoderState.state,s2=e2.webExpend,J=e2.expend;e2.play;var H=e2.pantile;if(s2)return console.log("正在网站全屏"),!1;if(J)if(h.isMobile){var R2=parseInt(getComputedStyle(document.getElementById("".concat(h.jSPlugin.id,"-wrap"))).height,10)-parseInt(getComputedStyle(document.getElementById(h.jSPlugin.id)).height,10);document.getElementById("".concat(h.jSPlugin.id,"-ez-iframe-footer-container"))&&(document.getElementById("".concat(h.jSPlugin.id,"-ez-iframe-footer-container")).style.marginTop="-32px"),document.getElementById("".concat(h.jSPlugin.id,"-headControl"))&&(document.getElementById("".concat(h.jSPlugin.id,"-headControl")).style.position="relative"),Y(document.getElementById("".concat(h.jSPlugin.id,"-wrap")),h.jSPlugin.width,h.jSPlugin.height+R2),h.jSPlugin.jSPlugin.JS_Resize(h.jSPlugin.width,h.jSPlugin.height),H&&(h.Ptz.hide(),h.setDecoderState({pantile:!1}))}else{console.log("取消全局全屏");var O2=v2();O2.then(function(o2){console.log("取消全屏",o2,h.jSPlugin),h.jSPlugin.jSPlugin.JS_Resize(h.jSPlugin.width,h.jSPlugin.height)})}else if(console.log("执行全局全屏"),h.isMobile){var R2=parseInt(getComputedStyle(document.getElementById("".concat(h.jSPlugin.id,"-wrap"))).height,10)-parseInt(getComputedStyle(document.getElementById(h.jSPlugin.id)).height,10);F(document.getElementById("".concat(h.jSPlugin.id,"-wrap"))),setTimeout(function(){var o2=document.documentElement.clientWidth,T=document.documentElement.clientHeight;document.getElementById("".concat(h.jSPlugin.id)).style["backface-visibility"]="hidden",h.jSPlugin.jSPlugin.JS_Resize(T,o2-R2)},100)}else{var p2=window.screen.width,c2=window.screen.height,f2=z(document.getElementById("".concat(h.jSPlugin.id)));f2.then(function(o2){h.jSPlugin.jSPlugin.JS_Resize(p2,c2)}).catch(function(o2){console.log(o2)})}h.setDecoderState({expend:!J})},k;case"webExpend":return k.title="网页全屏",k.id=d,k.domString='')+''+'",k.onclick=function(){var e2=h.decoderState.state,s2=e2.webExpend,J=e2.expend;if(e2.play,J)return console.log("正在全局全屏"),!1;if(h.jSPlugin.recTimer&&clearInterval(h.jSPlugin.recTimer),s2){console.log("取消网页全屏");var o2=v2();o2.then(function(T){h.jSPlugin.jSPlugin.JS_Resize(h.jSPlugin.width,h.jSPlugin.height),h.jSPlugin.Theme.Rec&&h.jSPlugin.Theme.Rec.recAutoSize()})}else{console.log("执行网页全屏");var H=0,R2=0,p2=h;["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(T){window.addEventListener(T,function(K){var E2=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;return E2?document.getElementById("".concat(p2.jSPlugin.id,"-loading-item-0"))&&(document.getElementById("".concat(p2.jSPlugin.id,"-loading-item-0")).style.height=window.screen.height-parseInt(window.getComputedStyle(document.getElementById("".concat(p2.jSPlugin.id,"-headControl"))).height,10)+"px"):document.getElementById("".concat(p2.jSPlugin.id,"-loading-item-0"))&&(document.getElementById("".concat(p2.jSPlugin.id,"-loading-item-0")).style.height=p2.jSPlugin.height+parseInt(window.getComputedStyle(document.getElementById("".concat(p2.jSPlugin.id,"-headControl"))).height,10)+"px"),E2})});var c2=window.screen.width,f2=window.screen.height,O2=z(document.getElementById("".concat(h.jSPlugin.id,"-wrap")));O2.then(function(T){document.getElementById("".concat(h.jSPlugin.id,"-canvas-container"))&&(H=parseInt(window.getComputedStyle(document.getElementById("".concat(h.jSPlugin.id,"-canvas-container"))).height,10)),document.getElementById("".concat(h.jSPlugin.id,"-headControl"))&&(R2=parseInt(window.getComputedStyle(document.getElementById("".concat(h.jSPlugin.id,"-headControl"))).height,10)),h.jSPlugin.jSPlugin.JS_Resize(c2,f2-H-R2),h.jSPlugin.Theme.Rec&&h.jSPlugin.Theme.Rec.recAutoSize()}).catch(function(T){console.log(T)})}h.setDecoderState({webExpend:!s2})},k;case"hd":return k.title="画面清晰度",k.id=d,k.domString='"+'')+''+' - `)+`')+"",k.onclick=function(e2){var s2=h.decoderState.state,J=s2.hd,H=s2.expend,R2=s2.recordvideo,p2=s2.play;p2&&(J&&e2.target.id==="".concat(h.jSPlugin.id,"-select-sd")?(console.log("切换到标清"),h.jSPlugin.changeVideoLevel(0),h.setDecoderState({hd:!1}),h.resetMobileZoomStatus(),R2&&h.setDecoderState({recordvideo:!1}),h.setDecoderState({zoom:!1}),h.jSPlugin.Zoom.stopZoom()):!J&&e2.target.id==="".concat(h.jSPlugin.id,"-select-hd")&&(h.jSPlugin.changeVideoLevel(1),h.setDecoderState({hd:!0}),h.resetMobileZoomStatus(),R2&&h.setDecoderState({recordvideo:!1}),h.setDecoderState({zoom:!1}),h.jSPlugin.Zoom.stopZoom()),h.showHD=!h.showHD,document.getElementById("".concat(h.jSPlugin.id,"-hdSelect"))&&(document.getElementById("".concat(h.jSPlugin.id,"-hdSelect")).style.display=document.getElementById("".concat(h.jSPlugin.id,"-hdSelect")).style.display==="none"?"block":"none",h.isMobile&&(document.getElementById("".concat(h.jSPlugin.id,"-select-hd-mask")).style.display=document.getElementById("".concat(h.jSPlugin.id,"-select-hd-mask")).style.display==="none"?"block":"none")),h.isMobile&&H&&h.showHD?document.getElementById("".concat(h.jSPlugin.id,"-hdSelect")).className="hd speed-select mobile expend":document.getElementById("".concat(h.jSPlugin.id,"-hdSelect")).className=h.isMobile?"hd speed-select mobile":"speed-select")},k;case"speed":return k.title="回放倍速",k.id=d,k.domString='"+` -
`).concat(this.nextRate===1?"倍速":"".concat(this.nextRate,"倍").replace("3","0.5"),`
- `)+`')+"
",this.isMobile||(k.onmouseenter=function(e2){var s2=h.decoderState.state.play;if(!s2)return!1;console.log("鼠标移入",e2),h.setDecoderState({speed:!0}),document.getElementById("".concat(h.jSPlugin.id,"-speedSelect"))&&(document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).style.display="block")},k.onmouseleave=function(e2){var s2=h.decoderState.state.play;if(!s2)return!1;console.log("鼠标移出",e2),h.setDecoderState({speed:!1}),document.getElementById("".concat(h.jSPlugin.id,"-speedSelect"))&&(document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).style.display="none")}),k.onclick=function(e2){var s2=h.decoderState.state,J=s2.speed,H=s2.expend,R2=s2.play;if(!R2)return!1;if(!J&&h.isMobile&&(document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).className=H?"speed speed-select mobile expend":"speed speed-select mobile"),h.nextRate=1,e2.target.id)switch(e2.target.id){case"".concat(h.jSPlugin.id,"-select-speed1"):console.log("倍速1"),h.nextRate=1,h.jSPlugin.jSPlugin.JS_Speed(h.nextRate),h.changeRecSpeed(1),h.jSPlugin.speed=1,h.setDecoderState({speed:!J});break;case"".concat(h.jSPlugin.id,"-select-speed2"):console.log("倍速2"),h.nextRate=2,h.jSPlugin.jSPlugin.JS_Speed(h.nextRate),h.changeRecSpeed(2),h.jSPlugin.speed=2,h.setDecoderState({speed:!J});break;case"".concat(h.jSPlugin.id,"-select-speed4"):console.log("倍速4"),h.nextRate=4,h.jSPlugin.jSPlugin.JS_Speed(h.nextRate),h.changeRecSpeed(4),h.jSPlugin.speed=4,h.setDecoderState({speed:!J});break;case"".concat(h.jSPlugin.id,"-select-speed05"):console.log("倍速05"),h.nextRate=3,h.jSPlugin.jSPlugin.JS_Speed(h.nextRate),h.changeRecSpeed(.5),h.jSPlugin.speed=.5,h.setDecoderState({speed:!J});break;default:h.isMobile?h.setDecoderState({speed:!J}):h.setDecoderState({speed:!0});break}!h.isMobile&&e2.target.id==="".concat(h.jSPlugin.id,"-speed-text")?document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).style.display="block":document.getElementById("".concat(h.jSPlugin.id,"-speedSelect"))&&(document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).style.display=document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).style.display==="none"?"block":"none")},k;case"deviceName":return k.title="设备名称",k.id=d,k.domString="设备名称",k.onclick=function(){},k;case"deviceID":return k.title="设备序列号",k.id=d,k.domString="设备序列号",k.onclick=function(){},k;case"cloudRec":return k.title="云存储回放",k.id=d,k.domString=` - - - - - - - - `),k.onclick=function(){console.log("点击云回放"),h.setDecoderState({type:"cloud.rec",cloudRec:!0,rec:!1}),h.jSPlugin.changePlayUrl({type:"cloud.rec"},function(){console.log(h.jSPlugin);var e2=f("begin",h.jSPlugin.url)||new Date().Format("yyyyMMdd");h.Rec.renderRec("".concat(e2.slice(0,4),"-").concat(e2.slice(4,6),"-").concat(e2.slice(6,8)));var s2=h.decoderState.state.zoom;s2&&(h.setDecoderState({zoom:!1}),h.jSPlugin.Zoom.stopZoom())}),console.log(h.jSPlugin)},k;case"rec":return k.title="本地存储",k.id=d,k.domString=` - - - - - - - - - `),k.onclick=function(){console.log("点击本地回放"),h.setDecoderState({type:"rec",cloudRec:!1,rec:!0}),h.jSPlugin.changePlayUrl({type:"rec"},function(){console.log("---------本地回放"),console.log(h.jSPlugin);var e2=f("begin",h.jSPlugin.url)||new Date().Format("yyyyMMdd");h.Rec.renderRec("".concat(e2.slice(0,4),"-").concat(e2.slice(4,6),"-").concat(e2.slice(6,8)));var s2=h.decoderState.state.zoom;s2&&(h.setDecoderState({zoom:!1}),h.jSPlugin.Zoom.stopZoom())}),console.log(h.jSPlugin)},k;default:return k}}},{key:"changeRecSpeed",value:function(d){var h=this,y=function(k){if(console.log("setLiActive",k),!document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")))return!1;document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[0].className=document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[0].className.replace("active","default"),document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[1].className=document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[1].className.replace("active","default"),document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[2].className=document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[2].className.replace("active","default"),document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[3].className=document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[3].className.replace("active","default"),document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[k].className=document.getElementById("".concat(h.jSPlugin.id,"-speedSelect")).childNodes[k].className.replace("default","active")},w="1";switch(d){case 1:y(2),w="倍速";break;case 2:y(1),w="".concat(d,"倍");break;case 4:y(0),w="".concat(d,"倍");break;case .5:y(3),w="".concat(d,"倍");break;default:y(2),w="".concat(d,"倍");break}document.getElementById("".concat(this.jSPlugin.id,"-speed-text"))&&(document.getElementById("".concat(this.jSPlugin.id,"-speed-text")).innerHTML=w)}},{key:"initThemeData",value:function(){var d=this,h=this.themeData,y=h.header,w=h.footer,x=this.jSPlugin.id;if(this.header=G1.header,this.footer=G1.footer,this.isNeedRenderHeader=l3.findIndex(y.btnList,function(f2){return f2.isrender>0})>=0,this.isMobile&&(this.isNeedRenderHeader=l3.findIndex(y.btnList,function(f2){return f2.isrender>0&&f2.iconId==="deviceID"||f2.isrender>0&&f2.iconId==="deviceName"})>=0),this.isNeedRenderFooter=l3.findIndex(w.btnList,function(f2){return f2.isrender>0})>=0,this.isNeedRenderTimeLine=l3.findIndex(y.btnList,function(f2){return f2.iconId==="cloudRec"&&f2.isrender===1||f2.iconId==="rec"&&f2.isrender===1})>=0&&!this.jSPlugin.disabledTimeLine,["date-switch-container-wrap","rec-type-container-wrap","mobile-rec-wrap","mobile-ez-ptz-container"].forEach(function(f2,O2){document.getElementById(f2)&&document.getElementById(f2).parentElement.removeChild(document.getElementById(f2))}),this.isNeedRenderHeader)if(document.getElementById("".concat(this.jSPlugin.id,"-headControl")))document.getElementById("".concat(this.jSPlugin.id,"-headControl")).innerHTML="
");else{var k=document.createElement("div");k.setAttribute("id","".concat(this.jSPlugin.id,"-headControl")),k.setAttribute("class","header-controls"),k.innerHTML="
`);var a2={height:this.jSPlugin.width>H1?"48px":"32px","line-height":this.jSPlugin.width>H1?"48px":"32px",display:"flex","justify-content":"space-between",top:0,"z-index":1,background:"#000000",color:"#FFFFFF",width:"100%"};k.style=Re(a2),document.getElementById("".concat(x,"-wrap")).insertBefore(k,document.getElementById(x));var e2=setInterval(function(){window.EZUIKit[d.jSPlugin.id].state.EZUIKitPlayer.init&&clearInterval(e2)},50)}else document.getElementById("".concat(this.jSPlugin.id,"-headControl"))&&document.getElementById("".concat(this.jSPlugin.id,"-headControl")).parentElement.removeChild(document.getElementById("".concat(this.jSPlugin.id,"-headControl")));if(this.isNeedRenderFooter)if(document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")))document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container"))&&(document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).style.marginTop="-".concat(this.jSPlugin.width>H1?48:32,"px"),document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).innerHTML='`));else{var s2=document.createElement("div");s2.setAttribute("id","".concat(this.jSPlugin.id,"-ez-iframe-footer-container")),s2.setAttribute("class","ez-iframe-footer-container");var J={"min-height":this.jSPlugin.width>H1?"48px":"32px","max-height":this.jSPlugin.width>H1?"96px":"80px",position:"relative","margin-top":this.jSPlugin.width>H1?"-48px":"-32px",display:"flex","flex-wrap":"wrap","justify-content":"space-between","z-index":999,top:0,color:"#FFFFFF",width:"100%"};s2.style=Re(J),s2.innerHTML='`),g(s2,document.getElementById(x))}else document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container"))&&document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).parentElement.removeChild(document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")));if(this.isNeedRenderHeader&&document.getElementById("".concat(this.jSPlugin.id,"-headControl"))&&(document.getElementById("".concat(this.jSPlugin.id,"-headControl")).style.background=y.backgroundColor,document.getElementById("".concat(this.jSPlugin.id,"-headControl")).style.color=y.color,y.btnList.map(function(f2,O2){f2.isrender&&d.renderHeader(f2.iconId,f2.part)})),this.isNeedRenderFooter&&document.getElementById("".concat(this.jSPlugin.id,"-audioControls"))&&(document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.background=w.backgroundColor,document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.color=w.color,w.btnList.map(function(f2,O2){f2.isrender&&d.renderFooter(f2.iconId,f2.part)})),this.isNeedRenderTimeLine)if(this.isMobile)document.getElementById("".concat(this.jSPlugin.id,"-headControl-right"))&&(document.getElementById("".concat(this.jSPlugin.id,"-headControl-right")).style.display="none"),this.Rec=new O3(this.jSPlugin,this.changeRecSpeed,this.resetMobileZoomStatus);else{this.Rec?(this.Rec.unSyncTimeLine(),this.Rec.recInit()):(this.jSPlugin.decoderState=this.decoderState,this.jSPlugin.setDecoderState=this.setDecoderState,this.Rec=new i0(this.jSPlugin));var H=setInterval(function(){window.EZUIKit[d.jSPlugin.id].state.EZUIKitPlayer.init&&clearInterval(H)},50)}var R2=l3.findIndex(this.themeData.footer.btnList,function(f2){return f2.iconId==="pantile"&&f2.isrender===1})>=0&&!this.jSPlugin.disabledPTZ;R2&&(this.isMobile&&(this.MobilePtz=new U1(this.jSPlugin)),this.Ptz=new A1(this.jSPlugin));var p2=function(){var O2=d.decoderState.state,o2=O2.expend,T=O2.webExpend,j=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;j||(d.jSPlugin.jSPlugin.JS_Resize(d.jSPlugin.width,d.jSPlugin.height),o2&&d.setDecoderState({expend:!1}),T&&d.setDecoderState({webExpend:!1})),d.jSPlugin.Theme.Rec&&d.jSPlugin.Theme.Rec.recAutoSize()};if(["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(f2){window.addEventListener(f2,function(O2){return p2()})}),this.themeData.poster){this.jSPlugin.poster=this.themeData.poster;var c2=setInterval(function(){window.EZUIKit[d.jSPlugin.id].state.EZUIKitPlayer.init&&(clearInterval(c2),d.jSPlugin.setPoster(d.themeData.poster))},50)}this.inited=!0,this.getDeviceInfo()}},{key:"resetMobileZoomStatus",value:function(){if(this.isMobile){var d=document.getElementById("".concat(this.jSPlugin.id,"-zoom-container"));d&&d.style&&d.style.display!="none"&&(console.log("结束电子放大"),d.style.display="none"),this.jSPlugin.Zoom.resetZoom()}}},{key:"getDeviceInfo",value:function(){var d=this,h=function(w){w.code==200&&w.data&&(w.data.isEncrypt&&setTimeout(function(){d.pluginStatus.loadingClear(),d.pluginStatus.loadingSetText({text:"设备已加密",color:"red"})},1500),document.getElementById("".concat(d.jSPlugin.id,"-deviceName-content"))&&(document.getElementById("".concat(d.jSPlugin.id,"-deviceName-content")).style.maxWidth="100%",document.getElementById("".concat(d.jSPlugin.id,"-deviceName-content")).style.overflow="hidden",document.getElementById("".concat(d.jSPlugin.id,"-deviceName-content")).style.textOverflow="ellipsis",document.getElementById("".concat(d.jSPlugin.id,"-deviceName-content")).style.whiteSpace="nowrap",document.getElementById("".concat(d.jSPlugin.id,"-deviceName-content")).innerHTML=w.data.deviceName),document.getElementById("".concat(d.jSPlugin.id,"-deviceID-content"))&&(document.getElementById("".concat(d.jSPlugin.id,"-deviceID-content")).style.maxWidth="100%",document.getElementById("".concat(d.jSPlugin.id,"-deviceID-content")).style.overflow="hidden",document.getElementById("".concat(d.jSPlugin.id,"-deviceID-content")).style.textOverflow="ellipsis",document.getElementById("".concat(d.jSPlugin.id,"-deviceID-content")).style.whiteSpace="nowrap",document.getElementById("".concat(d.jSPlugin.id,"-deviceID-content")).innerHTML=y2(d.jSPlugin.url).deviceSerial))};S2(this.jSPlugin.env.domain+"/api/lapp/device/info","POST",{accessToken:this.jSPlugin.accessToken,deviceSerial:y2(this.jSPlugin.url).deviceSerial},"",h)}},{key:"editStart",value:function(d){var h=document.getElementById("".concat(this.jSPlugin.id,"-audioControls")),y=document.getElementById("".concat(this.jSPlugin.id,"-headControl"));y&&y.setAttribute("class","header-controls themeEditing"),h&&h.setAttribute("class","footer-controls themeEditing"),this.setDecoderState({isEditing:!0})}},{key:"editEnd",value:function(d){var h=document.getElementById("".concat(this.jSPlugin.id,"-audioControls")),y=document.getElementById("".concat(this.jSPlugin.id,"-headControl"));y&&y.setAttribute("class","header-controls"),h&&h.setAttribute("class","footer-controls"),this.setDecoderState({isEditing:!1})}},{key:"webExpend",value:function(){var d=this,h=this.decoderState.state;h.webExpend;var y=h.expend,w=h.play;if(!w)return!1;if(y)return console.log("正在全局全屏"),!1;console.log("执行网页全屏");var x=0,k=0,a2=z(document.getElementById("".concat(this.jSPlugin.id,"-wrap")));a2.then(function(e2){console.log("全屏promise",window.screen.width),document.getElementById("".concat(d.jSPlugin.id,"-canvas-container"))&&(x=parseInt(window.getComputedStyle(document.getElementById("".concat(d.jSPlugin.id,"-canvas-container"))).height,10)),document.getElementById("".concat(d.jSPlugin.id,"-headControl"))&&(k=parseInt(window.getComputedStyle(document.getElementById("".concat(d.jSPlugin.id,"-headControl"))).height,10)),console.log("this.jSPlugin.JS_Resiz",x,k,document.body.clientWidth),d.jSPlugin.jSPlugin.JS_Resize(window.screen.width,window.screen.height-x-k)}).catch(function(e2){console.log(e2)})}},{key:"expend",value:function(){var d=this,h=this.decoderState.state,y=h.webExpend;h.expend;var w=h.play;if(h.pantile,!w)return!1;if(y)return console.log("正在网站全屏"),!1;if(console.log("执行全局全屏"),this.isMobile){var x=parseInt(getComputedStyle(document.getElementById("".concat(this.jSPlugin.id,"-wrap"))).height,10)-parseInt(getComputedStyle(document.getElementById(this.jSPlugin.id)).height,10);F(document.getElementById("".concat(this.jSPlugin.id,"-wrap"))),setTimeout(function(){var a2=document.documentElement.clientWidth,e2=document.documentElement.clientHeight;document.getElementById("".concat(d.jSPlugin.id)).style["backface-visibility"]="hidden",d.jSPlugin.jSPlugin.JS_Resize(e2,a2-x)},100)}else{var k=z(document.getElementById("".concat(this.jSPlugin.id)));k.then(function(a2){d.jSPlugin.jSPlugin.JS_Resize(window.screen.width,window.screen.height)}).catch(function(a2){console.log(a2)})}}}]),N}();Date.prototype.Format=function(N){var _={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(N)&&(N=N.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var d in _)new RegExp("("+d+")").test(N)&&(N=N.replace(RegExp.$1,RegExp.$1.length==1?_[d]:("00"+_[d]).substr((""+_[d]).length)));return N};var d2=function(){function N(_,d){if(a(this,N),this.params=_,this.state={},this.jsPlugin=d,this.url="https://log.ys7.com/statistics.do?",_.env)switch(_.env){case"test12":this.url="https://test12dclog.ys7.com/statistics.do?";break;case"online":break;default:this.url=_.env;break}}return r(N,[{key:"uuid",value:function(){for(var d=[],h="0123456789abcdef",y=0;y<36;y++)d[y]=h.substr(Math.floor(Math.random()*16),1);d[14]="4",d[19]=h.substr(d[19]&3|8,1),d[8]=d[13]=d[18]=d[23]="-";var w=d.join("");return w}},{key:"dclog",value:function(d){var h=this.url,y=Object.assign({},{systemName:"open_website_monitor"},{bn:"ezuikit-js"},d,{un:d.url},{st:new Date().getTime(),h:window.location.pathname});Object.keys(y).forEach(function(x,k){var a2=y[x];typeof y[x]=="string"&&(a2=y[x].replace("%","%25")),typeof y[x]!="undefined"&&(h+="".concat(k===0?"":"&").concat(x,"=").concat(encodeURIComponent(a2)))});var w=new Image;w.src=h}},{key:"localInfoLog",value:function(d){var h=this.url,y=window.location.protocol+"//"+window.location.host,w={systemName:"open_netstream_localinfo",Ver:"v6.0.0",PlatAddr:y,ExterVer:"v6.0.0",OpId:this.uuid(),CltType:102,AppId:"",playurl:encodeURIComponent(this.jsPlugin.url),StartTime:new Date().Format("yyyy-MM-dd hh:mm:ss.S"),OS:navigator.platform};w=Object.assign(w,d),Object.keys(w).forEach(function(k,a2){var e2=w[k];typeof w[k]=="string"&&(e2=w[k].replace("%","%25")),typeof w[k]!="undefined"&&(h+="".concat(a2===0?"":"&").concat(k,"=").concat(encodeURIComponent(e2)))});var x=new Image;x.src=h}},{key:"playLog",value:function(d){var h=this.url,y=h,w={systemName:"open_netstream_play_main",playurl:encodeURIComponent(this.jsPlugin.url),Time:new Date().Format("yyyy-MM-dd hh:mm:ss.S"),Via:2,OpId:this.uuid()};w=Object.assign(w,d),Object.keys(w).forEach(function(k,a2){var e2=w[k];typeof w[k]=="string"&&(e2=w[k].replace("%","%25")),typeof w[k]!="undefined"&&(y+="".concat(a2===0?"":"&").concat(k,"=").concat(encodeURIComponent(e2)))});var x=new Image;x.src=y}}]),N}();(function(N,_){n(t)==="object"&&n(t.exports)==="object"?t.exports=N.document?_(N,!0):function(d){if(!d.document)throw new Error("EZUIPlayer requires a window with a document");return _(d)}:_(N)})(typeof window!="undefined"?window:void 0,function(N,_){var d;function h(J,H){for(var R2=document.getElementsByTagName("head")[0].getElementsByTagName("script"),p2=!1,c2=0;c20&&(Z2=H.controls.join(","),D2+="&controls="+Z2)),H.websocketParams&&(D2+="&websocketParams="+JSON.stringify(H.websocketParams)),D2;case"standard":return k+"/ezopen/h5/iframe?bSupporDoubleClickFull=0&url="+K.opt.url.replace("?","&")+"&autoplay="+K.opt.autoplay+"&audio="+K.opt.audio+"&accessToken="+H.accessToken+"&templete=1&id="+R2+"&decoderVersion="+K.opt.decoderVersion;case"security":return k+"/ezopen/h5/iframe_se?bSupporDoubleClickFull=0&url="+K.opt.url.replace("?","&")+"&autoplay="+K.opt.autoplay+"&audio="+K.opt.audio+"&accessToken="+H.accessToken+"&templete=0&id="+R2+"&decoderVersion="+K.opt.decoderVersion;case"theme":return D2=k+"/jssdk/theme.html?url=".concat(H.url,"&accessToken=").concat(H.accessToken,"&id=").concat(R2,"&isMobile=").concat(H.isMobile),typeof H.isMobile!="undefined"&&(D2+="&isMobile="+H.isMobile),typeof H.autoplay!="undefined"&&(D2+="&autoplay="+H.autoplay),typeof H.domain!="undefined"&&H.domain=="https://test12open.ys7.com"&&(D2+="&env=test12"),typeof H.env!="undefined"&&typeof H.env.domain!="undefined"&&H.env.domain=="https://test12open.ys7.com"&&(D2+="&env=test12"),typeof H.header!="undefined"&&(D2+="&header="+H.header),D2;default:return k+"/ezopen/h5/iframe?bSupporDoubleClickFull=0&url="+K.opt.url.replace("?","&")+"&autoplay="+K.opt.autoplay+"&audio="+K.opt.audio+"&accessToken="+H.accessToken+"&templete=0&id="+R2+"&decoderVersion="+K.opt.decoderVersion}}c2.src=f2();var O2=document.getElementById(R2).offsetHeight,o2=document.getElementById(R2).offsetWidth;H.height&&(O2=parseInt(H.height),/\%$/.test(H.height)&&(o2=document.getElementById(R2).offsetWidth*(parseInt(H.height)/100))),H.width&&(o2=parseInt(H.width),/\%$/.test(H.width)&&(o2=document.getElementById(R2).offsetWidth*(parseInt(H.width)/100))),c2.width=o2,c2.height=O2,c2.id="EZUIKitPlayer-"+R2,c2.setAttribute("allowfullscreen",!0),c2.setAttribute("allow","autoplay"),c2.setAttribute("frameborder",0),p2.appendChild(c2);var T=K.opt.filePath+"/js/jquery.js",j="https://open.ys7.com/assets/layer/layer.js";h(T,function(){h(j,function(){if(P1().headerContainer){var D2=document.createElement("div");D2.setAttribute("class","panel-top");var Z2=document.createElement("div");if(Z2.setAttribute("class","contros"),D2.appendChild(Z2),p2.insertBefore(D2,c2),P1().capturePictureModule){var q2=document.createElement("span");q2.innerHTML=' ',q2.onclick=function(){K.capturePicture()},Z2.appendChild(q2)}if(console.log("matchHeaderOpt().saveModule",P1().saveModule),P1().saveModule){var f3=document.createElement("span");f3.innerHTML=' ',f3.onclick=function(){K.startSave(),document.getElementById("startSave").setAttribute("class","icon hide"),document.getElementById("stopSave").setAttribute("class","icon")},Z2.appendChild(f3);var P3=document.createElement("span");P3.innerHTML=' ',P3.onclick=function(){K.stopSave(),document.getElementById("stopSave").setAttribute("class","icon hide"),document.getElementById("startSave").setAttribute("class","icon")},Z2.appendChild(P3)}if(P1().zoomModule){var j3=document.createElement("span");j3.innerHTML=' ',j3.onclick=function(){K.enableZoom(),document.getElementById("enableZoom").setAttribute("class","icon hide"),document.getElementById("closeZoom").setAttribute("class","icon")},Z2.appendChild(j3);var E3=document.createElement("span");E3.innerHTML=' ',E3.onclick=function(){K.closeZoom(),document.getElementById("closeZoom").setAttribute("class","icon hide"),document.getElementById("enableZoom").setAttribute("class","icon")},Z2.appendChild(E3)}}function C1(){var i1={footerContainer:!1,talkModule:!1,broadcastModule:!1,hdModule:!1,fullScreenModule:!1},G3=K.opt.template;switch(G3){case"simple":if(H.footer&&H.footer instanceof Array){var B3=H.footer;i1={footerContainer:!0,talkModule:B3.indexOf("talk")!==-1,broadcastModule:B3.indexOf("broadcast")!==-1,hdModule:B3.indexOf("hd")!==-1,fullScreenModule:B3.indexOf("fullScreen")!==-1}}break;case"standard":if(H.footer&&H.footer instanceof Array){var B3=H.footer;i1={footerContainer:!0,talkModule:B3.indexOf("talk")!==-1,broadcastModule:B3.indexOf("broadcast")!==-1,hdModule:B3.indexOf("hd")!==-1,fullScreenModule:B3.indexOf("fullScreen")!==-1}}break;case"security":break;case"voice":i1={footerContainer:!0,talkModule:!0,broadcastModule:!0,hdModule:!0,fullScreenModule:!0};break}return i1}function P1(){var i1={headerContainer:!1,capturePictureModule:!1,saveModule:!1,zoomModule:!1},G3=K.opt.template;switch(G3){case"simple":if(H.header&&H.header instanceof Array){var B3=H.header;i1={headerContainer:!0,capturePictureModule:B3.indexOf("capturePicture")!==-1,saveModule:B3.indexOf("save")!==-1,zoomModule:B3.indexOf("zoom")!==-1}}break;case"standard":break;case"security":break;case"voice":i1={headerContainer:!0,capturePictureModule:!0,saveModule:!0,zoomModule:!0};break}return i1}if(C1().footerContainer||K.opt.plugin.indexOf("talk")!==-1){var x1=K.opt.filePath+"/npm/css/recoder.css",I1=K.opt.filePath+"/npm/js/recoder.js",$1=K.opt.filePath+"/recorder.js";if(y(x1,function(){}),h(I1,function(){h($1,function(){})}),K.opt.plugin.indexOf("talk")!==-1||C1().talkModule){var W1=function(G3){if(console.log("data",G3),G3.code==200){var B3=G3.data;if(B3){var y1=B3.rtcUrl;y1.indexOf("ws")===-1&&(y1=y1.replace("https","wss").replace("rtcgw","rtcgw-ws")),K.opt.rtcUrl=y1,K.opt.ttsUrl="tts://"+B3.ttsUrl;var k1="talk://"+K.opt.deviceSerial+":0:"+K.opt.channelNo+":cas.ys7.com:6500";if(K.opt.talkLink=K.opt.ttsUrl+"/"+k1,K.opt.stream=B3.stream,console.log("_this.opt",K.opt),!K.opt.isReliesReady){var Z=K.opt.filePath+"/npm/js/adapeter.js",_2=K.opt.filePath+"/npm/js/janus.js",G2=K.opt.filePath+"/npm/js/tts.js";console.log("加载jquery.js"),h(Z,function(){console.log("加载adapeter.js"),h(_2,function(){console.log("加载janus.js"),h(G2,function(){console.log("加载tts.js"),K.opt.isReliesReady=!0})})},function(){return!!N.adapter})}if(!document.getElementById("audioleft")){var z2=document.createElement("div");z2.style.display="none",z2.id="audioleft",document.body.appendChild(z2)}if(!document.getElementById("audioright")){var h2=document.createElement("div");h2.style.display="none",h2.id="audioright",document.body.appendChild(h2)}}}x.opt=K.opt,N.EZUIKit&&(N.EZUIKit.opt=K.opt)};w(K.opt.apiDomain,"POST",{accessToken:K.opt.accessToken,deviceSerial:K.opt.deviceSerial,channelNo:K.opt.channelNo},"",W1)}if(C1().footerContainer){var E0=function(G3,B3){if(clearInterval(x.state.countTimer),G3==="add"){var y1=B3;x.state.countTimer=setInterval(function(){++y1,document.getElementById("time-area").innerHTML=k1(y1)},1e3)}else if(G3==="sub"){var y1=B3;x.state.countTimer=setInterval(function(){y1>0?(y1--,document.getElementById("time-area").innerHTML=k1(y1)):(clearInterval(x.state.countTimer),x.state.countTimer=void 0,console.log("倒计时结束,开启声音"))},1e3)}else G3==="destory"&&(clearInterval(x.state.countTimer),x.state.countTimer=void 0,document.getElementById("time-area").innerHTML="00:00");function k1(Z){var _2=parseInt(Z),G2=0,z2=0,h2="00",o3="00",J2="00";return _2>59&&(G2=parseInt(_2/60),_2=parseInt(_2%60),G2>59&&(z2=parseInt(G2/60),G2=parseInt(G2%60))),h2=parseInt(_2)>9?parseInt(_2):"0"+parseInt(_2),o3=parseInt(G2)>9?parseInt(G2):"0"+parseInt(G2),J2=parseInt(z2)>9?parseInt(z2):"0"+parseInt(z2),z2>0?J2+":"+o3+":"+h2:G2>0?o3+":"+h2:"00:"+h2}},L2=document.createElement("div");if(L2.setAttribute("class","audio-controls"),p2.appendChild(L2),C1().hdModule||C1().fullScreenModule){var v3=document.createElement("div");if(v3.setAttribute("class","contros"),L2.appendChild(v3),C1().hdModule){var A3=document.createElement("span");A3.setAttribute("id","video-hd"),A3.innerHTML=K.opt.url.indexOf(".hd")===-1?"标清":"高清",A3.onclick=function(){if(K.opt.videoLoading)return layer.msg("视频加载中,请稍后"),!1;var i1=K.stop();K.opt.videoLoading=!0,i1.then(function(G3){K.opt.videoLoading=!1,K.opt.url.indexOf(".hd")===-1?(K.opt.url=K.opt.url.replace(".live",".hd.live"),A3.innerHTML=K.opt.url.indexOf(".hd")===-1?"标清":"高清"):(K.opt.url=K.opt.url.replace(".hd.live",".live"),A3.innerHTML=K.opt.url.indexOf(".hd")===-1?"标清":"高清"),K.play(K.opt.url)}).catch(function(G3){console.log("error",G3)})},v3.appendChild(A3)}if(C1().fullScreenModule){var q3=document.createElement("span");q3.setAttribute("class","hide"),q3.setAttribute("id","ezuikit-open-sound"),q3.setAttribute("title","打开声音"),q3.setAttribute("style","vertical-align: top;"),q3.innerHTML='',q3.onclick=function(){K.openSound(0),q3.setAttribute("class","hide"),T1.setAttribute("class","")};var T1=document.createElement("span");q3.setAttribute("id","ezuikit-close-sound"),T1.setAttribute("class","hide"),T1.setAttribute("title","关闭声音"),T1.setAttribute("style","vertical-align: top;"),T1.innerHTML='',T1.onclick=function(){K.closeSound(0),q3.setAttribute("class",""),T1.setAttribute("class","hide")},v3.appendChild(q3),v3.appendChild(T1)}if(K.opt.audio==1?T1.setAttribute("class",""):(q3.setAttribute("class",""),K.closeSound(0)),C1().fullScreenModule){var l0=document.createElement("span");l0.setAttribute("title","全屏"),l0.setAttribute("style","vertical-align: top;"),l0.innerHTML=' ',l0.onclick=function(){K.fullScreen()},v3.appendChild(l0)}}if(C1().talkModule){var X1=document.createElement("div"),h0=document.createElement("div");X1.setAttribute("class","ptp-talk off"),X1.innerHTML=' 开启对讲',X1.onclick=function(){if(console.log("EZUIKit.state.countTimer",x.state.countTimer),x.state.countTimer)return N.layer.msg("语音设备正忙,请稍后重试"),!1;E0("add",0),console.log("开始对讲,关闭声音"),K.closeSound(0),console.log(K.opt),K.startTalk(),this.setAttribute("class","ptp-talk off hide"),h0.setAttribute("class","ptp-talk on")},h0.setAttribute("class","ptp-talk on hide"),h0.innerHTML=' 关闭对讲',h0.onclick=function(){console.log(K.opt),K.stopTalk(),E0("destory",0),K.openSound(0),this.setAttribute("class","ptp-talk on hide"),X1.setAttribute("class","ptp-talk off")},L2.appendChild(X1),L2.appendChild(h0)}if(C1().broadcastModule){var y0=function i1(G3){function B3(y1){console.log("data",y1),y1.code==200&&(je(y1.data,5),x.state.page=y1.page.page,G3==0&&y1.data.length==0&&!x.state.fetchDefaultList&&(x.state.fetchDefaultList=!0,i1(0)))}w(k+"/api/lapp/voice/query","POST",{accessToken:K.opt.accessToken,pageStart:G3,pageSize:x.state.pageSize,default:x.state.fetchDefaultList?"true":"false"},"",B3)},je=function(G3){if(console.log("renderVoliceList",G3),G3&&G3.length>0){for(var B3=0;B3"+(G3[B3].voiceName.length>10?G3[B3].voiceName.substr(0,10)+"...":G3[B3].voiceName)+"",document.getElementsByClassName("voice-list-ul")[0].append(y1),y1.onclick=function(k1){console.log("点击元素",k1.target,k1.target.dataset.url);var Z=k1.target.dataset.url,_2=k1.target.dataset.time;Ve(Z,_2)}}G3.length===x.state.pageSize?document.getElementById("voice-list-end").innerHTML="向下滚动加载更多":document.getElementById("voice-list-end").innerHTML="没有更多数据了"}},Ve=function(G3,B3){console.log("播放语音",G3,B3);function y1(k1){console.log("data.data",k1.data),k1.code==200?E0("sub",parseInt(B3)):k1.code=="10001"?N.layer.msg("未找到当前语音"):N.layer.msg(k1.msg||"发送失败,请稍后再试")}w(k+"/api/lapp/voice/send","POST",{accessToken:K.opt.accessToken,deviceSerial:K.opt.deviceSerial,channelNo:K.opt.channelNo,fileUrl:G3},"",y1)},se=document.createElement("div"),Le=document.createElement("div");se.setAttribute("class","broadcast off"),Le.setAttribute("class","broadcast on hide"),se.innerHTML=' 语音播报',se.onclick=function(){this.setAttribute("class","broadcast off hide"),Le.setAttribute("class","broadcast on")},Le.innerHTML='
自定义语音
语音播报',Le.onclick=function(){this.setAttribute("class","broadcast on hide"),se.setAttribute("class","broadcast off")},L2.appendChild(se),L2.appendChild(Le),document.getElementById("voice-custom").onclick=function(){console.log("显示自定义语音"),g1.setAttribute("class","speak off")},y0(0);var g1=document.createElement("div"),D=document.createElement("div");g1.setAttribute("class","speak off hide"),D.setAttribute("class","speak on hide"),g1.setAttribute("id","startSpeak"),D.setAttribute("id","stopSpeak"),g1.innerHTML=' 按住说话',D.innerHTML=' 松开发送',L2.appendChild(g1),L2.appendChild(D),document.getElementById("voice-list").onscroll=function(i1){var G3=this.scrollHeight;console.log("sum",G3,this.scrollTop,document.getElementById("voice-list").clientHeight),G3<=this.scrollTop+this.clientHeight&&(console.log("拖动到底,执行加载",x.state.page),y0(++x.state.page))};var u2=document.createElement("div");u2.setAttribute("class","time-area"),u2.setAttribute("id","time-area"),u2.innerHTML="00:00",L2.appendChild(u2);var K2;document.getElementById("startSpeak").onmousedown=function(){if(x.state.countTimer)return N.layer.msg("语音设备正忙,请稍后重试"),!1;console.log("按住说话"),g1.setAttribute("class","speak off hide"),D.setAttribute("class","speak on"),y1(),E0("add",0),setTimeout(function(){x.state.recodeTime=0,B3()},1e3),x.state.recodeTimer&&clearInterval(x.state.recodeTimer),x.state.recodeTimer=setInterval(function(){x.state.recodeTime>=59?(K.stopTalk(),E0("destory",0),this.setAttribute("class","ptp-talk on hide"),X1.setAttribute("class","ptp-talk off"),N.layer.msg("不超过1分钟")):x.state.recodeTime=x.state.recodeTime+1},1e3);var i1;function G3(k1){var Z=i1.createMediaStreamSource(k1);K2=new N.Recorder(Z)}function B3(){K2&&K2.record()}function y1(){console.log("run init");try{N.AudioContext=N.AudioContext||N.webkitAudioContext,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia,N.URL=N.URL||N.webkitURL,i1=new AudioContext,console.log("Audio context set up."),console.log("navigator.getUserMedia "+(navigator.getUserMedia?"available.":"not present!"))}catch(k1){console.log("err",k1),N.layer.msg("No web audio support in this browser!")}navigator.getUserMedia({audio:!0},G3,function(k1){console.log("No live audio input: "+k1)})}},document.getElementById("stopSpeak").onmouseup=function(){console.log("松开发送"),D.setAttribute("class","speak on hide"),i1();function i1(){if(E0("destory",0),x.state.recodeTime<1)return N.layer.msg("说话时间过短"),clearInterval(x.state.recodeTimer),!1;clearInterval(x.state.recodeTimer),G3()}function G3(){try{K2&&K2.stop(),K2&&K2.exportWAV(function(B3){if(console.log("wav_file",B3),B3.size<1e3)return N.layer.msg("录音失败,请重试"),x.state.recodeTime=0,!1;E0("sub",x.state.recodeTime+2);var y1=new FormData;y1.append("voiceFile",B3),y1.append("accessToken",K.opt.accessToken),y1.append("deviceSerial",K.opt.deviceSerial),y1.append("channelNo",K.opt.channelNo);function k1(_2){console.log("data.data",_2.data),_2.code==200?E0("sub",x.state.recodeTime+2):_2.code=="10001"?N.layer.msg("未找到当前语音"):N.layer.msg(_2.msg||"发送失败,请稍后再试")}function Z(_2){console.log("err",_2)}w(k+"/api/lapp/voice/sendonce","POST",{voiceFile:B3,accessToken:K.opt.accessToken,deviceSerial:K.opt.deviceSerial,channelNo:K.opt.channelNo},"",k1,Z)}),K2&&K2.clear()}catch(B3){console.log(B3)}}}}}}})});var K=this;N.addEventListener("message",function(D2){D2.origin;var Z2=K.opt.id;if(D2.data.type)switch(D2.data.type){case"openSound":Z2==D2.data.id&&H.openSoundCallBack&&H.openSoundCallBack(D2.data);break;case"closeSound":Z2==D2.data.id&&H.closeSoundCallBack&&H.closeSoundCallBack(D2.data);break;case"capturePicture":Z2==D2.data.id&&H.capturePictureCallBack&&H.capturePictureCallBack(D2.data);break;case"startSave":Z2==D2.data.id&&H.startSaveCallBack&&H.startSaveCallBack(D2.data);break;case"stopSave":Z2==D2.data.id&&H.stopSaveCallBack&&H.stopSaveCallBack(D2.data);break;case"fullScreen":Z2==D2.data.id&&H.fullScreenCallBack&&H.fullScreenCallBack(D2.data);break;case"getOSDTime":Z2==D2.data.id&&H.getOSDTimeCallBack&&H.getOSDTimeCallBack(D2.data);break;case"handleSuccess":Z2==D2.data.id&&H.handleSuccess&&H.handleSuccess(D2.data);break;case"handleError":Z2==D2.data.id&&H.handleError&&H.handleError(D2.data);break;case"dblclick":Z2==D2.data.id&&K.opt.bSupporDoubleClickFull&&(K.opt.fullScreenStatus===0?K.fullScreen():K.cancelFullScreen());break;case"startTalk":K.startTalk(),K.closeSound();break;case"stopTalk":K.stopTalk(),K.openSound();break;case"clickEventHandle":console.log("event.data",D2.data),H.clickEventHandle&&H.clickEventHandle(D2.data);break;case"removeEventHandle":H.removeEventHandle&&H.removeEventHandle(D2.data);break;case"esc":H.clickEventHandle&&H.clickEventHandle(D2.data);break;case"iframeFullScreen":if(Z2==D2.data.id){var q2=function(P3){var j3=P3.requestFullScreen||P3.webkitRequestFullScreen||P3.mozRequestFullScreen||P3.msRequestFullScreen;if(j3)j3.call(P3);else if(typeof N.ActiveXObject!="undefined"){var E3=new ActiveXObject("WScript.Shell");E3!==null&&E3.SendKeys("{F11}")}};q2(document.getElementById("EZUIKitPlayer-"+D2.data.id))}break}});function E2(D2){K.opt.fullScreenStatus=D2?1:0,H.fullScreenChangeCallBack&&H.fullScreenChangeCallBack({data:D2,id:K.opt.id})}typeof document.fullScreen!="undefined"?document.addEventListener("fullscreenchange",function(){var D2=document.fullscreen||!1;E2(D2)}):typeof document.webkitIsFullScreen!="undefined"?document.addEventListener("webkitfullscreenchange",function(){var D2=document.webkitIsFullScreen||!1;E2(D2)}):typeof document.mozFullScreen!="undefined"&&document.addEventListener("mozfullscreenchange",function(){var D2=document.mozFullScreen||!1;E2(D2)})};e2.prototype.play=function(J){var H="EZUIKitPlayer-"+this.opt.id,R2=document.getElementById(H).contentWindow;n(J)==="object"&&J.url&&(this.opt.url=J.url),n(J)==="object"&&J.accessToken&&(this.opt.accessToken=J.accessToken),typeof J=="string"&&(this.opt.url=J),R2.postMessage({action:"play",accessToken:this.opt.accessToken,url:this.opt.url},k+"/ezopen/h5/iframe");var p2=this;this.opt.videoLoading=!0;var c2=new Promise(function(f2,O2){N.addEventListener("message",function(o2){var T=p2.opt.id;T==o2.data.id&&o2.data.type==="handleSuccess"&&(setTimeout(function(){p2.opt.videoLoading=!1},1e3),f2(o2.data))})});return c2},e2.prototype.stop=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("stop",k+"/ezopen/h5/iframe");var R2=this,p2=new Promise(function(c2,f2){N.addEventListener("message",function(O2){var o2=R2.opt.id;o2==O2.data.id&&O2.data.type==="stop"&&c2(O2.data)})});return p2},e2.prototype.openSound=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("openSound",k+"/ezopen/h5/iframe");var R2=this,p2=new Promise(function(c2,f2){N.addEventListener("message",function(O2){var o2=R2.opt.id;o2==O2.data.id&&O2.data.type==="openSound"&&c2(O2.data)})});return p2},e2.prototype.closeSound=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("closeSound",k+"/ezopen/h5/iframe");var R2=this,p2=new Promise(function(c2,f2){N.addEventListener("message",function(O2){var o2=R2.opt.id;o2==O2.data.id&&O2.data.type==="closeSound"&&c2(O2.data)})});return p2},e2.prototype.startSave=function(J){var H="EZUIKitPlayer-"+this.opt.id,R2=document.getElementById(H).contentWindow;R2.postMessage({action:"startSave",fileName:J||"default"},k+"/ezopen/h5/iframe");var p2=this,c2=new Promise(function(f2,O2){N.addEventListener("message",function(o2){var T=p2.opt.id;T==o2.data.id&&o2.data.type==="startSave"&&f2(o2.data)})});return c2},e2.prototype.stopSave=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("stopSave",k+"/ezopen/h5/iframe");var R2=this,p2=new Promise(function(c2,f2){N.addEventListener("message",function(O2){var o2=R2.opt.id;o2==O2.data.id&&O2.data.type==="stopSave"&&c2(O2.data)})});return p2},e2.prototype.fullScreen=function(){if(this.opt.fullScreenStatus===1)return!1;var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;if(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)){var R2=document.documentElement.clientWidth,p2=document.documentElement.clientHeight,c2=document.body;c2=document.getElementById(J);var f2="";f2+="width:"+p2+"px;",f2+="height:"+R2+"px;",f2+="-webkit-transform: rotate(90deg); transform: rotate(90deg);",f2+="-webkit-transform-origin: "+R2/2+"px "+R2/2+"px;",f2+="transform-origin: "+R2/2+"px "+R2/2+"px;",f2+="position: fixed;top: 0;left: 0;z-index:10",c2.style.cssText=f2,setTimeout(function(){H.postMessage("autoResize",k+"/ezopen/h5/iframe")},500)}else{var O2=function(T){var j=T.requestFullScreen||T.webkitRequestFullScreen||T.mozRequestFullScreen||T.msRequestFullScreen;if(j)j.call(T);else if(typeof N.ActiveXObject!="undefined"){var K=new ActiveXObject("WScript.Shell");K!==null&&K.SendKeys("{F11}")}};O2(document.getElementById(J))}this.params.fullScreenCallBack&&this.params.fullScreenCallBack(this.opt.id),this.opt.fullScreenStatus=1},e2.prototype.cancelFullScreen=function(){if(this.opt.fullScreenStatus===0)return!1;var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;if(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)){var R2=document.getElementById(J).width,p2=document.getElementById(J).height,c2=document.body;c2=document.getElementById(J);var f2="";f2+="width:"+R2+"px;",f2+="height:"+p2+"px;",f2+="-webkit-transform: none; transform: none;",f2+="-webkit-transform-origin: 0 0;",f2+="transform-origin: 0 0;",c2.style.cssText=f2,setTimeout(function(){H.postMessage("autoResize",k+"/ezopen/h5/iframe")},500);var O2=J+"cancel-full-screen",o2=document.getElementById(O2);o2&&document.body.removeChild(o2)}else document.exitFullscreen?document.exitFullscreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.mozCancelFullScreen&&document.mozCancelFullScreen();this.params.cancelFullScreenCallBack&&this.params.cancelFullScreenCallBack(this.opt.id),this.opt.fullScreenStatus=0},e2.prototype.capturePicture=function(J,H){var R2="EZUIKitPlayer-"+this.opt.id,p2=document.getElementById(R2).contentWindow;p2.postMessage({action:"capturePicture",fileName:J||"default",isUndownload:H},k+"/ezopen/h5/iframe");var c2=this,f2=new Promise(function(O2,o2){N.addEventListener("message",function(T){var j=c2.opt.id;j==T.data.id&&T.data.type==="capturePicture"&&O2(T.data)})});return f2},e2.prototype.enableZoom=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("enableZoom",k+"/ezopen/h5/iframe")},e2.prototype.closeZoom=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("closeZoom",k+"/ezopen/h5/iframe")},e2.prototype.getOSDTime=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("getOSDTime",k+"/ezopen/h5/iframe");var R2=this,p2=new Promise(function(c2,f2){N.addEventListener("message",function(O2){var o2=R2.opt.id;o2==O2.data.id&&O2.data.type==="getOSDTime"&&c2(O2.data)})});return p2},e2.prototype.autoResize=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("autoResize",k+"/ezopen/h5/iframe")},e2.prototype.reSize=function(J,H){var R2="EZUIKitPlayer-"+this.opt.id,p2=document.getElementById(R2).contentWindow,c2=document.getElementById(this.opt.id);c2.style.width=J+"px",c2.style.height=H+"px",document.getElementById(this.opt.id).style.width=J+"px",document.getElementById(this.opt.id).style.height=H+"px";var f2=document.getElementById(R2);f2.setAttribute("width",J),f2.setAttribute("height",H),f2.style.width=J+"px",f2.style.height=H+"px",setTimeout(function(){p2.postMessage({action:"autoResize"},k+"/ezopen/h5/iframe")},500)},e2.prototype.startTalk=function(){console.log("执行开始对讲"),console.log(this.opt);var J=this;x.opt=this.opt,N.EZUIKit&&(N.EZUIKit.opt=this.opt);var H=function(p2){if(p2.code==200){var c2=p2.data;if(c2){var f2=c2.rtcUrl;f2.indexOf("ws")===-1&&(f2=f2.replace("https","wss").replace("rtcgw","rtcgw-ws")),J.opt.rtcUrl=f2,J.opt.ttsUrl="tts://"+c2.ttsUrl;var O2="talk://"+J.opt.deviceSerial+":0:"+J.opt.channelNo+":cas.ys7.com:6500";J.opt.talkLink=J.opt.ttsUrl+"/"+O2,J.opt.stream=c2.stream,N.startTalk()}}};w(J.opt.apiDomain,"POST",{accessToken:J.opt.accessToken,deviceSerial:J.opt.deviceSerial,channelNo:J.opt.channelNo},"",H)},e2.prototype.stopTalk=function(){console.log("执行结束对讲"),N.stopTalk()},e2.prototype.edit=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage("edit",k+"/ezopen/h5/iframe")},e2.prototype.btnReRender=function(J){var H="EZUIKitPlayer-"+this.opt.id,R2=document.getElementById(H).contentWindow;R2.postMessage({action:"btnReRender",data:J},k+"/ezopen/h5/iframe")},e2.prototype.changePlayUrl=function(J){J.deviceSerial&&(this.opt.deviceSerial=J.deviceSerial),J.channelNo&&(this.opt.channelNo=J.channelNo),J.accessToken&&(this.opt.accessToken=J.accessToken);var H="EZUIKitPlayer-"+this.opt.id,R2=document.getElementById(H).contentWindow;R2.postMessage({action:"changePlayUrl",data:J},k+"/ezopen/h5/iframe")},e2.prototype.fetchThemeData=function(){var J="EZUIKitPlayer-"+this.opt.id,H=document.getElementById(J).contentWindow;H.postMessage({action:"fetchThemeData"},k+"/ezopen/h5/iframe")},e2.prototype.setThemeData=function(J,H,R2){var p2="EZUIKitPlayer-"+this.opt.id,c2=document.getElementById(p2).contentWindow;c2.postMessage({action:"setThemeData",data:{accessToken:J,header:H,footer:R2}},k+"/ezopen/h5/iframe")},x.EZUIKitPlayer=e2,N.EZUIKitV3=x;var s2=x;return s2});var $2=EZUIKitV3,z3=function(_){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},y=void 0,w=void 0,x=void 0,k=[];return function(){var s2=d3(d),J=new Date().getTime(),H=!y||J-y>s2;y=J;for(var R2=arguments.length,p2=Array(R2),c2=0;c2>>0)+"_",T1=0;return v3}),w("Symbol.iterator",function(L2){if(L2)return L2;L2=Symbol("Symbol.iterator");for(var v3="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),A3=0;A30&&y>0){var x=_.left/h,k=_.top/y,a2=_.right/h,e2=_.bottom/y;w=new Float32Array([a2,k,x,k,a2,e2,x,e2])}else w=new Float32Array([1,0,0,0,1,1,0,1]);var s2=this.texturePosBuffer;d.bindBuffer(d.ARRAY_BUFFER,s2),d.bufferSubData(d.ARRAY_BUFFER,0,w),d.bindBuffer(d.ARRAY_BUFFER,null)},N.prototype.SR_Destroy=function(){var _=this.contextGL,d=this.YUVProgram;_.deleteProgram(d);var h=this.vertexPosBuffer,y=this.texturePosBuffer;_.deleteBuffer(h),_.deleteBuffer(y);var w=this.yTextureRef,x=this.uTextureRef,k=this.vTextureRef;_.deleteTexture(w),_.deleteTexture(x),_.deleteTexture(k)},N});var w1="https://open.ys7.com",f0="".concat(w1,"/console/ezuikit_static/v66/v2"),g0="".concat(w1,"/console/ezuikit_static/v66/v1"),B0=function(_,d){var h=["theme","standard"],y=["pcLive","pcRec","mobileLive","mobileRec","noData","security","voice","simple"];if(typeof _=="undefined")return d.themeData?{templateType:"themeData",templateId:"themeData"}:{templateType:"local",templateId:""};if(typeof _=="string"){if(_.length===32)return{templateType:"remote",templateId:_};if(h.indexOf(_)!==-1)return _==="simple"&&typeof d.header=="undefined"&&typeof d.footer=="undefined"?{templateType:"local",templateId:""}:{templateType:"iframe",templateId:_};if(y.indexOf(_)!==-1)return{templateType:"local",templateId:_}}},p0=function(){var _=window.navigator.userAgent.toLowerCase(),d={sa:/version.*safari/.test(_),ch:/chrome/.test(_),ff:/gecko/.test(_)&&!/webkit/.test(_)},h=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);if(h)return!1;if(d.ch){var y=function(){for(var x=window.navigator.userAgent.split(" "),k="",a2=0;a291&&!!window.SharedArrayBuffer}return!1},ve=function(){function N(_){var d=this;a(this,N),this.isStoping=!1;var h=_.autoplay,y=h===void 0?!0:h;if((_.template||_.themeData)&&(y=!1),this.params=_,this.autoplay=y,window.EZUIKit[_.id]={state:{EZUIKitPlayer:{init:window.EZUIKit[_.id]&&window.EZUIKit[_.id].state&&window.EZUIKit[_.id].state.EZUIKitPlayer.init||!1,themeInit:window.EZUIKit[_.id]&&window.EZUIKit[_.id].state&&window.EZUIKit[_.id].state.EZUIKitPlayer.themeInit||!1,talkInit:window.EZUIKit[_.id]&&window.EZUIKit[_.id].state&&window.EZUIKit[_.id].state.EZUIKitPlayer.talkInit||!1}}},B0(this.params.template,_).templateType!=="iframe"){this.Monitor=new d2({env:typeof _.disableMonitor!="undefined"&&_.disableMonitor?"test12":"online"},this),this.id=_.id,this.width=_.width,this.height=_.height,this.url=_.url,this.accessToken=_.accessToken,this.themeId=B0(_.template,_).templateId,this.id=_.id,this.audio=!0,this.poster=_.poster,this.speed=1,this.disabledTimeLine=!1,this.disabledPTZ=!1,this.enableSharedArrayBufferGuide=!1,this.capacity={},this.playTimer=null,this.env={domain:"https://open.ys7.com"};var w=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);this.isMobile=w,document.getElementById("".concat(this.id,"-wrap"))&&(document.getElementById("".concat(this.id,"-wrap")).innerHTML="",document.getElementById("".concat(this.id,"-wrap")).id=this.id),this.staticPath=p0()?f0:g0,typeof _.staticPath=="string"&&(_.staticPath.startsWith("http")?this.staticPath=_.staticPath:this.staticPath=window.location.protocol+"//"+window.location.host+_.staticPath,p0()?this.staticPath+="/v2":this.staticPath+="/v1"),typeof _.audio!="undefined"&&(this.audio=_.audio),typeof _.env!="undefined"&&(this.env=Object.assign(this.env,_.env)),typeof _.isMobile!="undefined"&&(this.isMobile=_.isMobile),typeof _.disabledTimeLine!="undefined"&&(this.disabledTimeLine=_.disabledTimeLine),typeof _.disabledPTZ!="undefined"&&(this.disabledPTZ=_.disabledPTZ),typeof _.enableSharedArrayBufferGuide!="undefined"&&(this.enableSharedArrayBufferGuide=_.enableSharedArrayBufferGuide);var x="".concat(this.staticPath,"/js/jsPluginV1-1.0.0.min.js"),k=function(){if(window.addPluginUrlIng=!0,p0())console.log("启用多线程解析视频"),x="".concat(d.staticPath,"/js/jsPluginV2-2.0.1.min.js");else{var s2=function(){for(var f2=navigator.userAgent.split(" "),O2="",o2=0;o20&&(x=e2.width),!d.height&&e2.height>0&&(a2=e2.height)}if(!document.getElementById("".concat(y,"-wrap"))){var s2=document.createElement("div");s2.id="".concat(y,"-wrap"),s2.style="display:inline-block;width:".concat(x,"px;position:relative;vertical-align: bottom;"),document.getElementById(y).parentNode.insertBefore(s2,document.getElementById(y)),document.getElementById(y).parentNode.removeChild(document.getElementById(y)),s2.innerHTML="
"),document.getElementById(y).style="display:inline-block;width:".concat(x,"px;height:").concat(a2,"px;"),document.getElementById(y).style.verticalAlign="top"}this.themeId&&(this.Theme=new M3(this,d.id),window.EZUIKit[d.id].state.EZUIKitPlayer.themeInit=!0,this.Monitor.dclog({url:this.url,action:2,text:this.themeId}),typeof this.params.handleThemeChange=="function"&&(this.handleThemeChange=this.params.handleThemeChange));var J=new _3(this,y);this.Message=J;var H=function(c2,f2){var O2;if(p0()){O2=new window.JSPluginV2({szId:y,iType:2,iWidth:x,iHeight:a2,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:h.staticPath,oStyle:{border:"none",background:"#000000"}}),h.pluginStatus.loadingStart(y),h.pluginStatus.loadingSetText({text:"初始化播放器完成"}),O2.EventCallback={pluginErrorHandler:function(j,K,E2){if(console.log(j,K,E2),K===1003)console.log("断流"),h.Theme.setDecoderState({play:!1}),h.pluginStatus.setPlayStatus({play:!1}),O2.bPlay||(h.pluginStatus.loadingClear(),h.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof h.params.handleError=="function"&&h.params.handleError({msg:"连接断开,请重试",retcode:1003,id:h.params.id,type:"handleError"});else if(E2.errorCode!=1){var D2=h.errorHander.matchErrorInfo(E2.errorCode),Z2="连接断开,请重试";D2&&D2.msg?Z2=D2.msg:D2&&D2.description&&(Z2=D2.description),h.Theme.setDecoderState({play:!1}),h.pluginStatus.setPlayStatus({play:!1}),h.pluginStatus.loadingClear(),h.pluginStatus.loadingSetText({text:Z2,color:"red"})}else h.pluginStatus.loadingClear(),h.Theme&&h.Theme.setDisabled(!1)},openStreamCallback:function(){console.log("开启取流"),h.openStreamTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:224,d:h.openStreamTime-h.gotWsUrlTime,text:"openStream",isVersion2Available:p0()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),h.getStreamHeaderTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:225,d:h.getStreamHeaderTime-h.openStreamTime,text:"getStreamHeader",isVersion2Available:p0()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),h.getVideoStreamTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:226,d:h.getVideoStreamTime-h.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:p0()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),h.appearFirstFrameTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:227,d:h.appearFirstFrameTime-h.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:p0()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),h.averageStreamSuccessTime=h.initSuccessTime-h.initTime+(h.gotWsUrlTime-h.startGetWsUrlTime)+(h.appearFirstFrameTime-h.openStreamTime),h.Monitor.dclog({url:h.url,action:228,d:h.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:p0()?1:0})}},h.env={domain:"https://open.ys7.com"},typeof d.env!="undefined"&&(h.env=Object.assign(h.env,d.env)),typeof d.handleTalkSuccess!="undefined"&&(h.handleTalkSuccess=d.handleTalkSuccess),typeof d.handleTalkError!="undefined"&&(h.handleTalkError=d.handleTalkError),h.errorHander=new b1,h.jSPlugin=O2;var o2=setInterval(function(){window.JSPlayerModuleLoaded&&(clearInterval(o2),typeof h.params.handleInitSuccess=="function"&&h.params.handleInitSuccess({retcode:0,id:h.params.id,type:"handleInitSuccess"}),c2({meta:{retcode:200,msg:"初始化成功"}}),d.url.indexOf("rec")!=-1&&h.Theme.changeTheme(h.isMobile?"mobileRec":"pcRec"))},50)}else O2=new window.JSPluginV1({szId:y,iType:2,iWidth:x,iHeight:a2,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:h.staticPath,oStyle:{border:"none",background:"#000000"}}),h.pluginStatus.loadingStart(y),h.pluginStatus.loadingSetText({text:"初始化播放器完成"}),O2.EventCallback={openStreamCallback:function(){console.log("开启取流---v1"),h.openStreamTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:224,d:h.openStreamTime-h.gotWsUrlTime,text:"openStream",isVersion2Available:p0()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),h.getStreamHeaderTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:225,d:h.getStreamHeaderTime-h.openStreamTime,text:"getStreamHeader",isVersion2Available:p0()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),h.getVideoStreamTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:226,d:h.getVideoStreamTime-h.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:p0()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),h.appearFirstFrameTime=new Date().getTime(),h.Monitor.dclog({url:h.url,action:227,d:h.appearFirstFrameTime-h.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:p0()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),h.averageStreamSuccessTime=h.initSuccessTime-h.initTime+(h.gotWsUrlTime-h.startGetWsUrlTime)+(h.appearFirstFrameTime-h.openStreamTime),h.Monitor.dclog({url:h.url,action:228,d:h.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:p0()?1:0})},loadEventHandler:function(){},zoomEventResponse:function(){},windowEventSelect:function(j){},pluginErrorHandler:function(j,K,E2){if(console.log(j,K,E2),K===1003)console.log("断流"),h.Theme.setDecoderState({play:!1}),h.pluginStatus.setPlayStatus({play:!1}),O2.bPlay||(h.pluginStatus.loadingClear(),h.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof h.params.handleError=="function"&&h.params.handleError({msg:"连接断开,请重试",retcode:1003,id:h.params.id,type:"handleError"});else if(E2.errorCode!=1){var D2=h.errorHander.matchErrorInfo(E2.errorCode),Z2="连接断开,请重试";D2&&D2.msg?Z2=D2.msg:D2&&D2.description&&(Z2=D2.description),h.Theme.setDecoderState({play:!1}),h.pluginStatus.setPlayStatus({play:!1}),h.pluginStatus.loadingClear(),h.pluginStatus.loadingSetText({text:Z2,color:"red"})}else h.pluginStatus.loadingClear(),h.Theme&&h.Theme.setDisabled(!1)},windowEventOver:function(j){},windowEventOut:function(j){},windowEventUp:function(j){},windowFullCcreenChange:function(j){},firstFrameDisplay:function(j,K,E2){console.log(K,E2),O2.JS_SetCanFullScreen(!1)},performanceLack:function(){},mouseEvent:function(j,K,E2){}},h.env={domain:"https://open.ys7.com"},typeof d.env!="undefined"&&(h.env=Object.assign(h.env,d.env)),typeof d.handleTalkSuccess!="undefined"&&(h.handleTalkSuccess=d.handleTalkSuccess),typeof d.handleTalkError!="undefined"&&(h.handleTalkError=d.handleTalkError),h.errorHander=new b1,h.jSPlugin=O2,typeof h.params.handleInitSuccess=="function"&&h.params.handleInitSuccess({retcode:0,id:h.params.id,type:"handleInitSuccess"}),c2({meta:{retcode:200,msg:"初始化成功"}}),d.url.indexOf("rec")!=-1&&h.Theme.changeTheme(h.isMobile?"mobileRec":"pcRec")},R2=new Promise(H);return R2}},{key:"_getRealUrlPromise",value:function(d,h){var y=this;console.log("获取播放地址 url => ".concat(h," ").concat(this.accessToken)),console.log("开始获取wsurl"),this.startGetWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:222,text:"startGetWsUrl",isVersion2Available:p0()?1:0});var w=this.env.domain;this.env&&(w=this.env.domain);var x=function(s2,J){var H="",R2=w+"/api/lapp/live/url/ezopen",p2=new FormData;p2.append("ezopen",h),p2.append("isFlv",!1),p2.append("userAgent",window.navigator.userAgent),p2.append("isHttp",!1),p2.append("accessToken",d),fetch(R2,{method:"POST",body:p2}).then(function(c2){return c2.json()}).then(function(c2){if(c2.code==200||c2.retcode==0){var f2="",O2="";c2.ext&&c2.ext.token?(H+=c2.data,O2=c2.ext.token,f2=c2.data):c2.data&&c2.data.token&&(H+=c2.data.url,O2=c2.data.token,f2=c2.data.url);var o2=h.indexOf("live")!==-1?"live":"playback";o2==="live"?H=H+"&ssn="+O2+"&auth=1&biz=4&cln=100":H=H+"&ssn="+O2+"&auth=1&cln=100",console.log(H);var T=f("checkCode",H);if(T&&(typeof y.jSPlugin.decoderVersion!="undefined"&&y.jSPlugin.decoderVersion==="2.0"?y.validateCode=T:(console.log("设置密钥",T),y.jSPlugin.JS_SetSecretKey(0,T))),H.indexOf("playback")!==-1){var j=f("begin",f2)||f("begin",h),K=f("end",f2)||f("end",h);if(j)H=H.replace("&begin="+f("begin",f2),"&begin="+k(j,"000000")),f("begin",H)||(H+="&begin="+k(j,"000000"));else{var E2=new Date;H=H+"&begin="+E2.Format("yyyyMMdd")+"T000000Z"}if(K?(H=H.replace("&end="+f("end",f2),"&end="+k(K,"235959")),f("end",H)||(H+="&end="+k(K,"235959"))):H=H+"&end="+k(f("begin",H).substr(0,8),"235959"),f("stream",f2)||(H=H.replace("stream","&stream")),h.indexOf(".cloud")!==-1){var D2=function(I1){if(I1.code==200){var $1=[];if(I1.data&&I1.data.files&&I1.data.files.length>0){var W1=I1.data.files,E0=new Date().getTime(),L2=I1.data.isAll;if(L2){$1=q3(W1);var v3=JSON.stringify($1).replace("\\","");H+="&recSlice="+v3.replace("\\","")+"&r="+Math.random(),s2(H)}else{var A3=function T1(){function l0(X1){if(X1.data&&X1.data.files&&X1.data.files.length>0)if(X1.data.isAll==!1)X1.data.files&&(W1=W1.concat(X1.data.files)),E0=X1.data.nextFileTime>0?X1.data.nextFileTime:new Date().getTime(),T1();else{$1=q3(W1);var h0=JSON.stringify($1).replace("\\","");H+="&recSlice="+h0.replace("\\","")+"&r="+Math.random(),s2(H)}else{$1=q3(W1);var h0=JSON.stringify($1).replace("\\","");H+="&recSlice="+h0.replace("\\","")+"&r="+Math.random(),s2(H)}}E3.startTime=E0,S2(j3,"POST",E3,"",l0)};A3()}}else J({retcode:-1,msg:"未找到录像片段"})}else J({retcode:-1,msg:"未找到录像片段"});function q3(T1){var l0=[];return T1.forEach(function(X1,h0){l0.length==0||X1.downloadPath!==l0[l0.length-1].downloadPath?l0.push({downloadPath:X1.downloadPath,ownerId:X1.ownerId,iStorageVersion:X1.iStorageVersion,videoType:X1.videoType,iPlaySpeed:0,startTime:X1.startTime,endTime:X1.endTime}):l0[l0.length-1].endTime=X1.endTime}),l0}},Z2=a2(f("begin",H)),q2=a2(f("end",H)),f3=f("serial",H),P3=f("chn",H),j3=w+"/api/lapp/video/by/time",E3={accessToken:y.accessToken,recType:1,deviceSerial:f3,channelNo:P3,startTime:Z2,endTime:q2,version:"2.0"};S2(j3,"POST",E3,"",D2)}else if(h.indexOf("alarmId")!==-1){var C1=function(A3){if(A3.code==200){var q3=[];if(A3.data){q3=l0([A3.data]);var T1=JSON.stringify(q3).replace("\\","");H+="&recSlice="+T1.replace("\\",""),console.log("realUrl",H,A3.data.recType),A3.data.recType==1?H=H.replace("/playback","/cloudplayback"):H=H.replace("/cloudplayback","/playback"),s2(H)}}function l0(X1){var h0=[];return X1.forEach(function(y0,je){h0.length==0||y0.downloadPath!==h0[h0.length-1].downloadPath?h0.push({downloadPath:y0.downloadPath,ownerId:y0.ownerId,iStorageVersion:y0.iStorageVersion,videoType:y0.videoType,iPlaySpeed:0,startTime:y0.startTime,endTime:y0.endTime}):h0[h0.length-1].endTime=y0.endTime}),console.log("downloadPathArr",h0),h0}};console.log("进入alarmId回放");var P1=f("alarmId",H),Z2=a2(f("begin",H)),q2=a2(f("end",H)),f3=f("serial",H),P3=f("chn",H),j3=w+"/api/lapp/video/by/id",E3={accessToken:y.accessToken,deviceSerial:f3,channelNo:P3,alarmId:P1};S2(j3,"POST",E3,"",C1)}else s2(H)}else s2(H)}else y.Theme&&y.Theme.setDisabled(!0),y.pluginStatus.loadingClear(),y.pluginStatus.loadingSetText({text:c2.msg,color:"red"}),typeof y.params.handleError=="function"&&y.params.handleError({retcode:c2.code,msg:c2.msg,id:y.params.id,type:"handleError"}),J(c2)})};return new Promise(function(e2,s2){return x(e2,s2)});function k(e2,s2){var J=/^[0-9]{8}T[0-9]{6}Z$/;if(J.test(e2))return e2;if(/[0-9]{8,14}/.test(e2)){var H=6-(14-e2.length),R2=s2.length,p2=e2+s2.substring(H,R2);return p2.slice(0,8)+"T"+p2.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}function a2(e2){var s2=e2.slice(0,4),J=e2.slice(4,6),H=e2.slice(6,8),R2=e2.slice(9,11),p2=e2.slice(11,13),c2=e2.slice(13,15),f2=s2+"-"+J+"-"+H+" "+R2+":"+p2+":"+c2;return new Date(f2.replace(/-/g,"/")).getTime()}}},{key:"_pluginPlay",value:function(d,h,y){var w=this;if(console.log("执行播放 _pluginPlay",d),!d)return!1;function x(s2){var J=s2.split("?")[0].replace("/live","").replace("/playback",""),H=(s2.indexOf("/live")===-1?s2.indexOf("cloudplayback")!==-1?"/cloudplayback?":"/playback?":"/live?")+s2.split("?")[1];return H.indexOf("/playback")!==-1&&(H=H.replace("stream=2","stream=1")),{websocketConnectUrl:J,websocketStreamingParam:H}}var k=x(d).websocketConnectUrl;this.env&&this.env.wsUrl&&(k=this.env.wsUrl),this.gotWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:223,d:this.gotWsUrlTime-this.startGetWsUrlTime,text:"getWsUrlSuccess",isVersion2Available:p0()?1:0});var a2={playURL:x(d).websocketStreamingParam};console.log("播放前 stop 阶段 结束"),this.isStoping=!1;var e2=Date.now();console.log("执行播放 ... this.jSPlugin.JS_Play at ",e2),this.jSPlugin.JS_Play(k,a2,0).then(function(){if(console.log("执行播放 ... this.jSPlugin.JS_Play 播放成功",k,a2),console.log("执行播放耗时 ",Date.now()-e2),w.isStoping){console.log("现在在播放前 stop 阶段,此次应为无效播放成功触发。不执行后续回调, 此次耗时无效");return}if(w.validateCode&&typeof w.jSPlugin.decoderVersion!="undefined"&&w.jSPlugin.decoderVersion==="2.0"&&w.jSPlugin.JS_SetSecretKey(0,w.validateCode),w.pluginStatus.loadingClear(),w.pluginStatus.setPlayStatus({play:!0,loading:!1}),w.Theme){w.Theme.setDecoderState({play:!0});var s2=l3.findIndex(w.Theme.themeData.footer.btnList,function(J){return J.iconId==="sound"&&J.isrender===1&&J.defaultActive===1})>-1;w.audio=s2}w.audio&&setTimeout(function(){w.openSound()},500),typeof w.params.handleSuccess=="function"&&w.params.handleSuccess({retcode:0,id:w.params.id,type:"handleSuccess"}),h(a2),w.Monitor.dclog({url:w.url,action:211,d:new Date().getTime()-w.playStartTime,text:"startPlaySuccess"}),w.Monitor.playLog({Enc:w.url.indexOf("@")===-1?0:1,PlTp:w.url.indexOf("back")===-1?1:2,Via:2,ErrCd:0,Cost:new Date().getTime()-w.playStartTime,Serial:y2(w.url).deviceSerial,Channel:y2(w.url).channelNo,Ver:p0()?"v7.0.0":"v6.0.0"})},function(s2){console.log("err",s2);var J="播放失败,请检查设备及客户端网络",H=-1;if(w.jSPlugin.bPlay)return!1;if(s2&&s2.errorCode){var R2=w.errorHander.matchErrorInfo(s2.errorCode);w.Theme&&w.Theme.setDisabled(!0),R2&&R2.msg?J=R2.msg:R2&&R2.description?J=R2.description:J="播放失败,请检查设备及客户端网络",H=s2.errorCode}w.pluginStatus.loadingClear(),w.pluginStatus.loadingSetText({text:J,color:"red"}),typeof w.params.handleError=="function"&&w.params.handleError({retcode:H,msg:J,id:w.params.id,type:"handleError"}),y(),w.Monitor.dclog({url:w.url,action:411,d:new Date().getTime()-w.playStartTime,text:"startPlayError"}),w.Monitor.playLog({Enc:w.url.indexOf("@")===-1?0:1,PlTp:w.url.indexOf("back")===-1?1:2,Via:2,ErrCd:H,Cost:-1,Serial:y2(w.url).deviceSerial,Channel:y2(w.url).channelNo,Ver:p0()?"v7.0.0":"v6.0.0"})})}},{key:"_play",value:function(d){var h=this;console.log("执行播放 play options.url =>",d),this.pluginStatus.setPlayStatus({play:!1,loading:!0}),this.playStartTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:1,d:new Date().getTime()-this.initTime,text:"startPlay"}),d&&(typeof d=="string"&&(this.url=d),typeof d.url=="string"&&(this.url=d.url),typeof d.accessToken=="string"&&(this.accessToken=d.accessToken),this.Theme&&(typeof d.url=="string"||typeof d.accessToken=="string")&&this.Theme.getDeviceInfo());var y=new Promise(function(w,x){console.log("执行 播放前 stop"),h.isStoping=!0,h.jSPlugin.JS_Stop(0).then(function(){console.log("播放前 stop 执行成功 this.url => ".concat(h.url," ").concat(h.accessToken)),h._getRealUrlPromise(h.accessToken,h.url).then(function(k){h._pluginPlay(k,function(a2){w(!0)},function(){return x(!1)})}).catch(function(k){var a2=k.msg?k.msg:"播放失败,请检查设备及客户端网络";h.Theme&&h.Theme.setDisabled(!0),h.pluginStatus.loadingClear(),h.pluginStatus.loadingSetText({text:a2,color:"red"}),typeof h.params.handleError=="function"&&h.params.handleError({retcode:k.oError?k.oError.errorCode:-1,msg:a2,id:h.params.id,type:"handleError"}),x({retcode:k.oError?k.oError.errorCode:-1,msg:a2,id:h.params.id,type:"handleError"})})})});return y}},{key:"stop",value:function(){var d=this;return this.pluginStatus.setPlayStatus({loading:!0}),this.reSetTheme(),this.jSPlugin.JS_Stop(0).then(function(){console.log("停止成功"),d.pluginStatus.setPlayStatus({play:!1,loading:!1}),d.Theme&&d.Theme.setDecoderState({play:!1})})}},{key:"changeVideoLevel",value:function(d){var h=this,y=this.url,w=d?y.replace(".live",".hd.live"):y.replace(".hd.live",".live");this.jSPlugin.playURL=d?this.jSPlugin.playURL.replace("stream=2","stream=1"):this.jSPlugin.playURL.replace("stream=1","stream=2"),console.log("changeVideoLevel",w,this.jSPlugin.playURL),this.url=w;var x=new Promise(function(k,a2){h.pause().then(function(){console.log("暂停成功"),h.resume().then(function(e2){console.log("恢复成功")})}).catch(function(){console.log("暂停失败"),h.resume().then(function(e2){console.log("恢复成功")})})});return x}},{key:"reSetTheme",value:function(){this.Theme&&this.Theme.Ptz&&(this.Theme.setDecoderState({pantile:!1}),this.Theme.Ptz.hide()),this.Theme&&this.Theme.decoderState.state.recordvideo&&this.Theme.setDecoderState({recordvideo:!1}),this.Theme&&this.Theme.decoderState.state.zoom&&(this.Zoom.stopZoom(),this.Theme.setDecoderState({zoom:!1})),this.Theme&&this.Theme.decoderState.state.talk&&(this.stopTalk(),this.Theme.setDecoderState({talk:!1})),this.Theme&&this.Theme.Rec&&!this.Theme.isMobile&&this.Theme.Rec.datepickerHide(),this.Theme&&this.Theme.Rec&&(this.Theme.changeRecSpeed(1),this.Theme.nextRate=1,this.speed=1,this.Theme.setDecoderState({speed:!1}))}},{key:"_changePlayUrl",value:function(d){var h=this,y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};console.log("_changePlayUrl"),console.log(d),this.reSetTheme(),this.getDeviceCapacity({accessToken:d.accessToken,deviceSerial:d.deviceSerial});var w=this.url,x=a2(w,d);d.accessToken&&(this.accessToken=d.accessToken),this.url=x,y(),this.pluginStatus.loadingStart(this.id),this.pluginStatus.loadingSetText({text:"加载中,请稍后"});var k=new Promise(function(e2,s2){var J={url:x};return d.accessToken&&(J.accessToken=d.accessToken),console.log("切换播放地址 参数 ",J),h.play(J).then(function(){console.log("切换播放地址 play 执行成功 ",h.url,h.accessToken),h.Theme&&h.Theme.decoderState.state.webExpend&&h.Theme.webExpend(),h.Theme&&h.Theme.decoderState.state.expend&&h.Theme.expend(),d.type?d.type=="rec"||d.type=="cloud.rec"?h.Theme.changeTheme(h.isMobile?"mobileRec":"pcRec"):h.Theme.changeTheme(h.isMobile?"mobileLive":"pcLive"):h.url.indexOf(".rec")>-1?h.Theme.changeTheme(h.isMobile?"mobileRec":"pcRec"):h.Theme.changeTheme(h.isMobile?"mobileLive":"pcLive"),d&&d.begin&&d.deviceSerial&&h.Theme.Rec.setDatepickerDate(d.begin),h.Theme.setDisabled(!1),e2(x)}).catch(function(H){s2(x),H&&H.msg&&(h.Theme&&h.Theme.setDisabled(!0),h.pluginStatus.loadingClear(),h.pluginStatus.loadingSetText({text:H.msg,color:"red"}))})});function a2(e2,s2){if(s2.url)return s2.url;console.log("--------------matchInitUrl",e2);var J=e2.split("/")[4].split(".")[e2.split("/")[4].split(".").length-1].split("?")[0];J==="rec"&&e2.indexOf(".cloud.rec")!==-1&&(J="cloud.rec"),s2.type&&(J=s2.type);var H=e2.split("/")[3];s2.deviceSerial&&(H=s2.deviceSerial);var R2=e2.split("/")[4].split(".")[0];s2.channelNo&&(R2=s2.channelNo);var p2=e2.split("/")[2].split("@").length===2?e2.split("/")[2].split("@")[0]:"";typeof s2.validCode!="undefined"&&(p2=s2.validCode);var c2=typeof s2.hd=="undefined"?e2.indexOf(".hd")!==-1:s2.hd,f2="ezopen://".concat(p2?"".concat(p2,"@"):"","open.ys7.com/").concat(H,"/").concat(R2).concat(c2?".hd":"",".").concat(J);return J==="live"||(f2="ezopen://".concat(p2?"".concat(p2,"@"):"","open.ys7.com/").concat(H,"/").concat(R2,".").concat(J),s2.begin&&s2.end?f2+="?begin=".concat(s2.begin,"&end=").concat(s2.end):s2.begin?f2+="?begin=".concat(s2.begin):f("begin",e2)&&(f2+="?begin=".concat(f("begin",e2)))),f2}return k}},{key:"getOSDTime",value:function(){var d=this,h=new Promise(function(y,w){d.jSPlugin.JS_GetOSDTime(0).then(function(x){y({code:0,retcode:0,data:x}),typeof d.params.getOSDTimeCallBack=="function"&&d.params.getOSDTimeCallBack({id:d.id,type:"getOSDTime",code:0,data:x})}).catch(function(x){w({code:-1,retcode:-1,data:x}),typeof d.params.getOSDTimeCallBack=="function"&&d.params.getOSDTimeCallBack({id:d.id,type:"getOSDTime",code:-1,data:-1})})});return h}},{key:"capturePicture",value:function(d){var h=this,y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,w=this.jSPlugin.JS_CapturePicture(0,d,"JPEG",y,!!y);return p(w)?(typeof this.params.capturePictureCallBack=="function"&&w.then(function(){h.params.capturePictureCallBack({id:h.id,type:"capturePicture",code:0})}).catch(function(){h.params.capturePictureCallBack({id:h.id,type:"capturePicture",code:-1})}),w):new Promise(function(x){x(w)})}},{key:"startSave",value:function(d){var h=this,y=this.jSPlugin.JS_StartSave(0,d);return p(y)?(typeof this.params.startSaveCallBack=="function"&&y.then(function(){h.params.startSaveCallBack({id:h.id,type:"startSave",code:0})}).catch(function(){h.params.startSaveCallBack({id:h.id,type:"startSave",code:-1})}),y):(this.Theme&&this.Theme.setDecoderState({recordvideo:!0}),new Promise(function(w){w(y)}))}},{key:"stopSave",value:function(){var d=this,h=this.jSPlugin.JS_StopSave(0);return p(h)?(typeof this.params.startSaveCallBack=="function"&&h.then(function(){d.params.stopSaveCallBack({id:d.id,type:"stopSave",code:0})}).catch(function(){d.params.stopSaveCallBack({id:d.id,type:"stopSave",code:-1})}),h):(this.Theme&&this.Theme.setDecoderState({recordvideo:!1}),new Promise(function(y){y(h)}))}},{key:"openSound",value:function(){var d=this.jSPlugin.JS_OpenSound(0);return console.log("打开声音",d),p(d)?d:(this.Theme&&this.Theme.setDecoderState({sound:!0}),typeof this.params.openSoundCallBack=="function"&&this.params.openSoundCallBack({id:this.id,type:"openSound",code:d}),new Promise(function(h){h(d)}))}},{key:"closeSound",value:function(){var d=this.jSPlugin.JS_CloseSound(0);return p(d)?d:(this.Theme&&this.Theme.setDecoderState({sound:!1}),typeof this.params.closeSoundCallBack=="function"&&this.params.closeSoundCallBack({id:this.id,type:"closeSound",code:d}),new Promise(function(h){h(d)}))}},{key:"enableZoom",value:function(){var d=this.jSPlugin.JS_EnableZoom(0);return p(d)?d:new Promise(function(h){h(d)})}},{key:"closeZoom",value:function(){var d=this.jSPlugin.JS_DisableZoom(0);return p(d)?d:new Promise(function(h){h(d)})}},{key:"setPoster",value:function(d){p0()?document.getElementById("".concat(this.id))&&(document.getElementById("".concat(this.id)).style.backgroundImage="url(".concat(d,")"),document.getElementById("".concat(this.id)).style.backgroundSize="100% 100%"):document.getElementById("".concat(this.id,"canvas0"))&&(document.getElementById("".concat(this.id,"canvas0")).style.backgroundImage="url(".concat(d,")"),document.getElementById("".concat(this.id,"canvas0")).style.backgroundSize="cover")}},{key:"reSize",value:function(d,h){var y=0,w=0;if(this.params.height=h,this.params.width=d,this.Theme&&this.Theme.isNeedRenderHeader&&document.getElementById("".concat(this.id,"-headControl"))&&(y=parseInt(document.getElementById("".concat(this.id,"-headControl")).style.height,10)),this.Theme&&this.Theme.isNeedRenderTimeLine&&!this.isMobile&&(w=48),h=h-y-w,this.width=d,this.height=h,document.getElementById("".concat(this.id,"-wrap")).style="width:".concat(d,"px;position:relative;display:inline-block;vertical-align: bottom;"),document.getElementById("".concat(this.id)).style.width=d+"px",document.getElementById("".concat(this.id)).style.height=h+"px",this.jSPlugin&&this.jSPlugin.bPlay)this.jSPlugin&&(this.jSPlugin.iHeight=h,this.jSPlugin.iWidth=d),this.jSPlugin.JS_Resize(d,h);else{document.getElementById("".concat(this.id,"-player"))&&(document.getElementById("".concat(this.id,"-player")).width=d,document.getElementById("".concat(this.id,"-player")).height=h,document.getElementById("".concat(this.id,"-player")).style.width=d+"px",document.getElementById("".concat(this.id,"-player")).style.height=h+"px");var x=1;if(document.getElementById("".concat(this.id,"canvas0"))){var k=navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);k&&(x=2),document.getElementById("".concat(this.id,"canvas0")).style.width=d*x+"px",document.getElementById("".concat(this.id,"canvas0")).style.height=h*x+"px",document.getElementById("".concat(this.id,"canvas0")).width=d*x,document.getElementById("".concat(this.id,"canvas0")).height=h*x,document.getElementById("".concat(this.id,"canvas0")).parentNode.style.width=d*x+"px",document.getElementById("".concat(this.id,"canvas0")).parentNode.style.height=h*x+"px",document.getElementById("".concat(this.id,"canvas_draw0")).height=h*x}this.jSPlugin&&(this.jSPlugin.iHeight=h*x,this.jSPlugin.iWidth=d*x)}}},{key:"fast",value:function(d){var h=this,y=this.speed;if(d)var w=this.jSPlugin.JS_Fast(0,d);else{if(y===1)y=2;else if(y===2)y=4;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最大为4倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(k,a2){h.speed=y,a2({code:-1,data:{speed:y,result:"播放速度最大为4倍速度"}})});var w=this.jSPlugin.JS_Fast(0)}return new Promise(function(x){h.speed=y,x({code:0,data:{speed:y,result:w}})})}},{key:"slow",value:function(){var d=this,h=this.speed;if(h===4)h=2;else if(h===2)h=1;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最小为1倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(w,x){d.speed=h,x({code:-1,data:{speed:h,result:"播放速度最小为1倍速度"}})});var y=this.jSPlugin.JS_Slow(0);return new Promise(function(w){d.speed=h,w({code:0,data:{speed:h,result:y}})})}},{key:"seek",value:function(d,h){var y=this.url,w=(f("begin",y)||new Date().Format("yyyyMMdd")).substr(0,8);if(h=x(w,"235959"),d.length===6)d=x(w,d);else if(d.length===16){if(d.substr(0,8)!==w)return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间不能跨日期",retcode:-1,id:this.id,type:"handleError"}),!1}else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间格式错误",retcode:-1,id:this.id,type:"handleError"}),!1;function x(a2,e2){var s2=/^[0-9]{8}T[0-9]{6}Z$/;if(s2.test(a2))return a2;if(/[0-9]{8,14}/.test(a2)){var J=6-(14-a2.length),H=e2.length,R2=a2+e2.substring(J,H);return R2.slice(0,8)+"T"+R2.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}var k=this.jSPlugin.JS_Seek(0,d,h);return console.log("seekRT",k),p(k)?k:new Promise(function(a2){a2(k)})}},{key:"fullScreen",value:function(){var d=this,h=z(document.getElementById("".concat(this.id)));h.then(function(w){console.log("全屏promise",window.screen.availWidth),d.jSPlugin.JS_Resize(window.screen.availWidth,window.screen.availHeight),typeof d.params.fullScreenCallBack=="function"&&d.params.fullScreenCallBack({id:d.id,type:"fullScreen",code:0})});var y=function(){var x=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;x||d.jSPlugin.JS_Resize(d.width,d.height),typeof d.params.fullScreenChangeCallBack=="function"&&d.params.fullScreenChangeCallBack({id:d.id,type:"fullScreen",code:x})};["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(w){window.addEventListener(w,function(x){return y()})})}},{key:"cancelFullScreen",value:function(){var d=this,h=v2();h.then(function(y){console.log("取消全屏",y,d.jSPlugin),d.jSPlugin.JS_Resize(d.width,d.height)})}},{key:"startTalk",value:function(){this.Talk.startTalk()}},{key:"stopTalk",value:function(){this.Talk.stopTalk()}},{key:"destroy",value:function(){var d=this.jSPlugin.JS_DestroyWorker(0);return this.Theme&&(this.Theme=null,window.EZUIKit[this.params.id].state.EZUIKitPlayer.themeInit=!1),p(d)?d:new Promise(function(h){h(d)})}},{key:"getDeviceCapacity",value:function(d){var h=this,y=this.env.domain;this.env&&(y=this.env.domain);var w=y+"/api/lapp/device/capacity",x=function(e2){e2.code==200&&e2.data&&(h.capacity=e2.data)},k=d||{accessToken:this.accessToken,deviceSerial:y2(this.url).deviceSerial};S2(w,"POST",k,"",x)}},{key:"pause",value:function(){var d=this;return new Promise(function(h,y){d.jSPlugin.JS_CloseSound(0),d.jSPlugin.JS_Pause(0,function(w){d.setPoster(w.base64)}).then(function(w){d.Theme&&d.Theme.setDecoderState({play:!1}),h()}).catch(function(w){console.log(w),y(w)})})}},{key:"_resume",value:function(d){var h=this;return new Promise(function(y,w){h.pluginStatus.setPlayStatus({play:!1,loading:!0}),h.jSPlugin.JS_Resume(d).then(function(x){if(setTimeout(function(){h.url.indexOf(".rec")!==-1&&h.speed!=1&&h.jSPlugin.JS_Speed(h.speed)},500),h.Theme){h.Theme.setDecoderState({play:!0,speed:h.speed});var k=h.Theme.decoderState.state.sound;k&&setTimeout(function(){h.openSound()},500)}y(x)}).catch(function(x){console.log("resume err",x),w(x)})})}}]),N}(),u0=null;function be(N,_,d,h){return new WebControl({szPluginContainer:N,iServicePortStart:14510,iServicePortEnd:14519,cbConnectSuccess:_,cbConnectError:d,cbConnectClose:h})}function xe(){u0!=null&&(u0.JS_DestroyWnd().then(function(){console.log("JS_DestroyWnd")},function(){}),u0.JS_StopService("window").then(function(){u0.JS_Disconnect().then(function(){console.log("JS_Disconnect")},function(){})}))}function Te(N){N.responseMsg.eventName,console.log(N.responseMsg)}function Fe(){u0.JS_SetWindowControlCallback({cbIntegrationCallBack:Te}),u0.JS_StartService("window",{dllPath:"./chain/cloudTransform.dll"}).then(function(){u0.JS_CreateWnd("playWnd",900,500).then(function(){console.log("JS_CreateWnd success")})})}function We(){console.log("cbConnectError"),u0=null,console.error("确认本地进程是否已安装并开启成功!")}function Ze(N){console.log("cbConnectClose"),u0=null}window.onscroll=function(){u0!=null&&u0.JS_Resize(900,500)},window.onresize=function(){u0!=null&&u0.JS_Resize(900,500)},window.onunload=function(){try{u0.JS_HideWnd(),xe()}catch(N){console.error(N)}},window.onpagehide=function(){try{u0.JS_HideWnd()}catch(N){console.error(N)}};var F2=function(){function N(_){var d=this;a(this,N),o(this,"changeModel",function(h,y){var w=d;d.switchVideo=parseInt(h),u0&&u0.JS_RequestInterface({funcName:"ChangeModel",arguments:encodeURI(JSON.stringify({model:h}))}).then(function(x){h==0?w.play({deviceSerial:y.deviceSerial,channelNo:y.channelNo,validateCode:y.validateCode}):w.play({deviceSerial:y.deviceSerial,channelNo:y.channelNo,validateCode:y.validateCode,startTime:y.startTime,endTime:y.endTime})})}),o(this,"init",function(h){var y,w=d;if(!h.appKey||!h.accessToken){w.showTips(!1,"请输入appkey和token");return}typeof h.appKey!="undefined"&&(d.appKey=h.appKey),typeof h.accessToken!="undefined"&&(d.accessToken=h.accessToken),typeof h.platformId!="undefined"&&(d.platformId=h.platformId);var x=(y={layout:+w.layout,userName:"",waterMark:""},o(y,"waterMark","1"),o(y,"iWndType",0),o(y,"intelligenceEnable",1),o(y,"isRecord",1),o(y,"isSetPos",1),o(y,"motionDetectEnable",0),o(y,"playBackAlarmOverlyingEnable",0),o(y,"response",{code:0,message:null,data:{appKey:h.appKey,ezvizToken:h.accessToken,videoLevel:0,logLevel:3,showMainTool:1,showSubTool:1,waterMark:"1",userName:"openteam",platformId:h.platformId}}),y);console.log("初始化入参",x),u0.JS_RequestInterface({funcName:"Init",arguments:encodeURI(JSON.stringify(x))}).then(function(k){console.log(k.responseMsg),w.showTips(!0,"视频初始化成功!")})}),o(this,"play",function(h){var y=d;if(!(!h.deviceSerial||!h.channelNo)){typeof h.deviceSerial!="undefined"&&(d.deviceSerial=h.deviceSerial),typeof h.channelNo!="undefined"&&(d.channelNo=h.channelNo),typeof h.startTime!="undefined"&&h.startTime&&(d.startTime=h.startTime+" 00:00:00"),typeof h.endTime!="undefined"&&h.endTime&&(d.endTime=h.endTime+" 23:59:59"),typeof h.validateCode!="undefined"&&h.validateCode&&(d.validateCode=h.validateCode);var w={response:{code:0,message:null,data:{deviceSerial:h.deviceSerial,channelCode:h.channelNo,channelNo:+h.channelNo,codeIsEncrypt:0,validateCode:h.validateCode,deviceClass:y.deviceClass,deviceType:"10222",channelId:"2222222222",channelName:"channelNameTest",storeName:"storeName",storeId:"storeid",startTime:d.startTime,endTime:d.endTime}}};y.deviceClass==="1"?(w.response.data.channelCode=y.channelNo,w.response.data.platformId=y.platformId):w.response.data.channelNo=+y.channelNo,d.switchVideo===1&&(d.startTime&&(w.response.data.startTime=d.startTime),d.endTime&&(w.response.data.endTime=d.endTime)),console.log("预览/回放入参",w),u0.JS_RequestInterface({funcName:d.switchVideo===0?"StartPreview":"StartPlayback",arguments:encodeURI(JSON.stringify(w))}).then(function(x){console.log(x.responseMsg),y.showTips(!0,"预览/回放成功!")}).catch(function(x){console.log("开始播放:",x)})}}),o(this,"showCBInfo",function(h){d.callbackMessage=d.callbackMessage+JSON.stringify(h)+` - -`,console.log(d.callbackMessage)}),o(this,"showTips",function(h,y){}),o(this,"hideVideo",function(){u0.JS_HideWnd()}),o(this,"showVideo",function(){u0.JS_ShowWnd()}),o(this,"GetLayout",function(){var h=null;u0.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:h}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"capturePicture",function(h){var y=null;u0.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:y}}))}).then(function(w){console.log(JSON.stringify(w.responseMsg)),console.log(w.responseMsg)})}),o(this,"stop",function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;u0.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(h)}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"setLayout",function(h){var y=parseInt(h);if(isNaN(y)||y==0||y>=13){console.log("不支持实际布局大于16的窗口数");return}d.layout=y,u0.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:y}}}))}).then(function(w){console.log(JSON.stringify(w.responseMsg)),console.log(w.responseMsg)})}),o(this,"setSoundVolumn",function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,y=arguments.length>1?arguments[1]:void 0;u0.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(h),volumn:parseInt(y)}}}))}).then(function(w){console.log(JSON.stringify(w.responseMsg)),console.log(w.responseMsg)})}),o(this,"testMute",function(){var h=parseInt(prompt("请输入窗口ID"));u0.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:h}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"testSelectWnd",function(){var h=parseInt(prompt("请输入窗口ID"));u0.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:h}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"setVideoLevel",function(h,y){u0.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:d.switchVideo==1?0:parseInt(h),level:parseInt(y,10)}}}))}).then(function(w){console.log(JSON.stringify(w.responseMsg)),console.log(w.responseMsg)})}),o(this,"startTalk",function(h){u0.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(h)}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"stopTalk",function(h){u0.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(h)}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"startSave",function(h){u0.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(h)}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),o(this,"stopSave",function(h){u0.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(h)}}}))}).then(function(y){console.log(JSON.stringify(y.responseMsg)),console.log(y.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,u0=be("playWnd",Fe,We,Ze)}return r(N,[{key:"alarmMsg",value:function(){var d={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(d),u0.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(d))})}}]),N}();(function(N,_){n(t)==="object"&&n(t.exports)==="object"?t.exports=N.document?_(N,!0):function(d){if(!d.document)throw new Error("EZUIPlayer requires a window with a document");return _(d)}:_(N)})(typeof window!="undefined"?window:void 0,function(N,_){var d={Core:s,HLS:Q2,FLV:X2,EZUIKitPlayer:ve,EZUIKitHD:F2};return N.EZUIKit=d,d})})(Ki,Ki.exports);var v_=Ki.exports;const Km=y_(v_);class z5{constructor(e,n){this.next=null,this.key=e,this.data=n,this.left=null,this.right=null}}function S_(t,e){return t>e?1:t0){if(e.right===null)break;if(n(t,e.right.key)>0){const s=e.right;if(e.right=s.left,s.left=e,e=s,e.right===null)break}i.right=e,i=e,e=e.right}else break}return i.right=e.left,r.left=e.right,e.left=a.right,e.right=a.left,e}function ys(t,e,n,a){const i=new z5(t,e);if(n===null)return i.left=i.right=null,i;n=I5(t,n,a);const r=a(t,n.key);return r<0?(i.left=n.left,i.right=n,n.left=null):r>=0&&(i.right=n.right,i.left=n,n.right=null),i}function of(t,e,n){let a=null,i=null;if(e){e=I5(t,e,n);const r=n(e.key,t);r===0?(a=e.left,i=e.right):r<0?(i=e.right,e.right=null,a=e):(a=e.left,e.left=null,i=e)}return{left:a,right:i}}function w_(t,e,n){return e===null?t:(t===null||(e=I5(t.key,e,n),e.left=t),e)}function dl(t,e,n,a,i){if(t){a(`${e}${n?"└── ":"├── "}${i(t)} -`);const r=e+(n?" ":"│ ");t.left&&dl(t.left,r,!1,a,i),t.right&&dl(t.right,r,!0,a,i)}}class tu{constructor(e=S_){this._root=null,this._size=0,this._comparator=e}insert(e,n){return this._size++,this._root=ys(e,n,this._root,this._comparator)}add(e,n){const a=new z5(e,n);this._root===null&&(a.left=a.right=null,this._size++,this._root=a);const i=this._comparator,r=I5(e,this._root,i),o=i(e,r.key);return o===0?this._root=r:(o<0?(a.left=r.left,a.right=r,r.left=null):o>0&&(a.right=r.right,a.left=r,r.right=null),this._size++,this._root=a),this._root}remove(e){this._root=this._remove(e,this._root,this._comparator)}_remove(e,n,a){let i;return n===null?null:(n=I5(e,n,a),a(e,n.key)===0?(n.left===null?i=n.right:(i=I5(e,n.left,a),i.right=n.right),this._size--,i):n)}pop(){let e=this._root;if(e){for(;e.left;)e=e.left;return this._root=I5(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null}findStatic(e){let n=this._root;const a=this._comparator;for(;n;){const i=a(e,n.key);if(i===0)return n;i<0?n=n.left:n=n.right}return null}find(e){return this._root&&(this._root=I5(e,this._root,this._comparator),this._comparator(e,this._root.key)!==0)?null:this._root}contains(e){let n=this._root;const a=this._comparator;for(;n;){const i=a(e,n.key);if(i===0)return!0;i<0?n=n.left:n=n.right}return!1}forEach(e,n){let a=this._root;const i=[];let r=!1;for(;!r;)a!==null?(i.push(a),a=a.left):i.length!==0?(a=i.pop(),e.call(n,a),a=a.right):r=!0;return this}range(e,n,a,i){const r=[],o=this._comparator;let s=this._root,u;for(;r.length!==0||s;)if(s)r.push(s),s=s.left;else{if(s=r.pop(),u=o(s.key,n),u>0)break;if(o(s.key,e)>=0&&a.call(i,s))return this;s=s.right}return this}keys(){const e=[];return this.forEach(({key:n})=>{e.push(n)}),e}values(){const e=[];return this.forEach(({data:n})=>{e.push(n)}),e}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(e=this._root){if(e)for(;e.left;)e=e.left;return e}maxNode(e=this._root){if(e)for(;e.right;)e=e.right;return e}at(e){let n=this._root,a=!1,i=0;const r=[];for(;!a;)if(n)r.push(n),n=n.left;else if(r.length>0){if(n=r.pop(),i===e)return n;i++,n=n.right}else a=!0;return null}next(e){let n=this._root,a=null;if(e.right){for(a=e.right;a.left;)a=a.left;return a}const i=this._comparator;for(;n;){const r=i(e.key,n.key);if(r===0)break;r<0?(a=n,n=n.left):n=n.right}return a}prev(e){let n=this._root,a=null;if(e.left!==null){for(a=e.left;a.right;)a=a.right;return a}const i=this._comparator;for(;n;){const r=i(e.key,n.key);if(r===0)break;r<0?n=n.left:(a=n,n=n.right)}return a}clear(){return this._root=null,this._size=0,this}toList(){return T_(this._root)}load(e,n=[],a=!1){let i=e.length;const r=this._comparator;if(a&&ml(e,n,0,i-1,r),this._root===null)this._root=fl(e,n,0,i),this._size=i;else{const o=C_(this.toList(),b_(e,n),r);i=this._size+i,this._root=hl({head:o},0,i)}return this}isEmpty(){return this._root===null}get size(){return this._size}get root(){return this._root}toString(e=n=>String(n.key)){const n=[];return dl(this._root,"",!0,a=>n.push(a),e),n.join("")}update(e,n,a){const i=this._comparator;let{left:r,right:o}=of(e,this._root,i);i(e,n)<0?o=ys(n,a,o,i):r=ys(n,a,r,i),this._root=w_(r,o,i)}split(e){return of(e,this._root,this._comparator)}*[Symbol.iterator](){let e=this._root;const n=[];let a=!1;for(;!a;)e!==null?(n.push(e),e=e.left):n.length!==0?(e=n.pop(),yield e,e=e.right):a=!0}}function fl(t,e,n,a){const i=a-n;if(i>0){const r=n+Math.floor(i/2),o=t[r],s=e[r],u=new z5(o,s);return u.left=fl(t,e,n,r),u.right=fl(t,e,r+1,a),u}return null}function b_(t,e){const n=new z5(null,null);let a=n;for(let i=0;i0?(e=r=r.next=n.pop(),e=e.right):a=!0;return r.next=null,i.next}function hl(t,e,n){const a=n-e;if(a>0){const i=e+Math.floor(a/2),r=hl(t,e,i),o=t.head;return o.left=r,t.head=t.head.next,o.right=hl(t,i+1,n),o}return null}function C_(t,e,n){const a=new z5(null,null);let i=a,r=t,o=e;for(;r!==null&&o!==null;)n(r.key,o.key)<0?(i.next=r,r=r.next):(i.next=o,o=o.next),i=i.next;return r!==null?i.next=r:o!==null&&(i.next=o),a.next}function ml(t,e,n,a,i){if(n>=a)return;const r=t[n+a>>1];let o=n-1,s=a+1;for(;;){do o++;while(i(t[o],r)<0);do s--;while(i(t[s],r)>0);if(o>=s)break;let u=t[o];t[o]=t[s],t[s]=u,u=e[o],e[o]=e[s],e[s]=u}ml(t,e,n,s,i),ml(t,e,s+1,a,i)}const d5=11102230246251565e-32,Yt=134217729,A_=(3+8*d5)*d5;function vs(t,e,n,a,i){let r,o,s,u,m=e[0],p=a[0],f=0,g=0;p>m==p>-m?(r=m,m=e[++f]):(r=p,p=a[++g]);let C=0;if(fm==p>-m?(o=m+r,s=r-(o-m),m=e[++f]):(o=p+r,s=r-(o-p),p=a[++g]),r=o,s!==0&&(i[C++]=s);fm==p>-m?(o=r+m,u=o-r,s=r-(o-u)+(m-u),m=e[++f]):(o=r+p,u=o-r,s=r-(o-u)+(p-u),p=a[++g]),r=o,s!==0&&(i[C++]=s);for(;f=J3||-_3>=J3||(f=t-p3,s=t-(p3+f)+(f-i),f=n-l3,m=n-(l3+f)+(f-i),f=e-b3,u=e-(b3+f)+(f-r),f=a-N3,p=a-(N3+f)+(f-r),s===0&&u===0&&m===0&&p===0)||(J3=P_*o+A_*Math.abs(_3),_3+=p3*p+N3*s-(b3*m+l3*u),_3>=J3||-_3>=J3))return _3;A2=s*N3,g=Yt*s,C=g-(g-s),F=s-C,g=Yt*N3,z=g-(g-N3),Y=N3-z,S2=F*Y-(A2-C*z-F*z-C*Y),Q2=u*l3,g=Yt*u,C=g-(g-u),F=u-C,g=Yt*l3,z=g-(g-l3),Y=l3-z,X2=F*Y-(Q2-C*z-F*z-C*Y),i2=S2-X2,f=S2-i2,en[0]=S2-(i2+f)+(f-X2),v2=A2+i2,f=v2-A2,y2=A2-(v2-f)+(i2-f),i2=y2-Q2,f=y2-i2,en[1]=y2-(i2+f)+(f-Q2),c3=v2+i2,f=c3-v2,en[2]=v2-(c3-f)+(i2-f),en[3]=c3;const R3=vs(4,e8,4,en,sf);A2=p3*p,g=Yt*p3,C=g-(g-p3),F=p3-C,g=Yt*p,z=g-(g-p),Y=p-z,S2=F*Y-(A2-C*z-F*z-C*Y),Q2=b3*m,g=Yt*b3,C=g-(g-b3),F=b3-C,g=Yt*m,z=g-(g-m),Y=m-z,X2=F*Y-(Q2-C*z-F*z-C*Y),i2=S2-X2,f=S2-i2,en[0]=S2-(i2+f)+(f-X2),v2=A2+i2,f=v2-A2,y2=A2-(v2-f)+(i2-f),i2=y2-Q2,f=y2-i2,en[1]=y2-(i2+f)+(f-Q2),c3=v2+i2,f=c3-v2,en[2]=v2-(c3-f)+(i2-f),en[3]=c3;const Z3=vs(R3,sf,4,en,lf);A2=s*p,g=Yt*s,C=g-(g-s),F=s-C,g=Yt*p,z=g-(g-p),Y=p-z,S2=F*Y-(A2-C*z-F*z-C*Y),Q2=u*m,g=Yt*u,C=g-(g-u),F=u-C,g=Yt*m,z=g-(g-m),Y=m-z,X2=F*Y-(Q2-C*z-F*z-C*Y),i2=S2-X2,f=S2-i2,en[0]=S2-(i2+f)+(f-X2),v2=A2+i2,f=v2-A2,y2=A2-(v2-f)+(i2-f),i2=y2-Q2,f=y2-i2,en[1]=y2-(i2+f)+(f-Q2),c3=v2+i2,f=c3-v2,en[2]=v2-(c3-f)+(i2-f),en[3]=c3;const M1=vs(Z3,lf,4,en,uf);return uf[M1-1]}function E_(t,e,n,a,i,r){const o=(e-r)*(n-i),s=(t-i)*(a-r),u=o-s,m=Math.abs(o+s);return Math.abs(u)>=x_*m?u:-k_(t,e,n,a,i,r,m)}const I4=(t,e)=>t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y,pl=(t,e)=>{if(e.ur.x{if(-D5t.x*e.y-t.y*e.x,qm=(t,e)=>t.x*e.x+t.y*e.y,ff=(t,e,n)=>{const a=E_(t.x,t.y,e.x,e.y,n.x,n.y);return a>0?-1:a<0?1:0},qi=t=>Math.sqrt(qm(t,t)),L_=(t,e,n)=>{const a={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y};return Ri(i,a)/qi(i)/qi(a)},I_=(t,e,n)=>{const a={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y};return qm(i,a)/qi(i)/qi(a)},hf=(t,e,n)=>e.y===0?null:{x:t.x+e.x/e.y*(n-t.y),y:n},mf=(t,e,n)=>e.x===0?null:{x:n,y:t.y+e.y/e.x*(n-t.x)},F_=(t,e,n,a)=>{if(e.x===0)return mf(n,a,t.x);if(a.x===0)return mf(t,e,n.x);if(e.y===0)return hf(n,a,t.y);if(a.y===0)return hf(t,e,n.y);const i=Ri(e,a);if(i==0)return null;const r={x:n.x-t.x,y:n.y-t.y},o=Ri(r,e)/i,s=Ri(r,a)/i,u=t.x+s*e.x,m=n.x+o*a.x,p=t.y+s*e.y,f=n.y+o*a.y,g=(u+m)/2,C=(p+f)/2;return{x:g,y:C}};class Xn{static compare(e,n){const a=Xn.comparePoints(e.point,n.point);return a!==0?a:(e.point!==n.point&&e.link(n),e.isLeft!==n.isLeft?e.isLeft?1:-1:O5.compare(e.segment,n.segment))}static comparePoints(e,n){return e.xn.x?1:e.yn.y?1:0}constructor(e,n){e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=n}link(e){if(e.point===this.point)throw new Error("Tried to link already linked events");const n=e.point.events;for(let a=0,i=n.length;a{const r=i.otherSE;n.set(i,{sine:L_(this.point,e.point,r.point),cosine:I_(this.point,e.point,r.point)})};return(i,r)=>{n.has(i)||a(i),n.has(r)||a(r);const{sine:o,cosine:s}=n.get(i),{sine:u,cosine:m}=n.get(r);return o>=0&&u>=0?sm?-1:0:o<0&&u<0?sm?1:0:uo?1:0}}}let B_=0;class O5{static compare(e,n){const a=e.leftSE.point.x,i=n.leftSE.point.x,r=e.rightSE.point.x,o=n.rightSE.point.x;if(os&&u>m)return-1;const f=e.comparePoint(n.leftSE.point);if(f<0)return 1;if(f>0)return-1;const g=n.comparePoint(e.rightSE.point);return g!==0?g:-1}if(a>i){if(su&&s>p)return 1;const f=n.comparePoint(e.leftSE.point);if(f!==0)return f;const g=e.comparePoint(n.rightSE.point);return g<0?1:g>0?-1:1}if(su)return 1;if(ro){const f=e.comparePoint(n.rightSE.point);if(f<0)return 1;if(f>0)return-1}if(r!==o){const f=m-s,g=r-a,C=p-u,F=o-i;if(f>g&&CF)return-1}return r>o?1:rp?1:e.idn.id?1:0}constructor(e,n,a,i){this.id=++B_,this.leftSE=e,e.segment=this,e.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=e,this.rings=a,this.windings=i}static fromRing(e,n,a){let i,r,o;const s=Xn.comparePoints(e,n);if(s<0)i=e,r=n,o=1;else if(s>0)i=n,r=e,o=-1;else throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);const u=new Xn(i,!0),m=new Xn(r,!1);return new O5(u,m,[a],[o])}replaceRightSE(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const e=this.leftSE.point.y,n=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:en?e:n}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}comparePoint(e){if(this.isAnEndpoint(e))return 0;const n=this.leftSE.point,a=this.rightSE.point,i=this.vector();if(n.x===a.x)return e.x===n.x?0:e.x0&&s.swapEvents(),Xn.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),a&&(i.checkForConsuming(),r.checkForConsuming()),n}swapEvents(){const e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let n=0,a=this.windings.length;n0){const r=n;n=a,a=r}if(n.prev===a){const r=n;n=a,a=r}for(let r=0,o=a.rings.length;ri.length===1&&i[0].isSubject;this._isInResult=a(e)!==a(n);break}default:throw new Error(`Unrecognized operation type found ${y6.type}`)}return this._isInResult}}class pf{constructor(e,n,a){if(!Array.isArray(e)||e.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=a,this.segments=[],typeof e[0][0]!="number"||typeof e[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const i=ya.round(e[0][0],e[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};let r=i;for(let o=1,s=e.length;othis.bbox.ur.x&&(this.bbox.ur.x=u.x),u.y>this.bbox.ur.y&&(this.bbox.ur.y=u.y),r=u)}(i.x!==r.x||i.y!==r.y)&&this.segments.push(O5.fromRing(r,i,this))}getSweepEvents(){const e=[];for(let n=0,a=this.segments.length;nthis.bbox.ur.x&&(this.bbox.ur.x=r.bbox.ur.x),r.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=r.bbox.ur.y),this.interiorRings.push(r)}this.multiPoly=n}getSweepEvents(){const e=this.exteriorRing.getSweepEvents();for(let n=0,a=this.interiorRings.length;nthis.bbox.ur.x&&(this.bbox.ur.x=r.bbox.ur.x),r.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=r.bbox.ur.y),this.polys.push(r)}this.isSubject=n}getSweepEvents(){const e=[];for(let n=0,a=this.polys.length;n0&&(e=o)}let n=e.segment.prevInResult(),a=n?n.prevInResult():null;for(;;){if(!n)return null;if(!a)return n.ringOut;if(a.ringOut!==n.ringOut)return a.ringOut.enclosingRing()!==n.ringOut?n.ringOut:n.ringOut.enclosingRing();n=a.prevInResult(),a=n?n.prevInResult():null}}}class yf{constructor(e){this.exteriorRing=e,e.poly=this,this.interiorRings=[]}addInterior(e){this.interiorRings.push(e),e.poly=this}getGeom(){const e=[this.exteriorRing.getGeom()];if(e[0]===null)return null;for(let n=0,a=this.interiorRings.length;n1&&arguments[1]!==void 0?arguments[1]:O5.compare;this.queue=e,this.tree=new tu(n),this.segments=[]}process(e){const n=e.segment,a=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(n),a;const i=e.isLeft?this.tree.add(n):this.tree.find(n);if(!i)throw new Error(`Unable to find segment #${n.id} [${n.leftSE.point.x}, ${n.leftSE.point.y}] -> [${n.rightSE.point.x}, ${n.rightSE.point.y}] in SweepLine tree.`);let r=i,o=i,s,u;for(;s===void 0;)r=this.tree.prev(r),r===null?s=null:r.key.consumedBy===void 0&&(s=r.key);for(;u===void 0;)o=this.tree.next(o),o===null?u=null:o.key.consumedBy===void 0&&(u=o.key);if(e.isLeft){let m=null;if(s){const f=s.getIntersection(n);if(f!==null&&(n.isAnEndpoint(f)||(m=f),!s.isAnEndpoint(f))){const g=this._splitSafely(s,f);for(let C=0,F=g.length;C0?(this.tree.remove(n),a.push(e)):(this.segments.push(n),n.prev=s)}else{if(s&&u){const m=s.getIntersection(u);if(m!==null){if(!s.isAnEndpoint(m)){const p=this._splitSafely(s,m);for(let f=0,g=p.length;fvf)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const o=new U_(r);let s=r.size,u=r.pop();for(;u;){const f=u.key;if(r.size===s){const C=f.segment;throw new Error(`Unable to pop() ${f.isLeft?"left":"right"} SweepEvent [${f.point.x}, ${f.point.y}] from segment #${C.id} [${C.leftSE.point.x}, ${C.leftSE.point.y}] -> [${C.rightSE.point.x}, ${C.rightSE.point.y}] from queue.`)}if(r.size>vf)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(o.segments.length>O_)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const g=o.process(f);for(let C=0,F=g.length;C1?e-1:0),a=1;a1?e-1:0),a=1;a1?e-1:0),a=1;a1?e-1:0),a=1;at3(B2({},t),{key:`grassland-type-${e+1}`,cqlFilter:tn("grass_min_type",t.name),rankingPropertyName:["area_code","acreage"],rankingTownCodeKeys:["area_code"],rankingAreaKeys:["acreage"]})),wf=[{name:">4000(kg/hm2)",fillColor:"#39A700",strokeColor:"#39A700"},{name:"3000-4000(kg/hm2)",fillColor:"#8CCF00",strokeColor:"#8CCF00"},{name:"2000-3000(kg/hm2)",fillColor:"#FEFE02",strokeColor:"#FEFE02"},{name:"1500-2000(kg/hm2)",fillColor:"#FE7E01",strokeColor:"#FE7E01"},{name:"<1500(kg/hm2)",fillColor:"#FB0100",strokeColor:"#FB0100"}].map(t=>t3(B2({},t),{selectable:!1})),na={1:"一级",2:"二级",3:"三级",4:"四级",5:"五级",6:"六级",7:"七级",8:"八级"},Jm=[{level:"1",name:"1级草原",fillColor:"#81D10B",strokeColor:"#81D10B"},{level:"2",name:"2级草原",fillColor:"#8AE611",strokeColor:"#8AE611"},{level:"3",name:"3级草原",fillColor:"#79C801",strokeColor:"#79C801"},{level:"4",name:"4级草原",fillColor:"#D0EC03",strokeColor:"#D0EC03"},{level:"5",name:"5级草原",fillColor:"#FFCC00",strokeColor:"#FFCC00"},{level:"6",name:"6级草原",fillColor:"#FF6501",strokeColor:"#FF6501"},{level:"7",name:"7级草原",fillColor:"#FB0002",strokeColor:"#FB0002"},{level:"8",name:"8级草原",fillColor:"#D71345",strokeColor:"#D71345"}].map(t=>t3(B2({},t),{key:`grassland-level-${t.level}`,cqlFilter:`grassland_level IN ('${t.level}','${t.name}','${na[t.level]}草原','${na[t.level]}草地')`,rankingPropertyName:["area_code","acreage"],rankingTownCodeKeys:["area_code"],rankingAreaKeys:["acreage"],level:void 0})),K_=Jm.map(t=>{const e=t.key.replace("grassland-level-",""),n=t.name.replace("草原","湿地");return t3(B2({},t),{key:`wetland-level-${e}`,name:n,cqlFilter:`grassland_level IN ('${e}','${n}','${t.name}','${na[e]}湿地','${na[e]}草原','${na[e]}草地')`})}),q_=[{key:"basic-grassland-basic",name:"基本草原",fillColor:"#2EEA78",strokeColor:"#18F8FF",cqlFilter:"(grassland_category_code = 'BASIC' OR grassland_category_name = '基本草原')",rankingValueKey:"basicAreaWanMu"},{key:"basic-grassland-general",name:"一般草原",fillColor:"#FFD15A",strokeColor:"#18F8FF",cqlFilter:"(grassland_category_code = 'GENERAL' OR grassland_category_name = '一般草原')",rankingValueKey:"generalAreaWanMu"}],E8=[{key:"overview",name:"资源概览",color:"#30DCFF",defaultLayerKey:"",coreGroups:[]},{key:"grassland",name:"草地资源",color:"#8AE611",defaultLayerKey:"grassland-distribution",coreGroups:["grassLand","grassland"]},{key:"wetland",name:"湿地资源",color:"#33A3DC",defaultLayerKey:"wetland-distribution",coreGroups:["wetland"]},{key:"woodland",name:"林地资源",color:"#2BD17E",defaultLayerKey:"woodland-distribution",coreGroups:["woodland"]}],l8=[{key:"ecological-redline",name:"生态保护红线",color:"#30DCFF",defaultLayerKey:"ecological-redline-boundary"},{key:"natural-protected-area",name:"自然保护地",color:"#19FFC6",defaultLayerKey:"natural-protected-area-boundary"},{key:"national-park",name:"若尔盖国家公园",color:"#46E7FF",defaultLayerKey:"national-park-zoning"},{key:"restoration",name:"生态修复工程",color:"#33A3DC",defaultLayerKey:"restoration-projects"},{key:"engineering-analysis",name:"生态工程分析",color:"#24F6C4",defaultLayerKey:"engineering-analysis-projects"}],J_=[{key:"yak-industry-chain",name:"牦牛产业链",color:"#24F6C4",defaultLayerKey:"yak-industry-points"}],Li={woodland:[{key:"woodland-distribution",name:"林地范围",layerName:"ne:t_woodland_2023",styles:"woodland_distribution",opacity:.82,legends:[{key:"woodland-distribution-all",name:"林地范围",fillColor:"#2BD17E",strokeColor:"#2BD17E",selectable:!1}]},{key:"woodland-protection",name:"公益林",layerName:"ne:t_woodland_2023",styles:"woodland_protection",opacity:.86,legends:[{key:"woodland-protection-level-1",name:"国家一级公益林",fillColor:"#08C4C5",strokeColor:"#08C4C5",cqlFilter:tn("gjgyl_bhdj","1")},{key:"woodland-protection-level-2",name:"国家二级公益林",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:tn("gjgyl_bhdj","2")},{key:"woodland-protection-unset",name:"未划定",fillColor:"#6B8191",strokeColor:"#6B8191",cqlFilter:"(gjgyl_bhdj IS NULL OR gjgyl_bhdj = '' OR gjgyl_bhdj NOT IN ('1','2'))"}]},{key:"woodland-type",name:"林地类型",layerName:"ne:t_woodland_2023",styles:"woodland_type",opacity:.84,legends:[{key:"woodland-type-shrub",name:"灌木林地",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:tn("dlmc","灌木林地")},{key:"woodland-type-arbor",name:"乔木林地",fillColor:"#0DA368",strokeColor:"#0DA368",cqlFilter:tn("dlmc","乔木林地")},{key:"woodland-type-swamp",name:"灌丛沼泽",fillColor:"#23C7B7",strokeColor:"#23C7B7",cqlFilter:tn("dlmc","灌丛沼泽")},{key:"woodland-type-other",name:"其他林地",fillColor:"#B7D96B",strokeColor:"#B7D96B",cqlFilter:"(dlmc IS NULL OR dlmc = '' OR dlmc NOT IN ('灌木林地','乔木林地','灌丛沼泽'))"}]},{key:"woodland-quality",name:"林地质量",layerName:"ne:t_woodland_2023",styles:"woodland_quality",opacity:.84,legends:[{key:"woodland-quality-2",name:"二级质量",fillColor:"#08C4C5",strokeColor:"#08C4C5",cqlFilter:tn("zl_dj","2")},{key:"woodland-quality-3",name:"三级质量",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:tn("zl_dj","3")},{key:"woodland-quality-4",name:"四级质量",fillColor:"#23C7B7",strokeColor:"#23C7B7",cqlFilter:tn("zl_dj","4")},{key:"woodland-quality-5",name:"五级质量",fillColor:"#B7D96B",strokeColor:"#B7D96B",cqlFilter:tn("zl_dj","5")},{key:"woodland-quality-unset",name:"未划分",fillColor:"#6B8191",strokeColor:"#6B8191",cqlFilter:"(zl_dj IS NULL OR zl_dj = '' OR zl_dj NOT IN ('2','3','4','5'))"}]},{key:"woodland-ownership",name:"林地权属",layerName:"ne:t_woodland_2023",styles:"woodland_ownership",opacity:.84,legends:[{key:"woodland-ownership-collective",name:"集体林地",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:tn("ld_qs","10")},{key:"woodland-ownership-other",name:"国有或其他",fillColor:"#08C4C5",strokeColor:"#08C4C5",cqlFilter:"(ld_qs IS NULL OR ld_qs = '' OR ld_qs <> '10')"}]}],grassland:[{key:"grassland-distribution",name:"草地分布",layerName:"ne:t_grassland_result_caodi",opacity:.82,legends:[{name:"草地",fillColor:"#1D953F",strokeColor:"#1D953F"}]},{key:"basic-grassland",name:"基本/一般草原",layerName:"ne:t_basic_grassland_2023",styles:"basic_grassland_type",opacity:.84,legends:q_},{key:"grassland-level",name:"草原级",layerName:"ne:t_grassland_result_level_caodi",opacity:.82,legends:Jm},{key:"grassland-type",name:"草原类型",layerName:"ne:t_grassland_result_grass_min_type_caodi",opacity:.82,legends:Sf},{key:"grassland-yield",name:"草地产草量/生产力",layerName:"ne:t_grassland_result_yield_caodi",opacity:.82,legends:wf},{key:"grassland-health",name:"草地健康/退化",layerName:"ne:2023_08_ndvi",opacity:.78,legends:[{name:"非常差",fillColor:"#FF000533",strokeColor:"#FF0005",selectable:!1},{name:"差",fillColor:"#D8EE8C33",strokeColor:"#D8EE8C",selectable:!1},{name:"正常",fillColor:"#78C96233",strokeColor:"#78C962",selectable:!1},{name:"较好",fillColor:"#25814933",strokeColor:"#258149",selectable:!1}]}],wetland:[{key:"wetland-distribution",name:"湿地分布",layerName:"ne:t_grassland_result_shidi",opacity:.84,legends:[{name:"湿地",fillColor:"#33A3DC",strokeColor:"#33A3DC"}]},{key:"wetland-level",name:"湿地级",layerName:"ne:t_grassland_result_level_shidi",opacity:.82,legends:K_},{key:"wetland-type",name:"湿地类型",layerName:"ne:t_grassland_result_grass_min_type_shidi",opacity:.82,legends:Sf},{key:"wetland-yield",name:"湿地产草量/生产力",layerName:"ne:t_grassland_result_yield_shidi",opacity:.82,legends:wf}]},Qm={"ecological-redline":[{key:"ecological-redline-boundary",name:"生态保护红线",layerName:"ne:t_ecological_redline_hy",sourceType:"wfs",styles:"ecological_redline_hy",opacity:.58,fillColor:"#5EDFEA",strokeColor:"#BFFFFF",fillAlpha:.08,strokeAlpha:.56,lineWidth:1.42,mapView:{targetLngLat:[102.58,32.72],distanceScale:.78,targetLocalZ:.76,duration:.9},legends:[{key:"ecological-redline-all",name:"生态保护红线",fillColor:"rgba(94, 223, 234, 0.28)",strokeColor:"#BFFFFF",selectable:!1}]}],"natural-protected-area":[{key:"natural-protected-area-boundary",name:"自然保护地",layerName:"ne:t_natural_protected_area_hy",sourceType:"wfs",styles:"natural_protected_area_hy",opacity:.74,mapView:{targetLngLat:[102.64,33.02],distanceScale:.7,targetLocalZ:.78,duration:.9},legends:[{key:"natural-protected-area-core",name:"核心保护区",fillColor:"rgba(36, 246, 196, 0.16)",strokeColor:"#B9FBFF",matches:[{field:"functional_zone",value:"核心保护区"},{field:"reserve_zone",value:"核心保护区"}],selectable:!1},{key:"natural-protected-area-general",name:"一般控制区",fillColor:"rgba(48, 220, 255, 0.12)",strokeColor:"#8BF7FF",matches:[{field:"functional_zone",value:"一般控制区"},{field:"reserve_zone",value:"一般控制区"}],selectable:!1}]}],"national-park":[{key:"national-park-zoning",name:"国家公园分区",sourceType:"wkt-api",apiUrl:"/openApi/gjgy/gjgy_area",fallbackPath:"datas/ecological-protection/national_park_wkt.json",clipToHongyuanBoundary:!0,clipToLayerBounds:!1,opacity:.9,mapView:{targetLngLat:[102.88,33.15],distanceScale:.68,targetLocalZ:.78,duration:.95},legends:[{key:"national-park-core",name:"核心保护区",fillColor:h8.core.fillColor,strokeColor:h8.core.strokeColor,match:{field:"type",value:"核心保护区"},selectable:!1},{key:"national-park-general",name:"一般控制区",fillColor:h8.general.fillColor,strokeColor:h8.general.strokeColor,match:{field:"type",value:"一般控制区"},selectable:!1}]}],restoration:[{key:"restoration-projects",name:"生态修复工程",sourceType:"geojson",dataPath:"datas/ecological-protection/ecological_restoration_projects.geojson",opacity:.72,legends:[{key:"restoration-grassland",name:"草地修复",fillColor:"#75AD49",strokeColor:"#D2EA78",cqlFilter:tn("project_category","草地修复"),match:{field:"project_category",value:"草地修复"}},{key:"restoration-wetland",name:"湿地修复",fillColor:"#4FB4C3",strokeColor:"#A9EEF2",cqlFilter:tn("project_category","湿地修复"),match:{field:"project_category",value:"湿地修复"}},{key:"restoration-woodland",name:"林地修复",fillColor:"#43A97A",strokeColor:"#95E2B7",cqlFilter:tn("project_category","林地修复"),match:{field:"project_category",value:"林地修复"}},{key:"restoration-linear",name:"线性设施",fillColor:"#D2B24D",strokeColor:"#FFE28A",cqlFilter:tn("feature_role","线性设施"),match:{field:"feature_role",value:"线性设施"}}]}],"engineering-analysis":[{key:"engineering-analysis-projects",name:"工程分析项目库",sourceType:"geojson",dataPath:"datas/ecological-protection/ecological_restoration_projects.geojson",opacity:.76,mapView:{targetLngLat:[102.58,32.72],distanceScale:.78,targetLocalZ:.72,duration:.85},legends:[{key:"analysis-project-grassland",name:"草地修复",fillColor:"#75AD49",strokeColor:"#D2EA78",match:{field:"project_category",value:"草地修复"},selectable:!1},{key:"analysis-project-wetland",name:"湿地修复",fillColor:"#4FB4C3",strokeColor:"#A9EEF2",match:{field:"project_category",value:"湿地修复"},selectable:!1},{key:"analysis-project-woodland",name:"林地修复",fillColor:"#43A97A",strokeColor:"#95E2B7",match:{field:"project_category",value:"林地修复"},selectable:!1},{key:"analysis-project-linear",name:"线性设施",fillColor:"#D2B24D",strokeColor:"#FFE28A",match:{field:"feature_role",value:"线性设施"},selectable:!1}]}]},Q_={"yak-industry-chain":[{key:"yak-recognition-layer",name:"牦牛识别",sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,homeWmtsZoom:10,homeWmtsEnhance:!0,homeWmtsPointSpread:1.4,homeWmtsGlowRadius:1.8,url:"/geoserver/gwc/service/wmts",opacity:.96,queryBuffer:10,fillColor:"rgba(255, 230, 0, 0)",strokeColor:"#FFE600",glowColor:"rgba(255, 230, 0, 0.42)",lineWidth:1.4,mapView:{targetLngLat:[102.58,32.72],distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-recognition-all",name:"牦牛识别",fillColor:"#FFE600",strokeColor:"#FFF58A",selectable:!1}]},{key:"yak-industry-points",name:"牦牛产业点位",sourceType:"geojson",dataPath:"datas/yak-industry-chain/yak_industry_points.geojson",opacity:.96,pointLabelLimit:12,showPointLabels:!1,mapView:{targetLngLat:[102.48,32.69],distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-industry-family-pasture",name:"家庭生态牧场",fillColor:"#30DCFF",strokeColor:"#C9FBFF",match:{field:"stageKey",value:"family-pasture"}},{key:"yak-industry-artificial-grassland",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",match:{field:"stageKey",value:"artificial-grassland"}},{key:"yak-industry-scale-breeding",name:"规模化养殖基地",fillColor:"#46E7FF",strokeColor:"#C9FBFF",match:{field:"stageKey",value:"scale-breeding"}},{key:"yak-industry-breeding-selection",name:"选育/扩繁基地",fillColor:"#7AEFFF",strokeColor:"#D8FAFF",matches:[{field:"categoryCode",value:"YC-BREEDING-STOCK"},{field:"categoryCode",value:"YC-CXPT-BREEDING-STOCK-BASE"}]},{key:"yak-industry-forage-storage",name:"防灾减灾",fillColor:"#25CBE8",strokeColor:"#B8F7FF",match:{field:"stageKey",value:"forage-storage"}},{key:"yak-industry-milk-source-station",name:"奶源站",fillColor:"#5CDFFF",strokeColor:"#D8FAFF",match:{field:"stageKey",value:"milk-source-station"}},{key:"yak-industry-slaughter-processing",name:"屠宰与加工",fillColor:"#1FAFD2",strokeColor:"#B8F7FF",match:{field:"stageKey",value:"slaughter-processing"}},{key:"yak-industry-farm-equipment",name:"农机装备",fillColor:"#30DCFF",strokeColor:"#C9FBFF",match:{field:"stageKey",value:"farm-equipment"}},{key:"yak-industry-forage-trade",name:"牧草交易",fillColor:"#19FFC6",strokeColor:"#B7FFF2",match:{field:"stageKey",value:"forage-trade"}},{key:"yak-industry-social-service",name:"社会化服务",fillColor:"#8AEFFF",strokeColor:"#E2FDFF",match:{field:"stageKey",value:"social-service"}}]},{key:"artificial-grassland-plots",name:"人工种草图斑",sourceType:"geojson",dataPath:"datas/yak-industry-chain/artificial_grassland_plots.geojson",opacity:.94,clipToHongyuanBoundary:!0,mapView:{targetLngLat:[102.51,32.79],distanceScale:.62,targetLocalZ:.76,duration:.9},legends:[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",match:{field:"data_status",value:"待核定"},selectable:!1}]}]},Z_=B2(B2(B2({},Li),Qm),Q_),X_=[...E8,...l8,...J_];function bf(t){return X_.find(e=>e.key===t)||E8[0]}function N8(t){return Z_[t]||[]}function j5(t,e){const n=N8(t);return n.find(a=>a.key===e)||n[0]}const ex="datas/geojsons/hongyuan-townships-screen.geojson",gl="assets/json/hongyuan-county-outline.json",tx="assets/json/中华人民共和国.json";function K4(t){return`./${t}`}const Zm=`{"name":"hongyuan_townships","type":"FeatureCollection","source":"PostGIS public.c_area where parent_code = 513233","features":[{"id":"513233100","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.439335,32.937888],[102.439465,32.937624],[102.439588,32.937381],[102.439753,32.937201],[102.439756,32.937198],[102.439918,32.937021],[102.440068,32.936829],[102.440337,32.936613],[102.440605,32.936411],[102.440872,32.936208],[102.440989,32.936044],[102.440992,32.93604],[102.440994,32.935966],[102.440914,32.935745],[102.440772,32.935619],[102.440517,32.935419],[102.440455,32.935375],[102.440916,32.935324],[102.441734,32.935456],[102.44229,32.935178],[102.442815,32.934419],[102.44351,32.933259],[102.444121,32.932655],[102.444338,32.932255],[102.444741,32.931762],[102.445596,32.931414],[102.446633,32.931069],[102.447794,32.930381],[102.448442,32.930105],[102.449001,32.929712],[102.449331,32.929353],[102.449481,32.928894],[102.449606,32.928531],[102.450068,32.928328],[102.450741,32.927976],[102.45119,32.927446],[102.451478,32.926932],[102.451945,32.926576],[102.452324,32.926121],[102.452633,32.925685],[102.453259,32.925351],[102.454021,32.925039],[102.454694,32.924668],[102.455301,32.924218],[102.455973,32.923866],[102.456693,32.923437],[102.456974,32.923193],[102.457186,32.922966],[102.457363,32.922373],[102.45741,32.921526],[102.457323,32.919772],[102.457389,32.919361],[102.457412,32.919221],[102.457434,32.919081],[102.45745,32.918523],[102.457466,32.917965],[102.457431,32.917608],[102.457395,32.917251],[102.457233,32.916949],[102.45707,32.916648],[102.45673,32.916159],[102.45639,32.915671],[102.456185,32.915263],[102.45598,32.914854],[102.455876,32.914515],[102.455771,32.914176],[102.45562,32.913855],[102.45547,32.913534],[102.455472,32.913062],[102.455474,32.912591],[102.455475,32.912157],[102.455476,32.911724],[102.455408,32.911299],[102.455341,32.910874],[102.45526,32.910487],[102.45518,32.910101],[102.45526,32.909717],[102.455339,32.909334],[102.455421,32.908864],[102.455503,32.908393],[102.455584,32.907943],[102.455666,32.907492],[102.45571,32.906751],[102.455754,32.906011],[102.455799,32.905636],[102.455844,32.905262],[102.456031,32.904303],[102.456122,32.903515],[102.456001,32.902145],[102.456207,32.898887],[102.456064,32.89765],[102.456252,32.89609],[102.456412,32.894227],[102.456305,32.892992],[102.45657,32.892425],[102.45739,32.891208],[102.458239,32.890203],[102.459053,32.889166],[102.459612,32.888305],[102.460165,32.887684],[102.460608,32.887152],[102.461397,32.887017],[102.462111,32.886972],[102.462401,32.886827],[102.462597,32.886199],[102.463022,32.885034],[102.463218,32.884437],[102.46356,32.883691],[102.463871,32.882795],[102.463611,32.881887],[102.463009,32.880491],[102.463072,32.879529],[102.463198,32.87887],[102.463539,32.878155],[102.464274,32.877387],[102.464908,32.876407],[102.465427,32.875726],[102.466434,32.874182],[102.466629,32.873584],[102.466789,32.872955],[102.466809,32.872264],[102.466829,32.871572],[102.467217,32.870467],[102.468038,32.869159],[102.469019,32.867284],[102.469365,32.866388],[102.469819,32.865465],[102.469976,32.864956],[102.470434,32.863912],[102.471528,32.861768],[102.471984,32.860785],[102.472222,32.859947],[102.472702,32.859232],[102.47278,32.859116],[102.473231,32.858282],[102.473931,32.857514],[102.474161,32.857282],[102.474545,32.856895],[102.475173,32.856433],[102.476142,32.856205],[102.477274,32.855889],[102.478111,32.85559],[102.479001,32.855337],[102.480214,32.854978],[102.481052,32.854679],[102.481971,32.854314],[102.483244,32.85373],[102.484003,32.853362],[102.484649,32.853194],[102.485238,32.853184],[102.486127,32.852953],[102.486855,32.85272],[102.487537,32.852254],[102.48862,32.851531],[102.489742,32.850826],[102.490281,32.850567],[102.490759,32.850338],[102.491861,32.849463],[102.492679,32.848706],[102.49356,32.847885],[102.494546,32.847029],[102.495856,32.8459],[102.496385,32.845276],[102.496502,32.84486],[102.496437,32.84449],[102.496327,32.84412],[102.496249,32.843674],[102.496027,32.843048],[102.495721,32.842674],[102.495537,32.842264],[102.495224,32.841623],[102.494771,32.840636],[102.494555,32.840302],[102.494596,32.839754],[102.49473,32.839101],[102.494919,32.838241],[102.495116,32.837687],[102.495393,32.837247],[102.495484,32.836942],[102.495488,32.836897],[102.49553,32.836469],[102.495487,32.835659],[102.495517,32.835172],[102.495307,32.834429],[102.495258,32.833215],[102.495287,32.832198],[102.495507,32.830836],[102.495588,32.830294],[102.495721,32.829684],[102.495954,32.829005],[102.497083,32.826899],[102.4977,32.82604],[102.498076,32.825525],[102.498227,32.824722],[102.498463,32.82366],[102.498588,32.8229],[102.498942,32.82221],[102.49959,32.821199],[102.500151,32.820513],[102.500339,32.820256],[102.500413,32.820158],[102.500798,32.819848],[102.501091,32.819456],[102.501299,32.818746],[102.501321,32.817952],[102.500655,32.817166],[102.500433,32.816903],[102.499831,32.816281],[102.49959,32.815689],[102.499278,32.814855],[102.498883,32.814215],[102.498573,32.813294],[102.498437,32.812638],[102.498223,32.81198],[102.497608,32.810922],[102.497089,32.810106],[102.496219,32.808956],[102.495557,32.807723],[102.495094,32.806909],[102.495091,32.806903],[102.495059,32.806847],[102.495058,32.806845],[102.495057,32.806843],[102.495026,32.80679],[102.494254,32.805432],[102.493553,32.80433],[102.493538,32.804306],[102.492419,32.802825],[102.491777,32.801788],[102.491803,32.800895],[102.491908,32.80052],[102.49192,32.800476],[102.492233,32.799358],[102.492391,32.799006],[102.494832,32.793593],[102.494849,32.793556],[102.494882,32.793483],[102.4949,32.793443],[102.494913,32.793415],[102.494921,32.793398],[102.495295,32.792567],[102.495311,32.792533],[102.495326,32.792499],[102.495339,32.792471],[102.495353,32.792439],[102.495357,32.79243],[102.495368,32.792407],[102.495601,32.791966],[102.495631,32.791908],[102.495664,32.791847],[102.495681,32.791814],[102.495701,32.791776],[102.495741,32.791699],[102.495743,32.791696],[102.495942,32.79132],[102.495957,32.791291],[102.495958,32.79129],[102.495977,32.791253],[102.496141,32.790943],[102.496206,32.790821],[102.496227,32.790781],[102.496484,32.790294],[102.497119,32.790656],[102.497803,32.791083],[102.498545,32.791294],[102.499195,32.791265],[102.499216,32.791264],[102.499671,32.79104],[102.499896,32.790929],[102.500526,32.790463],[102.500871,32.790208],[102.500808,32.789908],[102.500816,32.789612],[102.500825,32.789283],[102.500832,32.789058],[102.500834,32.788964],[102.500847,32.788526],[102.50085,32.788408],[102.500866,32.78783],[102.500876,32.78749],[102.500958,32.787305],[102.501171,32.786828],[102.501244,32.786663],[102.501361,32.786554],[102.50146,32.786461],[102.5015,32.786423],[102.501756,32.786183],[102.501785,32.786155],[102.501844,32.7861],[102.501849,32.786096],[102.501853,32.786092],[102.501884,32.786081],[102.501923,32.786069],[102.501936,32.786064],[102.503049,32.785698],[102.503785,32.785738],[102.504006,32.78575],[102.504282,32.785765],[102.505311,32.786035],[102.50592,32.786141],[102.506392,32.786224],[102.507623,32.786374],[102.508449,32.786849],[102.508526,32.787282],[102.508552,32.787428],[102.50862,32.787812],[102.508444,32.788136],[102.508389,32.788239],[102.508151,32.788678],[102.50812,32.788804],[102.508079,32.78897],[102.508047,32.789097],[102.507965,32.789429],[102.507873,32.789799],[102.508191,32.79008],[102.50821,32.790098],[102.508393,32.790092],[102.508606,32.790085],[102.50869,32.790082],[102.508743,32.79008],[102.509001,32.790072],[102.509164,32.790003],[102.509337,32.78993],[102.509383,32.789911],[102.509469,32.789874],[102.50972,32.789768],[102.509851,32.789713],[102.510266,32.789151],[102.510518,32.788809],[102.510992,32.787734],[102.510969,32.786816],[102.510549,32.786278],[102.510517,32.786236],[102.51011,32.785714],[102.508457,32.784805],[102.507301,32.783739],[102.507134,32.782651],[102.5074,32.781989],[102.507766,32.781748],[102.507803,32.781723],[102.507897,32.781662],[102.507932,32.781638],[102.507953,32.781625],[102.508188,32.781549],[102.508198,32.781545],[102.508199,32.781545],[102.508275,32.78152],[102.508286,32.781517],[102.5088,32.78135],[102.509279,32.781286],[102.509771,32.78122],[102.509817,32.781214],[102.50989,32.781205],[102.509912,32.781178],[102.510009,32.781062],[102.510009,32.781062],[102.510009,32.781062],[102.510024,32.781043],[102.510073,32.780984],[102.510178,32.780858],[102.510189,32.780845],[102.510189,32.780845],[102.510189,32.780845],[102.510189,32.780844],[102.510197,32.780835],[102.510201,32.78083],[102.510266,32.780757],[102.510271,32.780752],[102.510617,32.78036],[102.511574,32.779277],[102.512155,32.777913],[102.512186,32.777831],[102.512259,32.77764],[102.51306,32.775553],[102.513343,32.774527],[102.513609,32.773562],[102.513882,32.772608],[102.514105,32.771694],[102.514966,32.769167],[102.515443,32.767967],[102.515761,32.76718],[102.515981,32.766392],[102.516656,32.765196],[102.517578,32.764004],[102.517273,32.762538],[102.517102,32.761576],[102.516983,32.76053],[102.517079,32.758864],[102.517078,32.757112],[102.516861,32.756023],[102.516244,32.755135],[102.515087,32.754152],[102.513051,32.752819],[102.510977,32.751402],[102.510096,32.7508],[102.50903,32.750069],[102.508823,32.749863],[102.507986,32.749029],[102.507648,32.748691],[102.507493,32.748537],[102.507251,32.748257],[102.50593,32.746729],[102.505915,32.746712],[102.504698,32.744352],[102.504056,32.742587],[102.504051,32.742242],[102.504047,32.741937],[102.504039,32.741419],[102.50403,32.741365],[102.503859,32.740319],[102.503744,32.739619],[102.503789,32.737993],[102.503308,32.735207],[102.502777,32.733942],[102.5027,32.733757],[102.502649,32.733637],[102.502644,32.733493],[102.502609,32.732461],[102.502601,32.732227],[102.502637,32.730957],[102.502662,32.730055],[102.502664,32.729988],[102.502666,32.729885],[102.502669,32.729781],[102.502643,32.72915],[102.502617,32.728519],[102.502505,32.727813],[102.502393,32.727106],[102.501973,32.72643],[102.501553,32.725754],[102.50109,32.725033],[102.500627,32.724311],[102.500346,32.724151],[102.500065,32.72399],[102.499828,32.723692],[102.499592,32.723394],[102.499438,32.723063],[102.499284,32.722732],[102.499112,32.722315],[102.49894,32.721898],[102.498832,32.721361],[102.498725,32.720824],[102.498577,32.720269],[102.49843,32.719715],[102.498422,32.719266],[102.498414,32.718818],[102.498409,32.718248],[102.498405,32.717679],[102.498375,32.717282],[102.498345,32.716885],[102.497995,32.716291],[102.497644,32.715698],[102.497412,32.715245],[102.49718,32.714792],[102.49707,32.714359],[102.496959,32.713925],[102.496531,32.71321],[102.496102,32.712494],[102.495767,32.712073],[102.495432,32.711653],[102.495136,32.711285],[102.49484,32.710917],[102.494348,32.710286],[102.493856,32.709655],[102.493385,32.708991],[102.492914,32.708326],[102.492622,32.707803],[102.492331,32.707279],[102.492025,32.706549],[102.491719,32.705819],[102.491631,32.705317],[102.491543,32.704815],[102.491399,32.704139],[102.491255,32.703464],[102.491183,32.702962],[102.491175,32.702907],[102.491104,32.702415],[102.49109,32.702322],[102.491064,32.702137],[102.491016,32.701804],[102.490906,32.699904],[102.490842,32.699282],[102.49058,32.698415],[102.490532,32.698391],[102.490429,32.696549],[102.49061,32.695897],[102.491319,32.695325],[102.492317,32.694655],[102.493923,32.694136],[102.495114,32.693815],[102.496321,32.69363],[102.496712,32.693571],[102.497331,32.693371],[102.497618,32.693278],[102.499003,32.69334],[102.499525,32.693627],[102.500211,32.693882],[102.500386,32.693993],[102.500492,32.69406],[102.503889,32.695851],[102.505234,32.696437],[102.50583,32.696696],[102.506688,32.696966],[102.507444,32.697203],[102.507934,32.69736],[102.509215,32.697769],[102.509502,32.697861],[102.511166,32.698065],[102.511348,32.698088],[102.512285,32.698152],[102.513131,32.69821],[102.514262,32.698288],[102.514305,32.69829],[102.515414,32.698343],[102.515438,32.698344],[102.515484,32.698346],[102.515608,32.698352],[102.515754,32.698359],[102.515777,32.69836],[102.515786,32.698361],[102.515943,32.698368],[102.516141,32.698341],[102.51627,32.698323],[102.517149,32.698202],[102.517151,32.698202],[102.517204,32.698194],[102.517212,32.698193],[102.517738,32.698121],[102.517768,32.698116],[102.517795,32.698113],[102.517796,32.698113],[102.517796,32.698112],[102.517859,32.698104],[102.518122,32.698068],[102.518648,32.697995],[102.519425,32.697971],[102.523039,32.697861],[102.523164,32.697857],[102.523367,32.697851],[102.525392,32.697701],[102.526433,32.697797],[102.526799,32.697831],[102.527351,32.697882],[102.528949,32.697838],[102.529879,32.697813],[102.53041,32.697799],[102.531396,32.697772],[102.534147,32.697731],[102.535597,32.698092],[102.536601,32.698301],[102.535798,32.696909],[102.535783,32.696847],[102.535735,32.696639],[102.535447,32.695384],[102.535047,32.694857],[102.534739,32.69445],[102.533876,32.693312],[102.533356,32.692665],[102.533055,32.69229],[102.531977,32.690949],[102.530923,32.689729],[102.530726,32.689501],[102.529985,32.687872],[102.529975,32.687791],[102.529975,32.687791],[102.529948,32.68758],[102.52993,32.687429],[102.529755,32.686017],[102.529572,32.684969],[102.529523,32.684686],[102.529464,32.68435],[102.528939,32.683058],[102.528298,32.681492],[102.528275,32.681436],[102.52822,32.681302],[102.528097,32.681001],[102.527947,32.680656],[102.527779,32.68027],[102.527495,32.679618],[102.527282,32.679131],[102.5272,32.678942],[102.527029,32.678396],[102.526736,32.677462],[102.526578,32.676968],[102.526549,32.676878],[102.525959,32.675027],[102.525806,32.674549],[102.525301,32.672498],[102.525214,32.671594],[102.524742,32.670868],[102.52453,32.670541],[102.524245,32.670104],[102.523542,32.669141],[102.522782,32.668224],[102.522027,32.667118],[102.521565,32.66664],[102.521381,32.665338],[102.521091,32.66394],[102.521115,32.663059],[102.521262,32.661717],[102.521132,32.660462],[102.520796,32.658739],[102.52047,32.656645],[102.520043,32.65554],[102.520021,32.655484],[102.51988,32.65512],[102.519855,32.655056],[102.519503,32.653935],[102.519496,32.652172],[102.519915,32.650928],[102.520001,32.64977],[102.52031,32.648524],[102.520448,32.647506],[102.520916,32.646448],[102.521664,32.645164],[102.523307,32.643248],[102.523992,32.642241],[102.524899,32.641192],[102.525754,32.640003],[102.526438,32.639042],[102.527296,32.63776],[102.52798,32.6368],[102.529309,32.636316],[102.530926,32.635327],[102.53276,32.634435],[102.534097,32.633673],[102.535564,32.632125],[102.536416,32.631074],[102.537873,32.629897],[102.539552,32.628631],[102.540786,32.627635],[102.542642,32.625908],[102.543939,32.624588],[102.544679,32.623582],[102.546576,32.622367],[102.548618,32.62185],[102.550262,32.621882],[102.550863,32.62194],[102.552375,32.620764],[102.552711,32.620455],[102.554006,32.619265],[102.554907,32.618354],[102.555649,32.617302],[102.556441,32.61639],[102.556752,32.615004],[102.557392,32.613671],[102.558409,32.612531],[102.55848,32.612442],[102.559204,32.611526],[102.559138,32.611041],[102.559021,32.610177],[102.559016,32.609776],[102.559003,32.608832],[102.557939,32.607651],[102.557933,32.607364],[102.557927,32.607061],[102.557915,32.606495],[102.557963,32.606542],[102.558981,32.607625],[102.560591,32.608863],[102.561153,32.609302],[102.561452,32.609536],[102.562163,32.610092],[102.562416,32.61029],[102.563718,32.611475],[102.563974,32.611707],[102.564395,32.612091],[102.566533,32.614127],[102.568248,32.615552],[102.569487,32.616365],[102.57126,32.617698],[102.571601,32.618039],[102.571581,32.617982],[102.571868,32.617478],[102.573049,32.616387],[102.573846,32.615289],[102.575478,32.613697],[102.576709,32.612793],[102.578108,32.611707],[102.57961,32.610901],[102.581008,32.609861],[102.58152,32.609175],[102.581482,32.608525],[102.582228,32.607287],[102.582898,32.606836],[102.595355,32.615193],[102.595396,32.615221],[102.595497,32.615288],[102.597516,32.615606],[102.600068,32.616536],[102.600466,32.6167],[102.601329,32.617056],[102.601357,32.617067],[102.60143,32.617097],[102.601474,32.617115],[102.602038,32.617348],[102.602074,32.617363],[102.603269,32.617757],[102.605241,32.617794],[102.606198,32.617958],[102.606199,32.617958],[102.606214,32.617961],[102.606222,32.617962],[102.606245,32.617966],[102.606769,32.618055],[102.608017,32.618543],[102.611033,32.618641],[102.611136,32.618644],[102.61119,32.618646],[102.611467,32.618655],[102.611469,32.618655],[102.61147,32.618655],[102.611682,32.618659],[102.61174,32.61866],[102.611765,32.618661],[102.611947,32.618664],[102.612932,32.618683],[102.613188,32.618688],[102.613201,32.618688],[102.613203,32.618688],[102.613205,32.618688],[102.613217,32.618688],[102.613434,32.618693],[102.613437,32.618693],[102.61344,32.618693],[102.613601,32.618651],[102.614268,32.618476],[102.615713,32.617715],[102.615849,32.617619],[102.615852,32.617617],[102.615854,32.617616],[102.615859,32.617612],[102.615932,32.61756],[102.615944,32.617552],[102.615944,32.617552],[102.616607,32.617083],[102.617115,32.616743],[102.61789,32.616226],[102.619166,32.615647],[102.620392,32.614882],[102.621617,32.614163],[102.623002,32.613632],[102.623637,32.613392],[102.624053,32.613234],[102.625465,32.612859],[102.626312,32.612569],[102.626329,32.612585],[102.626375,32.612629],[102.626531,32.612777],[102.626681,32.61292],[102.626827,32.612922],[102.627185,32.612929],[102.627266,32.612851],[102.62729,32.612828],[102.6273,32.612826],[102.627376,32.6128],[102.627426,32.612784],[102.627436,32.612777],[102.627505,32.612733],[102.62755,32.612693],[102.62759,32.612638],[102.627626,32.612589],[102.627674,32.612539],[102.627798,32.612493],[102.62785,32.612473],[102.627877,32.612463],[102.62808,32.612387],[102.62836,32.612499],[102.628543,32.612715],[102.628723,32.613065],[102.628698,32.613319],[102.628681,32.613503],[102.628679,32.613517],[102.628628,32.613684],[102.628542,32.613967],[102.62847,32.614105],[102.628316,32.614403],[102.62831,32.614415],[102.628235,32.614866],[102.628255,32.614951],[102.628268,32.615004],[102.62832,32.615214],[102.628718,32.615648],[102.628707,32.616047],[102.628701,32.616074],[102.628674,32.616187],[102.628667,32.616217],[102.628664,32.616229],[102.628652,32.616278],[102.628642,32.616651],[102.629347,32.617432],[102.629352,32.617438],[102.629432,32.617523],[102.629476,32.617571],[102.629496,32.617618],[102.629805,32.617975],[102.629966,32.618136],[102.629823,32.618645],[102.629676,32.619029],[102.629742,32.619184],[102.629706,32.619233],[102.62964,32.619268],[102.629637,32.619291],[102.629667,32.619343],[102.629676,32.619332],[102.629685,32.619322],[102.629696,32.619316],[102.629706,32.619314],[102.629723,32.619315],[102.629733,32.619318],[102.629744,32.61932],[102.629753,32.619317],[102.629764,32.619314],[102.629778,32.61931],[102.629793,32.619302],[102.629809,32.619339],[102.629822,32.61937],[102.629827,32.619381],[102.629977,32.61973],[102.629992,32.619847],[102.629994,32.619862],[102.630003,32.619926],[102.630005,32.619941],[102.629952,32.61994],[102.629819,32.619935],[102.629754,32.619921],[102.629754,32.619986],[102.629772,32.620038],[102.629837,32.6201],[102.62995,32.620178],[102.630051,32.620293],[102.630053,32.620312],[102.630123,32.620981],[102.630125,32.620995],[102.630126,32.621009],[102.630058,32.621094],[102.62992,32.621268],[102.629905,32.621285],[102.62987,32.62133],[102.629701,32.621542],[102.629432,32.621508],[102.629422,32.621507],[102.629337,32.621496],[102.629301,32.621469],[102.629291,32.621447],[102.629277,32.621429],[102.629255,32.621422],[102.629226,32.621418],[102.629193,32.62141],[102.629176,32.621402],[102.629144,32.621379],[102.629104,32.62135],[102.629037,32.6213],[102.628969,32.621235],[102.628932,32.621183],[102.628787,32.621071],[102.628766,32.621054],[102.628634,32.620953],[102.628627,32.620947],[102.62862,32.620942],[102.628506,32.620979],[102.628067,32.621125],[102.628003,32.621367],[102.628,32.62138],[102.627998,32.621386],[102.627984,32.621442],[102.627975,32.621437],[102.627959,32.621436],[102.627948,32.621443],[102.627935,32.621453],[102.62792,32.621467],[102.627909,32.621483],[102.627888,32.621522],[102.627879,32.621572],[102.627881,32.621591],[102.627898,32.621606],[102.627902,32.62163],[102.627901,32.621655],[102.627898,32.621668],[102.627882,32.621691],[102.627867,32.621707],[102.627858,32.621721],[102.627851,32.621739],[102.62785,32.621752],[102.627858,32.621771],[102.627875,32.62179],[102.627891,32.621803],[102.627905,32.621813],[102.627927,32.621828],[102.627935,32.621842],[102.627948,32.62186],[102.627964,32.621917],[102.627975,32.621956],[102.627994,32.621985],[102.628022,32.622004],[102.628054,32.622022],[102.628104,32.622059],[102.628127,32.622091],[102.628151,32.62213],[102.628165,32.622161],[102.628187,32.622181],[102.628255,32.622197],[102.628282,32.622188],[102.628293,32.62217],[102.628308,32.622136],[102.628316,32.62211],[102.628335,32.622086],[102.628362,32.622051],[102.628477,32.622093],[102.628496,32.622101],[102.628513,32.622107],[102.629041,32.622303],[102.629232,32.62257],[102.629246,32.622589],[102.629314,32.622685],[102.62935,32.622734],[102.629267,32.622988],[102.6292,32.623195],[102.629142,32.62327],[102.628935,32.623537],[102.628803,32.623708],[102.628717,32.623675],[102.628588,32.623785],[102.628561,32.623796],[102.628508,32.623811],[102.628444,32.623818],[102.628397,32.623817],[102.628334,32.623809],[102.628151,32.623761],[102.628085,32.623727],[102.628041,32.6237],[102.627983,32.623639],[102.627966,32.623628],[102.627846,32.623551],[102.627745,32.623485],[102.627731,32.623476],[102.627692,32.623327],[102.627689,32.62332],[102.627606,32.62301],[102.627439,32.622946],[102.627307,32.622987],[102.627155,32.623061],[102.627064,32.623118],[102.626988,32.623223],[102.626967,32.623244],[102.626954,32.623277],[102.626951,32.623303],[102.626953,32.62333],[102.626956,32.623352],[102.626971,32.623374],[102.626959,32.623484],[102.626953,32.623539],[102.626957,32.623553],[102.626967,32.623588],[102.62712,32.624122],[102.627112,32.624435],[102.627111,32.624469],[102.62711,32.624521],[102.62711,32.624529],[102.627108,32.624593],[102.627107,32.624623],[102.627102,32.624818],[102.626968,32.625182],[102.626961,32.625203],[102.626845,32.625518],[102.62684,32.625532],[102.626807,32.625624],[102.626673,32.625666],[102.626607,32.625687],[102.626576,32.625697],[102.626268,32.625571],[102.626079,32.625494],[102.626004,32.625364],[102.625994,32.625347],[102.625986,32.625333],[102.62593,32.625237],[102.625926,32.62523],[102.625921,32.625222],[102.625551,32.624586],[102.625533,32.624554],[102.625402,32.624458],[102.625295,32.624371],[102.625161,32.624285],[102.625082,32.624253],[102.624971,32.624253],[102.624876,32.624273],[102.624863,32.624273],[102.624486,32.624265],[102.624463,32.624281],[102.6244,32.624549],[102.624322,32.624879],[102.624313,32.624919],[102.624345,32.624987],[102.624561,32.625447],[102.624576,32.625477],[102.624597,32.625522],[102.624909,32.626185],[102.62493,32.626229],[102.624939,32.626249],[102.624943,32.626257],[102.624968,32.62631],[102.625048,32.62648],[102.625074,32.626704],[102.625101,32.626937],[102.625159,32.627448],[102.625147,32.627908],[102.625142,32.628097],[102.625134,32.628414],[102.625085,32.628451],[102.625078,32.628456],[102.625051,32.628476],[102.625035,32.628488],[102.624528,32.628867],[102.623886,32.62897],[102.623359,32.628922],[102.623298,32.628917],[102.62321,32.628868],[102.623081,32.628828],[102.623011,32.628821],[102.622941,32.628825],[102.622907,32.628829],[102.622837,32.628835],[102.622801,32.628841],[102.622773,32.628851],[102.622737,32.628865],[102.622691,32.62887],[102.622669,32.628869],[102.622627,32.628872],[102.622586,32.628892],[102.62256,32.628907],[102.622477,32.628922],[102.622437,32.628921],[102.622382,32.628908],[102.622343,32.628893],[102.622286,32.628878],[102.622224,32.628867],[102.622158,32.62891],[102.622102,32.628946],[102.622087,32.628956],[102.621826,32.629125],[102.621924,32.629313],[102.622001,32.629462],[102.622026,32.629509],[102.622036,32.629529],[102.622083,32.629619],[102.622088,32.62963],[102.622102,32.629657],[102.622103,32.629658],[102.62213,32.62971],[102.622201,32.630485],[102.621778,32.630941],[102.621737,32.630955],[102.621642,32.630987],[102.62132,32.631097],[102.621303,32.631102],[102.621273,32.631113],[102.621132,32.63116],[102.621124,32.63147],[102.621219,32.631604],[102.621237,32.63163],[102.621257,32.631659],[102.621344,32.631783],[102.621662,32.632008],[102.62168,32.632021],[102.621807,32.632111],[102.62184,32.632134],[102.621846,32.632138],[102.622017,32.63226],[102.622075,32.632303],[102.622331,32.632498],[102.62236,32.633117],[102.622267,32.633335],[102.622172,32.63356],[102.622179,32.633564],[102.622182,32.633571],[102.62218,32.633586],[102.622175,32.633609],[102.622148,32.633676],[102.622103,32.633843],[102.622076,32.634029],[102.62207,32.634117],[102.62207,32.634127],[102.622046,32.634175],[102.622042,32.63418],[102.621986,32.63425],[102.621964,32.634275],[102.621963,32.634307],[102.622031,32.63443],[102.62205,32.634464],[102.622065,32.634459],[102.622082,32.634455],[102.622451,32.634349],[102.622557,32.634319],[102.622692,32.634199],[102.622783,32.634119],[102.622798,32.634106],[102.623071,32.633865],[102.623628,32.633527],[102.62409,32.633596],[102.624173,32.633609],[102.624181,32.63361],[102.624188,32.633651],[102.624189,32.633673],[102.624192,32.633697],[102.624198,32.633719],[102.62421,32.633742],[102.624223,32.633759],[102.624231,32.633768],[102.624238,32.633779],[102.624254,32.633795],[102.624258,32.63382],[102.624256,32.633857],[102.624248,32.633897],[102.624231,32.633945],[102.624174,32.63402],[102.624144,32.634063],[102.624138,32.63412],[102.624132,32.634145],[102.624124,32.634171],[102.624101,32.634209],[102.624072,32.634278],[102.624045,32.634351],[102.624022,32.634379],[102.623969,32.634443],[102.623941,32.63451],[102.623929,32.634542],[102.623897,32.634583],[102.623857,32.634616],[102.623806,32.63465],[102.623756,32.634668],[102.623701,32.634688],[102.62364,32.63472],[102.623581,32.634765],[102.623512,32.634789],[102.623474,32.634804],[102.623455,32.634817],[102.623413,32.634838],[102.623364,32.634868],[102.623309,32.634889],[102.623291,32.634903],[102.623269,32.634927],[102.623259,32.634943],[102.623261,32.634973],[102.623142,32.635072],[102.623045,32.635153],[102.622988,32.635201],[102.622961,32.635228],[102.622952,32.635249],[102.622945,32.635277],[102.622929,32.635292],[102.622802,32.635406],[102.622701,32.635752],[102.622867,32.635874],[102.622872,32.635878],[102.622878,32.635882],[102.62297,32.63595],[102.623011,32.635951],[102.623025,32.635951],[102.623085,32.635952],[102.623155,32.635954],[102.623158,32.635977],[102.62319,32.636023],[102.623213,32.63605],[102.623236,32.636054],[102.623311,32.636038],[102.623358,32.636024],[102.623391,32.636009],[102.623423,32.635991],[102.623449,32.635967],[102.623472,32.635938],[102.623492,32.635916],[102.623549,32.635903],[102.623579,32.635904],[102.62358,32.63588],[102.623595,32.635824],[102.623799,32.635695],[102.623853,32.635693],[102.623899,32.63569],[102.623957,32.635651],[102.624033,32.635618],[102.624089,32.635615],[102.624154,32.635618],[102.624212,32.635638],[102.624273,32.635671],[102.624291,32.635699],[102.624297,32.635714],[102.624304,32.635733],[102.624326,32.635751],[102.624414,32.635802],[102.624521,32.635878],[102.624568,32.635921],[102.624609,32.635969],[102.624567,32.636049],[102.624422,32.636326],[102.624076,32.636571],[102.62406,32.636582],[102.623961,32.636569],[102.62384,32.636548],[102.623661,32.636536],[102.623709,32.636569],[102.623736,32.636598],[102.623227,32.636612],[102.622619,32.636891],[102.622579,32.636909],[102.622242,32.637317],[102.622202,32.637366],[102.622087,32.637586],[102.622061,32.637636],[102.621961,32.637825],[102.621974,32.637859],[102.622075,32.638137],[102.62212,32.638188],[102.622146,32.638221],[102.622178,32.63827],[102.622197,32.638314],[102.622209,32.638351],[102.622218,32.638381],[102.622226,32.638408],[102.622234,32.638433],[102.622298,32.638459],[102.622581,32.638572],[102.623273,32.638314],[102.623511,32.638309],[102.623522,32.638308],[102.623826,32.638301],[102.623867,32.6383],[102.623922,32.638299],[102.624188,32.638293],[102.624339,32.638636],[102.624446,32.638877],[102.624478,32.639223],[102.624517,32.639652],[102.623913,32.640027],[102.623183,32.640013],[102.622984,32.64022],[102.622942,32.640263],[102.622854,32.640355],[102.622852,32.640433],[102.62285,32.640505],[102.622849,32.640525],[102.622841,32.640819],[102.623331,32.64133],[102.623925,32.641303],[102.623956,32.641283],[102.624108,32.641187],[102.624211,32.641122],[102.624265,32.641052],[102.624306,32.640993],[102.624365,32.640937],[102.624426,32.640901],[102.62453,32.640866],[102.624653,32.640854],[102.624669,32.640847],[102.624709,32.640828],[102.625131,32.64063],[102.625683,32.640524],[102.625755,32.64051],[102.625866,32.640489],[102.62595,32.640439],[102.625997,32.640411],[102.625998,32.640401],[102.625999,32.640385],[102.626011,32.640364],[102.626022,32.640335],[102.626074,32.640276],[102.626099,32.640264],[102.626126,32.640256],[102.626136,32.640243],[102.626141,32.640219],[102.626143,32.640198],[102.626149,32.640171],[102.626168,32.64015],[102.626254,32.640108],[102.62629,32.640105],[102.626311,32.640101],[102.626332,32.640083],[102.62635,32.640055],[102.626389,32.64003],[102.62647,32.63998],[102.626546,32.639963],[102.626613,32.639958],[102.626673,32.639961],[102.626713,32.639973],[102.626732,32.639974],[102.626748,32.639965],[102.626824,32.639888],[102.626915,32.639796],[102.626928,32.639782],[102.626942,32.639769],[102.627123,32.639585],[102.627629,32.639479],[102.627741,32.639565],[102.627942,32.639717],[102.627959,32.639744],[102.628013,32.639828],[102.62806,32.639901],[102.628118,32.639991],[102.628064,32.640045],[102.62797,32.640143],[102.627601,32.640522],[102.627319,32.64076],[102.62712,32.640927],[102.627,32.641052],[102.626767,32.641306],[102.626634,32.641435],[102.626569,32.641496],[102.62656,32.641504],[102.626511,32.641553],[102.626462,32.641605],[102.626407,32.641713],[102.626391,32.641751],[102.626374,32.641763],[102.626358,32.64177],[102.626363,32.641808],[102.626415,32.642201],[102.626588,32.642396],[102.626576,32.642456],[102.626578,32.642495],[102.626596,32.642531],[102.626611,32.642578],[102.626647,32.642619],[102.626737,32.64267],[102.626794,32.642697],[102.626824,32.642728],[102.626845,32.642772],[102.626865,32.642816],[102.626893,32.642851],[102.626939,32.642875],[102.626987,32.642894],[102.627103,32.642935],[102.627155,32.642935],[102.627443,32.643145],[102.627452,32.643152],[102.627463,32.643137],[102.627548,32.643157],[102.627593,32.643198],[102.62762,32.643225],[102.627652,32.643251],[102.627683,32.643285],[102.627716,32.643315],[102.627736,32.64333],[102.627768,32.643337],[102.6278,32.643345],[102.627833,32.643358],[102.627792,32.643357],[102.627773,32.643365],[102.62774,32.643381],[102.628065,32.643701],[102.628129,32.644746],[102.627714,32.644922],[102.627697,32.644929],[102.627553,32.64499],[102.627505,32.64501],[102.627494,32.645015],[102.627344,32.645079],[102.6272,32.645298],[102.627197,32.645303],[102.627184,32.645323],[102.627124,32.645413],[102.627088,32.645468],[102.627083,32.645475],[102.626868,32.645804],[102.626742,32.645906],[102.626733,32.645913],[102.626614,32.64601],[102.626595,32.646025],[102.626583,32.646035],[102.626573,32.646042],[102.626216,32.646332],[102.62622,32.646374],[102.62622,32.646402],[102.626223,32.646432],[102.626223,32.646445],[102.626216,32.646457],[102.626213,32.64646],[102.626202,32.646444],[102.626178,32.646418],[102.626159,32.646395],[102.626103,32.646457],[102.625867,32.646721],[102.625842,32.64675],[102.625832,32.64676],[102.625811,32.646784],[102.625664,32.646948],[102.625602,32.64702],[102.625589,32.647488],[102.625589,32.64752],[102.626006,32.647629],[102.626156,32.647669],[102.626168,32.647672],[102.626224,32.647686],[102.626356,32.647689],[102.626417,32.64769],[102.627092,32.647703],[102.627145,32.647682],[102.627165,32.647674],[102.627176,32.647669],[102.627375,32.647589],[102.627409,32.647608],[102.627459,32.647624],[102.627493,32.647633],[102.627567,32.647637],[102.627595,32.647639],[102.627609,32.647639],[102.627673,32.647635],[102.6277,32.647623],[102.627723,32.647608],[102.627735,32.647597],[102.627746,32.647577],[102.62775,32.647559],[102.627754,32.647544],[102.62776,32.647528],[102.62777,32.647517],[102.627785,32.647505],[102.627799,32.647495],[102.627818,32.647486],[102.627844,32.647475],[102.627853,32.647466],[102.627855,32.647458],[102.627854,32.647442],[102.627842,32.64742],[102.627824,32.647393],[102.627784,32.647345],[102.627867,32.647264],[102.628276,32.646863],[102.628302,32.646837],[102.628404,32.646834],[102.628425,32.646834],[102.628551,32.646831],[102.628614,32.646829],[102.629217,32.646815],[102.629469,32.646928],[102.629532,32.646956],[102.629548,32.646963],[102.629681,32.647056],[102.629731,32.647103],[102.629766,32.647138],[102.629792,32.647173],[102.629891,32.647289],[102.629906,32.647337],[102.62991,32.647343],[102.629915,32.647354],[102.629915,32.647365],[102.629909,32.647389],[102.629887,32.647434],[102.629857,32.647492],[102.629771,32.647687],[102.629718,32.647744],[102.629659,32.647782],[102.629628,32.647802],[102.629597,32.647817],[102.629574,32.647841],[102.629543,32.647885],[102.629498,32.647951],[102.629481,32.647999],[102.629461,32.648035],[102.629418,32.648096],[102.629399,32.648129],[102.629374,32.648141],[102.62936,32.648141],[102.629346,32.648138],[102.629329,32.648163],[102.629271,32.648247],[102.62919,32.648367],[102.629165,32.648404],[102.628938,32.648743],[102.628923,32.649284],[102.629463,32.649603],[102.63037,32.649878],[102.630377,32.649879],[102.630687,32.649974],[102.631415,32.649935],[102.63174,32.649917],[102.631907,32.649842],[102.632467,32.649588],[102.63248,32.649583],[102.632512,32.649549],[102.632541,32.649519],[102.632558,32.649501],[102.632808,32.649241],[102.632096,32.648532],[102.632101,32.648348],[102.632104,32.648217],[102.632105,32.648184],[102.63231,32.648166],[102.632396,32.648214],[102.632522,32.648303],[102.632706,32.648412],[102.632804,32.648476],[102.632908,32.648529],[102.633005,32.648566],[102.633071,32.648598],[102.633136,32.648631],[102.633158,32.648647],[102.633183,32.648672],[102.633203,32.648688],[102.63322,32.648699],[102.63325,32.648698],[102.633258,32.648684],[102.633277,32.648675],[102.633296,32.648666],[102.633326,32.64866],[102.633338,32.648674],[102.633357,32.648718],[102.633373,32.648769],[102.633404,32.648827],[102.633469,32.648894],[102.633506,32.648948],[102.63354,32.649026],[102.633557,32.64912],[102.633595,32.649235],[102.633619,32.64936],[102.633615,32.649434],[102.633605,32.649544],[102.63359,32.64957],[102.633585,32.649578],[102.633564,32.6496],[102.633558,32.649691],[102.63359,32.64969],[102.633645,32.649691],[102.633705,32.649915],[102.63402,32.650076],[102.634284,32.650011],[102.634653,32.64992],[102.634894,32.64986],[102.634957,32.64984],[102.634991,32.649829],[102.635004,32.649825],[102.635153,32.649776],[102.635178,32.649768],[102.63568,32.649603],[102.63569,32.649598],[102.635796,32.649538],[102.636105,32.649366],[102.636118,32.649359],[102.636256,32.649282],[102.63628,32.649268],[102.636376,32.648927],[102.636395,32.648859],[102.636432,32.64873],[102.636436,32.648687],[102.636437,32.64868],[102.636494,32.648112],[102.636641,32.64806],[102.636676,32.648048],[102.636895,32.64797],[102.636909,32.647966],[102.637508,32.64809],[102.637607,32.648111],[102.637703,32.6482],[102.63779,32.648292],[102.637878,32.648376],[102.637928,32.648438],[102.637953,32.648494],[102.637989,32.648553],[102.638039,32.648598],[102.638128,32.64867],[102.638176,32.64872],[102.638258,32.648789],[102.638374,32.649146],[102.638398,32.649219],[102.638403,32.649235],[102.638406,32.649244],[102.638427,32.649308],[102.63844,32.649372],[102.638405,32.649414],[102.638393,32.649429],[102.638382,32.649447],[102.638381,32.649463],[102.638388,32.649476],[102.638388,32.649487],[102.638391,32.649507],[102.638462,32.649486],[102.638588,32.650123],[102.639039,32.650364],[102.639366,32.650099],[102.639383,32.65008],[102.639396,32.650066],[102.639559,32.649884],[102.63958,32.649859],[102.639815,32.649597],[102.639883,32.649521],[102.639978,32.649415],[102.640241,32.649274],[102.640256,32.649266],[102.640534,32.649116],[102.640851,32.649238],[102.641167,32.64936],[102.641355,32.649515],[102.641362,32.649555],[102.641373,32.649595],[102.641388,32.649639],[102.641406,32.649681],[102.641429,32.6497],[102.641448,32.649701],[102.641474,32.649688],[102.641502,32.649682],[102.641514,32.649688],[102.641516,32.649696],[102.641591,32.649711],[102.641637,32.64972],[102.641682,32.649738],[102.641713,32.649751],[102.641754,32.649773],[102.641788,32.649839],[102.641809,32.649892],[102.641878,32.64995],[102.641844,32.649988],[102.641836,32.650018],[102.641835,32.650049],[102.641847,32.650098],[102.641842,32.650144],[102.641854,32.65019],[102.641779,32.650159],[102.641725,32.650267],[102.6417,32.650316],[102.641594,32.650527],[102.641482,32.650646],[102.641464,32.650665],[102.641238,32.650903],[102.641233,32.650909],[102.641096,32.651054],[102.641024,32.651053],[102.640971,32.651057],[102.640918,32.65108],[102.640869,32.651121],[102.640792,32.651222],[102.640776,32.65128],[102.640767,32.651324],[102.640756,32.651378],[102.64075,32.651425],[102.640749,32.651456],[102.640778,32.651495],[102.640842,32.65154],[102.640909,32.651578],[102.640984,32.651616],[102.641069,32.65165],[102.641184,32.651674],[102.641198,32.65168],[102.64127,32.651691],[102.641348,32.651694],[102.641428,32.651698],[102.641479,32.651693],[102.641545,32.651695],[102.641614,32.651704],[102.641652,32.651713],[102.641696,32.651726],[102.641762,32.651737],[102.641851,32.651719],[102.641925,32.651696],[102.641971,32.651695],[102.642012,32.651676],[102.642042,32.651658],[102.642118,32.6516],[102.642338,32.651558],[102.642375,32.651551],[102.642411,32.651544],[102.642827,32.651464],[102.64294,32.651442],[102.643258,32.651528],[102.643265,32.65153],[102.643304,32.65154],[102.643629,32.651628],[102.643712,32.65165],[102.643774,32.65173],[102.643802,32.651766],[102.643825,32.651802],[102.643842,32.651837],[102.643845,32.651854],[102.643823,32.651874],[102.643868,32.651966],[102.643881,32.651991],[102.643885,32.652001],[102.643872,32.652504],[102.643908,32.652568],[102.64399,32.65255],[102.644052,32.652526],[102.644092,32.652477],[102.644126,32.652437],[102.644178,32.652405],[102.644241,32.652409],[102.644323,32.65244],[102.64442,32.652467],[102.644492,32.65248],[102.644537,32.652481],[102.64456,32.652469],[102.644661,32.65251],[102.644727,32.652471],[102.644741,32.652462],[102.64478,32.652438],[102.644819,32.652438],[102.644877,32.652428],[102.644947,32.652408],[102.645011,32.652382],[102.645079,32.652351],[102.645118,32.652329],[102.645171,32.652291],[102.645194,32.652271],[102.645229,32.652236],[102.64527,32.652195],[102.645292,32.652155],[102.645298,32.652125],[102.645341,32.652059],[102.645358,32.652007],[102.645371,32.651967],[102.645396,32.651912],[102.645425,32.651879],[102.645447,32.651715],[102.645463,32.651673],[102.645477,32.651662],[102.645476,32.651547],[102.645481,32.651488],[102.645486,32.651413],[102.645458,32.651296],[102.645556,32.651139],[102.645614,32.65112],[102.645628,32.651118],[102.645741,32.651096],[102.64584,32.651101],[102.64594,32.651134],[102.645972,32.651079],[102.646015,32.651],[102.646024,32.651003],[102.64607,32.651015],[102.646091,32.651021],[102.646097,32.651022],[102.646112,32.650997],[102.646263,32.651067],[102.646467,32.651122],[102.647838,32.651148],[102.648067,32.651187],[102.648838,32.651321],[102.648833,32.651528],[102.648832,32.651555],[102.64883,32.651649],[102.648825,32.651823],[102.648731,32.651947],[102.64865,32.652053],[102.648671,32.651991],[102.648679,32.651971],[102.648689,32.651941],[102.64869,32.651893],[102.648693,32.651852],[102.648686,32.651785],[102.64865,32.651705],[102.648631,32.651676],[102.648614,32.651649],[102.648582,32.651622],[102.648556,32.651602],[102.64852,32.651575],[102.648461,32.651549],[102.648417,32.651528],[102.648381,32.651514],[102.648312,32.651489],[102.648271,32.651475],[102.648223,32.651471],[102.648176,32.651471],[102.648281,32.651509],[102.648366,32.651541],[102.648426,32.65157],[102.64847,32.6516],[102.648505,32.651632],[102.64855,32.651674],[102.648575,32.651712],[102.648579,32.651759],[102.64858,32.651819],[102.648578,32.651865],[102.648568,32.651915],[102.64856,32.651958],[102.648537,32.652014],[102.648502,32.65205],[102.648468,32.652086],[102.648441,32.652112],[102.648393,32.652157],[102.648366,32.652188],[102.648334,32.652229],[102.648312,32.65226],[102.64829,32.652285],[102.648233,32.652318],[102.648201,32.652328],[102.648169,32.652348],[102.648164,32.652357],[102.648169,32.652376],[102.648144,32.652384],[102.647995,32.652416],[102.647933,32.652445],[102.647845,32.65248],[102.647775,32.652486],[102.647701,32.652483],[102.647597,32.652484],[102.647419,32.652475],[102.647089,32.652574],[102.646914,32.652627],[102.646825,32.652654],[102.646794,32.652663],[102.64667,32.6527],[102.646644,32.652708],[102.646582,32.652727],[102.646516,32.652746],[102.646166,32.652983],[102.645964,32.653355],[102.645981,32.653973],[102.646001,32.654009],[102.646156,32.654286],[102.646513,32.654353],[102.6469,32.654426],[102.64697,32.65444],[102.647065,32.654458],[102.647189,32.654423],[102.64723,32.654411],[102.647462,32.654346],[102.64771,32.654277],[102.647894,32.654314],[102.648138,32.654364],[102.64823,32.654383],[102.648968,32.654534],[102.649164,32.654574],[102.649299,32.654632],[102.6496,32.654759],[102.649797,32.654842],[102.649976,32.654918],[102.650023,32.654938],[102.650978,32.655188],[102.651474,32.655282],[102.651494,32.655286],[102.651658,32.655317],[102.651682,32.655348],[102.651747,32.655363],[102.651773,32.655371],[102.6518,32.655389],[102.651826,32.655408],[102.651846,32.655427],[102.651856,32.655457],[102.651856,32.655485],[102.651851,32.655516],[102.651844,32.655558],[102.651907,32.655641],[102.651904,32.655567],[102.651904,32.655534],[102.651905,32.655491],[102.651905,32.655441],[102.651906,32.655414],[102.65192,32.655396],[102.651932,32.65539],[102.651961,32.655391],[102.651995,32.655409],[102.652016,32.655442],[102.652023,32.655492],[102.652021,32.655556],[102.652012,32.655609],[102.651995,32.655655],[102.651953,32.6557],[102.652172,32.655985],[102.652298,32.65615],[102.652321,32.65618],[102.652334,32.65654],[102.652341,32.656723],[102.652348,32.656915],[102.652329,32.656947],[102.652178,32.657206],[102.652146,32.65726],[102.652137,32.657275],[102.652131,32.657286],[102.652065,32.657399],[102.652013,32.657488],[102.651958,32.657562],[102.651868,32.657683],[102.651863,32.65769],[102.651729,32.65787],[102.651744,32.657942],[102.651773,32.658083],[102.651782,32.658126],[102.65181,32.658258],[102.6524,32.658423],[102.652586,32.658402],[102.652703,32.658389],[102.652811,32.658376],[102.652912,32.658365],[102.653027,32.658352],[102.653084,32.658345],[102.653146,32.658386],[102.653175,32.658414],[102.653197,32.658435],[102.653212,32.658448],[102.653215,32.658451],[102.653297,32.658495],[102.653388,32.658525],[102.653463,32.658536],[102.653568,32.658526],[102.653635,32.658509],[102.653657,32.658504],[102.65366,32.658502],[102.65373,32.658464],[102.653794,32.658421],[102.653873,32.658375],[102.65393,32.658313],[102.653984,32.658258],[102.654065,32.658218],[102.654139,32.658164],[102.654178,32.658126],[102.654189,32.658071],[102.654177,32.65799],[102.654141,32.657929],[102.654096,32.657886],[102.654034,32.657839],[102.65394,32.657765],[102.65391,32.657751],[102.653927,32.657591],[102.65393,32.657563],[102.65393,32.657544],[102.653911,32.656557],[102.654116,32.656229],[102.654197,32.656099],[102.654241,32.656052],[102.654352,32.656076],[102.654515,32.656123],[102.654614,32.656204],[102.654696,32.656224],[102.654896,32.656387],[102.655026,32.656493],[102.655036,32.656501],[102.655075,32.656533],[102.655095,32.65655],[102.655278,32.656699],[102.655442,32.656856],[102.655451,32.656865],[102.655813,32.657212],[102.6562,32.657822],[102.656384,32.658111],[102.656969,32.658771],[102.657165,32.658991],[102.657242,32.659078],[102.657708,32.659398],[102.657777,32.659446],[102.658154,32.659607],[102.65828,32.65966],[102.658717,32.659846],[102.658804,32.659884],[102.658876,32.659914],[102.658885,32.659918],[102.659854,32.660197],[102.659891,32.660207],[102.660115,32.66016],[102.660221,32.660138],[102.660263,32.660129],[102.660331,32.660115],[102.660468,32.660086],[102.66048,32.660083],[102.661071,32.659959],[102.661588,32.659901],[102.661715,32.659887],[102.661766,32.659881],[102.661976,32.659953],[102.662145,32.66001],[102.662165,32.660017],[102.662194,32.660027],[102.662423,32.660104],[102.662432,32.660107],[102.662515,32.660135],[102.662537,32.660143],[102.662547,32.660146],[102.662612,32.660168],[102.663051,32.65968],[102.663113,32.659534],[102.663392,32.658874],[102.663745,32.658782],[102.663774,32.658798],[102.663842,32.65881],[102.663957,32.658847],[102.664166,32.658972],[102.664291,32.659076],[102.664352,32.659195],[102.664496,32.659481],[102.664431,32.659931],[102.664328,32.660206],[102.664308,32.660258],[102.664301,32.660276],[102.664145,32.660693],[102.663901,32.661238],[102.663909,32.661314],[102.66393,32.661365],[102.663946,32.661403],[102.663976,32.661466],[102.664012,32.661519],[102.664063,32.661558],[102.663935,32.661619],[102.663914,32.66163],[102.663873,32.661639],[102.663952,32.661856],[102.663999,32.661985],[102.664002,32.661992],[102.664054,32.662135],[102.66456,32.662507],[102.664645,32.662571],[102.664653,32.662576],[102.664682,32.662598],[102.664897,32.662666],[102.664908,32.66267],[102.664943,32.662681],[102.665581,32.662885],[102.666715,32.66319],[102.666766,32.663204],[102.6669,32.66324],[102.667305,32.663349],[102.667533,32.663334],[102.667752,32.663338],[102.668238,32.663295],[102.668465,32.663198],[102.669047,32.66295],[102.669561,32.662815],[102.669852,32.662739],[102.669939,32.662765],[102.669943,32.662767],[102.67017,32.662835],[102.670581,32.663429],[102.670713,32.663575],[102.670729,32.663593],[102.67085,32.663727],[102.670858,32.663736],[102.670925,32.663809],[102.670967,32.663856],[102.671203,32.664118],[102.671874,32.664987],[102.671966,32.665055],[102.671979,32.665064],[102.672161,32.665199],[102.672287,32.665292],[102.672368,32.665317],[102.672453,32.665356],[102.672506,32.665382],[102.672538,32.6654],[102.672603,32.665479],[102.672814,32.66554],[102.6732,32.665651],[102.673228,32.665659],[102.673251,32.665666],[102.673508,32.665739],[102.6739,32.665784],[102.674038,32.665799],[102.674246,32.665823],[102.674347,32.665834],[102.674354,32.665835],[102.674498,32.665851],[102.674558,32.665833],[102.674644,32.665833],[102.674713,32.665832],[102.674781,32.665836],[102.674833,32.665856],[102.674869,32.665893],[102.674897,32.665896],[102.674944,32.665901],[102.675118,32.665901],[102.675141,32.665901],[102.675492,32.6659],[102.675556,32.6659],[102.675723,32.6659],[102.675732,32.6659],[102.676871,32.665897],[102.677008,32.665897],[102.677131,32.665897],[102.677243,32.665925],[102.67728,32.665935],[102.677703,32.666043],[102.677937,32.666103],[102.677949,32.666105],[102.678058,32.666133],[102.678085,32.66614],[102.678324,32.666447],[102.678355,32.666486],[102.678393,32.666535],[102.67855,32.666735],[102.678713,32.667587],[102.678699,32.668128],[102.678911,32.668592],[102.67908,32.668782],[102.679253,32.668977],[102.679342,32.669005],[102.679356,32.66901],[102.679442,32.669037],[102.67976,32.669138],[102.679888,32.669178],[102.680427,32.669351],[102.680707,32.669653],[102.680831,32.669767],[102.68084,32.669776],[102.680857,32.669791],[102.680891,32.669823],[102.681199,32.670106],[102.681207,32.670113],[102.681219,32.670179],[102.681293,32.670263],[102.681376,32.670362],[102.681539,32.670496],[102.681564,32.670516],[102.681696,32.670622],[102.681834,32.670695],[102.681933,32.670728],[102.682008,32.670744],[102.682149,32.670761],[102.68225,32.670765],[102.682315,32.670764],[102.682328,32.670767],[102.682626,32.670848],[102.682674,32.670861],[102.683073,32.670969],[102.683415,32.671332],[102.683452,32.671372],[102.683467,32.671388],[102.68354,32.671465],[102.683542,32.67147],[102.683669,32.671799],[102.683682,32.671834],[102.683692,32.67186],[102.68374,32.671985],[102.68375,32.67201],[102.683765,32.672191],[102.683765,32.672199],[102.683798,32.672606],[102.684081,32.672828],[102.684462,32.672916],[102.685395,32.672717],[102.685713,32.672804],[102.685769,32.673103],[102.68576,32.673454],[102.685527,32.673541],[102.685475,32.673561],[102.685326,32.673616],[102.685276,32.673635],[102.685199,32.673653],[102.684761,32.673761],[102.684191,32.67371],[102.683994,32.673692],[102.683294,32.673679],[102.683125,32.673646],[102.682334,32.673489],[102.68224,32.67347],[102.682123,32.673486],[102.681534,32.673566],[102.681076,32.673936],[102.681001,32.674262],[102.681038,32.674407],[102.681082,32.674508],[102.681159,32.674621],[102.681323,32.674784],[102.681411,32.674893],[102.681482,32.674975],[102.681521,32.675014],[102.681649,32.6751],[102.681748,32.675149],[102.681835,32.675168],[102.681991,32.67516],[102.682117,32.675122],[102.682356,32.675177],[102.68256,32.675187],[102.683283,32.675222],[102.683561,32.675298],[102.683601,32.675309],[102.683689,32.675608],[102.683384,32.676676],[102.683215,32.676868],[102.683093,32.677005],[102.683032,32.677005],[102.682963,32.677006],[102.682918,32.677014],[102.682844,32.677026],[102.682743,32.677065],[102.682618,32.677107],[102.68247,32.677154],[102.682431,32.677204],[102.682416,32.677278],[102.682413,32.677294],[102.682385,32.677355],[102.682326,32.677409],[102.682321,32.677414],[102.68229,32.677449],[102.682279,32.677463],[102.682263,32.677557],[102.682238,32.677683],[102.682241,32.677779],[102.682246,32.677847],[102.681831,32.678132],[102.681757,32.678183],[102.681706,32.678218],[102.681667,32.678244],[102.681637,32.678265],[102.681366,32.678451],[102.680135,32.679134],[102.678383,32.679422],[102.676639,32.67939],[102.67635,32.67926],[102.676287,32.679232],[102.67544,32.678854],[102.674451,32.678964],[102.673309,32.679135],[102.672682,32.679893],[102.672656,32.679999],[102.672635,32.680083],[102.672356,32.681203],[102.67192,32.682958],[102.671496,32.684682],[102.671464,32.685901],[102.671802,32.687511],[102.672292,32.689059],[102.67323,32.690937],[102.673717,32.692614],[102.674282,32.694228],[102.674756,32.696418],[102.675227,32.698736],[102.675186,32.700339],[102.675395,32.701302],[102.675466,32.701628],[102.675476,32.70156],[102.676411,32.70271],[102.678,32.703419],[102.678915,32.703254],[102.680319,32.702827],[102.681951,32.701906],[102.682445,32.701482],[102.68316,32.700868],[102.683759,32.700354],[102.687705,32.696008],[102.68777,32.695936],[102.691877,32.691413],[102.693023,32.69015],[102.693482,32.690181],[102.693933,32.690212],[102.693941,32.690213],[102.695055,32.690323],[102.696438,32.690711],[102.698076,32.691602],[102.698802,32.692522],[102.698869,32.694109],[102.698738,32.695012],[102.698919,32.696329],[102.69933,32.697017],[102.699845,32.697841],[102.701003,32.698633],[102.70224,32.698831],[102.702284,32.698838],[102.703359,32.698676],[102.704211,32.698918],[102.705215,32.699435],[102.706591,32.70014],[102.707656,32.700386],[102.708339,32.700897],[102.709341,32.701549],[102.710017,32.702332],[102.710474,32.703337],[102.711045,32.704072],[102.710897,32.705149],[102.710358,32.706276],[102.709519,32.70857],[102.709183,32.710255],[102.709942,32.711094],[102.710765,32.713253],[102.711114,32.714868],[102.711905,32.716367],[102.712407,32.717695],[102.712902,32.719354],[102.713119,32.720389],[102.713414,32.722209],[102.713869,32.723495],[102.714009,32.725642],[102.71461,32.727312],[102.714921,32.728174],[102.715777,32.730953],[102.716123,32.732691],[102.716965,32.734109],[102.717708,32.735566],[102.717499,32.736098],[102.717228,32.737165],[102.716983,32.73914],[102.716626,32.743546],[102.716646,32.743862],[102.71673,32.745239],[102.717,32.748006],[102.717373,32.748714],[102.717787,32.749711],[102.718502,32.750343],[102.719018,32.751013],[102.719211,32.751263],[102.720301,32.75252],[102.720966,32.753233],[102.721534,32.753945],[102.72146,32.754933],[102.721475,32.756253],[102.721303,32.758239],[102.721268,32.758641],[102.721183,32.760042],[102.721403,32.760994],[102.721535,32.761574],[102.721528,32.761909],[102.721562,32.761901],[102.721722,32.761859],[102.722461,32.761665],[102.723295,32.761681],[102.725669,32.762026],[102.726982,32.761949],[102.728347,32.762125],[102.729958,32.762053],[102.731268,32.762077],[102.732346,32.761845],[102.733005,32.761706],[102.734195,32.761778],[102.736213,32.762066],[102.738288,32.762456],[102.739106,32.763074],[102.740571,32.764057],[102.74239,32.76516],[102.743606,32.766541],[102.745408,32.767744],[102.746884,32.768778],[102.746896,32.768786],[102.746903,32.768791],[102.746988,32.768817],[102.747007,32.768823],[102.747886,32.769096],[102.747987,32.769127],[102.74832,32.769231],[102.748441,32.769253],[102.748457,32.769256],[102.748725,32.769304],[102.74874,32.769307],[102.749675,32.769477],[102.749676,32.769478],[102.749698,32.769482],[102.751567,32.769817],[102.753668,32.76978],[102.755127,32.77041],[102.756347,32.77164],[102.756686,32.772363],[102.757023,32.7732],[102.757893,32.774121],[102.759334,32.775469],[102.760564,32.776321],[102.762059,32.777292],[102.762794,32.778286],[102.76358,32.779018],[102.764572,32.780432],[102.766972,32.782778],[102.768283,32.783934],[102.768603,32.789036],[102.768401,32.789977],[102.768283,32.791107],[102.767846,32.792496],[102.767758,32.794231],[102.7685,32.796736],[102.769432,32.798791],[102.77063,32.800927],[102.771281,32.801731],[102.772867,32.802665],[102.774801,32.803983],[102.777841,32.805774],[102.779207,32.806553],[102.779383,32.80667],[102.778828,32.807415],[102.778451,32.808201],[102.778086,32.810271],[102.778714,32.811981],[102.778952,32.813193],[102.778791,32.814285],[102.778842,32.815834],[102.778698,32.818021],[102.778082,32.819407],[102.77715,32.820938],[102.776819,32.82165],[102.776928,32.822671],[102.777201,32.824299],[102.777562,32.825929],[102.77749,32.827022],[102.777092,32.8281],[102.776963,32.828447],[102.776835,32.829659],[102.776788,32.830105],[102.776818,32.830249],[102.776906,32.830668],[102.777068,32.831432],[102.777469,32.833251],[102.777969,32.834732],[102.778723,32.836784],[102.778864,32.838297],[102.779019,32.839244],[102.778935,32.840828],[102.77866,32.844711],[102.778601,32.847051],[102.778394,32.84818],[102.77869,32.848865],[102.780298,32.850743],[102.780965,32.852718],[102.781341,32.853782],[102.78237,32.855536],[102.782782,32.856978],[102.782848,32.857923],[102.782824,32.858867],[102.782933,32.859888],[102.783364,32.862349],[102.78402,32.864739],[102.784091,32.865458],[102.784121,32.866063],[102.784325,32.866859],[102.785388,32.867293],[102.785395,32.867294],[102.785864,32.867321],[102.786326,32.867347],[102.786548,32.867429],[102.78658,32.867441],[102.786635,32.867461],[102.787301,32.867705],[102.787402,32.86777],[102.787411,32.867776],[102.787497,32.867831],[102.787511,32.86784],[102.787961,32.868131],[102.788486,32.868632],[102.789357,32.869591],[102.78952,32.869795],[102.789877,32.870242],[102.790525,32.871394],[102.790649,32.871614],[102.790717,32.872446],[102.791453,32.873441],[102.791954,32.874884],[102.791887,32.875789],[102.791732,32.876617],[102.792015,32.87783],[102.792195,32.879607],[102.792755,32.880486],[102.794064,32.88183],[102.794845,32.882788],[102.795721,32.883558],[102.795932,32.884053],[102.795936,32.884076],[102.796124,32.88534],[102.795807,32.887297],[102.795242,32.890232],[102.794852,32.891546],[102.794106,32.892741],[102.793577,32.894242],[102.793334,32.894993],[102.793136,32.895782],[102.792982,32.896572],[102.792529,32.897642],[102.792174,32.898483],[102.792136,32.898708],[102.792016,32.899424],[102.791897,32.90063],[102.791918,32.901574],[102.79194,32.902481],[102.792147,32.904164],[102.792201,32.904599],[102.792311,32.905583],[102.792598,32.906607],[102.79258,32.907362],[102.792562,32.908079],[102.792588,32.908293],[102.792589,32.908296],[102.792659,32.908868],[102.792674,32.908987],[102.792499,32.909857],[102.792469,32.910003],[102.792451,32.910076],[102.792448,32.91009],[102.79243,32.91016],[102.792427,32.910174],[102.792381,32.91036],[102.79235,32.910484],[102.792171,32.911206],[102.791795,32.91166],[102.791772,32.911688],[102.791637,32.911851],[102.79161,32.911953],[102.791593,32.911993],[102.791561,32.912038],[102.791531,32.912086],[102.791515,32.912118],[102.791503,32.91218],[102.791459,32.912257],[102.791388,32.912299],[102.791313,32.912243],[102.791248,32.912322],[102.791095,32.912434],[102.791086,32.91244],[102.790959,32.912533],[102.790291,32.913022],[102.79009,32.913887],[102.790084,32.91414],[102.790069,32.914745],[102.790066,32.914868],[102.790168,32.915826],[102.790175,32.915889],[102.790176,32.915935],[102.790184,32.916358],[102.790195,32.916856],[102.790195,32.916871],[102.790185,32.91692],[102.790161,32.917035],[102.790093,32.91736],[102.789727,32.917693],[102.789323,32.917724],[102.789246,32.917726],[102.789228,32.917726],[102.789098,32.91773],[102.78886,32.917735],[102.788656,32.91774],[102.788644,32.917719],[102.788542,32.91766],[102.788463,32.917656],[102.788329,32.917688],[102.788313,32.917692],[102.788186,32.917746],[102.788048,32.917806],[102.787935,32.917821],[102.787859,32.917819],[102.787644,32.917837],[102.787617,32.917841],[102.787394,32.917881],[102.787318,32.917956],[102.787287,32.918051],[102.78726,32.918079],[102.787174,32.918127],[102.786756,32.918358],[102.78661,32.918476],[102.786551,32.918524],[102.786525,32.918546],[102.786208,32.918801],[102.786149,32.918839],[102.786003,32.918932],[102.785914,32.918988],[102.785818,32.919049],[102.785616,32.919177],[102.785571,32.919205],[102.785332,32.919338],[102.784709,32.919681],[102.784388,32.919977],[102.78422,32.920068],[102.784185,32.920084],[102.78412,32.920115],[102.783675,32.920321],[102.783617,32.920393],[102.783543,32.920473],[102.783454,32.920564],[102.783366,32.92062],[102.783167,32.92094],[102.783114,32.921025],[102.783102,32.921043],[102.783091,32.921058],[102.782407,32.921923],[102.782113,32.922097],[102.781916,32.922214],[102.781909,32.922218],[102.781674,32.922357],[102.781286,32.922431],[102.781227,32.922443],[102.781198,32.922448],[102.781004,32.922486],[102.780877,32.92251],[102.780821,32.922521],[102.780707,32.922543],[102.779793,32.922567],[102.778451,32.92234],[102.777396,32.9222],[102.776782,32.921742],[102.776003,32.920942],[102.776038,32.920923],[102.776038,32.920889],[102.77599,32.920763],[102.775953,32.920716],[102.775837,32.920637],[102.775724,32.920578],[102.775685,32.920557],[102.775565,32.920533],[102.775406,32.92053],[102.775292,32.920549],[102.775272,32.920539],[102.775261,32.920538],[102.774659,32.920528],[102.774166,32.920519],[102.772761,32.9209],[102.772644,32.92093],[102.771647,32.921183],[102.770824,32.921393],[102.770498,32.921468],[102.769064,32.921799],[102.768917,32.921832],[102.768211,32.921995],[102.765263,32.922511],[102.763859,32.922868],[102.763759,32.922893],[102.763664,32.922917],[102.763326,32.923003],[102.76197,32.923076],[102.760483,32.923155],[102.759033,32.923413],[102.757962,32.923922],[102.75694,32.92439],[102.755851,32.925049],[102.755767,32.9251],[102.755343,32.92565],[102.755324,32.925675],[102.75512,32.92594],[102.755005,32.926005],[102.754486,32.926294],[102.754013,32.926339],[102.753762,32.926362],[102.752718,32.925775],[102.750897,32.92471],[102.750821,32.924666],[102.75014,32.924268],[102.749539,32.923916],[102.749067,32.92364],[102.749043,32.92362],[102.748981,32.923567],[102.748182,32.922896],[102.747441,32.92239],[102.747439,32.922335],[102.747439,32.922325],[102.747411,32.922251],[102.747367,32.922131],[102.747305,32.922024],[102.747181,32.921783],[102.747138,32.9217],[102.747119,32.921684],[102.746578,32.921241],[102.746567,32.921239],[102.746329,32.921189],[102.746121,32.921145],[102.746019,32.921124],[102.746005,32.921121],[102.745525,32.92102],[102.744962,32.921075],[102.744943,32.921059],[102.744916,32.92106],[102.744895,32.921081],[102.744411,32.921129],[102.744397,32.92113],[102.744126,32.921157],[102.743884,32.921212],[102.743816,32.921258],[102.74378,32.921278],[102.743748,32.92135],[102.743591,32.921428],[102.74334,32.921553],[102.743312,32.921719],[102.743304,32.921767],[102.74328,32.921913],[102.743256,32.922054],[102.743253,32.922069],[102.743209,32.92233],[102.743185,32.922477],[102.743265,32.922461],[102.743288,32.922482],[102.743284,32.92251],[102.743266,32.922591],[102.743221,32.922724],[102.743198,32.922799],[102.743198,32.922843],[102.743208,32.92291],[102.74322,32.922971],[102.743238,32.923032],[102.743254,32.923076],[102.743306,32.923128],[102.743392,32.923538],[102.74332,32.923671],[102.743241,32.923819],[102.742972,32.923786],[102.742914,32.923778],[102.742902,32.923777],[102.742859,32.923772],[102.742664,32.923748],[102.742473,32.923724],[102.742381,32.923703],[102.74136,32.923474],[102.741241,32.923447],[102.74112,32.923392],[102.740974,32.92334],[102.740795,32.923289],[102.740621,32.923268],[102.74047,32.923257],[102.740368,32.923194],[102.740282,32.92314],[102.740175,32.923074],[102.740037,32.922988],[102.739923,32.922917],[102.739811,32.922848],[102.739661,32.922755],[102.739501,32.92266],[102.739349,32.922569],[102.73921,32.922475],[102.739069,32.922388],[102.738913,32.922291],[102.738759,32.922196],[102.738677,32.922141],[102.738578,32.922075],[102.738424,32.921973],[102.738326,32.921907],[102.73822,32.921837],[102.738081,32.921744],[102.737933,32.921646],[102.737763,32.921532],[102.737582,32.921412],[102.737408,32.921296],[102.737241,32.921184],[102.737116,32.921101],[102.736945,32.920987],[102.736807,32.920895],[102.73663,32.920778],[102.736439,32.920621],[102.736177,32.920407],[102.735922,32.920198],[102.735707,32.920021],[102.735575,32.919913],[102.735408,32.919777],[102.735104,32.919528],[102.734929,32.919384],[102.734786,32.919267],[102.734604,32.919118],[102.734407,32.918941],[102.734196,32.918751],[102.733962,32.918514],[102.733821,32.918381],[102.733813,32.918373],[102.733601,32.918174],[102.733385,32.91797],[102.733241,32.917835],[102.733084,32.91758],[102.732956,32.917371],[102.732834,32.917172],[102.732409,32.916481],[102.732131,32.916324],[102.731291,32.915851],[102.7311,32.915744],[102.730844,32.9156],[102.730825,32.915564],[102.730774,32.915564],[102.730742,32.915484],[102.73071,32.915442],[102.730692,32.915396],[102.730666,32.915328],[102.730646,32.915269],[102.730611,32.915197],[102.730604,32.915148],[102.730431,32.914821],[102.73045,32.914098],[102.730451,32.914056],[102.730457,32.913807],[102.730416,32.913718],[102.730393,32.913668],[102.730318,32.913505],[102.730317,32.913503],[102.730268,32.913397],[102.730192,32.913232],[102.72991,32.912621],[102.729624,32.912485],[102.729546,32.912448],[102.729416,32.912485],[102.729271,32.91247],[102.729104,32.912447],[102.729003,32.912416],[102.728956,32.912386],[102.728923,32.912373],[102.728853,32.912364],[102.728723,32.912359],[102.728318,32.91239],[102.728273,32.91241],[102.728178,32.912451],[102.728131,32.912471],[102.728089,32.912489],[102.727891,32.912583],[102.72786,32.9126],[102.7278,32.912634],[102.727718,32.912715],[102.727617,32.912821],[102.727519,32.912918],[102.727385,32.913042],[102.727329,32.913152],[102.727323,32.913157],[102.727005,32.913339],[102.726769,32.913295],[102.726683,32.913328],[102.726672,32.913328],[102.726669,32.913316],[102.726707,32.913283],[102.726503,32.913245],[102.726484,32.913241],[102.726459,32.913236],[102.726388,32.913223],[102.726047,32.913159],[102.724997,32.912622],[102.72498,32.912613],[102.724963,32.912605],[102.724813,32.912528],[102.724754,32.912513],[102.724466,32.912438],[102.724455,32.912436],[102.724443,32.912432],[102.724086,32.91234],[102.724068,32.912336],[102.72387,32.912284],[102.723754,32.912254],[102.723202,32.912112],[102.72308,32.91208],[102.722942,32.912045],[102.722804,32.912009],[102.722614,32.91196],[102.722608,32.911961],[102.722541,32.911974],[102.722528,32.911977],[102.722522,32.911978],[102.722416,32.911998],[102.721067,32.912257],[102.720696,32.91246],[102.720509,32.912563],[102.719994,32.912846],[102.71978,32.912873],[102.718304,32.913058],[102.71758,32.913167],[102.71658,32.912743],[102.716465,32.91247],[102.71643,32.912388],[102.716229,32.911912],[102.716218,32.911884],[102.716183,32.911854],[102.716182,32.911853],[102.715599,32.911339],[102.715582,32.911339],[102.715443,32.911336],[102.715372,32.911327],[102.715321,32.911309],[102.715254,32.911274],[102.715182,32.911236],[102.715117,32.911207],[102.715039,32.911186],[102.714956,32.911162],[102.71487,32.911103],[102.714747,32.911086],[102.714365,32.911054],[102.714299,32.911049],[102.714274,32.911047],[102.714123,32.911034],[102.713932,32.910911],[102.713413,32.910575],[102.712907,32.910053],[102.712776,32.909808],[102.712665,32.909666],[102.712609,32.909589],[102.712418,32.909461],[102.712252,32.909414],[102.712227,32.909408],[102.712116,32.909376],[102.711933,32.909306],[102.711733,32.909211],[102.711516,32.909092],[102.711279,32.908959],[102.71108,32.908821],[102.710956,32.908706],[102.710802,32.908622],[102.710755,32.908581],[102.710722,32.908578],[102.710292,32.908524],[102.709571,32.908435],[102.7087,32.908622],[102.708361,32.908658],[102.708216,32.908674],[102.708159,32.90868],[102.708094,32.908687],[102.707735,32.908726],[102.707646,32.908707],[102.707575,32.908692],[102.706683,32.908504],[102.706412,32.908304],[102.706367,32.908272],[102.706339,32.908251],[102.705893,32.907924],[102.705886,32.907918],[102.705833,32.907879],[102.705574,32.907808],[102.705442,32.907771],[102.70505,32.907662],[102.704856,32.907609],[102.704734,32.907575],[102.704478,32.907608],[102.704457,32.90761],[102.703898,32.907681],[102.703674,32.90771],[102.703656,32.907712],[102.703616,32.907717],[102.702512,32.907857],[102.702224,32.907894],[102.702106,32.907929],[102.702094,32.907932],[102.701927,32.907981],[102.700916,32.908276],[102.700469,32.908352],[102.700258,32.908388],[102.700235,32.908392],[102.698983,32.908605],[102.698446,32.908772],[102.698352,32.908801],[102.69829,32.90882],[102.697734,32.908993],[102.697625,32.909027],[102.697544,32.909051],[102.697536,32.909054],[102.697161,32.909169],[102.696122,32.909486],[102.69524,32.909546],[102.695183,32.90955],[102.694242,32.909614],[102.692375,32.909255],[102.691648,32.909009],[102.691632,32.909004],[102.691541,32.908973],[102.691524,32.908967],[102.691508,32.908962],[102.691436,32.908938],[102.691092,32.908822],[102.690849,32.908739],[102.690785,32.908684],[102.690442,32.908393],[102.690057,32.908066],[102.690044,32.908054],[102.689756,32.907809],[102.689737,32.907793],[102.689666,32.907732],[102.689484,32.907578],[102.688524,32.906942],[102.688397,32.906859],[102.688349,32.906826],[102.687006,32.90668],[102.686953,32.906701],[102.686929,32.90671],[102.686633,32.906829],[102.686622,32.906833],[102.68652,32.906874],[102.686487,32.906872],[102.685877,32.906839],[102.68578,32.906834],[102.685487,32.906818],[102.685367,32.906812],[102.685174,32.906788],[102.685024,32.90677],[102.684669,32.906727],[102.684588,32.906717],[102.684176,32.906668],[102.684065,32.906654],[102.683806,32.906623],[102.683784,32.90662],[102.683315,32.906611],[102.683042,32.906606],[102.682871,32.906603],[102.682832,32.906601],[102.682784,32.906598],[102.682777,32.906597],[102.682606,32.906587],[102.682449,32.906578],[102.68191,32.906545],[102.681343,32.906169],[102.681218,32.905396],[102.681288,32.905277],[102.681325,32.905214],[102.681571,32.904794],[102.682643,32.904259],[102.682647,32.904257],[102.68277,32.904196],[102.682796,32.904149],[102.682817,32.904128],[102.68285,32.904113],[102.682898,32.904094],[102.682939,32.904074],[102.682995,32.904034],[102.683052,32.903728],[102.683054,32.903717],[102.683152,32.9032],[102.682116,32.902328],[102.681595,32.90209],[102.681351,32.901978],[102.681107,32.901866],[102.681053,32.901841],[102.680548,32.901609],[102.68039,32.9014],[102.680397,32.90136],[102.680399,32.901325],[102.680397,32.901294],[102.680387,32.901265],[102.680348,32.901209],[102.680333,32.90119],[102.680306,32.901158],[102.680419,32.900913],[102.680429,32.90089],[102.680458,32.900829],[102.680677,32.900354],[102.680776,32.900262],[102.68106,32.9],[102.681367,32.899717],[102.68195,32.899485],[102.682538,32.899364],[102.682578,32.899356],[102.682595,32.899352],[102.682675,32.899336],[102.682987,32.89914],[102.683013,32.899108],[102.683031,32.899093],[102.683051,32.899082],[102.683071,32.899073],[102.683115,32.89906],[102.683116,32.899033],[102.683117,32.898998],[102.683121,32.898865],[102.683124,32.898712],[102.683163,32.898703],[102.683259,32.898671],[102.683286,32.898632],[102.683301,32.89855],[102.683301,32.898442],[102.683302,32.898416],[102.683266,32.898424],[102.683253,32.898474],[102.683219,32.89852],[102.683182,32.898554],[102.683128,32.898592],[102.683137,32.898249],[102.682616,32.89779],[102.682605,32.89778],[102.682525,32.89771],[102.682409,32.89764],[102.682273,32.897558],[102.682161,32.89749],[102.682138,32.897476],[102.681483,32.897082],[102.68052,32.896233],[102.680475,32.896192],[102.680198,32.895948],[102.680026,32.895797],[102.67982,32.895665],[102.679814,32.895643],[102.679779,32.895555],[102.679745,32.895517],[102.679629,32.895423],[102.679411,32.895317],[102.67922,32.895247],[102.679132,32.895223],[102.678985,32.895128],[102.677992,32.89485],[102.677744,32.89478],[102.677699,32.894764],[102.67769,32.89476],[102.6766,32.894353],[102.675437,32.893248],[102.67542,32.893233],[102.67538,32.893194],[102.675214,32.893161],[102.675156,32.89315],[102.675121,32.893143],[102.674934,32.893105],[102.674932,32.893105],[102.67471,32.89306],[102.674546,32.89318],[102.674391,32.893184],[102.674259,32.893207],[102.674224,32.89325],[102.674244,32.893347],[102.674267,32.893385],[102.674171,32.893456],[102.67406,32.893538],[102.673934,32.893631],[102.673905,32.893652],[102.673732,32.89378],[102.673727,32.893784],[102.673582,32.893891],[102.673208,32.894028],[102.672699,32.894213],[102.672417,32.894316],[102.672181,32.894434],[102.671994,32.894497],[102.67193,32.894503],[102.671904,32.894503],[102.671862,32.894594],[102.671247,32.894903],[102.670716,32.895224],[102.670569,32.895312],[102.67052,32.895342],[102.670465,32.895375],[102.669704,32.895513],[102.66962,32.895528],[102.66958,32.895536],[102.66945,32.895559],[102.669277,32.895625],[102.669132,32.89568],[102.669116,32.895686],[102.668799,32.895807],[102.668775,32.895816],[102.668715,32.895839],[102.668332,32.895985],[102.666727,32.896685],[102.665941,32.897279],[102.665743,32.897268],[102.665707,32.897265],[102.665347,32.897244],[102.665116,32.897231],[102.664991,32.897223],[102.664967,32.897222],[102.664933,32.89722],[102.664223,32.89676],[102.663669,32.895898],[102.663396,32.895284],[102.663359,32.895057],[102.663371,32.89486],[102.66337,32.89451],[102.663323,32.89421],[102.663343,32.893988],[102.663309,32.893941],[102.663284,32.893795],[102.663283,32.89368],[102.663286,32.893564],[102.663282,32.893498],[102.663254,32.893365],[102.663256,32.893314],[102.663256,32.893293],[102.663252,32.89328],[102.662943,32.892394],[102.662522,32.89194],[102.662236,32.891849],[102.661711,32.891681],[102.661289,32.891693],[102.660845,32.891706],[102.660163,32.892018],[102.659453,32.892706],[102.659423,32.892734],[102.658214,32.892995],[102.658175,32.893014],[102.657727,32.89323],[102.657708,32.893378],[102.657666,32.893716],[102.657717,32.893906],[102.65772,32.893918],[102.657903,32.8946],[102.65794,32.894737],[102.657951,32.894777],[102.65794,32.894795],[102.657916,32.894839],[102.657896,32.894884],[102.657877,32.894944],[102.657853,32.895028],[102.657844,32.895084],[102.657837,32.895136],[102.657831,32.895167],[102.657807,32.895215],[102.657779,32.895304],[102.657769,32.895364],[102.657763,32.89542],[102.657763,32.89547],[102.657774,32.895521],[102.657781,32.895561],[102.657788,32.895596],[102.657788,32.895639],[102.657799,32.895756],[102.657791,32.89579],[102.657775,32.895842],[102.65776,32.895902],[102.657748,32.895951],[102.657742,32.896022],[102.657734,32.896075],[102.657719,32.896123],[102.657707,32.89615],[102.65768,32.896189],[102.657647,32.896223],[102.657595,32.896269],[102.657554,32.89631],[102.657512,32.896339],[102.657405,32.896396],[102.657375,32.896389],[102.657355,32.896381],[102.657345,32.896369],[102.657314,32.896348],[102.657283,32.896342],[102.657312,32.896324],[102.657266,32.89632],[102.65702,32.896301],[102.656172,32.895635],[102.655809,32.894817],[102.655688,32.894715],[102.655666,32.894697],[102.655436,32.894503],[102.655407,32.894417],[102.655358,32.894329],[102.655286,32.894246],[102.655241,32.89421],[102.655207,32.894169],[102.655163,32.894122],[102.655118,32.894094],[102.655054,32.894067],[102.654965,32.894054],[102.654896,32.894049],[102.654798,32.893966],[102.654774,32.893945],[102.654404,32.893727],[102.653779,32.893359],[102.65373,32.893353],[102.652916,32.893261],[102.651553,32.893885],[102.651363,32.894026],[102.650313,32.894808],[102.650277,32.894835],[102.649741,32.895177],[102.649687,32.895212],[102.649682,32.895287],[102.649552,32.895349],[102.649337,32.895435],[102.649227,32.895473],[102.649158,32.895495],[102.64909,32.895525],[102.649038,32.895568],[102.648795,32.895776],[102.648588,32.895963],[102.648418,32.896141],[102.64829,32.896338],[102.648212,32.89648],[102.648187,32.896508],[102.648151,32.89655],[102.647916,32.896819],[102.647879,32.896904],[102.647714,32.897294],[102.647717,32.897316],[102.647728,32.897394],[102.647752,32.897419],[102.647788,32.897445],[102.647823,32.897475],[102.647846,32.897512],[102.64786,32.897547],[102.64793,32.897624],[102.647969,32.897665],[102.648051,32.897713],[102.648333,32.897805],[102.648415,32.897833],[102.648421,32.897844],[102.648468,32.897922],[102.648575,32.8981],[102.648604,32.89815],[102.64862,32.898176],[102.648662,32.898199],[102.64869,32.898216],[102.648715,32.89824],[102.648726,32.898265],[102.648722,32.898283],[102.648697,32.898305],[102.648705,32.898318],[102.64874,32.898377],[102.648741,32.898383],[102.648955,32.899355],[102.64878,32.900186],[102.648746,32.900349],[102.648734,32.900406],[102.648717,32.900438],[102.648685,32.900502],[102.648589,32.900687],[102.64858,32.900704],[102.648493,32.900872],[102.648278,32.90129],[102.647988,32.90164],[102.647956,32.901679],[102.647949,32.901687],[102.647921,32.901721],[102.647781,32.901889],[102.64764,32.901948],[102.647604,32.901963],[102.64676,32.902316],[102.64648,32.90233],[102.646439,32.902333],[102.646228,32.902343],[102.645604,32.902375],[102.644939,32.902038],[102.644289,32.901174],[102.644176,32.901064],[102.644163,32.901051],[102.644144,32.901032],[102.644057,32.900946],[102.643867,32.90076],[102.643849,32.900753],[102.643616,32.900664],[102.643604,32.900659],[102.643417,32.900587],[102.6432,32.900504],[102.642113,32.900808],[102.642078,32.900818],[102.642057,32.900824],[102.641843,32.900884],[102.641649,32.901007],[102.64163,32.901019],[102.641605,32.901035],[102.640913,32.901475],[102.63978,32.902389],[102.639772,32.902395],[102.639571,32.902558],[102.639537,32.902585],[102.639399,32.90291],[102.639282,32.902909],[102.639166,32.903117],[102.639114,32.903378],[102.638917,32.903767],[102.638813,32.904022],[102.638725,32.904683],[102.638729,32.904799],[102.63872,32.904826],[102.638717,32.904836],[102.638653,32.905044],[102.638736,32.90575],[102.638736,32.905752],[102.638742,32.905803],[102.638776,32.906093],[102.63881,32.906386],[102.638846,32.906641],[102.638847,32.906642],[102.638848,32.906654],[102.638899,32.907013],[102.638906,32.907058],[102.638977,32.90756],[102.638979,32.90757],[102.638991,32.907659],[102.638974,32.907675],[102.638949,32.907703],[102.638926,32.907731],[102.638899,32.907758],[102.638875,32.907784],[102.638857,32.907807],[102.638858,32.907849],[102.638854,32.907902],[102.638816,32.907979],[102.638808,32.908094],[102.638818,32.908252],[102.63883,32.908446],[102.638775,32.908519],[102.638719,32.908595],[102.638712,32.908603],[102.638689,32.908634],[102.638553,32.908816],[102.637774,32.908863],[102.63776,32.908864],[102.637544,32.908877],[102.637562,32.90884],[102.637562,32.908815],[102.637542,32.908784],[102.637512,32.908781],[102.637467,32.908792],[102.637379,32.908827],[102.6372,32.908772],[102.637197,32.90877],[102.637189,32.908768],[102.636573,32.908576],[102.636569,32.908575],[102.636298,32.908491],[102.636157,32.908447],[102.636056,32.908415],[102.636014,32.908402],[102.635631,32.908196],[102.635759,32.908208],[102.635831,32.908216],[102.635777,32.908162],[102.635734,32.908135],[102.635648,32.908099],[102.635548,32.908071],[102.635437,32.90806],[102.635295,32.908014],[102.635186,32.907955],[102.634924,32.907813],[102.634893,32.907818],[102.6348,32.907831],[102.634803,32.907842],[102.634825,32.907857],[102.634845,32.907863],[102.634881,32.90788],[102.634866,32.90789],[102.63481,32.907899],[102.634773,32.907902],[102.634725,32.907908],[102.634669,32.907916],[102.634622,32.90792],[102.634578,32.90792],[102.63451,32.907935],[102.63444,32.907938],[102.634425,32.907924],[102.634408,32.907894],[102.634405,32.907885],[102.634259,32.907906],[102.634151,32.907921],[102.634106,32.907965],[102.633982,32.908013],[102.63376,32.908214],[102.633673,32.90837],[102.633669,32.908378],[102.633706,32.908358],[102.633697,32.908384],[102.633672,32.908455],[102.633446,32.909084],[102.633448,32.909315],[102.633451,32.909577],[102.633459,32.910423],[102.633158,32.911157],[102.633161,32.911223],[102.633099,32.911405],[102.633064,32.911482],[102.63295,32.911488],[102.632554,32.911727],[102.632352,32.911849],[102.632265,32.911902],[102.632122,32.911942],[102.632098,32.911948],[102.631709,32.912057],[102.631528,32.912107],[102.631066,32.912236],[102.63096,32.912265],[102.63089,32.912285],[102.63074,32.912327],[102.630646,32.912353],[102.630222,32.912471],[102.630083,32.91251],[102.629619,32.912738],[102.629352,32.912869],[102.629346,32.912872],[102.629248,32.912921],[102.628729,32.913174],[102.628468,32.913304],[102.628357,32.913358],[102.628346,32.913364],[102.627938,32.913564],[102.627826,32.913638],[102.627857,32.913679],[102.627804,32.913724],[102.627757,32.913764],[102.627717,32.913797],[102.627673,32.913766],[102.627622,32.913737],[102.627566,32.913712],[102.627486,32.913682],[102.627372,32.913652],[102.627293,32.913637],[102.627293,32.913665],[102.627294,32.913681],[102.627296,32.913693],[102.627301,32.913705],[102.627311,32.913725],[102.627312,32.913727],[102.627329,32.913749],[102.627343,32.913764],[102.627359,32.913775],[102.627386,32.913787],[102.627403,32.913797],[102.627407,32.913805],[102.627407,32.913819],[102.627408,32.913845],[102.627409,32.913899],[102.627406,32.913915],[102.62732,32.913971],[102.6273,32.913985],[102.627293,32.913989],[102.627188,32.913927],[102.627174,32.913921],[102.627014,32.914039],[102.626826,32.914228],[102.62657,32.914466],[102.626464,32.914602],[102.626331,32.914751],[102.626316,32.914762],[102.626231,32.91482],[102.62621,32.914864],[102.626131,32.914873],[102.625475,32.915709],[102.625147,32.916259],[102.625056,32.91641],[102.625006,32.916494],[102.624972,32.916551],[102.624471,32.917272],[102.624304,32.91738],[102.623325,32.91801],[102.622727,32.918396],[102.622575,32.918494],[102.622537,32.918518],[102.622456,32.91857],[102.622344,32.918642],[102.622268,32.918691],[102.622264,32.91871],[102.622252,32.918768],[102.622121,32.919364],[102.622022,32.919816],[102.62206,32.91986],[102.622119,32.919923],[102.622167,32.919965],[102.622164,32.92019],[102.622187,32.920224],[102.622252,32.920318],[102.622343,32.92045],[102.622378,32.920501],[102.622472,32.920638],[102.622504,32.920684],[102.622518,32.920701],[102.622552,32.92074],[102.6226,32.920797],[102.622695,32.920909],[102.622876,32.921123],[102.623484,32.921839],[102.62413,32.922457],[102.62423,32.922553],[102.62438,32.922696],[102.624385,32.922701],[102.624406,32.922721],[102.624427,32.922741],[102.62437,32.922788],[102.624522,32.922893],[102.624547,32.922905],[102.624716,32.923072],[102.62479,32.923129],[102.624853,32.923176],[102.624911,32.923211],[102.625064,32.923265],[102.625123,32.923279],[102.625135,32.923302],[102.625125,32.923322],[102.625088,32.923338],[102.625042,32.923351],[102.624992,32.923371],[102.624956,32.923393],[102.624953,32.923416],[102.624965,32.923437],[102.624994,32.923441],[102.625048,32.923421],[102.625101,32.923415],[102.625141,32.923431],[102.625196,32.923452],[102.625238,32.923459],[102.625316,32.923467],[102.625361,32.923485],[102.625368,32.923522],[102.625375,32.923548],[102.625424,32.923582],[102.625475,32.923596],[102.62553,32.923609],[102.625586,32.923629],[102.625633,32.923653],[102.625661,32.923676],[102.625703,32.92369],[102.625732,32.923722],[102.625746,32.923751],[102.625774,32.923775],[102.625802,32.923772],[102.625821,32.923754],[102.625858,32.923709],[102.625869,32.923702],[102.626133,32.923866],[102.626219,32.92392],[102.626306,32.923997],[102.626462,32.924135],[102.626609,32.924265],[102.626683,32.92433],[102.626866,32.924491],[102.627123,32.924718],[102.627159,32.92475],[102.627204,32.924827],[102.62724,32.924891],[102.62737,32.925116],[102.627443,32.925242],[102.627509,32.925355],[102.627544,32.925416],[102.627565,32.925452],[102.627717,32.925716],[102.627822,32.925898],[102.627826,32.925905],[102.627842,32.925932],[102.627941,32.926104],[102.627952,32.926149],[102.628035,32.926495],[102.628072,32.926649],[102.62809,32.926724],[102.628244,32.927368],[102.627833,32.928334],[102.627594,32.928481],[102.626806,32.928964],[102.626676,32.929114],[102.626655,32.929138],[102.626642,32.929153],[102.626012,32.929882],[102.625868,32.930111],[102.625668,32.93043],[102.625621,32.930505],[102.625606,32.930529],[102.625524,32.93066],[102.625345,32.930946],[102.625332,32.930966],[102.625177,32.931215],[102.625169,32.931228],[102.625197,32.931232],[102.625206,32.931252],[102.625206,32.931274],[102.625195,32.931307],[102.625181,32.931332],[102.625159,32.931349],[102.625083,32.931365],[102.625046,32.931365],[102.625017,32.931375],[102.624994,32.931421],[102.624988,32.931461],[102.62497,32.931512],[102.624945,32.931545],[102.624893,32.931572],[102.624853,32.931583],[102.624823,32.931597],[102.624812,32.931628],[102.62483,32.931679],[102.624694,32.931801],[102.624417,32.932049],[102.624352,32.932108],[102.62434,32.932118],[102.624322,32.932275],[102.624296,32.932367],[102.624268,32.932451],[102.62425,32.932496],[102.624212,32.932505],[102.624131,32.932516],[102.624021,32.932543],[102.623915,32.932574],[102.623863,32.932619],[102.623785,32.932719],[102.623691,32.932796],[102.623547,32.932913],[102.62347,32.932992],[102.623394,32.933046],[102.623314,32.933071],[102.623205,32.933127],[102.623085,32.933154],[102.623006,32.933178],[102.622959,32.933214],[102.622869,32.933262],[102.622749,32.933313],[102.622607,32.933378],[102.622452,32.933447],[102.622308,32.933513],[102.622146,32.933591],[102.621992,32.933632],[102.621881,32.933675],[102.621854,32.933686],[102.621769,32.93371],[102.621693,32.933708],[102.621696,32.93369],[102.621698,32.93368],[102.621699,32.933675],[102.621682,32.933559],[102.621677,32.933527],[102.621431,32.933512],[102.620815,32.933476],[102.620127,32.933377],[102.620041,32.933364],[102.619924,32.933347],[102.619521,32.933289],[102.618546,32.933207],[102.618538,32.933206],[102.618315,32.933188],[102.618273,32.933184],[102.617902,32.933142],[102.617769,32.933127],[102.617755,32.933125],[102.617518,32.933099],[102.616977,32.933038],[102.616086,32.933994],[102.616112,32.934807],[102.616183,32.934882],[102.616202,32.934903],[102.617001,32.935757],[102.617902,32.936261],[102.617919,32.936263],[102.618905,32.936357],[102.618958,32.936362],[102.620007,32.936327],[102.620401,32.936314],[102.620468,32.936312],[102.620499,32.936311],[102.621837,32.936446],[102.621987,32.936461],[102.62226,32.936489],[102.622375,32.936501],[102.622872,32.936552],[102.623307,32.936597],[102.623426,32.93661],[102.624729,32.936978],[102.624752,32.937074],[102.624805,32.937105],[102.624854,32.937123],[102.624961,32.937152],[102.62506,32.937158],[102.625103,32.937156],[102.625218,32.937134],[102.626004,32.937389],[102.626862,32.937789],[102.627002,32.937855],[102.627068,32.937934],[102.627091,32.937961],[102.62737,32.938296],[102.627485,32.938434],[102.627572,32.938538],[102.627586,32.938556],[102.627655,32.938638],[102.627788,32.939417],[102.627797,32.939471],[102.627815,32.93958],[102.627841,32.939733],[102.627846,32.939758],[102.627863,32.93986],[102.627857,32.940081],[102.627855,32.940176],[102.627853,32.940184],[102.627841,32.940702],[102.627836,32.940881],[102.627817,32.940889],[102.627786,32.940914],[102.627766,32.94096],[102.627755,32.941008],[102.627748,32.941041],[102.627744,32.94106],[102.627707,32.941113],[102.627706,32.941115],[102.627734,32.941265],[102.627746,32.941325],[102.627763,32.941406],[102.627778,32.941492],[102.627815,32.941644],[102.627811,32.942347],[102.62781,32.942438],[102.62781,32.942466],[102.627809,32.94268],[102.627808,32.94282],[102.627807,32.942856],[102.627806,32.943155],[102.627805,32.943247],[102.6278,32.94398],[102.6278,32.944038],[102.627799,32.944073],[102.627788,32.944485],[102.627781,32.944728],[102.627538,32.944807],[102.627475,32.944827],[102.626956,32.944996],[102.626771,32.944999],[102.626715,32.944999],[102.626547,32.945002],[102.625877,32.945011],[102.625829,32.945011],[102.625704,32.945013],[102.625517,32.945004],[102.625312,32.944994],[102.6252,32.944988],[102.625021,32.944979],[102.624962,32.944976],[102.624921,32.944974],[102.624897,32.944973],[102.624358,32.944947],[102.622627,32.944914],[102.622554,32.944902],[102.62253,32.944946],[102.622461,32.944995],[102.622399,32.94504],[102.622282,32.945131],[102.622188,32.945178],[102.622184,32.94527],[102.6222,32.945615],[102.622203,32.945672],[102.622215,32.94592],[102.622588,32.94636],[102.62325,32.946751],[102.623569,32.946939],[102.623832,32.947094],[102.623865,32.947114],[102.623915,32.947143],[102.62395,32.94717],[102.623969,32.947185],[102.623829,32.94723],[102.623752,32.947253],[102.623661,32.947282],[102.623575,32.947311],[102.623541,32.947333],[102.623654,32.947338],[102.623772,32.947322],[102.6239,32.947298],[102.62409,32.947278],[102.624337,32.947469],[102.624519,32.94761],[102.624661,32.947719],[102.624921,32.94792],[102.625221,32.948308],[102.625351,32.948476],[102.625371,32.948488],[102.625474,32.948537],[102.625545,32.948604],[102.625673,32.948727],[102.625736,32.948794],[102.625731,32.948804],[102.625684,32.948907],[102.625727,32.948963],[102.625803,32.949061],[102.625835,32.949102],[102.625849,32.949119],[102.625857,32.949129],[102.625912,32.949199],[102.62597,32.949274],[102.626241,32.949485],[102.626523,32.949756],[102.626617,32.949834],[102.626711,32.949872],[102.626858,32.949902],[102.627028,32.949901],[102.627195,32.949893],[102.627333,32.949871],[102.627511,32.949803],[102.627607,32.949758],[102.627695,32.949759],[102.627807,32.949785],[102.62867,32.94929],[102.628679,32.949286],[102.628679,32.949261],[102.628718,32.949208],[102.628805,32.949141],[102.628909,32.949071],[102.629036,32.948996],[102.629121,32.948941],[102.62918,32.948888],[102.629242,32.94884],[102.629287,32.948833],[102.62931,32.948845],[102.629284,32.948885],[102.629237,32.948921],[102.629183,32.948969],[102.62915,32.949005],[102.629132,32.94902],[102.629128,32.94903],[102.629128,32.949052],[102.629128,32.949072],[102.629124,32.949091],[102.629149,32.949084],[102.629275,32.949029],[102.629284,32.949026],[102.629305,32.949017],[102.629514,32.948927],[102.62965,32.948949],[102.629671,32.948952],[102.629708,32.948958],[102.629789,32.94897],[102.629896,32.948988],[102.630073,32.949016],[102.630223,32.94904],[102.630559,32.949094],[102.630664,32.949111],[102.630717,32.949168],[102.630797,32.949254],[102.630945,32.949414],[102.631026,32.949501],[102.631147,32.949632],[102.631226,32.949717],[102.631239,32.949864],[102.631253,32.950011],[102.631261,32.950096],[102.631268,32.950179],[102.631281,32.950321],[102.631289,32.950407],[102.631292,32.950435],[102.631305,32.95058],[102.631325,32.950801],[102.631212,32.950989],[102.631193,32.951022],[102.630586,32.952031],[102.630581,32.952036],[102.630072,32.952476],[102.630043,32.952501],[102.630014,32.952525],[102.629867,32.952653],[102.629667,32.952825],[102.629362,32.95283],[102.628126,32.95285],[102.626533,32.952441],[102.626411,32.952439],[102.626055,32.952432],[102.62601,32.952431],[102.626001,32.952431],[102.625966,32.95243],[102.625819,32.952428],[102.625092,32.952414],[102.625048,32.952413],[102.624993,32.952412],[102.624898,32.952443],[102.624784,32.952481],[102.624718,32.952503],[102.624634,32.95253],[102.624575,32.952549],[102.624521,32.952567],[102.624407,32.952583],[102.624102,32.95268],[102.623952,32.952768],[102.623828,32.952861],[102.62369,32.953007],[102.623227,32.953304],[102.623137,32.953362],[102.62291,32.953509],[102.622672,32.953755],[102.621524,32.954943],[102.620567,32.955685],[102.61982,32.956263],[102.617603,32.957574],[102.61714,32.957866],[102.616773,32.957989],[102.616813,32.958071],[102.616683,32.958155],[102.616657,32.958171],[102.616466,32.958292],[102.61641,32.958327],[102.616157,32.958487],[102.615969,32.958606],[102.615775,32.958729],[102.615237,32.959638],[102.615113,32.960767],[102.61506,32.961253],[102.615041,32.961423],[102.615039,32.961439],[102.615024,32.961581],[102.615001,32.961791],[102.615128,32.961831],[102.615264,32.961873],[102.615258,32.961906],[102.615228,32.961926],[102.615167,32.961966],[102.615145,32.961999],[102.615143,32.962032],[102.615148,32.962077],[102.615175,32.962145],[102.61514,32.962163],[102.615074,32.962184],[102.615063,32.962228],[102.61506,32.962364],[102.615068,32.962424],[102.615101,32.96249],[102.615087,32.962527],[102.615045,32.962578],[102.61501,32.962636],[102.615004,32.962685],[102.615013,32.962764],[102.615008,32.96285],[102.615004,32.962926],[102.614996,32.963009],[102.614993,32.963056],[102.614992,32.963075],[102.61495,32.963164],[102.614924,32.963263],[102.614914,32.963326],[102.614901,32.963397],[102.614839,32.963528],[102.614816,32.963624],[102.614801,32.963688],[102.614795,32.96374],[102.614782,32.963811],[102.614731,32.963871],[102.614694,32.963962],[102.614661,32.964044],[102.614633,32.964126],[102.614606,32.964203],[102.614576,32.964278],[102.614576,32.96435],[102.61458,32.964406],[102.614554,32.964459],[102.614498,32.964475],[102.614255,32.964736],[102.614205,32.96479],[102.6142,32.964794],[102.614134,32.964866],[102.613554,32.964913],[102.612526,32.964997],[102.612445,32.964992],[102.612279,32.964982],[102.612068,32.964969],[102.612054,32.964968],[102.61198,32.964988],[102.611934,32.964987],[102.611856,32.964984],[102.611763,32.964986],[102.611579,32.965007],[102.611508,32.964992],[102.611433,32.964949],[102.611411,32.964929],[102.611354,32.964876],[102.611283,32.964827],[102.611226,32.964791],[102.611178,32.964775],[102.611113,32.964775],[102.611042,32.964775],[102.611003,32.96479],[102.611,32.964814],[102.611023,32.964837],[102.611051,32.964849],[102.611173,32.964917],[102.610987,32.964914],[102.610591,32.964906],[102.609961,32.964894],[102.609724,32.965032],[102.609676,32.96506],[102.609643,32.965079],[102.609626,32.965088],[102.609366,32.965239],[102.609357,32.965245],[102.609314,32.96527],[102.608788,32.965575],[102.607592,32.967067],[102.607494,32.967873],[102.607479,32.967994],[102.60747,32.968069],[102.607465,32.968105],[102.607427,32.968416],[102.60784,32.969122],[102.607989,32.969376],[102.608028,32.969443],[102.60807,32.969515],[102.608164,32.969675],[102.608589,32.969944],[102.609021,32.970216],[102.609047,32.970233],[102.609448,32.970391],[102.609539,32.970427],[102.611063,32.971029],[102.611207,32.971086],[102.612087,32.971478],[102.612348,32.971595],[102.612486,32.971878],[102.612603,32.972121],[102.612956,32.972851],[102.612939,32.9735],[102.612817,32.973998],[102.61265,32.974684],[102.611145,32.975738],[102.611094,32.975783],[102.610133,32.976627],[102.610081,32.976673],[102.610059,32.976693],[102.609699,32.977009],[102.609661,32.977056],[102.609001,32.977883],[102.608683,32.978282],[102.608636,32.978341],[102.608634,32.978352],[102.608452,32.979338],[102.60836,32.979838],[102.608326,32.980026],[102.608318,32.980065],[102.608276,32.980093],[102.608255,32.98014],[102.608216,32.980212],[102.608179,32.980261],[102.608148,32.980306],[102.608111,32.980371],[102.608097,32.980417],[102.608067,32.980495],[102.608028,32.980565],[102.607973,32.980628],[102.6079,32.980714],[102.607876,32.980759],[102.607853,32.980823],[102.607853,32.980869],[102.607853,32.980936],[102.607859,32.981006],[102.607863,32.981065],[102.60785,32.981107],[102.607824,32.98115],[102.607782,32.981204],[102.60771,32.981293],[102.607697,32.981342],[102.607691,32.981409],[102.607691,32.981449],[102.607699,32.981491],[102.607714,32.981534],[102.607727,32.981564],[102.607752,32.981596],[102.607784,32.981641],[102.607797,32.981674],[102.607814,32.981721],[102.607814,32.981738],[102.607817,32.981747],[102.607824,32.98175],[102.607811,32.981776],[102.607807,32.981784],[102.607727,32.981937],[102.607575,32.982231],[102.607528,32.982322],[102.6075,32.982377],[102.607396,32.982444],[102.607282,32.982517],[102.606602,32.982955],[102.606012,32.983334],[102.605268,32.983813],[102.605213,32.983848],[102.60496,32.984044],[102.604552,32.984358],[102.604134,32.984681],[102.604093,32.984712],[102.604081,32.984722],[102.603843,32.984905],[102.603682,32.98503],[102.60364,32.985062],[102.602978,32.985807],[102.602852,32.986324],[102.60284,32.986373],[102.602738,32.986789],[102.602545,32.987584],[102.602399,32.987871],[102.602371,32.987928],[102.602137,32.988388],[102.602002,32.988656],[102.601927,32.988769],[102.601541,32.989354],[102.601489,32.989433],[102.60146,32.989478],[102.60139,32.989583],[102.601333,32.989671],[102.600635,32.990232],[102.600506,32.990336],[102.600477,32.990284],[102.600399,32.990296],[102.600339,32.990322],[102.600289,32.990359],[102.600212,32.990406],[102.600144,32.990448],[102.600071,32.990565],[102.599935,32.990717],[102.599868,32.990857],[102.5998,32.991002],[102.599762,32.991106],[102.599715,32.991277],[102.599707,32.991307],[102.59971,32.991318],[102.599161,32.991631],[102.599116,32.991723],[102.598882,32.99221],[102.598643,32.992707],[102.598473,32.99306],[102.598135,32.993447],[102.598165,32.993482],[102.598197,32.993556],[102.598225,32.993622],[102.59824,32.993684],[102.598252,32.993758],[102.598252,32.99382],[102.598241,32.993894],[102.5982,32.99401],[102.598198,32.994014],[102.598145,32.994089],[102.598142,32.994094],[102.598043,32.994268],[102.597985,32.994376],[102.597985,32.994385],[102.59798,32.994457],[102.597978,32.994587],[102.597933,32.994676],[102.597837,32.994828],[102.597751,32.994957],[102.597736,32.995108],[102.597571,32.995504],[102.597539,32.995619],[102.597438,32.99598],[102.597496,32.996102],[102.59753,32.996173],[102.597535,32.996184],[102.597653,32.996432],[102.597802,32.996745],[102.597865,32.996847],[102.598769,32.998313],[102.598888,32.998445],[102.598982,32.998588],[102.599097,32.998698],[102.599032,32.998739],[102.599064,32.998867],[102.599114,32.999063],[102.599261,32.999641],[102.599487,33.000535],[102.599949,33.00133],[102.600198,33.001761],[102.600242,33.001836],[102.600337,33.002],[102.600288,33.002117],[102.600175,33.002382],[102.599868,33.003102],[102.599772,33.003328],[102.599699,33.003498],[102.599514,33.003933],[102.599175,33.004538],[102.598841,33.005135],[102.598568,33.005621],[102.598268,33.006157],[102.597988,33.006453],[102.597774,33.006678],[102.597681,33.006776],[102.597632,33.006829],[102.597291,33.007188],[102.597201,33.007266],[102.596502,33.007872],[102.596374,33.008063],[102.596361,33.008056],[102.596341,33.008054],[102.596302,33.00806],[102.596271,33.008089],[102.596247,33.008125],[102.59621,33.008151],[102.596165,33.008181],[102.596133,33.008224],[102.596058,33.00829],[102.596019,33.008347],[102.595979,33.008387],[102.595873,33.00855],[102.595851,33.008616],[102.595822,33.008722],[102.595803,33.00879],[102.595795,33.008862],[102.595796,33.008998],[102.595808,33.009091],[102.59581,33.00918],[102.595842,33.009421],[102.595964,33.009979],[102.596016,33.010342],[102.59602,33.010378],[102.596038,33.010551],[102.596067,33.010644],[102.596103,33.010737],[102.596111,33.010826],[102.596114,33.010931],[102.596117,33.010984],[102.596128,33.011012],[102.596159,33.011058],[102.596176,33.011106],[102.596194,33.0112],[102.596203,33.01129],[102.596222,33.011359],[102.596241,33.01145],[102.596279,33.011572],[102.596306,33.01165],[102.596329,33.011745],[102.596351,33.011828],[102.596377,33.011896],[102.596409,33.011956],[102.596486,33.012062],[102.596487,33.012067],[102.596501,33.012145],[102.596602,33.012707],[102.596587,33.01271],[102.596582,33.012722],[102.596583,33.012755],[102.5966,33.012861],[102.596619,33.012985],[102.596618,33.013132],[102.596637,33.01322],[102.596676,33.01334],[102.596723,33.013455],[102.596735,33.013516],[102.59678,33.013734],[102.596793,33.01388],[102.5968,33.013921],[102.596855,33.014254],[102.59689,33.014527],[102.596958,33.014857],[102.596998,33.014977],[102.597028,33.015083],[102.597057,33.015335],[102.597101,33.015493],[102.597124,33.015689],[102.597145,33.015832],[102.597169,33.015997],[102.597218,33.016187],[102.597217,33.016297],[102.597221,33.016398],[102.597226,33.016476],[102.597201,33.016546],[102.597178,33.016596],[102.597173,33.016653],[102.597174,33.016722],[102.597157,33.016801],[102.597126,33.01699],[102.597096,33.017099],[102.597084,33.017153],[102.597085,33.017167],[102.59709,33.01717],[102.597047,33.017276],[102.596987,33.017422],[102.596793,33.017892],[102.596761,33.017969],[102.596736,33.018017],[102.596136,33.019157],[102.595949,33.019299],[102.595286,33.019805],[102.594985,33.020034],[102.594183,33.020423],[102.593784,33.020616],[102.5936,33.020705],[102.59303,33.020981],[102.593002,33.020995],[102.592401,33.021225],[102.591902,33.021417],[102.591167,33.021699],[102.591161,33.021702],[102.591144,33.021708],[102.590511,33.021851],[102.590266,33.02204],[102.590142,33.022091],[102.590051,33.02212],[102.589907,33.022161],[102.589786,33.022188],[102.589704,33.022208],[102.589647,33.022218],[102.589576,33.022218],[102.589411,33.022213],[102.589334,33.022195],[102.589212,33.022163],[102.589152,33.022143],[102.58907,33.022159],[102.588579,33.022258],[102.588438,33.022402],[102.588426,33.022415],[102.588379,33.022393],[102.588312,33.022383],[102.588218,33.022382],[102.588144,33.022386],[102.5881,33.022403],[102.588085,33.022421],[102.588079,33.022449],[102.588106,33.022475],[102.588143,33.022492],[102.588183,33.02251],[102.5882,33.02253],[102.5882,33.022549],[102.588169,33.022586],[102.588098,33.022645],[102.587992,33.022703],[102.587944,33.02273],[102.587911,33.02274],[102.587876,33.022744],[102.587852,33.022736],[102.587836,33.022727],[102.587833,33.022713],[102.587857,33.022688],[102.587871,33.022651],[102.587872,33.022622],[102.587852,33.022603],[102.587813,33.022599],[102.587759,33.022624],[102.587663,33.022666],[102.587584,33.022693],[102.587525,33.022743],[102.587484,33.022815],[102.587477,33.022865],[102.587502,33.022953],[102.587534,33.023077],[102.587566,33.023207],[102.587611,33.0233],[102.587651,33.023372],[102.587684,33.023436],[102.587708,33.023479],[102.587717,33.023498],[102.587717,33.023529],[102.587689,33.023667],[102.58767,33.023781],[102.587602,33.023894],[102.587567,33.024012],[102.587533,33.02416],[102.587522,33.02426],[102.587511,33.024436],[102.587518,33.024537],[102.587537,33.024649],[102.587576,33.024778],[102.587601,33.024853],[102.587637,33.024948],[102.58767,33.025072],[102.587682,33.025154],[102.587693,33.025238],[102.587722,33.025307],[102.587752,33.025364],[102.587779,33.025436],[102.587795,33.025484],[102.587808,33.025504],[102.587821,33.025516],[102.587835,33.025516],[102.587867,33.025622],[102.587868,33.025627],[102.588082,33.02635],[102.588099,33.026455],[102.588196,33.027087],[102.588233,33.027326],[102.58808,33.028104],[102.588027,33.028371],[102.587814,33.028606],[102.58766,33.028776],[102.587423,33.028798],[102.587403,33.0288],[102.587086,33.02883],[102.586629,33.028873],[102.586502,33.028885],[102.586367,33.028897],[102.586204,33.028913],[102.586039,33.028928],[102.586011,33.028931],[102.585767,33.028951],[102.585759,33.028951],[102.585345,33.028985],[102.585243,33.028993],[102.585206,33.028996],[102.584898,33.029022],[102.58478,33.029044],[102.58454,33.02909],[102.584225,33.029],[102.584161,33.028982],[102.583938,33.028918],[102.583863,33.028828],[102.583777,33.028794],[102.58373,33.028787],[102.583558,33.028618],[102.583445,33.028507],[102.583413,33.028019],[102.583203,33.027803],[102.583154,33.027752],[102.583051,33.027706],[102.583036,33.0277],[102.582891,33.027635],[102.582875,33.027625],[102.582876,33.027658],[102.582872,33.027719],[102.582867,33.027746],[102.58285,33.027768],[102.582829,33.027774],[102.582816,33.027764],[102.582788,33.027724],[102.582759,33.027683],[102.582714,33.027629],[102.582682,33.027584],[102.582632,33.027511],[102.582562,33.027427],[102.58253,33.027407],[102.582492,33.027366],[102.582294,33.027218],[102.582207,33.027148],[102.582155,33.027137],[102.582137,33.027135],[102.582107,33.027138],[102.58206,33.027141],[102.582007,33.02714],[102.58193,33.027138],[102.581897,33.027129],[102.58188,33.027106],[102.581875,33.027071],[102.581879,33.027013],[102.581881,33.026973],[102.581881,33.026929],[102.581869,33.02692],[102.5818,33.026865],[102.581712,33.026863],[102.581564,33.02686],[102.5814,33.026857],[102.581295,33.027454],[102.58106,33.027936],[102.580833,33.028082],[102.580438,33.027924],[102.580409,33.027857],[102.580407,33.027851],[102.580365,33.027754],[102.580349,33.027715],[102.580229,33.027433],[102.579831,33.027351],[102.579781,33.027391],[102.579776,33.027395],[102.579766,33.027376],[102.579741,33.02735],[102.5797,33.027316],[102.579635,33.027288],[102.579553,33.027281],[102.579474,33.027289],[102.579386,33.027371],[102.579322,33.027438],[102.579209,33.027339],[102.578999,33.026885],[102.578945,33.026754],[102.578958,33.026736],[102.578967,33.026692],[102.578919,33.0266],[102.578865,33.026561],[102.578856,33.026539],[102.578624,33.025979],[102.578422,33.025619],[102.578412,33.025601],[102.578394,33.025597],[102.578459,33.025577],[102.578536,33.025544],[102.578573,33.025518],[102.578603,33.025482],[102.578625,33.025407],[102.578613,33.025312],[102.578554,33.02523],[102.578465,33.025182],[102.578381,33.025173],[102.578271,33.025223],[102.578151,33.0253],[102.578068,33.025354],[102.577993,33.025375],[102.577846,33.025382],[102.577719,33.025382],[102.577597,33.025435],[102.577502,33.025471],[102.577488,33.025476],[102.577466,33.025474],[102.577393,33.025468],[102.57682,33.025308],[102.576877,33.024822],[102.576672,33.024219],[102.576621,33.024138],[102.576576,33.024175],[102.576519,33.024115],[102.576574,33.024062],[102.576459,33.023878],[102.576169,33.023872],[102.57597,33.023868],[102.57565,33.024079],[102.575602,33.02411],[102.575488,33.024185],[102.575472,33.024195],[102.575447,33.024217],[102.574835,33.024745],[102.574522,33.024814],[102.574415,33.024738],[102.574358,33.024698],[102.574304,33.024659],[102.574305,33.024622],[102.574305,33.024612],[102.574313,33.024323],[102.574688,33.023618],[102.574919,33.023286],[102.574928,33.022949],[102.574501,33.022342],[102.574332,33.022001],[102.574404,33.021932],[102.57456,33.021781],[102.574594,33.021766],[102.574606,33.021779],[102.574624,33.021791],[102.574724,33.021856],[102.574812,33.021904],[102.574898,33.021918],[102.574983,33.021913],[102.575045,33.021888],[102.57509,33.021827],[102.575103,33.021787],[102.57511,33.021715],[102.575111,33.021674],[102.575107,33.021604],[102.575101,33.021529],[102.575115,33.021513],[102.575467,33.021125],[102.575479,33.020714],[102.575482,33.020602],[102.575489,33.020564],[102.575533,33.02034],[102.575625,33.020258],[102.57564,33.020246],[102.575708,33.020251],[102.575753,33.020236],[102.575843,33.020201],[102.575907,33.02015],[102.575967,33.020082],[102.57599,33.020037],[102.575993,33.019987],[102.57597,33.019953],[102.575989,33.019937],[102.576066,33.019799],[102.576176,33.019603],[102.576139,33.01934],[102.575929,33.018887],[102.575669,33.018787],[102.575653,33.018748],[102.57562,33.018684],[102.575537,33.018614],[102.57547,33.018581],[102.575384,33.01858],[102.575326,33.01858],[102.575282,33.018579],[102.575247,33.018595],[102.57523,33.018604],[102.575218,33.018598],[102.574703,33.018313],[102.574612,33.018262],[102.574533,33.01821],[102.574453,33.018156],[102.574333,33.018077],[102.573914,33.017799],[102.573531,33.017193],[102.573309,33.017151],[102.572818,33.017254],[102.572601,33.01717],[102.572587,33.017165],[102.57251,33.017135],[102.572514,33.017123],[102.572567,33.01698],[102.572569,33.016975],[102.572606,33.016875],[102.572706,33.016465],[102.572672,33.016248],[102.572758,33.016214],[102.572807,33.016178],[102.572857,33.016122],[102.572882,33.016083],[102.572882,33.016036],[102.572873,33.015994],[102.572855,33.015967],[102.572828,33.015924],[102.572802,33.015895],[102.572703,33.015863],[102.572602,33.015851],[102.57249,33.015853],[102.572479,33.015843],[102.57224,33.015632],[102.572005,33.015578],[102.571998,33.015576],[102.571989,33.015561],[102.571952,33.015495],[102.571897,33.015427],[102.571839,33.015361],[102.571792,33.015319],[102.571753,33.015256],[102.571701,33.015202],[102.571651,33.015183],[102.57163,33.015177],[102.57161,33.015172],[102.571586,33.01517],[102.571572,33.015169],[102.571574,33.015164],[102.571682,33.01491],[102.572006,33.014429],[102.571895,33.014331],[102.571705,33.014382],[102.571686,33.014315],[102.571679,33.014289],[102.571648,33.014213],[102.571586,33.014136],[102.57152,33.014066],[102.57148,33.014024],[102.571378,33.013999],[102.571312,33.013987],[102.571212,33.013973],[102.571149,33.013971],[102.571029,33.014015],[102.570984,33.014032],[102.570748,33.014119],[102.570725,33.014127],[102.57059,33.014177],[102.570199,33.014242],[102.569787,33.014311],[102.569426,33.014529],[102.569146,33.01501],[102.569089,33.015016],[102.569055,33.015019],[102.568917,33.015033],[102.568899,33.015046],[102.56884,33.015082],[102.568801,33.015106],[102.568759,33.015133],[102.568715,33.015156],[102.568662,33.01519],[102.568607,33.015225],[102.56859,33.015241],[102.568536,33.015276],[102.568466,33.015337],[102.568414,33.015368],[102.568408,33.015372],[102.56837,33.015403],[102.568316,33.015398],[102.568283,33.015382],[102.568249,33.015338],[102.568229,33.015291],[102.568267,33.015253],[102.568317,33.015215],[102.568353,33.015191],[102.568398,33.015176],[102.568456,33.015143],[102.568484,33.015122],[102.568512,33.015102],[102.568559,33.015057],[102.568596,33.015006],[102.568605,33.014951],[102.568597,33.014883],[102.568571,33.014829],[102.568425,33.014737],[102.568385,33.014721],[102.568333,33.01469],[102.568272,33.01468],[102.568234,33.01469],[102.568183,33.014718],[102.568178,33.014721],[102.568146,33.014746],[102.568115,33.014775],[102.568082,33.014828],[102.568073,33.01486],[102.56807,33.014907],[102.568057,33.01498],[102.568051,33.015022],[102.568033,33.015064],[102.568009,33.015103],[102.567987,33.015124],[102.567947,33.015145],[102.567889,33.015149],[102.567837,33.01514],[102.567799,33.015115],[102.567748,33.015072],[102.567728,33.015039],[102.567695,33.015012],[102.567668,33.014986],[102.567647,33.014967],[102.567637,33.014943],[102.567639,33.014903],[102.567675,33.014873],[102.567706,33.014862],[102.567713,33.014859],[102.567788,33.014833],[102.567853,33.014792],[102.567908,33.014749],[102.56796,33.014701],[102.567991,33.014652],[102.567994,33.014617],[102.567994,33.014572],[102.567966,33.014504],[102.567944,33.014481],[102.567914,33.014463],[102.56788,33.014448],[102.567845,33.01444],[102.567805,33.01443],[102.567768,33.014426],[102.567725,33.014424],[102.567646,33.014432],[102.567603,33.014452],[102.56754,33.014474],[102.567501,33.014482],[102.567442,33.014478],[102.567387,33.014464],[102.567332,33.014434],[102.567285,33.01437],[102.567256,33.014326],[102.567205,33.014274],[102.567113,33.014192],[102.567072,33.014156],[102.567028,33.014119],[102.566988,33.014081],[102.566961,33.014052],[102.56692,33.014019],[102.566886,33.014005],[102.566837,33.014003],[102.566794,33.014014],[102.566768,33.014035],[102.566746,33.014059],[102.56671,33.014092],[102.566694,33.014109],[102.566687,33.014128],[102.566684,33.014162],[102.566706,33.014202],[102.56672,33.014238],[102.566738,33.014279],[102.566753,33.014335],[102.566762,33.014384],[102.566762,33.014449],[102.566751,33.014475],[102.566742,33.014499],[102.56671,33.014548],[102.566684,33.014584],[102.566657,33.014613],[102.566625,33.014637],[102.566574,33.014662],[102.566533,33.01467],[102.566458,33.014667],[102.566427,33.014654],[102.566413,33.014636],[102.566419,33.014589],[102.566449,33.014539],[102.566472,33.014505],[102.566502,33.014452],[102.566525,33.01441],[102.566541,33.014371],[102.566558,33.014317],[102.566561,33.014264],[102.566559,33.014235],[102.56654,33.0142],[102.566501,33.01421],[102.566455,33.014276],[102.566406,33.014238],[102.566342,33.014224],[102.566269,33.01423],[102.566184,33.014236],[102.5661,33.014221],[102.566033,33.014201],[102.565929,33.014147],[102.565868,33.014113],[102.565832,33.014114],[102.565796,33.014128],[102.565756,33.014174],[102.565718,33.014212],[102.56566,33.01428],[102.565605,33.014317],[102.56553,33.014338],[102.565487,33.014334],[102.565421,33.01431],[102.56535,33.014261],[102.565273,33.014237],[102.56524,33.014238],[102.565187,33.014265],[102.56515,33.014316],[102.565127,33.014387],[102.565139,33.014437],[102.565159,33.014465],[102.565201,33.014488],[102.565257,33.014509],[102.56533,33.014531],[102.56541,33.014546],[102.565446,33.014556],[102.56554,33.014581],[102.565608,33.014616],[102.565623,33.014628],[102.565667,33.014665],[102.56569,33.014713],[102.565705,33.014794],[102.565709,33.014878],[102.56572,33.014955],[102.565722,33.014962],[102.56575,33.015037],[102.565774,33.015075],[102.565803,33.015099],[102.565848,33.015115],[102.565874,33.015116],[102.565927,33.015105],[102.565981,33.015083],[102.566059,33.015055],[102.56612,33.015038],[102.566174,33.015041],[102.566235,33.015069],[102.566316,33.015122],[102.566342,33.015157],[102.56634,33.015218],[102.566274,33.015213],[102.566298,33.01524],[102.566315,33.015268],[102.566314,33.015297],[102.566301,33.015328],[102.566269,33.015359],[102.566192,33.015377],[102.566053,33.015381],[102.566021,33.015384],[102.565952,33.015401],[102.565891,33.015428],[102.565852,33.015458],[102.565802,33.015493],[102.56577,33.01552],[102.565717,33.01555],[102.565684,33.01556],[102.565637,33.015558],[102.565605,33.01553],[102.565607,33.015517],[102.565642,33.015471],[102.565662,33.015432],[102.565667,33.01538],[102.565666,33.015309],[102.565658,33.015278],[102.565636,33.015245],[102.565608,33.015223],[102.565561,33.015211],[102.565508,33.015198],[102.565433,33.015195],[102.565393,33.015285],[102.565244,33.015624],[102.565203,33.015718],[102.565145,33.01585],[102.565032,33.016325],[102.564702,33.017414],[102.564503,33.019769],[102.564832,33.021152],[102.565268,33.022255],[102.565489,33.023014],[102.564996,33.024583],[102.564351,33.026233],[102.564152,33.027113],[102.563754,33.029327],[102.563595,33.030334],[102.563055,33.032418],[102.562602,33.033573],[102.561842,33.034839],[102.5616,33.035978],[102.561623,33.036826],[102.56179,33.037558],[102.561676,33.038325],[102.561634,33.038994],[102.561196,33.039597],[102.560478,33.040155],[102.559556,33.040511],[102.559062,33.04058],[102.557617,33.040375],[102.556985,33.040382],[102.556472,33.040293],[102.555916,33.040105],[102.554891,33.039927],[102.553888,33.039809],[102.553137,33.039853],[102.551708,33.039904],[102.550889,33.039908],[102.550049,33.039812],[102.549396,33.03972],[102.54839,33.039701],[102.54766,33.039864],[102.547299,33.040231],[102.54684,33.040735],[102.546175,33.041096],[102.545443,33.041338],[102.544879,33.041406],[102.544176,33.041431],[102.543737,33.041245],[102.543113,33.040937],[102.542123,33.040346],[102.540789,33.039719],[102.540183,33.039411],[102.539558,33.039192],[102.538575,33.038537],[102.537837,33.037931],[102.536001,33.036638],[102.535533,33.03631],[102.534951,33.035924],[102.534416,33.035636],[102.53399,33.035572],[102.533533,33.035438],[102.533093,33.035277],[102.532688,33.035034],[102.53248,33.034849],[102.532231,33.034928],[102.532038,33.03534],[102.531727,33.035888],[102.530795,33.036826],[102.530071,33.037407],[102.529272,33.037913],[102.528543,33.038227],[102.528049,33.038269],[102.527509,33.038449],[102.526871,33.038454],[102.526239,33.038286],[102.525561,33.038272],[102.524803,33.03817],[102.523696,33.038027],[102.522811,33.038062],[102.519916,33.037396],[102.519404,33.037342],[102.518386,33.036997],[102.517473,33.036568],[102.516349,33.036351],[102.515863,33.036276],[102.514969,33.036085],[102.513953,33.035654],[102.51329,33.035489],[102.512733,33.035197],[102.512043,33.035053],[102.511503,33.035064],[102.510549,33.035218],[102.509431,33.03545],[102.508559,33.035622],[102.507595,33.03563],[102.506864,33.035372],[102.506104,33.035005],[102.505439,33.034667],[102.504169,33.034128],[102.503601,33.033792],[102.503184,33.033756],[102.502766,33.033775],[102.502507,33.033851],[102.501858,33.034108],[102.501299,33.034557],[102.500546,33.035083],[102.500222,33.035185],[102.499675,33.035062],[102.499122,33.035051],[102.498087,33.035154],[102.497306,33.036691],[102.495965,33.038496],[102.495199,33.039536],[102.494835,33.040647],[102.494461,33.04216],[102.493072,33.043033],[102.492318,33.043639],[102.490944,33.043984],[102.490709,33.044015],[102.489316,33.044199],[102.487775,33.04392],[102.486396,33.043147],[102.485531,33.042477],[102.484898,33.041378],[102.484622,33.04072],[102.484244,33.03975],[102.483751,33.038964],[102.482808,33.038417],[102.481976,33.037842],[102.480949,33.037666],[102.480447,33.03719],[102.479841,33.036463],[102.478959,33.036352],[102.478923,33.036351],[102.478298,33.036277],[102.477346,33.03604],[102.476507,33.035744],[102.475637,33.03523],[102.475582,33.035207],[102.475615,33.034992],[102.475657,33.034723],[102.475698,33.034454],[102.47574,33.034185],[102.475781,33.033917],[102.475823,33.033648],[102.475864,33.033379],[102.475906,33.03311],[102.475947,33.032842],[102.475926,33.032605],[102.475905,33.032368],[102.475776,33.031939],[102.475736,33.03187],[102.475733,33.031859],[102.475587,33.031612],[102.475442,33.031366],[102.475314,33.031314],[102.474999,33.031184],[102.474684,33.031054],[102.474302,33.030978],[102.4741,33.03096],[102.47385,33.030906],[102.473606,33.030835],[102.473238,33.030609],[102.472936,33.030362],[102.472634,33.030115],[102.472332,33.029868],[102.47203,33.029621],[102.471843,33.029357],[102.471655,33.029092],[102.4715,33.028928],[102.471345,33.028765],[102.471316,33.028735],[102.471123,33.028536],[102.47093,33.028337],[102.470912,33.028314],[102.47076,33.028123],[102.470608,33.027932],[102.470368,33.027646],[102.470128,33.027361],[102.469889,33.027075],[102.469597,33.026796],[102.469317,33.026475],[102.469005,33.026189],[102.468693,33.025904],[102.468529,33.025713],[102.468366,33.025523],[102.468253,33.02535],[102.468098,33.025041],[102.467937,33.024886],[102.467806,33.024738],[102.467658,33.024541],[102.467533,33.024363],[102.467426,33.024107],[102.467319,33.023851],[102.46714,33.02359],[102.466955,33.023369],[102.466795,33.023179],[102.466572,33.022974],[102.466349,33.022769],[102.466072,33.022605],[102.465796,33.022442],[102.4655,33.022267],[102.465205,33.022093],[102.464909,33.021918],[102.464541,33.021739],[102.464172,33.021561],[102.463803,33.021383],[102.463494,33.021148],[102.463184,33.020913],[102.463059,33.020746],[102.462997,33.020574],[102.462872,33.02029],[102.462817,33.019904],[102.462762,33.019518],[102.462706,33.019132],[102.462638,33.018914],[102.462569,33.018695],[102.4625,33.018477],[102.462431,33.018259],[102.462363,33.018041],[102.462294,33.017822],[102.462189,33.017513],[102.462063,33.017084],[102.461956,33.016869],[102.461849,33.016655],[102.461728,33.016451],[102.461607,33.016247],[102.461416,33.016042],[102.461225,33.015837],[102.461075,33.015669],[102.460926,33.0155],[102.460767,33.015165],[102.460708,33.014786],[102.460648,33.014407],[102.460642,33.01399],[102.460635,33.013574],[102.460629,33.01322],[102.460644,33.01306],[102.460682,33.012626],[102.46072,33.012191],[102.460745,33.011906],[102.460751,33.011867],[102.460799,33.01156],[102.460847,33.011252],[102.4609,33.011068],[102.460974,33.010764],[102.461049,33.010461],[102.461111,33.010104],[102.461174,33.009747],[102.461287,33.009456],[102.461275,33.0092],[102.461215,33.008962],[102.46121,33.008949],[102.461061,33.008617],[102.46096,33.008457],[102.46096,33.008456],[102.46096,33.008456],[102.460876,33.008218],[102.460781,33.007903],[102.460742,33.007677],[102.460702,33.007451],[102.460644,33.007118],[102.460658,33.006945],[102.460662,33.006898],[102.460766,33.006689],[102.46087,33.006481],[102.460936,33.006249],[102.460942,33.006041],[102.460858,33.005904],[102.46071,33.005535],[102.460674,33.005274],[102.460668,33.005095],[102.460638,33.004958],[102.460538,33.004786],[102.460536,33.004552],[102.460534,33.004459],[102.460589,33.0042],[102.460644,33.003941],[102.46068,33.00362],[102.460716,33.003299],[102.460789,33.002962],[102.460862,33.002626],[102.460882,33.002531],[102.460992,33.002133],[102.461102,33.001734],[102.461174,33.001294],[102.461174,33.001294],[102.461174,33.001293],[102.461245,33.000961],[102.461346,33.000681],[102.461418,33.000485],[102.461572,33.000199],[102.461602,33.000009],[102.4617,32.999709],[102.461798,32.999408],[102.461905,32.999146],[102.461959,32.99895],[102.461941,32.998784],[102.461769,32.99851],[102.461614,32.998147],[102.46162,32.99782],[102.461644,32.997624],[102.461691,32.997493],[102.461786,32.997261],[102.461798,32.9971],[102.461721,32.996981],[102.461632,32.996934],[102.461471,32.996827],[102.461388,32.996696],[102.461293,32.996517],[102.461215,32.996166],[102.461138,32.996],[102.461114,32.995791],[102.461111,32.995754],[102.461096,32.995589],[102.460971,32.995405],[102.460751,32.995256],[102.460561,32.995039],[102.460371,32.994822],[102.46024,32.994631],[102.460174,32.994453],[102.460192,32.994298],[102.460281,32.994185],[102.460287,32.994084],[102.460275,32.994019],[102.460192,32.993953],[102.460061,32.993906],[102.459752,32.993721],[102.459609,32.993531],[102.45952,32.993376],[102.459502,32.993144],[102.459455,32.992984],[102.459234,32.992627],[102.459187,32.992496],[102.459187,32.992347],[102.459187,32.992291],[102.459187,32.992157],[102.459204,32.992057],[102.459275,32.991636],[102.45935,32.991397],[102.459425,32.991157],[102.459517,32.990935],[102.45956,32.990829],[102.459555,32.99068],[102.459553,32.990622],[102.45955,32.990342],[102.459548,32.990062],[102.459546,32.989915],[102.459575,32.989773],[102.459646,32.989594],[102.459775,32.989394],[102.459917,32.989194],[102.460017,32.98908],[102.460099,32.988898],[102.460233,32.9886],[102.460367,32.988302],[102.460538,32.987917],[102.460617,32.987638],[102.460645,32.987238],[102.460646,32.987233],[102.460672,32.986868],[102.460698,32.986504],[102.460724,32.986139],[102.460767,32.985725],[102.46081,32.985311],[102.460792,32.985001],[102.460774,32.98469],[102.46077,32.984527],[102.460767,32.984383],[102.460824,32.984026],[102.460896,32.983779],[102.460968,32.983533],[102.461032,32.983316],[102.461095,32.983098],[102.461131,32.982841],[102.461045,32.982684],[102.46096,32.982591],[102.460774,32.982402],[102.460588,32.982213],[102.460409,32.981955],[102.46036,32.981885],[102.460256,32.981649],[102.460153,32.981414],[102.460074,32.981271],[102.459953,32.981192],[102.459746,32.981092],[102.459461,32.981017],[102.459175,32.980942],[102.458743,32.980834],[102.458547,32.980785],[102.458326,32.980693],[102.458054,32.980407],[102.457783,32.980122],[102.45764,32.979772],[102.457599,32.979558],[102.457583,32.979472],[102.457583,32.979222],[102.457649,32.978846],[102.45769,32.978608],[102.457676,32.978365],[102.457683,32.978119],[102.45769,32.977873],[102.457685,32.977689],[102.457683,32.977595],[102.457633,32.97738],[102.457526,32.977202],[102.457405,32.976995],[102.457305,32.976766],[102.457233,32.976417],[102.457176,32.976088],[102.457133,32.975696],[102.457091,32.975303],[102.457073,32.975231],[102.456991,32.974889],[102.456919,32.974619],[102.456819,32.974247],[102.456714,32.973826],[102.456609,32.973406],[102.456569,32.973247],[102.456471,32.972903],[102.456373,32.972558],[102.456275,32.972214],[102.456177,32.97187],[102.456177,32.971498],[102.456234,32.971077],[102.456316,32.970842],[102.456398,32.970606],[102.456602,32.970346],[102.456805,32.970085],[102.456965,32.969889],[102.457091,32.969735],[102.457119,32.969496],[102.457148,32.969257],[102.457134,32.969133],[102.457196,32.968854],[102.457322,32.968539],[102.457403,32.968165],[102.45739,32.967829],[102.457352,32.967511],[102.457348,32.967358],[102.45734,32.967095],[102.457352,32.966699],[102.457387,32.966284],[102.457406,32.966047],[102.457424,32.96581],[102.457435,32.965414],[102.457466,32.965177],[102.457543,32.964941],[102.457556,32.96481],[102.457576,32.964624],[102.457688,32.964315],[102.4578,32.964006],[102.457899,32.963769],[102.457998,32.963533],[102.458097,32.963296],[102.458196,32.963059],[102.458295,32.962823],[102.458393,32.962586],[102.458492,32.96235],[102.458591,32.962113],[102.45869,32.961876],[102.458789,32.96164],[102.458888,32.961403],[102.458987,32.961167],[102.458967,32.960873],[102.458943,32.960652],[102.458862,32.96043],[102.45875,32.96028],[102.458537,32.960093],[102.458325,32.959906],[102.45814,32.959743],[102.457956,32.95958],[102.457701,32.959354],[102.457388,32.959127],[102.457015,32.958948],[102.456642,32.95877],[102.456414,32.958729],[102.456186,32.958689],[102.455958,32.958649],[102.45573,32.958609],[102.455502,32.958569],[102.455275,32.958528],[102.455137,32.958455],[102.454846,32.958299],[102.454603,32.958148],[102.45436,32.957996],[102.454162,32.957821],[102.453881,32.957472],[102.453657,32.957175],[102.453463,32.956852],[102.453325,32.956556],[102.453201,32.956346],[102.453076,32.956135],[102.45294,32.955814],[102.452689,32.955441],[102.452522,32.955218],[102.45224,32.954919],[102.451926,32.954692],[102.451639,32.95454],[102.451324,32.954386],[102.451064,32.954307],[102.450804,32.954229],[102.450546,32.954138],[102.450287,32.954047],[102.449898,32.953941],[102.449509,32.953835],[102.449261,32.953789],[102.449012,32.953742],[102.448763,32.953695],[102.448514,32.953649],[102.448266,32.953602],[102.448017,32.953555],[102.447768,32.953509],[102.447519,32.953462],[102.44727,32.953416],[102.447022,32.953369],[102.446775,32.953358],[102.446528,32.953346],[102.446281,32.953335],[102.446034,32.953324],[102.445657,32.953316],[102.445279,32.953308],[102.444902,32.953301],[102.444622,32.953204],[102.444343,32.953107],[102.444061,32.952832],[102.443892,32.952633],[102.443723,32.952434],[102.443559,32.952088],[102.443451,32.951768],[102.443381,32.951543],[102.443311,32.951318],[102.443242,32.951093],[102.443172,32.950869],[102.443102,32.950644],[102.443032,32.950419],[102.442962,32.950195],[102.442892,32.94997],[102.44286,32.94959],[102.442828,32.94921],[102.442722,32.948842],[102.442586,32.94852],[102.44245,32.948175],[102.442309,32.947955],[102.442168,32.947734],[102.441954,32.947596],[102.44174,32.947457],[102.441526,32.947318],[102.441312,32.947179],[102.441058,32.946929],[102.440804,32.946679],[102.440637,32.946406],[102.44047,32.946134],[102.440305,32.945837],[102.44014,32.94554],[102.440044,32.94533],[102.439948,32.94512],[102.439852,32.94491],[102.439756,32.944701],[102.439634,32.944417],[102.439511,32.944133],[102.439431,32.943862],[102.439352,32.943591],[102.43933,32.943359],[102.439307,32.943126],[102.439314,32.942881],[102.439322,32.942635],[102.439343,32.942245],[102.439363,32.941854],[102.439384,32.941463],[102.439386,32.941039],[102.439389,32.940615],[102.439391,32.940191],[102.439339,32.93997],[102.439287,32.939748],[102.439235,32.939527],[102.439183,32.939306],[102.439162,32.939036],[102.439141,32.938766],[102.43915,32.938449],[102.439216,32.938156],[102.43931,32.937939],[102.439335,32.937888]]]]},"properties":{"cp":[102.63776751384222,32.82512378846329],"code":"513233100","name":"邛溪镇","level":"street","center":[102.63776751384222,32.82512378846329],"fullCode":"513233100000","fullName":"四川省阿坝藏族羌族自治州红原县邛溪镇","acreageMu":1343909.49,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.515,32.7855]}},{"id":"513233101","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.662814,32.045234],[102.662707,32.045207],[102.662601,32.045181],[102.662557,32.04517],[102.662315,32.045091],[102.662072,32.045013],[102.661779,32.044999],[102.661578,32.045064],[102.661494,32.045091],[102.661194,32.045298],[102.661069,32.04533],[102.660994,32.045348],[102.660687,32.045334],[102.660559,32.04532],[102.660459,32.045341],[102.660418,32.045441],[102.66038,32.045534],[102.660302,32.045862],[102.660259,32.046041],[102.660223,32.046191],[102.660152,32.046355],[102.66004,32.046537],[102.660016,32.046576],[102.659766,32.046748],[102.659631,32.04689],[102.659509,32.047026],[102.659467,32.047269],[102.659467,32.04744],[102.65944,32.047502],[102.659381,32.04764],[102.659368,32.047662],[102.65926,32.047847],[102.659274,32.048011],[102.659317,32.048132],[102.659407,32.048364],[102.659496,32.048595],[102.659616,32.048903],[102.659681,32.049139],[102.659745,32.049374],[102.659798,32.049628],[102.659802,32.049646],[102.659802,32.049953],[102.659831,32.050153],[102.659859,32.050352],[102.659991,32.050747],[102.660122,32.051141],[102.660173,32.051295],[102.660262,32.051569],[102.660351,32.051844],[102.66043,32.052087],[102.660452,32.052216],[102.660455,32.052277],[102.660459,32.05233],[102.660437,32.052423],[102.66035,32.052517],[102.660137,32.052748],[102.659923,32.052979],[102.659862,32.053059],[102.659852,32.053072],[102.659852,32.053158],[102.659909,32.053272],[102.660088,32.053604],[102.660266,32.053936],[102.660462,32.054243],[102.660659,32.05455],[102.660677,32.054574],[102.66071,32.054618],[102.660948,32.054931],[102.660973,32.054964],[102.661058,32.055196],[102.661144,32.055428],[102.661315,32.055793],[102.661358,32.055885],[102.661537,32.056099],[102.661758,32.05637],[102.661779,32.056463],[102.661779,32.056563],[102.661715,32.056881],[102.661651,32.057198],[102.661645,32.057299],[102.661637,32.057466],[102.661622,32.057734],[102.661601,32.057933],[102.661442,32.058194],[102.661422,32.058226],[102.66124,32.058504],[102.661058,32.058783],[102.661032,32.05891],[102.661001,32.059054],[102.660966,32.059497],[102.660969,32.059843],[102.660973,32.060189],[102.66098,32.060218],[102.661008,32.060332],[102.661001,32.060518],[102.660958,32.06061],[102.660823,32.060717],[102.660743,32.060806],[102.66063,32.060932],[102.660473,32.061231],[102.660438,32.061359],[102.660387,32.061545],[102.660373,32.06181],[102.660363,32.061956],[102.660359,32.062017],[102.660302,32.062195],[102.660291,32.062217],[102.660282,32.062235],[102.660186,32.062431],[102.660132,32.062539],[102.66008,32.062645],[102.659879,32.063025],[102.659879,32.063025],[102.659879,32.063025],[102.659694,32.063374],[102.659576,32.063597],[102.659509,32.063723],[102.659395,32.063901],[102.659267,32.064101],[102.659145,32.064272],[102.659031,32.064451],[102.658938,32.064779],[102.658853,32.064993],[102.658681,32.065243],[102.658653,32.065281],[102.658553,32.065414],[102.658189,32.065557],[102.657932,32.065636],[102.657575,32.065736],[102.657218,32.065836],[102.657015,32.065928],[102.656811,32.066021],[102.656586,32.066143],[102.656361,32.066264],[102.656259,32.066373],[102.656147,32.066492],[102.655962,32.066778],[102.655847,32.067078],[102.65573,32.067351],[102.655614,32.067625],[102.655555,32.067763],[102.655511,32.06791],[102.655412,32.068248],[102.655262,32.068627],[102.655023,32.068984],[102.654784,32.069341],[102.654728,32.069441],[102.654655,32.069573],[102.654533,32.069793],[102.654527,32.069805],[102.65442,32.070197],[102.65439,32.070314],[102.654314,32.070611],[102.654287,32.070717],[102.654238,32.070908],[102.654196,32.071071],[102.654191,32.071089],[102.654084,32.071375],[102.653956,32.071603],[102.653784,32.071832],[102.653592,32.072082],[102.653292,32.072274],[102.652946,32.072424],[102.652599,32.072574],[102.652396,32.072671],[102.652193,32.072767],[102.6519,32.072974],[102.651679,32.073217],[102.651561,32.07351],[102.651536,32.073574],[102.651429,32.073752],[102.651265,32.073866],[102.651022,32.073973],[102.650808,32.074009],[102.650544,32.074038],[102.650479,32.074051],[102.650408,32.074066],[102.650369,32.074089],[102.650144,32.074223],[102.649831,32.074507],[102.649523,32.074786],[102.649216,32.075066],[102.648948,32.075351],[102.64868,32.075637],[102.648583,32.075734],[102.648465,32.075852],[102.64825,32.076067],[102.648124,32.076193],[102.647981,32.076372],[102.647838,32.07655],[102.647717,32.076836],[102.647674,32.077047],[102.647645,32.077193],[102.647549,32.07761],[102.647453,32.078028],[102.647447,32.078049],[102.647365,32.07834],[102.647277,32.078651],[102.647188,32.078963],[102.64718,32.078995],[102.647134,32.079157],[102.647095,32.079295],[102.647024,32.079546],[102.646953,32.079798],[102.646867,32.080039],[102.646822,32.080164],[102.646739,32.080398],[102.646677,32.080554],[102.646656,32.080607],[102.646632,32.080669],[102.646446,32.080969],[102.646346,32.08124],[102.646339,32.081483],[102.646341,32.081493],[102.646382,32.081654],[102.646387,32.081658],[102.64653,32.081746],[102.646589,32.081783],[102.646732,32.081876],[102.646782,32.081965],[102.646832,32.082054],[102.646889,32.082275],[102.647009,32.082514],[102.647129,32.082752],[102.64731,32.08311],[102.647381,32.083378],[102.647453,32.083646],[102.647531,32.083889],[102.647595,32.084181],[102.647595,32.084403],[102.647474,32.084688],[102.64731,32.084824],[102.647174,32.085016],[102.647124,32.085209],[102.647081,32.085445],[102.647075,32.085466],[102.646996,32.085745],[102.646874,32.085923],[102.646659,32.086014],[102.646653,32.086016],[102.646526,32.086055],[102.646146,32.086173],[102.64607,32.08622],[102.645882,32.086337],[102.645818,32.08643],[102.645725,32.086565],[102.645589,32.08693],[102.64544,32.087294],[102.645392,32.087478],[102.645347,32.087651],[102.64529,32.087943],[102.645271,32.088172],[102.645252,32.0884],[102.645225,32.088728],[102.645225,32.088729],[102.645224,32.08873],[102.645135,32.088896],[102.645134,32.088898],[102.645133,32.0889],[102.644883,32.089157],[102.64459,32.089378],[102.6445,32.089487],[102.644426,32.089578],[102.644219,32.089885],[102.644064,32.090142],[102.644054,32.090159],[102.64391,32.090399],[102.643755,32.090656],[102.643712,32.090725],[102.643555,32.090977],[102.643469,32.091348],[102.643412,32.091619],[102.643362,32.091746],[102.64336,32.091753],[102.643334,32.091819],[102.64322,32.092026],[102.642991,32.092255],[102.642722,32.092469],[102.642453,32.092683],[102.642184,32.092897],[102.642081,32.093179],[102.641977,32.093461],[102.641856,32.093875],[102.641699,32.094246],[102.64168,32.094334],[102.641649,32.094475],[102.641649,32.094721],[102.641649,32.094753],[102.641692,32.094953],[102.641778,32.095231],[102.641829,32.095399],[102.641863,32.09551],[102.641935,32.095842],[102.642006,32.096174],[102.64203,32.096328],[102.642042,32.096402],[102.642013,32.096731],[102.642012,32.096752],[102.641999,32.097073],[102.642006,32.097409],[102.642135,32.097787],[102.642227,32.097973],[102.642326,32.098093],[102.642377,32.098155],[102.642527,32.098337],[102.642606,32.098465],[102.642623,32.098534],[102.642641,32.098608],[102.642648,32.098736],[102.642645,32.098869],[102.642641,32.098993],[102.642634,32.099243],[102.642656,32.0995],[102.642677,32.099757],[102.642721,32.099967],[102.64277,32.1002],[102.642756,32.100507],[102.642751,32.100593],[102.642747,32.100664],[102.642741,32.100778],[102.642627,32.101056],[102.642599,32.101206],[102.642606,32.101378],[102.642638,32.101451],[102.642684,32.101556],[102.64269,32.101774],[102.642691,32.101806],[102.642657,32.101871],[102.642563,32.102049],[102.642425,32.10232],[102.642287,32.102591],[102.642149,32.102862],[102.64197,32.103119],[102.641792,32.103376],[102.641592,32.103765],[102.641392,32.104154],[102.641278,32.104347],[102.641071,32.104419],[102.640857,32.104447],[102.640671,32.104397],[102.640428,32.10434],[102.640179,32.104326],[102.640107,32.104356],[102.639834,32.104471],[102.639822,32.104476],[102.639479,32.104568],[102.639293,32.104583],[102.639022,32.104661],[102.638822,32.104768],[102.638677,32.104843],[102.638542,32.104913],[102.63838,32.104997],[102.638173,32.105082],[102.638082,32.105093],[102.637866,32.105118],[102.637602,32.105104],[102.637352,32.105111],[102.637232,32.105145],[102.637173,32.105161],[102.637104,32.105256],[102.637038,32.105347],[102.636933,32.105511],[102.636911,32.105537],[102.636702,32.105739],[102.636452,32.105903],[102.636164,32.106136],[102.635938,32.106317],[102.635724,32.106681],[102.635673,32.106835],[102.635662,32.106868],[102.635543,32.107224],[102.635424,32.107581],[102.635314,32.10787],[102.635203,32.108159],[102.635123,32.108305],[102.635046,32.108445],[102.634853,32.108716],[102.634659,32.10891],[102.634646,32.108923],[102.634475,32.109073],[102.634225,32.109144],[102.633954,32.109216],[102.633554,32.109365],[102.633329,32.109448],[102.633104,32.10953],[102.632871,32.10963],[102.632637,32.109731],[102.632426,32.109822],[102.632205,32.109933],[102.631984,32.110044],[102.631812,32.110122],[102.63158,32.110222],[102.631348,32.110322],[102.631077,32.110365],[102.631068,32.110367],[102.630806,32.110436],[102.630542,32.110529],[102.63037,32.110693],[102.630192,32.110964],[102.630128,32.111129],[102.630128,32.111279],[102.630185,32.111486],[102.63032,32.11175],[102.630588,32.112055],[102.63087,32.112378],[102.631006,32.112592],[102.631037,32.11272],[102.631038,32.112724],[102.631109,32.113029],[102.63118,32.113334],[102.631278,32.113759],[102.631291,32.113815],[102.631377,32.114184],[102.631484,32.114523],[102.631591,32.114862],[102.631677,32.115133],[102.631698,32.115319],[102.631691,32.115469],[102.63162,32.115669],[102.631594,32.115712],[102.631464,32.115937],[102.631334,32.116161],[102.63122,32.116368],[102.631248,32.116725],[102.63134,32.117046],[102.631463,32.117475],[102.631591,32.117689],[102.631591,32.117853],[102.631584,32.118103],[102.631516,32.11836],[102.631448,32.118617],[102.631452,32.118842],[102.631456,32.119067],[102.631534,32.119481],[102.631545,32.119511],[102.631605,32.119688],[102.631684,32.120066],[102.631634,32.120237],[102.631527,32.120466],[102.631384,32.120708],[102.63121,32.120884],[102.631036,32.12106],[102.63077,32.121329],[102.630692,32.121453],[102.630635,32.121544],[102.630563,32.121643],[102.630513,32.121686],[102.630446,32.121749],[102.630278,32.121905],[102.630042,32.122124],[102.629807,32.122343],[102.629703,32.122483],[102.629476,32.122788],[102.629293,32.123035],[102.629228,32.12315],[102.62905,32.123228],[102.628907,32.123264],[102.628722,32.123307],[102.6286,32.123292],[102.628599,32.123292],[102.628597,32.123291],[102.628486,32.123242],[102.628351,32.12321],[102.628336,32.123207],[102.628186,32.123193],[102.628136,32.123178],[102.628034,32.123205],[102.627915,32.123235],[102.627634,32.123345],[102.627353,32.123454],[102.627073,32.123564],[102.626773,32.123697],[102.626473,32.12383],[102.626173,32.123963],[102.625937,32.124067],[102.625681,32.124179],[102.625424,32.124292],[102.625032,32.124485],[102.624931,32.124535],[102.624621,32.12467],[102.624312,32.124805],[102.624002,32.12494],[102.623788,32.125113],[102.623574,32.125285],[102.623276,32.125598],[102.622979,32.12591],[102.62283,32.126011],[102.622803,32.126024],[102.622574,32.126136],[102.622271,32.126279],[102.622199,32.126326],[102.622217,32.126421],[102.622295,32.126656],[102.622372,32.126891],[102.622521,32.1271],[102.622601,32.127332],[102.622681,32.127564],[102.62275,32.127748],[102.622847,32.128004],[102.622943,32.12826],[102.623035,32.128622],[102.623127,32.128985],[102.623234,32.129092],[102.623347,32.129211],[102.623383,32.129318],[102.623469,32.129584],[102.623554,32.12985],[102.623597,32.129985],[102.623663,32.130169],[102.623758,32.13055],[102.623844,32.130838],[102.62393,32.131127],[102.623919,32.131412],[102.623898,32.13147],[102.623823,32.131674],[102.623663,32.132085],[102.623591,32.132281],[102.623595,32.132388],[102.623597,32.132441],[102.623645,32.132572],[102.623782,32.132977],[102.623859,32.133209],[102.623863,32.133232],[102.623919,32.133566],[102.623907,32.133893],[102.623895,32.13422],[102.623883,32.1345],[102.623901,32.134601],[102.623948,32.134708],[102.623966,32.134815],[102.623972,32.134928],[102.623936,32.13533],[102.623901,32.135731],[102.623878,32.13585],[102.623811,32.136189],[102.623798,32.136483],[102.623785,32.136778],[102.62377,32.137117],[102.623767,32.137516],[102.623764,32.137914],[102.623749,32.138086],[102.623748,32.138093],[102.623743,32.138155],[102.623722,32.138396],[102.623695,32.138652],[102.623669,32.138908],[102.623591,32.139044],[102.623383,32.139342],[102.623157,32.139503],[102.622818,32.139711],[102.622703,32.139768],[102.622486,32.139877],[102.622485,32.139877],[102.622188,32.139943],[102.62208,32.139943],[102.621846,32.13991],[102.621612,32.139877],[102.621402,32.139848],[102.621111,32.139851],[102.620819,32.139854],[102.620684,32.139877],[102.620546,32.139901],[102.620355,32.139907],[102.620177,32.139895],[102.620016,32.139889],[102.619737,32.140014],[102.619528,32.140121],[102.619421,32.140139],[102.619332,32.140127],[102.618893,32.140084],[102.618547,32.14005],[102.618312,32.14008],[102.618077,32.140109],[102.617977,32.140132],[102.617869,32.140157],[102.617678,32.140181],[102.617518,32.140139],[102.617167,32.139961],[102.616965,32.139901],[102.616536,32.139889],[102.616153,32.139901],[102.615769,32.139913],[102.615501,32.139949],[102.615234,32.139984],[102.614933,32.140006],[102.614823,32.140014],[102.614567,32.140106],[102.614311,32.140199],[102.614062,32.140347],[102.613789,32.140421],[102.613516,32.140494],[102.613419,32.14052],[102.613084,32.140563],[102.612749,32.140607],[102.612414,32.140651],[102.612119,32.140683],[102.611825,32.140716],[102.611605,32.14074],[102.611474,32.140728],[102.611472,32.140727],[102.611331,32.140686],[102.611165,32.140585],[102.610956,32.140585],[102.610948,32.140589],[102.61079,32.140657],[102.610454,32.140799],[102.610118,32.140942],[102.609933,32.140978],[102.609689,32.140996],[102.609529,32.141025],[102.609528,32.141026],[102.609463,32.141061],[102.60944,32.141109],[102.60941,32.141251],[102.609434,32.141614],[102.609469,32.141781],[102.609483,32.141829],[102.609529,32.141995],[102.609612,32.14237],[102.60961,32.142548],[102.609609,32.142605],[102.609606,32.14284],[102.609606,32.143069],[102.609606,32.143298],[102.609535,32.143595],[102.609525,32.143645],[102.609456,32.144013],[102.609386,32.14438],[102.609292,32.144707],[102.609213,32.144981],[102.609187,32.145039],[102.609112,32.145198],[102.609011,32.145415],[102.608952,32.145725],[102.608946,32.146046],[102.608999,32.146269],[102.609053,32.146492],[102.609195,32.146804],[102.609337,32.147115],[102.609362,32.14717],[102.60941,32.14739],[102.609422,32.147563],[102.609356,32.147735],[102.609277,32.147842],[102.609231,32.147902],[102.609128,32.147988],[102.608905,32.148172],[102.608779,32.148277],[102.608529,32.148426],[102.608434,32.148568],[102.608428,32.148753],[102.608434,32.148884],[102.608517,32.149074],[102.608648,32.149377],[102.608735,32.149594],[102.608821,32.149812],[102.608889,32.150032],[102.608958,32.150252],[102.608976,32.150448],[102.609077,32.150615],[102.609243,32.150763],[102.609359,32.150957],[102.609392,32.151013],[102.609499,32.151204],[102.609683,32.151382],[102.609951,32.151572],[102.610219,32.151763],[102.610287,32.151857],[102.610314,32.151894],[102.610385,32.152078],[102.610443,32.152262],[102.610516,32.152494],[102.610582,32.152786],[102.610659,32.152893],[102.610778,32.152964],[102.610836,32.153019],[102.610944,32.15312],[102.610974,32.153149],[102.611016,32.153292],[102.611028,32.153416],[102.611025,32.153735],[102.611022,32.154053],[102.611081,32.154249],[102.611081,32.154451],[102.611081,32.154654],[102.611129,32.154814],[102.611218,32.154999],[102.61129,32.155147],[102.611325,32.155296],[102.611319,32.155534],[102.61129,32.155825],[102.61129,32.155832],[102.611367,32.156242],[102.61142,32.156516],[102.611504,32.15667],[102.611635,32.156837],[102.611712,32.156986],[102.611849,32.157122],[102.61189,32.157194],[102.611926,32.157325],[102.611944,32.157586],[102.611947,32.157718],[102.611953,32.157958],[102.611957,32.158142],[102.611962,32.15833],[102.611974,32.15858],[102.612018,32.158741],[102.612033,32.158794],[102.612033,32.159014],[102.611962,32.159169],[102.61189,32.159306],[102.611837,32.159466],[102.611801,32.159591],[102.61173,32.159758],[102.611569,32.159939],[102.611409,32.160121],[102.611099,32.160269],[102.610968,32.160295],[102.610885,32.160311],[102.610683,32.160394],[102.610466,32.160582],[102.610303,32.160722],[102.610257,32.160762],[102.610249,32.160769],[102.610197,32.160851],[102.61013,32.160959],[102.61007,32.161156],[102.610034,32.161358],[102.610073,32.1617],[102.610112,32.162042],[102.610209,32.162357],[102.610237,32.162446],[102.610311,32.162667],[102.610385,32.162887],[102.610439,32.163101],[102.610439,32.163103],[102.610439,32.163104],[102.610463,32.163315],[102.610463,32.163517],[102.610445,32.163636],[102.610302,32.163803],[102.610211,32.164013],[102.610119,32.164224],[102.610066,32.164345],[102.610023,32.164445],[102.60993,32.164659],[102.609838,32.164874],[102.609761,32.165094],[102.609683,32.165314],[102.60957,32.165451],[102.609416,32.165564],[102.609332,32.165677],[102.609267,32.165831],[102.609202,32.166141],[102.609166,32.166449],[102.609148,32.166605],[102.609095,32.166771],[102.60897,32.166843],[102.608785,32.166878],[102.608625,32.166985],[102.608482,32.167169],[102.608482,32.16717],[102.608375,32.167402],[102.608324,32.167625],[102.608274,32.167848],[102.608265,32.168136],[102.608256,32.168425],[102.608253,32.16869],[102.60825,32.168954],[102.608208,32.169153],[102.60819,32.16924],[102.608119,32.169424],[102.607857,32.169638],[102.607655,32.169674],[102.607393,32.16974],[102.607256,32.169894],[102.607114,32.170156],[102.606894,32.170543],[102.606884,32.170554],[102.6067,32.170789],[102.6067,32.17083],[102.6067,32.170951],[102.606705,32.170968],[102.606766,32.171189],[102.606871,32.171426],[102.606861,32.171588],[102.606766,32.171712],[102.606595,32.171836],[102.606376,32.17195],[102.606157,32.172064],[102.605911,32.172261],[102.605729,32.172407],[102.605402,32.172705],[102.605075,32.173003],[102.604749,32.173301],[102.604574,32.173505],[102.604339,32.173777],[102.604116,32.174053],[102.603892,32.174329],[102.603511,32.174553],[102.60313,32.174777],[102.602812,32.174948],[102.602493,32.175119],[102.602312,32.175367],[102.602302,32.175408],[102.602255,32.175595],[102.602198,32.175824],[102.602192,32.175871],[102.60217,32.176075],[102.602122,32.176506],[102.602074,32.176937],[102.602046,32.177255],[102.602036,32.177375],[102.602164,32.177751],[102.602293,32.178127],[102.60235,32.178327],[102.60236,32.178565],[102.602379,32.178653],[102.602458,32.179011],[102.602537,32.179368],[102.602617,32.179726],[102.602688,32.180063],[102.60276,32.180399],[102.602769,32.180442],[102.60289,32.180806],[102.602962,32.180999],[102.602975,32.181063],[102.60299,32.181135],[102.60299,32.181313],[102.60296,32.181477],[102.602947,32.181549],[102.602962,32.181699],[102.603004,32.181802],[102.603001,32.181902],[102.602969,32.181988],[102.602969,32.182091],[102.602994,32.182138],[102.603151,32.182327],[102.603172,32.182405],[102.603204,32.182516],[102.60324,32.182652],[102.603271,32.18276],[102.603276,32.182777],[102.60334,32.18293],[102.603411,32.183044],[102.603518,32.183191],[102.603536,32.183251],[102.60353,32.183409],[102.603525,32.183537],[102.60355,32.183897],[102.603568,32.184172],[102.603568,32.184436],[102.60354,32.184831],[102.603511,32.185225],[102.603509,32.185533],[102.603508,32.185664],[102.603497,32.185867],[102.603483,32.186107],[102.603461,32.186224],[102.603401,32.186378],[102.60334,32.186528],[102.603323,32.186627],[102.603311,32.186695],[102.603315,32.187038],[102.603326,32.18722],[102.60329,32.187434],[102.603236,32.187656],[102.603183,32.187877],[102.603097,32.187991],[102.602994,32.188145],[102.602919,32.188287],[102.602808,32.188348],[102.602519,32.188434],[102.602148,32.188601],[102.6021,32.188621],[102.601759,32.188758],[102.601459,32.188851],[102.601245,32.188891],[102.601041,32.188919],[102.600956,32.188908],[102.600859,32.188873],[102.600524,32.188684],[102.60027,32.188591],[102.600053,32.18853],[102.600006,32.188523],[102.599646,32.188469],[102.599335,32.188434],[102.599207,32.188387],[102.598918,32.188266],[102.598746,32.188209],[102.598429,32.188195],[102.598182,32.188216],[102.598018,32.188237],[102.597818,32.188241],[102.597601,32.188198],[102.597599,32.188198],[102.597597,32.188197],[102.597483,32.188177],[102.597354,32.188159],[102.597265,32.188177],[102.59694,32.188373],[102.596719,32.188562],[102.596583,32.188758],[102.596412,32.188894],[102.596219,32.188948],[102.59608,32.188983],[102.595827,32.189076],[102.595455,32.189272],[102.595365,32.189319],[102.595234,32.189398],[102.595031,32.189636],[102.594851,32.189831],[102.59467,32.190026],[102.594554,32.1901],[102.59446,32.190161],[102.594278,32.190272],[102.593932,32.190436],[102.593721,32.190543],[102.59351,32.19065],[102.593196,32.190904],[102.592886,32.191125],[102.592745,32.191225],[102.592725,32.191239],[102.592699,32.191277],[102.592657,32.191339],[102.592532,32.191616],[102.592407,32.191892],[102.592311,32.192198],[102.592214,32.192504],[102.592118,32.19281],[102.592039,32.193146],[102.592025,32.193292],[102.592018,32.193367],[102.591946,32.193639],[102.591804,32.193818],[102.591754,32.193881],[102.591532,32.194034],[102.591525,32.194038],[102.59139,32.194238],[102.591268,32.194474],[102.591147,32.194709],[102.591035,32.195111],[102.590923,32.195514],[102.590811,32.195916],[102.590701,32.19619],[102.59059,32.196465],[102.590465,32.196676],[102.59034,32.196886],[102.590205,32.197158],[102.590133,32.197379],[102.590133,32.197508],[102.590183,32.19765],[102.590239,32.197822],[102.590269,32.197917],[102.590305,32.197952],[102.590392,32.198037],[102.590447,32.198091],[102.590736,32.198295],[102.591025,32.198498],[102.591265,32.198659],[102.591505,32.19882],[102.591622,32.198898],[102.591759,32.198962],[102.591918,32.199037],[102.592021,32.199102],[102.592118,32.199223],[102.592153,32.199355],[102.59231,32.199615],[102.592392,32.199708],[102.592428,32.199758],[102.592435,32.199851],[102.592426,32.199914],[102.592401,32.200081],[102.592367,32.200311],[102.592303,32.200736],[102.592306,32.200756],[102.592346,32.201],[102.592396,32.201239],[102.592496,32.201568],[102.592528,32.201732],[102.592564,32.201914],[102.592563,32.201921],[102.592539,32.202114],[102.592553,32.202217],[102.592567,32.202237],[102.592614,32.202303],[102.592714,32.202417],[102.593089,32.20264],[102.593224,32.202721],[102.593399,32.202863],[102.593552,32.20301],[102.593606,32.203085],[102.59366,32.203142],[102.593709,32.20317],[102.594045,32.203263],[102.594216,32.203313],[102.594616,32.203406],[102.594919,32.203474],[102.594939,32.203486],[102.595134,32.203609],[102.595234,32.203663],[102.595344,32.203677],[102.595548,32.203688],[102.595851,32.203706],[102.59599,32.203742],[102.596072,32.203763],[102.596394,32.203966],[102.596588,32.204091],[102.596783,32.204216],[102.596921,32.20433],[102.59704,32.204427],[102.597122,32.204466],[102.597207,32.204509],[102.597236,32.204523],[102.597293,32.204584],[102.59735,32.204698],[102.597375,32.204976],[102.597407,32.205133],[102.597475,32.205298],[102.597543,32.205369],[102.597568,32.205412],[102.597589,32.205444],[102.597614,32.20558],[102.597657,32.205719],[102.597728,32.205887],[102.597796,32.205994],[102.597964,32.206158],[102.598037,32.206254],[102.598114,32.206354],[102.598207,32.20644],[102.598232,32.206511],[102.598239,32.206625],[102.598276,32.206735],[102.598289,32.206772],[102.598298,32.206837],[102.598317,32.206986],[102.598321,32.207125],[102.598315,32.207172],[102.598303,32.207275],[102.598311,32.207525],[102.598317,32.207753],[102.598285,32.207857],[102.59831,32.208021],[102.598349,32.20821],[102.598399,32.208346],[102.59846,32.208517],[102.598503,32.208599],[102.598522,32.20865],[102.598589,32.208831],[102.598628,32.209234],[102.598637,32.209285],[102.59868,32.209508],[102.598702,32.209621],[102.598713,32.209661],[102.598734,32.209707],[102.598742,32.209723],[102.598921,32.210127],[102.599106,32.210534],[102.599216,32.210736],[102.599278,32.21085],[102.599335,32.210955],[102.599395,32.211105],[102.59942,32.211151],[102.599424,32.211215],[102.599388,32.211351],[102.599385,32.21136],[102.599331,32.211544],[102.599336,32.211586],[102.599342,32.211626],[102.599388,32.211708],[102.599536,32.212001],[102.599537,32.212002],[102.599538,32.212004],[102.599638,32.212343],[102.599756,32.212689],[102.599796,32.212844],[102.599856,32.213071],[102.599876,32.213141],[102.599959,32.213425],[102.599975,32.21346],[102.600059,32.21365],[102.600152,32.213832],[102.600205,32.213917],[102.600253,32.213971],[102.60043,32.214171],[102.600605,32.214478],[102.600662,32.214592],[102.600677,32.214685],[102.600677,32.214777],[102.600648,32.214902],[102.600641,32.214916],[102.600559,32.215077],[102.600387,32.215325],[102.600216,32.215573],[102.600045,32.215887],[102.599941,32.215991],[102.599784,32.216109],[102.599727,32.216184],[102.599656,32.216355],[102.599635,32.216448],[102.599552,32.216819],[102.599521,32.217025],[102.59952,32.217027],[102.59952,32.21703],[102.599524,32.217119],[102.599531,32.217204],[102.599531,32.217297],[102.599488,32.217408],[102.599385,32.217668],[102.599306,32.217975],[102.599256,32.218279],[102.59925,32.218305],[102.599237,32.218369],[102.599213,32.218479],[102.599192,32.218739],[102.59921,32.219121],[102.599215,32.219268],[102.599231,32.219692],[102.599256,32.21996],[102.599213,32.220149],[102.599156,32.220327],[102.599106,32.220411],[102.599031,32.220535],[102.598931,32.220659],[102.598651,32.22088],[102.598614,32.220909],[102.598353,32.221173],[102.598264,32.221288],[102.598175,32.221516],[102.598085,32.221627],[102.597939,32.22168],[102.597702,32.221821],[102.597693,32.221827],[102.597536,32.221959],[102.597391,32.222132],[102.597247,32.222305],[102.596965,32.22258],[102.5969,32.222751],[102.59685,32.222872],[102.596846,32.222894],[102.596825,32.223001],[102.596847,32.223111],[102.596897,32.223286],[102.596929,32.223399],[102.596954,32.223483],[102.597011,32.223636],[102.597043,32.223715],[102.597061,32.223779],[102.597063,32.223839],[102.597065,32.223868],[102.59709,32.223997],[102.597175,32.224204],[102.597188,32.224229],[102.597236,32.224321],[102.597293,32.224425],[102.597325,32.224528],[102.597343,32.224664],[102.597311,32.224917],[102.597223,32.225246],[102.597136,32.225574],[102.597047,32.225806],[102.597018,32.225992],[102.597009,32.226021],[102.596982,32.226106],[102.596925,32.226181],[102.59684,32.226267],[102.596679,32.226488],[102.596647,32.226627],[102.596568,32.226813],[102.596508,32.226948],[102.59649,32.227045],[102.596489,32.227115],[102.596483,32.227409],[102.596501,32.227655],[102.596497,32.227741],[102.596436,32.227873],[102.596419,32.227966],[102.596412,32.228018],[102.59641,32.228029],[102.596401,32.228105],[102.596372,32.228297],[102.596369,32.228394],[102.596415,32.228494],[102.596511,32.228672],[102.596536,32.228733],[102.596536,32.228804],[102.596511,32.228951],[102.596583,32.229286],[102.596654,32.229704],[102.596676,32.229833],[102.596693,32.229939],[102.596736,32.230178],[102.596779,32.230503],[102.596829,32.230689],[102.596918,32.230878],[102.597072,32.231046],[102.597225,32.231214],[102.597446,32.231343],[102.597571,32.231417],[102.597696,32.231528],[102.597708,32.231545],[102.597715,32.231657],[102.597732,32.231928],[102.597749,32.232198],[102.597774,32.232493],[102.597791,32.232557],[102.597797,32.232577],[102.597833,32.232713],[102.597839,32.232728],[102.597908,32.232907],[102.598015,32.233117],[102.598123,32.233327],[102.598231,32.233538],[102.598339,32.233748],[102.598446,32.233959],[102.598554,32.234169],[102.598662,32.234379],[102.598769,32.23459],[102.5989,32.234804],[102.59903,32.235018],[102.59917,32.235215],[102.59931,32.235413],[102.59945,32.23561],[102.59959,32.235808],[102.599797,32.236119],[102.600004,32.236431],[102.600211,32.236743],[102.600429,32.237019],[102.600681,32.237244],[102.600973,32.237447],[102.601266,32.23765],[102.601455,32.237781],[102.601645,32.237913],[102.601835,32.238044],[102.602025,32.238175],[102.602113,32.238236],[102.602151,32.238313],[102.60224,32.238438],[102.602311,32.23853],[102.602436,32.23868],[102.60259,32.238788],[102.60265,32.23883],[102.602825,32.238894],[102.602932,32.238923],[102.603089,32.238977],[102.603204,32.239062],[102.603412,32.239237],[102.603621,32.239412],[102.60385,32.239558],[102.604071,32.239715],[102.604214,32.239802],[102.604417,32.239926],[102.60467,32.240103],[102.604924,32.240279],[102.60519,32.240401],[102.605456,32.240522],[102.605652,32.240675],[102.605852,32.240918],[102.606102,32.241211],[102.606152,32.241332],[102.606187,32.241521],[102.606248,32.241739],[102.606316,32.24191],[102.606384,32.242032],[102.606592,32.242219],[102.606683,32.242301],[102.606737,32.242349],[102.606808,32.242453],[102.606894,32.242599],[102.606951,32.242688],[102.60708,32.242753],[102.607331,32.242837],[102.607429,32.242871],[102.607547,32.24291],[102.607604,32.242985],[102.607629,32.243081],[102.60766,32.243344],[102.607694,32.243631],[102.607747,32.243852],[102.607868,32.244186],[102.607947,32.244401],[102.60799,32.244519],[102.608065,32.244741],[102.608143,32.244962],[102.608226,32.2451],[102.608229,32.245105],[102.608318,32.245201],[102.608468,32.245255],[102.608732,32.245317],[102.608757,32.245323],[102.608956,32.245374],[102.608993,32.245383],[102.609111,32.24543],[102.609285,32.245701],[102.609428,32.245797],[102.609546,32.245865],[102.609592,32.245911],[102.609767,32.246276],[102.609894,32.246429],[102.609935,32.246479],[102.610142,32.24669],[102.61042,32.246889],[102.610699,32.247089],[102.611025,32.247286],[102.611352,32.247482],[102.611548,32.247609],[102.611745,32.247735],[102.612052,32.247978],[102.612114,32.248037],[102.612251,32.248167],[102.612387,32.248392],[102.612479,32.248493],[102.612501,32.248517],[102.612633,32.24866],[102.612783,32.248845],[102.612947,32.24912],[102.613037,32.249306],[102.613076,32.249388],[102.613229,32.249573],[102.613404,32.24973],[102.613479,32.249863],[102.613508,32.249927],[102.613536,32.249991],[102.613583,32.250067],[102.613704,32.250266],[102.613882,32.250465],[102.61394,32.25053],[102.613993,32.250637],[102.614003,32.25071],[102.614011,32.250773],[102.614015,32.250908],[102.613833,32.251251],[102.613779,32.251408],[102.613786,32.251536],[102.613811,32.251676],[102.613831,32.251713],[102.613972,32.251968],[102.614222,32.252257],[102.614525,32.252493],[102.614914,32.252696],[102.614996,32.252793],[102.615155,32.253076],[102.615171,32.253105],[102.615346,32.253417],[102.615485,32.253624],[102.615623,32.253752],[102.615678,32.253803],[102.61588,32.253975],[102.615896,32.253989],[102.615931,32.254039],[102.615935,32.254128],[102.615933,32.254143],[102.615892,32.254524],[102.615835,32.254727],[102.615778,32.255006],[102.615728,32.255138],[102.615631,32.255266],[102.615446,32.255388],[102.615178,32.255548],[102.615085,32.255602],[102.614993,32.255741],[102.614893,32.256005],[102.614814,32.256216],[102.614783,32.25642],[102.614775,32.256469],[102.614728,32.256773],[102.614757,32.256951],[102.614757,32.257058],[102.614748,32.257113],[102.614739,32.257172],[102.614664,32.257254],[102.614543,32.257351],[102.614304,32.257583],[102.614132,32.257811],[102.613968,32.258065],[102.613829,32.258273],[102.613696,32.258474],[102.61369,32.258482],[102.613618,32.258596],[102.613618,32.258661],[102.613665,32.258739],[102.613751,32.258853],[102.613979,32.25903],[102.614207,32.259207],[102.614439,32.259317],[102.614518,32.259367],[102.614582,32.259471],[102.614662,32.259587],[102.614907,32.259946],[102.615078,32.260213],[102.615114,32.260274],[102.615167,32.260324],[102.61526,32.26036],[102.615485,32.260381],[102.615592,32.260356],[102.615867,32.260277],[102.61617,32.260249],[102.616388,32.260252],[102.616656,32.260199],[102.616882,32.260124],[102.616916,32.260113],[102.617106,32.260099],[102.617512,32.260085],[102.617852,32.260074],[102.618269,32.26002],[102.61859,32.259988],[102.618883,32.260017],[102.619161,32.260104],[102.61944,32.260192],[102.61975,32.260256],[102.619985,32.260286],[102.620218,32.260317],[102.620486,32.26037],[102.620597,32.260354],[102.620632,32.260349],[102.620718,32.260338],[102.620785,32.260324],[102.620832,32.260317],[102.620885,32.260331],[102.620957,32.260374],[102.621174,32.260663],[102.621213,32.260742],[102.621335,32.260991],[102.621381,32.261063],[102.621489,32.261155],[102.621585,32.261198],[102.621853,32.261316],[102.62212,32.261434],[102.62237,32.26168],[102.622574,32.261832],[102.622777,32.261984],[102.622977,32.262135],[102.623177,32.262287],[102.623405,32.262474],[102.623634,32.262662],[102.623876,32.262847],[102.624101,32.262972],[102.624381,32.263056],[102.624662,32.26314],[102.624894,32.263204],[102.625018,32.263258],[102.625031,32.263263],[102.625031,32.263263],[102.625031,32.263263],[102.625179,32.263329],[102.625315,32.26344],[102.62559,32.263629],[102.625692,32.263728],[102.625693,32.263729],[102.625693,32.263729],[102.625781,32.263817],[102.625891,32.263927],[102.626089,32.264125],[102.626102,32.264141],[102.626103,32.264141],[102.626103,32.264142],[102.626381,32.264485],[102.62666,32.264828],[102.626829,32.264994],[102.626997,32.265161],[102.627196,32.265356],[102.627538,32.265578],[102.627724,32.26567],[102.627877,32.265749],[102.627981,32.265838],[102.628084,32.265949],[102.628249,32.26606],[102.628513,32.266245],[102.628685,32.266318],[102.62878,32.266359],[102.628905,32.266388],[102.629116,32.266342],[102.629234,32.266249],[102.629413,32.26605],[102.629425,32.266037],[102.629593,32.265852],[102.629658,32.265795],[102.629808,32.265667],[102.629965,32.265574],[102.630342,32.265368],[102.63064,32.26523],[102.630804,32.265165],[102.630879,32.265135],[102.6311,32.265092],[102.631393,32.265071],[102.631472,32.265068],[102.631818,32.265053],[102.632057,32.26501],[102.632203,32.264935],[102.63235,32.264846],[102.632514,32.264828],[102.632639,32.26486],[102.63276,32.264842],[102.632917,32.264807],[102.63306,32.264725],[102.633081,32.26469],[102.633149,32.264578],[102.633238,32.264351],[102.633253,32.264314],[102.633406,32.2641],[102.63356,32.264011],[102.633838,32.263943],[102.633981,32.263868],[102.634129,32.263795],[102.634316,32.263704],[102.634402,32.263608],[102.634429,32.263552],[102.634555,32.26329],[102.634641,32.26304],[102.634727,32.26279],[102.634809,32.262647],[102.63503,32.262455],[102.635255,32.262344],[102.635573,32.262255],[102.635733,32.262205],[102.635947,32.262105],[102.636094,32.262033],[102.636277,32.261892],[102.636426,32.261777],[102.636654,32.261655],[102.636786,32.261491],[102.636878,32.261342],[102.636972,32.261191],[102.637129,32.261009],[102.637286,32.260827],[102.637511,32.260635],[102.637775,32.26041],[102.638039,32.260185],[102.638307,32.259929],[102.638576,32.259673],[102.638844,32.259416],[102.639031,32.259267],[102.639217,32.259118],[102.639446,32.258935],[102.639674,32.258753],[102.639918,32.258532],[102.640152,32.258321],[102.640162,32.258312],[102.640394,32.258048],[102.640626,32.257783],[102.640662,32.257714],[102.640751,32.257545],[102.64078,32.257236],[102.640801,32.256822],[102.640822,32.256409],[102.640825,32.256352],[102.640828,32.25629],[102.640871,32.256208],[102.640882,32.256189],[102.641012,32.256094],[102.641334,32.256052],[102.64153,32.256034],[102.641595,32.255986],[102.641697,32.255927],[102.641804,32.255891],[102.64194,32.255903],[102.642214,32.255986],[102.642416,32.25601],[102.642648,32.255927],[102.642904,32.25579],[102.643172,32.255689],[102.643199,32.255687],[102.643326,32.255677],[102.643666,32.255778],[102.643892,32.255832],[102.644118,32.255885],[102.644439,32.256016],[102.644742,32.256129],[102.644903,32.256135],[102.645144,32.256055],[102.645385,32.255975],[102.645792,32.255841],[102.646199,32.255707],[102.646218,32.255701],[102.646517,32.255598],[102.646816,32.255495],[102.647116,32.255392],[102.647347,32.255408],[102.647578,32.255425],[102.647693,32.255433],[102.64799,32.255421],[102.648216,32.255427],[102.648323,32.255487],[102.648505,32.255704],[102.648686,32.255921],[102.648799,32.255992],[102.649085,32.256052],[102.649341,32.256171],[102.649561,32.256456],[102.649748,32.256667],[102.649935,32.256879],[102.649983,32.256932],[102.650141,32.257218],[102.650298,32.257503],[102.650403,32.257696],[102.650517,32.257906],[102.650631,32.258116],[102.650899,32.258437],[102.651081,32.258625],[102.651262,32.258812],[102.6515,32.25908],[102.65169,32.259169],[102.652062,32.259291],[102.652434,32.259413],[102.652815,32.259526],[102.653124,32.259615],[102.653439,32.259811],[102.65363,32.260002],[102.653802,32.260103],[102.653951,32.260139],[102.654343,32.26021],[102.654535,32.260299],[102.654688,32.260371],[102.654772,32.260478],[102.654813,32.260603],[102.654891,32.260722],[102.655045,32.260787],[102.65517,32.260818],[102.655212,32.260829],[102.655384,32.260882],[102.655474,32.260936],[102.655575,32.261037],[102.655706,32.261453],[102.655746,32.261509],[102.655914,32.261745],[102.656033,32.261944],[102.656152,32.262143],[102.656301,32.262447],[102.656408,32.262845],[102.656422,32.263098],[102.656437,32.263351],[102.656527,32.263675],[102.656616,32.263999],[102.656653,32.264159],[102.656729,32.264481],[102.656841,32.264647],[102.656889,32.264719],[102.657032,32.26485],[102.657252,32.264951],[102.657484,32.264981],[102.657895,32.265052],[102.658249,32.265135],[102.658589,32.265292],[102.65863,32.265312],[102.658773,32.26544],[102.658923,32.265638],[102.659073,32.265835],[102.659311,32.266078],[102.659432,32.266225],[102.659534,32.266349],[102.65977,32.266523],[102.660005,32.266696],[102.660239,32.266885],[102.660472,32.267074],[102.660705,32.267263],[102.660792,32.26732],[102.661129,32.267541],[102.661466,32.267762],[102.661814,32.267977],[102.662066,32.268186],[102.662171,32.268314],[102.66228,32.268372],[102.662661,32.268438],[102.662883,32.268478],[102.663061,32.26851],[102.663375,32.268614],[102.663736,32.268824],[102.664005,32.269033],[102.664274,32.269242],[102.664512,32.269442],[102.66475,32.269642],[102.665064,32.26988],[102.665273,32.270035],[102.665483,32.270189],[102.665601,32.27029],[102.66564,32.270323],[102.665749,32.270475],[102.665775,32.270542],[102.665806,32.270623],[102.665821,32.270822],[102.665845,32.27102],[102.665887,32.271365],[102.665897,32.271636],[102.665906,32.271907],[102.665913,32.272032],[102.665925,32.272274],[102.665892,32.272574],[102.665825,32.272912],[102.665816,32.273107],[102.665868,32.273302],[102.665987,32.273625],[102.666059,32.273821],[102.666106,32.273949],[102.666225,32.274273],[102.666332,32.274577],[102.666397,32.274762],[102.666439,32.274882],[102.666545,32.275186],[102.666554,32.27521],[102.666665,32.27555],[102.666708,32.275681],[102.666777,32.275891],[102.666872,32.276164],[102.666968,32.276438],[102.667006,32.276633],[102.667006,32.27679],[102.66693,32.276933],[102.666825,32.277093],[102.666587,32.277456],[102.666474,32.277707],[102.66636,32.277957],[102.666287,32.278118],[102.666176,32.278364],[102.665992,32.278771],[102.665808,32.279178],[102.665731,32.279349],[102.665624,32.279585],[102.66544,32.279991],[102.665295,32.280221],[102.665149,32.280451],[102.665113,32.280507],[102.664942,32.280777],[102.664735,32.281104],[102.66452,32.281444],[102.664305,32.281783],[102.664269,32.281876],[102.664241,32.282062],[102.664262,32.282159],[102.664284,32.282254],[102.664348,32.282376],[102.664512,32.282718],[102.664626,32.283104],[102.66458,32.283421],[102.664533,32.283739],[102.664434,32.283967],[102.664297,32.284174],[102.664241,32.28426],[102.664034,32.28451],[102.66377,32.2847],[102.663506,32.284891],[102.663241,32.285081],[102.663013,32.285267],[102.662906,32.285431],[102.662878,32.285595],[102.662856,32.285724],[102.662844,32.286144],[102.662835,32.286502],[102.662852,32.286917],[102.662863,32.287173],[102.662861,32.287192],[102.662842,32.287422],[102.66282,32.287672],[102.662831,32.287862],[102.662851,32.288206],[102.662856,32.288286],[102.662905,32.288665],[102.662913,32.288729],[102.662913,32.289057],[102.662956,32.289271],[102.663042,32.289528],[102.663127,32.289785],[102.66317,32.289905],[102.663182,32.289938],[102.66327,32.290179],[102.663369,32.290454],[102.663406,32.290556],[102.663543,32.290761],[102.66368,32.290965],[102.663784,32.29112],[102.663984,32.291336],[102.664146,32.291509],[102.664355,32.291734],[102.664442,32.291821],[102.664613,32.291992],[102.664783,32.292162],[102.665051,32.292369],[102.665222,32.292502],[102.665319,32.292576],[102.665536,32.292751],[102.665754,32.292926],[102.665829,32.293013],[102.665961,32.293166],[102.666168,32.293407],[102.666375,32.293647],[102.666532,32.294061],[102.666554,32.294275],[102.666518,32.294454],[102.666393,32.294643],[102.666268,32.294832],[102.666082,32.294998],[102.66579,32.29526],[102.66575,32.295291],[102.665534,32.295458],[102.665319,32.295624],[102.665047,32.295967],[102.664776,32.29631],[102.664569,32.296624],[102.664362,32.296938],[102.664155,32.297252],[102.664104,32.297352],[102.663959,32.297634],[102.663762,32.298016],[102.663725,32.298085],[102.663537,32.298433],[102.663349,32.298781],[102.663162,32.299128],[102.663042,32.299351],[102.662895,32.299666],[102.662748,32.299982],[102.662601,32.300298],[102.662463,32.300593],[102.662345,32.30087],[102.662235,32.301128],[102.662185,32.301399],[102.662178,32.301671],[102.662242,32.301885],[102.662336,32.302175],[102.662429,32.302466],[102.662513,32.302727],[102.662695,32.303014],[102.662877,32.3033],[102.663034,32.303548],[102.663202,32.303876],[102.66337,32.304205],[102.663569,32.30446],[102.663698,32.304626],[102.663827,32.30479],[102.66392,32.304926],[102.663998,32.305097],[102.664027,32.305261],[102.664041,32.305493],[102.664041,32.305495],[102.664041,32.305497],[102.66397,32.305832],[102.663845,32.306064],[102.66372,32.306296],[102.663648,32.306342],[102.663563,32.306396],[102.663327,32.306482],[102.663141,32.30661],[102.663056,32.306767],[102.663027,32.306917],[102.663006,32.307103],[102.663006,32.307331],[102.663134,32.307695],[102.663155,32.307839],[102.663191,32.308083],[102.663227,32.308328],[102.663241,32.308424],[102.663241,32.308659],[102.663206,32.308845],[102.663063,32.309052],[102.662972,32.309124],[102.66292,32.309166],[102.662904,32.309193],[102.662785,32.309402],[102.662742,32.309601],[102.662777,32.309758],[102.662842,32.309944],[102.662876,32.310054],[102.662992,32.310422],[102.66306,32.310708],[102.663128,32.310994],[102.663141,32.311051],[102.663141,32.311279],[102.663127,32.311515],[102.663027,32.311829],[102.662985,32.3119],[102.662835,32.312157],[102.662673,32.312419],[102.662512,32.312682],[102.66235,32.312944],[102.662191,32.313221],[102.662031,32.313498],[102.662004,32.313561],[102.661798,32.313898],[102.661652,32.314154],[102.661434,32.314349],[102.661215,32.314544],[102.661068,32.314599],[102.661035,32.314611],[102.660655,32.314696],[102.660275,32.314782],[102.66004,32.314841],[102.659805,32.314901],[102.659587,32.314974],[102.65948,32.314994],[102.659462,32.314995],[102.659338,32.315004],[102.659288,32.315008],[102.659086,32.314996],[102.658827,32.314907],[102.658568,32.314817],[102.658169,32.314615],[102.657813,32.314573],[102.65745,32.314556],[102.657271,32.314508],[102.65689,32.314319],[102.656508,32.31413],[102.656126,32.313941],[102.655998,32.313877],[102.655748,32.313717],[102.655499,32.313556],[102.655159,32.313396],[102.65488,32.313339],[102.6546,32.313283],[102.6543,32.313259],[102.653999,32.313235],[102.653595,32.313241],[102.653256,32.31333],[102.652889,32.313487],[102.652685,32.313574],[102.652453,32.313678],[102.652221,32.313782],[102.651906,32.313919],[102.65168,32.313931],[102.651346,32.313877],[102.651258,32.313869],[102.650995,32.313845],[102.650644,32.313812],[102.650606,32.31381],[102.650311,32.313794],[102.650038,32.313806],[102.64974,32.313919],[102.649608,32.313942],[102.649538,32.313955],[102.649258,32.313955],[102.648967,32.31383],[102.648675,32.313705],[102.648598,32.313641],[102.648574,32.313622],[102.648485,32.313622],[102.648384,32.313782],[102.648342,32.31405],[102.648348,32.314421],[102.648354,32.314792],[102.64836,32.315162],[102.648319,32.315484],[102.648176,32.315543],[102.648039,32.315638],[102.647914,32.315757],[102.647812,32.315903],[102.647789,32.315936],[102.647736,32.316156],[102.64775,32.316231],[102.647765,32.316305],[102.64784,32.316563],[102.647914,32.316822],[102.647872,32.316983],[102.6477,32.317096],[102.647459,32.317276],[102.647218,32.317456],[102.647135,32.317518],[102.646894,32.317792],[102.646653,32.318065],[102.646631,32.318113],[102.646532,32.318327],[102.646433,32.318541],[102.646427,32.318845],[102.646314,32.319071],[102.646202,32.319266],[102.646195,32.319279],[102.646171,32.319529],[102.646195,32.319719],[102.646367,32.32004],[102.646447,32.320287],[102.646459,32.320323],[102.646472,32.320365],[102.646578,32.320691],[102.646683,32.321016],[102.646745,32.321287],[102.646808,32.321557],[102.646814,32.321672],[102.646829,32.321936],[102.646847,32.322262],[102.646866,32.322587],[102.646823,32.322875],[102.646764,32.323263],[102.646706,32.323651],[102.64665,32.323897],[102.64663,32.323988],[102.646554,32.324325],[102.646478,32.324662],[102.646443,32.324901],[102.646426,32.325019],[102.646413,32.325112],[102.646375,32.325376],[102.646355,32.325753],[102.646335,32.326131],[102.646315,32.326508],[102.646295,32.326886],[102.646275,32.327263],[102.646262,32.327578],[102.646248,32.327892],[102.646234,32.328207],[102.646157,32.328502],[102.646079,32.328797],[102.64603,32.328984],[102.645972,32.329294],[102.645913,32.329604],[102.645879,32.329784],[102.645708,32.330108],[102.64565,32.330212],[102.645551,32.330389],[102.645394,32.330669],[102.645299,32.330812],[102.645289,32.33106],[102.645318,32.331193],[102.645543,32.33145],[102.645768,32.331707],[102.645993,32.331964],[102.646225,32.33218],[102.646457,32.332395],[102.646688,32.332611],[102.646688,32.332611],[102.646945,32.332797],[102.647202,32.332982],[102.647547,32.333161],[102.647683,32.333182],[102.64779,32.333218],[102.647854,32.333261],[102.64786,32.33331],[102.647861,32.333325],[102.647861,32.333368],[102.647776,32.333475],[102.647561,32.333632],[102.64724,32.333825],[102.646919,32.334017],[102.646576,32.33421],[102.646234,32.334403],[102.645891,32.334595],[102.645852,32.334617],[102.64559,32.334758],[102.6452,32.334968],[102.64481,32.335178],[102.644421,32.335388],[102.644039,32.335588],[102.643657,32.335787],[102.643275,32.335987],[102.642896,32.33619],[102.64267,32.336312],[102.642278,32.336485],[102.641886,32.336659],[102.641883,32.33666],[102.641882,32.336661],[102.641493,32.336833],[102.641207,32.33706],[102.640921,32.337287],[102.640761,32.337511],[102.640635,32.337884],[102.64051,32.338257],[102.640385,32.33863],[102.640297,32.339061],[102.640235,32.339366],[102.640172,32.339671],[102.640132,32.339912],[102.640059,32.34035],[102.639986,32.340788],[102.639913,32.341226],[102.639826,32.341643],[102.639739,32.34206],[102.639653,32.342477],[102.639622,32.342624],[102.639566,32.342893],[102.639482,32.343307],[102.639399,32.34372],[102.639315,32.344134],[102.639242,32.34443],[102.63917,32.344727],[102.639097,32.345023],[102.638994,32.345444],[102.638946,32.345838],[102.638898,32.346232],[102.638865,32.346502],[102.638834,32.346635],[102.638785,32.346847],[102.638704,32.347192],[102.638681,32.347294],[102.638624,32.347537],[102.638724,32.34793],[102.638731,32.348166],[102.638692,32.348406],[102.638688,32.34843],[102.638688,32.348708],[102.638738,32.348929],[102.638774,32.349201],[102.638874,32.349379],[102.639017,32.349579],[102.639131,32.349836],[102.639202,32.350221],[102.639268,32.350444],[102.639333,32.350666],[102.639409,32.350928],[102.639513,32.351135],[102.639616,32.351342],[102.639806,32.351645],[102.639986,32.351935],[102.639995,32.351949],[102.640252,32.352156],[102.640502,32.352299],[102.64073,32.352406],[102.64081,32.352447],[102.640941,32.352514],[102.640966,32.352527],[102.641215,32.352656],[102.641336,32.352753],[102.641433,32.35283],[102.641651,32.353005],[102.641795,32.353138],[102.642008,32.353334],[102.642158,32.353434],[102.642379,32.353555],[102.642507,32.353655],[102.642636,32.353769],[102.642736,32.353919],[102.642836,32.35399],[102.643021,32.354033],[102.643193,32.354055],[102.643314,32.35409],[102.643478,32.354176],[102.643628,32.354347],[102.643778,32.354519],[102.644071,32.354683],[102.644306,32.354769],[102.644513,32.354769],[102.644813,32.354754],[102.645177,32.354733],[102.645419,32.354729],[102.645661,32.354726],[102.6457,32.354731],[102.645991,32.354818],[102.646355,32.354961],[102.646583,32.354983],[102.646783,32.35499],[102.647083,32.354918],[102.647161,32.354899],[102.64754,32.354804],[102.647733,32.354761],[102.647918,32.354754],[102.64809,32.354797],[102.648261,32.354876],[102.648534,32.355041],[102.648807,32.355207],[102.649132,32.355404],[102.649465,32.355605],[102.649702,32.355747],[102.649939,32.355889],[102.64994,32.35589],[102.650113,32.356017],[102.650178,32.356065],[102.650417,32.356239],[102.650574,32.356582],[102.650699,32.35678],[102.650795,32.356931],[102.651081,32.357074],[102.651345,32.357146],[102.651752,32.357153],[102.652166,32.357089],[102.652473,32.35706],[102.652698,32.35706],[102.652865,32.35706],[102.653229,32.357131],[102.653593,32.357203],[102.653922,32.357298],[102.65425,32.357393],[102.654578,32.357488],[102.654627,32.357512],[102.654759,32.357547],[102.655141,32.357747],[102.655354,32.357876],[102.655566,32.358005],[102.655738,32.358153],[102.655911,32.358301],[102.656083,32.358448],[102.656255,32.358596],[102.656326,32.358677],[102.656476,32.358851],[102.656581,32.35916],[102.656618,32.359528],[102.656604,32.359785],[102.656592,32.360001],[102.65659,32.360041],[102.656579,32.360229],[102.656684,32.360593],[102.656684,32.3608],[102.656601,32.360956],[102.656533,32.361082],[102.656545,32.361484],[102.656558,32.361899],[102.656563,32.362078],[102.65657,32.362315],[102.656617,32.362653],[102.656664,32.362991],[102.656771,32.363301],[102.656856,32.363524],[102.656941,32.363748],[102.657072,32.363952],[102.657203,32.364157],[102.657407,32.364469],[102.657611,32.364781],[102.657815,32.365093],[102.657935,32.365288],[102.658056,32.365483],[102.658176,32.365678],[102.658296,32.365873],[102.658416,32.366068],[102.658536,32.366263],[102.658644,32.366486],[102.658753,32.366709],[102.658861,32.366932],[102.65897,32.367156],[102.659078,32.367379],[102.659187,32.367602],[102.659221,32.367671],[102.659296,32.367825],[102.659404,32.368048],[102.659508,32.368268],[102.659612,32.368489],[102.659716,32.368709],[102.659821,32.368929],[102.659925,32.36915],[102.660029,32.36937],[102.660144,32.369613],[102.660259,32.369856],[102.660374,32.370099],[102.660489,32.370342],[102.660604,32.370585],[102.660718,32.370828],[102.660879,32.371231],[102.661039,32.371634],[102.661116,32.371827],[102.661199,32.372036],[102.661359,32.372439],[102.661433,32.372674],[102.661507,32.372909],[102.661573,32.37312],[102.661581,32.373143],[102.661654,32.373378],[102.661728,32.373613],[102.661802,32.373848],[102.661881,32.374014],[102.661915,32.374086],[102.662029,32.374324],[102.662142,32.374562],[102.662157,32.374593],[102.662255,32.3748],[102.662304,32.374893],[102.662421,32.375113],[102.662531,32.37532],[102.66264,32.375528],[102.66266,32.375565],[102.66275,32.375735],[102.66286,32.375942],[102.66297,32.37615],[102.66308,32.376357],[102.663206,32.376564],[102.663332,32.37677],[102.663459,32.376977],[102.663508,32.377056],[102.663585,32.377183],[102.663618,32.377236],[102.663712,32.37739],[102.663838,32.377596],[102.663965,32.377803],[102.664091,32.378009],[102.664218,32.378216],[102.664344,32.378423],[102.664496,32.378639],[102.664627,32.378825],[102.664648,32.378855],[102.6648,32.379072],[102.664953,32.379288],[102.665105,32.379504],[102.665257,32.379721],[102.665409,32.379937],[102.665561,32.380153],[102.665713,32.38037],[102.665865,32.380586],[102.666085,32.38086],[102.666306,32.381135],[102.666471,32.38132],[102.666637,32.381506],[102.666916,32.381714],[102.667195,32.381922],[102.667565,32.382101],[102.667936,32.382281],[102.668353,32.382409],[102.66877,32.382537],[102.669188,32.382665],[102.669605,32.382793],[102.669953,32.382935],[102.670302,32.383077],[102.670549,32.383188],[102.670797,32.383298],[102.671108,32.383574],[102.671262,32.383779],[102.671416,32.383984],[102.67162,32.384315],[102.671823,32.384646],[102.672027,32.384978],[102.672229,32.385366],[102.672431,32.385754],[102.672633,32.386143],[102.672835,32.386531],[102.672907,32.386724],[102.672987,32.386938],[102.673067,32.387151],[102.673147,32.387365],[102.673227,32.387578],[102.673307,32.387791],[102.673388,32.388005],[102.673492,32.388206],[102.673597,32.388407],[102.673702,32.388608],[102.673807,32.388809],[102.673912,32.38901],[102.674017,32.389211],[102.674213,32.389523],[102.67441,32.389835],[102.674587,32.390012],[102.674765,32.390188],[102.675022,32.390338],[102.67528,32.390487],[102.675617,32.390647],[102.675954,32.390808],[102.676291,32.390968],[102.676559,32.391028],[102.676827,32.391088],[102.677095,32.391147],[102.677363,32.391207],[102.677713,32.391291],[102.678063,32.391374],[102.678198,32.391436],[102.67831,32.391514],[102.67833,32.39163],[102.678349,32.391765],[102.678321,32.391919],[102.678109,32.392262],[102.677956,32.392632],[102.677802,32.393001],[102.677648,32.393371],[102.677523,32.393605],[102.677397,32.393838],[102.677272,32.394072],[102.677147,32.394306],[102.677019,32.394515],[102.676891,32.394723],[102.676763,32.394932],[102.676635,32.395141],[102.676507,32.395349],[102.676379,32.395558],[102.676251,32.395766],[102.676123,32.395975],[102.675979,32.396187],[102.675836,32.396399],[102.675692,32.396611],[102.675549,32.396823],[102.675405,32.397035],[102.67529,32.397206],[102.675262,32.397247],[102.675118,32.397459],[102.674975,32.397671],[102.674831,32.397883],[102.674688,32.398095],[102.674544,32.398307],[102.674483,32.398399],[102.674401,32.39852],[102.674257,32.398732],[102.674114,32.398944],[102.67397,32.399177],[102.673826,32.39941],[102.673681,32.399642],[102.673537,32.399875],[102.673393,32.400108],[102.673249,32.400341],[102.673104,32.400574],[102.67296,32.400807],[102.672816,32.40104],[102.672672,32.401273],[102.672528,32.401506],[102.672383,32.401739],[102.672239,32.401972],[102.672095,32.402205],[102.671951,32.402438],[102.671806,32.402671],[102.671598,32.403048],[102.67139,32.403425],[102.671182,32.403802],[102.670974,32.404179],[102.670811,32.40454],[102.670649,32.404901],[102.670486,32.405262],[102.670479,32.405332],[102.670458,32.40555],[102.670539,32.40584],[102.67065,32.405997],[102.670851,32.406154],[102.67113,32.406352],[102.671409,32.406551],[102.671604,32.406694],[102.6718,32.406837],[102.671995,32.40698],[102.67219,32.407124],[102.672368,32.40729],[102.672546,32.407457],[102.672691,32.407678],[102.672837,32.407899],[102.672983,32.40812],[102.673129,32.408341],[102.673261,32.408541],[102.673365,32.408677],[102.673421,32.408783],[102.673631,32.40918],[102.673698,32.409306],[102.67382,32.409536],[102.674008,32.409891],[102.674215,32.410182],[102.674364,32.410392],[102.674513,32.410602],[102.674769,32.410807],[102.675025,32.411012],[102.675062,32.411025],[102.675479,32.41117],[102.675895,32.411314],[102.676222,32.411469],[102.676549,32.411623],[102.676876,32.411777],[102.677078,32.411893],[102.67728,32.412008],[102.677561,32.412203],[102.677807,32.41246],[102.677809,32.412461],[102.677812,32.412462],[102.677836,32.412491],[102.677928,32.412587],[102.678049,32.412737],[102.678114,32.412865],[102.678114,32.412866],[102.678114,32.412867],[102.678114,32.412868],[102.678128,32.413001],[102.678128,32.413144],[102.678099,32.413379],[102.678002,32.413628],[102.677968,32.413716],[102.677905,32.413876],[102.677892,32.413908],[102.677769,32.414159],[102.677728,32.414243],[102.677693,32.414457],[102.677711,32.414723],[102.67773,32.414988],[102.67775,32.415283],[102.677771,32.415578],[102.677764,32.415849],[102.677757,32.416121],[102.677785,32.416363],[102.677885,32.416649],[102.677985,32.416863],[102.678266,32.41705],[102.678328,32.417091],[102.678635,32.417245],[102.678942,32.417398],[102.679249,32.417552],[102.679556,32.417705],[102.679913,32.417873],[102.68027,32.418041],[102.680626,32.418209],[102.680983,32.418376],[102.68135,32.418567],[102.681716,32.418757],[102.682083,32.418947],[102.682259,32.419093],[102.682509,32.419298],[102.682758,32.419504],[102.682967,32.419772],[102.683175,32.42004],[102.683238,32.420119],[102.683455,32.42039],[102.683672,32.420661],[102.683774,32.420788],[102.683889,32.420932],[102.684031,32.421086],[102.684044,32.421089],[102.684281,32.421134],[102.684376,32.421134],[102.684797,32.421019],[102.685217,32.420904],[102.685638,32.420789],[102.686011,32.420668],[102.686385,32.420546],[102.686758,32.420425],[102.68685,32.420395],[102.687132,32.420304],[102.687505,32.420182],[102.687749,32.420135],[102.687993,32.420087],[102.68835,32.419992],[102.688493,32.419968],[102.688719,32.419968],[102.688814,32.419956],[102.688945,32.419992],[102.6891,32.420123],[102.689442,32.420346],[102.689784,32.420569],[102.690126,32.420792],[102.690468,32.421015],[102.690801,32.421217],[102.691134,32.42142],[102.691274,32.421497],[102.691484,32.421613],[102.691693,32.421729],[102.692098,32.421833],[102.692503,32.421937],[102.692621,32.421967],[102.692907,32.422106],[102.693192,32.422244],[102.693478,32.422383],[102.693728,32.422502],[102.693978,32.422621],[102.694186,32.422794],[102.694394,32.422966],[102.694602,32.423169],[102.69481,32.423371],[102.695032,32.423625],[102.695255,32.423878],[102.695477,32.424132],[102.695534,32.424226],[102.695687,32.424475],[102.695897,32.424818],[102.696107,32.425161],[102.696317,32.425504],[102.696528,32.425847],[102.696738,32.42619],[102.69691,32.426488],[102.697083,32.426785],[102.697255,32.427083],[102.697428,32.42738],[102.697614,32.427725],[102.69765,32.427791],[102.697801,32.42807],[102.697987,32.428415],[102.69803,32.428514],[102.698165,32.428826],[102.698344,32.429236],[102.698395,32.42936],[102.698451,32.429498],[102.698592,32.4296],[102.698665,32.429653],[102.698903,32.429772],[102.699045,32.429819],[102.699248,32.429888],[102.699333,32.429916],[102.699593,32.430004],[102.699938,32.43012],[102.700283,32.430236],[102.700622,32.430432],[102.700961,32.430628],[102.701239,32.430747],[102.701517,32.430866],[102.701794,32.430985],[102.702205,32.431122],[102.702615,32.431259],[102.70283,32.431348],[102.702972,32.431407],[102.703329,32.431556],[102.703597,32.431723],[102.703864,32.431889],[102.704114,32.432187],[102.704441,32.432395],[102.704768,32.432603],[102.705113,32.432799],[102.705458,32.432996],[102.70583,32.433128],[102.706078,32.433216],[102.706327,32.433305],[102.706583,32.433454],[102.706839,32.433602],[102.707005,32.43365],[102.707219,32.433626],[102.707517,32.433495],[102.707722,32.433447],[102.707921,32.4334],[102.708225,32.433376],[102.708528,32.433353],[102.708814,32.433394],[102.709099,32.433436],[102.709504,32.433567],[102.709849,32.433769],[102.709854,32.433775],[102.710027,32.433971],[102.710164,32.434257],[102.710301,32.434542],[102.710432,32.43478],[102.710562,32.435018],[102.710729,32.43522],[102.710979,32.43528],[102.711324,32.435399],[102.711669,32.435518],[102.711851,32.435626],[102.712131,32.43578],[102.712411,32.435934],[102.712545,32.43601],[102.712649,32.436172],[102.712802,32.436515],[102.712954,32.436858],[102.713055,32.437082],[102.713157,32.437307],[102.713268,32.437552],[102.713411,32.437943],[102.713468,32.438142],[102.713531,32.43825],[102.713601,32.438371],[102.713815,32.438656],[102.714029,32.438942],[102.714291,32.439204],[102.714553,32.439465],[102.71491,32.439689],[102.715031,32.439765],[102.715267,32.439913],[102.715476,32.440022],[102.715685,32.440132],[102.715847,32.440265],[102.715876,32.44037],[102.715919,32.440665],[102.715961,32.44096],[102.715985,32.441279],[102.716009,32.441597],[102.715985,32.441761],[102.715971,32.441854],[102.715941,32.442132],[102.715913,32.442383],[102.715885,32.442635],[102.715886,32.442638],[102.715923,32.442844],[102.715941,32.442876],[102.716038,32.443054],[102.716223,32.443249],[102.716409,32.443444],[102.716605,32.44371],[102.716802,32.443977],[102.716999,32.444243],[102.717132,32.444481],[102.717208,32.444843],[102.71724,32.445259],[102.717272,32.445674],[102.717303,32.44609],[102.717367,32.446509],[102.71743,32.446927],[102.717494,32.447346],[102.717583,32.44766],[102.717671,32.447974],[102.71776,32.448288],[102.717804,32.448405],[102.717855,32.448545],[102.717989,32.448717],[102.718112,32.448888],[102.718465,32.449107],[102.718574,32.449179],[102.718757,32.449301],[102.719048,32.449494],[102.71934,32.449688],[102.719349,32.449691],[102.719621,32.449784],[102.719892,32.449878],[102.720268,32.449987],[102.720644,32.450097],[102.721015,32.450282],[102.721127,32.450338],[102.721387,32.450468],[102.721526,32.450524],[102.721608,32.450567],[102.721796,32.450678],[102.721824,32.450706],[102.721862,32.450868],[102.721834,32.451011],[102.721672,32.451229],[102.721577,32.451448],[102.721558,32.451734],[102.721558,32.451953],[102.721434,32.452324],[102.721305,32.452689],[102.721175,32.453055],[102.72112,32.453209],[102.720992,32.453533],[102.720863,32.453856],[102.720787,32.454113],[102.720673,32.454313],[102.720494,32.454394],[102.720378,32.454447],[102.720159,32.454542],[102.719987,32.454713],[102.719792,32.454999],[102.71979,32.455001],[102.719642,32.455218],[102.719597,32.455284],[102.719437,32.455552],[102.719276,32.455819],[102.719116,32.456087],[102.719026,32.456236],[102.718879,32.456474],[102.718731,32.456712],[102.718598,32.45694],[102.718512,32.457131],[102.718512,32.457245],[102.718655,32.45733],[102.718971,32.457495],[102.718778,32.457557],[102.718069,32.457644],[102.717122,32.45786],[102.715839,32.458306],[102.7153,32.458493],[102.713919,32.458767],[102.712851,32.459081],[102.711503,32.459589],[102.709838,32.460224],[102.708442,32.461098],[102.70796,32.461391],[102.707743,32.461523],[102.707325,32.461777],[102.705837,32.462569],[102.705694,32.462646],[102.70442,32.463321],[102.703025,32.464161],[102.702303,32.464747],[102.701285,32.464629],[102.699758,32.464468],[102.698109,32.464471],[102.696979,32.464118],[102.696354,32.464006],[102.696304,32.464007],[102.694665,32.464042],[102.693445,32.464153],[102.691914,32.464125],[102.691043,32.464409],[102.689386,32.464744],[102.688008,32.464885],[102.686659,32.465427],[102.685268,32.4661],[102.683992,32.466842],[102.682959,32.467322],[102.681996,32.468137],[102.680831,32.469147],[102.680198,32.469335],[102.679673,32.468394],[102.679419,32.467557],[102.678424,32.466573],[102.677165,32.465119],[102.676399,32.464406],[102.675509,32.46389],[102.673834,32.46336],[102.672971,32.463344],[102.671747,32.463587],[102.671317,32.463546],[102.671691,32.462721],[102.671722,32.461523],[102.67209,32.459433],[102.672349,32.458506],[102.672094,32.457769],[102.671048,32.457217],[102.669418,32.456488],[102.667513,32.455754],[102.666433,32.455002],[102.665082,32.454111],[102.66374,32.452888],[102.662891,32.452306],[102.662136,32.452314],[102.661713,32.452318],[102.66137,32.452311],[102.660497,32.452295],[102.659429,32.452575],[102.658992,32.4528],[102.65831,32.453353],[102.657613,32.454505],[102.656853,32.455057],[102.655635,32.455067],[102.654573,32.455181],[102.652817,32.456279],[102.651823,32.45676],[102.648767,32.458034],[102.648555,32.458134],[102.646926,32.45709],[102.645651,32.456373],[102.644645,32.455777],[102.643154,32.455518],[102.642086,32.455336],[102.642062,32.454784],[102.641667,32.453802],[102.64168,32.453283],[102.641417,32.453083],[102.640118,32.452994],[102.639168,32.452684],[102.638217,32.452438],[102.637417,32.452261],[102.636745,32.451631],[102.635926,32.450707],[102.635334,32.449916],[102.634595,32.448896],[102.634037,32.448268],[102.633699,32.448002],[102.633019,32.447665],[102.632531,32.447266],[102.631846,32.447091],[102.630589,32.44684],[102.629403,32.446785],[102.628138,32.446858],[102.627704,32.447337],[102.627062,32.448116],[102.626764,32.448476],[102.626755,32.448488],[102.626744,32.448499],[102.626046,32.449222],[102.625449,32.450087],[102.625067,32.450048],[102.624124,32.44951],[102.623403,32.449237],[102.622301,32.448924],[102.62145,32.448637],[102.620972,32.448476],[102.619525,32.448157],[102.619196,32.448167],[102.618222,32.448197],[102.618083,32.448202],[102.61711,32.448241],[102.61585,32.44812],[102.61501,32.448087],[102.614386,32.448063],[102.614205,32.448056],[102.61394,32.447994],[102.61341,32.447871],[102.612682,32.447702],[102.61112,32.447413],[102.609444,32.447056],[102.607959,32.446736],[102.606124,32.446636],[102.604169,32.446696],[102.603164,32.447034],[102.601913,32.448017],[102.601593,32.44829],[102.601388,32.448466],[102.601208,32.44862],[102.600517,32.448672],[102.599369,32.448618],[102.599103,32.44862],[102.598918,32.448621],[102.598772,32.448623],[102.598182,32.448628],[102.596761,32.448763],[102.596137,32.449205],[102.595746,32.44949],[102.59475,32.449504],[102.59391,32.449423],[102.593035,32.449211],[102.592622,32.448911],[102.592072,32.447959],[102.591138,32.447097],[102.589935,32.446262],[102.588311,32.445386],[102.586495,32.444572],[102.584527,32.44369],[102.583009,32.443174],[102.581255,32.442913],[102.580868,32.44287],[102.579498,32.442717],[102.579065,32.44266],[102.577781,32.442489],[102.576027,32.442228],[102.574966,32.441786],[102.573031,32.441131],[102.571286,32.440513],[102.569919,32.440065],[102.567794,32.439374],[102.566501,32.439025],[102.565743,32.438718],[102.565107,32.438186],[102.564399,32.437458],[102.563736,32.436471],[102.562842,32.435544],[102.562561,32.434597],[102.562118,32.434004],[102.561318,32.433826],[102.560255,32.433513],[102.558222,32.432841],[102.556984,32.432157],[102.556042,32.431289],[102.553949,32.429358],[102.553757,32.429224],[102.55254,32.428367],[102.550491,32.426704],[102.548578,32.425304],[102.548572,32.4253],[102.548567,32.425296],[102.548552,32.425285],[102.548521,32.425262],[102.548496,32.425244],[102.548491,32.425241],[102.54848,32.425234],[102.548362,32.425162],[102.5482,32.425063],[102.546613,32.424091],[102.54649,32.42401],[102.546463,32.423992],[102.544321,32.422575],[102.543751,32.422217],[102.543321,32.421947],[102.540902,32.420733],[102.538959,32.419788],[102.538835,32.419728],[102.538407,32.419519],[102.536887,32.418777],[102.535523,32.418344],[102.534512,32.418121],[102.534201,32.418159],[102.533943,32.418191],[102.533156,32.418286],[102.532712,32.41834],[102.532553,32.418385],[102.531386,32.41872],[102.529342,32.419085],[102.528362,32.419155],[102.527846,32.419192],[102.527664,32.419205],[102.526508,32.419228],[102.52509,32.419256],[102.523884,32.419232],[102.523122,32.419217],[102.521922,32.419193],[102.520065,32.419258],[102.518846,32.419234],[102.518773,32.419233],[102.516419,32.419186],[102.513727,32.419184],[102.512634,32.419771],[102.511778,32.420464],[102.511402,32.421066],[102.511323,32.421215],[102.511263,32.421327],[102.511246,32.421359],[102.511236,32.421379],[102.511223,32.421402],[102.510749,32.422294],[102.510708,32.422371],[102.510669,32.423791],[102.511394,32.425733],[102.512401,32.428239],[102.513938,32.43111],[102.514308,32.432894],[102.514031,32.434258],[102.513027,32.435963],[102.511793,32.437308],[102.510628,32.438351],[102.509176,32.438931],[102.507601,32.43961],[102.506141,32.440494],[102.50465,32.442494],[102.502618,32.444584],[102.501934,32.445535],[102.501265,32.445927],[102.500299,32.446213],[102.499732,32.447445],[102.498921,32.448001],[102.496884,32.448531],[102.495789,32.44825],[102.494777,32.447191],[102.493962,32.445668],[102.493447,32.444359],[102.492802,32.443308],[102.492528,32.44216],[102.492023,32.440487],[102.491511,32.439075],[102.491415,32.438086],[102.491259,32.437096],[102.490313,32.435882],[102.488331,32.43444],[102.487322,32.433277],[102.48649,32.432378],[102.485528,32.431735],[102.484503,32.431143],[102.48343,32.430083],[102.482739,32.428511],[102.482403,32.427362],[102.481591,32.425735],[102.481169,32.423285],[102.480743,32.420991],[102.480725,32.419433],[102.480701,32.418082],[102.480625,32.416418],[102.480722,32.415121],[102.481419,32.412071],[102.481512,32.41093],[102.481502,32.409111],[102.481535,32.407917],[102.481934,32.406782],[102.481957,32.405952],[102.481929,32.404757],[102.482146,32.403566],[102.48292,32.402127],[102.483981,32.401421],[102.485717,32.400625],[102.487793,32.39864],[102.488665,32.398086],[102.48943,32.397011],[102.490508,32.395682],[102.490781,32.394648],[102.490756,32.393349],[102.490554,32.391787],[102.490778,32.390337],[102.491056,32.386914],[102.491462,32.385519],[102.491141,32.383851],[102.491049,32.382758],[102.490598,32.381346],[102.490509,32.38015],[102.490542,32.378956],[102.490394,32.377654],[102.488845,32.376117],[102.488027,32.374698],[102.487249,32.374059],[102.486154,32.37383],[102.486108,32.373257],[102.486269,32.371858],[102.486611,32.370566],[102.48628,32.369261],[102.485027,32.368093],[102.484561,32.367252],[102.483433,32.365983],[102.482675,32.364617],[102.482273,32.363674],[102.482135,32.362009],[102.482039,32.361072],[102.481338,32.359864],[102.480688,32.359019],[102.479785,32.358482],[102.478407,32.357402],[102.476598,32.356457],[102.475767,32.356051],[102.47458,32.354728],[102.473468,32.353472],[102.472326,32.353254],[102.471258,32.353168],[102.470661,32.353029],[102.470346,32.352955],[102.468904,32.352536],[102.467467,32.351923],[102.466106,32.351376],[102.464668,32.350827],[102.462705,32.349879],[102.460597,32.348667],[102.458786,32.347787],[102.458579,32.347678],[102.456977,32.346841],[102.455953,32.34682],[102.455753,32.346816],[102.454523,32.347051],[102.454496,32.347052],[102.454452,32.347055],[102.453604,32.347097],[102.451698,32.346864],[102.450859,32.346782],[102.450575,32.346601],[102.45045,32.346521],[102.450444,32.346518],[102.450239,32.346387],[102.449807,32.346111],[102.449363,32.346021],[102.449228,32.346117],[102.449219,32.346108],[102.449134,32.346058],[102.448742,32.345895],[102.447984,32.345262],[102.447546,32.344897],[102.44698,32.343262],[102.446265,32.341494],[102.445203,32.33947],[102.444765,32.338635],[102.444755,32.338616],[102.444737,32.338582],[102.444719,32.338546],[102.444639,32.338395],[102.444552,32.338229],[102.441805,32.337214],[102.441275,32.337018],[102.441245,32.337007],[102.441061,32.336939],[102.440769,32.336831],[102.43883,32.336226],[102.438076,32.335918],[102.437753,32.335786],[102.437611,32.335728],[102.437505,32.335685],[102.437468,32.33567],[102.437419,32.335626],[102.437413,32.33562],[102.437005,32.335257],[102.436948,32.335206],[102.436784,32.334713],[102.437072,32.333964],[102.437296,32.333477],[102.437515,32.332959],[102.437551,32.331684],[102.437254,32.330243],[102.437252,32.330237],[102.437211,32.330039],[102.437177,32.32987],[102.43713,32.329646],[102.437047,32.329495],[102.436936,32.329295],[102.43685,32.329139],[102.436744,32.328948],[102.436634,32.32875],[102.436548,32.328594],[102.436481,32.328474],[102.436415,32.328355],[102.436403,32.328213],[102.436392,32.328078],[102.436313,32.327135],[102.435728,32.326079],[102.435735,32.325853],[102.435736,32.325798],[102.435756,32.325081],[102.435761,32.324933],[102.435784,32.324108],[102.435787,32.324072],[102.435809,32.32385],[102.43588,32.323124],[102.435498,32.322131],[102.435123,32.320905],[102.434873,32.320088],[102.434672,32.319572],[102.434554,32.31927],[102.434412,32.318963],[102.434182,32.318469],[102.434105,32.318304],[102.433846,32.317747],[102.433206,32.316368],[102.433116,32.315485],[102.432948,32.314634],[102.432878,32.313389],[102.432877,32.313361],[102.432877,32.313359],[102.432875,32.313349],[102.432875,32.313348],[102.432874,32.313331],[102.432871,32.313262],[102.432873,32.31325],[102.432892,32.313138],[102.43301,32.312416],[102.433662,32.311092],[102.434185,32.310287],[102.434708,32.309417],[102.435152,32.308676],[102.435335,32.307636],[102.435919,32.305984],[102.436223,32.30475],[102.436339,32.30335],[102.436629,32.302605],[102.436964,32.301633],[102.436959,32.300459],[102.436929,32.298794],[102.437037,32.297687],[102.437007,32.297452],[102.436785,32.295692],[102.436772,32.295461],[102.436747,32.295033],[102.436708,32.294353],[102.436507,32.293305],[102.436316,32.291898],[102.436036,32.290947],[102.435917,32.289704],[102.436169,32.288678],[102.436182,32.288624],[102.436194,32.288578],[102.436202,32.288543],[102.436235,32.288407],[102.436307,32.288114],[102.436334,32.287824],[102.436342,32.287743],[102.436418,32.286909],[102.436614,32.285412],[102.43739,32.283764],[102.437437,32.283638],[102.437464,32.283566],[102.437639,32.283096],[102.437764,32.28276],[102.438077,32.281961],[102.438138,32.281807],[102.438715,32.280333],[102.4387,32.279674],[102.438698,32.279582],[102.438861,32.278874],[102.438884,32.278774],[102.438982,32.278347],[102.439004,32.278251],[102.439146,32.278018],[102.439512,32.277416],[102.439729,32.277058],[102.440042,32.276506],[102.440265,32.276111],[102.440295,32.276059],[102.441318,32.275166],[102.442267,32.274206],[102.442676,32.273379],[102.442715,32.273302],[102.442814,32.272488],[102.443153,32.271353],[102.443212,32.270637],[102.443232,32.269919],[102.443138,32.269167],[102.443246,32.268412],[102.443258,32.268332],[102.443329,32.267833],[102.44334,32.267658],[102.443397,32.266791],[102.443412,32.266237],[102.443079,32.265806],[102.442676,32.265112],[102.441852,32.264378],[102.441138,32.263809],[102.440476,32.262784],[102.439117,32.261941],[102.438684,32.260953],[102.438684,32.260652],[102.438684,32.260357],[102.438685,32.25955],[102.438666,32.259208],[102.438634,32.258636],[102.438868,32.258063],[102.438964,32.257827],[102.439515,32.257349],[102.439681,32.256895],[102.439581,32.256575],[102.439525,32.256395],[102.439364,32.255878],[102.438638,32.254395],[102.438405,32.253118],[102.438039,32.252164],[102.437815,32.251581],[102.437761,32.251441],[102.43736,32.250654],[102.437106,32.250155],[102.437021,32.249991],[102.43699,32.24993],[102.436342,32.248671],[102.436359,32.248052],[102.4364,32.247982],[102.436461,32.247878],[102.436559,32.247711],[102.436687,32.247494],[102.436843,32.247229],[102.437004,32.246956],[102.437136,32.246815],[102.43739,32.246546],[102.437637,32.246283],[102.437652,32.246254],[102.437776,32.246008],[102.437881,32.245799],[102.437759,32.245448],[102.437653,32.245144],[102.437561,32.244879],[102.437409,32.244509],[102.437305,32.244257],[102.43712,32.243808],[102.436897,32.243267],[102.436716,32.242829],[102.436598,32.242544],[102.436524,32.242362],[102.436425,32.242124],[102.436197,32.24157],[102.436012,32.241121],[102.435746,32.240476],[102.435513,32.239911],[102.43535,32.239616],[102.435111,32.239185],[102.434893,32.238843],[102.43467,32.238491],[102.434286,32.238198],[102.433961,32.237949],[102.433618,32.237687],[102.433231,32.237395],[102.432801,32.237072],[102.432415,32.236781],[102.431821,32.236423],[102.431154,32.23602],[102.430659,32.235721],[102.430175,32.235429],[102.429741,32.235167],[102.429395,32.234958],[102.428998,32.234783],[102.428598,32.234556],[102.428109,32.234279],[102.427614,32.234056],[102.427028,32.233792],[102.426517,32.233562],[102.426057,32.233454],[102.425297,32.233276],[102.424565,32.233198],[102.424149,32.233154],[102.42345,32.23314],[102.422776,32.233126],[102.422269,32.233116],[102.421705,32.233208],[102.421206,32.23329],[102.420495,32.233406],[102.419798,32.23362],[102.419399,32.233719],[102.419766,32.23299],[102.420302,32.231677],[102.420339,32.230355],[102.420318,32.230043],[102.420208,32.228394],[102.419875,32.226958],[102.419912,32.225636],[102.419688,32.224732],[102.419273,32.223626],[102.419167,32.223345],[102.419013,32.222177],[102.418602,32.221322],[102.417815,32.220512],[102.417531,32.219554],[102.417613,32.218867],[102.418141,32.21782],[102.418535,32.217087],[102.419814,32.215896],[102.419914,32.215689],[102.419942,32.215631],[102.420144,32.215214],[102.420069,32.215005],[102.420014,32.214855],[102.419855,32.214414],[102.419601,32.214079],[102.419035,32.213332],[102.418648,32.212336],[102.417692,32.211151],[102.417605,32.211043],[102.417051,32.210043],[102.416984,32.209705],[102.416927,32.209422],[102.416782,32.208527],[102.416637,32.207632],[102.416547,32.20681],[102.416104,32.206066],[102.415356,32.204808],[102.414411,32.204114],[102.413637,32.203423],[102.413632,32.203286],[102.413614,32.202796],[102.413605,32.202554],[102.413513,32.202148],[102.413353,32.20144],[102.41318,32.201208],[102.412911,32.200846],[102.41282,32.200724],[102.412705,32.200569],[102.412587,32.20041],[102.412478,32.200265],[102.412438,32.200171],[102.412379,32.200033],[102.412318,32.199855],[102.412229,32.199627],[102.412156,32.199442],[102.412074,32.199232],[102.412002,32.199049],[102.411959,32.19887],[102.411933,32.198756],[102.411898,32.198606],[102.411863,32.198457],[102.4118,32.198187],[102.411547,32.19711],[102.411356,32.196353],[102.411247,32.19592],[102.410986,32.194881],[102.410968,32.19354],[102.410968,32.19353],[102.410954,32.19333],[102.410847,32.191792],[102.410594,32.190966],[102.410432,32.190433],[102.410091,32.189611],[102.409848,32.189023],[102.40958,32.188638],[102.409432,32.188425],[102.409318,32.188261],[102.409303,32.18824],[102.408992,32.187221],[102.408253,32.185277],[102.407528,32.184828],[102.406406,32.184419],[102.40533,32.184349],[102.404833,32.183904],[102.404709,32.183709],[102.404692,32.183682],[102.404271,32.183019],[102.404182,32.182879],[102.403964,32.182536],[102.403043,32.181022],[102.402338,32.179899],[102.401627,32.178968],[102.40031,32.177446],[102.399263,32.176363],[102.398376,32.17567],[102.396988,32.174629],[102.395433,32.173487],[102.394544,32.172842],[102.393159,32.171705],[102.391037,32.170552],[102.388857,32.169446],[102.387477,32.168163],[102.387211,32.167531],[102.387169,32.167444],[102.387355,32.167478],[102.387528,32.167489],[102.387694,32.167454],[102.387903,32.167376],[102.388093,32.16724],[102.388224,32.167008],[102.388378,32.166609],[102.388468,32.16635],[102.388557,32.166092],[102.388557,32.165741],[102.388483,32.165467],[102.388408,32.165193],[102.388269,32.16492],[102.38813,32.164646],[102.388069,32.164527],[102.387938,32.164343],[102.387807,32.164158],[102.387665,32.163944],[102.387522,32.16373],[102.387385,32.163343],[102.387296,32.163086],[102.387208,32.162829],[102.387141,32.162635],[102.387037,32.16243],[102.386933,32.162225],[102.386927,32.161945],[102.386992,32.161577],[102.387023,32.16152],[102.387153,32.161285],[102.387266,32.161035],[102.387349,32.160782],[102.38745,32.16047],[102.387474,32.160232],[102.387456,32.159982],[102.387385,32.159792],[102.387364,32.159737],[102.387278,32.159506],[102.387278,32.159268],[102.387278,32.159031],[102.387278,32.158644],[102.38729,32.158394],[102.387302,32.158144],[102.38739,32.157894],[102.387478,32.157644],[102.387522,32.15752],[102.387599,32.157151],[102.387641,32.156871],[102.387635,32.156759],[102.387629,32.156657],[102.387605,32.156422],[102.387581,32.156187],[102.387599,32.156032],[102.387676,32.155902],[102.387885,32.155705],[102.388194,32.15539],[102.388372,32.15517],[102.388408,32.155039],[102.388551,32.154753],[102.388735,32.154504],[102.388902,32.154349],[102.388932,32.154312],[102.388958,32.154279],[102.389229,32.153944],[102.389515,32.153724],[102.389735,32.153451],[102.389961,32.153284],[102.390127,32.153058],[102.390252,32.152838],[102.390336,32.152707],[102.390371,32.152546],[102.390371,32.152404],[102.390318,32.152094],[102.390264,32.151785],[102.390264,32.151601],[102.390217,32.151398],[102.390062,32.151214],[102.38983,32.15103],[102.389598,32.150845],[102.389598,32.150845],[102.38936,32.150685],[102.389289,32.150625],[102.389267,32.15048],[102.389235,32.150268],[102.389283,32.149822],[102.389238,32.149557],[102.389193,32.149293],[102.389125,32.149019],[102.389057,32.148745],[102.389068,32.148608],[102.389098,32.148537],[102.38917,32.148489],[102.389515,32.148388],[102.389729,32.148308],[102.389943,32.148228],[102.390108,32.148185],[102.390377,32.148115],[102.390432,32.148112],[102.39074,32.148097],[102.391008,32.148133],[102.39121,32.148139],[102.391472,32.148097],[102.391766,32.148008],[102.392061,32.147918],[102.392459,32.14785],[102.392858,32.147782],[102.39323,32.147683],[102.393601,32.147585],[102.394024,32.147496],[102.394458,32.147383],[102.394862,32.147222],[102.395112,32.147008],[102.395231,32.146788],[102.395321,32.146479],[102.395333,32.146349],[102.395369,32.145991],[102.395404,32.145634],[102.395422,32.145361],[102.395535,32.145013],[102.395648,32.144665],[102.395802,32.144349],[102.395892,32.144117],[102.395892,32.143757],[102.395892,32.143397],[102.395945,32.143035],[102.396022,32.142862],[102.396124,32.142761],[102.396326,32.142654],[102.396458,32.142588],[102.39679,32.142422],[102.396998,32.142345],[102.397171,32.142339],[102.397309,32.142365],[102.397355,32.142374],[102.397522,32.142434],[102.39764,32.142446],[102.397861,32.142428],[102.398096,32.142356],[102.398331,32.142285],[102.398705,32.142166],[102.398961,32.142047],[102.399205,32.141988],[102.399479,32.141898],[102.399776,32.141768],[102.399961,32.141698],[102.400091,32.141649],[102.400401,32.141536],[102.40074,32.141488],[102.400978,32.141428],[102.401293,32.141256],[102.401513,32.141149],[102.401733,32.141042],[102.402138,32.140887],[102.402459,32.140798],[102.402634,32.140637],[102.40281,32.140477],[102.402991,32.140254],[102.403173,32.140031],[102.403446,32.139697],[102.403571,32.13937],[102.403666,32.138966],[102.403747,32.138524],[102.403828,32.138082],[102.403846,32.137999],[102.403903,32.137736],[102.403935,32.137371],[102.404,32.137172],[102.404022,32.137138],[102.404117,32.136993],[102.404264,32.136822],[102.40441,32.13665],[102.404567,32.136408],[102.404724,32.136165],[102.405028,32.135847],[102.405095,32.135756],[102.40516,32.135669],[102.405238,32.135483],[102.405252,32.135351],[102.405299,32.135259],[102.405374,32.135255],[102.405481,32.135269],[102.405566,32.135291],[102.405616,32.135312],[102.405789,32.135348],[102.405938,32.135383],[102.406051,32.135461],[102.406134,32.135496],[102.406223,32.13552],[102.406378,32.135538],[102.406574,32.13555],[102.406818,32.135598],[102.407074,32.135675],[102.407229,32.135705],[102.407417,32.135705],[102.407603,32.13568],[102.407845,32.135648],[102.408088,32.135616],[102.408348,32.135606],[102.408608,32.135595],[102.408869,32.135585],[102.409129,32.135574],[102.409514,32.13553],[102.409884,32.135487],[102.41013,32.13542],[102.410375,32.135354],[102.410488,32.135282],[102.410566,32.13514],[102.410619,32.135021],[102.410738,32.134967],[102.410946,32.134967],[102.411101,32.135021],[102.41122,32.13514],[102.411369,32.135235],[102.411506,32.135282],[102.411874,32.135342],[102.412243,32.135401],[102.412535,32.135434],[102.412666,32.135449],[102.412957,32.135491],[102.413314,32.135693],[102.413558,32.135865],[102.413654,32.136022],[102.413796,32.136252],[102.413927,32.136612],[102.414058,32.136972],[102.414257,32.137262],[102.414456,32.137552],[102.414462,32.137561],[102.414617,32.137715],[102.414736,32.137787],[102.414873,32.137864],[102.415057,32.137894],[102.415417,32.138001],[102.415777,32.138108],[102.416205,32.138173],[102.416336,32.138179],[102.416526,32.138167],[102.416806,32.138096],[102.417234,32.138066],[102.417549,32.138025],[102.417712,32.13802],[102.418136,32.138007],[102.418561,32.137995],[102.418858,32.138007],[102.419072,32.138072],[102.419179,32.13815],[102.41928,32.13834],[102.41934,32.138377],[102.41941,32.138421],[102.419674,32.138564],[102.420003,32.138635],[102.42022,32.138667],[102.420338,32.138685],[102.420406,32.138693],[102.420681,32.138728],[102.420981,32.138756],[102.421209,32.138735],[102.421437,32.138678],[102.421759,32.138728],[102.421923,32.138835],[102.42213,32.13902],[102.422401,32.139177],[102.42263,32.139335],[102.422972,32.139484],[102.423179,32.139542],[102.423415,32.139777],[102.423661,32.139955],[102.423938,32.140155],[102.424214,32.140355],[102.424443,32.140473],[102.424671,32.140591],[102.424892,32.140719],[102.425042,32.140762],[102.425406,32.140841],[102.42577,32.140798],[102.425899,32.140698],[102.42602,32.140441],[102.426183,32.140161],[102.426199,32.140134],[102.426497,32.13987],[102.426796,32.139606],[102.427094,32.139342],[102.427392,32.139078],[102.427691,32.138813],[102.427878,32.138647],[102.428066,32.138482],[102.428312,32.138264],[102.428554,32.137982],[102.428797,32.1377],[102.429,32.137336],[102.429111,32.137136],[102.429354,32.136879],[102.429697,32.136636],[102.430018,32.136472],[102.430308,32.136363],[102.430598,32.136253],[102.430889,32.136144],[102.431205,32.136025],[102.431522,32.135906],[102.431838,32.135787],[102.432107,32.135639],[102.432376,32.135492],[102.432645,32.135344],[102.432852,32.135116],[102.433059,32.134887],[102.433284,32.134627],[102.433508,32.134366],[102.433662,32.134145],[102.433815,32.133924],[102.434046,32.133729],[102.434277,32.133533],[102.434508,32.133338],[102.434851,32.133081],[102.43515,32.133081],[102.435429,32.133096],[102.435821,32.133074],[102.436082,32.133059],[102.436314,32.133046],[102.436571,32.133003],[102.436935,32.132953],[102.437231,32.132899],[102.437527,32.132846],[102.437824,32.132757],[102.43812,32.132667],[102.438434,32.132477],[102.438748,32.132287],[102.439062,32.132096],[102.439419,32.131868],[102.439776,32.131639],[102.439976,32.131486],[102.440176,32.131332],[102.440368,32.13099],[102.440383,32.130633],[102.440383,32.130269],[102.440354,32.129998],[102.440254,32.129783],[102.44039,32.129498],[102.44049,32.129319],[102.440504,32.129227],[102.440461,32.129062],[102.440297,32.128805],[102.44023,32.128738],[102.440097,32.128606],[102.439933,32.128527],[102.439862,32.128434],[102.439776,32.128199],[102.43969,32.12796],[102.439605,32.12772],[102.439565,32.127496],[102.439526,32.127271],[102.4395,32.127214],[102.439401,32.127035],[102.439281,32.126817],[102.438974,32.126494],[102.438667,32.12617],[102.438505,32.125999],[102.438343,32.125828],[102.438181,32.125657],[102.438018,32.125486],[102.437856,32.125315],[102.437694,32.125144],[102.437643,32.125111],[102.437358,32.124932],[102.437073,32.124753],[102.436834,32.124669],[102.436596,32.124585],[102.436377,32.124455],[102.436308,32.124264],[102.436407,32.124045],[102.436506,32.123826],[102.436685,32.123624],[102.436864,32.123422],[102.437043,32.123221],[102.437221,32.123019],[102.4374,32.122817],[102.437579,32.122615],[102.437725,32.122397],[102.43787,32.122179],[102.438035,32.121933],[102.438285,32.1217],[102.438536,32.121467],[102.438639,32.121389],[102.438736,32.121315],[102.438984,32.121086],[102.43906,32.120763],[102.439079,32.120511],[102.439098,32.120258],[102.43912,32.120108],[102.439167,32.119792],[102.439214,32.119476],[102.439203,32.119166],[102.43915,32.118934],[102.439143,32.118904],[102.43906,32.118571],[102.439131,32.118197],[102.439203,32.117822],[102.439274,32.117596],[102.439345,32.11737],[102.439512,32.117156],[102.439726,32.117048],[102.43994,32.116941],[102.440285,32.116822],[102.44046,32.116807],[102.44069,32.116787],[102.441005,32.116822],[102.44132,32.116858],[102.44153,32.116767],[102.441741,32.116676],[102.442095,32.116399],[102.442449,32.116122],[102.442716,32.115989],[102.442984,32.115855],[102.443103,32.115849],[102.443258,32.115885],[102.443371,32.115944],[102.443555,32.115986],[102.443799,32.116039],[102.443948,32.116057],[102.444186,32.116093],[102.444388,32.116099],[102.444389,32.116099],[102.44439,32.1161],[102.444548,32.116176],[102.444691,32.116277],[102.444858,32.116456],[102.444983,32.116634],[102.445274,32.116842],[102.445595,32.117068],[102.445881,32.117202],[102.446166,32.117336],[102.446378,32.117479],[102.446589,32.117622],[102.446922,32.117842],[102.447166,32.117883],[102.447493,32.117836],[102.447707,32.117806],[102.448058,32.117812],[102.448415,32.117859],[102.448576,32.117854],[102.448837,32.117804],[102.448921,32.117788],[102.449147,32.117776],[102.449373,32.117764],[102.449783,32.117782],[102.450194,32.117824],[102.45058,32.117919],[102.450884,32.11802],[102.451005,32.118055],[102.45111,32.118086],[102.451264,32.118086],[102.451455,32.118032],[102.451669,32.117984],[102.451923,32.117786],[102.452177,32.117588],[102.45243,32.11739],[102.452567,32.117265],[102.45257,32.117248],[102.452597,32.117098],[102.452591,32.116872],[102.452591,32.116711],[102.45265,32.116503],[102.452817,32.116283],[102.452984,32.116063],[102.453177,32.11587],[102.45337,32.115676],[102.453715,32.115522],[102.453938,32.115438],[102.454161,32.115355],[102.454322,32.115273],[102.454646,32.115106],[102.45497,32.114939],[102.455318,32.114745],[102.455666,32.114552],[102.45597,32.114362],[102.456136,32.1141],[102.456184,32.11388],[102.456184,32.113851],[102.456184,32.113648],[102.456184,32.113422],[102.456285,32.113148],[102.456422,32.112976],[102.45669,32.112809],[102.457076,32.112583],[102.457317,32.112321],[102.457558,32.11206],[102.45778,32.111802],[102.457927,32.111631],[102.458147,32.111334],[102.458367,32.111036],[102.458617,32.110665],[102.458867,32.110293],[102.459049,32.110132],[102.459232,32.109972],[102.459421,32.109805],[102.45961,32.109638],[102.459848,32.109496],[102.460134,32.109436],[102.460425,32.109436],[102.460654,32.109484],[102.460883,32.109531],[102.460894,32.109532],[102.461199,32.109561],[102.461395,32.109555],[102.461657,32.109525],[102.461924,32.109454],[102.462109,32.109448],[102.462299,32.109448],[102.462466,32.109424],[102.462698,32.109335],[102.462765,32.109305],[102.463138,32.109139],[102.463271,32.109087],[102.463489,32.109002],[102.46384,32.108865],[102.464084,32.108818],[102.46434,32.108823],[102.464578,32.108853],[102.464708,32.108859],[102.464804,32.108859],[102.464917,32.108835],[102.465053,32.108764],[102.465143,32.108764],[102.465262,32.108794],[102.465375,32.108794],[102.465523,32.108758],[102.465624,32.108722],[102.465708,32.108705],[102.465845,32.108746],[102.465922,32.10877],[102.465981,32.10877],[102.466124,32.108764],[102.466285,32.108716],[102.466428,32.108716],[102.466573,32.108793],[102.466642,32.108829],[102.466856,32.108942],[102.466999,32.10902],[102.467141,32.109044],[102.467344,32.10902],[102.467516,32.108966],[102.467748,32.108806],[102.468046,32.108609],[102.468343,32.108413],[102.468605,32.108285],[102.468866,32.108157],[102.469146,32.107973],[102.469426,32.107788],[102.469673,32.10755],[102.469919,32.107313],[102.470065,32.107109],[102.470211,32.106906],[102.470401,32.10664],[102.470657,32.106301],[102.470734,32.106057],[102.470758,32.105843],[102.4708,32.10557],[102.470949,32.105367],[102.471127,32.105183],[102.471157,32.105064],[102.471109,32.104975],[102.470972,32.104862],[102.470889,32.104695],[102.470835,32.104261],[102.470762,32.103861],[102.470711,32.103583],[102.470687,32.10325],[102.470722,32.103053],[102.470865,32.102798],[102.471076,32.102542],[102.471288,32.102286],[102.471298,32.102262],[102.471472,32.101864],[102.471484,32.101709],[102.471389,32.101483],[102.471308,32.101221],[102.471228,32.100959],[102.470978,32.100686],[102.470835,32.100555],[102.470776,32.100329],[102.470865,32.100049],[102.471127,32.099782],[102.471347,32.099544],[102.471407,32.099341],[102.471347,32.099121],[102.47124,32.098919],[102.471189,32.098544],[102.471139,32.098169],[102.471118,32.098068],[102.471032,32.097652],[102.470984,32.097283],[102.470895,32.097134],[102.470788,32.097039],[102.470454,32.096894],[102.470294,32.096825],[102.470104,32.096801],[102.469967,32.096658],[102.469878,32.096462],[102.469717,32.096313],[102.469551,32.09623],[102.469503,32.096177],[102.469557,32.095909],[102.469723,32.095582],[102.469907,32.095255],[102.469949,32.094969],[102.470044,32.094535],[102.470047,32.094237],[102.47005,32.09394],[102.470074,32.093559],[102.470145,32.093321],[102.470306,32.093125],[102.470592,32.092917],[102.470818,32.092679],[102.470978,32.092441],[102.471112,32.092248],[102.471246,32.092054],[102.471418,32.091923],[102.471627,32.091864],[102.471918,32.091804],[102.472275,32.091715],[102.472558,32.091632],[102.47284,32.091549],[102.473251,32.091507],[102.47357,32.091545],[102.473602,32.091549],[102.473923,32.091644],[102.474232,32.091679],[102.47444,32.091632],[102.474666,32.091549],[102.474892,32.091465],[102.475038,32.091423],[102.475297,32.091346],[102.475678,32.091264],[102.476059,32.091181],[102.47627,32.091146],[102.476527,32.091104],[102.476784,32.091062],[102.477042,32.09102],[102.477299,32.090978],[102.477556,32.090935],[102.477813,32.090893],[102.478068,32.090861],[102.478322,32.090829],[102.478576,32.090797],[102.478831,32.090765],[102.478955,32.090749],[102.479217,32.090722],[102.479342,32.0907],[102.479565,32.090666],[102.479787,32.090632],[102.480011,32.090597],[102.480235,32.090562],[102.48028,32.090548],[102.480692,32.09049],[102.480918,32.090377],[102.481079,32.090264],[102.481281,32.090103],[102.481286,32.090095],[102.481466,32.089818],[102.48162,32.08949],[102.481727,32.089086],[102.481727,32.088664],[102.48167,32.088362],[102.481612,32.088061],[102.481555,32.087759],[102.481534,32.087521],[102.481513,32.087283],[102.481427,32.086888],[102.481341,32.086492],[102.481258,32.086195],[102.481228,32.085868],[102.481311,32.08557],[102.481377,32.085291],[102.481347,32.085071],[102.481258,32.084761],[102.481269,32.084422],[102.481335,32.084143],[102.4814,32.083863],[102.48142,32.083796],[102.481466,32.083637],[102.481531,32.08353],[102.481799,32.083334],[102.482004,32.083078],[102.482209,32.082822],[102.482299,32.082513],[102.482275,32.082239],[102.482215,32.082049],[102.482074,32.081797],[102.481936,32.081549],[102.481846,32.081323],[102.481846,32.081198],[102.481874,32.081151],[102.481962,32.081005],[102.482078,32.080811],[102.4822,32.080558],[102.482322,32.080306],[102.482326,32.080293],[102.482375,32.080123],[102.482494,32.079708],[102.482614,32.079294],[102.482706,32.079071],[102.482798,32.078848],[102.482887,32.078598],[102.482852,32.078491],[102.482673,32.078322],[102.482495,32.078152],[102.482435,32.077974],[102.482423,32.077831],[102.482402,32.077813],[102.482334,32.07776],[102.482186,32.0777],[102.48209,32.077545],[102.482078,32.077266],[102.482144,32.07698],[102.482293,32.076719],[102.482385,32.076501],[102.482477,32.076284],[102.482534,32.076061],[102.48259,32.075838],[102.482653,32.075505],[102.482717,32.075172],[102.48278,32.074839],[102.482864,32.074482],[102.482965,32.074381],[102.482995,32.07438],[102.483185,32.074375],[102.48334,32.074375],[102.483589,32.074321],[102.483893,32.074259],[102.484196,32.074196],[102.484473,32.074134],[102.484749,32.074071],[102.485008,32.074083],[102.485267,32.074095],[102.485618,32.074149],[102.485903,32.074149],[102.486141,32.074122],[102.486379,32.074095],[102.486748,32.074006],[102.486992,32.074006],[102.487236,32.074006],[102.487253,32.074005],[102.487462,32.073988],[102.487587,32.073905],[102.487759,32.073804],[102.488063,32.07375],[102.488206,32.073679],[102.488366,32.073542],[102.488527,32.073441],[102.48886,32.07334],[102.48892,32.07332],[102.489163,32.073239],[102.489247,32.073209],[102.489258,32.07309],[102.489223,32.0729],[102.489092,32.072566],[102.488967,32.072364],[102.488759,32.072227],[102.488551,32.072091],[102.488313,32.071948],[102.488152,32.071805],[102.487938,32.071466],[102.48777,32.071215],[102.487602,32.070964],[102.487444,32.070728],[102.487349,32.070496],[102.487284,32.070223],[102.487278,32.069901],[102.487236,32.06964],[102.4872,32.069483],[102.487176,32.069378],[102.487218,32.069125],[102.48726,32.068872],[102.487397,32.068539],[102.487391,32.06839],[102.487343,32.068331],[102.487176,32.068254],[102.487016,32.068075],[102.486861,32.06779],[102.486706,32.067564],[102.486588,32.067355],[102.486528,32.06704],[102.486514,32.066731],[102.4865,32.066421],[102.486486,32.066112],[102.486466,32.065877],[102.486445,32.065642],[102.486428,32.065553],[102.486391,32.065357],[102.48634,32.065302],[102.486147,32.065095],[102.486108,32.065035],[102.485952,32.064794],[102.485796,32.064554],[102.485668,32.064325],[102.485541,32.064096],[102.485416,32.063786],[102.485332,32.063423],[102.485286,32.063325],[102.485231,32.063209],[102.485255,32.062953],[102.485368,32.062775],[102.485606,32.062555],[102.48571,32.062353],[102.485814,32.06215],[102.48584,32.062081],[102.485963,32.061752],[102.486096,32.061472],[102.486229,32.061193],[102.486361,32.060913],[102.486546,32.060702],[102.48673,32.060491],[102.486828,32.06028],[102.486927,32.060068],[102.487006,32.059775],[102.487085,32.059481],[102.487165,32.059188],[102.48722,32.058883],[102.487276,32.058577],[102.487331,32.058272],[102.487329,32.058243],[102.487301,32.057897],[102.48748,32.057582],[102.487692,32.057354],[102.487724,32.05732],[102.487843,32.056969],[102.487843,32.056808],[102.487799,32.056725],[102.487789,32.056707],[102.487694,32.056606],[102.487587,32.056523],[102.487456,32.056422],[102.487414,32.056124],[102.487527,32.055714],[102.487611,32.055303],[102.487543,32.05496],[102.487476,32.054617],[102.487408,32.054274],[102.487285,32.053935],[102.487266,32.053882],[102.487123,32.053507],[102.487004,32.053293],[102.486712,32.053001],[102.486546,32.052757],[102.486414,32.052368],[102.486281,32.05198],[102.486254,32.051901],[102.486131,32.05156],[102.486058,32.05136],[102.485933,32.051116],[102.48579,32.051014],[102.485592,32.050953],[102.485523,32.050931],[102.485112,32.050901],[102.484714,32.050842],[102.484428,32.050782],[102.484083,32.050658],[102.483821,32.050497],[102.483598,32.050274],[102.483375,32.050051],[102.483232,32.049777],[102.483195,32.049647],[102.483143,32.049468],[102.483066,32.04923],[102.482917,32.049123],[102.482483,32.049016],[102.482132,32.048921],[102.481727,32.048808],[102.481341,32.048766],[102.481088,32.048775],[102.480835,32.048784],[102.480556,32.048927],[102.480276,32.049069],[102.479901,32.049218],[102.479526,32.049367],[102.479114,32.049439],[102.478702,32.049511],[102.47861,32.049527],[102.478313,32.049581],[102.478016,32.049634],[102.477718,32.049688],[102.477337,32.049819],[102.476957,32.04995],[102.476788,32.050007],[102.476399,32.050139],[102.476011,32.050271],[102.475776,32.050292],[102.475541,32.050313],[102.475309,32.050271],[102.475184,32.050081],[102.475092,32.04981],[102.475,32.049539],[102.474863,32.049272],[102.474512,32.049031],[102.474161,32.04879],[102.473843,32.048587],[102.473524,32.048385],[102.47326,32.048347],[102.472995,32.048308],[102.472791,32.048354],[102.472578,32.048403],[102.472305,32.048427],[102.472108,32.04832],[102.471954,32.048135],[102.47165,32.048082],[102.471362,32.048028],[102.471073,32.047975],[102.470713,32.047877],[102.470352,32.04778],[102.470351,32.047779],[102.470348,32.047778],[102.470003,32.047731],[102.469741,32.047776],[102.469729,32.047778],[102.469336,32.047874],[102.469051,32.047862],[102.468876,32.04777],[102.468813,32.047737],[102.468521,32.047653],[102.468284,32.047662],[102.468046,32.047671],[102.46763,32.047689],[102.467423,32.047697],[102.467215,32.047706],[102.467046,32.047713],[102.466624,32.047814],[102.466201,32.047915],[102.465955,32.047966],[102.465708,32.048016],[102.465309,32.04801],[102.465095,32.047933],[102.465006,32.047683],[102.46492,32.047433],[102.464833,32.047184],[102.464732,32.046934],[102.464716,32.046821],[102.464696,32.046684],[102.464685,32.046297],[102.464631,32.04603],[102.464512,32.04575],[102.464429,32.045518],[102.464203,32.045357],[102.464084,32.045316],[102.463929,32.045203],[102.463893,32.04509],[102.463905,32.044822],[102.463923,32.044542],[102.463998,32.044218],[102.464072,32.043894],[102.464213,32.04361],[102.464354,32.043325],[102.464548,32.042936],[102.464619,32.04274],[102.464613,32.042555],[102.464566,32.042139],[102.464566,32.041895],[102.464662,32.041631],[102.464759,32.041367],[102.46481,32.041229],[102.464829,32.041092],[102.464866,32.040836],[102.464923,32.040444],[102.464923,32.040164],[102.464869,32.040015],[102.464661,32.039789],[102.464542,32.039581],[102.464471,32.039378],[102.464346,32.039016],[102.464232,32.038784],[102.464119,32.038552],[102.46392,32.038287],[102.463721,32.038023],[102.463435,32.037823],[102.46315,32.037624],[102.462918,32.037517],[102.462698,32.037481],[102.462293,32.03744],[102.462004,32.037359],[102.461714,32.037278],[102.461424,32.037197],[102.461335,32.037172],[102.461252,32.037101],[102.461205,32.036988],[102.461205,32.036756],[102.461222,32.036345],[102.46127,32.035911],[102.461336,32.035666],[102.461401,32.03542],[102.461461,32.035199],[102.46152,32.034977],[102.461588,32.034751],[102.461657,32.034525],[102.461829,32.03415],[102.461972,32.033817],[102.462049,32.033606],[102.462127,32.033395],[102.462174,32.033067],[102.462189,32.032728],[102.462204,32.032389],[102.46224,32.03213],[102.462275,32.031872],[102.462301,32.031707],[102.462341,32.031443],[102.462335,32.031057],[102.462263,32.030747],[102.462148,32.03036],[102.462145,32.030349],[102.462133,32.030269],[102.462109,32.030099],[102.462109,32.029754],[102.462159,32.029507],[102.46221,32.02926],[102.46229,32.028847],[102.462371,32.028433],[102.462375,32.028422],[102.46248,32.028163],[102.462585,32.027904],[102.462668,32.027636],[102.462751,32.027369],[102.462888,32.026958],[102.462906,32.026595],[102.462823,32.026185],[102.462722,32.025956],[102.46262,32.025727],[102.462583,32.025671],[102.462382,32.025376],[102.462281,32.025174],[102.462216,32.02484],[102.462134,32.024578],[102.462133,32.024573],[102.46199,32.024287],[102.46193,32.024085],[102.461883,32.023651],[102.461895,32.023288],[102.461907,32.022925],[102.461918,32.022562],[102.461901,32.022125],[102.461883,32.021688],[102.461901,32.021509],[102.462002,32.021206],[102.462186,32.020929],[102.462371,32.020653],[102.46254,32.020373],[102.46271,32.020093],[102.462775,32.019817],[102.46284,32.01954],[102.46284,32.019261],[102.46284,32.01907],[102.462811,32.01888],[102.462789,32.018757],[102.462757,32.018582],[102.462762,32.018448],[102.462769,32.018249],[102.462835,32.018017],[102.463061,32.017654],[102.463376,32.017351],[102.463554,32.01719],[102.463673,32.016982],[102.463792,32.016774],[102.463956,32.016373],[102.464119,32.015971],[102.46425,32.015549],[102.464346,32.015186],[102.464476,32.014912],[102.464661,32.014731],[102.464845,32.014549],[102.465056,32.014412],[102.465268,32.014276],[102.46556,32.014089],[102.465595,32.014067],[102.465865,32.013874],[102.466136,32.013681],[102.466359,32.013511],[102.466582,32.013342],[102.466787,32.013111],[102.466992,32.01288],[102.467046,32.012818],[102.467281,32.012628],[102.467516,32.012437],[102.467825,32.012295],[102.468075,32.012223],[102.468361,32.012188],[102.468593,32.012176],[102.468872,32.01217],[102.469086,32.012159],[102.469223,32.012152],[102.469551,32.012146],[102.469786,32.01214],[102.470021,32.012134],[102.470383,32.01211],[102.470675,32.012051],[102.470731,32.012023],[102.470894,32.012023],[102.47116,32.012023],[102.471425,32.012023],[102.471691,32.012023],[102.471957,32.012023],[102.472216,32.012044],[102.472475,32.012065],[102.472828,32.012093],[102.4729,32.012194],[102.473191,32.012408],[102.473495,32.01255],[102.473721,32.012616],[102.473911,32.012652],[102.474114,32.012679],[102.474345,32.012711],[102.474601,32.012705],[102.474857,32.012699],[102.475267,32.012738],[102.475678,32.012777],[102.475957,32.01283],[102.476267,32.012913],[102.476484,32.013023],[102.476701,32.013133],[102.477022,32.013336],[102.477343,32.013538],[102.477599,32.013693],[102.477813,32.013728],[102.478027,32.013728],[102.478146,32.013707],[102.47842,32.013657],[102.478652,32.013669],[102.478884,32.013681],[102.479315,32.013731],[102.479747,32.013782],[102.47991,32.013826],[102.480121,32.013883],[102.480389,32.013978],[102.480508,32.014067],[102.480835,32.014311],[102.481017,32.014484],[102.481198,32.014656],[102.481356,32.015031],[102.481513,32.015406],[102.481594,32.01562],[102.481674,32.015834],[102.481799,32.015947],[102.4819,32.015977],[102.482129,32.015992],[102.482358,32.016007],[102.482679,32.016102],[102.482923,32.016292],[102.483081,32.016497],[102.483238,32.016703],[102.483417,32.016887],[102.483631,32.016994],[102.483728,32.017044],[102.484107,32.017238],[102.484367,32.017418],[102.484626,32.017599],[102.484886,32.017779],[102.485005,32.017886],[102.485048,32.018017],[102.485094,32.01816],[102.48512,32.018351],[102.48513,32.018428],[102.485172,32.018612],[102.485332,32.01882],[102.485535,32.018969],[102.485701,32.019124],[102.48588,32.019272],[102.486106,32.019493],[102.486201,32.019733],[102.486296,32.019974],[102.486397,32.020212],[102.486516,32.020278],[102.48673,32.020272],[102.487031,32.020201],[102.487057,32.020195],[102.487474,32.020064],[102.487721,32.020001],[102.487968,32.019939],[102.488125,32.01991],[102.488265,32.019885],[102.488568,32.019873],[102.488997,32.019861],[102.48933,32.019784],[102.489606,32.019725],[102.489883,32.019665],[102.490157,32.019677],[102.490466,32.019713],[102.490769,32.01979],[102.49096,32.019963],[102.491156,32.020189],[102.491329,32.020313],[102.491518,32.020342],[102.491601,32.020309],[102.491864,32.020172],[102.492024,32.02009],[102.492298,32.01983],[102.492572,32.01957],[102.49278,32.019374],[102.492887,32.019207],[102.492935,32.01888],[102.492982,32.018612],[102.493101,32.01844],[102.493279,32.018228],[102.493457,32.018017],[102.493714,32.017798],[102.493952,32.017646],[102.494076,32.017403],[102.494116,32.017132],[102.494157,32.016861],[102.494177,32.016754],[102.494237,32.016439],[102.494297,32.016124],[102.494356,32.015809],[102.494395,32.015495],[102.494433,32.015181],[102.494514,32.014781],[102.494656,32.014546],[102.49468,32.014505],[102.494851,32.01421],[102.494951,32.013994],[102.495051,32.013777],[102.495106,32.013511],[102.495161,32.013244],[102.495227,32.013144],[102.495342,32.013073],[102.495508,32.013054],[102.495756,32.01303],[102.496151,32.013035],[102.49648,32.013058],[102.49681,32.013082],[102.49714,32.013105],[102.49715,32.013106],[102.49755,32.013144],[102.497802,32.013144],[102.498054,32.013144],[102.498368,32.01312],[102.498604,32.013063],[102.498839,32.013006],[102.499015,32.012973],[102.499187,32.012901],[102.499253,32.012873],[102.499501,32.012768],[102.499715,32.012659],[102.499972,32.012535],[102.50017,32.012468],[102.500252,32.012417],[102.500282,32.012416],[102.500405,32.012412],[102.50071,32.012401],[102.500916,32.012393],[102.501128,32.012416],[102.501304,32.012449],[102.501604,32.012459],[102.501833,32.012459],[102.50218,32.012445],[102.502399,32.012445],[102.502811,32.012411],[102.502923,32.012402],[102.502965,32.012397],[102.50321,32.012368],[102.503456,32.01234],[102.503853,32.012371],[102.50425,32.012402],[102.504488,32.012452],[102.504726,32.012502],[102.505031,32.012583],[102.505353,32.012752],[102.505383,32.012768],[102.505599,32.012866],[102.505816,32.012963],[102.50604,32.013049],[102.506411,32.013168],[102.506539,32.013168],[102.506701,32.013163],[102.506982,32.013173],[102.507139,32.013201],[102.507286,32.01322],[102.507439,32.013206],[102.507639,32.013182],[102.507877,32.013135],[102.508057,32.013063],[102.508262,32.012987],[102.508476,32.012954],[102.508733,32.012835],[102.508897,32.012652],[102.509062,32.012468],[102.509204,32.012188],[102.509209,32.012182],[102.509317,32.012058],[102.509364,32.012004],[102.509518,32.011826],[102.509699,32.011636],[102.509999,32.011469],[102.510242,32.011345],[102.510656,32.011226],[102.510965,32.011169],[102.511023,32.011159],[102.511246,32.011122],[102.511484,32.01106],[102.511727,32.01096],[102.511879,32.010798],[102.512045,32.01056],[102.512212,32.010322],[102.512421,32.009932],[102.512476,32.009607],[102.512548,32.009182],[102.512574,32.009032],[102.512672,32.008607],[102.51277,32.008182],[102.512869,32.007757],[102.512954,32.007459],[102.51304,32.00716],[102.513073,32.007043],[102.513133,32.006887],[102.513273,32.00652],[102.513392,32.006334],[102.513559,32.00613],[102.513825,32.005887],[102.514032,32.005765],[102.514239,32.005644],[102.514522,32.005542],[102.514806,32.005439],[102.515116,32.005365],[102.515427,32.00529],[102.515738,32.005216],[102.516143,32.005087],[102.516305,32.004992],[102.516419,32.00483],[102.516471,32.004669],[102.516562,32.004388],[102.51669,32.004126],[102.516776,32.003998],[102.516966,32.003874],[102.517214,32.003783],[102.517461,32.003693],[102.517725,32.003614],[102.517989,32.003536],[102.518372,32.003419],[102.518475,32.003388],[102.518755,32.003346],[102.518823,32.003337],[102.518984,32.003317],[102.519217,32.003288],[102.519531,32.003246],[102.519798,32.003165],[102.520107,32.003027],[102.520416,32.002889],[102.520591,32.002823],[102.520695,32.002825],[102.520852,32.002876],[102.521159,32.003103],[102.52152,32.003322],[102.521735,32.00355],[102.521949,32.003779],[102.522156,32.0041],[102.522363,32.004421],[102.52251,32.004531],[102.522682,32.004573],[102.522829,32.00455],[102.523072,32.004404],[102.523314,32.004259],[102.52369,32.004102],[102.523857,32.004026],[102.524123,32.003905],[102.52439,32.003783],[102.524623,32.003726],[102.524842,32.003726],[102.525042,32.00375],[102.525184,32.00375],[102.525204,32.00375],[102.525446,32.003702],[102.525632,32.003688],[102.525827,32.00365],[102.525999,32.003526],[102.526169,32.003336],[102.526203,32.003298],[102.526355,32.00307],[102.526562,32.002979],[102.526769,32.002889],[102.527105,32.002774],[102.52744,32.00266],[102.527702,32.002525],[102.527964,32.002389],[102.528259,32.002318],[102.528568,32.002327],[102.528835,32.002408],[102.528876,32.002424],[102.529025,32.002479],[102.529173,32.002465],[102.529252,32.002448],[102.52933,32.002432],[102.529744,32.00227],[102.53009,32.0022],[102.530435,32.00213],[102.530781,32.002061],[102.530981,32.00197],[102.531072,32.00191],[102.531134,32.001892],[102.531316,32.001732],[102.531497,32.001572],[102.531648,32.001341],[102.531798,32.001111],[102.531902,32.000852],[102.532006,32.000594],[102.532048,32.000199],[102.532066,32.000145],[102.532078,32.000111],[102.532206,31.999738],[102.5323,31.999466],[102.532468,31.999275],[102.532542,31.999191],[102.53269,31.998958],[102.532837,31.998725],[102.532924,31.998522],[102.533081,31.998203],[102.533237,31.997884],[102.533301,31.997792],[102.533508,31.997496],[102.533703,31.997131],[102.533898,31.996767],[102.533927,31.996712],[102.534115,31.996445],[102.534303,31.996179],[102.534561,31.995885],[102.53482,31.995592],[102.535079,31.995298],[102.535233,31.995103],[102.535388,31.994908],[102.535631,31.994727],[102.535907,31.994556],[102.53613,31.994423],[102.53624,31.994242],[102.536368,31.99408],[102.536613,31.993928],[102.536858,31.993775],[102.537089,31.99364],[102.53732,31.993504],[102.537482,31.993385],[102.537591,31.993242],[102.537739,31.992966],[102.537905,31.992778],[102.538072,31.99259],[102.538286,31.992352],[102.538538,31.992224],[102.538881,31.992134],[102.539205,31.992086],[102.539492,31.992119],[102.53958,31.992129],[102.539757,31.992076],[102.54,31.991885],[102.540236,31.991772],[102.540488,31.991652],[102.54079,31.991358],[102.540822,31.991286],[102.540972,31.991086],[102.541122,31.990887],[102.541259,31.990675],[102.541346,31.990539],[102.541422,31.990289],[102.541498,31.99004],[102.541475,31.989816],[102.541379,31.989488],[102.541275,31.989169],[102.54127,31.98901],[102.541265,31.988817],[102.541265,31.988436],[102.541229,31.9882],[102.541203,31.988036],[102.541084,31.987698],[102.541075,31.987384],[102.541102,31.987018],[102.541113,31.98687],[102.54116,31.986487],[102.541208,31.986104],[102.541346,31.985766],[102.541407,31.985669],[102.541603,31.985356],[102.541798,31.985043],[102.542027,31.984757],[102.542317,31.9845],[102.542612,31.984291],[102.542671,31.984264],[102.54305,31.984091],[102.54334,31.983905],[102.543445,31.983767],[102.543554,31.983496],[102.543641,31.983306],[102.543697,31.983182],[102.543949,31.982887],[102.544172,31.982561],[102.544396,31.982236],[102.544416,31.982206],[102.544525,31.981949],[102.544544,31.981745],[102.544525,31.981671],[102.544416,31.981255],[102.544392,31.981002],[102.544368,31.98075],[102.544344,31.980455],[102.544388,31.980269],[102.544463,31.979951],[102.544554,31.979646],[102.544638,31.979539],[102.544696,31.979465],[102.544925,31.979303],[102.545106,31.978999],[102.545286,31.978694],[102.545467,31.97839],[102.545645,31.978088],[102.545823,31.977787],[102.546,31.977486],[102.546272,31.977157],[102.546483,31.976998],[102.546695,31.976838],[102.546969,31.976608],[102.547242,31.976377],[102.547388,31.976174],[102.547533,31.975972],[102.547656,31.975696],[102.547837,31.975506],[102.54791,31.975445],[102.548004,31.975368],[102.548133,31.975294],[102.548204,31.975254],[102.548537,31.975063],[102.548727,31.97493],[102.548778,31.974838],[102.548924,31.974577],[102.54907,31.974316],[102.549148,31.9741],[102.549227,31.973883],[102.549255,31.973583],[102.54926,31.973379],[102.549312,31.973079],[102.549293,31.972879],[102.549232,31.972746],[102.549241,31.972679],[102.549251,31.97261],[102.54926,31.972551],[102.549379,31.972289],[102.549591,31.972058],[102.549803,31.971827],[102.549824,31.97181],[102.550058,31.97162],[102.550292,31.971431],[102.550526,31.971242],[102.550712,31.97108],[102.550921,31.971013],[102.551161,31.970992],[102.551402,31.970971],[102.551728,31.970928],[102.552054,31.970886],[102.552274,31.970902],[102.552522,31.970957],[102.55277,31.971012],[102.552974,31.971042],[102.553349,31.971067],[102.553473,31.971075],[102.553708,31.97108],[102.553906,31.971042],[102.553944,31.971034],[102.554239,31.97099],[102.55448,31.97077],[102.554647,31.97056],[102.554814,31.97035],[102.554865,31.970094],[102.554916,31.969839],[102.554967,31.969584],[102.555018,31.969329],[102.555087,31.96893],[102.555157,31.968532],[102.555177,31.968414],[102.555152,31.968396],[102.555152,31.968272],[102.55519,31.968063],[102.555342,31.967682],[102.55549,31.96748],[102.55568,31.967221],[102.555801,31.96698],[102.55585,31.966884],[102.555923,31.96674],[102.556094,31.966378],[102.556265,31.966017],[102.556465,31.965679],[102.556665,31.965341],[102.556941,31.965044],[102.557217,31.964748],[102.557493,31.964451],[102.557636,31.964156],[102.557677,31.96402],[102.557717,31.963889],[102.557707,31.963761],[102.557674,31.963666],[102.557674,31.963504],[102.557726,31.963318],[102.557883,31.963204],[102.557976,31.963092],[102.557977,31.963091],[102.557978,31.96309],[102.558088,31.962811],[102.558197,31.962533],[102.558388,31.962167],[102.558526,31.962024],[102.558707,31.961957],[102.558849,31.961924],[102.559173,31.961795],[102.559492,31.961505],[102.559677,31.961391],[102.559834,31.961315],[102.559944,31.961243],[102.560006,31.961058],[102.56022,31.960668],[102.560467,31.96048],[102.560715,31.960292],[102.560973,31.960092],[102.561232,31.959892],[102.561491,31.959692],[102.561769,31.959487],[102.562047,31.959283],[102.562404,31.959149],[102.562695,31.959059],[102.562789,31.959033],[102.56319,31.958921],[102.563494,31.958821],[102.563799,31.958721],[102.564127,31.958588],[102.564351,31.958478],[102.564631,31.958355],[102.564974,31.95824],[102.565191,31.958089],[102.565413,31.957934],[102.565636,31.957779],[102.56584,31.957565],[102.566045,31.957351],[102.566207,31.957279],[102.566478,31.957236],[102.566811,31.957184],[102.567054,31.957113],[102.56733,31.956908],[102.567615,31.95657],[102.567644,31.956513],[102.567801,31.956206],[102.567986,31.955842],[102.568245,31.955499],[102.568504,31.955157],[102.568762,31.954814],[102.568843,31.954586],[102.568924,31.954357],[102.569005,31.954067],[102.569042,31.953958],[102.569043,31.953956],[102.569044,31.953954],[102.569133,31.953691],[102.5694,31.953477],[102.569666,31.953263],[102.570004,31.952977],[102.570095,31.952806],[102.570102,31.952758],[102.570147,31.952482],[102.570143,31.952378],[102.570142,31.952328],[102.570138,31.952211],[102.570118,31.951949],[102.570044,31.951767],[102.569985,31.951626],[102.569961,31.951473],[102.56998,31.951078],[102.569957,31.950907],[102.569933,31.950764],[102.569831,31.950438],[102.569728,31.950112],[102.569676,31.94995],[102.569671,31.949822],[102.569764,31.949426],[102.569771,31.949398],[102.569807,31.949207],[102.569877,31.948836],[102.569947,31.948466],[102.569949,31.948447],[102.569984,31.948152],[102.570019,31.947857],[102.569966,31.947614],[102.569857,31.947364],[102.569747,31.947114],[102.569552,31.946767],[102.569357,31.946419],[102.569176,31.94601],[102.568951,31.945814],[102.568881,31.945753],[102.568641,31.945429],[102.568401,31.945106],[102.568348,31.945015],[102.568353,31.944873],[102.56844,31.94469],[102.568448,31.944673],[102.568619,31.944461],[102.568853,31.944116],[102.568967,31.943921],[102.569019,31.94374],[102.569019,31.943521],[102.569014,31.943326],[102.569008,31.943255],[102.569,31.943169],[102.568953,31.942988],[102.568748,31.94265],[102.56861,31.942469],[102.568472,31.942289],[102.568433,31.942222],[102.568324,31.942036],[102.568248,31.941894],[102.568239,31.941722],[102.568327,31.941491],[102.568415,31.941261],[102.568581,31.941061],[102.568748,31.940861],[102.568881,31.940661],[102.569088,31.940547],[102.569295,31.940433],[102.569533,31.940349],[102.569771,31.940266],[102.570045,31.940111],[102.570318,31.939957],[102.570635,31.939835],[102.570951,31.939714],[102.571364,31.939575],[102.571475,31.939538],[102.57151,31.939521],[102.57166,31.939448],[102.571822,31.939338],[102.572122,31.939219],[102.572408,31.939024],[102.572669,31.938743],[102.572812,31.9386],[102.572991,31.938434],[102.573169,31.938267],[102.573469,31.938063],[102.573564,31.937863],[102.573616,31.93772],[102.573792,31.937539],[102.573968,31.937358],[102.574264,31.937039],[102.574471,31.936923],[102.574678,31.936806],[102.574835,31.936697],[102.575101,31.936378],[102.575258,31.936097],[102.575415,31.935816],[102.575517,31.935571],[102.57562,31.935326],[102.575824,31.935117],[102.576029,31.934907],[102.576086,31.934855],[102.576224,31.934855],[102.576383,31.934901],[102.576438,31.934917],[102.576741,31.935012],[102.577043,31.935107],[102.5774,31.935184],[102.577718,31.935248],[102.578037,31.935312],[102.578375,31.935382],[102.578404,31.935388],[102.578749,31.935541],[102.578832,31.935578],[102.579155,31.935756],[102.579477,31.935934],[102.57987,31.93615],[102.580117,31.936307],[102.580226,31.936326],[102.580273,31.936332],[102.580522,31.936364],[102.580916,31.936554],[102.581083,31.936678],[102.581335,31.936854],[102.581464,31.936921],[102.581539,31.936965],[102.581616,31.937011],[102.581726,31.93712],[102.581992,31.937468],[102.58226,31.937698],[102.582464,31.937873],[102.582668,31.938048],[102.582801,31.938144],[102.582872,31.938191],[102.583006,31.938224],[102.583313,31.938255],[102.58362,31.938286],[102.58386,31.938292],[102.584257,31.938301],[102.584424,31.938305],[102.584866,31.938329],[102.5852,31.938415],[102.585418,31.938522],[102.58549,31.938558],[102.585723,31.93871],[102.585885,31.938891],[102.585978,31.939098],[102.58607,31.939305],[102.586156,31.939462],[102.586204,31.939557],[102.586461,31.939823],[102.58668,31.940066],[102.586898,31.940309],[102.587015,31.94042],[102.587094,31.940494],[102.587289,31.94068],[102.587357,31.940712],[102.587736,31.940889],[102.587836,31.941008],[102.587964,31.941323],[102.587991,31.941376],[102.588074,31.941537],[102.588088,31.941565],[102.588245,31.941922],[102.588383,31.942217],[102.588583,31.942389],[102.58875,31.94246],[102.588767,31.942472],[102.588814,31.942505],[102.588956,31.942604],[102.589145,31.942736],[102.58925,31.942782],[102.589354,31.942826],[102.589506,31.942941],[102.589835,31.943212],[102.5899,31.943249],[102.590268,31.943459],[102.590415,31.943688],[102.590658,31.943983],[102.590798,31.944187],[102.590939,31.944392],[102.591172,31.944613],[102.591405,31.944835],[102.59152,31.945066],[102.59173,31.945392],[102.591912,31.945564],[102.592095,31.945737],[102.592278,31.945909],[102.59246,31.946081],[102.592643,31.946253],[102.592826,31.946426],[102.592914,31.946509],[102.592914,31.946509],[102.593008,31.946598],[102.593191,31.94677],[102.593374,31.946942],[102.593556,31.947114],[102.593726,31.947282],[102.593895,31.94745],[102.594064,31.947618],[102.594234,31.947786],[102.594403,31.947954],[102.594572,31.948122],[102.594742,31.94829],[102.594911,31.948458],[102.59508,31.948626],[102.59525,31.948794],[102.595419,31.948962],[102.595589,31.94913],[102.595781,31.949312],[102.595973,31.949494],[102.596165,31.949676],[102.596357,31.949858],[102.596549,31.95004],[102.596741,31.950222],[102.596933,31.950404],[102.597125,31.950586],[102.597317,31.950768],[102.597509,31.95095],[102.597701,31.951132],[102.597874,31.951296],[102.597893,31.951314],[102.598091,31.95148],[102.598289,31.951646],[102.598487,31.951812],[102.598686,31.951979],[102.598884,31.952145],[102.599082,31.952311],[102.59928,31.952478],[102.599479,31.952644],[102.599677,31.95281],[102.599875,31.952976],[102.600183,31.953191],[102.600491,31.953405],[102.600798,31.953619],[102.601058,31.953732],[102.601161,31.953776],[102.601524,31.953933],[102.601933,31.954028],[102.602342,31.954123],[102.602737,31.954194],[102.603132,31.954264],[102.603468,31.954308],[102.603804,31.954352],[102.604233,31.954427],[102.604662,31.954502],[102.605091,31.954577],[102.605513,31.954727],[102.605935,31.954876],[102.606357,31.955026],[102.606463,31.955064],[102.606779,31.955176],[102.607201,31.955326],[102.607476,31.955369],[102.60775,31.955411],[102.608024,31.955454],[102.608298,31.955497],[102.608572,31.955539],[102.608846,31.955582],[102.60912,31.955624],[102.609394,31.955667],[102.609661,31.955682],[102.609928,31.955697],[102.610195,31.955712],[102.610462,31.955727],[102.610729,31.955742],[102.610996,31.955757],[102.611263,31.955772],[102.61153,31.955787],[102.611797,31.955802],[102.612064,31.955818],[102.612308,31.955817],[102.612551,31.955817],[102.612795,31.955816],[102.613039,31.955816],[102.613283,31.955815],[102.613526,31.955815],[102.61377,31.955814],[102.614014,31.955814],[102.614257,31.955813],[102.614501,31.955813],[102.614874,31.955828],[102.614921,31.95583],[102.615342,31.955846],[102.615762,31.955863],[102.61599,31.955864],[102.616217,31.955865],[102.616445,31.955866],[102.616672,31.955867],[102.6169,31.955868],[102.617128,31.955869],[102.617355,31.95587],[102.617518,31.955871],[102.617583,31.955871],[102.617812,31.955863],[102.618041,31.955855],[102.618271,31.955847],[102.6185,31.955839],[102.618729,31.955831],[102.618959,31.955823],[102.619354,31.955855],[102.61975,31.955888],[102.619976,31.955923],[102.620203,31.955958],[102.620429,31.955994],[102.620655,31.956029],[102.62105,31.9561],[102.621446,31.95617],[102.621815,31.956252],[102.622185,31.956334],[102.622397,31.956381],[102.622555,31.956416],[102.622963,31.956523],[102.623372,31.956631],[102.623733,31.956838],[102.624094,31.957045],[102.624281,31.957199],[102.624468,31.957352],[102.624655,31.957506],[102.624738,31.957574],[102.624843,31.957659],[102.625026,31.95779],[102.625209,31.957921],[102.625393,31.958051],[102.625576,31.958182],[102.625759,31.958313],[102.625943,31.958443],[102.626166,31.958603],[102.626285,31.958687],[102.626516,31.958817],[102.626748,31.958946],[102.626979,31.959075],[102.627211,31.959205],[102.627442,31.959334],[102.627674,31.959463],[102.62792,31.959587],[102.628054,31.959654],[102.628055,31.959654],[102.628167,31.95971],[102.628413,31.959834],[102.62866,31.959957],[102.628973,31.960066],[102.629038,31.960089],[102.629416,31.960221],[102.629826,31.960287],[102.630236,31.960353],[102.630645,31.960419],[102.630878,31.96045],[102.63111,31.960482],[102.631343,31.960514],[102.631575,31.960546],[102.631807,31.960577],[102.63204,31.960609],[102.632272,31.960641],[102.632505,31.960672],[102.632737,31.960704],[102.632969,31.960736],[102.633202,31.960767],[102.633356,31.960788],[102.633434,31.960799],[102.633694,31.960836],[102.633954,31.960873],[102.634214,31.960911],[102.634473,31.960948],[102.634733,31.960985],[102.634993,31.961022],[102.635309,31.961028],[102.635624,31.961034],[102.635773,31.961016],[102.635879,31.961002],[102.636133,31.96097],[102.636366,31.960921],[102.636508,31.960891],[102.636516,31.960889],[102.636549,31.960882],[102.6366,31.960872],[102.636644,31.960851],[102.636898,31.960734],[102.637132,31.960543],[102.637199,31.960489],[102.637373,31.960276],[102.637485,31.960096],[102.637508,31.960059],[102.637563,31.959971],[102.637653,31.959827],[102.637712,31.959732],[102.637753,31.959666],[102.637783,31.959617],[102.637814,31.959566],[102.637971,31.959373],[102.638072,31.95925],[102.638213,31.959079],[102.638293,31.958981],[102.63831,31.958961],[102.638331,31.958935],[102.638404,31.958845],[102.638579,31.958632],[102.63859,31.958619],[102.638606,31.958606],[102.638635,31.958582],[102.638805,31.958443],[102.639015,31.958272],[102.639226,31.9581],[102.639436,31.957928],[102.639647,31.957757],[102.63991,31.957601],[102.63995,31.957577],[102.64,31.957548],[102.640029,31.957531],[102.640172,31.957446],[102.640462,31.95713],[102.640659,31.956794],[102.640856,31.956457],[102.641015,31.956239],[102.641173,31.956022],[102.641189,31.955999],[102.641331,31.955805],[102.641489,31.955588],[102.641815,31.955348],[102.64214,31.955108],[102.642466,31.954868],[102.642623,31.9547],[102.642624,31.954699],[102.642626,31.954697],[102.64278,31.954533],[102.642937,31.954366],[102.643094,31.954199],[102.643323,31.953816],[102.643552,31.953433],[102.643782,31.95305],[102.643863,31.952803],[102.643945,31.952556],[102.644026,31.952309],[102.644108,31.952062],[102.64419,31.951815],[102.644271,31.951568],[102.64434,31.95136],[102.644353,31.951321],[102.644366,31.951281],[102.644435,31.951074],[102.644516,31.950827],[102.644574,31.950651],[102.644596,31.950585],[102.644597,31.950583],[102.644598,31.95058],[102.644656,31.950141],[102.644657,31.950109],[102.644657,31.950085],[102.644659,31.950031],[102.644662,31.949901],[102.644384,31.949696],[102.644109,31.94941],[102.643834,31.949125],[102.64356,31.948839],[102.643355,31.948574],[102.643151,31.94831],[102.643086,31.948078],[102.643021,31.947847],[102.642956,31.947615],[102.642892,31.947383],[102.64284,31.946942],[102.642789,31.9465],[102.642737,31.946058],[102.642709,31.945731],[102.642701,31.945644],[102.642689,31.945509],[102.642674,31.945334],[102.642665,31.945229],[102.642662,31.945195],[102.642662,31.945195],[102.642628,31.944814],[102.642671,31.944564],[102.642715,31.944314],[102.642758,31.944064],[102.642801,31.943813],[102.642844,31.943563],[102.642888,31.943313],[102.642928,31.943077],[102.642931,31.943062],[102.642974,31.942812],[102.643017,31.942562],[102.64306,31.942312],[102.643067,31.942178],[102.643077,31.941998],[102.643077,31.941989],[102.643083,31.941871],[102.643084,31.941869],[102.643084,31.941867],[102.643091,31.941725],[102.643107,31.941431],[102.643107,31.941431],[102.643107,31.941431],[102.643113,31.941304],[102.64313,31.940991],[102.643152,31.940562],[102.643153,31.940551],[102.643198,31.9404],[102.643203,31.940384],[102.643255,31.940212],[102.643282,31.940122],[102.643303,31.940055],[102.643307,31.94004],[102.643352,31.939892],[102.643357,31.939873],[102.643503,31.939696],[102.643649,31.939518],[102.643794,31.93934],[102.64394,31.939163],[102.644085,31.938985],[102.644231,31.938808],[102.644489,31.938505],[102.644748,31.938203],[102.645006,31.937901],[102.645269,31.937766],[102.645532,31.93763],[102.645633,31.937616],[102.645791,31.937595],[102.646051,31.937559],[102.646297,31.937579],[102.64639,31.937586],[102.646422,31.937589],[102.646502,31.937595],[102.646502,31.937595],[102.646502,31.937595],[102.646544,31.937598],[102.64679,31.937618],[102.647035,31.937637],[102.647035,31.937638],[102.647036,31.937638],[102.647202,31.937651],[102.647283,31.937657],[102.6473,31.937659],[102.647529,31.937677],[102.647761,31.937695],[102.647776,31.937696],[102.647876,31.937704],[102.648022,31.937716],[102.6482,31.937747],[102.648251,31.937756],[102.648481,31.937797],[102.648679,31.937831],[102.64871,31.937837],[102.648785,31.93785],[102.648842,31.93786],[102.648939,31.937877],[102.649024,31.937892],[102.649169,31.937918],[102.649398,31.937958],[102.649627,31.937998],[102.649857,31.938038],[102.650086,31.938079],[102.650315,31.938119],[102.65055,31.938163],[102.650784,31.938208],[102.651018,31.938252],[102.651252,31.938296],[102.651333,31.938306],[102.651608,31.938339],[102.65165,31.938344],[102.651663,31.938346],[102.651736,31.938354],[102.651918,31.938376],[102.652049,31.938392],[102.652378,31.938398],[102.652706,31.938404],[102.652789,31.938385],[102.653038,31.938331],[102.653163,31.938228],[102.653177,31.938217],[102.653224,31.938179],[102.65323,31.938174],[102.653257,31.938073],[102.653283,31.937973],[102.653195,31.937731],[102.653059,31.937509],[102.652924,31.937286],[102.652716,31.937132],[102.65257,31.937024],[102.652508,31.936978],[102.6523,31.936824],[102.652092,31.93667],[102.651893,31.93658],[102.65169,31.936489],[102.651288,31.936308],[102.650885,31.936127],[102.650667,31.936027],[102.650448,31.935926],[102.650229,31.935826],[102.650011,31.935726],[102.649792,31.935626],[102.649573,31.935525],[102.649355,31.935425],[102.649136,31.935325],[102.648917,31.935225],[102.648699,31.935124],[102.648325,31.935017],[102.647951,31.93491],[102.647769,31.934707],[102.647766,31.934695],[102.647751,31.934639],[102.647751,31.934637],[102.647727,31.934546],[102.647731,31.93439],[102.647732,31.934346],[102.647903,31.934183],[102.648075,31.93402],[102.648246,31.933857],[102.648418,31.933695],[102.648611,31.933518],[102.648803,31.933341],[102.648996,31.933164],[102.649189,31.932987],[102.64925,31.932888],[102.649256,31.93288],[102.649385,31.932671],[102.649581,31.932354],[102.649682,31.93219],[102.649777,31.932037],[102.649873,31.931882],[102.649948,31.93176],[102.65012,31.931483],[102.650199,31.931144],[102.650229,31.931016],[102.650279,31.930805],[102.650285,31.930534],[102.650292,31.930264],[102.650299,31.929994],[102.650306,31.929723],[102.650271,31.929282],[102.650232,31.928881],[102.650285,31.928661],[102.650338,31.928442],[102.650391,31.928222],[102.650444,31.928003],[102.65048,31.927753],[102.650515,31.927503],[102.650551,31.927254],[102.650587,31.927004],[102.650622,31.926754],[102.650658,31.926504],[102.650693,31.926255],[102.650729,31.926005],[102.650759,31.925605],[102.650788,31.925204],[102.650818,31.924804],[102.650852,31.924528],[102.650936,31.924391],[102.651128,31.924257],[102.651371,31.924239],[102.651642,31.924243],[102.651935,31.92441],[102.652228,31.924576],[102.652399,31.924737],[102.65257,31.924899],[102.652742,31.92506],[102.652913,31.925222],[102.653084,31.925383],[102.653255,31.925545],[102.653427,31.925706],[102.653598,31.925867],[102.653892,31.925989],[102.654042,31.926023],[102.654109,31.926038],[102.654158,31.926045],[102.654295,31.926064],[102.654486,31.926023],[102.654733,31.925842],[102.654874,31.925637],[102.655011,31.925439],[102.655015,31.925433],[102.655051,31.925363],[102.655086,31.925292],[102.655142,31.925182],[102.655269,31.924932],[102.655363,31.924496],[102.655316,31.924197],[102.655247,31.923956],[102.655246,31.923951],[102.655221,31.923862],[102.655179,31.923715],[102.65511,31.923475],[102.655042,31.923234],[102.654807,31.922855],[102.654699,31.92268],[102.654572,31.922475],[102.654464,31.922374],[102.65435,31.922266],[102.654127,31.922057],[102.654079,31.921902],[102.654028,31.921733],[102.654027,31.921726],[102.65401,31.921365],[102.654048,31.921294],[102.654083,31.92123],[102.654139,31.921125],[102.65416,31.921085],[102.654168,31.921071],[102.654181,31.921046],[102.654271,31.92091],[102.654405,31.920705],[102.654572,31.920547],[102.654789,31.920459],[102.655062,31.920395],[102.655318,31.920388],[102.655574,31.920382],[102.655822,31.920386],[102.655872,31.920387],[102.656144,31.920392],[102.656169,31.920392],[102.656505,31.920456],[102.656841,31.92052],[102.657163,31.920572],[102.657486,31.920624],[102.657863,31.920666],[102.65824,31.920707],[102.658523,31.920735],[102.658806,31.920763],[102.659144,31.92077],[102.659448,31.920776],[102.659481,31.920776],[102.659725,31.920734],[102.65981,31.920726],[102.660019,31.920704],[102.660312,31.920674],[102.66055,31.920502],[102.660787,31.92033],[102.66082,31.920282],[102.660829,31.920269],[102.660838,31.920255],[102.660922,31.920134],[102.661045,31.919955],[102.661057,31.919937],[102.661063,31.919903],[102.661082,31.919806],[102.661116,31.91963],[102.660812,31.919358],[102.660427,31.919197],[102.660043,31.919035],[102.659811,31.918942],[102.65958,31.918849],[102.659378,31.918668],[102.659175,31.918488],[102.659064,31.918243],[102.658954,31.917998],[102.658843,31.917753],[102.658732,31.917508],[102.658635,31.917142],[102.658554,31.916837],[102.658538,31.916777],[102.65853,31.916748],[102.65847,31.916521],[102.658402,31.916265],[102.658393,31.916167],[102.658393,31.916166],[102.658388,31.91611],[102.658385,31.916088],[102.658361,31.915823],[102.658063,31.915602],[102.658056,31.915596],[102.657746,31.915524],[102.657436,31.915452],[102.657178,31.915403],[102.656921,31.915354],[102.656663,31.915305],[102.656405,31.915256],[102.656097,31.915118],[102.65579,31.91498],[102.655546,31.914898],[102.655302,31.914817],[102.655058,31.914735],[102.654814,31.914653],[102.654584,31.914516],[102.654354,31.914379],[102.654287,31.914239],[102.654258,31.914177],[102.654248,31.914157],[102.654206,31.914067],[102.654109,31.9138],[102.654171,31.91336],[102.654237,31.913094],[102.654303,31.912827],[102.654487,31.912643],[102.654671,31.912458],[102.654855,31.912274],[102.655016,31.912113],[102.65504,31.912089],[102.655436,31.911926],[102.655832,31.911763],[102.656229,31.9116],[102.656625,31.911437],[102.656964,31.911266],[102.657304,31.911096],[102.657643,31.910925],[102.657871,31.910767],[102.658099,31.910609],[102.658247,31.910346],[102.658249,31.910232],[102.658254,31.909963],[102.658228,31.909668],[102.658113,31.909415],[102.657998,31.909162],[102.657744,31.908936],[102.657491,31.90871],[102.657173,31.908498],[102.656855,31.908286],[102.656538,31.908073],[102.656181,31.907816],[102.655873,31.907594],[102.655824,31.907558],[102.655742,31.907491],[102.655587,31.907363],[102.655349,31.907167],[102.655209,31.906939],[102.655184,31.906898],[102.655184,31.906887],[102.655192,31.906468],[102.655259,31.90624],[102.655325,31.906013],[102.655376,31.905838],[102.655392,31.905785],[102.655458,31.905557],[102.655577,31.905324],[102.655695,31.90509],[102.655813,31.904856],[102.655932,31.904622],[102.656093,31.904389],[102.656113,31.904361],[102.656255,31.904156],[102.656607,31.903928],[102.65686,31.903852],[102.657112,31.903775],[102.657365,31.903698],[102.657618,31.903622],[102.657857,31.903582],[102.658096,31.903542],[102.658335,31.903502],[102.658574,31.903462],[102.658813,31.903422],[102.659052,31.903382],[102.659291,31.903342],[102.659529,31.903302],[102.659946,31.903266],[102.660121,31.903251],[102.660293,31.903236],[102.660363,31.90323],[102.660675,31.903206],[102.66083,31.903195],[102.66087,31.903193],[102.66102,31.903183],[102.66116,31.903127],[102.661228,31.903072],[102.661267,31.90304],[102.661377,31.902806],[102.661383,31.902541],[102.661286,31.902302],[102.661099,31.902122],[102.660913,31.901942],[102.660807,31.90187],[102.660763,31.90184],[102.660699,31.901796],[102.660655,31.901767],[102.660626,31.901747],[102.660503,31.901663],[102.660484,31.901651],[102.66027,31.901505],[102.660056,31.90136],[102.659842,31.901215],[102.659627,31.901069],[102.659413,31.900924],[102.659199,31.900778],[102.658985,31.900633],[102.65877,31.900487],[102.658578,31.900331],[102.658386,31.900176],[102.658194,31.90002],[102.658002,31.899864],[102.65781,31.899708],[102.657618,31.899552],[102.657449,31.899372],[102.65728,31.899192],[102.657254,31.899078],[102.657221,31.89894],[102.657218,31.898925],[102.657156,31.898659],[102.657197,31.898394],[102.657239,31.898129],[102.657417,31.897911],[102.657595,31.897693],[102.657617,31.897685],[102.657784,31.897622],[102.657944,31.897562],[102.658294,31.897431],[102.658643,31.8973],[102.658896,31.897256],[102.659149,31.897213],[102.659403,31.897169],[102.659656,31.897125],[102.659909,31.897081],[102.66004,31.897058],[102.660162,31.897037],[102.660416,31.896993],[102.660669,31.89695],[102.660922,31.896906],[102.661175,31.896862],[102.661429,31.896818],[102.661682,31.896774],[102.661935,31.89673],[102.662164,31.896691],[102.662188,31.896687],[102.662561,31.896647],[102.662705,31.896632],[102.662868,31.896615],[102.662935,31.896608],[102.663308,31.896568],[102.663318,31.896565],[102.663656,31.896456],[102.664005,31.896344],[102.664165,31.896185],[102.664183,31.896166],[102.664238,31.896111],[102.664324,31.896025],[102.664329,31.895993],[102.664331,31.89598],[102.664334,31.895962],[102.664366,31.895761],[102.664358,31.89572],[102.664305,31.895436],[102.664101,31.895284],[102.663897,31.895133],[102.663687,31.895006],[102.663476,31.894879],[102.663266,31.894753],[102.663056,31.894626],[102.662845,31.894499],[102.662635,31.894372],[102.662425,31.894246],[102.662215,31.894119],[102.662004,31.893992],[102.661794,31.893866],[102.661584,31.893739],[102.661373,31.893612],[102.661161,31.893472],[102.660949,31.893332],[102.660737,31.893193],[102.660525,31.893053],[102.66022,31.892735],[102.66007,31.892526],[102.659919,31.892316],[102.659836,31.892166],[102.659821,31.892139],[102.659754,31.892019],[102.659749,31.891965],[102.659742,31.891889],[102.659727,31.891723],[102.659873,31.891431],[102.660242,31.891188],[102.660611,31.890944],[102.660874,31.890816],[102.661137,31.890689],[102.661331,31.890529],[102.661526,31.89037],[102.661774,31.890154],[102.662021,31.889937],[102.662165,31.889718],[102.662293,31.889523],[102.662309,31.889499],[102.66233,31.889458],[102.66234,31.889437],[102.662455,31.889207],[102.662601,31.888915],[102.662643,31.888842],[102.662697,31.888748],[102.662727,31.888696],[102.662813,31.888545],[102.662818,31.888536],[102.663067,31.888274],[102.663379,31.888222],[102.66363,31.888205],[102.663882,31.888187],[102.664133,31.88817],[102.664385,31.888152],[102.664614,31.88816],[102.664843,31.888168],[102.665072,31.888176],[102.665301,31.888184],[102.66553,31.888192],[102.665759,31.8882],[102.665988,31.888208],[102.666217,31.888216],[102.666587,31.888197],[102.666851,31.888184],[102.666958,31.888179],[102.667358,31.888098],[102.667708,31.888027],[102.667758,31.888017],[102.668177,31.887877],[102.668213,31.887848],[102.668495,31.887618],[102.668643,31.887238],[102.668645,31.887174],[102.668646,31.887125],[102.668648,31.887051],[102.668648,31.887043],[102.668653,31.886855],[102.668623,31.886794],[102.668488,31.886527],[102.668251,31.886346],[102.668013,31.886164],[102.667683,31.885991],[102.667352,31.885818],[102.667022,31.885645],[102.666762,31.885515],[102.666737,31.885503],[102.666714,31.885491],[102.666589,31.885358],[102.666546,31.885312],[102.666381,31.885013],[102.66627,31.884745],[102.666229,31.884646],[102.666076,31.88428],[102.665928,31.883922],[102.665924,31.883913],[102.66572,31.88364],[102.665672,31.883575],[102.665516,31.883368],[102.665331,31.883157],[102.665146,31.882947],[102.66501,31.882826],[102.664975,31.882636],[102.664963,31.882575],[102.664953,31.882519],[102.66495,31.882501],[102.664954,31.882344],[102.664958,31.882177],[102.665139,31.881885],[102.665357,31.881801],[102.665575,31.881716],[102.665793,31.881631],[102.666011,31.881547],[102.666197,31.881521],[102.666218,31.881518],[102.666382,31.881495],[102.666752,31.881443],[102.667122,31.881391],[102.667418,31.881323],[102.667471,31.88131],[102.667667,31.881265],[102.667714,31.881254],[102.66793,31.881179],[102.668145,31.881105],[102.66836,31.88103],[102.668575,31.880955],[102.668791,31.880881],[102.669006,31.880806],[102.669413,31.880666],[102.66982,31.880526],[102.670228,31.880387],[102.670526,31.8802],[102.670592,31.880159],[102.67066,31.880116],[102.670825,31.880013],[102.670849,31.879987],[102.671039,31.879782],[102.671277,31.879523],[102.671315,31.879246],[102.671323,31.878913],[102.671139,31.87852],[102.670832,31.878335],[102.670525,31.87815],[102.67014,31.877948],[102.669887,31.877816],[102.669755,31.877746],[102.669623,31.877678],[102.6695,31.877613],[102.66941,31.877566],[102.669369,31.877544],[102.669177,31.877444],[102.669123,31.877415],[102.668984,31.877342],[102.668776,31.877201],[102.668569,31.87706],[102.668375,31.876886],[102.66828,31.876772],[102.668236,31.876685],[102.668217,31.876648],[102.668186,31.876588],[102.668122,31.876462],[102.668157,31.876138],[102.668162,31.876094],[102.668421,31.875904],[102.668679,31.875714],[102.669027,31.875513],[102.669375,31.875311],[102.669723,31.87511],[102.670013,31.874942],[102.670311,31.874756],[102.67061,31.87457],[102.670823,31.874338],[102.671036,31.874106],[102.671163,31.873887],[102.67129,31.873668],[102.671357,31.873482],[102.671439,31.873258],[102.671446,31.872963],[102.671418,31.872698],[102.671346,31.872339],[102.671201,31.872166],[102.671118,31.872067],[102.670912,31.87182],[102.67089,31.871794],[102.670823,31.87176],[102.670751,31.871724],[102.670718,31.871707],[102.670669,31.871682],[102.670449,31.87157],[102.670228,31.871458],[102.670007,31.871345],[102.669786,31.871233],[102.669566,31.871121],[102.669345,31.871009],[102.669124,31.870896],[102.668741,31.870753],[102.668358,31.870611],[102.667974,31.870468],[102.66792,31.870441],[102.667919,31.870441],[102.667852,31.870408],[102.667837,31.870401],[102.667599,31.870284],[102.667395,31.870134],[102.667295,31.869954],[102.6673,31.869748],[102.667386,31.869525],[102.667471,31.869303],[102.667557,31.86908],[102.667642,31.868857],[102.667772,31.868642],[102.667901,31.868428],[102.66803,31.868213],[102.668159,31.867998],[102.668288,31.867784],[102.668417,31.867569],[102.668546,31.867354],[102.668675,31.86714],[102.668804,31.866925],[102.668933,31.86671],[102.669227,31.866384],[102.669521,31.866057],[102.669814,31.865731],[102.670108,31.865405],[102.67023,31.865212],[102.670352,31.86502],[102.670474,31.864827],[102.670596,31.864635],[102.670719,31.864442],[102.670841,31.86425],[102.670954,31.863883],[102.671031,31.863633],[102.671067,31.863517],[102.671125,31.863252],[102.671183,31.862988],[102.671156,31.862737],[102.671128,31.862486],[102.671091,31.862441],[102.670976,31.8623],[102.670914,31.862223],[102.670858,31.862155],[102.670605,31.8619],[102.670572,31.861867],[102.670473,31.861767],[102.670419,31.861713],[102.670418,31.861712],[102.670376,31.86167],[102.670371,31.861664],[102.670352,31.861645],[102.670184,31.861451],[102.670016,31.861256],[102.669935,31.861033],[102.669854,31.860811],[102.669878,31.860546],[102.669902,31.860281],[102.67005,31.85992],[102.670197,31.859559],[102.670345,31.859198],[102.670493,31.858807],[102.670641,31.858417],[102.670789,31.858026],[102.670868,31.857681],[102.670892,31.857421],[102.670904,31.857291],[102.670915,31.857166],[102.670915,31.857161],[102.670939,31.856901],[102.670963,31.856641],[102.670987,31.856381],[102.671011,31.856121],[102.67109,31.855699],[102.67117,31.855278],[102.67125,31.854856],[102.671364,31.854461],[102.671479,31.854065],[102.671577,31.853814],[102.671675,31.853563],[102.67178,31.853315],[102.671885,31.853067],[102.672123,31.852698],[102.672401,31.852482],[102.67249,31.852413],[102.67268,31.852265],[102.67276,31.852329],[102.672798,31.85236],[102.67292,31.852458],[102.67319,31.852728],[102.673436,31.853035],[102.673685,31.853353],[102.673933,31.853672],[102.674138,31.854025],[102.67431,31.854308],[102.674467,31.854632],[102.674623,31.8549],[102.674781,31.85514],[102.674831,31.855257],[102.674825,31.855671],[102.674821,31.855953],[102.674845,31.856319],[102.674869,31.856685],[102.674922,31.856852],[102.675111,31.857037],[102.675327,31.85725],[102.675341,31.857261],[102.675536,31.857404],[102.675731,31.857548],[102.675898,31.857768],[102.675963,31.858071],[102.675945,31.858321],[102.675871,31.858541],[102.675797,31.858761],[102.675797,31.859023],[102.675853,31.859259],[102.675856,31.859273],[102.675981,31.859475],[102.676058,31.859522],[102.676177,31.859594],[102.676505,31.859814],[102.676612,31.859915],[102.676689,31.860046],[102.676737,31.860189],[102.676784,31.86032],[102.676856,31.860433],[102.676939,31.860534],[102.677082,31.860671],[102.677314,31.860808],[102.677557,31.860909],[102.677843,31.861099],[102.678129,31.861289],[102.678295,31.861459],[102.678462,31.861628],[102.678503,31.861825],[102.678501,31.861893],[102.678497,31.862021],[102.678485,31.862289],[102.678474,31.862556],[102.67842,31.862818],[102.67839,31.863009],[102.678319,31.863305],[102.678248,31.863602],[102.678248,31.863603],[102.678248,31.863603],[102.678223,31.863687],[102.678223,31.863689],[102.67817,31.863871],[102.678027,31.864032],[102.677682,31.864222],[102.677593,31.864341],[102.677589,31.864459],[102.677587,31.86452],[102.677623,31.864769],[102.677659,31.864989],[102.677831,31.865299],[102.678004,31.86568],[102.678099,31.865804],[102.678277,31.86587],[102.678401,31.86591],[102.67844,31.865922],[102.678442,31.865923],[102.678444,31.865923],[102.678557,31.866025],[102.678569,31.866155],[102.678557,31.866286],[102.678527,31.866459],[102.678533,31.866631],[102.678652,31.86697],[102.678682,31.867119],[102.678682,31.867202],[102.67861,31.867315],[102.678521,31.867399],[102.678367,31.867494],[102.678057,31.86775],[102.677861,31.867916],[102.677737,31.86802],[102.677635,31.868107],[102.677436,31.868309],[102.677236,31.868511],[102.677088,31.86874],[102.677082,31.868749],[102.677082,31.868948],[102.677082,31.868975],[102.677093,31.869082],[102.677207,31.869433],[102.677409,31.869748],[102.677516,31.870141],[102.677555,31.870444],[102.677593,31.870748],[102.677617,31.870836],[102.677665,31.871014],[102.677742,31.871301],[102.67775,31.871323],[102.677871,31.871669],[102.677992,31.872015],[102.678033,31.87228],[102.678075,31.872544],[102.678111,31.872848],[102.678069,31.873264],[102.678013,31.873526],[102.677957,31.873788],[102.677891,31.874097],[102.677891,31.87421],[102.677891,31.874299],[102.677932,31.874382],[102.678051,31.87446],[102.678105,31.874502],[102.678349,31.874692],[102.678593,31.874882],[102.678771,31.875215],[102.678793,31.87529],[102.67886,31.875513],[102.678908,31.875816],[102.678979,31.876119],[102.679092,31.876328],[102.67919,31.876551],[102.679289,31.876774],[102.679402,31.876968],[102.679473,31.877089],[102.679526,31.877404],[102.679528,31.877433],[102.679544,31.877696],[102.679604,31.877934],[102.679741,31.878178],[102.679988,31.878499],[102.680056,31.878588],[102.680115,31.878721],[102.680199,31.878909],[102.680211,31.879177],[102.680208,31.879425],[102.680205,31.879861],[102.680175,31.880224],[102.680104,31.880593],[102.680032,31.880914],[102.679848,31.881116],[102.679613,31.881396],[102.679378,31.881675],[102.679146,31.882015],[102.678914,31.882354],[102.678696,31.882558],[102.678521,31.882722],[102.678515,31.882853],[102.678525,31.88289],[102.678539,31.882948],[102.678694,31.883056],[102.678725,31.883075],[102.678906,31.883189],[102.679117,31.883323],[102.679401,31.883664],[102.679685,31.884006],[102.679969,31.884348],[102.680253,31.884689],[102.680536,31.885031],[102.680348,31.885416],[102.680159,31.885801],[102.679971,31.886186],[102.679782,31.886571],[102.679594,31.886956],[102.679594,31.886957],[102.679593,31.886957],[102.679405,31.887341],[102.679217,31.887727],[102.679032,31.888008],[102.678847,31.88829],[102.67871,31.888506],[102.678573,31.888721],[102.678437,31.888936],[102.6783,31.889152],[102.678164,31.889367],[102.678027,31.889582],[102.677891,31.889798],[102.677754,31.890013],[102.677617,31.890229],[102.677481,31.890444],[102.677344,31.890659],[102.677208,31.890875],[102.677071,31.89109],[102.676934,31.891305],[102.676813,31.891521],[102.676691,31.891737],[102.67657,31.891953],[102.676448,31.892169],[102.676327,31.892385],[102.676205,31.892601],[102.676084,31.892817],[102.675962,31.893033],[102.67584,31.893249],[102.675719,31.893464],[102.675668,31.89359],[102.675629,31.893688],[102.675591,31.893782],[102.675547,31.893966],[102.675562,31.894151],[102.675596,31.894335],[102.675632,31.894453],[102.675739,31.894703],[102.675847,31.894952],[102.675954,31.895202],[102.676061,31.895451],[102.676273,31.89584],[102.676485,31.896228],[102.676698,31.896617],[102.67691,31.897006],[102.677023,31.897201],[102.677137,31.897396],[102.677251,31.897592],[102.677364,31.897787],[102.677478,31.897982],[102.677592,31.898177],[102.677704,31.898393],[102.677817,31.898609],[102.67793,31.898825],[102.678043,31.899041],[102.678155,31.899258],[102.678268,31.899474],[102.678381,31.89969],[102.678493,31.899906],[102.678605,31.900177],[102.678715,31.900547],[102.678757,31.900801],[102.6788,31.901054],[102.67885,31.901467],[102.678841,31.901787],[102.678796,31.902003],[102.678754,31.902138],[102.678712,31.902237],[102.678538,31.902404],[102.678364,31.902571],[102.67819,31.902738],[102.678016,31.902904],[102.677842,31.903071],[102.677668,31.903238],[102.677494,31.903405],[102.677319,31.903571],[102.677159,31.903751],[102.676998,31.90393],[102.676837,31.904109],[102.676676,31.904289],[102.676516,31.904468],[102.676355,31.904647],[102.676194,31.904826],[102.676034,31.905006],[102.675873,31.905185],[102.675712,31.905364],[102.675551,31.905544],[102.675391,31.905723],[102.67523,31.905902],[102.675069,31.906081],[102.674929,31.906261],[102.674788,31.906441],[102.674647,31.90662],[102.674507,31.9068],[102.674366,31.906979],[102.674225,31.907159],[102.674085,31.907338],[102.673944,31.907518],[102.673922,31.907651],[102.673923,31.907658],[102.673938,31.907769],[102.673947,31.90778],[102.674014,31.907855],[102.674111,31.907923],[102.674312,31.908025],[102.674513,31.908127],[102.674714,31.908229],[102.674915,31.90833],[102.675116,31.908432],[102.675318,31.908534],[102.675693,31.908742],[102.676069,31.908951],[102.676151,31.908996],[102.676445,31.909159],[102.676792,31.9094],[102.677042,31.90969],[102.677193,31.909928],[102.677286,31.910198],[102.677301,31.910383],[102.677297,31.910484],[102.677276,31.9106],[102.677273,31.910668],[102.677136,31.91089],[102.676999,31.911112],[102.676862,31.911334],[102.676725,31.911557],[102.676593,31.91179],[102.676461,31.912024],[102.676329,31.912257],[102.676197,31.912491],[102.676065,31.912724],[102.675933,31.912958],[102.675912,31.912996],[102.675801,31.913192],[102.675669,31.913425],[102.675555,31.9137],[102.67544,31.913974],[102.675345,31.914224],[102.67525,31.914474],[102.675214,31.914759],[102.675177,31.915044],[102.675164,31.915298],[102.675151,31.915553],[102.675138,31.915807],[102.675125,31.916061],[102.675111,31.916316],[102.675098,31.91657],[102.675111,31.916776],[102.675126,31.91704],[102.675163,31.917246],[102.675177,31.917319],[102.675229,31.917571],[102.675273,31.917684],[102.675378,31.91795],[102.675526,31.918329],[102.675608,31.918539],[102.675674,31.918708],[102.675794,31.919046],[102.675914,31.919383],[102.67598,31.9196],[102.676046,31.919818],[102.676112,31.920035],[102.676177,31.920252],[102.676243,31.92047],[102.676309,31.920687],[102.676375,31.920904],[102.676441,31.921122],[102.676484,31.921366],[102.676528,31.92161],[102.676523,31.921795],[102.676479,31.921928],[102.676378,31.922077],[102.676209,31.922267],[102.67604,31.922457],[102.675871,31.922647],[102.675702,31.922837],[102.675533,31.923027],[102.675364,31.923217],[102.675201,31.923417],[102.675038,31.923616],[102.674876,31.923816],[102.674713,31.924016],[102.674551,31.924216],[102.674388,31.924416],[102.674225,31.924615],[102.674063,31.924815],[102.6739,31.925015],[102.673737,31.925215],[102.67353,31.925598],[102.673445,31.925831],[102.673421,31.926049],[102.673416,31.92625],[102.673468,31.926469],[102.673523,31.926621],[102.673599,31.926774],[102.673886,31.927087],[102.674174,31.9274],[102.674462,31.927713],[102.674673,31.927952],[102.674786,31.928172],[102.674859,31.928391],[102.674876,31.928527],[102.67489,31.928729],[102.674876,31.928986],[102.674863,31.929243],[102.674849,31.929501],[102.674835,31.929758],[102.674821,31.930016],[102.674807,31.930273],[102.674793,31.93053],[102.674779,31.930788],[102.674777,31.931065],[102.674775,31.931342],[102.674773,31.931619],[102.674771,31.931896],[102.674703,31.932256],[102.674635,31.932615],[102.674569,31.932891],[102.674502,31.933167],[102.674476,31.933434],[102.674515,31.933616],[102.674565,31.933697],[102.67461,31.933768],[102.674898,31.934084],[102.674916,31.934103],[102.675186,31.934399],[102.675454,31.934701],[102.675721,31.935002],[102.675989,31.935303],[102.676136,31.935494],[102.676283,31.935685],[102.67643,31.935875],[102.676577,31.936066],[102.676724,31.936257],[102.676871,31.936448],[102.677018,31.936638],[102.677165,31.936829],[102.677312,31.93702],[102.677459,31.937211],[102.677647,31.937566],[102.67774,31.937828],[102.677832,31.938091],[102.677885,31.938391],[102.677937,31.938691],[102.677955,31.938955],[102.677973,31.93922],[102.677991,31.939484],[102.678009,31.939749],[102.678033,31.939993],[102.678056,31.940238],[102.67812,31.940457],[102.678183,31.940676],[102.678312,31.941039],[102.67844,31.941402],[102.678534,31.941622],[102.678627,31.941842],[102.678808,31.942114],[102.678988,31.942385],[102.679122,31.942622],[102.679256,31.942859],[102.679391,31.943096],[102.679525,31.943332],[102.679659,31.943569],[102.679793,31.943806],[102.679928,31.944043],[102.680062,31.94428],[102.680196,31.944517],[102.680331,31.944753],[102.680471,31.945077],[102.680508,31.945159],[102.680684,31.945565],[102.680861,31.945971],[102.681038,31.946377],[102.681158,31.946707],[102.681271,31.947015],[102.681278,31.947036],[102.681361,31.947298],[102.681444,31.94756],[102.681493,31.947924],[102.681495,31.948058],[102.681496,31.948167],[102.6815,31.94841],[102.681433,31.948728],[102.681366,31.949047],[102.681271,31.949305],[102.681176,31.949564],[102.681112,31.949747],[102.681108,31.949999],[102.681122,31.9501],[102.681159,31.950235],[102.681472,31.950538],[102.681785,31.950842],[102.682098,31.951145],[102.682411,31.951449],[102.682622,31.951676],[102.682833,31.951903],[102.682987,31.952107],[102.683042,31.952226],[102.683118,31.952361],[102.683126,31.952431],[102.68315,31.952631],[102.683124,31.952899],[102.683027,31.953216],[102.682931,31.953533],[102.682872,31.953884],[102.682814,31.954236],[102.682787,31.954536],[102.682782,31.954779],[102.682812,31.955132],[102.682872,31.95539],[102.682931,31.955649],[102.682991,31.955907],[102.68305,31.956166],[102.683109,31.956424],[102.683159,31.95664],[102.683159,31.95664],[102.683169,31.956683],[102.683223,31.956903],[102.683278,31.957123],[102.683332,31.957343],[102.683387,31.957563],[102.683441,31.957783],[102.683496,31.958003],[102.68355,31.958223],[102.683605,31.958443],[102.683662,31.958672],[102.683718,31.958901],[102.683775,31.959129],[102.683832,31.959358],[102.683911,31.959729],[102.683991,31.9601],[102.684118,31.960505],[102.684306,31.960878],[102.684444,31.961103],[102.684582,31.961328],[102.68472,31.961554],[102.684857,31.961779],[102.684995,31.962004],[102.685034,31.962068],[102.685035,31.96207],[102.685133,31.962229],[102.685304,31.96251],[102.685336,31.962585],[102.685341,31.962599],[102.685456,31.962924],[102.685509,31.963072],[102.685571,31.963248],[102.685631,31.963375],[102.685757,31.963641],[102.68584,31.963749],[102.685993,31.963948],[102.686157,31.964105],[102.686364,31.964248],[102.686635,31.964334],[102.686799,31.964369],[102.686937,31.964424],[102.686978,31.964441],[102.68717,31.964555],[102.687206,31.964612],[102.687272,31.964722],[102.687456,31.965026],[102.687479,31.965076],[102.687644,31.965432],[102.687809,31.965789],[102.688112,31.966075],[102.688148,31.96611],[102.688274,31.966228],[102.688339,31.966288],[102.688422,31.96636],[102.688487,31.966413],[102.688505,31.966455],[102.688517,31.966526],[102.68844,31.966633],[102.688279,31.966901],[102.688119,31.967169],[102.688005,31.967396],[102.687934,31.967537],[102.687774,31.967758],[102.687632,31.967903],[102.687565,31.967972],[102.687357,31.968132],[102.687149,31.968293],[102.686958,31.968461],[102.68686,31.968547],[102.68681,31.96859],[102.686679,31.968608],[102.686572,31.968608],[102.686453,31.968674],[102.686388,31.96881],[102.686411,31.969054],[102.686411,31.969447],[102.68639,31.969673],[102.68637,31.969899],[102.686313,31.970142],[102.686287,31.970248],[102.686255,31.970384],[102.686135,31.970637],[102.686049,31.970818],[102.685969,31.970986],[102.685803,31.971336],[102.685764,31.971396],[102.685709,31.971481],[102.68568,31.971527],[102.685609,31.971637],[102.685556,31.971718],[102.685433,31.971908],[102.68531,31.972099],[102.68515,31.972255],[102.685007,31.972395],[102.684787,31.972542],[102.684508,31.972655],[102.684168,31.972783],[102.684089,31.972805],[102.683913,31.972854],[102.683658,31.972924],[102.683403,31.972994],[102.683148,31.973064],[102.682893,31.973135],[102.682638,31.973205],[102.682383,31.973275],[102.682128,31.973345],[102.681873,31.973416],[102.681618,31.973486],[102.681369,31.973565],[102.68112,31.973645],[102.680872,31.973724],[102.680805,31.973745],[102.680623,31.973803],[102.68052,31.973844],[102.680236,31.973956],[102.680071,31.97402],[102.679859,31.974104],[102.679848,31.974108],[102.679622,31.974232],[102.679538,31.974278],[102.679486,31.974307],[102.679227,31.974449],[102.678946,31.974637],[102.678665,31.974826],[102.678599,31.974884],[102.678349,31.975105],[102.678034,31.975384],[102.677718,31.975664],[102.677564,31.975844],[102.67741,31.976025],[102.677256,31.976205],[102.677102,31.976385],[102.676948,31.976566],[102.676794,31.976746],[102.67664,31.976926],[102.676486,31.977107],[102.676333,31.977285],[102.676181,31.977464],[102.676181,31.977464],[102.676181,31.977464],[102.676025,31.977686],[102.675832,31.977998],[102.675638,31.97831],[102.675513,31.978507],[102.675478,31.978679],[102.675478,31.978894],[102.675478,31.979018],[102.675489,31.979188],[102.67549,31.979197],[102.675608,31.979406],[102.67562,31.979429],[102.675815,31.979757],[102.67601,31.980084],[102.676031,31.980119],[102.676233,31.980428],[102.676435,31.980738],[102.67656,31.981059],[102.676703,31.981338],[102.67675,31.981441],[102.676882,31.981725],[102.677015,31.98204],[102.677149,31.982356],[102.677156,31.982381],[102.677273,31.982806],[102.67739,31.983231],[102.677465,31.983504],[102.677601,31.983789],[102.677619,31.983932],[102.677625,31.984057],[102.677578,31.984158],[102.677384,31.984429],[102.677191,31.984699],[102.677062,31.984898],[102.676793,31.985163],[102.676525,31.985428],[102.676257,31.985693],[102.676061,31.985855],[102.675882,31.986002],[102.67561,31.986348],[102.675597,31.986365],[102.675365,31.986609],[102.67524,31.98674],[102.675139,31.986924],[102.675109,31.98718],[102.675109,31.98762],[102.675091,31.987953],[102.675186,31.988227],[102.675192,31.988393],[102.675079,31.988631],[102.675061,31.98906],[102.675064,31.989145],[102.675073,31.989381],[102.675133,31.989756],[102.675145,31.990119],[102.675145,31.990273],[102.675087,31.990423],[102.675055,31.990505],[102.674966,31.99066],[102.674913,31.99088],[102.674918,31.991005],[102.674948,31.991142],[102.675121,31.991308],[102.675127,31.991362],[102.675097,31.991469],[102.674936,31.991695],[102.674776,31.991921],[102.674615,31.992272],[102.674598,31.992368],[102.674531,31.992744],[102.674526,31.992772],[102.67449,31.99309],[102.674455,31.993408],[102.674397,31.993677],[102.67433,31.993991],[102.674312,31.994235],[102.674307,31.994332],[102.674306,31.994366],[102.674371,31.994467],[102.674532,31.994705],[102.674675,31.994913],[102.674752,31.995145],[102.674827,31.995447],[102.674903,31.995749],[102.674918,31.995811],[102.675061,31.996127],[102.675171,31.996356],[102.675281,31.996585],[102.675378,31.996729],[102.675538,31.996966],[102.675698,31.997203],[102.675927,31.997444],[102.676156,31.997685],[102.676251,31.997828],[102.676322,31.997971],[102.676394,31.998007],[102.676453,31.998036],[102.676483,31.998114],[102.676471,31.998256],[102.676424,31.998387],[102.67637,31.998488],[102.676282,31.998528],[102.676263,31.998536],[102.676049,31.998619],[102.675882,31.998744],[102.675751,31.998881],[102.675742,31.998895],[102.675715,31.998936],[102.675591,31.999125],[102.675466,31.999458],[102.675377,31.999583],[102.675153,31.999816],[102.674942,32.000035],[102.674698,32.000326],[102.674496,32.000487],[102.674228,32.000707],[102.673976,32.000862],[102.673723,32.001016],[102.673604,32.001129],[102.673544,32.001314],[102.673408,32.001736],[102.673312,32.002099],[102.673275,32.002198],[102.673247,32.002272],[102.673158,32.002403],[102.67308,32.00248],[102.672902,32.002557],[102.672718,32.002649],[102.672569,32.002724],[102.672397,32.002808],[102.672265,32.002872],[102.672031,32.002925],[102.671796,32.002977],[102.671784,32.00298],[102.671587,32.003009],[102.671308,32.003104],[102.671022,32.00336],[102.670975,32.003568],[102.670992,32.003729],[102.671053,32.003925],[102.671125,32.004159],[102.671171,32.004306],[102.671284,32.004621],[102.671308,32.004776],[102.671236,32.004907],[102.671141,32.005073],[102.671064,32.00524],[102.671033,32.005277],[102.670844,32.005508],[102.670683,32.005752],[102.670661,32.005808],[102.670591,32.00599],[102.670499,32.006227],[102.670415,32.006567],[102.670338,32.006784],[102.670261,32.007001],[102.670112,32.007254],[102.669963,32.007506],[102.669832,32.007703],[102.669672,32.007798],[102.66941,32.007932],[102.669148,32.008065],[102.669113,32.008083],[102.668976,32.008191],[102.668973,32.008215],[102.668958,32.008327],[102.668982,32.008434],[102.669035,32.008589],[102.669046,32.008637],[102.669071,32.008744],[102.669089,32.008892],[102.669136,32.009053],[102.669214,32.00919],[102.669386,32.009351],[102.669559,32.009511],[102.669752,32.009856],[102.669945,32.010201],[102.670094,32.010412],[102.670243,32.010624],[102.670326,32.010689],[102.670451,32.010743],[102.670473,32.010749],[102.670869,32.010859],[102.671028,32.010903],[102.671168,32.010983],[102.671236,32.011022],[102.671563,32.011302],[102.671754,32.011453],[102.671944,32.011605],[102.672063,32.011685],[102.672164,32.011754],[102.672462,32.011908],[102.672729,32.012164],[102.67278,32.012213],[102.672914,32.012343],[102.673057,32.012515],[102.673092,32.012646],[102.673106,32.012724],[102.673122,32.012813],[102.673211,32.012961],[102.673354,32.013167],[102.673425,32.013415],[102.673491,32.013552],[102.673516,32.013605],[102.67358,32.01369],[102.673673,32.013813],[102.673706,32.013857],[102.673816,32.01399],[102.674011,32.014109],[102.674073,32.014157],[102.674077,32.014228],[102.674073,32.014333],[102.674038,32.014456],[102.674025,32.0145],[102.673973,32.014609],[102.673968,32.014757],[102.673958,32.014918],[102.673916,32.015109],[102.673868,32.015209],[102.673836,32.015301],[102.673811,32.015375],[102.673868,32.015689],[102.673849,32.015861],[102.673839,32.016132],[102.673839,32.016312],[102.673839,32.016384],[102.673915,32.016695],[102.673944,32.016813],[102.673996,32.017046],[102.674009,32.017109],[102.674092,32.017536],[102.674151,32.017895],[102.674211,32.018254],[102.674234,32.018535],[102.674196,32.018764],[102.674125,32.018945],[102.674123,32.018958],[102.674101,32.019159],[102.67412,32.019306],[102.674215,32.019458],[102.674401,32.019749],[102.674501,32.019953],[102.674539,32.020063],[102.674582,32.020187],[102.674636,32.020406],[102.674644,32.020439],[102.674625,32.020696],[102.674587,32.020896],[102.674604,32.021106],[102.674606,32.021129],[102.674632,32.021353],[102.674634,32.021368],[102.674658,32.021576],[102.674701,32.021881],[102.67471,32.022085],[102.674691,32.02229],[102.674644,32.022576],[102.674644,32.02278],[102.674682,32.022999],[102.674698,32.023062],[102.674777,32.023361],[102.674796,32.023508],[102.674789,32.0237],[102.674786,32.023775],[102.674677,32.024108],[102.674644,32.024355],[102.674639,32.024589],[102.674601,32.024755],[102.674544,32.024874],[102.674265,32.02512],[102.673891,32.025317],[102.673792,32.025369],[102.673571,32.025446],[102.673351,32.025522],[102.67334,32.025526],[102.673021,32.025636],[102.672726,32.025816],[102.672359,32.025926],[102.671993,32.026035],[102.671631,32.026173],[102.671296,32.02643],[102.671265,32.026454],[102.671079,32.026545],[102.670851,32.026659],[102.670568,32.026813],[102.670284,32.026968],[102.670047,32.027106],[102.669882,32.02738],[102.669804,32.027511],[102.669667,32.027902],[102.669657,32.027948],[102.669589,32.028259],[102.669639,32.028495],[102.66976,32.028666],[102.669924,32.028841],[102.670088,32.029016],[102.67026,32.029159],[102.670481,32.029337],[102.670602,32.029701],[102.670738,32.029915],[102.670888,32.030115],[102.670995,32.030265],[102.671022,32.030333],[102.671109,32.030551],[102.671159,32.030693],[102.67138,32.030875],[102.671602,32.031057],[102.671877,32.031264],[102.672151,32.031471],[102.672176,32.031499],[102.672395,32.031741],[102.672428,32.031778],[102.67268,32.032057],[102.672837,32.032232],[102.672994,32.032407],[102.673029,32.03242],[102.673379,32.032556],[102.673686,32.032671],[102.673886,32.032799],[102.673906,32.032832],[102.674036,32.033042],[102.67405,32.033137],[102.674072,32.033277],[102.67405,32.03367],[102.673953,32.033997],[102.673907,32.034148],[102.67379,32.034496],[102.673722,32.034698],[102.673658,32.034905],[102.673693,32.035105],[102.673702,32.035114],[102.6738,32.035219],[102.673922,32.035298],[102.674022,32.035462],[102.67405,32.035655],[102.674036,32.035883],[102.67392,32.036165],[102.673805,32.036447],[102.673766,32.036542],[102.67371,32.036679],[102.673615,32.036911],[102.673527,32.037131],[102.673465,32.037289],[102.673212,32.037566],[102.673158,32.037625],[102.672894,32.037967],[102.672772,32.038189],[102.672694,32.038421],[102.672615,32.038653],[102.672423,32.038988],[102.672291,32.039181],[102.672159,32.039374],[102.67215,32.039387],[102.671976,32.039641],[102.671802,32.039895],[102.671752,32.04013],[102.671652,32.040344],[102.67153,32.04043],[102.67142,32.040487],[102.671266,32.040566],[102.671007,32.040717],[102.670924,32.040766],[102.670595,32.041008],[102.670481,32.041094],[102.670438,32.041201],[102.670424,32.041494],[102.67041,32.041786],[102.670353,32.042215],[102.670346,32.04224],[102.67034,32.042263],[102.670243,32.042646],[102.670146,32.043028],[102.670074,32.043207],[102.670003,32.043307],[102.669839,32.043343],[102.669739,32.043347],[102.669532,32.043357],[102.669367,32.043357],[102.669096,32.043303],[102.668825,32.04325],[102.668554,32.043207],[102.668282,32.043164],[102.667933,32.04315],[102.667669,32.043143],[102.667577,32.043164],[102.667483,32.043186],[102.667269,32.043278],[102.667019,32.043321],[102.666669,32.043271],[102.666369,32.04325],[102.666237,32.04325],[102.666091,32.04325],[102.666017,32.043296],[102.665698,32.043492],[102.665394,32.043779],[102.665191,32.043971],[102.664949,32.044106],[102.664763,32.044256],[102.664556,32.044328],[102.664378,32.04442],[102.664256,32.04452],[102.664064,32.04471],[102.663871,32.044899],[102.663849,32.04492],[102.663585,32.045091],[102.663278,32.045199],[102.663064,32.045234],[102.662814,32.045234]]]]},"properties":{"cp":[102.49877817263959,32.16081640345188],"code":"513233101","name":"刷经寺镇","level":"street","center":[102.49877817263959,32.16081640345188],"fullCode":"513233101000","fullName":"四川省阿坝藏族羌族自治州红原县刷经寺镇","acreageMu":1479646.49,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.661,31.9177]}},{"id":"513233103","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.190465,32.696137],[102.190648,32.695897],[102.1908,32.695656],[102.19099,32.695463],[102.19118,32.69527],[102.19137,32.695077],[102.19156,32.694884],[102.191781,32.694532],[102.191877,32.694281],[102.191973,32.694031],[102.192053,32.693751],[102.192132,32.69347],[102.192144,32.693222],[102.192157,32.692973],[102.192157,32.692964],[102.192169,32.692725],[102.192181,32.692476],[102.192193,32.692228],[102.192206,32.691979],[102.192218,32.691731],[102.19223,32.691482],[102.192191,32.691051],[102.192169,32.690812],[102.192152,32.690619],[102.192166,32.690348],[102.192167,32.690321],[102.192174,32.690188],[102.192196,32.689758],[102.192219,32.689328],[102.192241,32.688898],[102.192293,32.688642],[102.192345,32.688386],[102.192398,32.68813],[102.19245,32.687874],[102.192502,32.687618],[102.192555,32.687361],[102.192607,32.687105],[102.192611,32.687088],[102.192659,32.686849],[102.192712,32.686593],[102.192738,32.686466],[102.192764,32.686337],[102.192816,32.686081],[102.192854,32.685898],[102.192865,32.685841],[102.192869,32.685825],[102.192956,32.685578],[102.193042,32.685331],[102.193129,32.685084],[102.193216,32.684837],[102.193303,32.684591],[102.193325,32.684528],[102.19339,32.684344],[102.193425,32.684243],[102.193477,32.684097],[102.193564,32.68385],[102.193677,32.683607],[102.19379,32.683365],[102.193903,32.683122],[102.194017,32.68288],[102.19413,32.682637],[102.194243,32.682395],[102.194356,32.682152],[102.194379,32.682104],[102.194469,32.68191],[102.194548,32.681812],[102.19475,32.681561],[102.19503,32.681212],[102.195311,32.680863],[102.195591,32.680514],[102.195872,32.680165],[102.196009,32.680089],[102.196105,32.680037],[102.19628,32.67994],[102.196299,32.679929],[102.196337,32.679909],[102.196684,32.679795],[102.196763,32.679769],[102.197011,32.67973],[102.197093,32.679718],[102.197258,32.679692],[102.197259,32.679692],[102.197259,32.679692],[102.197279,32.679689],[102.197452,32.679664],[102.197612,32.679641],[102.197877,32.679609],[102.198142,32.679578],[102.198406,32.679547],[102.198664,32.679516],[102.198671,32.679515],[102.198685,32.679506],[102.198713,32.679487],[102.198745,32.679465],[102.198883,32.67937],[102.198924,32.679343],[102.199142,32.679109],[102.199221,32.678815],[102.199234,32.678399],[102.199224,32.678146],[102.199215,32.677893],[102.199152,32.677639],[102.19909,32.677386],[102.199091,32.677363],[102.199095,32.677215],[102.199098,32.677109],[102.199101,32.677035],[102.199101,32.677032],[102.199101,32.67703],[102.199215,32.676735],[102.199399,32.676502],[102.199687,32.6763],[102.19992,32.676142],[102.200154,32.675984],[102.200387,32.67584],[102.20062,32.675697],[102.200818,32.675553],[102.201016,32.675409],[102.201234,32.675206],[102.201398,32.675016],[102.201562,32.674826],[102.20182,32.674485],[102.202077,32.674145],[102.202335,32.673804],[102.202507,32.673576],[102.202515,32.673565],[102.202592,32.673463],[102.20266,32.673267],[102.202669,32.673238],[102.202747,32.673013],[102.202812,32.672825],[102.202824,32.672788],[102.202902,32.672563],[102.202979,32.672339],[102.203057,32.672114],[102.203134,32.671889],[102.20316,32.671815],[102.203161,32.67181],[102.203212,32.671664],[102.20335,32.67147],[102.203487,32.671277],[102.203625,32.671083],[102.203763,32.670889],[102.203901,32.670696],[102.204039,32.670502],[102.204111,32.6704],[102.204138,32.670363],[102.204177,32.670308],[102.204231,32.670233],[102.204315,32.670115],[102.204444,32.669924],[102.204486,32.669863],[102.204506,32.669832],[102.204573,32.669734],[102.204793,32.669471],[102.205023,32.669409],[102.205253,32.669348],[102.205483,32.669286],[102.205672,32.669235],[102.20569,32.669231],[102.205714,32.669224],[102.205744,32.669228],[102.20576,32.66923],[102.20603,32.669262],[102.206203,32.669354],[102.206408,32.669537],[102.206543,32.669733],[102.206678,32.66993],[102.20683,32.670141],[102.206982,32.670353],[102.207169,32.67055],[102.207357,32.670746],[102.207711,32.670927],[102.208064,32.671107],[102.208343,32.671202],[102.208621,32.671298],[102.208864,32.671407],[102.208992,32.671465],[102.20903,32.671481],[102.209107,32.671516],[102.209135,32.671534],[102.209452,32.671732],[102.209688,32.672064],[102.209853,32.672425],[102.209915,32.672708],[102.209976,32.672992],[102.210126,32.673263],[102.210276,32.673533],[102.210445,32.673745],[102.210615,32.673957],[102.210922,32.674231],[102.211266,32.674476],[102.211474,32.674585],[102.211682,32.674693],[102.212066,32.674791],[102.212451,32.674859],[102.212838,32.674853],[102.213225,32.674847],[102.213507,32.674823],[102.21372,32.674768],[102.213953,32.674677],[102.214006,32.674656],[102.214063,32.674633],[102.214156,32.674596],[102.214284,32.674546],[102.21429,32.674544],[102.214507,32.674371],[102.214653,32.674225],[102.214958,32.673909],[102.215263,32.673592],[102.215488,32.67336],[102.215569,32.673276],[102.215802,32.672945],[102.216035,32.672613],[102.216268,32.672281],[102.216467,32.672093],[102.216667,32.671904],[102.216899,32.67182],[102.216997,32.671784],[102.217086,32.671753],[102.217131,32.671736],[102.217178,32.671737],[102.217235,32.671739],[102.217301,32.671754],[102.217375,32.671771],[102.217514,32.671834],[102.217753,32.672047],[102.217906,32.672214],[102.218059,32.67238],[102.218212,32.672547],[102.218366,32.672714],[102.218536,32.672881],[102.218707,32.673048],[102.219019,32.673204],[102.219298,32.6733],[102.219578,32.673305],[102.219826,32.673266],[102.220074,32.673227],[102.220141,32.673191],[102.22016,32.673182],[102.220181,32.67317],[102.220367,32.673059],[102.220385,32.673048],[102.2204,32.673039],[102.220437,32.673017],[102.220468,32.672998],[102.220519,32.672952],[102.220638,32.672845],[102.220808,32.672691],[102.220978,32.672537],[102.221148,32.672383],[102.221318,32.67223],[102.221488,32.672076],[102.221658,32.671922],[102.22173,32.671857],[102.221811,32.671785],[102.221829,32.671769],[102.221914,32.671691],[102.221999,32.671615],[102.222169,32.671461],[102.222365,32.671276],[102.22256,32.67109],[102.222756,32.670904],[102.222924,32.670745],[102.222927,32.670742],[102.222952,32.670718],[102.223007,32.670666],[102.223012,32.670661],[102.223019,32.670655],[102.223148,32.670533],[102.223344,32.670347],[102.223539,32.670161],[102.223634,32.670072],[102.223638,32.670068],[102.223735,32.669975],[102.223931,32.66979],[102.223967,32.669756],[102.224127,32.669604],[102.224268,32.669406],[102.224409,32.669208],[102.22455,32.66901],[102.2246,32.668939],[102.22469,32.668811],[102.224787,32.668676],[102.224787,32.668676],[102.224831,32.668613],[102.224846,32.668592],[102.224847,32.668592],[102.224937,32.668465],[102.224972,32.668415],[102.225113,32.668217],[102.225254,32.668019],[102.225314,32.667935],[102.225385,32.667834],[102.225395,32.667821],[102.225455,32.667736],[102.225536,32.667623],[102.225677,32.667425],[102.225818,32.667226],[102.225959,32.667028],[102.226067,32.666876],[102.2261,32.66683],[102.226226,32.666786],[102.226476,32.666699],[102.226727,32.666611],[102.226977,32.666524],[102.227017,32.66651],[102.227019,32.666509],[102.227021,32.666508],[102.227131,32.66647],[102.227131,32.66647],[102.227227,32.666437],[102.227275,32.66642],[102.227478,32.666349],[102.227728,32.666262],[102.227959,32.66615],[102.228191,32.666038],[102.228422,32.665926],[102.228474,32.665901],[102.228622,32.665829],[102.228653,32.665814],[102.228885,32.665702],[102.229116,32.66559],[102.229347,32.665478],[102.229482,32.665413],[102.229578,32.665367],[102.22961,32.665345],[102.229931,32.665124],[102.230283,32.664881],[102.230636,32.664639],[102.230988,32.664396],[102.231336,32.664118],[102.231684,32.66384],[102.23187,32.66367],[102.232056,32.663501],[102.232307,32.663241],[102.232557,32.662981],[102.232708,32.662785],[102.232859,32.662589],[102.233011,32.662393],[102.233162,32.662197],[102.23326,32.661956],[102.233358,32.661715],[102.233456,32.661474],[102.233554,32.661233],[102.233652,32.660993],[102.23375,32.660752],[102.233827,32.660589],[102.233978,32.66041],[102.234128,32.660249],[102.234275,32.660191],[102.234689,32.660097],[102.234697,32.660097],[102.235077,32.660086],[102.235319,32.660101],[102.23556,32.660116],[102.235971,32.660146],[102.236211,32.660182],[102.236451,32.660218],[102.236738,32.660326],[102.237123,32.660437],[102.237431,32.660669],[102.237598,32.660795],[102.237738,32.6609],[102.237937,32.66112],[102.237992,32.661181],[102.238135,32.661339],[102.238299,32.661516],[102.238463,32.661693],[102.238518,32.661757],[102.238627,32.661881],[102.239059,32.661973],[102.239196,32.661976],[102.239375,32.661979],[102.239691,32.661935],[102.240007,32.661891],[102.240235,32.661548],[102.240375,32.661337],[102.240514,32.661126],[102.240653,32.660934],[102.240791,32.660743],[102.241041,32.660504],[102.241317,32.660223],[102.241564,32.660005],[102.24186,32.659846],[102.242227,32.659742],[102.242593,32.659638],[102.242907,32.659624],[102.243293,32.659674],[102.243703,32.659714],[102.244113,32.659754],[102.244367,32.659735],[102.244621,32.659716],[102.244875,32.659697],[102.245128,32.659678],[102.245382,32.659659],[102.245636,32.65964],[102.24589,32.659621],[102.246143,32.659603],[102.246397,32.659584],[102.246651,32.659565],[102.24691,32.659526],[102.247169,32.659487],[102.247294,32.659469],[102.247429,32.659449],[102.247688,32.65941],[102.247947,32.659371],[102.248207,32.659333],[102.248448,32.659348],[102.24869,32.659363],[102.248931,32.659389],[102.248993,32.659396],[102.249158,32.659414],[102.249171,32.659415],[102.249244,32.659443],[102.24927,32.659452],[102.249338,32.659478],[102.24944,32.659516],[102.249459,32.659523],[102.249744,32.659714],[102.249932,32.659882],[102.250121,32.660049],[102.250455,32.660219],[102.250887,32.660331],[102.251174,32.660321],[102.251226,32.660319],[102.251493,32.660263],[102.251551,32.660248],[102.251667,32.660218],[102.25175,32.660197],[102.252006,32.660131],[102.252282,32.659791],[102.252283,32.65979],[102.252283,32.65979],[102.252283,32.65979],[102.252303,32.659765],[102.252484,32.659539],[102.252559,32.659444],[102.252684,32.659288],[102.252692,32.659281],[102.252871,32.659129],[102.253058,32.658969],[102.253381,32.65869],[102.253626,32.658573],[102.253872,32.658456],[102.254117,32.658379],[102.254458,32.658345],[102.254771,32.658352],[102.255058,32.65846],[102.255273,32.658567],[102.255487,32.658674],[102.255846,32.658805],[102.256085,32.658892],[102.256317,32.658836],[102.256323,32.658834],[102.256374,32.658822],[102.256425,32.658809],[102.256549,32.658779],[102.256768,32.658723],[102.257032,32.658475],[102.257189,32.658328],[102.257296,32.658228],[102.257424,32.657985],[102.257503,32.657772],[102.257582,32.657559],[102.257618,32.657298],[102.257655,32.657036],[102.257691,32.656775],[102.257727,32.656513],[102.257764,32.656252],[102.2578,32.65599],[102.257849,32.655552],[102.257899,32.655113],[102.257979,32.654859],[102.25806,32.654606],[102.25814,32.654352],[102.258221,32.654099],[102.258374,32.653836],[102.258552,32.653554],[102.258801,32.653284],[102.25905,32.653013],[102.259234,32.652841],[102.259418,32.652669],[102.259601,32.652496],[102.259785,32.652324],[102.259969,32.652152],[102.260152,32.65198],[102.260353,32.651791],[102.260553,32.651601],[102.260739,32.651432],[102.260925,32.651262],[102.261238,32.650941],[102.261454,32.650719],[102.26155,32.65062],[102.261753,32.650319],[102.261801,32.650206],[102.261883,32.650015],[102.26194,32.64973],[102.261944,32.649587],[102.261947,32.649481],[102.261955,32.649232],[102.261962,32.648983],[102.26197,32.648734],[102.261978,32.648485],[102.261985,32.648236],[102.261993,32.647987],[102.262,32.647738],[102.262008,32.647489],[102.262015,32.64724],[102.262055,32.646812],[102.262095,32.646383],[102.262135,32.645954],[102.262174,32.645526],[102.262245,32.645271],[102.262315,32.645017],[102.262385,32.644762],[102.262455,32.644508],[102.262542,32.644276],[102.262629,32.644045],[102.262717,32.643813],[102.262804,32.643582],[102.263076,32.643257],[102.263347,32.642931],[102.263619,32.642606],[102.263926,32.642291],[102.264233,32.641976],[102.26447,32.641733],[102.26454,32.641661],[102.2647,32.641484],[102.264859,32.641307],[102.265019,32.64113],[102.265179,32.640952],[102.265338,32.640775],[102.265498,32.640598],[102.265542,32.640501],[102.265594,32.640386],[102.26569,32.640174],[102.265786,32.639962],[102.265881,32.63975],[102.265977,32.639538],[102.266073,32.639326],[102.266169,32.639114],[102.266265,32.638902],[102.266267,32.638842],[102.266302,32.638571],[102.266336,32.638301],[102.266371,32.638031],[102.266406,32.63776],[102.266485,32.637506],[102.266565,32.637251],[102.266788,32.636956],[102.266974,32.636689],[102.267087,32.63651],[102.267252,32.636348],[102.267417,32.636185],[102.267532,32.635948],[102.267683,32.635649],[102.267797,32.635441],[102.267879,32.635082],[102.267873,32.634841],[102.267867,32.634599],[102.267861,32.634358],[102.267855,32.634117],[102.267849,32.633876],[102.267846,32.633787],[102.267842,32.633635],[102.267836,32.633394],[102.26783,32.633153],[102.267787,32.632919],[102.267743,32.632685],[102.267699,32.632451],[102.267656,32.632217],[102.267612,32.631983],[102.267568,32.63175],[102.267525,32.631516],[102.267481,32.631282],[102.267437,32.631048],[102.267394,32.630814],[102.26735,32.63058],[102.267306,32.630346],[102.267236,32.630082],[102.267166,32.629819],[102.267095,32.629555],[102.267025,32.629292],[102.266955,32.629028],[102.266884,32.628764],[102.266814,32.628501],[102.266744,32.628237],[102.266673,32.627974],[102.266603,32.62771],[102.266504,32.627479],[102.266406,32.627248],[102.266307,32.627017],[102.266208,32.626786],[102.266109,32.626555],[102.266011,32.626324],[102.265912,32.626092],[102.265813,32.625861],[102.265715,32.62563],[102.265616,32.625399],[102.26548,32.625119],[102.26536,32.624869],[102.265239,32.62462],[102.265119,32.624371],[102.264998,32.624122],[102.264878,32.623873],[102.264757,32.623624],[102.264637,32.623375],[102.264516,32.623126],[102.264415,32.622702],[102.264411,32.6225],[102.264407,32.622298],[102.264416,32.622023],[102.264455,32.621787],[102.264495,32.62155],[102.264534,32.621314],[102.264574,32.621078],[102.264613,32.620841],[102.264653,32.620605],[102.264722,32.620354],[102.264792,32.620103],[102.264862,32.619851],[102.264932,32.6196],[102.265002,32.619349],[102.265072,32.619098],[102.265142,32.618847],[102.265212,32.618596],[102.265291,32.618346],[102.26537,32.618097],[102.265449,32.61785],[102.26545,32.617848],[102.265529,32.617599],[102.265599,32.617382],[102.265609,32.61735],[102.265688,32.617101],[102.265768,32.616852],[102.265847,32.616603],[102.265927,32.616353],[102.265969,32.616219],[102.266006,32.616104],[102.266065,32.61592],[102.266086,32.615855],[102.266165,32.615606],[102.266225,32.615369],[102.266285,32.615132],[102.266345,32.614895],[102.266405,32.614658],[102.266413,32.614375],[102.266422,32.614092],[102.266449,32.613882],[102.266515,32.613725],[102.26657,32.613593],[102.26671,32.61341],[102.266851,32.613227],[102.267085,32.612876],[102.267319,32.612525],[102.267553,32.612175],[102.267591,32.61211],[102.267694,32.611935],[102.267817,32.611663],[102.267844,32.611388],[102.267858,32.610968],[102.267849,32.610612],[102.267839,32.610256],[102.267782,32.610022],[102.267725,32.609788],[102.267668,32.609554],[102.267611,32.609321],[102.267554,32.609087],[102.267497,32.608853],[102.26744,32.608619],[102.267383,32.608385],[102.267347,32.608239],[102.267341,32.608213],[102.267326,32.608151],[102.267269,32.607917],[102.26721,32.607683],[102.267176,32.607548],[102.267151,32.607448],[102.267092,32.607214],[102.267078,32.607156],[102.267068,32.607116],[102.267051,32.607047],[102.267034,32.606979],[102.266876,32.60665],[102.266719,32.606321],[102.26651,32.605944],[102.266282,32.605558],[102.266053,32.605171],[102.265759,32.604878],[102.265747,32.604865],[102.26544,32.604559],[102.265134,32.604253],[102.264827,32.603947],[102.264652,32.603784],[102.264478,32.60362],[102.264303,32.603457],[102.264129,32.603294],[102.263954,32.603131],[102.263779,32.602968],[102.263605,32.602805],[102.26343,32.602642],[102.263256,32.602479],[102.263081,32.602316],[102.262907,32.602152],[102.262732,32.601989],[102.262557,32.601826],[102.262383,32.601663],[102.262203,32.601518],[102.262105,32.601439],[102.262024,32.601374],[102.261845,32.601229],[102.261665,32.601084],[102.261486,32.60094],[102.261447,32.600908],[102.261413,32.600881],[102.261306,32.600795],[102.261127,32.60065],[102.260948,32.600505],[102.260768,32.600361],[102.260589,32.600216],[102.260433,32.600037],[102.260277,32.599859],[102.260122,32.59968],[102.259966,32.599501],[102.25981,32.599323],[102.259654,32.599144],[102.259499,32.598965],[102.259343,32.598787],[102.259187,32.598608],[102.259031,32.598429],[102.259009,32.598404],[102.258875,32.598251],[102.258869,32.598243],[102.258838,32.598207],[102.25872,32.598072],[102.258552,32.597914],[102.258385,32.597757],[102.258266,32.597552],[102.258147,32.597347],[102.258065,32.596958],[102.258045,32.59669],[102.258027,32.596454],[102.258025,32.596424],[102.258025,32.596423],[102.258026,32.596418],[102.258047,32.596314],[102.25805,32.596301],[102.258054,32.596284],[102.258077,32.596171],[102.25813,32.595918],[102.258182,32.595666],[102.258235,32.595413],[102.258287,32.595161],[102.25834,32.594908],[102.258461,32.59448],[102.258582,32.594051],[102.258704,32.593623],[102.258808,32.593407],[102.258913,32.593191],[102.259017,32.592974],[102.259046,32.592916],[102.259122,32.592758],[102.259226,32.592542],[102.259331,32.592326],[102.259435,32.59211],[102.25954,32.591894],[102.259644,32.591678],[102.259749,32.591462],[102.259894,32.591109],[102.259904,32.59109],[102.260057,32.590806],[102.260157,32.590662],[102.260317,32.590424],[102.260466,32.590248],[102.260615,32.590073],[102.260775,32.589866],[102.260993,32.589596],[102.261173,32.589373],[102.261314,32.589134],[102.261458,32.588829],[102.261544,32.588507],[102.261591,32.5882],[102.261618,32.587934],[102.261646,32.587667],[102.261674,32.587401],[102.261702,32.587135],[102.261665,32.586895],[102.261629,32.586656],[102.261593,32.586417],[102.261557,32.586177],[102.261478,32.585957],[102.261398,32.585737],[102.261319,32.585517],[102.261239,32.585297],[102.261117,32.584922],[102.261069,32.584613],[102.261078,32.58429],[102.261106,32.583999],[102.261134,32.583773],[102.261137,32.583643],[102.261177,32.583451],[102.261181,32.583434],[102.261225,32.58329],[102.261305,32.58313],[102.261506,32.582827],[102.261648,32.582571],[102.261828,32.582316],[102.261969,32.582076],[102.262076,32.581739],[102.262165,32.581336],[102.262254,32.580934],[102.262343,32.580532],[102.26239,32.580089],[102.262438,32.579647],[102.262486,32.579205],[102.262534,32.578762],[102.262581,32.57832],[102.262596,32.578248],[102.262631,32.578083],[102.26268,32.577847],[102.26273,32.57761],[102.26278,32.577374],[102.262829,32.577137],[102.262879,32.5769],[102.262928,32.576664],[102.262978,32.576427],[102.263027,32.57619],[102.263077,32.575954],[102.263101,32.575825],[102.263176,32.575543],[102.263252,32.575262],[102.263436,32.574876],[102.263637,32.574565],[102.263838,32.574254],[102.264017,32.574016],[102.264361,32.57374],[102.264704,32.573464],[102.264939,32.573316],[102.265173,32.573167],[102.265407,32.573018],[102.265641,32.572869],[102.265875,32.572721],[102.26611,32.572572],[102.266339,32.572427],[102.266568,32.572283],[102.266797,32.572138],[102.267026,32.571993],[102.267255,32.571848],[102.267484,32.571703],[102.267693,32.571619],[102.267901,32.571534],[102.268109,32.57145],[102.268318,32.571365],[102.26865,32.571178],[102.26894,32.571039],[102.269163,32.570939],[102.269387,32.570838],[102.269621,32.57069],[102.269855,32.570541],[102.270089,32.570393],[102.270323,32.570245],[102.270501,32.570083],[102.270678,32.569921],[102.270855,32.569759],[102.271033,32.569597],[102.27121,32.569435],[102.271388,32.569273],[102.271565,32.569111],[102.271743,32.568948],[102.271928,32.568801],[102.272112,32.568653],[102.272297,32.568506],[102.272482,32.568358],[102.272666,32.56821],[102.272851,32.568063],[102.273036,32.567915],[102.273221,32.567768],[102.273431,32.567594],[102.273642,32.567421],[102.273853,32.567247],[102.274064,32.567074],[102.274226,32.566904],[102.274388,32.566735],[102.274551,32.566565],[102.274713,32.566395],[102.274875,32.566226],[102.275037,32.566056],[102.275199,32.565886],[102.275362,32.565716],[102.275524,32.565547],[102.275686,32.565377],[102.275851,32.565215],[102.276016,32.565052],[102.276181,32.56489],[102.276346,32.564728],[102.276511,32.564565],[102.276676,32.564403],[102.276842,32.564241],[102.277007,32.564078],[102.277216,32.563916],[102.277425,32.563753],[102.277634,32.56359],[102.277843,32.563427],[102.278052,32.563264],[102.278261,32.563102],[102.278454,32.562973],[102.278647,32.562845],[102.278839,32.562717],[102.279032,32.562589],[102.279225,32.562461],[102.279417,32.562333],[102.279681,32.562161],[102.279944,32.561989],[102.280204,32.561622],[102.280326,32.561398],[102.280469,32.561125],[102.280572,32.560853],[102.280638,32.560564],[102.280704,32.560306],[102.280732,32.559967],[102.280743,32.559626],[102.280735,32.559354],[102.280734,32.559302],[102.28066,32.559042],[102.280587,32.558782],[102.280513,32.558521],[102.28044,32.558261],[102.280329,32.558042],[102.280317,32.558018],[102.280218,32.557823],[102.280107,32.557604],[102.279996,32.557385],[102.279885,32.557166],[102.279774,32.556947],[102.279663,32.556729],[102.279553,32.55651],[102.279485,32.556233],[102.279419,32.555891],[102.279425,32.555666],[102.279491,32.555408],[102.279593,32.555151],[102.279795,32.554799],[102.279918,32.554559],[102.28004,32.554383],[102.280276,32.554146],[102.280501,32.554005],[102.280726,32.553863],[102.280951,32.553722],[102.281177,32.55358],[102.281402,32.553439],[102.281627,32.553297],[102.281853,32.553156],[102.282078,32.553014],[102.282303,32.552873],[102.282528,32.552731],[102.282754,32.55259],[102.282979,32.552448],[102.283204,32.552307],[102.283348,32.552217],[102.28343,32.552165],[102.283677,32.552057],[102.283839,32.551986],[102.283924,32.551949],[102.283953,32.551937],[102.284171,32.551841],[102.284418,32.551733],[102.284666,32.551625],[102.284913,32.551517],[102.28516,32.55141],[102.285407,32.551302],[102.285756,32.551163],[102.286105,32.551025],[102.286453,32.550887],[102.286742,32.550829],[102.28703,32.55077],[102.287376,32.550753],[102.287721,32.550736],[102.287962,32.550693],[102.288203,32.550649],[102.2884,32.550609],[102.288978,32.55096],[102.289086,32.551026],[102.289096,32.551032],[102.289111,32.551039],[102.289115,32.551044],[102.289186,32.551087],[102.290274,32.551748],[102.292411,32.552783],[102.292504,32.552828],[102.29276,32.552991],[102.293699,32.553591],[102.294988,32.554134],[102.296448,32.554755],[102.298365,32.554649],[102.300189,32.554762],[102.301324,32.554639],[102.302104,32.554729],[102.302954,32.555411],[102.304401,32.556473],[102.306281,32.557619],[102.307993,32.55854],[102.309784,32.559757],[102.310799,32.560737],[102.312079,32.561575],[102.314074,32.561765],[102.31669,32.5616],[102.318094,32.561187],[102.319668,32.560926],[102.321407,32.560963],[102.322418,32.560466],[102.322485,32.560433],[102.322555,32.560398],[102.322969,32.560219],[102.323031,32.560192],[102.323525,32.559977],[102.323552,32.559976],[102.323697,32.559917],[102.323706,32.559915],[102.32385,32.559884],[102.323856,32.559882],[102.324016,32.559867],[102.32406,32.559863],[102.324067,32.559862],[102.324288,32.559863],[102.324574,32.559872],[102.324613,32.559874],[102.324932,32.559491],[102.325323,32.558026],[102.326171,32.555833],[102.326524,32.555242],[102.32676,32.554848],[102.326793,32.554865],[102.326831,32.554874],[102.326996,32.554451],[102.327033,32.554427],[102.327067,32.554405],[102.328045,32.553776],[102.328214,32.553667],[102.32853,32.553583],[102.328755,32.553524],[102.328977,32.553487],[102.329052,32.553474],[102.329113,32.553464],[102.33093,32.553798],[102.331867,32.553762],[102.332677,32.55284],[102.333546,32.55214],[102.334344,32.551659],[102.336023,32.552248],[102.33634,32.552322],[102.336358,32.552326],[102.336378,32.552331],[102.336436,32.552345],[102.33656,32.552374],[102.336584,32.552379],[102.336695,32.552405],[102.336849,32.552441],[102.337578,32.552612],[102.337747,32.552734],[102.338165,32.553037],[102.338258,32.553062],[102.338364,32.553181],[102.338472,32.553259],[102.33851,32.553287],[102.3386,32.553352],[102.33868,32.553364],[102.340021,32.553555],[102.34042,32.553612],[102.340496,32.553624],[102.340656,32.553649],[102.340686,32.553653],[102.340766,32.553666],[102.341371,32.55376],[102.343833,32.554143],[102.344319,32.554218],[102.345357,32.55438],[102.345758,32.554485],[102.345826,32.554502],[102.345829,32.554503],[102.34583,32.554504],[102.345877,32.554516],[102.346591,32.554702],[102.346649,32.554718],[102.346683,32.554727],[102.346714,32.554735],[102.346736,32.55474],[102.346762,32.554785],[102.346801,32.554847],[102.34683,32.554943],[102.346816,32.55505],[102.349894,32.555709],[102.349823,32.555859],[102.349919,32.55586],[102.349923,32.55586],[102.349925,32.555861],[102.349986,32.555876],[102.349987,32.555876],[102.349991,32.555878],[102.349991,32.555878],[102.35,32.555883],[102.349989,32.555919],[102.349878,32.556201],[102.349798,32.556311],[102.349759,32.556404],[102.349703,32.55654],[102.349695,32.556553],[102.349512,32.556771],[102.349418,32.556897],[102.349318,32.557032],[102.349231,32.55715],[102.349142,32.557271],[102.349038,32.557411],[102.348932,32.557554],[102.348847,32.55767],[102.348749,32.557802],[102.348666,32.557914],[102.348583,32.558026],[102.348522,32.558109],[102.348425,32.558238],[102.348367,32.558314],[102.346041,32.561381],[102.346003,32.56141],[102.345821,32.561634],[102.345548,32.561984],[102.345343,32.562247],[102.345385,32.562283],[102.345399,32.562296],[102.345415,32.56231],[102.345486,32.562374],[102.34583,32.56268],[102.345982,32.56263],[102.34695,32.562316],[102.347883,32.561673],[102.348553,32.561079],[102.349333,32.561206],[102.349438,32.561272],[102.349447,32.561278],[102.349503,32.561313],[102.352248,32.563027],[102.354179,32.563897],[102.3566,32.564735],[102.358537,32.565397],[102.360432,32.565851],[102.361909,32.565818],[102.362341,32.565808],[102.363617,32.565669],[102.36504,32.565492],[102.366579,32.564737],[102.367625,32.564096],[102.369078,32.562925],[102.36994,32.561866],[102.370662,32.560597],[102.371375,32.559618],[102.371833,32.559007],[102.372095,32.558432],[102.371835,32.557267],[102.371419,32.55643],[102.37106,32.555345],[102.371336,32.554274],[102.371367,32.553198],[102.371143,32.552489],[102.371114,32.551825],[102.371133,32.551163],[102.370768,32.550244],[102.370621,32.548584],[102.370863,32.547015],[102.371485,32.545785],[102.371856,32.544799],[102.37271,32.54403],[102.373359,32.543588],[102.374689,32.543243],[102.37572,32.542705],[102.374962,32.542285],[102.373745,32.541235],[102.373035,32.540443],[102.372261,32.539308],[102.371856,32.538088],[102.371844,32.537249],[102.372117,32.536696],[102.372542,32.535959],[102.373334,32.535199],[102.37504,32.534551],[102.376016,32.533795],[102.376584,32.533185],[102.377136,32.531861],[102.377549,32.530254],[102.377631,32.528702],[102.377972,32.527063],[102.377871,32.525476],[102.377822,32.524668],[102.378211,32.523868],[102.379417,32.522775],[102.380539,32.522021],[102.381558,32.521017],[102.382207,32.52013],[102.382852,32.519367],[102.383332,32.51801],[102.383771,32.516776],[102.383657,32.515655],[102.383724,32.5146],[102.383698,32.512953],[102.383621,32.511833],[102.383438,32.510556],[102.383064,32.509554],[102.382738,32.508149],[102.382615,32.507307],[102.383365,32.506733],[102.385074,32.50596],[102.38572,32.505197],[102.387068,32.5042],[102.388941,32.502841],[102.390805,32.501761],[102.39145,32.500998],[102.392357,32.500053],[102.39345,32.49902],[102.394946,32.49672],[102.395597,32.495771],[102.396198,32.495255],[102.39755,32.494134],[102.398591,32.493627],[102.39955,32.493429],[102.401838,32.492886],[102.403426,32.492484],[102.404943,32.492018],[102.406641,32.491587],[102.408235,32.490968],[102.409793,32.490316],[102.410346,32.490203],[102.4104,32.490262],[102.411555,32.491533],[102.412076,32.492538],[102.412626,32.493823],[102.413291,32.494893],[102.414039,32.495654],[102.414671,32.49663],[102.415415,32.497547],[102.416129,32.498214],[102.41708,32.498295],[102.417991,32.498501],[102.418382,32.498912],[102.419134,32.499549],[102.419839,32.500527],[102.420953,32.501327],[102.421837,32.502463],[102.422733,32.503165],[102.423334,32.503954],[102.423749,32.504832],[102.424621,32.506404],[102.425108,32.507315],[102.425522,32.508224],[102.425981,32.508855],[102.426506,32.509704],[102.426945,32.509744],[102.427608,32.509634],[102.428243,32.509243],[102.429025,32.508824],[102.429867,32.508841],[102.430677,32.508733],[102.431598,32.508597],[102.432183,32.50864],[102.432931,32.509401],[102.43312,32.509575],[102.433824,32.510227],[102.433868,32.510285],[102.434672,32.511362],[102.435728,32.512906],[102.436284,32.514005],[102.436475,32.515003],[102.43655,32.516247],[102.436476,32.51755],[102.436642,32.518175],[102.437275,32.51912],[102.438334,32.520571],[102.438827,32.521264],[102.439554,32.522802],[102.440397,32.524124],[102.441493,32.525544],[102.44224,32.526367],[102.443353,32.528502],[102.443733,32.529318],[102.444486,32.529924],[102.445242,32.530436],[102.445887,32.530977],[102.446146,32.532194],[102.446018,32.534118],[102.445949,32.535266],[102.445777,32.536164],[102.445894,32.537191],[102.446332,32.538567],[102.446959,32.53973],[102.448003,32.541739],[102.448533,32.542433],[102.448991,32.543126],[102.449447,32.54385],[102.449856,32.544946],[102.450201,32.54573],[102.451184,32.547272],[102.451482,32.547123],[102.452302,32.546642],[102.453052,32.546067],[102.454127,32.545685],[102.455121,32.54555],[102.456446,32.54539],[102.457791,32.545821],[102.458958,32.546062],[102.459078,32.546094],[102.460086,32.546365],[102.463179,32.547266],[102.4643,32.547848],[102.46605,32.548225],[102.467287,32.548592],[102.468744,32.548963],[102.470299,32.54974],[102.471013,32.550438],[102.472159,32.551424],[102.473065,32.551846],[102.47367,32.55248],[102.474416,32.553365],[102.475829,32.553983],[102.476735,32.554374],[102.477734,32.554084],[102.478815,32.553484],[102.479813,32.553193],[102.480878,32.553153],[102.481977,32.553206],[102.483219,32.553417],[102.484481,32.554188],[102.485368,32.555262],[102.486081,32.555991],[102.487423,32.556546],[102.489647,32.557056],[102.491842,32.557256],[102.492686,32.557272],[102.494116,32.557301],[102.495354,32.557636],[102.496292,32.558183],[102.496792,32.55869],[102.497559,32.558799],[102.49861,32.559286],[102.499293,32.559765],[102.500186,32.560653],[102.500606,32.561157],[102.501691,32.561911],[102.502444,32.562496],[102.503587,32.562885],[102.504697,32.562744],[102.506481,32.562576],[102.507486,32.562718],[102.50877,32.563232],[102.510436,32.563876],[102.511419,32.564832],[102.512154,32.566068],[102.512405,32.566541],[102.512657,32.567015],[102.51295,32.567733],[102.513242,32.568451],[102.514165,32.571605],[102.514792,32.573286],[102.515348,32.57403],[102.515912,32.57453],[102.516473,32.574236],[102.517034,32.573942],[102.517669,32.573588],[102.518304,32.573234],[102.519256,32.572703],[102.520208,32.572172],[102.521015,32.571679],[102.521822,32.571186],[102.522416,32.570587],[102.523355,32.569669],[102.5254,32.568732],[102.526094,32.569723],[102.526843,32.570471],[102.527781,32.571344],[102.529045,32.572591],[102.530168,32.573712],[102.530854,32.574988],[102.531133,32.575374],[102.531688,32.576144],[102.532809,32.577347],[102.534077,32.578471],[102.535204,32.579471],[102.536107,32.579855],[102.537194,32.580568],[102.539476,32.581509],[102.540609,32.582305],[102.541491,32.583462],[102.541791,32.583844],[102.54218,32.584338],[102.542467,32.584703],[102.543554,32.585416],[102.544673,32.5867],[102.54536,32.587976],[102.545678,32.588996],[102.545921,32.590114],[102.545948,32.591135],[102.546462,32.592397],[102.54731,32.593434],[102.548332,32.59415],[102.549407,32.594913],[102.549878,32.595711],[102.550069,32.596782],[102.550293,32.598595],[102.550447,32.59897],[102.550905,32.600277],[102.551303,32.60177],[102.551884,32.60257],[102.552908,32.603193],[102.554367,32.603963],[102.555829,32.604595],[102.556955,32.605545],[102.557915,32.606495],[102.557927,32.607061],[102.557933,32.607364],[102.557939,32.607651],[102.559003,32.608832],[102.559016,32.609776],[102.559021,32.610177],[102.559138,32.611041],[102.559204,32.611526],[102.55848,32.612442],[102.558409,32.612531],[102.557392,32.613671],[102.556752,32.615004],[102.556441,32.61639],[102.555649,32.617302],[102.554907,32.618354],[102.554006,32.619265],[102.552711,32.620455],[102.552375,32.620764],[102.550863,32.62194],[102.550262,32.621882],[102.548618,32.62185],[102.546576,32.622367],[102.544679,32.623582],[102.543939,32.624588],[102.542642,32.625908],[102.540786,32.627635],[102.539552,32.628631],[102.537873,32.629897],[102.536416,32.631074],[102.535564,32.632125],[102.534097,32.633673],[102.53276,32.634435],[102.530926,32.635327],[102.529309,32.636316],[102.52798,32.6368],[102.527296,32.63776],[102.526438,32.639042],[102.525754,32.640003],[102.524899,32.641192],[102.523992,32.642241],[102.523307,32.643248],[102.521664,32.645164],[102.520916,32.646448],[102.520448,32.647506],[102.52031,32.648524],[102.520001,32.64977],[102.519915,32.650928],[102.519496,32.652172],[102.519503,32.653935],[102.519855,32.655056],[102.51988,32.65512],[102.520021,32.655484],[102.520043,32.65554],[102.52047,32.656645],[102.520796,32.658739],[102.521132,32.660462],[102.521262,32.661717],[102.521115,32.663059],[102.521091,32.66394],[102.521381,32.665338],[102.521565,32.66664],[102.522027,32.667118],[102.522782,32.668224],[102.523542,32.669141],[102.524245,32.670104],[102.52453,32.670541],[102.524742,32.670868],[102.525214,32.671594],[102.525301,32.672498],[102.525806,32.674549],[102.525959,32.675027],[102.526549,32.676878],[102.526578,32.676968],[102.526736,32.677462],[102.527029,32.678396],[102.5272,32.678942],[102.527282,32.679131],[102.527495,32.679618],[102.527779,32.68027],[102.527947,32.680656],[102.528097,32.681001],[102.52822,32.681302],[102.528275,32.681436],[102.528298,32.681492],[102.528939,32.683058],[102.529464,32.68435],[102.529523,32.684686],[102.529572,32.684969],[102.529755,32.686017],[102.52993,32.687429],[102.529948,32.68758],[102.529975,32.687791],[102.529975,32.687791],[102.529985,32.687872],[102.530726,32.689501],[102.530923,32.689729],[102.531977,32.690949],[102.533055,32.69229],[102.533356,32.692665],[102.533876,32.693312],[102.534739,32.69445],[102.535047,32.694857],[102.535447,32.695384],[102.535735,32.696639],[102.535783,32.696847],[102.535798,32.696909],[102.536601,32.698301],[102.535597,32.698092],[102.534147,32.697731],[102.531396,32.697772],[102.53041,32.697799],[102.529879,32.697813],[102.528949,32.697838],[102.527351,32.697882],[102.526799,32.697831],[102.526433,32.697797],[102.525392,32.697701],[102.523367,32.697851],[102.523164,32.697857],[102.523039,32.697861],[102.519425,32.697971],[102.518648,32.697995],[102.518122,32.698068],[102.517859,32.698104],[102.517796,32.698112],[102.517796,32.698113],[102.517795,32.698113],[102.517768,32.698116],[102.517738,32.698121],[102.517212,32.698193],[102.517204,32.698194],[102.517151,32.698202],[102.517149,32.698202],[102.51627,32.698323],[102.516141,32.698341],[102.515943,32.698368],[102.515786,32.698361],[102.515777,32.69836],[102.515754,32.698359],[102.515608,32.698352],[102.515484,32.698346],[102.515438,32.698344],[102.515414,32.698343],[102.514305,32.69829],[102.514262,32.698288],[102.513131,32.69821],[102.512285,32.698152],[102.511348,32.698088],[102.511166,32.698065],[102.509502,32.697861],[102.509215,32.697769],[102.507934,32.69736],[102.507444,32.697203],[102.506688,32.696966],[102.50583,32.696696],[102.505234,32.696437],[102.503889,32.695851],[102.500492,32.69406],[102.500386,32.693993],[102.500211,32.693882],[102.499525,32.693627],[102.499003,32.69334],[102.497618,32.693278],[102.497331,32.693371],[102.496712,32.693571],[102.496321,32.69363],[102.495114,32.693815],[102.493923,32.694136],[102.492317,32.694655],[102.491319,32.695325],[102.49061,32.695897],[102.490429,32.696549],[102.490532,32.698391],[102.49058,32.698415],[102.490842,32.699282],[102.490906,32.699904],[102.491016,32.701804],[102.491064,32.702137],[102.49109,32.702322],[102.491104,32.702415],[102.491175,32.702907],[102.491183,32.702962],[102.491255,32.703464],[102.491399,32.704139],[102.491543,32.704815],[102.491631,32.705317],[102.491719,32.705819],[102.492025,32.706549],[102.492331,32.707279],[102.492622,32.707803],[102.492914,32.708326],[102.493385,32.708991],[102.493856,32.709655],[102.494348,32.710286],[102.49484,32.710917],[102.495136,32.711285],[102.495432,32.711653],[102.495767,32.712073],[102.496102,32.712494],[102.496531,32.71321],[102.496959,32.713925],[102.49707,32.714359],[102.49718,32.714792],[102.497412,32.715245],[102.497644,32.715698],[102.497995,32.716291],[102.498345,32.716885],[102.498375,32.717282],[102.498405,32.717679],[102.498409,32.718248],[102.498414,32.718818],[102.498422,32.719266],[102.49843,32.719715],[102.498577,32.720269],[102.498725,32.720824],[102.498832,32.721361],[102.49894,32.721898],[102.499112,32.722315],[102.499284,32.722732],[102.499438,32.723063],[102.499592,32.723394],[102.499828,32.723692],[102.500065,32.72399],[102.500346,32.724151],[102.500627,32.724311],[102.50109,32.725033],[102.501553,32.725754],[102.501973,32.72643],[102.502393,32.727106],[102.502505,32.727813],[102.502617,32.728519],[102.502643,32.72915],[102.502669,32.729781],[102.502666,32.729885],[102.502664,32.729988],[102.502662,32.730055],[102.502637,32.730957],[102.502601,32.732227],[102.502609,32.732461],[102.502644,32.733493],[102.502649,32.733637],[102.5027,32.733757],[102.502777,32.733942],[102.503308,32.735207],[102.503789,32.737993],[102.503744,32.739619],[102.503859,32.740319],[102.50403,32.741365],[102.504039,32.741419],[102.504047,32.741937],[102.504051,32.742242],[102.504056,32.742587],[102.504698,32.744352],[102.505915,32.746712],[102.50593,32.746729],[102.507251,32.748257],[102.507493,32.748537],[102.507648,32.748691],[102.507986,32.749029],[102.508823,32.749863],[102.50903,32.750069],[102.510096,32.7508],[102.510977,32.751402],[102.513051,32.752819],[102.515087,32.754152],[102.516244,32.755135],[102.516861,32.756023],[102.517078,32.757112],[102.517079,32.758864],[102.516983,32.76053],[102.517102,32.761576],[102.517273,32.762538],[102.517578,32.764004],[102.516656,32.765196],[102.515981,32.766392],[102.515761,32.76718],[102.515443,32.767967],[102.514966,32.769167],[102.514105,32.771694],[102.513882,32.772608],[102.513609,32.773562],[102.513343,32.774527],[102.51306,32.775553],[102.512259,32.77764],[102.512186,32.777831],[102.512155,32.777913],[102.511574,32.779277],[102.510617,32.78036],[102.510271,32.780752],[102.510266,32.780757],[102.510201,32.78083],[102.510197,32.780835],[102.510189,32.780844],[102.510189,32.780845],[102.510189,32.780845],[102.510189,32.780845],[102.510178,32.780858],[102.510073,32.780984],[102.510024,32.781043],[102.510009,32.781062],[102.510009,32.781062],[102.510009,32.781062],[102.509912,32.781178],[102.50989,32.781205],[102.509817,32.781214],[102.509771,32.78122],[102.509279,32.781286],[102.5088,32.78135],[102.508286,32.781517],[102.508275,32.78152],[102.508199,32.781545],[102.508198,32.781545],[102.508188,32.781549],[102.507953,32.781625],[102.507932,32.781638],[102.507897,32.781662],[102.507803,32.781723],[102.507766,32.781748],[102.5074,32.781989],[102.507134,32.782651],[102.507301,32.783739],[102.508457,32.784805],[102.51011,32.785714],[102.510517,32.786236],[102.510549,32.786278],[102.510969,32.786816],[102.510992,32.787734],[102.510518,32.788809],[102.510266,32.789151],[102.509851,32.789713],[102.50972,32.789768],[102.509469,32.789874],[102.509383,32.789911],[102.509337,32.78993],[102.509164,32.790003],[102.509001,32.790072],[102.508743,32.79008],[102.50869,32.790082],[102.508606,32.790085],[102.508393,32.790092],[102.50821,32.790098],[102.508191,32.79008],[102.507873,32.789799],[102.507965,32.789429],[102.508047,32.789097],[102.508079,32.78897],[102.50812,32.788804],[102.508151,32.788678],[102.508389,32.788239],[102.508444,32.788136],[102.50862,32.787812],[102.508552,32.787428],[102.508526,32.787282],[102.508449,32.786849],[102.507623,32.786374],[102.506392,32.786224],[102.50592,32.786141],[102.505311,32.786035],[102.504282,32.785765],[102.504006,32.78575],[102.503785,32.785738],[102.503049,32.785698],[102.501936,32.786064],[102.501923,32.786069],[102.501884,32.786081],[102.501853,32.786092],[102.501849,32.786096],[102.501844,32.7861],[102.501785,32.786155],[102.501756,32.786183],[102.5015,32.786423],[102.50146,32.786461],[102.501361,32.786554],[102.501244,32.786663],[102.501171,32.786828],[102.500958,32.787305],[102.500876,32.78749],[102.500866,32.78783],[102.50085,32.788408],[102.500847,32.788526],[102.500834,32.788964],[102.500832,32.789058],[102.500825,32.789283],[102.500816,32.789612],[102.500808,32.789908],[102.500871,32.790208],[102.500526,32.790463],[102.499896,32.790929],[102.499671,32.79104],[102.499216,32.791264],[102.499195,32.791265],[102.498545,32.791294],[102.497803,32.791083],[102.497119,32.790656],[102.496484,32.790294],[102.496227,32.790781],[102.496206,32.790821],[102.496141,32.790943],[102.495977,32.791253],[102.495958,32.79129],[102.495957,32.791291],[102.495942,32.79132],[102.495743,32.791696],[102.495741,32.791699],[102.495701,32.791776],[102.495681,32.791814],[102.495664,32.791847],[102.495631,32.791908],[102.495601,32.791966],[102.495368,32.792407],[102.495357,32.79243],[102.495353,32.792439],[102.495339,32.792471],[102.495326,32.792499],[102.495311,32.792533],[102.495295,32.792567],[102.494921,32.793398],[102.494913,32.793415],[102.4949,32.793443],[102.494882,32.793483],[102.494849,32.793556],[102.494832,32.793593],[102.492391,32.799006],[102.492233,32.799358],[102.49192,32.800476],[102.491908,32.80052],[102.491803,32.800895],[102.491777,32.801788],[102.492419,32.802825],[102.493538,32.804306],[102.493553,32.80433],[102.494254,32.805432],[102.495026,32.80679],[102.495057,32.806843],[102.495058,32.806845],[102.495059,32.806847],[102.495091,32.806903],[102.495094,32.806909],[102.495557,32.807723],[102.496219,32.808956],[102.497089,32.810106],[102.497608,32.810922],[102.498223,32.81198],[102.498437,32.812638],[102.498573,32.813294],[102.498883,32.814215],[102.499278,32.814855],[102.49959,32.815689],[102.499831,32.816281],[102.500433,32.816903],[102.500655,32.817166],[102.501321,32.817952],[102.501299,32.818746],[102.501091,32.819456],[102.500798,32.819848],[102.500413,32.820158],[102.500339,32.820256],[102.500151,32.820513],[102.49959,32.821199],[102.498942,32.82221],[102.498588,32.8229],[102.498463,32.82366],[102.498227,32.824722],[102.498076,32.825525],[102.4977,32.82604],[102.497083,32.826899],[102.495954,32.829005],[102.495721,32.829684],[102.495588,32.830294],[102.495507,32.830836],[102.495287,32.832198],[102.495258,32.833215],[102.495307,32.834429],[102.495517,32.835172],[102.495487,32.835659],[102.49553,32.836469],[102.495488,32.836897],[102.495484,32.836942],[102.495393,32.837247],[102.495116,32.837687],[102.494919,32.838241],[102.49473,32.839101],[102.494596,32.839754],[102.494555,32.840302],[102.494771,32.840636],[102.495224,32.841623],[102.495537,32.842264],[102.495721,32.842674],[102.496027,32.843048],[102.496249,32.843674],[102.496327,32.84412],[102.496437,32.84449],[102.496502,32.84486],[102.496385,32.845276],[102.495856,32.8459],[102.494546,32.847029],[102.49356,32.847885],[102.492679,32.848706],[102.491861,32.849463],[102.490759,32.850338],[102.490281,32.850567],[102.489742,32.850826],[102.48862,32.851531],[102.487537,32.852254],[102.486855,32.85272],[102.486127,32.852953],[102.485238,32.853184],[102.484649,32.853194],[102.484003,32.853362],[102.483244,32.85373],[102.481971,32.854314],[102.481052,32.854679],[102.480214,32.854978],[102.479001,32.855337],[102.478111,32.85559],[102.477274,32.855889],[102.476142,32.856205],[102.475173,32.856433],[102.474545,32.856895],[102.474161,32.857282],[102.473931,32.857514],[102.473231,32.858282],[102.47278,32.859116],[102.472702,32.859232],[102.472222,32.859947],[102.471984,32.860785],[102.471528,32.861768],[102.470434,32.863912],[102.469976,32.864956],[102.469819,32.865465],[102.469365,32.866388],[102.469019,32.867284],[102.468038,32.869159],[102.467217,32.870467],[102.466829,32.871572],[102.466809,32.872264],[102.466789,32.872955],[102.466629,32.873584],[102.466434,32.874182],[102.465427,32.875726],[102.464908,32.876407],[102.464274,32.877387],[102.463539,32.878155],[102.463198,32.87887],[102.463072,32.879529],[102.463009,32.880491],[102.463611,32.881887],[102.463871,32.882795],[102.46356,32.883691],[102.463218,32.884437],[102.463022,32.885034],[102.462597,32.886199],[102.462401,32.886827],[102.462111,32.886972],[102.461397,32.887017],[102.460608,32.887152],[102.460165,32.887684],[102.459612,32.888305],[102.459053,32.889166],[102.458239,32.890203],[102.45739,32.891208],[102.45657,32.892425],[102.456305,32.892992],[102.456412,32.894227],[102.456252,32.89609],[102.456064,32.89765],[102.456207,32.898887],[102.456001,32.902145],[102.456122,32.903515],[102.456031,32.904303],[102.455844,32.905262],[102.455799,32.905636],[102.455754,32.906011],[102.45571,32.906751],[102.455666,32.907492],[102.455584,32.907943],[102.455503,32.908393],[102.455421,32.908864],[102.455339,32.909334],[102.45526,32.909717],[102.45518,32.910101],[102.45526,32.910487],[102.455341,32.910874],[102.455408,32.911299],[102.455476,32.911724],[102.455475,32.912157],[102.455474,32.912591],[102.455472,32.913062],[102.45547,32.913534],[102.45562,32.913855],[102.455771,32.914176],[102.455876,32.914515],[102.45598,32.914854],[102.456185,32.915263],[102.45639,32.915671],[102.45673,32.916159],[102.45707,32.916648],[102.457233,32.916949],[102.457395,32.917251],[102.457431,32.917608],[102.457466,32.917965],[102.45745,32.918523],[102.457434,32.919081],[102.457412,32.919221],[102.457389,32.919361],[102.457323,32.919772],[102.45741,32.921526],[102.457363,32.922373],[102.457186,32.922966],[102.456974,32.923193],[102.456693,32.923437],[102.455973,32.923866],[102.455301,32.924218],[102.454694,32.924668],[102.454021,32.925039],[102.453259,32.925351],[102.452633,32.925685],[102.452324,32.926121],[102.451945,32.926576],[102.451478,32.926932],[102.45119,32.927446],[102.450741,32.927976],[102.450068,32.928328],[102.449606,32.928531],[102.449481,32.928894],[102.449331,32.929353],[102.449001,32.929712],[102.448442,32.930105],[102.447794,32.930381],[102.446633,32.931069],[102.445596,32.931414],[102.444741,32.931762],[102.444338,32.932255],[102.444121,32.932655],[102.44351,32.933259],[102.442815,32.934419],[102.44229,32.935178],[102.441734,32.935456],[102.440916,32.935324],[102.440455,32.935375],[102.44039,32.935328],[102.440358,32.935305],[102.440217,32.935204],[102.440052,32.935086],[102.440038,32.935076],[102.439918,32.93499],[102.439561,32.934787],[102.439204,32.934584],[102.438942,32.934421],[102.43868,32.934259],[102.438465,32.934126],[102.438251,32.933994],[102.438037,32.933861],[102.437822,32.933728],[102.437599,32.933479],[102.437429,32.933329],[102.437258,32.933179],[102.437044,32.93304],[102.43683,32.932901],[102.436558,32.93276],[102.436286,32.93262],[102.435943,32.932442],[102.435726,32.932376],[102.43551,32.932311],[102.435077,32.932253],[102.434716,32.93216],[102.434355,32.932067],[102.434053,32.931963],[102.43375,32.931859],[102.433508,32.931707],[102.433265,32.931555],[102.433041,32.931306],[102.43283,32.931057],[102.432619,32.930808],[102.432462,32.930619],[102.432305,32.93043],[102.432149,32.930241],[102.431992,32.930052],[102.431835,32.929863],[102.431678,32.929675],[102.431521,32.929486],[102.431364,32.929297],[102.431207,32.929108],[102.431051,32.928919],[102.430894,32.92873],[102.430737,32.928541],[102.430619,32.928333],[102.430502,32.928124],[102.430384,32.927915],[102.430266,32.927706],[102.430149,32.927498],[102.430031,32.927289],[102.429913,32.92708],[102.429796,32.926872],[102.429678,32.926663],[102.42956,32.926454],[102.429437,32.926209],[102.429313,32.925965],[102.429189,32.92572],[102.429066,32.925475],[102.428942,32.92523],[102.428818,32.924985],[102.428694,32.92474],[102.428571,32.924496],[102.428447,32.924251],[102.428323,32.924006],[102.428071,32.923683],[102.427759,32.923407],[102.427502,32.923255],[102.427299,32.923251],[102.427067,32.923247],[102.426817,32.923339],[102.426567,32.923432],[102.426287,32.923573],[102.426006,32.923715],[102.425754,32.923893],[102.425502,32.924071],[102.425147,32.924284],[102.424792,32.924497],[102.424585,32.924639],[102.424377,32.924782],[102.42417,32.924924],[102.423962,32.925067],[102.42375,32.92518],[102.423537,32.925293],[102.423324,32.925406],[102.423112,32.925519],[102.422899,32.925632],[102.422687,32.925745],[102.422474,32.925858],[102.422262,32.925971],[102.422049,32.926084],[102.421837,32.926197],[102.421411,32.926335],[102.420986,32.926474],[102.420752,32.926505],[102.420519,32.926537],[102.420113,32.926504],[102.419929,32.926366],[102.419744,32.926227],[102.419559,32.926089],[102.419374,32.925951],[102.419204,32.9258],[102.419034,32.92565],[102.41885,32.925462],[102.418666,32.925274],[102.418415,32.924976],[102.418148,32.924653],[102.41788,32.924329],[102.417716,32.92413],[102.417551,32.923931],[102.417386,32.923731],[102.417221,32.923532],[102.417056,32.923333],[102.416891,32.923134],[102.416726,32.922935],[102.416561,32.922736],[102.416353,32.922576],[102.416145,32.922416],[102.415936,32.922256],[102.415728,32.922097],[102.415519,32.921937],[102.415311,32.921777],[102.415103,32.921617],[102.414894,32.921457],[102.414686,32.921298],[102.414478,32.921138],[102.414269,32.920978],[102.414061,32.920818],[102.413853,32.920659],[102.413644,32.920499],[102.413436,32.920339],[102.413228,32.920179],[102.413044,32.920012],[102.41286,32.919844],[102.412676,32.919676],[102.412491,32.919508],[102.412307,32.91934],[102.412123,32.919173],[102.411939,32.919005],[102.411755,32.918837],[102.411571,32.918669],[102.411387,32.918501],[102.411203,32.918333],[102.411019,32.918166],[102.410835,32.917998],[102.410651,32.91783],[102.410381,32.917617],[102.410111,32.917404],[102.409861,32.917031],[102.409778,32.916788],[102.409727,32.916637],[102.409736,32.916343],[102.409743,32.916099],[102.409777,32.915904],[102.409812,32.915734],[102.41001,32.915548],[102.410208,32.915362],[102.410405,32.915177],[102.410603,32.914991],[102.410801,32.914806],[102.410999,32.91462],[102.411197,32.914434],[102.411395,32.914249],[102.41154,32.914049],[102.411685,32.913849],[102.411831,32.913649],[102.411976,32.913449],[102.412121,32.913249],[102.412267,32.913049],[102.412412,32.912849],[102.412557,32.912649],[102.412703,32.912449],[102.412848,32.912249],[102.413033,32.912072],[102.413217,32.911895],[102.413402,32.911718],[102.413587,32.911541],[102.413772,32.911364],[102.413956,32.911187],[102.414141,32.91101],[102.414326,32.910834],[102.414511,32.910657],[102.414695,32.91048],[102.414918,32.910325],[102.41514,32.910171],[102.415363,32.910016],[102.415585,32.909862],[102.415706,32.909693],[102.415712,32.909547],[102.415688,32.909302],[102.415606,32.909128],[102.415489,32.909012],[102.415352,32.908878],[102.41521,32.908802],[102.414948,32.908772],[102.414612,32.908765],[102.4142,32.908673],[102.413788,32.908581],[102.413376,32.908489],[102.413011,32.908409],[102.412646,32.90833],[102.41228,32.908251],[102.411961,32.908164],[102.411641,32.908076],[102.411321,32.907988],[102.411004,32.907824],[102.410686,32.90766],[102.410463,32.907462],[102.41024,32.907265],[102.410041,32.90703],[102.409846,32.906799],[102.409669,32.906487],[102.409491,32.906176],[102.409163,32.905978],[102.408836,32.905781],[102.408508,32.905583],[102.408319,32.905456],[102.407983,32.905228],[102.407647,32.904999],[102.40731,32.904771],[102.407096,32.904621],[102.406882,32.904471],[102.406528,32.904272],[102.406356,32.90415],[102.40602,32.904051],[102.405783,32.903964],[102.405521,32.903895],[102.405259,32.903826],[102.404959,32.903772],[102.40466,32.903717],[102.404497,32.903718],[102.40416,32.90372],[102.403822,32.903722],[102.403405,32.903725],[102.403184,32.903727],[102.402802,32.90369],[102.40242,32.903654],[102.402037,32.903617],[102.401792,32.903555],[102.401547,32.903493],[102.401347,32.903384],[102.401129,32.903198],[102.400915,32.902969],[102.400734,32.902775],[102.400572,32.902527],[102.40041,32.90228],[102.400232,32.901934],[102.400055,32.901588],[102.399877,32.901242],[102.39981,32.900916],[102.399744,32.90059],[102.399601,32.900291],[102.399463,32.900086],[102.399358,32.899834],[102.399296,32.899534],[102.399234,32.899234],[102.399209,32.898915],[102.399184,32.898596],[102.399158,32.898278],[102.399149,32.898025],[102.39912,32.897806],[102.399122,32.89758],[102.399122,32.897514],[102.399124,32.897221],[102.399125,32.897126],[102.399096,32.896955],[102.399044,32.896798],[102.398858,32.896441],[102.39869,32.89611],[102.398521,32.895779],[102.398477,32.895674],[102.398356,32.895381],[102.398235,32.895089],[102.398168,32.894846],[102.398102,32.894604],[102.398035,32.894228],[102.397969,32.893852],[102.397923,32.893557],[102.397904,32.89344],[102.397877,32.893265],[102.39784,32.893028],[102.397808,32.89293],[102.39763,32.892784],[102.397452,32.892637],[102.397283,32.89245],[102.397115,32.892263],[102.396893,32.891941],[102.396848,32.891605],[102.396851,32.891506],[102.396883,32.891385],[102.397003,32.891241],[102.39712,32.891243],[102.397411,32.891249],[102.397583,32.891301],[102.397959,32.891359],[102.398222,32.891314],[102.398456,32.891246],[102.398601,32.891177],[102.398824,32.89107],[102.39909,32.890944],[102.399091,32.890943],[102.399092,32.890943],[102.399193,32.890895],[102.399549,32.890657],[102.39977,32.890527],[102.399991,32.890397],[102.400288,32.890183],[102.400555,32.89003],[102.400821,32.889876],[102.400967,32.889696],[102.401112,32.889515],[102.401257,32.889335],[102.401403,32.889155],[102.401548,32.888974],[102.401694,32.888794],[102.401847,32.888516],[102.401944,32.888342],[102.402061,32.888217],[102.402142,32.888084],[102.402323,32.887846],[102.402428,32.887646],[102.402418,32.887508],[102.402352,32.887422],[102.402285,32.887365],[102.402194,32.887161],[102.402152,32.88705],[102.402071,32.886837],[102.401999,32.886604],[102.402009,32.886466],[102.402061,32.886347],[102.402118,32.886176],[102.402149,32.886117],[102.402218,32.885985],[102.402214,32.885881],[102.402097,32.885754],[102.402004,32.885652],[102.401933,32.885581],[102.401923,32.885495],[102.401985,32.885333],[102.402019,32.885258],[102.402104,32.885067],[102.402099,32.884938],[102.402076,32.884848],[102.401971,32.88461],[102.401967,32.884602],[102.401899,32.884472],[102.401895,32.884329],[102.401933,32.883982],[102.401972,32.883634],[102.402011,32.883286],[102.402049,32.882939],[102.402054,32.882898],[102.40207,32.882577],[102.402104,32.882343],[102.402164,32.882126],[102.402225,32.881909],[102.402395,32.881664],[102.402481,32.881601],[102.402789,32.88137],[102.403097,32.881139],[102.403405,32.880909],[102.403643,32.880717],[102.403942,32.880429],[102.404126,32.880103],[102.40431,32.879777],[102.404413,32.879555],[102.404516,32.879333],[102.404619,32.879112],[102.404722,32.87889],[102.404826,32.878668],[102.404929,32.878447],[102.404968,32.878203],[102.405007,32.877959],[102.405046,32.877715],[102.405085,32.877471],[102.405124,32.877227],[102.405163,32.876983],[102.405202,32.87674],[102.405241,32.876496],[102.40528,32.876252],[102.405291,32.876186],[102.405319,32.876008],[102.405357,32.87574],[102.405394,32.875471],[102.405403,32.875154],[102.405404,32.875121],[102.405409,32.874909],[102.405391,32.874554],[102.405373,32.874199],[102.405321,32.873965],[102.405269,32.873731],[102.405203,32.87352],[102.405178,32.873312],[102.405088,32.873184],[102.405087,32.873183],[102.404783,32.872984],[102.404579,32.872855],[102.404517,32.872713],[102.404455,32.872584],[102.404493,32.872365],[102.404493,32.872284],[102.404393,32.872146],[102.404331,32.87197],[102.404283,32.871903],[102.404198,32.871785],[102.404103,32.871689],[102.403879,32.871452],[102.403772,32.871241],[102.403771,32.871239],[102.40377,32.871237],[102.403736,32.871099],[102.403774,32.871014],[102.403803,32.870895],[102.403741,32.87079],[102.403679,32.87069],[102.403655,32.870595],[102.403708,32.870495],[102.40377,32.870428],[102.403808,32.870324],[102.403805,32.8703],[102.403773,32.870204],[102.403746,32.870171],[102.403475,32.869991],[102.40337,32.869857],[102.403337,32.869743],[102.403327,32.869619],[102.403322,32.869519],[102.403256,32.869434],[102.40308,32.869291],[102.402898,32.868954],[102.402862,32.868794],[102.402856,32.868544],[102.402862,32.868336],[102.40291,32.868062],[102.402969,32.867913],[102.403011,32.86783],[102.40304,32.867771],[102.403034,32.867663],[102.403017,32.867556],[102.402957,32.867372],[102.402924,32.867295],[102.402922,32.867281],[102.402878,32.866916],[102.402939,32.866688],[102.402927,32.866533],[102.402898,32.866426],[102.402868,32.866271],[102.402808,32.866051],[102.402767,32.866001],[102.402624,32.865825],[102.40241,32.865647],[102.402368,32.86554],[102.402351,32.865307],[102.402334,32.865073],[102.402266,32.864738],[102.402198,32.864402],[102.402195,32.86435],[102.402184,32.864124],[102.402189,32.863736],[102.402193,32.863348],[102.402198,32.86296],[102.402219,32.862636],[102.402241,32.862311],[102.40217,32.861961],[102.402105,32.861725],[102.402041,32.86149],[102.402041,32.861247],[102.402062,32.860869],[102.402098,32.860662],[102.402105,32.860419],[102.402048,32.860262],[102.402027,32.860048],[102.40207,32.85982],[102.402048,32.859591],[102.401991,32.859427],[102.40177,32.859284],[102.401698,32.859063],[102.401684,32.858752],[102.401683,32.858751],[102.401682,32.85875],[102.401664,32.858723],[102.401529,32.858515],[102.401452,32.858299],[102.401374,32.858084],[102.401296,32.857868],[102.401218,32.857653],[102.40114,32.857438],[102.401062,32.857222],[102.400984,32.857007],[102.400906,32.856792],[102.400801,32.856422],[102.400663,32.856175],[102.400465,32.855975],[102.400267,32.855824],[102.400088,32.85567],[102.399908,32.855515],[102.399729,32.85536],[102.39955,32.855206],[102.39937,32.855051],[102.399191,32.854896],[102.399,32.854703],[102.39881,32.854509],[102.39862,32.854315],[102.398429,32.854122],[102.398348,32.85404],[102.398343,32.854034],[102.398239,32.853928],[102.398049,32.853735],[102.397858,32.853541],[102.397668,32.853347],[102.397499,32.853179],[102.397329,32.85301],[102.39716,32.852842],[102.396991,32.852673],[102.396821,32.852504],[102.396652,32.852336],[102.396483,32.852167],[102.396314,32.851998],[102.396124,32.85186],[102.395934,32.851722],[102.395744,32.851584],[102.395554,32.851446],[102.395364,32.851308],[102.395174,32.851171],[102.394985,32.851033],[102.394795,32.850895],[102.394605,32.850757],[102.394415,32.850619],[102.394225,32.850481],[102.394035,32.850343],[102.39383,32.850176],[102.393624,32.85001],[102.393418,32.849843],[102.393212,32.849677],[102.393007,32.84951],[102.392801,32.849344],[102.392595,32.849177],[102.39239,32.849011],[102.392261,32.848806],[102.392133,32.848602],[102.392005,32.848397],[102.391876,32.848193],[102.391748,32.847988],[102.39162,32.847784],[102.391492,32.847579],[102.391363,32.847375],[102.391318,32.846934],[102.391328,32.846591],[102.391394,32.846299],[102.391461,32.846006],[102.391586,32.84574],[102.39171,32.845461],[102.391834,32.845182],[102.3919,32.844891],[102.391903,32.844821],[102.391907,32.844686],[102.391908,32.844645],[102.391913,32.84445],[102.391892,32.84424],[102.391891,32.84423],[102.391692,32.843971],[102.391684,32.843961],[102.391642,32.843869],[102.391635,32.843863],[102.391563,32.843805],[102.391305,32.843595],[102.391046,32.843384],[102.390838,32.84323],[102.390631,32.843075],[102.390307,32.842868],[102.389982,32.842661],[102.389628,32.842401],[102.389274,32.84214],[102.38892,32.84188],[102.388873,32.841844],[102.388599,32.841629],[102.388325,32.841414],[102.388051,32.841199],[102.387777,32.840984],[102.38762,32.840885],[102.387218,32.840736],[102.386895,32.840616],[102.386572,32.840496],[102.386329,32.840428],[102.386087,32.84036],[102.38573,32.840303],[102.385409,32.840275],[102.385087,32.840246],[102.384798,32.840235],[102.384509,32.840225],[102.384202,32.8402],[102.383895,32.840175],[102.383598,32.840087],[102.3833,32.839999],[102.383003,32.839911],[102.38267,32.839801],[102.382337,32.839692],[102.382004,32.839582],[102.381797,32.839493],[102.38159,32.839404],[102.38133,32.839236],[102.38107,32.839068],[102.380734,32.83885],[102.380397,32.838633],[102.380041,32.838397],[102.379685,32.83816],[102.379328,32.837924],[102.379024,32.837723],[102.378721,32.837522],[102.378417,32.837321],[102.378113,32.837119],[102.377849,32.836991],[102.377585,32.836862],[102.377235,32.836763],[102.377021,32.836634],[102.37685,32.83652],[102.3766,32.836456],[102.376329,32.836395],[102.376057,32.836334],[102.375715,32.836256],[102.375483,32.836131],[102.375251,32.836006],[102.375008,32.835849],[102.374765,32.835692],[102.374544,32.835442],[102.374394,32.835074],[102.374244,32.834707],[102.374059,32.834475],[102.373873,32.834243],[102.373709,32.834061],[102.373545,32.833879],[102.37328,32.833722],[102.373016,32.833565],[102.372661,32.833422],[102.372307,32.83328],[102.371952,32.833137],[102.371931,32.833129],[102.371524,32.832965],[102.371189,32.832979],[102.371039,32.833022],[102.370825,32.833168],[102.370611,32.833315],[102.37033,32.833448],[102.370049,32.833581],[102.369768,32.833714],[102.369376,32.833839],[102.368983,32.833964],[102.368665,32.834026],[102.368314,32.834095],[102.367964,32.834163],[102.367848,32.834186],[102.367508,32.834202],[102.367168,32.834219],[102.366827,32.834236],[102.366501,32.8342],[102.366175,32.834164],[102.365849,32.834128],[102.365454,32.834083],[102.365059,32.834038],[102.364664,32.833993],[102.364407,32.833918],[102.36415,32.833843],[102.363808,32.833657],[102.363565,32.833424],[102.363322,32.833191],[102.36308,32.832958],[102.362891,32.832712],[102.362701,32.832465],[102.362484,32.832226],[102.362266,32.831987],[102.36206,32.831831],[102.361785,32.831624],[102.361509,32.831416],[102.361259,32.831221],[102.36101,32.831026],[102.36076,32.830831],[102.360446,32.830645],[102.360148,32.830531],[102.359851,32.830417],[102.359553,32.830302],[102.359211,32.830081],[102.358868,32.82986],[102.358791,32.82981],[102.358491,32.829617],[102.35819,32.829424],[102.35789,32.829232],[102.357705,32.829064],[102.357519,32.828896],[102.357383,32.828646],[102.357248,32.828396],[102.357119,32.828275],[102.356934,32.828196],[102.356634,32.828204],[102.356348,32.828214],[102.356063,32.828225],[102.355813,32.828225],[102.355563,32.828225],[102.355254,32.828144],[102.354944,32.828063],[102.354635,32.827982],[102.354325,32.827896],[102.354021,32.827811],[102.35365,32.827668],[102.353563,32.827643],[102.353257,32.827554],[102.3529,32.827511],[102.352472,32.827447],[102.352094,32.827354],[102.351803,32.827157],[102.351513,32.826959],[102.351223,32.826762],[102.351016,32.826448],[102.350809,32.826134],[102.350545,32.825805],[102.350281,32.825477],[102.350066,32.825098],[102.34997,32.824799],[102.349874,32.824499],[102.349817,32.824099],[102.349753,32.823761],[102.349688,32.823422],[102.349638,32.823157],[102.349517,32.822907],[102.34931,32.8226],[102.348959,32.822377],[102.348739,32.822236],[102.348467,32.821893],[102.348343,32.821668],[102.348218,32.821444],[102.348077,32.82117],[102.347937,32.820896],[102.347743,32.820639],[102.347548,32.820381],[102.347354,32.820123],[102.347199,32.819885],[102.347045,32.819647],[102.346955,32.819409],[102.346866,32.819171],[102.346818,32.818731],[102.346652,32.818493],[102.346366,32.818267],[102.345948,32.818227],[102.34553,32.818187],[102.345112,32.818147],[102.344731,32.818111],[102.344412,32.818116],[102.344094,32.81812],[102.34382,32.818125],[102.343547,32.818129],[102.343246,32.818051],[102.342946,32.817974],[102.342786,32.817906],[102.342536,32.8178],[102.342286,32.817694],[102.341911,32.81748],[102.341729,32.81729],[102.341548,32.8171],[102.341364,32.816847],[102.341181,32.816595],[102.341036,32.816398],[102.340894,32.816118],[102.340751,32.815838],[102.340608,32.815559],[102.340397,32.815247],[102.340186,32.814934],[102.340055,32.814696],[102.339924,32.814458],[102.339668,32.814274],[102.339668,32.814274],[102.339319,32.814213],[102.339135,32.814189],[102.33888,32.81422],[102.338625,32.81425],[102.338343,32.814351],[102.33806,32.814453],[102.337735,32.814553],[102.33741,32.814653],[102.337156,32.814648],[102.336902,32.814642],[102.336651,32.814598],[102.336399,32.814553],[102.336338,32.81453],[102.336011,32.81436],[102.335796,32.814215],[102.335581,32.814071],[102.335338,32.813965],[102.335096,32.81386],[102.334854,32.813832],[102.334612,32.813804],[102.334416,32.813755],[102.334069,32.813723],[102.333722,32.813691],[102.333606,32.81368],[102.333574,32.813677],[102.333389,32.81366],[102.333097,32.813632],[102.332869,32.813548],[102.33264,32.813465],[102.332405,32.813334],[102.332291,32.813234],[102.332161,32.81312],[102.332024,32.812924],[102.331905,32.812638],[102.33181,32.812409],[102.331715,32.81218],[102.331554,32.811936],[102.331382,32.811704],[102.331162,32.811609],[102.330852,32.811442],[102.33065,32.811163],[102.330448,32.810883],[102.330308,32.810702],[102.330168,32.81052],[102.329972,32.810348],[102.329776,32.810175],[102.329585,32.809917],[102.329395,32.809658],[102.329193,32.809289],[102.329153,32.809154],[102.329097,32.808962],[102.328907,32.808739],[102.328717,32.808516],[102.328447,32.808243],[102.328187,32.80798],[102.328026,32.807723],[102.327908,32.807534],[102.327833,32.807278],[102.327759,32.807023],[102.327682,32.806743],[102.327485,32.80635],[102.327307,32.805999],[102.327194,32.805803],[102.326962,32.805642],[102.32673,32.805482],[102.326641,32.80541],[102.326581,32.805196],[102.326534,32.80497],[102.326557,32.804607],[102.326665,32.804176],[102.326772,32.803751],[102.326795,32.803483],[102.326748,32.803257],[102.326611,32.803037],[102.32651,32.802912],[102.32645,32.802751],[102.326454,32.802713],[102.326468,32.802537],[102.326486,32.802395],[102.326534,32.802002],[102.326528,32.801701],[102.326522,32.801401],[102.326486,32.801122],[102.326415,32.801003],[102.326337,32.800931],[102.326218,32.800578],[102.326212,32.800562],[102.326141,32.800324],[102.325909,32.800188],[102.325748,32.800069],[102.325582,32.800057],[102.325557,32.800056],[102.325125,32.800038],[102.324693,32.800021],[102.324261,32.800003],[102.324038,32.799959],[102.323815,32.799914],[102.323589,32.799825],[102.323363,32.799735],[102.323012,32.799634],[102.322661,32.799533],[102.322286,32.799355],[102.322013,32.799236],[102.321834,32.799081],[102.321733,32.79891],[102.321626,32.79873],[102.321449,32.798579],[102.321424,32.798558],[102.321245,32.79848],[102.320983,32.79848],[102.320632,32.798714],[102.320486,32.798811],[102.320258,32.798962],[102.319984,32.799004],[102.319841,32.799016],[102.319544,32.798956],[102.319264,32.798932],[102.319116,32.798956],[102.318878,32.79898],[102.318455,32.798904],[102.31834,32.798799],[102.318217,32.798628],[102.318015,32.798408],[102.318007,32.798399],[102.317779,32.798238],[102.317462,32.798109],[102.317146,32.797981],[102.317046,32.797924],[102.316713,32.797714],[102.316565,32.79749],[102.316418,32.797267],[102.316293,32.796923],[102.316169,32.796578],[102.316206,32.796345],[102.316269,32.796027],[102.31632,32.795771],[102.316371,32.795516],[102.316423,32.795261],[102.316474,32.795005],[102.316525,32.79475],[102.316576,32.794494],[102.316539,32.794261],[102.316503,32.794028],[102.316339,32.793682],[102.316148,32.793311],[102.315953,32.793038],[102.315754,32.792874],[102.315555,32.792711],[102.315297,32.792403],[102.315038,32.792095],[102.314779,32.791787],[102.314504,32.791459],[102.314228,32.79113],[102.313952,32.790802],[102.313676,32.790474],[102.313483,32.790244],[102.313328,32.790078],[102.313173,32.789911],[102.313019,32.789744],[102.312864,32.789578],[102.312709,32.789411],[102.312554,32.789245],[102.312399,32.789078],[102.312244,32.788911],[102.31209,32.788745],[102.311935,32.788578],[102.311826,32.788331],[102.311717,32.788084],[102.311638,32.78782],[102.31156,32.787555],[102.311481,32.78729],[102.311402,32.787025],[102.311337,32.786767],[102.311272,32.786509],[102.311194,32.786213],[102.311115,32.785918],[102.311005,32.785494],[102.310894,32.785069],[102.310784,32.784645],[102.310674,32.784221],[102.310593,32.784011],[102.310512,32.783801],[102.310287,32.783552],[102.310059,32.7834],[102.309774,32.783246],[102.309398,32.783214],[102.309122,32.783208],[102.308847,32.783203],[102.308581,32.78321],[102.308315,32.783218],[102.308049,32.783226],[102.307783,32.783234],[102.307494,32.783191],[102.307204,32.783148],[102.30693,32.783105],[102.306656,32.783063],[102.306223,32.78298],[102.30579,32.782922],[102.305412,32.782913],[102.305005,32.782929],[102.304714,32.782984],[102.304422,32.783039],[102.304201,32.783144],[102.303981,32.78325],[102.3039,32.783265],[102.303587,32.783327],[102.303192,32.783404],[102.302959,32.783448],[102.302726,32.783492],[102.302389,32.783595],[102.302052,32.783698],[102.301717,32.783764],[102.301381,32.78383],[102.301175,32.783924],[102.300969,32.784017],[102.30066,32.784169],[102.300351,32.784321],[102.299982,32.784558],[102.299613,32.784795],[102.299427,32.784931],[102.299241,32.785068],[102.299055,32.785205],[102.298869,32.785341],[102.298688,32.785582],[102.298507,32.785823],[102.298328,32.78599],[102.298148,32.786158],[102.297969,32.786325],[102.29779,32.786493],[102.297788,32.786493],[102.297787,32.786494],[102.297481,32.786699],[102.297174,32.786904],[102.29689,32.787011],[102.296523,32.78715],[102.29623,32.787218],[102.295938,32.787285],[102.295692,32.78728],[102.295445,32.787274],[102.295377,32.787276],[102.295068,32.787218],[102.294755,32.787226],[102.294441,32.787233],[102.294157,32.787392],[102.293873,32.78755],[102.29353,32.787657],[102.293364,32.787705],[102.293112,32.787778],[102.29286,32.787852],[102.292625,32.78792],[102.292391,32.787988],[102.292355,32.787999],[102.292115,32.788036],[102.291874,32.788074],[102.291634,32.788112],[102.291394,32.78815],[102.291045,32.788142],[102.290697,32.788134],[102.290335,32.788102],[102.289974,32.78807],[102.289714,32.788015],[102.289455,32.78796],[102.289169,32.78782],[102.288883,32.787679],[102.288584,32.787489],[102.288285,32.787299],[102.288002,32.787073],[102.287719,32.786846],[102.287479,32.786632],[102.287239,32.786419],[102.287028,32.786207],[102.286817,32.785995],[102.28662,32.785783],[102.286422,32.78557],[102.286253,32.78542],[102.286084,32.785269],[102.285801,32.785043],[102.285514,32.784914],[102.285226,32.784883],[102.284907,32.784877],[102.284584,32.785016],[102.284418,32.785221],[102.284252,32.785426],[102.284065,32.785813],[102.283867,32.786115],[102.283669,32.786416],[102.283507,32.786617],[102.283345,32.786819],[102.283183,32.78702],[102.283021,32.787222],[102.282859,32.787423],[102.282697,32.787624],[102.282535,32.787826],[102.282373,32.788027],[102.282165,32.788194],[102.281956,32.788361],[102.281748,32.788527],[102.28154,32.788694],[102.281275,32.788835],[102.281009,32.788976],[102.280673,32.789067],[102.280337,32.789158],[102.280104,32.789189],[102.279871,32.789221],[102.279637,32.789253],[102.279404,32.789284],[102.279039,32.789374],[102.278675,32.789463],[102.278447,32.789551],[102.278218,32.789638],[102.27799,32.789725],[102.277761,32.789812],[102.277532,32.789899],[102.277304,32.789986],[102.277073,32.790091],[102.276843,32.790196],[102.276613,32.790301],[102.276382,32.790406],[102.276152,32.790511],[102.275921,32.790617],[102.275511,32.79073],[102.275101,32.790843],[102.274692,32.790944],[102.274283,32.791046],[102.27386,32.791122],[102.273437,32.791198],[102.273,32.791262],[102.272563,32.791326],[102.272258,32.791332],[102.271952,32.791338],[102.271705,32.791345],[102.271459,32.791352],[102.271212,32.791358],[102.270965,32.791365],[102.270673,32.79142],[102.270381,32.791474],[102.270074,32.791578],[102.269766,32.791681],[102.269675,32.791722],[102.269529,32.791787],[102.269309,32.791886],[102.269089,32.791984],[102.268764,32.792161],[102.268439,32.792337],[102.268087,32.792476],[102.267735,32.792615],[102.267516,32.792672],[102.267297,32.792728],[102.266861,32.792743],[102.266629,32.792726],[102.266398,32.792708],[102.266167,32.792673],[102.265936,32.792637],[102.265705,32.792602],[102.265474,32.792566],[102.265039,32.792532],[102.264808,32.79249],[102.264578,32.792449],[102.26429,32.792394],[102.26396,32.792264],[102.26363,32.792134],[102.2633,32.792005],[102.26297,32.791875],[102.262877,32.791788],[102.26265,32.791573],[102.262422,32.791359],[102.262238,32.79122],[102.262053,32.791081],[102.261893,32.79096],[102.261869,32.790942],[102.261685,32.790804],[102.2615,32.790665],[102.261316,32.790526],[102.261131,32.790387],[102.260947,32.790248],[102.260707,32.790148],[102.260467,32.790048],[102.260227,32.789949],[102.259988,32.789849],[102.259748,32.789749],[102.259508,32.789649],[102.259268,32.789549],[102.259028,32.789449],[102.258745,32.789329],[102.258588,32.789243],[102.258205,32.789027],[102.257822,32.788811],[102.257412,32.788652],[102.257002,32.788493],[102.256689,32.788391],[102.256376,32.788288],[102.256063,32.788186],[102.255717,32.78815],[102.255371,32.788114],[102.255059,32.78814],[102.254748,32.788167],[102.254436,32.788193],[102.254075,32.788265],[102.253713,32.788336],[102.253368,32.788391],[102.253022,32.788446],[102.252677,32.788501],[102.252662,32.788507],[102.25226,32.788685],[102.251858,32.788863],[102.25162,32.789005],[102.251487,32.789034],[102.251325,32.789053],[102.251102,32.789029],[102.250878,32.789005],[102.250764,32.789034],[102.250697,32.789129],[102.250526,32.789396],[102.250283,32.789621],[102.25004,32.789846],[102.249701,32.789965],[102.249609,32.789992],[102.249475,32.790031],[102.249142,32.78993],[102.248916,32.789948],[102.248725,32.790067],[102.248469,32.790102],[102.24845,32.790098],[102.248192,32.790041],[102.247934,32.789983],[102.247669,32.789855],[102.247405,32.789727],[102.247063,32.7896],[102.246721,32.789472],[102.246358,32.789228],[102.245995,32.788984],[102.245632,32.78874],[102.245266,32.788588],[102.2449,32.788437],[102.244872,32.788417],[102.244689,32.788287],[102.244395,32.78808],[102.244174,32.787925],[102.243984,32.787842],[102.243675,32.78786],[102.243383,32.788014],[102.24307,32.788179],[102.242757,32.788344],[102.242693,32.788377],[102.242342,32.788597],[102.241991,32.788817],[102.241852,32.789005],[102.241712,32.789192],[102.241406,32.789412],[102.241101,32.789632],[102.240796,32.789852],[102.240587,32.789954],[102.240379,32.790055],[102.239933,32.790084],[102.239749,32.790072],[102.239523,32.789942],[102.239308,32.789852],[102.238999,32.789775],[102.238681,32.789743],[102.238559,32.789731],[102.238345,32.78971],[102.23797,32.789656],[102.237595,32.789603],[102.237381,32.78962],[102.237102,32.789698],[102.236733,32.789716],[102.236594,32.789697],[102.236262,32.789595],[102.236113,32.789549],[102.236001,32.78946],[102.235787,32.78924],[102.235571,32.78903],[102.235412,32.788877],[102.235186,32.788496],[102.235014,32.788335],[102.234847,32.788228],[102.234651,32.788163],[102.234508,32.788157],[102.234353,32.788169],[102.234175,32.788151],[102.233943,32.788062],[102.233865,32.787985],[102.233723,32.787889],[102.233437,32.787758],[102.233294,32.787628],[102.233179,32.787434],[102.233054,32.787308],[102.232882,32.787089],[102.232711,32.786871],[102.232362,32.786663],[102.232067,32.786613],[102.231772,32.786564],[102.231576,32.786644],[102.231181,32.786804],[102.231103,32.786835],[102.230988,32.786923],[102.230624,32.787158],[102.230431,32.787283],[102.230239,32.787407],[102.229897,32.787693],[102.229554,32.787979],[102.229345,32.78817],[102.229136,32.788361],[102.228854,32.788551],[102.228573,32.78874],[102.228351,32.788863],[102.22813,32.788986],[102.227909,32.78911],[102.227687,32.789233],[102.227361,32.789459],[102.227035,32.789684],[102.226794,32.789973],[102.226553,32.790261],[102.226388,32.790441],[102.226223,32.790621],[102.226016,32.790726],[102.22581,32.790832],[102.22552,32.790827],[102.22526,32.790783],[102.225,32.79074],[102.224756,32.790637],[102.224513,32.790534],[102.2242,32.790343],[102.223887,32.790153],[102.223561,32.789914],[102.223234,32.789674],[102.223075,32.789502],[102.222915,32.78933],[102.222755,32.789157],[102.222595,32.788985],[102.222435,32.788813],[102.222275,32.788641],[102.222115,32.788469],[102.221956,32.788296],[102.221796,32.788124],[102.221636,32.787952],[102.221476,32.78778],[102.221316,32.787608],[102.221199,32.787388],[102.221081,32.787169],[102.220964,32.78695],[102.220846,32.78673],[102.220729,32.786511],[102.220611,32.786292],[102.220494,32.786072],[102.220376,32.785853],[102.220259,32.785634],[102.220141,32.785414],[102.220024,32.785195],[102.219906,32.784975],[102.219789,32.784756],[102.219671,32.784537],[102.219546,32.784289],[102.21942,32.784042],[102.219295,32.783795],[102.21917,32.783548],[102.219044,32.783301],[102.218919,32.783053],[102.218794,32.782806],[102.218668,32.782559],[102.218543,32.782312],[102.218418,32.782064],[102.218292,32.781817],[102.218167,32.78157],[102.218041,32.781323],[102.217916,32.781075],[102.217791,32.780828],[102.217665,32.780581],[102.217513,32.780363],[102.21736,32.780146],[102.217207,32.779928],[102.217054,32.779711],[102.216901,32.779493],[102.216749,32.779276],[102.216596,32.779058],[102.216443,32.778841],[102.216309,32.778495],[102.216176,32.77815],[102.216069,32.777829],[102.215963,32.777509],[102.215883,32.777262],[102.215804,32.777016],[102.215695,32.776793],[102.215585,32.77657],[102.215476,32.776348],[102.215367,32.776125],[102.215114,32.7759],[102.214856,32.775771],[102.21461,32.775742],[102.214365,32.775712],[102.214061,32.775705],[102.213756,32.775698],[102.21333,32.775729],[102.212903,32.775761],[102.212477,32.775792],[102.212112,32.775882],[102.211746,32.775971],[102.211424,32.776062],[102.211102,32.776153],[102.210677,32.776278],[102.210253,32.776403],[102.210029,32.776447],[102.209805,32.776491],[102.209582,32.776535],[102.209358,32.776579],[102.209134,32.776623],[102.208911,32.776667],[102.208511,32.776764],[102.208111,32.776861],[102.207712,32.776958],[102.207331,32.777072],[102.20695,32.777186],[102.206756,32.777312],[102.206563,32.777438],[102.206369,32.777564],[102.206176,32.77769],[102.205982,32.777816],[102.205789,32.777942],[102.205595,32.778068],[102.205401,32.778194],[102.205192,32.778434],[102.205055,32.778615],[102.204919,32.778796],[102.204795,32.77905],[102.204671,32.779303],[102.204617,32.779607],[102.204564,32.779911],[102.204526,32.780217],[102.204488,32.780523],[102.204333,32.780825],[102.204178,32.781127],[102.204006,32.781307],[102.203833,32.781486],[102.203661,32.781666],[102.203488,32.781845],[102.203301,32.782035],[102.203113,32.782225],[102.202926,32.782414],[102.202739,32.782604],[102.202551,32.782794],[102.202364,32.782983],[102.202039,32.783172],[102.201715,32.78336],[102.201419,32.783525],[102.201124,32.78369],[102.200755,32.783889],[102.200386,32.784089],[102.200263,32.784162],[102.200046,32.78429],[102.199706,32.78449],[102.199478,32.784803],[102.19925,32.785115],[102.199066,32.785454],[102.198882,32.785792],[102.198743,32.786035],[102.198605,32.786277],[102.198483,32.786469],[102.198361,32.786662],[102.198095,32.786827],[102.197748,32.786795],[102.197519,32.786704],[102.19729,32.786614],[102.197004,32.78646],[102.196718,32.786307],[102.196421,32.786068],[102.196124,32.785829],[102.195942,32.785629],[102.195759,32.785429],[102.195565,32.785156],[102.195547,32.78513],[102.195371,32.784883],[102.195135,32.784547],[102.194898,32.784211],[102.194706,32.783864],[102.194514,32.783517],[102.194322,32.783158],[102.19413,32.782799],[102.194073,32.782529],[102.194016,32.782258],[102.193958,32.781988],[102.193901,32.781718],[102.193916,32.78148],[102.193931,32.781242],[102.193945,32.781003],[102.19396,32.780765],[102.193975,32.780527],[102.193989,32.780289],[102.194004,32.780051],[102.194019,32.779812],[102.194015,32.77947],[102.194012,32.779127],[102.193946,32.778893],[102.193881,32.778659],[102.193714,32.778435],[102.193373,32.778208],[102.193173,32.778093],[102.192974,32.777978],[102.192688,32.77785],[102.192402,32.777721],[102.192136,32.777664],[102.19187,32.777607],[102.191604,32.777549],[102.191337,32.777492],[102.191071,32.777435],[102.190805,32.777378],[102.190538,32.77732],[102.190272,32.777263],[102.190006,32.777206],[102.189739,32.777149],[102.189473,32.777091],[102.189207,32.777034],[102.188941,32.776977],[102.188674,32.77692],[102.188265,32.776832],[102.187855,32.776744],[102.187445,32.776656],[102.187015,32.776548],[102.186786,32.776396],[102.186763,32.776225],[102.186801,32.775932],[102.186891,32.775714],[102.18698,32.775497],[102.187069,32.77528],[102.187159,32.775063],[102.187248,32.774846],[102.187337,32.774629],[102.187366,32.774562],[102.187433,32.774407],[102.187528,32.774185],[102.187624,32.773963],[102.187719,32.773741],[102.187815,32.773519],[102.18791,32.773297],[102.188006,32.773076],[102.188101,32.772854],[102.188197,32.772632],[102.188292,32.77241],[102.188388,32.772188],[102.188483,32.771966],[102.188579,32.771744],[102.188674,32.771523],[102.188714,32.77143],[102.188818,32.771173],[102.188922,32.770917],[102.189026,32.77066],[102.18913,32.770404],[102.189234,32.770147],[102.189338,32.769891],[102.189442,32.769634],[102.189546,32.769378],[102.18965,32.769121],[102.189754,32.768865],[102.189864,32.768623],[102.189973,32.768381],[102.190082,32.768138],[102.190191,32.767896],[102.190301,32.767654],[102.19041,32.767412],[102.190424,32.767345],[102.190467,32.767145],[102.190524,32.766878],[102.190581,32.766611],[102.190638,32.766344],[102.190696,32.766077],[102.190753,32.76581],[102.19081,32.765543],[102.190867,32.765275],[102.190924,32.765008],[102.190981,32.764741],[102.191038,32.764474],[102.191075,32.764301],[102.191096,32.764207],[102.191225,32.763794],[102.191319,32.763551],[102.191414,32.763309],[102.191599,32.762946],[102.191694,32.762704],[102.191875,32.762463],[102.192041,32.762271],[102.192206,32.762079],[102.192515,32.761793],[102.192824,32.761506],[102.193133,32.761219],[102.193327,32.761056],[102.19352,32.760894],[102.193714,32.760731],[102.193908,32.760568],[102.194101,32.760405],[102.194295,32.760242],[102.194595,32.75993],[102.194895,32.759619],[102.195148,32.759392],[102.195402,32.759165],[102.1956,32.759011],[102.195798,32.758856],[102.195996,32.758702],[102.196194,32.758547],[102.196392,32.758393],[102.196591,32.758238],[102.196919,32.757952],[102.197131,32.757663],[102.197255,32.757428],[102.197379,32.757193],[102.197503,32.756957],[102.197627,32.756722],[102.197709,32.756508],[102.197791,32.756295],[102.197873,32.756082],[102.197955,32.755868],[102.198037,32.755655],[102.198119,32.755442],[102.198202,32.755228],[102.198284,32.755015],[102.198366,32.754801],[102.198367,32.754799],[102.198367,32.754797],[102.198448,32.754588],[102.198604,32.754249],[102.198667,32.754055],[102.198675,32.753798],[102.198684,32.753541],[102.198694,32.753248],[102.198643,32.753002],[102.198568,32.752766],[102.198493,32.75253],[102.198418,32.752295],[102.198342,32.752059],[102.198267,32.751823],[102.198192,32.751587],[102.198117,32.751352],[102.198042,32.751116],[102.197967,32.75088],[102.197892,32.750645],[102.197817,32.750409],[102.197741,32.750173],[102.197718,32.750121],[102.197608,32.749874],[102.197497,32.749627],[102.197387,32.74938],[102.197277,32.749133],[102.197166,32.748886],[102.197056,32.748639],[102.196946,32.748392],[102.196835,32.748145],[102.196725,32.747898],[102.196615,32.747651],[102.196504,32.747405],[102.196394,32.747158],[102.196284,32.746911],[102.196173,32.746664],[102.196063,32.746417],[102.195953,32.74617],[102.195822,32.745943],[102.195692,32.745716],[102.195561,32.745489],[102.19543,32.745262],[102.1953,32.745035],[102.195169,32.744808],[102.195038,32.744581],[102.194908,32.744354],[102.194777,32.744127],[102.194646,32.7439],[102.194516,32.743673],[102.194385,32.743446],[102.19432,32.7432],[102.194255,32.742954],[102.19419,32.742708],[102.194126,32.742462],[102.194104,32.742217],[102.194083,32.741972],[102.194091,32.741703],[102.1941,32.741434],[102.194109,32.74114],[102.194178,32.740824],[102.194274,32.740508],[102.194397,32.740266],[102.194491,32.740073],[102.194644,32.739807],[102.194795,32.739608],[102.194946,32.73941],[102.195098,32.739212],[102.195249,32.739013],[102.1954,32.738815],[102.195551,32.738616],[102.195702,32.738418],[102.195854,32.73822],[102.196001,32.738015],[102.196148,32.737811],[102.196295,32.737606],[102.196442,32.737402],[102.196589,32.737198],[102.196736,32.736993],[102.196884,32.736789],[102.197031,32.736584],[102.197178,32.73638],[102.197325,32.736176],[102.197472,32.735971],[102.197619,32.735767],[102.197798,32.735599],[102.198124,32.735386],[102.198333,32.735195],[102.198484,32.735003],[102.198651,32.734774],[102.198818,32.734546],[102.198993,32.734207],[102.199168,32.733868],[102.199343,32.73353],[102.199438,32.733275],[102.199533,32.73302],[102.199628,32.732765],[102.199723,32.732511],[102.199817,32.732256],[102.199818,32.732255],[102.199818,32.732254],[102.199912,32.732001],[102.200017,32.731777],[102.200122,32.731553],[102.200171,32.731448],[102.200227,32.731329],[102.200332,32.731105],[102.200437,32.730881],[102.200542,32.730657],[102.200646,32.730433],[102.200751,32.730209],[102.200898,32.730023],[102.201044,32.729837],[102.201191,32.729651],[102.201337,32.729465],[102.201484,32.729279],[102.20163,32.729093],[102.201777,32.728907],[102.201924,32.728721],[102.20207,32.728534],[102.202217,32.728348],[102.202363,32.728162],[102.20251,32.727976],[102.202649,32.727763],[102.202788,32.727549],[102.202927,32.727335],[102.203066,32.727122],[102.203206,32.726908],[102.203345,32.726695],[102.203484,32.726481],[102.203623,32.726267],[102.203762,32.726054],[102.203902,32.72584],[102.204041,32.725627],[102.20418,32.725413],[102.204319,32.725199],[102.204458,32.724986],[102.204573,32.724759],[102.204688,32.724532],[102.204802,32.724305],[102.204917,32.724078],[102.205032,32.723851],[102.205147,32.723624],[102.205261,32.723397],[102.205376,32.72317],[102.205491,32.722943],[102.205566,32.722793],[102.205605,32.722716],[102.205613,32.722448],[102.205682,32.722132],[102.205805,32.72189],[102.206015,32.721674],[102.206194,32.721507],[102.206461,32.721317],[102.206699,32.721102],[102.20694,32.720838],[102.20712,32.720573],[102.207229,32.720363],[102.207337,32.720153],[102.207445,32.719944],[102.207553,32.719734],[102.207661,32.719524],[102.207769,32.719315],[102.207985,32.718928],[102.208108,32.718711],[102.20823,32.718493],[102.208427,32.718229],[102.208624,32.717964],[102.208791,32.717699],[102.208959,32.717433],[102.209244,32.717134],[102.209529,32.716834],[102.209798,32.716571],[102.210067,32.716308],[102.210311,32.715946],[102.210453,32.715734],[102.210595,32.715521],[102.210737,32.715309],[102.210879,32.715096],[102.211021,32.714884],[102.211163,32.714671],[102.211186,32.714427],[102.211208,32.714183],[102.211217,32.713865],[102.211229,32.713498],[102.211125,32.713129],[102.21102,32.71276],[102.210932,32.712521],[102.210844,32.712281],[102.210755,32.712042],[102.210667,32.711803],[102.210579,32.711563],[102.210491,32.711324],[102.210403,32.711085],[102.210314,32.710845],[102.210226,32.710606],[102.210138,32.710366],[102.210016,32.710095],[102.209893,32.709823],[102.20973,32.709526],[102.209564,32.709295],[102.209549,32.709275],[102.209479,32.709178],[102.209437,32.709135],[102.209392,32.709088],[102.209304,32.708997],[102.209129,32.708816],[102.208954,32.708635],[102.208779,32.708454],[102.2086,32.708269],[102.208422,32.708084],[102.208209,32.707933],[102.207996,32.707781],[102.207784,32.70763],[102.207571,32.707478],[102.207358,32.707326],[102.207146,32.707175],[102.206933,32.707023],[102.20672,32.706872],[102.206508,32.70672],[102.206295,32.706568],[102.206082,32.706417],[102.20587,32.706265],[102.205657,32.706114],[102.205444,32.705962],[102.205302,32.705906],[102.205264,32.705892],[102.205205,32.705868],[102.204983,32.705781],[102.204965,32.705774],[102.204725,32.70568],[102.20465,32.705651],[102.204485,32.705586],[102.204246,32.705492],[102.204006,32.705398],[102.203766,32.705304],[102.203526,32.705211],[102.203287,32.70512],[102.203049,32.705029],[102.20281,32.704938],[102.202571,32.704847],[102.202332,32.704756],[102.202094,32.704665],[102.201846,32.704576],[102.201599,32.704488],[102.201352,32.7044],[102.201104,32.704312],[102.200857,32.704224],[102.20061,32.704136],[102.200362,32.704048],[102.200115,32.70396],[102.199887,32.703844],[102.19966,32.703729],[102.199475,32.703591],[102.19929,32.703453],[102.199096,32.703202],[102.198873,32.702904],[102.198784,32.702658],[102.198695,32.702413],[102.198606,32.702167],[102.198517,32.701921],[102.198369,32.701563],[102.19822,32.701205],[102.198087,32.700834],[102.197921,32.700562],[102.197725,32.700337],[102.197613,32.700213],[102.197329,32.700035],[102.196985,32.699904],[102.196741,32.69985],[102.196496,32.699796],[102.196397,32.699773],[102.196151,32.699715],[102.195805,32.699634],[102.195518,32.699566],[102.19523,32.699499],[102.194913,32.69943],[102.194596,32.699362],[102.194266,32.699281],[102.193936,32.6992],[102.193633,32.69912],[102.193468,32.699076],[102.193331,32.69904],[102.193073,32.698948],[102.192815,32.698857],[102.192544,32.698729],[102.192273,32.698601],[102.191943,32.69834],[102.191613,32.69808],[102.191283,32.697819],[102.191071,32.697631],[102.19086,32.697443],[102.190677,32.697255],[102.190494,32.697068],[102.190388,32.696772],[102.190396,32.696528],[102.190432,32.696308],[102.190465,32.696137]]]]},"properties":{"cp":[102.35372199561037,32.712944518303445],"code":"513233103","name":"安曲镇","level":"street","center":[102.35372199561037,32.712944518303445],"fullCode":"513233103000","fullName":"四川省阿坝藏族羌族自治州红原县安曲镇","acreageMu":1327057.45,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.222,32.6709]}},{"id":"513233105","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.277244,32.524826],[102.277274,32.524758],[102.277761,32.523683],[102.278447,32.522401],[102.278934,32.521489],[102.279246,32.520805],[102.279632,32.520638],[102.280189,32.520398],[102.280201,32.520393],[102.280417,32.5203],[102.280661,32.520194],[102.281662,32.519821],[102.282892,32.519601],[102.283165,32.519536],[102.284592,32.519194],[102.286228,32.519032],[102.287337,32.518908],[102.287869,32.518673],[102.288122,32.517988],[102.288597,32.517196],[102.289346,32.515511],[102.29019,32.513605],[102.290391,32.512721],[102.29064,32.511691],[102.290603,32.510025],[102.290392,32.508318],[102.290556,32.507212],[102.290941,32.506036],[102.291382,32.504418],[102.29147,32.503999],[102.291505,32.503833],[102.291597,32.503393],[102.291601,32.503375],[102.291637,32.503202],[102.291887,32.502135],[102.291976,32.50062],[102.29189,32.499101],[102.291871,32.498286],[102.292101,32.497884],[102.292726,32.497454],[102.293911,32.49722],[102.295037,32.497541],[102.296037,32.497673],[102.297387,32.497776],[102.298297,32.498018],[102.299338,32.498225],[102.300303,32.498583],[102.300373,32.498609],[102.300504,32.498657],[102.301595,32.49868],[102.303308,32.49831],[102.304271,32.498257],[102.30559,32.497915],[102.307147,32.49745],[102.30744,32.497363],[102.308144,32.49723],[102.308319,32.497197],[102.308369,32.49715],[102.308633,32.496907],[102.308664,32.495872],[102.308679,32.495343],[102.30869,32.494985],[102.308318,32.494274],[102.308133,32.49316],[102.307815,32.492117],[102.307839,32.491304],[102.307999,32.490345],[102.308286,32.4895],[102.308793,32.488586],[102.309694,32.487643],[102.31063,32.486997],[102.31153,32.486092],[102.311816,32.485284],[102.311739,32.4847],[102.311673,32.484208],[102.311089,32.483307],[102.310916,32.481787],[102.311219,32.480334],[102.311323,32.479834],[102.312199,32.478262],[102.313131,32.476667],[102.313395,32.476216],[102.313725,32.475775],[102.314213,32.475123],[102.314795,32.474618],[102.316193,32.474574],[102.317894,32.47461],[102.318993,32.474375],[102.320272,32.473921],[102.321372,32.473611],[102.322209,32.47337],[102.323588,32.472475],[102.324006,32.471633],[102.324606,32.470535],[102.32456,32.469129],[102.324727,32.467911],[102.324895,32.466657],[102.325061,32.465477],[102.325074,32.463553],[102.325561,32.461861],[102.325773,32.460608],[102.32624,32.459545],[102.326497,32.458256],[102.326407,32.456885],[102.325506,32.454868],[102.323044,32.449599],[102.322678,32.448703],[102.321883,32.447539],[102.321341,32.446714],[102.32067,32.445774],[102.320434,32.444918],[102.320409,32.442809],[102.32037,32.44118],[102.320417,32.43959],[102.32067,32.438412],[102.32075,32.437193],[102.320707,32.435712],[102.320407,32.434041],[102.320451,32.432562],[102.320371,32.430858],[102.319935,32.429369],[102.319737,32.428699],[102.319588,32.427807],[102.319457,32.426362],[102.319034,32.422949],[102.318856,32.421613],[102.318847,32.420988],[102.318842,32.420614],[102.31871,32.419168],[102.319057,32.41777],[102.319248,32.417219],[102.320608,32.416952],[102.321596,32.417454],[102.322646,32.417365],[102.323692,32.417387],[102.324757,32.416781],[102.326135,32.415885],[102.327275,32.415687],[102.329636,32.416958],[102.330141,32.417065],[102.331197,32.417287],[102.332497,32.417574],[102.334328,32.417613],[102.334971,32.417589],[102.335594,32.417565],[102.336382,32.417471],[102.336462,32.417397],[102.336616,32.417255],[102.336623,32.417249],[102.336666,32.417209],[102.336699,32.417179],[102.336709,32.417169],[102.33675,32.417132],[102.337247,32.416674],[102.338886,32.415163],[102.342031,32.412263],[102.343993,32.410485],[102.344227,32.410274],[102.345215,32.409296],[102.345283,32.409199],[102.345289,32.40919],[102.3453,32.409175],[102.345373,32.409072],[102.345772,32.408509],[102.345785,32.408491],[102.34617,32.407947],[102.349568,32.402136],[102.351006,32.400686],[102.352698,32.399464],[102.35438,32.397131],[102.355089,32.395259],[102.355108,32.394594],[102.354352,32.393616],[102.354038,32.392425],[102.353635,32.39127],[102.353459,32.38986],[102.353236,32.389172],[102.352677,32.387444],[102.352579,32.387141],[102.352564,32.386142],[102.352552,32.385068],[102.351995,32.383244],[102.351449,32.381049],[102.350881,32.379595],[102.351855,32.37906],[102.352253,32.378883],[102.353004,32.378529],[102.353545,32.377949],[102.353752,32.376806],[102.354044,32.375776],[102.354239,32.375077],[102.354258,32.374412],[102.355159,32.373432],[102.356533,32.372647],[102.357558,32.371891],[102.358235,32.371091],[102.35931,32.370115],[102.35968,32.369383],[102.359798,32.368312],[102.359888,32.366723],[102.360052,32.36558],[102.360385,32.364625],[102.36063,32.363705],[102.361068,32.360643],[102.361199,32.359129],[102.36127,32.358168],[102.361379,32.357431],[102.361414,32.35621],[102.361683,32.354477],[102.362164,32.353634],[102.362371,32.353271],[102.362957,32.352617],[102.363549,32.351741],[102.364567,32.351208],[102.366066,32.35061],[102.367472,32.350232],[102.367972,32.34954],[102.368694,32.348667],[102.369292,32.347606],[102.369589,32.346355],[102.370191,32.345146],[102.371335,32.343283],[102.372027,32.341928],[102.372799,32.340872],[102.373813,32.338969],[102.375079,32.337367],[102.376028,32.336203],[102.376615,32.335512],[102.376631,32.334957],[102.376298,32.334395],[102.375032,32.33349],[102.375252,32.332881],[102.37576,32.332763],[102.376519,32.332736],[102.377477,32.332756],[102.378605,32.332179],[102.37984,32.33139],[102.380272,32.330413],[102.381055,32.329529],[102.381861,32.328876],[102.381887,32.328856],[102.382089,32.328693],[102.382162,32.328655],[102.382502,32.328481],[102.382698,32.328381],[102.382758,32.32835],[102.383216,32.328116],[102.384245,32.327451],[102.38475,32.32725],[102.384819,32.327222],[102.385082,32.327118],[102.385102,32.32711],[102.385369,32.327003],[102.386012,32.326709],[102.386085,32.326675],[102.386572,32.326499],[102.387208,32.326269],[102.387618,32.326291],[102.387649,32.326293],[102.387743,32.326298],[102.388139,32.326319],[102.388387,32.326332],[102.388519,32.326339],[102.389165,32.326696],[102.389704,32.327264],[102.389636,32.328009],[102.38963,32.328077],[102.389561,32.328778],[102.389525,32.329151],[102.389487,32.329532],[102.389464,32.330346],[102.389392,32.331457],[102.389373,32.331759],[102.389149,32.332155],[102.388894,32.332607],[102.388925,32.333294],[102.389072,32.333468],[102.389526,32.333597],[102.390993,32.334108],[102.391188,32.334133],[102.392014,32.33424],[102.393033,32.334372],[102.394551,32.334625],[102.395766,32.334799],[102.396598,32.334668],[102.397563,32.334466],[102.399008,32.335154],[102.399234,32.333035],[102.399466,32.33021],[102.399947,32.327518],[102.400234,32.326324],[102.400363,32.32534],[102.400456,32.324518],[102.400633,32.322953],[102.400807,32.322453],[102.401235,32.321224],[102.401741,32.320095],[102.401858,32.318758],[102.402707,32.316632],[102.403697,32.315111],[102.405008,32.313397],[102.405829,32.312275],[102.406189,32.310741],[102.406383,32.309472],[102.406479,32.308814],[102.406578,32.308137],[102.406573,32.306147],[102.406573,32.30611],[102.406573,32.306104],[102.406573,32.305983],[102.406572,32.305719],[102.406572,32.305591],[102.406571,32.305404],[102.406571,32.305289],[102.40657,32.305096],[102.406569,32.304863],[102.406569,32.304796],[102.406568,32.304556],[102.406567,32.304287],[102.406566,32.304193],[102.406566,32.304154],[102.406566,32.304044],[102.406565,32.303804],[102.406564,32.303568],[102.406563,32.303463],[102.406563,32.303396],[102.406562,32.303179],[102.406534,32.302981],[102.406507,32.302783],[102.406478,32.302577],[102.406446,32.302345],[102.40643,32.302229],[102.406403,32.30204],[102.406373,32.301825],[102.406345,32.301622],[102.406323,32.301464],[102.4063,32.301298],[102.406304,32.301146],[102.406309,32.300995],[102.406314,32.300817],[102.406319,32.300652],[102.406325,32.300416],[102.40633,32.300231],[102.406333,32.300126],[102.406337,32.299987],[102.406341,32.299853],[102.406342,32.299808],[102.406432,32.298755],[102.406286,32.297647],[102.406307,32.296894],[102.407203,32.296611],[102.408561,32.296689],[102.40948,32.296754],[102.409512,32.296756],[102.410499,32.296826],[102.410568,32.29683],[102.412026,32.29686],[102.412283,32.296866],[102.413298,32.296535],[102.413604,32.296585],[102.414055,32.29669],[102.414842,32.296875],[102.41684,32.296757],[102.418769,32.296758],[102.419457,32.296758],[102.419915,32.296739],[102.421203,32.296688],[102.422145,32.29657],[102.423392,32.296415],[102.424268,32.296274],[102.425403,32.295821],[102.425946,32.295245],[102.426431,32.29473],[102.427089,32.293474],[102.427678,32.29248],[102.428025,32.291217],[102.428394,32.289825],[102.428442,32.289646],[102.428583,32.289111],[102.429164,32.288382],[102.429922,32.287892],[102.430116,32.287767],[102.430546,32.28719],[102.43056,32.287172],[102.430585,32.287138],[102.430613,32.2871],[102.430642,32.287061],[102.430652,32.287048],[102.430739,32.286932],[102.430826,32.286815],[102.430842,32.286793],[102.430894,32.286724],[102.431242,32.285408],[102.431586,32.284251],[102.431994,32.28392],[102.43216,32.283786],[102.432327,32.283519],[102.432813,32.282741],[102.432974,32.281421],[102.432511,32.280194],[102.432303,32.278708],[102.432357,32.278597],[102.432394,32.27852],[102.432833,32.277608],[102.433249,32.276081],[102.433659,32.274819],[102.433592,32.272754],[102.433464,32.270687],[102.433526,32.268466],[102.433452,32.268119],[102.433317,32.267488],[102.433196,32.266924],[102.433139,32.266782],[102.433073,32.266629],[102.433007,32.266472],[102.432961,32.26634],[102.432896,32.266178],[102.432849,32.266061],[102.432788,32.26591],[102.432709,32.265757],[102.43262,32.265584],[102.432531,32.265416],[102.432429,32.265219],[102.432316,32.265001],[102.432211,32.264868],[102.432121,32.264754],[102.431988,32.264584],[102.431843,32.2644],[102.431713,32.264233],[102.431545,32.264019],[102.431401,32.263838],[102.431296,32.263705],[102.431173,32.263549],[102.431113,32.26361],[102.430917,32.263808],[102.430749,32.263871],[102.43055,32.263945],[102.430244,32.264061],[102.430032,32.26414],[102.429846,32.26421],[102.429622,32.264307],[102.429491,32.264364],[102.429196,32.264492],[102.428911,32.264616],[102.42863,32.26474],[102.428333,32.264867],[102.428111,32.264902],[102.427928,32.264931],[102.42776,32.264957],[102.427519,32.264995],[102.427291,32.265031],[102.427144,32.265054],[102.426934,32.265119],[102.426658,32.265204],[102.42637,32.265294],[102.426128,32.265369],[102.425892,32.265442],[102.425699,32.265501],[102.425453,32.265654],[102.425256,32.265777],[102.425064,32.265896],[102.424874,32.266014],[102.424673,32.26614],[102.424513,32.266241],[102.424304,32.266372],[102.424033,32.266405],[102.423829,32.26643],[102.423554,32.266463],[102.423305,32.26658],[102.423073,32.266688],[102.422796,32.266818],[102.422632,32.266984],[102.422484,32.267134],[102.422254,32.267366],[102.422059,32.267564],[102.421921,32.267703],[102.42177,32.267856],[102.420893,32.268049],[102.420724,32.267411],[102.420628,32.266403],[102.420277,32.265602],[102.420045,32.265385],[102.419549,32.264922],[102.419002,32.264412],[102.418229,32.263126],[102.417456,32.26206],[102.417453,32.262056],[102.41745,32.262051],[102.416786,32.261297],[102.416699,32.261108],[102.416492,32.260656],[102.416143,32.259802],[102.416096,32.259672],[102.416011,32.259436],[102.415904,32.259139],[102.415796,32.258842],[102.415811,32.258313],[102.415819,32.258033],[102.415832,32.257572],[102.415802,32.257217],[102.415758,32.256703],[102.415692,32.255929],[102.415631,32.255493],[102.415592,32.255207],[102.415537,32.254814],[102.415461,32.254511],[102.415391,32.254232],[102.415257,32.253697],[102.415242,32.253404],[102.415223,32.253017],[102.415206,32.252674],[102.415178,32.252108],[102.415166,32.251793],[102.415155,32.251458],[102.415141,32.251063],[102.415139,32.251002],[102.415135,32.2509],[102.415131,32.250786],[102.415126,32.250681],[102.415122,32.250547],[102.415117,32.250437],[102.415114,32.250319],[102.415112,32.250244],[102.415108,32.250148],[102.415105,32.250051],[102.415101,32.24994],[102.415097,32.249807],[102.415093,32.249679],[102.415087,32.249517],[102.415083,32.249368],[102.415078,32.249232],[102.415075,32.249142],[102.415024,32.249023],[102.414938,32.248818],[102.414838,32.248624],[102.414781,32.248501],[102.41477,32.2484],[102.414747,32.248199],[102.414739,32.248127],[102.414724,32.248002],[102.414703,32.247831],[102.414679,32.247592],[102.414652,32.247353],[102.414632,32.247174],[102.414657,32.246967],[102.414686,32.246721],[102.414722,32.246418],[102.414757,32.246127],[102.414796,32.245802],[102.414839,32.245634],[102.414889,32.245437],[102.414936,32.245253],[102.414985,32.24506],[102.415006,32.244978],[102.415018,32.244933],[102.415031,32.24488],[102.41505,32.244809],[102.415068,32.244738],[102.415088,32.244659],[102.415101,32.244609],[102.415114,32.244559],[102.415129,32.244497],[102.415142,32.244446],[102.415146,32.244433],[102.415148,32.244403],[102.415152,32.244359],[102.415158,32.24429],[102.415166,32.2442],[102.415175,32.244101],[102.415181,32.244025],[102.415187,32.243961],[102.415192,32.243905],[102.415198,32.243836],[102.415202,32.24379],[102.415209,32.243711],[102.415221,32.243576],[102.415229,32.243481],[102.415238,32.243376],[102.415243,32.243317],[102.41525,32.24324],[102.415259,32.243138],[102.415269,32.243022],[102.41528,32.242898],[102.415292,32.242763],[102.415303,32.242639],[102.415315,32.242508],[102.415325,32.242392],[102.415337,32.242266],[102.415347,32.242148],[102.415355,32.242057],[102.415364,32.241956],[102.415371,32.241877],[102.415376,32.241816],[102.415384,32.241737],[102.41539,32.241667],[102.415421,32.241316],[102.415506,32.240951],[102.415533,32.240835],[102.415551,32.240761],[102.415572,32.240669],[102.415577,32.240649],[102.415604,32.240533],[102.415608,32.240515],[102.41565,32.240335],[102.415676,32.240225],[102.415704,32.240104],[102.415726,32.240027],[102.415764,32.239893],[102.415806,32.239744],[102.415843,32.239614],[102.415883,32.239472],[102.41593,32.239304],[102.415968,32.239168],[102.416023,32.238974],[102.416052,32.238872],[102.416079,32.238774],[102.41612,32.238631],[102.416143,32.23856],[102.416174,32.238463],[102.416218,32.238329],[102.416279,32.238147],[102.416352,32.237915],[102.41642,32.237706],[102.41649,32.23749],[102.416555,32.237289],[102.416619,32.237092],[102.416665,32.236948],[102.416716,32.236876],[102.416804,32.236747],[102.416916,32.236586],[102.417037,32.236412],[102.417174,32.236213],[102.417309,32.236018],[102.417414,32.235866],[102.417541,32.235682],[102.417639,32.235539],[102.41775,32.235438],[102.417853,32.235344],[102.418007,32.235202],[102.418158,32.235063],[102.418325,32.23491],[102.418473,32.234774],[102.418598,32.234659],[102.418705,32.234556],[102.418831,32.234433],[102.418983,32.234286],[102.419122,32.234151],[102.419239,32.234037],[102.419323,32.23387],[102.419399,32.233719],[102.419798,32.23362],[102.420495,32.233406],[102.421206,32.23329],[102.421705,32.233208],[102.422269,32.233116],[102.422776,32.233126],[102.42345,32.23314],[102.424149,32.233154],[102.424565,32.233198],[102.425297,32.233276],[102.426057,32.233454],[102.426517,32.233562],[102.427028,32.233792],[102.427614,32.234056],[102.428109,32.234279],[102.428598,32.234556],[102.428998,32.234783],[102.429395,32.234958],[102.429741,32.235167],[102.430175,32.235429],[102.430659,32.235721],[102.431154,32.23602],[102.431821,32.236423],[102.432415,32.236781],[102.432801,32.237072],[102.433231,32.237395],[102.433618,32.237687],[102.433961,32.237949],[102.434286,32.238198],[102.43467,32.238491],[102.434893,32.238843],[102.435111,32.239185],[102.43535,32.239616],[102.435513,32.239911],[102.435746,32.240476],[102.436012,32.241121],[102.436197,32.24157],[102.436425,32.242124],[102.436524,32.242362],[102.436598,32.242544],[102.436716,32.242829],[102.436897,32.243267],[102.43712,32.243808],[102.437305,32.244257],[102.437409,32.244509],[102.437561,32.244879],[102.437653,32.245144],[102.437759,32.245448],[102.437881,32.245799],[102.437776,32.246008],[102.437652,32.246254],[102.437637,32.246283],[102.43739,32.246546],[102.437136,32.246815],[102.437004,32.246956],[102.436843,32.247229],[102.436687,32.247494],[102.436559,32.247711],[102.436461,32.247878],[102.4364,32.247982],[102.436359,32.248052],[102.436342,32.248671],[102.43699,32.24993],[102.437021,32.249991],[102.437106,32.250155],[102.43736,32.250654],[102.437761,32.251441],[102.437815,32.251581],[102.438039,32.252164],[102.438405,32.253118],[102.438638,32.254395],[102.439364,32.255878],[102.439525,32.256395],[102.439581,32.256575],[102.439681,32.256895],[102.439515,32.257349],[102.438964,32.257827],[102.438868,32.258063],[102.438634,32.258636],[102.438666,32.259208],[102.438685,32.25955],[102.438684,32.260357],[102.438684,32.260652],[102.438684,32.260953],[102.439117,32.261941],[102.440476,32.262784],[102.441138,32.263809],[102.441852,32.264378],[102.442676,32.265112],[102.443079,32.265806],[102.443412,32.266237],[102.443397,32.266791],[102.44334,32.267658],[102.443329,32.267833],[102.443258,32.268332],[102.443246,32.268412],[102.443138,32.269167],[102.443232,32.269919],[102.443212,32.270637],[102.443153,32.271353],[102.442814,32.272488],[102.442715,32.273302],[102.442676,32.273379],[102.442267,32.274206],[102.441318,32.275166],[102.440295,32.276059],[102.440265,32.276111],[102.440042,32.276506],[102.439729,32.277058],[102.439512,32.277416],[102.439146,32.278018],[102.439004,32.278251],[102.438982,32.278347],[102.438884,32.278774],[102.438861,32.278874],[102.438698,32.279582],[102.4387,32.279674],[102.438715,32.280333],[102.438138,32.281807],[102.438077,32.281961],[102.437764,32.28276],[102.437639,32.283096],[102.437464,32.283566],[102.437437,32.283638],[102.43739,32.283764],[102.436614,32.285412],[102.436418,32.286909],[102.436342,32.287743],[102.436334,32.287824],[102.436307,32.288114],[102.436235,32.288407],[102.436202,32.288543],[102.436194,32.288578],[102.436182,32.288624],[102.436169,32.288678],[102.435917,32.289704],[102.436036,32.290947],[102.436316,32.291898],[102.436507,32.293305],[102.436708,32.294353],[102.436747,32.295033],[102.436772,32.295461],[102.436785,32.295692],[102.437007,32.297452],[102.437037,32.297687],[102.436929,32.298794],[102.436959,32.300459],[102.436964,32.301633],[102.436629,32.302605],[102.436339,32.30335],[102.436223,32.30475],[102.435919,32.305984],[102.435335,32.307636],[102.435152,32.308676],[102.434708,32.309417],[102.434185,32.310287],[102.433662,32.311092],[102.43301,32.312416],[102.432892,32.313138],[102.432873,32.31325],[102.432871,32.313262],[102.432874,32.313331],[102.432875,32.313348],[102.432875,32.313349],[102.432877,32.313359],[102.432877,32.313361],[102.432878,32.313389],[102.432948,32.314634],[102.433116,32.315485],[102.433206,32.316368],[102.433846,32.317747],[102.434105,32.318304],[102.434182,32.318469],[102.434412,32.318963],[102.434554,32.31927],[102.434672,32.319572],[102.434873,32.320088],[102.435123,32.320905],[102.435498,32.322131],[102.43588,32.323124],[102.435809,32.32385],[102.435787,32.324072],[102.435784,32.324108],[102.435761,32.324933],[102.435756,32.325081],[102.435736,32.325798],[102.435735,32.325853],[102.435728,32.326079],[102.436313,32.327135],[102.436392,32.328078],[102.436403,32.328213],[102.436415,32.328355],[102.436481,32.328474],[102.436548,32.328594],[102.436634,32.32875],[102.436744,32.328948],[102.43685,32.329139],[102.436936,32.329295],[102.437047,32.329495],[102.43713,32.329646],[102.437177,32.32987],[102.437211,32.330039],[102.437252,32.330237],[102.437254,32.330243],[102.437551,32.331684],[102.437515,32.332959],[102.437296,32.333477],[102.437072,32.333964],[102.436784,32.334713],[102.436948,32.335206],[102.437005,32.335257],[102.437413,32.33562],[102.437419,32.335626],[102.437468,32.33567],[102.437505,32.335685],[102.437611,32.335728],[102.437753,32.335786],[102.438076,32.335918],[102.43883,32.336226],[102.440769,32.336831],[102.441061,32.336939],[102.441245,32.337007],[102.441275,32.337018],[102.441805,32.337214],[102.444552,32.338229],[102.444639,32.338395],[102.444719,32.338546],[102.444737,32.338582],[102.444755,32.338616],[102.444765,32.338635],[102.445203,32.33947],[102.446265,32.341494],[102.44698,32.343262],[102.447546,32.344897],[102.447984,32.345262],[102.448742,32.345895],[102.449134,32.346058],[102.449219,32.346108],[102.449228,32.346117],[102.449363,32.346021],[102.449807,32.346111],[102.450239,32.346387],[102.450444,32.346518],[102.45045,32.346521],[102.450575,32.346601],[102.450859,32.346782],[102.451698,32.346864],[102.453604,32.347097],[102.454452,32.347055],[102.454496,32.347052],[102.454523,32.347051],[102.455753,32.346816],[102.455953,32.34682],[102.456977,32.346841],[102.458579,32.347678],[102.458786,32.347787],[102.460597,32.348667],[102.462705,32.349879],[102.464668,32.350827],[102.466106,32.351376],[102.467467,32.351923],[102.468904,32.352536],[102.470346,32.352955],[102.470661,32.353029],[102.471258,32.353168],[102.472326,32.353254],[102.473468,32.353472],[102.47458,32.354728],[102.475767,32.356051],[102.476598,32.356457],[102.478407,32.357402],[102.479785,32.358482],[102.480688,32.359019],[102.481338,32.359864],[102.482039,32.361072],[102.482135,32.362009],[102.482273,32.363674],[102.482675,32.364617],[102.483433,32.365983],[102.484561,32.367252],[102.485027,32.368093],[102.48628,32.369261],[102.486611,32.370566],[102.486269,32.371858],[102.486108,32.373257],[102.486154,32.37383],[102.487249,32.374059],[102.488027,32.374698],[102.488845,32.376117],[102.490394,32.377654],[102.490542,32.378956],[102.490509,32.38015],[102.490598,32.381346],[102.491049,32.382758],[102.491141,32.383851],[102.491462,32.385519],[102.491056,32.386914],[102.490778,32.390337],[102.490554,32.391787],[102.490756,32.393349],[102.490781,32.394648],[102.490508,32.395682],[102.48943,32.397011],[102.488665,32.398086],[102.487793,32.39864],[102.485717,32.400625],[102.483981,32.401421],[102.48292,32.402127],[102.482146,32.403566],[102.481929,32.404757],[102.481957,32.405952],[102.481934,32.406782],[102.481535,32.407917],[102.481502,32.409111],[102.481512,32.41093],[102.481419,32.412071],[102.480722,32.415121],[102.480625,32.416418],[102.480701,32.418082],[102.480725,32.419433],[102.480743,32.420991],[102.481169,32.423285],[102.481591,32.425735],[102.482403,32.427362],[102.482739,32.428511],[102.48343,32.430083],[102.484503,32.431143],[102.485528,32.431735],[102.48649,32.432378],[102.487322,32.433277],[102.488331,32.43444],[102.490313,32.435882],[102.491259,32.437096],[102.491415,32.438086],[102.491511,32.439075],[102.492023,32.440487],[102.492528,32.44216],[102.492802,32.443308],[102.493447,32.444359],[102.493962,32.445668],[102.494777,32.447191],[102.495789,32.44825],[102.496884,32.448531],[102.498921,32.448001],[102.499732,32.447445],[102.500299,32.446213],[102.501265,32.445927],[102.501934,32.445535],[102.502618,32.444584],[102.50465,32.442494],[102.506141,32.440494],[102.507601,32.43961],[102.509176,32.438931],[102.510628,32.438351],[102.511793,32.437308],[102.513027,32.435963],[102.514031,32.434258],[102.514308,32.432894],[102.513938,32.43111],[102.512401,32.428239],[102.511394,32.425733],[102.510669,32.423791],[102.510708,32.422371],[102.510749,32.422294],[102.511223,32.421402],[102.511236,32.421379],[102.511246,32.421359],[102.511263,32.421327],[102.511323,32.421215],[102.511402,32.421066],[102.511778,32.420464],[102.512634,32.419771],[102.513727,32.419184],[102.516419,32.419186],[102.518773,32.419233],[102.518846,32.419234],[102.520065,32.419258],[102.521922,32.419193],[102.523122,32.419217],[102.523884,32.419232],[102.52509,32.419256],[102.526508,32.419228],[102.527664,32.419205],[102.527846,32.419192],[102.528362,32.419155],[102.529342,32.419085],[102.531386,32.41872],[102.532553,32.418385],[102.532712,32.41834],[102.533156,32.418286],[102.533943,32.418191],[102.534201,32.418159],[102.534512,32.418121],[102.535523,32.418344],[102.536887,32.418777],[102.538407,32.419519],[102.538835,32.419728],[102.538959,32.419788],[102.540902,32.420733],[102.543321,32.421947],[102.543751,32.422217],[102.544321,32.422575],[102.546463,32.423992],[102.54649,32.42401],[102.546613,32.424091],[102.5482,32.425063],[102.548362,32.425162],[102.54848,32.425234],[102.548491,32.425241],[102.548496,32.425244],[102.548521,32.425262],[102.548552,32.425285],[102.548567,32.425296],[102.548572,32.4253],[102.548578,32.425304],[102.550491,32.426704],[102.55254,32.428367],[102.553757,32.429224],[102.553949,32.429358],[102.556042,32.431289],[102.556984,32.432157],[102.558222,32.432841],[102.560255,32.433513],[102.561318,32.433826],[102.562118,32.434004],[102.562561,32.434597],[102.562842,32.435544],[102.563736,32.436471],[102.564399,32.437458],[102.565107,32.438186],[102.565743,32.438718],[102.566501,32.439025],[102.567794,32.439374],[102.569919,32.440065],[102.571286,32.440513],[102.573031,32.441131],[102.574966,32.441786],[102.576027,32.442228],[102.577781,32.442489],[102.579065,32.44266],[102.579498,32.442717],[102.580868,32.44287],[102.581255,32.442913],[102.583009,32.443174],[102.584527,32.44369],[102.586495,32.444572],[102.588311,32.445386],[102.589935,32.446262],[102.591138,32.447097],[102.592072,32.447959],[102.592622,32.448911],[102.593035,32.449211],[102.59391,32.449423],[102.59475,32.449504],[102.595746,32.44949],[102.596137,32.449205],[102.596761,32.448763],[102.598182,32.448628],[102.598772,32.448623],[102.598918,32.448621],[102.599103,32.44862],[102.599369,32.448618],[102.600517,32.448672],[102.601208,32.44862],[102.601388,32.448466],[102.601593,32.44829],[102.601913,32.448017],[102.603164,32.447034],[102.604169,32.446696],[102.606124,32.446636],[102.607959,32.446736],[102.609444,32.447056],[102.61112,32.447413],[102.612682,32.447702],[102.61341,32.447871],[102.61394,32.447994],[102.614205,32.448056],[102.614386,32.448063],[102.61501,32.448087],[102.61585,32.44812],[102.61711,32.448241],[102.618083,32.448202],[102.618222,32.448197],[102.619196,32.448167],[102.619525,32.448157],[102.620972,32.448476],[102.62145,32.448637],[102.622301,32.448924],[102.623403,32.449237],[102.624124,32.44951],[102.625067,32.450048],[102.625449,32.450087],[102.626046,32.449222],[102.626744,32.448499],[102.626755,32.448488],[102.626764,32.448476],[102.627062,32.448116],[102.627704,32.447337],[102.628138,32.446858],[102.629403,32.446785],[102.630589,32.44684],[102.631846,32.447091],[102.632531,32.447266],[102.633019,32.447665],[102.633699,32.448002],[102.634037,32.448268],[102.634595,32.448896],[102.635334,32.449916],[102.635926,32.450707],[102.636745,32.451631],[102.637417,32.452261],[102.638217,32.452438],[102.639168,32.452684],[102.640118,32.452994],[102.641417,32.453083],[102.64168,32.453283],[102.641667,32.453802],[102.642062,32.454784],[102.642086,32.455336],[102.643154,32.455518],[102.644645,32.455777],[102.645651,32.456373],[102.646926,32.45709],[102.648555,32.458134],[102.648767,32.458034],[102.651823,32.45676],[102.652817,32.456279],[102.654573,32.455181],[102.655635,32.455067],[102.656853,32.455057],[102.657613,32.454505],[102.65831,32.453353],[102.658992,32.4528],[102.659429,32.452575],[102.660497,32.452295],[102.66137,32.452311],[102.661713,32.452318],[102.662136,32.452314],[102.662891,32.452306],[102.66374,32.452888],[102.665082,32.454111],[102.666433,32.455002],[102.667513,32.455754],[102.669418,32.456488],[102.671048,32.457217],[102.672094,32.457769],[102.672349,32.458506],[102.67209,32.459433],[102.671722,32.461523],[102.671691,32.462721],[102.671317,32.463546],[102.671747,32.463587],[102.672971,32.463344],[102.673834,32.46336],[102.675509,32.46389],[102.676399,32.464406],[102.677165,32.465119],[102.678424,32.466573],[102.679419,32.467557],[102.679673,32.468394],[102.680198,32.469335],[102.680831,32.469147],[102.681996,32.468137],[102.682959,32.467322],[102.683992,32.466842],[102.685268,32.4661],[102.686659,32.465427],[102.688008,32.464885],[102.689386,32.464744],[102.691043,32.464409],[102.691914,32.464125],[102.693445,32.464153],[102.694665,32.464042],[102.696304,32.464007],[102.696354,32.464006],[102.696979,32.464118],[102.698109,32.464471],[102.699758,32.464468],[102.701285,32.464629],[102.702303,32.464747],[102.703025,32.464161],[102.70442,32.463321],[102.705694,32.462646],[102.705837,32.462569],[102.707325,32.461777],[102.707743,32.461523],[102.70796,32.461391],[102.708442,32.461098],[102.709838,32.460224],[102.711503,32.459589],[102.712851,32.459081],[102.713919,32.458767],[102.7153,32.458493],[102.715839,32.458306],[102.717122,32.45786],[102.718069,32.457644],[102.718778,32.457557],[102.718971,32.457495],[102.719038,32.45753],[102.719421,32.45773],[102.719804,32.45793],[102.720187,32.45813],[102.720484,32.458292],[102.72078,32.458455],[102.721076,32.458617],[102.721076,32.458617],[102.721076,32.458618],[102.72121,32.458703],[102.721395,32.458822],[102.721395,32.458822],[102.721396,32.458822],[102.721596,32.458976],[102.721796,32.459129],[102.722062,32.459472],[102.722308,32.459787],[102.722556,32.460105],[102.722805,32.460424],[102.723109,32.460712],[102.723414,32.461001],[102.723718,32.46129],[102.723912,32.46144],[102.724215,32.461674],[102.724518,32.461909],[102.724837,32.462175],[102.725156,32.462442],[102.725403,32.46257],[102.725651,32.462699],[102.726048,32.462863],[102.726445,32.463027],[102.726843,32.463191],[102.72724,32.463355],[102.727607,32.463443],[102.727975,32.46353],[102.728342,32.463618],[102.72871,32.463705],[102.729077,32.463793],[102.729464,32.463963],[102.729851,32.464133],[102.730127,32.464255],[102.730403,32.464376],[102.730657,32.464488],[102.731,32.464685],[102.731342,32.464883],[102.731685,32.46508],[102.732028,32.465278],[102.732315,32.465468],[102.732603,32.465659],[102.732891,32.465849],[102.733179,32.466039],[102.733517,32.466256],[102.733855,32.466472],[102.734193,32.466689],[102.734531,32.466905],[102.734654,32.466915],[102.734988,32.466867],[102.73518,32.466712],[102.735235,32.466667],[102.735514,32.466379],[102.735793,32.46609],[102.736073,32.465801],[102.736321,32.465624],[102.73657,32.465447],[102.736818,32.465269],[102.736837,32.465252],[102.737156,32.464969],[102.737474,32.464685],[102.737786,32.464479],[102.737832,32.464449],[102.737995,32.464297],[102.738357,32.46415],[102.738719,32.464002],[102.739147,32.463917],[102.739518,32.464002],[102.739651,32.464013],[102.739675,32.464012],[102.739993,32.464036],[102.740311,32.464061],[102.740352,32.464071],[102.740441,32.464079],[102.740548,32.464119],[102.740923,32.464261],[102.741298,32.464402],[102.741655,32.464535],[102.742012,32.464669],[102.742212,32.464726],[102.742335,32.464726],[102.742497,32.46464],[102.74265,32.464528],[102.742897,32.464346],[102.743145,32.464165],[102.743392,32.463983],[102.743763,32.463788],[102.744134,32.463593],[102.744553,32.463441],[102.744801,32.463384],[102.745134,32.463374],[102.745464,32.463412],[102.745794,32.46345],[102.746123,32.463488],[102.746287,32.463552],[102.746522,32.463644],[102.746823,32.463761],[102.747123,32.463879],[102.747432,32.463979],[102.747742,32.464079],[102.747973,32.464103],[102.748275,32.464136],[102.748627,32.464207],[102.748979,32.464278],[102.749179,32.464221],[102.749341,32.464155],[102.749565,32.463957],[102.749578,32.463945],[102.749807,32.463726],[102.750031,32.463655],[102.750254,32.463584],[102.750511,32.463536],[102.750768,32.463488],[102.75113,32.463469],[102.75135,32.463488],[102.751473,32.463498],[102.751787,32.463498],[102.752148,32.463403],[102.752407,32.463352],[102.752681,32.463298],[102.752986,32.463284],[102.75329,32.46327],[102.753592,32.4632],[102.753893,32.46313],[102.754272,32.463043],[102.754651,32.462955],[102.754694,32.462948],[102.755034,32.46289],[102.755375,32.462832],[102.755689,32.462784],[102.755993,32.462813],[102.756118,32.462857],[102.756498,32.462994],[102.756679,32.463003],[102.756907,32.462955],[102.757288,32.462917],[102.757592,32.462984],[102.757897,32.463051],[102.758259,32.463212],[102.758582,32.463251],[102.758968,32.46327],[102.759353,32.463289],[102.759715,32.463327],[102.760048,32.463554],[102.760077,32.463574],[102.760372,32.463815],[102.760667,32.464056],[102.760962,32.464297],[102.761238,32.464483],[102.761514,32.464669],[102.761536,32.464681],[102.761856,32.46485],[102.762132,32.464973],[102.762504,32.465059],[102.76278,32.465126],[102.763056,32.465192],[102.763408,32.465211],[102.76376,32.46523],[102.764112,32.465325],[102.764464,32.465449],[102.764693,32.465497],[102.764988,32.465516],[102.765205,32.46558],[102.765422,32.465645],[102.765422,32.465645],[102.765422,32.465645],[102.765547,32.465686],[102.765721,32.465744],[102.765721,32.465745],[102.765721,32.465745],[102.766039,32.465868],[102.766358,32.465992],[102.766625,32.466249],[102.766798,32.466407],[102.766971,32.466565],[102.767291,32.466858],[102.766968,32.467029],[102.764686,32.468174],[102.763549,32.468578],[102.762228,32.468925],[102.761659,32.469075],[102.760208,32.469527],[102.757623,32.470277],[102.755668,32.470826],[102.754269,32.471703],[102.752602,32.473318],[102.750992,32.475094],[102.750684,32.475398],[102.750094,32.47598],[102.748555,32.477438],[102.746753,32.479422],[102.745918,32.480256],[102.743611,32.482391],[102.742389,32.483696],[102.740655,32.485416],[102.740527,32.485544],[102.738793,32.487293],[102.736673,32.48943],[102.734052,32.491559],[102.733208,32.492503],[102.732184,32.493648],[102.731148,32.495009],[102.730612,32.495811],[102.729782,32.497054],[102.728646,32.498293],[102.728629,32.498311],[102.72856,32.498386],[102.728511,32.49844],[102.728492,32.49846],[102.728485,32.498468],[102.728471,32.498483],[102.728395,32.498566],[102.728367,32.498597],[102.728166,32.498816],[102.727914,32.49909],[102.726435,32.500656],[102.724504,32.502743],[102.724398,32.502835],[102.72393,32.50324],[102.723844,32.503314],[102.723843,32.503314],[102.723842,32.503315],[102.723817,32.503337],[102.723805,32.503348],[102.723691,32.503446],[102.723365,32.503728],[102.722519,32.504459],[102.722037,32.504752],[102.721877,32.504849],[102.721875,32.50485],[102.721873,32.504851],[102.721542,32.505053],[102.721438,32.505116],[102.721414,32.50513],[102.721334,32.505179],[102.72121,32.505255],[102.721208,32.505255],[102.721208,32.505256],[102.721117,32.505311],[102.721051,32.505351],[102.720993,32.505386],[102.720291,32.505904],[102.720151,32.505862],[102.720048,32.505831],[102.720017,32.505821],[102.720007,32.505818],[102.720007,32.505818],[102.720006,32.505818],[102.719977,32.505809],[102.719934,32.505796],[102.719359,32.505622],[102.71921,32.505691],[102.719204,32.505693],[102.71919,32.5057],[102.719185,32.505702],[102.718915,32.505826],[102.718782,32.506142],[102.718745,32.50632],[102.718639,32.50683],[102.718252,32.5073],[102.717491,32.507658],[102.716892,32.507487],[102.716857,32.507477],[102.7166,32.507404],[102.716496,32.507374],[102.71638,32.507319],[102.71622,32.507243],[102.716046,32.50716],[102.715942,32.507111],[102.715862,32.507073],[102.71583,32.507058],[102.715692,32.506992],[102.715631,32.506963],[102.715568,32.506933],[102.714991,32.507453],[102.714349,32.508078],[102.713785,32.508121],[102.713287,32.508006],[102.713075,32.507869],[102.713074,32.507869],[102.713073,32.507868],[102.713047,32.507852],[102.713025,32.507837],[102.712937,32.507781],[102.712847,32.507723],[102.712821,32.507706],[102.712609,32.507569],[102.712168,32.507667],[102.712118,32.507679],[102.711979,32.507714],[102.711945,32.507722],[102.711917,32.507729],[102.711916,32.507729],[102.711915,32.507729],[102.71116,32.507914],[102.710723,32.508037],[102.71031,32.508154],[102.710292,32.508174],[102.710504,32.50832],[102.71083,32.508545],[102.710882,32.50897],[102.710806,32.5095],[102.710493,32.509494],[102.710127,32.509116],[102.710063,32.509093],[102.710039,32.509084],[102.709979,32.509063],[102.709954,32.509053],[102.709887,32.509029],[102.709817,32.509004],[102.709529,32.509284],[102.709496,32.509317],[102.709494,32.50933],[102.70949,32.509363],[102.709487,32.509387],[102.709475,32.50948],[102.709417,32.509952],[102.709095,32.510318],[102.708462,32.510571],[102.708224,32.510567],[102.708024,32.510563],[102.70764,32.510325],[102.707622,32.510314],[102.707532,32.510258],[102.707499,32.510238],[102.707407,32.510181],[102.7071,32.509963],[102.70694,32.510034],[102.706669,32.510155],[102.706659,32.51016],[102.70656,32.510204],[102.706534,32.510216],[102.706532,32.510217],[102.706529,32.510218],[102.706572,32.511015],[102.706493,32.51165],[102.706044,32.512066],[102.705732,32.512007],[102.705623,32.511782],[102.705623,32.511782],[102.705622,32.511781],[102.705622,32.511781],[102.705612,32.51176],[102.70556,32.511652],[102.705536,32.511604],[102.705316,32.511151],[102.704959,32.510401],[102.704482,32.510437],[102.704444,32.51044],[102.704394,32.510444],[102.704368,32.510512],[102.704368,32.510512],[102.704368,32.510512],[102.704323,32.510627],[102.704126,32.511129],[102.703558,32.511331],[102.70256,32.511154],[102.702492,32.511159],[102.702484,32.51116],[102.702421,32.511165],[102.702386,32.511168],[102.702384,32.511168],[102.702383,32.511168],[102.701667,32.511226],[102.701654,32.511227],[102.70162,32.51123],[102.70153,32.511237],[102.701513,32.511239],[102.701493,32.51124],[102.70036,32.511485],[102.699908,32.512007],[102.700016,32.512699],[102.700255,32.513128],[102.700242,32.513658],[102.699918,32.514077],[102.698342,32.514473],[102.697181,32.514664],[102.697136,32.514672],[102.697061,32.514684],[102.696895,32.514711],[102.696545,32.514754],[102.696356,32.514778],[102.695765,32.51485],[102.695268,32.514682],[102.695342,32.514081],[102.695344,32.514065],[102.695347,32.514047],[102.695347,32.514047],[102.695347,32.514046],[102.695447,32.513931],[102.695492,32.513878],[102.695798,32.513524],[102.695699,32.513401],[102.695663,32.513356],[102.695617,32.513298],[102.695589,32.513264],[102.695589,32.513264],[102.695589,32.513264],[102.695495,32.513147],[102.694769,32.513134],[102.694744,32.513133],[102.69471,32.513123],[102.694688,32.513116],[102.694515,32.513064],[102.694498,32.513059],[102.694386,32.513025],[102.694049,32.512923],[102.694022,32.512914],[102.693998,32.512907],[102.693927,32.512948],[102.693926,32.512948],[102.693926,32.512948],[102.693915,32.512954],[102.693903,32.512961],[102.693362,32.513267],[102.692987,32.51326],[102.692613,32.5132],[102.692448,32.513257],[102.691931,32.513438],[102.691602,32.513553],[102.69077,32.514228],[102.690441,32.514858],[102.690046,32.514998],[102.689303,32.515262],[102.688716,32.51535],[102.688046,32.515451],[102.687724,32.515764],[102.687266,32.516551],[102.686701,32.516594],[102.686671,32.516504],[102.686655,32.516456],[102.686651,32.516445],[102.686625,32.516366],[102.686613,32.516331],[102.686606,32.51631],[102.686468,32.5159],[102.686179,32.515759],[102.686095,32.515718],[102.686083,32.515712],[102.68597,32.515657],[102.685954,32.515649],[102.685788,32.515569],[102.684905,32.515818],[102.684625,32.515951],[102.68351,32.516482],[102.68311,32.517089],[102.682923,32.517373],[102.682352,32.517681],[102.681919,32.517461],[102.681926,32.51717],[102.681929,32.517076],[102.681933,32.516899],[102.681933,32.516894],[102.681934,32.516877],[102.681434,32.516815],[102.681022,32.51715],[102.681017,32.517154],[102.680962,32.517198],[102.680957,32.517203],[102.680882,32.517263],[102.680855,32.517285],[102.680667,32.517438],[102.680585,32.518179],[102.680821,32.518767],[102.680557,32.519293],[102.680065,32.518912],[102.679507,32.51869],[102.679367,32.518942],[102.679245,32.519163],[102.679067,32.519549],[102.679013,32.519669],[102.678979,32.519741],[102.678266,32.520027],[102.678163,32.520069],[102.677981,32.520142],[102.677587,32.520299],[102.677006,32.520979],[102.676171,32.521759],[102.675023,32.522587],[102.67383,32.522671],[102.673602,32.522737],[102.67358,32.522743],[102.673464,32.522776],[102.673439,32.522784],[102.673136,32.52287],[102.673223,32.522998],[102.673237,32.523004],[102.673251,32.52301],[102.673382,32.523068],[102.673403,32.523078],[102.673758,32.523236],[102.673671,32.523595],[102.672697,32.523936],[102.67211,32.524252],[102.671554,32.524486],[102.671291,32.524597],[102.670986,32.524491],[102.670793,32.524424],[102.670553,32.524212],[102.670528,32.524189],[102.670513,32.524176],[102.670492,32.524157],[102.670432,32.524104],[102.670432,32.524104],[102.670431,32.524103],[102.670378,32.524057],[102.669892,32.523459],[102.669558,32.52293],[102.669515,32.522935],[102.669513,32.522936],[102.66951,32.522936],[102.669403,32.522951],[102.6694,32.522951],[102.669399,32.522951],[102.669367,32.522955],[102.669294,32.522965],[102.669132,32.522987],[102.668774,32.523406],[102.669075,32.523706],[102.66941,32.524202],[102.66932,32.524691],[102.669042,32.52498],[102.668617,32.525005],[102.668159,32.5248],[102.668065,32.524686],[102.668035,32.52465],[102.668012,32.524621],[102.667961,32.524559],[102.667961,32.524559],[102.667961,32.524558],[102.667951,32.524547],[102.66786,32.524435],[102.667492,32.524569],[102.667477,32.524574],[102.667431,32.524591],[102.6674,32.524619],[102.667395,32.524624],[102.66728,32.524732],[102.666917,32.525072],[102.666295,32.525224],[102.666055,32.525546],[102.665926,32.526067],[102.665566,32.526551],[102.664905,32.526735],[102.664518,32.52676],[102.664161,32.527146],[102.66307,32.527518],[102.661943,32.527824],[102.661704,32.528114],[102.66135,32.528369],[102.660922,32.528492],[102.660698,32.528418],[102.66068,32.528412],[102.660672,32.52841],[102.660566,32.528375],[102.660548,32.528369],[102.660501,32.528353],[102.66008,32.528215],[102.660071,32.528223],[102.660043,32.528249],[102.66003,32.528261],[102.659953,32.528333],[102.659942,32.528343],[102.659902,32.528379],[102.659803,32.528471],[102.659987,32.528834],[102.659938,32.529226],[102.659581,32.529579],[102.658259,32.529947],[102.657409,32.529996],[102.657263,32.52996],[102.657244,32.529955],[102.657237,32.529953],[102.65713,32.529926],[102.657123,32.529925],[102.656565,32.529784],[102.65641,32.529815],[102.656314,32.529834],[102.655669,32.529963],[102.655662,32.529965],[102.655534,32.52999],[102.655517,32.529994],[102.654879,32.53081],[102.654094,32.531286],[102.653944,32.531337],[102.653643,32.53144],[102.653072,32.531635],[102.651862,32.531816],[102.651536,32.531764],[102.650709,32.531631],[102.650693,32.531584],[102.65053,32.531097],[102.650534,32.531043],[102.650535,32.531031],[102.650536,32.531019],[102.650545,32.530898],[102.650546,32.530877],[102.650605,32.530077],[102.650322,32.529826],[102.650269,32.52985],[102.650259,32.529855],[102.650175,32.529894],[102.650146,32.529907],[102.649875,32.530032],[102.649638,32.53014],[102.649002,32.530496],[102.647929,32.530966],[102.646955,32.531316],[102.646118,32.531954],[102.645453,32.532333],[102.645388,32.532371],[102.645358,32.532387],[102.645329,32.532404],[102.645286,32.532429],[102.645275,32.532438],[102.645266,32.532445],[102.64499,32.532668],[102.645046,32.532714],[102.645294,32.532915],[102.645509,32.533089],[102.645557,32.533128],[102.64564,32.533307],[102.645627,32.533787],[102.645269,32.533806],[102.644856,32.533577],[102.644796,32.533544],[102.644769,32.533529],[102.644706,32.533494],[102.644682,32.533481],[102.644681,32.53348],[102.644681,32.53348],[102.64468,32.53348],[102.644393,32.533265],[102.644197,32.533295],[102.644196,32.533295],[102.644196,32.533295],[102.644091,32.533311],[102.64409,32.533311],[102.64408,32.533313],[102.643938,32.533334],[102.643625,32.533382],[102.643052,32.533827],[102.643167,32.534021],[102.643403,32.534187],[102.643595,32.534421],[102.643747,32.534606],[102.643747,32.534607],[102.643747,32.534607],[102.643783,32.534908],[102.643805,32.535024],[102.643814,32.535071],[102.643861,32.535323],[102.643453,32.535653],[102.643005,32.535605],[102.643002,32.535605],[102.643001,32.535604],[102.642943,32.535598],[102.642909,32.535594],[102.642891,32.535593],[102.642613,32.535562],[102.642035,32.535411],[102.641925,32.535382],[102.641818,32.535354],[102.641818,32.535354],[102.641735,32.535332],[102.641687,32.535319],[102.641299,32.535284],[102.641281,32.535282],[102.641211,32.535275],[102.641096,32.535265],[102.640967,32.535253],[102.640669,32.535225],[102.640672,32.535242],[102.640675,32.535254],[102.640694,32.535356],[102.640747,32.53564],[102.640563,32.5359],[102.640427,32.535948],[102.640397,32.535959],[102.640236,32.536015],[102.640215,32.536023],[102.64016,32.536042],[102.64012,32.536042],[102.639752,32.536035],[102.639724,32.536034],[102.63956,32.536031],[102.639527,32.536031],[102.639376,32.536028],[102.639317,32.536027],[102.638913,32.536207],[102.638812,32.536694],[102.638761,32.536728],[102.638676,32.536787],[102.638603,32.536836],[102.638587,32.536847],[102.638587,32.536848],[102.638586,32.536848],[102.638572,32.536858],[102.638505,32.536904],[102.638494,32.536911],[102.638493,32.536912],[102.638376,32.536992],[102.638376,32.536992],[102.638375,32.536993],[102.638283,32.537056],[102.638224,32.537096],[102.637999,32.537479],[102.637977,32.537517],[102.637927,32.537602],[102.637863,32.537711],[102.637853,32.537728],[102.637723,32.537886],[102.637682,32.537935],[102.637676,32.537942],[102.637616,32.538015],[102.637606,32.538026],[102.637599,32.538036],[102.637578,32.538061],[102.637513,32.538057],[102.637285,32.538045],[102.637269,32.538044],[102.637093,32.538035],[102.637073,32.538034],[102.636613,32.538009],[102.636583,32.538007],[102.636515,32.538003],[102.636483,32.538003],[102.636457,32.538002],[102.636312,32.538],[102.635849,32.537991],[102.635572,32.538437],[102.635523,32.538508],[102.635512,32.538524],[102.635443,32.538626],[102.635439,32.538632],[102.63535,32.538763],[102.635295,32.538845],[102.634716,32.538909],[102.634383,32.539042],[102.634369,32.539048],[102.63427,32.539088],[102.634269,32.539088],[102.634268,32.539088],[102.634267,32.539116],[102.634263,32.539258],[102.634261,32.539351],[102.63426,32.539366],[102.63426,32.539389],[102.634332,32.539479],[102.634336,32.539484],[102.634465,32.539644],[102.634475,32.539656],[102.634502,32.539652],[102.634853,32.539595],[102.635012,32.539569],[102.635099,32.539555],[102.635224,32.539591],[102.635234,32.539594],[102.635296,32.539612],[102.635763,32.539745],[102.635773,32.539748],[102.635803,32.539756],[102.635805,32.539763],[102.635849,32.539881],[102.635864,32.539923],[102.635927,32.540097],[102.635744,32.540319],[102.635162,32.540337],[102.635121,32.540338],[102.634989,32.540342],[102.634727,32.540324],[102.634704,32.540323],[102.634236,32.540291],[102.634144,32.540353],[102.633965,32.540473],[102.633956,32.5405],[102.633821,32.540884],[102.633902,32.541164],[102.633902,32.541164],[102.633902,32.541166],[102.633928,32.541255],[102.633928,32.541256],[102.633933,32.541275],[102.633966,32.541389],[102.633984,32.541451],[102.634002,32.541525],[102.634022,32.541607],[102.634025,32.541618],[102.634028,32.54163],[102.634043,32.541692],[102.634043,32.541694],[102.634044,32.541696],[102.634104,32.541942],[102.633512,32.542532],[102.632525,32.542927],[102.632235,32.542876],[102.632217,32.542873],[102.632135,32.542859],[102.632132,32.542858],[102.63213,32.542858],[102.632039,32.542842],[102.631989,32.54277],[102.631935,32.542694],[102.631934,32.542692],[102.631933,32.54269],[102.631826,32.542538],[102.631837,32.542473],[102.63184,32.542455],[102.631842,32.542444],[102.631869,32.542291],[102.631889,32.542171],[102.631892,32.542158],[102.63193,32.541938],[102.631845,32.541759],[102.631836,32.54174],[102.63176,32.541581],[102.631678,32.541408],[102.631678,32.541408],[102.631678,32.541407],[102.631635,32.541408],[102.630901,32.541419],[102.630886,32.541419],[102.630884,32.541419],[102.630883,32.541419],[102.630881,32.541419],[102.630813,32.54142],[102.630765,32.541421],[102.630765,32.541421],[102.630756,32.541421],[102.630568,32.541424],[102.629999,32.541316],[102.629969,32.541311],[102.62988,32.541294],[102.629861,32.54129],[102.629685,32.541257],[102.629664,32.541304],[102.629571,32.54151],[102.629563,32.541528],[102.629517,32.541628],[102.629508,32.54165],[102.62945,32.541779],[102.629441,32.541815],[102.629349,32.542228],[102.629265,32.542271],[102.62922,32.542295],[102.629207,32.542302],[102.629114,32.54235],[102.629104,32.542355],[102.629047,32.542384],[102.628719,32.542554],[102.628708,32.54261],[102.628705,32.542621],[102.628685,32.542719],[102.628655,32.54286],[102.628621,32.543023],[102.628618,32.543041],[102.628567,32.543054],[102.628128,32.543169],[102.627813,32.543251],[102.626966,32.542985],[102.626669,32.542891],[102.62662,32.542915],[102.626593,32.542927],[102.626426,32.543006],[102.626403,32.543016],[102.626329,32.543051],[102.62613,32.543144],[102.625855,32.543477],[102.62537,32.543724],[102.625351,32.543734],[102.62531,32.543755],[102.62528,32.54377],[102.625001,32.543912],[102.624776,32.544049],[102.624695,32.544097],[102.624693,32.544098],[102.624692,32.544099],[102.624691,32.5441],[102.624451,32.544246],[102.624279,32.54435],[102.622941,32.544625],[102.62239,32.545329],[102.621734,32.545806],[102.6217,32.545832],[102.621648,32.545869],[102.621587,32.545914],[102.621511,32.545969],[102.621485,32.545988],[102.62146,32.546013],[102.621385,32.546088],[102.621333,32.546139],[102.621213,32.546259],[102.621212,32.54626],[102.621211,32.546261],[102.621171,32.546301],[102.620892,32.546578],[102.620664,32.54663],[102.620648,32.546634],[102.620533,32.546661],[102.620532,32.546661],[102.62053,32.546661],[102.620412,32.546688],[102.620133,32.546752],[102.619927,32.546707],[102.619825,32.546684],[102.619653,32.546646],[102.619616,32.546638],[102.619578,32.54663],[102.619383,32.546587],[102.618569,32.547173],[102.61838,32.547621],[102.618233,32.548144],[102.618076,32.549043],[102.617824,32.550203],[102.617631,32.550764],[102.617712,32.551066],[102.618283,32.551302],[102.618628,32.551647],[102.61853,32.552021],[102.618168,32.552277],[102.617194,32.552183],[102.617168,32.552177],[102.616737,32.552072],[102.616357,32.55198],[102.616033,32.552462],[102.616057,32.553252],[102.615821,32.553774],[102.614949,32.554847],[102.614437,32.555777],[102.614384,32.55592],[102.614365,32.555971],[102.614348,32.556017],[102.614332,32.556062],[102.614149,32.556561],[102.614135,32.557124],[102.61425,32.557803],[102.614545,32.558372],[102.614831,32.559317],[102.615034,32.560035],[102.615287,32.560529],[102.615703,32.560952],[102.615734,32.560985],[102.615762,32.561012],[102.616151,32.561409],[102.616296,32.56148],[102.616302,32.561483],[102.616353,32.561508],[102.616994,32.561823],[102.617028,32.561839],[102.617147,32.56201],[102.617148,32.56201],[102.617228,32.562125],[102.617354,32.562305],[102.617369,32.562326],[102.61737,32.562328],[102.617371,32.562329],[102.617405,32.562378],[102.617435,32.562421],[102.617455,32.562449],[102.617449,32.562674],[102.617223,32.562857],[102.617187,32.562887],[102.617086,32.562968],[102.616705,32.563109],[102.616523,32.563175],[102.616504,32.563183],[102.616316,32.563555],[102.616205,32.564417],[102.616144,32.565017],[102.616011,32.565504],[102.615988,32.565587],[102.615899,32.565915],[102.6159,32.565956],[102.615901,32.566006],[102.61592,32.56678],[102.615962,32.566833],[102.616059,32.56696],[102.616069,32.566972],[102.616119,32.567038],[102.616138,32.567062],[102.616478,32.567504],[102.617125,32.568231],[102.617211,32.56852],[102.617235,32.568598],[102.617237,32.568605],[102.617303,32.568825],[102.617329,32.568911],[102.617329,32.568932],[102.61733,32.569001],[102.617331,32.56903],[102.617347,32.569889],[102.617188,32.570863],[102.617127,32.571108],[102.617046,32.571433],[102.617039,32.571461],[102.616982,32.571949],[102.617373,32.572257],[102.618068,32.572834],[102.618411,32.573291],[102.618447,32.573593],[102.618232,32.573802],[102.61822,32.573814],[102.618214,32.573818],[102.618213,32.573818],[102.618213,32.573818],[102.618204,32.573824],[102.618086,32.573899],[102.618041,32.573927],[102.617779,32.574093],[102.617618,32.574196],[102.617617,32.574197],[102.617617,32.574197],[102.617588,32.574215],[102.617564,32.574246],[102.617547,32.574268],[102.617547,32.574268],[102.617546,32.574269],[102.617128,32.574808],[102.617024,32.57537],[102.616962,32.576045],[102.616933,32.577135],[102.617007,32.57732],[102.617135,32.577638],[102.617158,32.577697],[102.617264,32.577963],[102.617266,32.577968],[102.617266,32.577979],[102.617244,32.578794],[102.617495,32.5794],[102.617835,32.579564],[102.6179,32.579595],[102.617943,32.579616],[102.618065,32.579674],[102.618076,32.579699],[102.618076,32.579699],[102.618076,32.579699],[102.618089,32.579725],[102.618191,32.57994],[102.618139,32.580202],[102.61809,32.580389],[102.617912,32.580468],[102.617675,32.580574],[102.617655,32.580583],[102.617559,32.580625],[102.617559,32.580625],[102.617559,32.580626],[102.617533,32.580637],[102.617281,32.580749],[102.617094,32.581122],[102.617205,32.581575],[102.61721,32.581597],[102.617214,32.581612],[102.617246,32.581645],[102.61735,32.581753],[102.617388,32.581793],[102.617473,32.581881],[102.617738,32.581961],[102.617747,32.582039],[102.61777,32.582225],[102.617774,32.582262],[102.61777,32.582433],[102.617768,32.582485],[102.617767,32.582521],[102.617765,32.5826],[102.617679,32.582635],[102.617522,32.582697],[102.617414,32.582741],[102.617406,32.582744],[102.617249,32.582799],[102.617226,32.582808],[102.6166,32.583029],[102.616367,32.583438],[102.616362,32.583475],[102.616362,32.583477],[102.616361,32.583478],[102.61636,32.583488],[102.616351,32.583557],[102.616346,32.583592],[102.616342,32.583623],[102.616311,32.58385],[102.616365,32.584163],[102.616381,32.584261],[102.616384,32.584277],[102.616389,32.584305],[102.616401,32.584379],[102.616404,32.584397],[102.616407,32.584412],[102.616427,32.584529],[102.616227,32.585352],[102.616278,32.585615],[102.61628,32.585623],[102.616338,32.585925],[102.616344,32.585956],[102.616352,32.585974],[102.616478,32.586297],[102.616519,32.586401],[102.616552,32.586486],[102.616534,32.586583],[102.616514,32.586694],[102.616449,32.587048],[102.616342,32.587288],[102.616305,32.58737],[102.616298,32.587384],[102.616253,32.587485],[102.616247,32.587499],[102.616242,32.587511],[102.616241,32.587512],[102.616241,32.587512],[102.616166,32.587681],[102.616333,32.58806],[102.616396,32.588181],[102.616442,32.58827],[102.616519,32.588418],[102.616522,32.588425],[102.616564,32.588505],[102.616629,32.58863],[102.616997,32.588719],[102.616998,32.588719],[102.616999,32.58872],[102.617029,32.588727],[102.617206,32.58877],[102.617207,32.58877],[102.617208,32.588771],[102.617467,32.588833],[102.617815,32.589103],[102.617765,32.589328],[102.617676,32.589356],[102.617661,32.589361],[102.617608,32.589378],[102.617561,32.589394],[102.617546,32.589399],[102.617158,32.589524],[102.617122,32.589536],[102.617074,32.589552],[102.616999,32.589576],[102.616972,32.589585],[102.616779,32.589647],[102.616592,32.59002],[102.6166,32.5901],[102.616607,32.59016],[102.616616,32.590252],[102.61662,32.590286],[102.616627,32.590359],[102.617152,32.590885],[102.617265,32.590998],[102.617276,32.59101],[102.617339,32.591066],[102.617358,32.591082],[102.617441,32.591156],[102.617462,32.591174],[102.61797,32.591624],[102.618629,32.5919],[102.618865,32.592067],[102.619065,32.592209],[102.619144,32.592549],[102.618648,32.592833],[102.61849,32.592893],[102.618389,32.592931],[102.618246,32.592986],[102.618143,32.593025],[102.617866,32.59313],[102.617563,32.593467],[102.617771,32.593939],[102.618056,32.594319],[102.618823,32.594552],[102.619408,32.59475],[102.619447,32.594821],[102.619482,32.594884],[102.619536,32.59498],[102.619583,32.595065],[102.619583,32.595065],[102.619583,32.595066],[102.619571,32.595143],[102.619564,32.595186],[102.619539,32.595345],[102.619523,32.595354],[102.619127,32.595587],[102.619023,32.595659],[102.618996,32.595678],[102.618947,32.595711],[102.618912,32.595736],[102.61891,32.595738],[102.618908,32.595739],[102.618602,32.595951],[102.618557,32.596287],[102.618556,32.596293],[102.618919,32.596421],[102.618953,32.596433],[102.619213,32.596524],[102.619244,32.596551],[102.619282,32.596584],[102.61935,32.596645],[102.619548,32.59682],[102.619609,32.596874],[102.619648,32.596927],[102.620002,32.597411],[102.620046,32.59747],[102.62011,32.597558],[102.620125,32.597578],[102.620143,32.597602],[102.620386,32.598168],[102.620451,32.598311],[102.620462,32.598333],[102.62052,32.598459],[102.620521,32.598461],[102.620521,32.598461],[102.620541,32.598504],[102.620541,32.598505],[102.620541,32.598506],[102.62056,32.598545],[102.620145,32.598912],[102.62012,32.598941],[102.620093,32.598973],[102.619988,32.599097],[102.619979,32.599108],[102.619941,32.599153],[102.619624,32.599528],[102.619614,32.59954],[102.619574,32.599587],[102.619776,32.599746],[102.619899,32.599843],[102.619891,32.599908],[102.619889,32.599925],[102.619879,32.600015],[102.619878,32.600022],[102.619875,32.600045],[102.619852,32.600247],[102.619406,32.600395],[102.619385,32.600493],[102.619374,32.600544],[102.619357,32.600628],[102.619352,32.60065],[102.61934,32.60071],[102.619337,32.600725],[102.61933,32.600758],[102.619321,32.600799],[102.619576,32.601376],[102.619599,32.601428],[102.619655,32.601528],[102.619753,32.601704],[102.619784,32.601759],[102.619805,32.601797],[102.61981,32.601806],[102.620164,32.602357],[102.620595,32.602738],[102.620996,32.603038],[102.620927,32.603277],[102.620717,32.603433],[102.620715,32.603434],[102.620713,32.603436],[102.620627,32.6035],[102.620613,32.60351],[102.620611,32.603512],[102.620609,32.603513],[102.620366,32.603694],[102.620353,32.603704],[102.620236,32.603791],[102.620229,32.603796],[102.620124,32.603874],[102.620124,32.603875],[102.620124,32.603876],[102.620081,32.604039],[102.620076,32.604059],[102.620063,32.604105],[102.620037,32.604206],[102.620019,32.604272],[102.619949,32.604537],[102.619936,32.604566],[102.619885,32.604681],[102.619715,32.605065],[102.619722,32.605083],[102.619725,32.605092],[102.619734,32.605116],[102.619765,32.605202],[102.619773,32.605222],[102.619777,32.605235],[102.619869,32.605487],[102.619891,32.605547],[102.619896,32.605554],[102.620058,32.605784],[102.620064,32.605791],[102.620064,32.605792],[102.620065,32.605793],[102.620241,32.606042],[102.620407,32.606276],[102.620674,32.606738],[102.620675,32.606739],[102.620675,32.606739],[102.620718,32.606814],[102.620722,32.60682],[102.620723,32.606821],[102.620723,32.606822],[102.620828,32.607003],[102.621488,32.607016],[102.621904,32.607142],[102.621934,32.607151],[102.622028,32.607179],[102.62203,32.60718],[102.622031,32.60718],[102.62205,32.607186],[102.62205,32.607187],[102.62205,32.607188],[102.622056,32.607288],[102.622056,32.607289],[102.622056,32.60729],[102.622058,32.60732],[102.622072,32.607559],[102.621903,32.607706],[102.621892,32.607716],[102.621809,32.607789],[102.621802,32.607795],[102.621774,32.607819],[102.621653,32.607924],[102.621549,32.608132],[102.62152,32.608188],[102.621798,32.608406],[102.622085,32.60853],[102.622103,32.608538],[102.62212,32.608545],[102.622575,32.608741],[102.623239,32.608937],[102.623824,32.609111],[102.624476,32.609443],[102.625058,32.609693],[102.625316,32.609805],[102.6257,32.610144],[102.626085,32.610485],[102.626103,32.610498],[102.626128,32.610517],[102.62614,32.610526],[102.626181,32.610556],[102.626207,32.610575],[102.626208,32.610576],[102.626208,32.610576],[102.626225,32.610588],[102.626455,32.610758],[102.626729,32.610703],[102.626824,32.610684],[102.62685,32.610678],[102.627056,32.610636],[102.627375,32.610483],[102.627402,32.61047],[102.627463,32.61044],[102.627524,32.610411],[102.627534,32.610406],[102.628151,32.610442],[102.628191,32.610445],[102.628193,32.610445],[102.628194,32.610445],[102.628207,32.610464],[102.628234,32.610503],[102.628258,32.610537],[102.628436,32.610796],[102.628396,32.611017],[102.628373,32.61114],[102.628373,32.611142],[102.628372,32.611145],[102.628363,32.611194],[102.628333,32.611245],[102.628327,32.611257],[102.628317,32.611274],[102.628165,32.611536],[102.627812,32.611823],[102.627149,32.611975],[102.627071,32.611993],[102.627054,32.611997],[102.627017,32.612006],[102.626968,32.612017],[102.626966,32.612017],[102.626965,32.612018],[102.626957,32.612019],[102.626769,32.612071],[102.626761,32.612073],[102.626749,32.612076],[102.626707,32.612088],[102.626667,32.612099],[102.626667,32.612099],[102.626667,32.612099],[102.62666,32.612101],[102.626415,32.612168],[102.626406,32.612171],[102.626355,32.612185],[102.626338,32.61219],[102.626323,32.612194],[102.626323,32.612194],[102.626323,32.612194],[102.626309,32.612255],[102.626302,32.612287],[102.626252,32.612512],[102.626312,32.612569],[102.625465,32.612859],[102.624053,32.613234],[102.623637,32.613392],[102.623002,32.613632],[102.621617,32.614163],[102.620392,32.614882],[102.619166,32.615647],[102.61789,32.616226],[102.617115,32.616743],[102.616607,32.617083],[102.615944,32.617552],[102.615944,32.617552],[102.615932,32.61756],[102.615859,32.617612],[102.615854,32.617616],[102.615852,32.617617],[102.615849,32.617619],[102.615713,32.617715],[102.614268,32.618476],[102.613601,32.618651],[102.61344,32.618693],[102.613437,32.618693],[102.613434,32.618693],[102.613217,32.618688],[102.613205,32.618688],[102.613203,32.618688],[102.613201,32.618688],[102.613188,32.618688],[102.612932,32.618683],[102.611947,32.618664],[102.611765,32.618661],[102.61174,32.61866],[102.611682,32.618659],[102.61147,32.618655],[102.611469,32.618655],[102.611467,32.618655],[102.61119,32.618646],[102.611136,32.618644],[102.611033,32.618641],[102.608017,32.618543],[102.606769,32.618055],[102.606245,32.617966],[102.606222,32.617962],[102.606214,32.617961],[102.606199,32.617958],[102.606198,32.617958],[102.605241,32.617794],[102.603269,32.617757],[102.602074,32.617363],[102.602038,32.617348],[102.601474,32.617115],[102.60143,32.617097],[102.601357,32.617067],[102.601329,32.617056],[102.600466,32.6167],[102.600068,32.616536],[102.597516,32.615606],[102.595497,32.615288],[102.595396,32.615221],[102.595355,32.615193],[102.582898,32.606836],[102.582228,32.607287],[102.581482,32.608525],[102.58152,32.609175],[102.581008,32.609861],[102.57961,32.610901],[102.578108,32.611707],[102.576709,32.612793],[102.575478,32.613697],[102.573846,32.615289],[102.573049,32.616387],[102.571868,32.617478],[102.571581,32.617982],[102.571601,32.618039],[102.57126,32.617698],[102.569487,32.616365],[102.568248,32.615552],[102.566533,32.614127],[102.564395,32.612091],[102.563974,32.611707],[102.563718,32.611475],[102.562416,32.61029],[102.562163,32.610092],[102.561452,32.609536],[102.561153,32.609302],[102.560591,32.608863],[102.558981,32.607625],[102.557963,32.606542],[102.557915,32.606495],[102.556955,32.605545],[102.555829,32.604595],[102.554367,32.603963],[102.552908,32.603193],[102.551884,32.60257],[102.551303,32.60177],[102.550905,32.600277],[102.550447,32.59897],[102.550293,32.598595],[102.550069,32.596782],[102.549878,32.595711],[102.549407,32.594913],[102.548332,32.59415],[102.54731,32.593434],[102.546462,32.592397],[102.545948,32.591135],[102.545921,32.590114],[102.545678,32.588996],[102.54536,32.587976],[102.544673,32.5867],[102.543554,32.585416],[102.542467,32.584703],[102.54218,32.584338],[102.541791,32.583844],[102.541491,32.583462],[102.540609,32.582305],[102.539476,32.581509],[102.537194,32.580568],[102.536107,32.579855],[102.535204,32.579471],[102.534077,32.578471],[102.532809,32.577347],[102.531688,32.576144],[102.531133,32.575374],[102.530854,32.574988],[102.530168,32.573712],[102.529045,32.572591],[102.527781,32.571344],[102.526843,32.570471],[102.526094,32.569723],[102.5254,32.568732],[102.523355,32.569669],[102.522416,32.570587],[102.521822,32.571186],[102.521015,32.571679],[102.520208,32.572172],[102.519256,32.572703],[102.518304,32.573234],[102.517669,32.573588],[102.517034,32.573942],[102.516473,32.574236],[102.515912,32.57453],[102.515348,32.57403],[102.514792,32.573286],[102.514165,32.571605],[102.513242,32.568451],[102.51295,32.567733],[102.512657,32.567015],[102.512405,32.566541],[102.512154,32.566068],[102.511419,32.564832],[102.510436,32.563876],[102.50877,32.563232],[102.507486,32.562718],[102.506481,32.562576],[102.504697,32.562744],[102.503587,32.562885],[102.502444,32.562496],[102.501691,32.561911],[102.500606,32.561157],[102.500186,32.560653],[102.499293,32.559765],[102.49861,32.559286],[102.497559,32.558799],[102.496792,32.55869],[102.496292,32.558183],[102.495354,32.557636],[102.494116,32.557301],[102.492686,32.557272],[102.491842,32.557256],[102.489647,32.557056],[102.487423,32.556546],[102.486081,32.555991],[102.485368,32.555262],[102.484481,32.554188],[102.483219,32.553417],[102.481977,32.553206],[102.480878,32.553153],[102.479813,32.553193],[102.478815,32.553484],[102.477734,32.554084],[102.476735,32.554374],[102.475829,32.553983],[102.474416,32.553365],[102.47367,32.55248],[102.473065,32.551846],[102.472159,32.551424],[102.471013,32.550438],[102.470299,32.54974],[102.468744,32.548963],[102.467287,32.548592],[102.46605,32.548225],[102.4643,32.547848],[102.463179,32.547266],[102.460086,32.546365],[102.459078,32.546094],[102.458958,32.546062],[102.457791,32.545821],[102.456446,32.54539],[102.455121,32.54555],[102.454127,32.545685],[102.453052,32.546067],[102.452302,32.546642],[102.451482,32.547123],[102.451184,32.547272],[102.450201,32.54573],[102.449856,32.544946],[102.449447,32.54385],[102.448991,32.543126],[102.448533,32.542433],[102.448003,32.541739],[102.446959,32.53973],[102.446332,32.538567],[102.445894,32.537191],[102.445777,32.536164],[102.445949,32.535266],[102.446018,32.534118],[102.446146,32.532194],[102.445887,32.530977],[102.445242,32.530436],[102.444486,32.529924],[102.443733,32.529318],[102.443353,32.528502],[102.44224,32.526367],[102.441493,32.525544],[102.440397,32.524124],[102.439554,32.522802],[102.438827,32.521264],[102.438334,32.520571],[102.437275,32.51912],[102.436642,32.518175],[102.436476,32.51755],[102.43655,32.516247],[102.436475,32.515003],[102.436284,32.514005],[102.435728,32.512906],[102.434672,32.511362],[102.433868,32.510285],[102.433824,32.510227],[102.43312,32.509575],[102.432931,32.509401],[102.432183,32.50864],[102.431598,32.508597],[102.430677,32.508733],[102.429867,32.508841],[102.429025,32.508824],[102.428243,32.509243],[102.427608,32.509634],[102.426945,32.509744],[102.426506,32.509704],[102.425981,32.508855],[102.425522,32.508224],[102.425108,32.507315],[102.424621,32.506404],[102.423749,32.504832],[102.423334,32.503954],[102.422733,32.503165],[102.421837,32.502463],[102.420953,32.501327],[102.419839,32.500527],[102.419134,32.499549],[102.418382,32.498912],[102.417991,32.498501],[102.41708,32.498295],[102.416129,32.498214],[102.415415,32.497547],[102.414671,32.49663],[102.414039,32.495654],[102.413291,32.494893],[102.412626,32.493823],[102.412076,32.492538],[102.411555,32.491533],[102.4104,32.490262],[102.410346,32.490203],[102.409793,32.490316],[102.408235,32.490968],[102.406641,32.491587],[102.404943,32.492018],[102.403426,32.492484],[102.401838,32.492886],[102.39955,32.493429],[102.398591,32.493627],[102.39755,32.494134],[102.396198,32.495255],[102.395597,32.495771],[102.394946,32.49672],[102.39345,32.49902],[102.392357,32.500053],[102.39145,32.500998],[102.390805,32.501761],[102.388941,32.502841],[102.387068,32.5042],[102.38572,32.505197],[102.385074,32.50596],[102.383365,32.506733],[102.382615,32.507307],[102.382738,32.508149],[102.383064,32.509554],[102.383438,32.510556],[102.383621,32.511833],[102.383698,32.512953],[102.383724,32.5146],[102.383657,32.515655],[102.383771,32.516776],[102.383332,32.51801],[102.382852,32.519367],[102.382207,32.52013],[102.381558,32.521017],[102.380539,32.522021],[102.379417,32.522775],[102.378211,32.523868],[102.377822,32.524668],[102.377871,32.525476],[102.377972,32.527063],[102.377631,32.528702],[102.377549,32.530254],[102.377136,32.531861],[102.376584,32.533185],[102.376016,32.533795],[102.37504,32.534551],[102.373334,32.535199],[102.372542,32.535959],[102.372117,32.536696],[102.371844,32.537249],[102.371856,32.538088],[102.372261,32.539308],[102.373035,32.540443],[102.373745,32.541235],[102.374962,32.542285],[102.37572,32.542705],[102.374689,32.543243],[102.373359,32.543588],[102.37271,32.54403],[102.371856,32.544799],[102.371485,32.545785],[102.370863,32.547015],[102.370621,32.548584],[102.370768,32.550244],[102.371133,32.551163],[102.371114,32.551825],[102.371143,32.552489],[102.371367,32.553198],[102.371336,32.554274],[102.37106,32.555345],[102.371419,32.55643],[102.371835,32.557267],[102.372095,32.558432],[102.371833,32.559007],[102.371375,32.559618],[102.370662,32.560597],[102.36994,32.561866],[102.369078,32.562925],[102.367625,32.564096],[102.366579,32.564737],[102.36504,32.565492],[102.363617,32.565669],[102.362341,32.565808],[102.361909,32.565818],[102.360432,32.565851],[102.358537,32.565397],[102.3566,32.564735],[102.354179,32.563897],[102.352248,32.563027],[102.349503,32.561313],[102.349447,32.561278],[102.349438,32.561272],[102.349333,32.561206],[102.348553,32.561079],[102.347883,32.561673],[102.34695,32.562316],[102.345982,32.56263],[102.34583,32.56268],[102.345486,32.562374],[102.345415,32.56231],[102.345399,32.562296],[102.345385,32.562283],[102.345343,32.562247],[102.345548,32.561984],[102.345821,32.561634],[102.346003,32.56141],[102.346041,32.561381],[102.348367,32.558314],[102.348425,32.558238],[102.348522,32.558109],[102.348583,32.558026],[102.348666,32.557914],[102.348749,32.557802],[102.348847,32.55767],[102.348932,32.557554],[102.349038,32.557411],[102.349142,32.557271],[102.349231,32.55715],[102.349318,32.557032],[102.349418,32.556897],[102.349512,32.556771],[102.349695,32.556553],[102.349703,32.55654],[102.349759,32.556404],[102.349798,32.556311],[102.349878,32.556201],[102.349989,32.555919],[102.35,32.555883],[102.349991,32.555878],[102.349991,32.555878],[102.349987,32.555876],[102.349986,32.555876],[102.349925,32.555861],[102.349923,32.55586],[102.349919,32.55586],[102.349823,32.555859],[102.349894,32.555709],[102.346816,32.55505],[102.34683,32.554943],[102.346801,32.554847],[102.346762,32.554785],[102.346736,32.55474],[102.346714,32.554735],[102.346683,32.554727],[102.346649,32.554718],[102.346591,32.554702],[102.345877,32.554516],[102.34583,32.554504],[102.345829,32.554503],[102.345826,32.554502],[102.345758,32.554485],[102.345357,32.55438],[102.344319,32.554218],[102.343833,32.554143],[102.341371,32.55376],[102.340766,32.553666],[102.340686,32.553653],[102.340656,32.553649],[102.340496,32.553624],[102.34042,32.553612],[102.340021,32.553555],[102.33868,32.553364],[102.3386,32.553352],[102.33851,32.553287],[102.338472,32.553259],[102.338364,32.553181],[102.338258,32.553062],[102.338165,32.553037],[102.337747,32.552734],[102.337578,32.552612],[102.336849,32.552441],[102.336695,32.552405],[102.336584,32.552379],[102.33656,32.552374],[102.336436,32.552345],[102.336378,32.552331],[102.336358,32.552326],[102.33634,32.552322],[102.336023,32.552248],[102.334344,32.551659],[102.333546,32.55214],[102.332677,32.55284],[102.331867,32.553762],[102.33093,32.553798],[102.329113,32.553464],[102.329052,32.553474],[102.328977,32.553487],[102.328755,32.553524],[102.32853,32.553583],[102.328214,32.553667],[102.328045,32.553776],[102.327067,32.554405],[102.327033,32.554427],[102.326996,32.554451],[102.326831,32.554874],[102.326793,32.554865],[102.32676,32.554848],[102.326524,32.555242],[102.326171,32.555833],[102.325323,32.558026],[102.324932,32.559491],[102.324613,32.559874],[102.324574,32.559872],[102.324288,32.559863],[102.324067,32.559862],[102.32406,32.559863],[102.324016,32.559867],[102.323856,32.559882],[102.32385,32.559884],[102.323706,32.559915],[102.323697,32.559917],[102.323552,32.559976],[102.323525,32.559977],[102.323031,32.560192],[102.322969,32.560219],[102.322555,32.560398],[102.322485,32.560433],[102.322418,32.560466],[102.321407,32.560963],[102.319668,32.560926],[102.318094,32.561187],[102.31669,32.5616],[102.314074,32.561765],[102.312079,32.561575],[102.310799,32.560737],[102.309784,32.559757],[102.307993,32.55854],[102.306281,32.557619],[102.304401,32.556473],[102.302954,32.555411],[102.302104,32.554729],[102.301324,32.554639],[102.300189,32.554762],[102.298365,32.554649],[102.296448,32.554755],[102.294988,32.554134],[102.293699,32.553591],[102.29276,32.552991],[102.292504,32.552828],[102.292411,32.552783],[102.290274,32.551748],[102.289186,32.551087],[102.289115,32.551044],[102.289111,32.551039],[102.289096,32.551032],[102.289086,32.551026],[102.288978,32.55096],[102.2884,32.550609],[102.288414,32.550606],[102.288469,32.550587],[102.28855,32.55056],[102.288645,32.550496],[102.288745,32.550402],[102.288845,32.550276],[102.288937,32.550067],[102.28903,32.549859],[102.289039,32.549804],[102.289077,32.549568],[102.289077,32.549557],[102.28908,32.54948],[102.289081,32.549434],[102.289085,32.54931],[102.289093,32.549052],[102.289101,32.548794],[102.289109,32.548536],[102.289133,32.54839],[102.28915,32.548296],[102.28916,32.548245],[102.289175,32.548166],[102.289178,32.548149],[102.289221,32.547987],[102.28928,32.54785],[102.289303,32.547796],[102.289345,32.547706],[102.289386,32.547619],[102.289411,32.547564],[102.289487,32.547397],[102.28953,32.54725],[102.289573,32.547074],[102.289619,32.546864],[102.289623,32.546706],[102.289624,32.546653],[102.289617,32.546281],[102.289617,32.546281],[102.289617,32.546281],[102.289607,32.545957],[102.289607,32.545957],[102.2896,32.545586],[102.2896,32.545586],[102.2896,32.545586],[102.289626,32.545359],[102.289635,32.545332],[102.289667,32.545241],[102.28971,32.545118],[102.289751,32.544979],[102.289758,32.544954],[102.289779,32.544881],[102.289848,32.544644],[102.289918,32.544406],[102.289987,32.544169],[102.290056,32.543938],[102.290058,32.543929],[102.290092,32.543816],[102.290124,32.543711],[102.290191,32.543486],[102.290198,32.543463],[102.290193,32.543306],[102.290188,32.543155],[102.290166,32.542956],[102.290157,32.542879],[102.290115,32.542721],[102.290088,32.54262],[102.29002,32.542495],[102.289962,32.54239],[102.289864,32.54229],[102.28972,32.542143],[102.289495,32.541959],[102.28935,32.541812],[102.289348,32.541811],[102.289333,32.541784],[102.289308,32.541738],[102.289275,32.541679],[102.28928,32.54155],[102.28928,32.541534],[102.289411,32.541302],[102.289542,32.54107],[102.289565,32.541044],[102.28976,32.540832],[102.289841,32.540751],[102.289997,32.540595],[102.29006,32.540515],[102.290166,32.54038],[102.290335,32.540165],[102.290613,32.539815],[102.290782,32.539617],[102.29087,32.539513],[102.291002,32.539234],[102.291014,32.539208],[102.291158,32.538904],[102.291228,32.538686],[102.291285,32.538512],[102.291411,32.53812],[102.291443,32.537688],[102.291444,32.537673],[102.291473,32.537281],[102.291475,32.537256],[102.291482,32.537162],[102.291498,32.536943],[102.291507,32.536823],[102.291539,32.536391],[102.291543,32.53619],[102.291544,32.536135],[102.291545,32.536106],[102.29155,32.53588],[102.291551,32.535845],[102.291552,32.535791],[102.291556,32.535646],[102.291556,32.535635],[102.291556,32.535624],[102.291557,32.535586],[102.291558,32.535548],[102.29156,32.535457],[102.291561,32.535431],[102.291561,32.535421],[102.291562,32.535369],[102.291568,32.535128],[102.291568,32.535113],[102.291571,32.534988],[102.291574,32.534858],[102.291576,32.534775],[102.291577,32.534741],[102.29158,32.534602],[102.291585,32.534369],[102.291586,32.534347],[102.291587,32.534278],[102.291591,32.534095],[102.291591,32.534091],[102.291593,32.534041],[102.291597,32.533836],[102.2916,32.533667],[102.291601,32.533607],[102.291603,32.533474],[102.291604,32.533377],[102.291607,32.533202],[102.291608,32.533148],[102.291608,32.533143],[102.291611,32.532919],[102.291615,32.53269],[102.291618,32.532461],[102.291606,32.532234],[102.291594,32.532007],[102.2916,32.5318],[102.291606,32.531603],[102.291693,32.531281],[102.291856,32.530929],[102.291958,32.530728],[102.29206,32.530528],[102.292179,32.530385],[102.292181,32.530384],[102.292182,32.530383],[102.292266,32.530315],[102.292316,32.530275],[102.292329,32.530268],[102.292334,32.530266],[102.292363,32.53025],[102.292381,32.530241],[102.292429,32.530215],[102.29255,32.530151],[102.292693,32.530093],[102.292867,32.530023],[102.292988,32.529974],[102.293019,32.529961],[102.293185,32.529894],[102.293198,32.529882],[102.293227,32.529854],[102.293283,32.529803],[102.293323,32.529766],[102.293335,32.529728],[102.29336,32.529658],[102.293427,32.529462],[102.293358,32.529217],[102.293284,32.528984],[102.29327,32.528941],[102.293276,32.528885],[102.293287,32.528783],[102.293297,32.528699],[102.293526,32.52838],[102.293617,32.528253],[102.293646,32.528213],[102.293756,32.52806],[102.293755,32.528047],[102.293754,32.528022],[102.293746,32.52777],[102.2936,32.527508],[102.293413,32.527382],[102.293225,32.527256],[102.292904,32.527136],[102.292579,32.527113],[102.292176,32.527136],[102.291888,32.527196],[102.291654,32.52732],[102.291325,32.527442],[102.291077,32.527428],[102.290834,32.527415],[102.290829,32.527414],[102.290694,32.527395],[102.29058,32.527378],[102.290573,32.527377],[102.290447,32.527359],[102.29019,32.527312],[102.289934,32.527266],[102.289834,32.527264],[102.289666,32.527261],[102.289398,32.527255],[102.289158,32.527298],[102.288918,32.527341],[102.288762,32.527395],[102.288754,32.527398],[102.288674,32.527425],[102.288608,32.527448],[102.288592,32.527453],[102.28853,32.527475],[102.28833,32.527544],[102.288299,32.527555],[102.288066,32.527687],[102.288017,32.527715],[102.287832,32.52782],[102.287531,32.527943],[102.287231,32.528066],[102.286942,32.528141],[102.28688,32.528137],[102.286713,32.528128],[102.286645,32.528124],[102.286485,32.528114],[102.286484,32.528114],[102.286484,32.528114],[102.286415,32.528068],[102.286346,32.528022],[102.286183,32.527914],[102.286152,32.527884],[102.285979,32.527715],[102.285893,32.527406],[102.285882,32.527132],[102.285884,32.527047],[102.285889,32.526855],[102.285856,32.526676],[102.285856,32.526675],[102.285855,32.526673],[102.285855,32.526673],[102.285847,32.526658],[102.285766,32.526496],[102.285504,32.52633],[102.285296,32.526214],[102.285087,32.526098],[102.284958,32.525966],[102.284809,32.525784],[102.284718,32.525619],[102.284717,32.525617],[102.28468,32.52555],[102.284665,32.525522],[102.284656,32.525453],[102.284639,32.525333],[102.284635,32.525304],[102.284633,32.525287],[102.284602,32.525053],[102.284611,32.524729],[102.284548,32.524322],[102.284436,32.524207],[102.284286,32.524139],[102.284056,32.524134],[102.283644,32.524115],[102.28349,32.524142],[102.283199,32.52425],[102.283117,32.524298],[102.282927,32.524406],[102.2829,32.52443],[102.282726,32.52458],[102.282672,32.524628],[102.282626,32.524697],[102.282432,32.524994],[102.28231,32.525243],[102.282187,32.525491],[102.281985,32.525843],[102.281807,32.526001],[102.281711,32.526047],[102.281622,32.526062],[102.281542,32.526075],[102.281268,32.526119],[102.281229,32.526115],[102.281124,32.526105],[102.28104,32.526098],[102.280778,32.526024],[102.280517,32.52595],[102.280255,32.525876],[102.279993,32.525803],[102.279731,32.525729],[102.279469,32.525655],[102.279207,32.525582],[102.278945,32.525508],[102.278684,32.525434],[102.278422,32.52536],[102.278187,32.525303],[102.278015,32.525261],[102.277989,32.525255],[102.277952,32.525246],[102.277718,32.525189],[102.277483,32.525132],[102.277248,32.525075],[102.277143,32.525049],[102.277244,32.524826]]]]},"properties":{"cp":[102.40058259505227,32.42604846213644],"code":"513233105","name":"龙日镇","level":"street","center":[102.40058259505227,32.42604846213644],"fullCode":"513233105000","fullName":"四川省阿坝藏族羌族自治州红原县龙日镇","acreageMu":967058.51,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.484,32.3605]}},{"id":"513233202","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.164139,32.32538],[102.164223,32.325168],[102.164246,32.325109],[102.164401,32.324716],[102.164763,32.323798],[102.165261,32.322312],[102.16556,32.321436],[102.165852,32.320752],[102.165879,32.319908],[102.165875,32.318564],[102.166,32.317454],[102.16583,32.315684],[102.165822,32.315506],[102.165819,32.31544],[102.165725,32.313225],[102.165894,32.312154],[102.166521,32.310901],[102.167013,32.309607],[102.167377,32.308079],[102.167576,32.307548],[102.168019,32.306366],[102.168943,32.304276],[102.169317,32.303862],[102.169594,32.303676],[102.169845,32.303446],[102.16988,32.303412],[102.169881,32.303412],[102.170149,32.303418],[102.170447,32.303456],[102.170666,32.303588],[102.170876,32.303971],[102.171014,32.304353],[102.171151,32.304735],[102.171234,32.304987],[102.171316,32.30524],[102.171399,32.305492],[102.171482,32.305744],[102.171565,32.305997],[102.171647,32.306249],[102.17173,32.306501],[102.171761,32.306596],[102.171761,32.306597],[102.171813,32.306754],[102.171896,32.307006],[102.171978,32.307258],[102.172061,32.307511],[102.172144,32.307763],[102.172227,32.308015],[102.17231,32.308268],[102.172392,32.30852],[102.172475,32.308772],[102.172542,32.309035],[102.172609,32.309297],[102.172676,32.309559],[102.172743,32.309821],[102.172809,32.310084],[102.172876,32.310346],[102.172943,32.310608],[102.17301,32.31087],[102.173077,32.311132],[102.173144,32.311395],[102.173147,32.31153],[102.173149,32.311626],[102.173154,32.311858],[102.173159,32.31209],[102.173162,32.312223],[102.173164,32.312322],[102.173169,32.312553],[102.173174,32.312785],[102.173174,32.312789],[102.173149,32.313195],[102.173135,32.313427],[102.173124,32.313604],[102.173099,32.314014],[102.173089,32.314313],[102.17308,32.314613],[102.173092,32.314845],[102.173103,32.315054],[102.173243,32.315374],[102.173448,32.315537],[102.173654,32.315699],[102.17386,32.315862],[102.174066,32.316024],[102.174272,32.316187],[102.174442,32.316321],[102.174477,32.316349],[102.174659,32.316489],[102.174841,32.316629],[102.175022,32.316768],[102.175204,32.316908],[102.175386,32.317048],[102.175567,32.317188],[102.175749,32.317328],[102.175931,32.317467],[102.176112,32.317607],[102.176294,32.317747],[102.176508,32.317907],[102.176722,32.318068],[102.176937,32.318228],[102.177151,32.318388],[102.177365,32.318549],[102.17758,32.318709],[102.177807,32.318848],[102.178035,32.318988],[102.178263,32.319127],[102.178491,32.319266],[102.178762,32.319381],[102.178804,32.319399],[102.179102,32.319526],[102.179117,32.319532],[102.179485,32.319666],[102.179852,32.319801],[102.18013,32.319854],[102.180408,32.319908],[102.180502,32.319915],[102.180705,32.319931],[102.180802,32.319938],[102.181002,32.319953],[102.181411,32.319931],[102.181646,32.319857],[102.181881,32.319783],[102.182116,32.319709],[102.182314,32.319647],[102.182351,32.319636],[102.18258,32.31957],[102.182766,32.319517],[102.18281,32.319504],[102.18304,32.319438],[102.18327,32.319373],[102.1835,32.319307],[102.183729,32.319241],[102.183959,32.319176],[102.184189,32.31911],[102.18446,32.31906],[102.184732,32.319011],[102.185003,32.318961],[102.185223,32.318921],[102.185275,32.318912],[102.18561,32.318888],[102.185791,32.318875],[102.185946,32.318864],[102.186261,32.318887],[102.186577,32.31891],[102.186809,32.318957],[102.186836,32.318963],[102.187094,32.319015],[102.187309,32.31913],[102.187388,32.319173],[102.187524,32.319246],[102.187739,32.319361],[102.187954,32.319476],[102.188311,32.319699],[102.188668,32.319923],[102.188859,32.320043],[102.189051,32.320163],[102.189272,32.320247],[102.189493,32.32033],[102.189806,32.320432],[102.190119,32.320534],[102.190509,32.320542],[102.190899,32.320551],[102.191218,32.320479],[102.191536,32.320407],[102.191744,32.320291],[102.191953,32.320174],[102.192161,32.320058],[102.192369,32.319941],[102.192577,32.319825],[102.192786,32.319708],[102.192987,32.319574],[102.193188,32.319439],[102.193335,32.319342],[102.19339,32.319305],[102.193591,32.319171],[102.193793,32.319036],[102.193994,32.318902],[102.194001,32.318897],[102.194195,32.318767],[102.194397,32.318633],[102.194598,32.318499],[102.194799,32.318364],[102.194991,32.318175],[102.195183,32.317986],[102.195375,32.317797],[102.195567,32.317608],[102.195759,32.317419],[102.195951,32.31723],[102.196143,32.317041],[102.196335,32.316852],[102.196538,32.316678],[102.196742,32.316504],[102.196945,32.31633],[102.197149,32.316155],[102.197352,32.315981],[102.197556,32.315807],[102.197925,32.315602],[102.198295,32.315397],[102.198664,32.315192],[102.199033,32.314987],[102.199385,32.314847],[102.199736,32.314707],[102.200087,32.314567],[102.200306,32.314499],[102.200526,32.31443],[102.200745,32.314361],[102.200964,32.314293],[102.201183,32.314224],[102.201403,32.314155],[102.201644,32.314107],[102.201884,32.314059],[102.202125,32.31401],[102.202366,32.313962],[102.202607,32.313914],[102.202848,32.313866],[102.203088,32.313818],[102.203329,32.31377],[102.203579,32.313723],[102.203828,32.313676],[102.204078,32.313629],[102.204327,32.313582],[102.204576,32.313535],[102.204826,32.313488],[102.205237,32.313444],[102.205648,32.3134],[102.20602,32.313361],[102.206058,32.313357],[102.206288,32.31333],[102.206518,32.313304],[102.206748,32.313277],[102.206978,32.313251],[102.207208,32.313225],[102.207438,32.313198],[102.207863,32.313113],[102.208288,32.313027],[102.208712,32.312942],[102.209126,32.312793],[102.20954,32.312644],[102.209953,32.312495],[102.210367,32.312347],[102.210758,32.312145],[102.211149,32.311944],[102.211539,32.311742],[102.21193,32.31153],[102.212321,32.311318],[102.212712,32.311105],[102.213038,32.310797],[102.213365,32.310489],[102.213616,32.310155],[102.213756,32.309971],[102.213868,32.309821],[102.21412,32.309487],[102.214371,32.309153],[102.214513,32.308931],[102.214654,32.308708],[102.214795,32.308485],[102.214936,32.308263],[102.215037,32.308036],[102.215137,32.307809],[102.215237,32.307583],[102.215337,32.307356],[102.215384,32.307025],[102.215432,32.306695],[102.215329,32.306393],[102.215227,32.306091],[102.215127,32.305694],[102.215027,32.305298],[102.215004,32.304887],[102.215051,32.304541],[102.215224,32.304356],[102.215397,32.30417],[102.215602,32.304009],[102.215807,32.303847],[102.216012,32.303686],[102.216217,32.303525],[102.216422,32.303363],[102.216627,32.303202],[102.216832,32.303041],[102.217037,32.302879],[102.21723,32.302764],[102.217423,32.302648],[102.217616,32.302532],[102.217809,32.302417],[102.218003,32.302301],[102.218196,32.302185],[102.218389,32.30207],[102.218582,32.301954],[102.218637,32.301921],[102.218775,32.301838],[102.218969,32.301723],[102.21927,32.301635],[102.219604,32.301642],[102.219939,32.30165],[102.220196,32.30175],[102.220235,32.301766],[102.220453,32.301851],[102.220471,32.301866],[102.220635,32.301997],[102.220763,32.3021],[102.220817,32.302143],[102.220973,32.302364],[102.221129,32.302584],[102.221285,32.302804],[102.221441,32.303025],[102.221597,32.303245],[102.221753,32.303465],[102.221797,32.303528],[102.221799,32.303531],[102.221909,32.303686],[102.222065,32.303906],[102.222204,32.304209],[102.222343,32.304511],[102.22248,32.304925],[102.222492,32.304998],[102.222543,32.305305],[102.222456,32.305682],[102.222299,32.305995],[102.222177,32.306307],[102.222073,32.306598],[102.222054,32.306652],[102.222007,32.306998],[102.222069,32.30741],[102.222191,32.307665],[102.222313,32.30792],[102.222602,32.308211],[102.222891,32.308502],[102.22318,32.308792],[102.223365,32.30897],[102.223371,32.308976],[102.223507,32.309106],[102.22355,32.309147],[102.223707,32.309298],[102.223736,32.309325],[102.223921,32.309503],[102.224106,32.30968],[102.224167,32.309738],[102.224292,32.309858],[102.224477,32.310035],[102.224662,32.310213],[102.224901,32.310561],[102.22514,32.310909],[102.225379,32.311257],[102.225455,32.311511],[102.225531,32.311765],[102.225608,32.31202],[102.225684,32.312274],[102.225709,32.312546],[102.225721,32.312675],[102.22575,32.312987],[102.225758,32.313075],[102.225761,32.313099],[102.225796,32.313476],[102.225813,32.31374],[102.225819,32.313846],[102.225829,32.314003],[102.225833,32.314065],[102.225846,32.314266],[102.225861,32.3145],[102.225863,32.31453],[102.225872,32.314667],[102.22588,32.314793],[102.225896,32.315057],[102.225911,32.315172],[102.225931,32.315331],[102.225966,32.315605],[102.226001,32.31588],[102.226036,32.316154],[102.226072,32.316429],[102.226096,32.316619],[102.226107,32.316703],[102.226141,32.316878],[102.226155,32.316946],[102.226203,32.317189],[102.226252,32.317432],[102.2263,32.317675],[102.226348,32.317918],[102.226375,32.318049],[102.226397,32.318162],[102.226432,32.318253],[102.226518,32.318474],[102.226539,32.318529],[102.226627,32.318667],[102.226682,32.318754],[102.226926,32.318907],[102.226977,32.31894],[102.22717,32.319061],[102.227247,32.319081],[102.227346,32.319105],[102.227707,32.319167],[102.227909,32.319201],[102.228069,32.319229],[102.22832,32.319253],[102.22857,32.319276],[102.228571,32.319276],[102.228573,32.319277],[102.228881,32.319343],[102.229189,32.31941],[102.229497,32.319476],[102.229725,32.319529],[102.229954,32.319581],[102.230315,32.319572],[102.230734,32.319505],[102.231077,32.319434],[102.231419,32.319362],[102.231848,32.319391],[102.2322,32.31941],[102.23259,32.319524],[102.232904,32.31961],[102.233247,32.319708],[102.233589,32.319806],[102.233932,32.319905],[102.234266,32.319999],[102.234599,32.320093],[102.23485,32.320164],[102.235101,32.320235],[102.235245,32.320276],[102.235655,32.320333],[102.235861,32.320326],[102.23595,32.320323],[102.236197,32.320285],[102.236483,32.320047],[102.236721,32.319695],[102.236935,32.319567],[102.237149,32.319438],[102.237544,32.319267],[102.237939,32.319096],[102.238269,32.31895],[102.238599,32.318804],[102.238929,32.318658],[102.238996,32.318618],[102.239298,32.318442],[102.2396,32.318265],[102.239966,32.318051],[102.240333,32.317836],[102.240699,32.317621],[102.241066,32.317407],[102.241432,32.317192],[102.241825,32.317054],[102.242217,32.316916],[102.24261,32.316778],[102.243002,32.31664],[102.243343,32.316533],[102.243683,32.316426],[102.244023,32.316319],[102.244364,32.316212],[102.244792,32.316131],[102.245207,32.316052],[102.24522,32.31605],[102.24542,32.315917],[102.245439,32.315869],[102.245553,32.315584],[102.245653,32.315327],[102.245753,32.31507],[102.245841,32.314868],[102.24587,32.314813],[102.24594,32.31466],[102.246035,32.314455],[102.2462,32.314096],[102.246365,32.313737],[102.246617,32.313396],[102.24687,32.313055],[102.246953,32.312756],[102.247037,32.312457],[102.247063,32.312205],[102.24709,32.311953],[102.247022,32.311715],[102.246955,32.311477],[102.24687,32.311215],[102.246784,32.310953],[102.246699,32.310691],[102.246614,32.310429],[102.246582,32.31032],[102.246528,32.31014],[102.246496,32.310032],[102.246419,32.309773],[102.246378,32.309634],[102.24633,32.309365],[102.246307,32.309234],[102.246282,32.309095],[102.246292,32.308796],[102.246301,32.308496],[102.246422,32.308214],[102.24654,32.308001],[102.246658,32.307788],[102.246776,32.307575],[102.246894,32.307362],[102.247012,32.307149],[102.24713,32.306937],[102.247284,32.306756],[102.247439,32.306575],[102.247593,32.306394],[102.247747,32.306213],[102.247901,32.306032],[102.248055,32.305851],[102.248209,32.30567],[102.248363,32.30549],[102.248491,32.305279],[102.248618,32.305069],[102.248746,32.304858],[102.248873,32.304648],[102.249016,32.304225],[102.249158,32.303803],[102.249226,32.303394],[102.249294,32.302985],[102.24933,32.302734],[102.249366,32.302482],[102.249401,32.30223],[102.249437,32.301979],[102.249417,32.301706],[102.249403,32.301508],[102.249397,32.301434],[102.249377,32.301162],[102.249358,32.300889],[102.24932,32.300489],[102.249283,32.300088],[102.249245,32.299688],[102.249252,32.299451],[102.24926,32.299215],[102.249267,32.298978],[102.249269,32.298897],[102.249274,32.298742],[102.24932,32.298471],[102.249365,32.298201],[102.249411,32.29793],[102.249456,32.29766],[102.249502,32.297389],[102.249547,32.297118],[102.249592,32.296848],[102.249638,32.296577],[102.249683,32.296307],[102.249729,32.296036],[102.249787,32.295813],[102.249844,32.295589],[102.249902,32.295365],[102.24996,32.295142],[102.250018,32.294918],[102.250076,32.294695],[102.250133,32.294471],[102.250191,32.294247],[102.250296,32.293871],[102.2504,32.293494],[102.25041,32.293162],[102.25042,32.292831],[102.250437,32.292571],[102.250454,32.292311],[102.25046,32.292224],[102.250471,32.292051],[102.250488,32.291791],[102.250489,32.29178],[102.250493,32.291689],[102.250511,32.291335],[102.250518,32.291193],[102.250534,32.290891],[102.250556,32.290446],[102.250579,32.290002],[102.250677,32.289636],[102.250775,32.28927],[102.250873,32.288904],[102.251021,32.288592],[102.251168,32.28828],[102.251279,32.288045],[102.25139,32.28781],[102.251518,32.287584],[102.251645,32.287358],[102.251773,32.287132],[102.251901,32.286906],[102.252068,32.286699],[102.252236,32.286493],[102.252403,32.286286],[102.252571,32.286079],[102.252738,32.285873],[102.252906,32.285666],[102.252966,32.285581],[102.253061,32.285448],[102.253216,32.285231],[102.253371,32.285013],[102.253526,32.284795],[102.253656,32.28461],[102.253663,32.284601],[102.253799,32.284407],[102.253935,32.284212],[102.254071,32.284018],[102.254092,32.283969],[102.254094,32.283964],[102.254171,32.283783],[102.254271,32.283548],[102.254292,32.283364],[102.254321,32.283108],[102.254239,32.282743],[102.254158,32.282378],[102.25409,32.282157],[102.254022,32.281936],[102.253955,32.281715],[102.253887,32.281493],[102.253819,32.281272],[102.253752,32.281051],[102.253764,32.28063],[102.253777,32.28021],[102.25379,32.279789],[102.253948,32.279509],[102.254228,32.279263],[102.254508,32.279016],[102.254788,32.278769],[102.254877,32.278676],[102.254967,32.278584],[102.255029,32.27852],[102.255032,32.278516],[102.255146,32.278398],[102.255325,32.278213],[102.255504,32.278027],[102.255669,32.277856],[102.255862,32.277656],[102.256071,32.277324],[102.256279,32.276992],[102.256488,32.27666],[102.256714,32.276318],[102.256759,32.276171],[102.25687,32.275881],[102.256981,32.275591],[102.257092,32.2753],[102.257194,32.275101],[102.257236,32.27502],[102.257381,32.274739],[102.257488,32.274477],[102.257595,32.274215],[102.257623,32.274142],[102.257745,32.273822],[102.257895,32.273429],[102.257957,32.273152],[102.25802,32.272876],[102.258052,32.272647],[102.258085,32.272418],[102.258115,32.271972],[102.258117,32.271752],[102.258121,32.271317],[102.258101,32.270958],[102.258081,32.270599],[102.258061,32.270241],[102.258017,32.269881],[102.257972,32.269521],[102.257929,32.269168],[102.257907,32.268985],[102.257835,32.268646],[102.257621,32.26842],[102.257389,32.268111],[102.257297,32.267769],[102.257205,32.267427],[102.256985,32.267103],[102.256765,32.266778],[102.256437,32.266517],[102.256176,32.266267],[102.256009,32.266172],[102.255979,32.266047],[102.256039,32.265898],[102.256164,32.265708],[102.256191,32.265684],[102.256384,32.265517],[102.256604,32.265327],[102.256931,32.265079],[102.257258,32.264831],[102.257585,32.264583],[102.257895,32.26431],[102.258204,32.264036],[102.258513,32.263762],[102.258537,32.263749],[102.258784,32.263613],[102.259031,32.263477],[102.259221,32.263328],[102.259282,32.263234],[102.25934,32.263144],[102.259376,32.26284],[102.259376,32.262487],[102.259376,32.262486],[102.259376,32.262484],[102.259346,32.262222],[102.259272,32.261909],[102.259197,32.261597],[102.259111,32.261285],[102.259025,32.260973],[102.258894,32.260681],[102.258704,32.260324],[102.258484,32.260021],[102.258264,32.259717],[102.258139,32.259533],[102.258103,32.259408],[102.258168,32.259212],[102.258264,32.259063],[102.258359,32.258891],[102.258302,32.258546],[102.258246,32.2582],[102.258252,32.257873],[102.258296,32.257621],[102.258341,32.257368],[102.258389,32.257127],[102.258437,32.256886],[102.25846,32.256773],[102.258418,32.256345],[102.258377,32.255916],[102.258264,32.255637],[102.258118,32.255428],[102.257972,32.25522],[102.257868,32.254991],[102.257764,32.254762],[102.257609,32.254423],[102.257556,32.254188],[102.257502,32.253953],[102.257466,32.253575],[102.257431,32.253198],[102.257389,32.252936],[102.257336,32.252728],[102.257246,32.252567],[102.257133,32.252442],[102.257104,32.252293],[102.257115,32.252079],[102.257234,32.251758],[102.257336,32.251502],[102.257337,32.251474],[102.257357,32.25106],[102.257377,32.250646],[102.257336,32.250378],[102.25727,32.250182],[102.257128,32.250035],[102.257092,32.249997],[102.256936,32.249788],[102.256919,32.249765],[102.256753,32.249355],[102.256634,32.249153],[102.256485,32.249028],[102.256408,32.248766],[102.25639,32.248516],[102.256402,32.248254],[102.256443,32.247923],[102.256485,32.247592],[102.256527,32.247261],[102.256515,32.246862],[102.256517,32.246441],[102.25652,32.246019],[102.256521,32.245976],[102.256592,32.245661],[102.256628,32.24542],[102.256663,32.245179],[102.25686,32.244822],[102.256989,32.244548],[102.257117,32.244275],[102.257246,32.244001],[102.257353,32.243739],[102.257496,32.243537],[102.257663,32.243478],[102.257919,32.243472],[102.258204,32.243478],[102.25843,32.243495],[102.258656,32.243513],[102.258914,32.2436],[102.259172,32.243686],[102.25936,32.243775],[102.259539,32.243859],[102.259749,32.243958],[102.25996,32.244057],[102.260175,32.244125],[102.26039,32.244193],[102.260604,32.24426],[102.260819,32.244328],[102.261034,32.244396],[102.261223,32.244456],[102.261249,32.244464],[102.261629,32.244609],[102.261892,32.244709],[102.262247,32.244895],[102.262602,32.245081],[102.262779,32.245185],[102.263064,32.245329],[102.263109,32.245351],[102.263439,32.245518],[102.263689,32.245589],[102.264081,32.245723],[102.264474,32.245857],[102.264516,32.245864],[102.264737,32.245959],[102.265141,32.246134],[102.265495,32.246382],[102.265848,32.24663],[102.266223,32.246842],[102.266598,32.247053],[102.266901,32.247326],[102.267026,32.247523],[102.267097,32.247707],[102.267197,32.247788],[102.267258,32.247838],[102.267523,32.24804],[102.267787,32.248242],[102.26794,32.248354],[102.268055,32.248439],[102.268364,32.248663],[102.268674,32.248887],[102.268983,32.249111],[102.269304,32.249283],[102.269544,32.249486],[102.269679,32.2496],[102.269843,32.249804],[102.270091,32.250113],[102.270242,32.250301],[102.270393,32.250489],[102.270544,32.250677],[102.270695,32.250865],[102.270846,32.251054],[102.270997,32.251242],[102.271173,32.251419],[102.271349,32.251597],[102.271525,32.251775],[102.271701,32.251952],[102.271876,32.25213],[102.272052,32.252308],[102.272228,32.252485],[102.272404,32.252663],[102.272629,32.25282],[102.272853,32.252977],[102.273078,32.253135],[102.273302,32.253292],[102.273527,32.253449],[102.273752,32.253607],[102.273971,32.253722],[102.274191,32.253837],[102.274411,32.253952],[102.27463,32.254067],[102.27485,32.254182],[102.27507,32.254297],[102.275439,32.2544],[102.275808,32.254503],[102.276102,32.254588],[102.276397,32.254673],[102.276749,32.254713],[102.277101,32.254752],[102.277548,32.25473],[102.27797,32.25471],[102.277996,32.254708],[102.278294,32.254667],[102.278476,32.254642],[102.278593,32.254626],[102.278628,32.254615],[102.278839,32.254549],[102.278874,32.254538],[102.279156,32.25445],[102.279421,32.25425],[102.279687,32.25405],[102.279842,32.253856],[102.279996,32.253662],[102.280151,32.253468],[102.280306,32.253274],[102.280484,32.252884],[102.280663,32.252493],[102.28071,32.252194],[102.280757,32.251895],[102.280875,32.251676],[102.281065,32.251538],[102.281255,32.251401],[102.2815,32.25128],[102.281744,32.251159],[102.28212,32.25102],[102.282496,32.250881],[102.282871,32.250741],[102.283094,32.250677],[102.283318,32.250613],[102.283541,32.250548],[102.283764,32.250484],[102.283987,32.25042],[102.28421,32.250355],[102.284418,32.25025],[102.284626,32.250144],[102.284662,32.250113],[102.284949,32.249866],[102.285211,32.24964],[102.285235,32.24962],[102.285354,32.249378],[102.285473,32.249136],[102.285592,32.248894],[102.285711,32.248652],[102.285797,32.248409],[102.285883,32.248166],[102.285969,32.247924],[102.286056,32.247681],[102.286142,32.247438],[102.286228,32.247195],[102.286314,32.246952],[102.286401,32.24671],[102.286512,32.246504],[102.286624,32.246299],[102.286735,32.246093],[102.286847,32.245888],[102.286958,32.245683],[102.287069,32.245477],[102.287181,32.245272],[102.287292,32.245066],[102.28738,32.244905],[102.28738,32.244905],[102.287404,32.244861],[102.287515,32.244656],[102.287627,32.24445],[102.287738,32.244245],[102.287954,32.243924],[102.288169,32.243603],[102.288436,32.24342],[102.288651,32.243277],[102.288866,32.243134],[102.28908,32.242992],[102.289295,32.242849],[102.28951,32.242706],[102.289725,32.242564],[102.289897,32.24241],[102.290069,32.242255],[102.29024,32.242101],[102.290412,32.241947],[102.290584,32.241793],[102.29071,32.24168],[102.290756,32.241639],[102.290931,32.241406],[102.291105,32.241173],[102.291226,32.240828],[102.291348,32.240484],[102.291383,32.240248],[102.291418,32.240012],[102.291453,32.239776],[102.291488,32.23954],[102.291497,32.23924],[102.291505,32.23894],[102.291426,32.238691],[102.291347,32.238442],[102.291267,32.238193],[102.291188,32.237944],[102.291109,32.237696],[102.291029,32.237447],[102.290958,32.237234],[102.290886,32.23702],[102.290814,32.236807],[102.290742,32.236594],[102.29067,32.236381],[102.290599,32.236168],[102.290527,32.235955],[102.290455,32.235742],[102.290383,32.235529],[102.290312,32.235316],[102.29025,32.234904],[102.290295,32.234653],[102.290431,32.234435],[102.290568,32.234217],[102.29083,32.233852],[102.290958,32.233672],[102.291091,32.233486],[102.291353,32.233121],[102.291615,32.232755],[102.291785,32.232554],[102.291955,32.232353],[102.292124,32.232153],[102.292294,32.231952],[102.292464,32.231751],[102.292634,32.23155],[102.292804,32.231349],[102.292974,32.231149],[102.293003,32.231101],[102.293106,32.230934],[102.293237,32.23072],[102.293369,32.230506],[102.293501,32.230292],[102.293632,32.230078],[102.293764,32.229864],[102.293896,32.22965],[102.294027,32.229435],[102.294121,32.229187],[102.29414,32.229135],[102.294214,32.228938],[102.294308,32.22869],[102.294401,32.228441],[102.294471,32.228254],[102.294472,32.228254],[102.294495,32.228193],[102.294588,32.227944],[102.294682,32.227696],[102.294775,32.227447],[102.294869,32.227198],[102.294962,32.22695],[102.295055,32.226701],[102.295149,32.226453],[102.295226,32.226248],[102.295226,32.226248],[102.295226,32.226248],[102.295395,32.225923],[102.295575,32.225674],[102.295811,32.225519],[102.296154,32.225385],[102.296496,32.225251],[102.296668,32.225251],[102.296924,32.225394],[102.297043,32.225602],[102.297105,32.225843],[102.297168,32.226084],[102.297418,32.226435],[102.297644,32.226607],[102.297935,32.226905],[102.298227,32.227202],[102.298476,32.227434],[102.29875,32.227618],[102.299022,32.227847],[102.299293,32.228075],[102.299565,32.228303],[102.299849,32.228545],[102.300133,32.228788],[102.300402,32.229018],[102.300672,32.229248],[102.300925,32.229498],[102.301179,32.229748],[102.301433,32.229998],[102.30165,32.230188],[102.301867,32.230379],[102.302111,32.230569],[102.302355,32.230759],[102.302599,32.23095],[102.302878,32.231137],[102.303158,32.231324],[102.303313,32.231503],[102.303377,32.231638],[102.30342,32.231729],[102.303485,32.231973],[102.303568,32.232092],[102.303872,32.232258],[102.304253,32.232389],[102.304485,32.23249],[102.304657,32.232657],[102.30483,32.232847],[102.305002,32.232999],[102.305175,32.233151],[102.305398,32.233258],[102.305621,32.233365],[102.305832,32.23352],[102.306043,32.233674],[102.306218,32.233868],[102.306329,32.233989],[102.306531,32.234239],[102.306662,32.234483],[102.306793,32.234727],[102.306828,32.234793],[102.307054,32.235149],[102.307164,32.235465],[102.307275,32.23578],[102.307435,32.236179],[102.307596,32.236577],[102.307611,32.236937],[102.307625,32.237297],[102.307679,32.237606],[102.307744,32.237767],[102.307991,32.237942],[102.308238,32.238118],[102.3085,32.238252],[102.308762,32.238386],[102.309196,32.238493],[102.309398,32.238558],[102.309559,32.238671],[102.309803,32.238826],[102.309969,32.239052],[102.310154,32.239314],[102.31035,32.239444],[102.310618,32.239504],[102.311037,32.239644],[102.311181,32.239692],[102.311456,32.239783],[102.311772,32.239849],[102.31198,32.239837],[102.312283,32.239789],[102.312432,32.239744],[102.312634,32.239682],[102.312908,32.239608],[102.313182,32.239534],[102.313455,32.23954],[102.313836,32.239605],[102.314183,32.239728],[102.314185,32.239729],[102.314187,32.23973],[102.314463,32.239798],[102.31474,32.239867],[102.31496,32.239926],[102.31518,32.239986],[102.315424,32.239989],[102.315668,32.239992],[102.315909,32.239992],[102.31615,32.239992],[102.316406,32.239965],[102.316661,32.239938],[102.317084,32.239861],[102.317456,32.239792],[102.317626,32.239761],[102.317827,32.239724],[102.318256,32.239659],[102.318684,32.239593],[102.318958,32.23954],[102.319362,32.239403],[102.3196,32.239391],[102.319838,32.239379],[102.320177,32.239409],[102.320516,32.239438],[102.320903,32.239482],[102.32129,32.239526],[102.321676,32.239569],[102.321811,32.239579],[102.322127,32.239602],[102.322443,32.239624],[102.322759,32.239647],[102.322946,32.239643],[102.323044,32.239641],[102.323425,32.239563],[102.323642,32.239465],[102.323859,32.239367],[102.3241,32.239254],[102.324341,32.239141],[102.324698,32.239016],[102.325055,32.238891],[102.325373,32.238817],[102.325692,32.238742],[102.325954,32.238667],[102.326177,32.238604],[102.326399,32.23854],[102.326774,32.238368],[102.327149,32.238195],[102.327506,32.238073],[102.327863,32.237951],[102.328142,32.237842],[102.328422,32.237733],[102.328484,32.237709],[102.328702,32.237624],[102.329017,32.237535],[102.329332,32.237446],[102.329346,32.237443],[102.329613,32.237394],[102.329879,32.237345],[102.330127,32.237337],[102.330419,32.237329],[102.330712,32.237321],[102.331087,32.237291],[102.331462,32.237261],[102.331575,32.237261],[102.331854,32.237309],[102.332074,32.237333],[102.332425,32.237327],[102.332705,32.237321],[102.332985,32.237309],[102.33301,32.237302],[102.333098,32.237279],[102.333407,32.237065],[102.333681,32.236809],[102.333898,32.236654],[102.334055,32.236541],[102.334305,32.236422],[102.334579,32.236405],[102.334633,32.236396],[102.334633,32.236396],[102.334633,32.236396],[102.334894,32.236356],[102.335156,32.236315],[102.335578,32.236202],[102.335888,32.236048],[102.336286,32.235869],[102.336471,32.235787],[102.336664,32.235701],[102.336768,32.235655],[102.337012,32.235578],[102.337256,32.2355],[102.337497,32.235453],[102.337738,32.235405],[102.337992,32.235362],[102.338247,32.235318],[102.338326,32.235304],[102.338675,32.235189],[102.339024,32.235074],[102.339373,32.234959],[102.339635,32.234849],[102.339897,32.234739],[102.340144,32.234626],[102.340391,32.234513],[102.340715,32.234332],[102.341039,32.23415],[102.341322,32.234022],[102.341604,32.233894],[102.341967,32.233644],[102.34233,32.233395],[102.342693,32.233145],[102.342976,32.232946],[102.34326,32.232748],[102.343543,32.23255],[102.343829,32.232241],[102.344091,32.23189],[102.344358,32.23161],[102.344648,32.231398],[102.344937,32.231186],[102.345227,32.230974],[102.345465,32.230843],[102.345703,32.230712],[102.345893,32.230556],[102.346083,32.230401],[102.346095,32.230391],[102.346434,32.230141],[102.346613,32.229977],[102.346791,32.229814],[102.347,32.229715],[102.347208,32.229617],[102.347567,32.229427],[102.347926,32.229237],[102.348285,32.229046],[102.348692,32.228871],[102.349099,32.228695],[102.349415,32.22857],[102.349748,32.228433],[102.350085,32.228287],[102.350422,32.22814],[102.350759,32.227993],[102.351125,32.227862],[102.351491,32.227731],[102.351817,32.227606],[102.35183,32.227601],[102.352228,32.227571],[102.352615,32.227601],[102.352953,32.227658],[102.353002,32.227666],[102.353269,32.22772],[102.353424,32.227726],[102.353609,32.227708],[102.3539,32.227648],[102.354156,32.227565],[102.354382,32.227497],[102.354608,32.227428],[102.354635,32.22742],[102.355037,32.227355],[102.355145,32.227337],[102.355233,32.227333],[102.355414,32.227293],[102.355474,32.22728],[102.355506,32.227273],[102.35572,32.227208],[102.355725,32.227198],[102.35581,32.227024],[102.35582,32.226992],[102.355899,32.226744],[102.355982,32.226533],[102.356065,32.226322],[102.356089,32.226096],[102.356113,32.22587],[102.356172,32.22556],[102.356214,32.225435],[102.356428,32.225281],[102.356684,32.225037],[102.356821,32.224936],[102.356892,32.224823],[102.356976,32.224626],[102.357118,32.224489],[102.357119,32.224489],[102.35712,32.224489],[102.357326,32.224365],[102.357493,32.22424],[102.357695,32.223901],[102.357862,32.223698],[102.358153,32.223478],[102.35835,32.223371],[102.358463,32.223288],[102.358522,32.223169],[102.358599,32.22302],[102.358891,32.222717],[102.359101,32.222425],[102.359153,32.222354],[102.359211,32.222263],[102.359301,32.222122],[102.359426,32.222021],[102.359569,32.221961],[102.359719,32.221781],[102.359868,32.2216],[102.360077,32.221348],[102.360218,32.221164],[102.360345,32.220965],[102.360473,32.220766],[102.36064,32.220403],[102.360821,32.220046],[102.361003,32.219689],[102.361107,32.219335],[102.361211,32.218981],[102.361407,32.218636],[102.361621,32.218345],[102.361717,32.218113],[102.361812,32.217881],[102.361919,32.217581],[102.362026,32.217282],[102.362133,32.216982],[102.362156,32.216877],[102.362237,32.216504],[102.362317,32.216132],[102.362414,32.215829],[102.362419,32.215816],[102.362573,32.215406],[102.362674,32.215067],[102.362722,32.214734],[102.362784,32.214392],[102.362847,32.21405],[102.362972,32.213627],[102.363007,32.213455],[102.363168,32.213264],[102.363345,32.213066],[102.363522,32.212868],[102.363561,32.212824],[102.36365,32.212592],[102.363715,32.212378],[102.363769,32.21214],[102.363787,32.211839],[102.363805,32.211537],[102.363822,32.211236],[102.363786,32.210824],[102.363749,32.210413],[102.363739,32.210296],[102.363717,32.21005],[102.363715,32.210028],[102.363793,32.209689],[102.3639,32.209314],[102.36405,32.209049],[102.364064,32.209024],[102.364102,32.208958],[102.364393,32.208642],[102.364646,32.208425],[102.364899,32.208208],[102.365185,32.208044],[102.36547,32.207881],[102.365613,32.207809],[102.365672,32.207746],[102.365684,32.207732],[102.365684,32.207643],[102.365625,32.207458],[102.365595,32.2072],[102.365565,32.206941],[102.365502,32.206706],[102.365452,32.206522],[102.365339,32.206102],[102.365316,32.205829],[102.365339,32.205507],[102.365423,32.205252],[102.365537,32.204975],[102.365652,32.204699],[102.365666,32.204663],[102.36572,32.204413],[102.365747,32.204151],[102.365774,32.203889],[102.365683,32.20361],[102.365637,32.203467],[102.365559,32.203294],[102.365464,32.203062],[102.365369,32.202926],[102.365185,32.202747],[102.365101,32.20264],[102.365113,32.202343],[102.365119,32.202075],[102.365125,32.201807],[102.365131,32.201563],[102.365238,32.20123],[102.365298,32.201111],[102.365452,32.200986],[102.365637,32.200873],[102.36575,32.200719],[102.365876,32.200404],[102.36594,32.200243],[102.366012,32.200011],[102.36616,32.199749],[102.366374,32.199452],[102.366398,32.199412],[102.366402,32.199402],[102.366478,32.199242],[102.366582,32.198942],[102.366598,32.198896],[102.366572,32.198549],[102.366545,32.198478],[102.36644,32.198417],[102.366142,32.19825],[102.365893,32.198024],[102.365637,32.197816],[102.365557,32.197774],[102.3655,32.197744],[102.365434,32.197709],[102.365357,32.197619],[102.365262,32.197364],[102.365119,32.196965],[102.365039,32.196694],[102.364959,32.196424],[102.364881,32.196067],[102.36478,32.19593],[102.364593,32.195671],[102.364405,32.195412],[102.364395,32.195397],[102.364162,32.195066],[102.363929,32.194734],[102.363834,32.194556],[102.363781,32.194383],[102.363739,32.194074],[102.363674,32.193896],[102.363543,32.193723],[102.363332,32.193423],[102.36312,32.193122],[102.362948,32.192908],[102.362938,32.19271],[102.362936,32.192682],[102.362859,32.192498],[102.362639,32.192117],[102.362439,32.191879],[102.36224,32.191641],[102.362044,32.191397],[102.361943,32.191225],[102.361904,32.19115],[102.361859,32.191064],[102.361782,32.190939],[102.361681,32.19088],[102.361496,32.190874],[102.361357,32.19087],[102.360997,32.190862],[102.360824,32.190838],[102.36067,32.190737],[102.360529,32.190663],[102.360455,32.190624],[102.360271,32.190594],[102.360104,32.190523],[102.359962,32.190392],[102.359831,32.190291],[102.359724,32.190243],[102.359456,32.190225],[102.359022,32.190237],[102.358977,32.190237],[102.358843,32.190237],[102.358707,32.190166],[102.35854,32.190059],[102.358415,32.190029],[102.358201,32.190011],[102.357892,32.190035],[102.357731,32.190017],[102.357614,32.189973],[102.357558,32.189952],[102.35738,32.189767],[102.357178,32.189488],[102.357023,32.189262],[102.356934,32.18894],[102.356868,32.188661],[102.356857,32.188523],[102.356857,32.18852],[102.356857,32.188518],[102.356773,32.188411],[102.356607,32.188215],[102.356494,32.187977],[102.356529,32.187768],[102.356636,32.187584],[102.35672,32.187394],[102.356708,32.187301],[102.356702,32.187251],[102.356517,32.186906],[102.356419,32.18676],[102.356369,32.186686],[102.356268,32.186585],[102.356024,32.186424],[102.355804,32.18624],[102.355628,32.186094],[102.355453,32.185948],[102.355298,32.18571],[102.355149,32.185383],[102.355131,32.185181],[102.355042,32.18502],[102.354882,32.184866],[102.354617,32.18472],[102.354352,32.184574],[102.353954,32.184407],[102.353626,32.184158],[102.35343,32.18392],[102.353258,32.183741],[102.353097,32.183581],[102.352924,32.183515],[102.352703,32.183441],[102.352481,32.183367],[102.352193,32.183271],[102.351958,32.183182],[102.351723,32.183093],[102.35139,32.183045],[102.351223,32.183015],[102.351134,32.182873],[102.351074,32.182676],[102.351059,32.182498],[102.351039,32.182272],[102.350973,32.181887],[102.350908,32.181503],[102.350842,32.181118],[102.350765,32.180927],[102.35061,32.180761],[102.350429,32.180588],[102.350248,32.180416],[102.350019,32.180279],[102.34979,32.180142],[102.349447,32.179997],[102.349105,32.179851],[102.348963,32.179791],[102.348927,32.17972],[102.348927,32.179607],[102.349004,32.179452],[102.349123,32.179292],[102.349399,32.179026],[102.349675,32.17876],[102.349896,32.178609],[102.350117,32.178458],[102.35052,32.17832],[102.350924,32.178182],[102.351328,32.178044],[102.351731,32.177905],[102.352105,32.177791],[102.352479,32.177676],[102.352853,32.177562],[102.353226,32.177447],[102.353576,32.177364],[102.353925,32.177281],[102.354275,32.177198],[102.354703,32.177097],[102.355078,32.177055],[102.35531,32.177046],[102.355542,32.177037],[102.355851,32.176942],[102.355869,32.176936],[102.355893,32.176928],[102.356014,32.176886],[102.356243,32.176809],[102.356472,32.176732],[102.356696,32.176633],[102.356919,32.176534],[102.357171,32.176423],[102.357367,32.176336],[102.35759,32.176237],[102.357814,32.176138],[102.358013,32.17605],[102.35829,32.175865],[102.358593,32.175692],[102.358895,32.175519],[102.359198,32.175347],[102.359331,32.17527],[102.35962,32.175128],[102.359908,32.174985],[102.360021,32.174878],[102.360099,32.174753],[102.36011,32.17461],[102.360116,32.174383],[102.360122,32.174146],[102.360146,32.173944],[102.360206,32.173837],[102.360348,32.173753],[102.360551,32.173623],[102.360676,32.173426],[102.360729,32.1732],[102.360705,32.172962],[102.360661,32.172605],[102.360616,32.172248],[102.360616,32.172022],[102.360646,32.171921],[102.360967,32.171659],[102.361211,32.171576],[102.361532,32.171499],[102.361764,32.17138],[102.361931,32.171291],[102.362145,32.171148],[102.362401,32.170987],[102.362656,32.170827],[102.36293,32.170708],[102.363261,32.170513],[102.363591,32.170318],[102.363656,32.170279],[102.3639,32.170154],[102.364072,32.170006],[102.364251,32.16975],[102.36434,32.169405],[102.36434,32.169149],[102.364304,32.168953],[102.364292,32.168925],[102.364191,32.168689],[102.36409,32.168453],[102.36398,32.168185],[102.36387,32.167918],[102.363779,32.167605],[102.363727,32.167424],[102.363668,32.16702],[102.363573,32.166799],[102.363424,32.16663],[102.363275,32.16646],[102.363014,32.166281],[102.362754,32.166103],[102.362493,32.165924],[102.36246,32.165901],[102.362335,32.165776],[102.36227,32.165628],[102.362234,32.16536],[102.362198,32.165092],[102.362198,32.164848],[102.362198,32.164604],[102.362202,32.164547],[102.362213,32.164366],[102.362235,32.163995],[102.362258,32.163623],[102.362258,32.163454],[102.362258,32.163325],[102.362234,32.163129],[102.362127,32.162796],[102.362103,32.162671],[102.362109,32.162534],[102.362192,32.162427],[102.362532,32.162201],[102.362766,32.161937],[102.363,32.161674],[102.363233,32.16141],[102.363495,32.161243],[102.363727,32.161124],[102.364025,32.161047],[102.364289,32.160991],[102.364554,32.160934],[102.364881,32.160934],[102.365155,32.160952],[102.365321,32.160964],[102.365546,32.160933],[102.365583,32.160928],[102.365653,32.1609],[102.365851,32.160821],[102.366184,32.16072],[102.366449,32.160663],[102.366713,32.160607],[102.366945,32.160577],[102.367183,32.160583],[102.367198,32.160583],[102.367264,32.16057],[102.367663,32.160494],[102.368061,32.160418],[102.368253,32.160397],[102.368468,32.160339],[102.368778,32.160155],[102.369045,32.160083],[102.369273,32.160032],[102.369501,32.159981],[102.369599,32.159958],[102.370018,32.159828],[102.370437,32.159697],[102.370622,32.159661],[102.370764,32.159673],[102.370943,32.159715],[102.370988,32.159727],[102.371098,32.159756],[102.37127,32.159804],[102.371496,32.159828],[102.371764,32.159881],[102.372032,32.159935],[102.372252,32.160033],[102.372472,32.160131],[102.372692,32.160214],[102.372882,32.160286],[102.373236,32.160342],[102.37359,32.160399],[102.373745,32.160494],[102.37381,32.160619],[102.37381,32.160768],[102.37378,32.160922],[102.373774,32.160952],[102.373774,32.161148],[102.373828,32.161368],[102.373965,32.161553],[102.37406,32.161618],[102.374328,32.161713],[102.374548,32.161826],[102.374839,32.16191],[102.375048,32.161975],[102.37528,32.162017],[102.375399,32.162037],[102.375601,32.16207],[102.375672,32.162171],[102.375697,32.162262],[102.375761,32.162493],[102.37588,32.162695],[102.376071,32.162933],[102.376243,32.163218],[102.376368,32.163427],[102.3766,32.163581],[102.376975,32.16376],[102.377266,32.163891],[102.377427,32.163938],[102.377724,32.164158],[102.377897,32.164301],[102.377939,32.164372],[102.37801,32.164557],[102.378069,32.164783],[102.378135,32.164884],[102.378266,32.164949],[102.378593,32.165039],[102.378884,32.165086],[102.379122,32.165086],[102.37936,32.165074],[102.379509,32.165134],[102.379586,32.165175],[102.379795,32.165288],[102.379884,32.165336],[102.380181,32.165348],[102.38036,32.165413],[102.380538,32.165491],[102.380693,32.165544],[102.38097,32.165549],[102.381062,32.16555],[102.381466,32.165651],[102.381752,32.165782],[102.382055,32.165943],[102.382192,32.166084],[102.382233,32.166127],[102.382394,32.166401],[102.382442,32.166457],[102.382662,32.166716],[102.382799,32.166829],[102.382947,32.166871],[102.38312,32.166901],[102.383304,32.166907],[102.383602,32.166889],[102.383754,32.166892],[102.383923,32.166895],[102.384185,32.166942],[102.384369,32.166972],[102.384708,32.16696],[102.38491,32.166936],[102.385255,32.16702],[102.385427,32.167057],[102.385666,32.167109],[102.385904,32.16718],[102.386186,32.167245],[102.386468,32.167309],[102.386606,32.167341],[102.386981,32.167409],[102.387169,32.167444],[102.387211,32.167531],[102.387477,32.168163],[102.388857,32.169446],[102.391037,32.170552],[102.393159,32.171705],[102.394544,32.172842],[102.395433,32.173487],[102.396988,32.174629],[102.398376,32.17567],[102.399263,32.176363],[102.40031,32.177446],[102.401627,32.178968],[102.402338,32.179899],[102.403043,32.181022],[102.403964,32.182536],[102.404182,32.182879],[102.404271,32.183019],[102.404692,32.183682],[102.404709,32.183709],[102.404833,32.183904],[102.40533,32.184349],[102.406406,32.184419],[102.407528,32.184828],[102.408253,32.185277],[102.408992,32.187221],[102.409303,32.18824],[102.409318,32.188261],[102.409432,32.188425],[102.40958,32.188638],[102.409848,32.189023],[102.410091,32.189611],[102.410432,32.190433],[102.410594,32.190966],[102.410847,32.191792],[102.410954,32.19333],[102.410968,32.19353],[102.410968,32.19354],[102.410986,32.194881],[102.411247,32.19592],[102.411356,32.196353],[102.411547,32.19711],[102.4118,32.198187],[102.411863,32.198457],[102.411898,32.198606],[102.411933,32.198756],[102.411959,32.19887],[102.412002,32.199049],[102.412074,32.199232],[102.412156,32.199442],[102.412229,32.199627],[102.412318,32.199855],[102.412379,32.200033],[102.412438,32.200171],[102.412478,32.200265],[102.412587,32.20041],[102.412705,32.200569],[102.41282,32.200724],[102.412911,32.200846],[102.41318,32.201208],[102.413353,32.20144],[102.413513,32.202148],[102.413605,32.202554],[102.413614,32.202796],[102.413632,32.203286],[102.413637,32.203423],[102.414411,32.204114],[102.415356,32.204808],[102.416104,32.206066],[102.416547,32.20681],[102.416637,32.207632],[102.416782,32.208527],[102.416927,32.209422],[102.416984,32.209705],[102.417051,32.210043],[102.417605,32.211043],[102.417692,32.211151],[102.418648,32.212336],[102.419035,32.213332],[102.419601,32.214079],[102.419855,32.214414],[102.420014,32.214855],[102.420069,32.215005],[102.420144,32.215214],[102.419942,32.215631],[102.419914,32.215689],[102.419814,32.215896],[102.418535,32.217087],[102.418141,32.21782],[102.417613,32.218867],[102.417531,32.219554],[102.417815,32.220512],[102.418602,32.221322],[102.419013,32.222177],[102.419167,32.223345],[102.419273,32.223626],[102.419688,32.224732],[102.419912,32.225636],[102.419875,32.226958],[102.420208,32.228394],[102.420318,32.230043],[102.420339,32.230355],[102.420302,32.231677],[102.419766,32.23299],[102.419399,32.233719],[102.419323,32.23387],[102.419239,32.234037],[102.419122,32.234151],[102.418983,32.234286],[102.418831,32.234433],[102.418705,32.234556],[102.418598,32.234659],[102.418473,32.234774],[102.418325,32.23491],[102.418158,32.235063],[102.418007,32.235202],[102.417853,32.235344],[102.41775,32.235438],[102.417639,32.235539],[102.417541,32.235682],[102.417414,32.235866],[102.417309,32.236018],[102.417174,32.236213],[102.417037,32.236412],[102.416916,32.236586],[102.416804,32.236747],[102.416716,32.236876],[102.416665,32.236948],[102.416619,32.237092],[102.416555,32.237289],[102.41649,32.23749],[102.41642,32.237706],[102.416352,32.237915],[102.416279,32.238147],[102.416218,32.238329],[102.416174,32.238463],[102.416143,32.23856],[102.41612,32.238631],[102.416079,32.238774],[102.416052,32.238872],[102.416023,32.238974],[102.415968,32.239168],[102.41593,32.239304],[102.415883,32.239472],[102.415843,32.239614],[102.415806,32.239744],[102.415764,32.239893],[102.415726,32.240027],[102.415704,32.240104],[102.415676,32.240225],[102.41565,32.240335],[102.415608,32.240515],[102.415604,32.240533],[102.415577,32.240649],[102.415572,32.240669],[102.415551,32.240761],[102.415533,32.240835],[102.415506,32.240951],[102.415421,32.241316],[102.41539,32.241667],[102.415384,32.241737],[102.415376,32.241816],[102.415371,32.241877],[102.415364,32.241956],[102.415355,32.242057],[102.415347,32.242148],[102.415337,32.242266],[102.415325,32.242392],[102.415315,32.242508],[102.415303,32.242639],[102.415292,32.242763],[102.41528,32.242898],[102.415269,32.243022],[102.415259,32.243138],[102.41525,32.24324],[102.415243,32.243317],[102.415238,32.243376],[102.415229,32.243481],[102.415221,32.243576],[102.415209,32.243711],[102.415202,32.24379],[102.415198,32.243836],[102.415192,32.243905],[102.415187,32.243961],[102.415181,32.244025],[102.415175,32.244101],[102.415166,32.2442],[102.415158,32.24429],[102.415152,32.244359],[102.415148,32.244403],[102.415146,32.244433],[102.415142,32.244446],[102.415129,32.244497],[102.415114,32.244559],[102.415101,32.244609],[102.415088,32.244659],[102.415068,32.244738],[102.41505,32.244809],[102.415031,32.24488],[102.415018,32.244933],[102.415006,32.244978],[102.414985,32.24506],[102.414936,32.245253],[102.414889,32.245437],[102.414839,32.245634],[102.414796,32.245802],[102.414757,32.246127],[102.414722,32.246418],[102.414686,32.246721],[102.414657,32.246967],[102.414632,32.247174],[102.414652,32.247353],[102.414679,32.247592],[102.414703,32.247831],[102.414724,32.248002],[102.414739,32.248127],[102.414747,32.248199],[102.41477,32.2484],[102.414781,32.248501],[102.414838,32.248624],[102.414938,32.248818],[102.415024,32.249023],[102.415075,32.249142],[102.415078,32.249232],[102.415083,32.249368],[102.415087,32.249517],[102.415093,32.249679],[102.415097,32.249807],[102.415101,32.24994],[102.415105,32.250051],[102.415108,32.250148],[102.415112,32.250244],[102.415114,32.250319],[102.415117,32.250437],[102.415122,32.250547],[102.415126,32.250681],[102.415131,32.250786],[102.415135,32.2509],[102.415139,32.251002],[102.415141,32.251063],[102.415155,32.251458],[102.415166,32.251793],[102.415178,32.252108],[102.415206,32.252674],[102.415223,32.253017],[102.415242,32.253404],[102.415257,32.253697],[102.415391,32.254232],[102.415461,32.254511],[102.415537,32.254814],[102.415592,32.255207],[102.415631,32.255493],[102.415692,32.255929],[102.415758,32.256703],[102.415802,32.257217],[102.415832,32.257572],[102.415819,32.258033],[102.415811,32.258313],[102.415796,32.258842],[102.415904,32.259139],[102.416011,32.259436],[102.416096,32.259672],[102.416143,32.259802],[102.416492,32.260656],[102.416699,32.261108],[102.416786,32.261297],[102.41745,32.262051],[102.417453,32.262056],[102.417456,32.26206],[102.418229,32.263126],[102.419002,32.264412],[102.419549,32.264922],[102.420045,32.265385],[102.420277,32.265602],[102.420628,32.266403],[102.420724,32.267411],[102.420893,32.268049],[102.42177,32.267856],[102.421921,32.267703],[102.422059,32.267564],[102.422254,32.267366],[102.422484,32.267134],[102.422632,32.266984],[102.422796,32.266818],[102.423073,32.266688],[102.423305,32.26658],[102.423554,32.266463],[102.423829,32.26643],[102.424033,32.266405],[102.424304,32.266372],[102.424513,32.266241],[102.424673,32.26614],[102.424874,32.266014],[102.425064,32.265896],[102.425256,32.265777],[102.425453,32.265654],[102.425699,32.265501],[102.425892,32.265442],[102.426128,32.265369],[102.42637,32.265294],[102.426658,32.265204],[102.426934,32.265119],[102.427144,32.265054],[102.427291,32.265031],[102.427519,32.264995],[102.42776,32.264957],[102.427928,32.264931],[102.428111,32.264902],[102.428333,32.264867],[102.42863,32.26474],[102.428911,32.264616],[102.429196,32.264492],[102.429491,32.264364],[102.429622,32.264307],[102.429846,32.26421],[102.430032,32.26414],[102.430244,32.264061],[102.43055,32.263945],[102.430749,32.263871],[102.430917,32.263808],[102.431113,32.26361],[102.431173,32.263549],[102.431296,32.263705],[102.431401,32.263838],[102.431545,32.264019],[102.431713,32.264233],[102.431843,32.2644],[102.431988,32.264584],[102.432121,32.264754],[102.432211,32.264868],[102.432316,32.265001],[102.432429,32.265219],[102.432531,32.265416],[102.43262,32.265584],[102.432709,32.265757],[102.432788,32.26591],[102.432849,32.266061],[102.432896,32.266178],[102.432961,32.26634],[102.433007,32.266472],[102.433073,32.266629],[102.433139,32.266782],[102.433196,32.266924],[102.433317,32.267488],[102.433452,32.268119],[102.433526,32.268466],[102.433464,32.270687],[102.433592,32.272754],[102.433659,32.274819],[102.433249,32.276081],[102.432833,32.277608],[102.432394,32.27852],[102.432357,32.278597],[102.432303,32.278708],[102.432511,32.280194],[102.432974,32.281421],[102.432813,32.282741],[102.432327,32.283519],[102.43216,32.283786],[102.431994,32.28392],[102.431586,32.284251],[102.431242,32.285408],[102.430894,32.286724],[102.430842,32.286793],[102.430826,32.286815],[102.430739,32.286932],[102.430652,32.287048],[102.430642,32.287061],[102.430613,32.2871],[102.430585,32.287138],[102.43056,32.287172],[102.430546,32.28719],[102.430116,32.287767],[102.429922,32.287892],[102.429164,32.288382],[102.428583,32.289111],[102.428442,32.289646],[102.428394,32.289825],[102.428025,32.291217],[102.427678,32.29248],[102.427089,32.293474],[102.426431,32.29473],[102.425946,32.295245],[102.425403,32.295821],[102.424268,32.296274],[102.423392,32.296415],[102.422145,32.29657],[102.421203,32.296688],[102.419915,32.296739],[102.419457,32.296758],[102.418769,32.296758],[102.41684,32.296757],[102.414842,32.296875],[102.414055,32.29669],[102.413604,32.296585],[102.413298,32.296535],[102.412283,32.296866],[102.412026,32.29686],[102.410568,32.29683],[102.410499,32.296826],[102.409512,32.296756],[102.40948,32.296754],[102.408561,32.296689],[102.407203,32.296611],[102.406307,32.296894],[102.406286,32.297647],[102.406432,32.298755],[102.406342,32.299808],[102.406341,32.299853],[102.406337,32.299987],[102.406333,32.300126],[102.40633,32.300231],[102.406325,32.300416],[102.406319,32.300652],[102.406314,32.300817],[102.406309,32.300995],[102.406304,32.301146],[102.4063,32.301298],[102.406323,32.301464],[102.406345,32.301622],[102.406373,32.301825],[102.406403,32.30204],[102.40643,32.302229],[102.406446,32.302345],[102.406478,32.302577],[102.406507,32.302783],[102.406534,32.302981],[102.406562,32.303179],[102.406563,32.303396],[102.406563,32.303463],[102.406564,32.303568],[102.406565,32.303804],[102.406566,32.304044],[102.406566,32.304154],[102.406566,32.304193],[102.406567,32.304287],[102.406568,32.304556],[102.406569,32.304796],[102.406569,32.304863],[102.40657,32.305096],[102.406571,32.305289],[102.406571,32.305404],[102.406572,32.305591],[102.406572,32.305719],[102.406573,32.305983],[102.406573,32.306104],[102.406573,32.30611],[102.406573,32.306147],[102.406578,32.308137],[102.406479,32.308814],[102.406383,32.309472],[102.406189,32.310741],[102.405829,32.312275],[102.405008,32.313397],[102.403697,32.315111],[102.402707,32.316632],[102.401858,32.318758],[102.401741,32.320095],[102.401235,32.321224],[102.400807,32.322453],[102.400633,32.322953],[102.400456,32.324518],[102.400363,32.32534],[102.400234,32.326324],[102.399947,32.327518],[102.399466,32.33021],[102.399234,32.333035],[102.399008,32.335154],[102.397563,32.334466],[102.396598,32.334668],[102.395766,32.334799],[102.394551,32.334625],[102.393033,32.334372],[102.392014,32.33424],[102.391188,32.334133],[102.390993,32.334108],[102.389526,32.333597],[102.389072,32.333468],[102.388925,32.333294],[102.388894,32.332607],[102.389149,32.332155],[102.389373,32.331759],[102.389392,32.331457],[102.389464,32.330346],[102.389487,32.329532],[102.389525,32.329151],[102.389561,32.328778],[102.38963,32.328077],[102.389636,32.328009],[102.389704,32.327264],[102.389165,32.326696],[102.388519,32.326339],[102.388387,32.326332],[102.388139,32.326319],[102.387743,32.326298],[102.387649,32.326293],[102.387618,32.326291],[102.387208,32.326269],[102.386572,32.326499],[102.386085,32.326675],[102.386012,32.326709],[102.385369,32.327003],[102.385102,32.32711],[102.385082,32.327118],[102.384819,32.327222],[102.38475,32.32725],[102.384245,32.327451],[102.383216,32.328116],[102.382758,32.32835],[102.382698,32.328381],[102.382502,32.328481],[102.382162,32.328655],[102.382089,32.328693],[102.381887,32.328856],[102.381861,32.328876],[102.381055,32.329529],[102.380272,32.330413],[102.37984,32.33139],[102.378605,32.332179],[102.377477,32.332756],[102.376519,32.332736],[102.37576,32.332763],[102.375252,32.332881],[102.375032,32.33349],[102.376298,32.334395],[102.376631,32.334957],[102.376615,32.335512],[102.376028,32.336203],[102.375079,32.337367],[102.373813,32.338969],[102.372799,32.340872],[102.372027,32.341928],[102.371335,32.343283],[102.370191,32.345146],[102.369589,32.346355],[102.369292,32.347606],[102.368694,32.348667],[102.367972,32.34954],[102.367472,32.350232],[102.366066,32.35061],[102.364567,32.351208],[102.363549,32.351741],[102.362957,32.352617],[102.362371,32.353271],[102.362164,32.353634],[102.361683,32.354477],[102.361414,32.35621],[102.361379,32.357431],[102.36127,32.358168],[102.361199,32.359129],[102.361068,32.360643],[102.36063,32.363705],[102.360385,32.364625],[102.360052,32.36558],[102.359888,32.366723],[102.359798,32.368312],[102.35968,32.369383],[102.35931,32.370115],[102.358235,32.371091],[102.357558,32.371891],[102.356533,32.372647],[102.355159,32.373432],[102.354258,32.374412],[102.354239,32.375077],[102.354044,32.375776],[102.353752,32.376806],[102.353545,32.377949],[102.353004,32.378529],[102.352253,32.378883],[102.351855,32.37906],[102.350881,32.379595],[102.351449,32.381049],[102.351995,32.383244],[102.352552,32.385068],[102.352564,32.386142],[102.352579,32.387141],[102.352677,32.387444],[102.353236,32.389172],[102.353459,32.38986],[102.353635,32.39127],[102.354038,32.392425],[102.354352,32.393616],[102.355108,32.394594],[102.355089,32.395259],[102.35438,32.397131],[102.352698,32.399464],[102.351006,32.400686],[102.349568,32.402136],[102.34617,32.407947],[102.345785,32.408491],[102.345772,32.408509],[102.345373,32.409072],[102.3453,32.409175],[102.345289,32.40919],[102.345283,32.409199],[102.345215,32.409296],[102.344227,32.410274],[102.343993,32.410485],[102.342031,32.412263],[102.338886,32.415163],[102.337247,32.416674],[102.33675,32.417132],[102.336709,32.417169],[102.336699,32.417179],[102.336666,32.417209],[102.336623,32.417249],[102.336616,32.417255],[102.336462,32.417397],[102.336382,32.417471],[102.335594,32.417565],[102.334971,32.417589],[102.334328,32.417613],[102.332497,32.417574],[102.331197,32.417287],[102.330141,32.417065],[102.329636,32.416958],[102.327275,32.415687],[102.326135,32.415885],[102.324757,32.416781],[102.323692,32.417387],[102.322646,32.417365],[102.321596,32.417454],[102.320608,32.416952],[102.319248,32.417219],[102.319057,32.41777],[102.31871,32.419168],[102.318842,32.420614],[102.318847,32.420988],[102.318856,32.421613],[102.319034,32.422949],[102.319457,32.426362],[102.319588,32.427807],[102.319737,32.428699],[102.319935,32.429369],[102.320371,32.430858],[102.320451,32.432562],[102.320407,32.434041],[102.320707,32.435712],[102.32075,32.437193],[102.32067,32.438412],[102.320417,32.43959],[102.32037,32.44118],[102.320409,32.442809],[102.320434,32.444918],[102.32067,32.445774],[102.321341,32.446714],[102.321883,32.447539],[102.322678,32.448703],[102.323044,32.449599],[102.325506,32.454868],[102.326407,32.456885],[102.326497,32.458256],[102.32624,32.459545],[102.325773,32.460608],[102.325561,32.461861],[102.325074,32.463553],[102.325061,32.465477],[102.324895,32.466657],[102.324727,32.467911],[102.32456,32.469129],[102.324606,32.470535],[102.324006,32.471633],[102.323588,32.472475],[102.322209,32.47337],[102.321372,32.473611],[102.320272,32.473921],[102.318993,32.474375],[102.317894,32.47461],[102.316193,32.474574],[102.314795,32.474618],[102.314213,32.475123],[102.313725,32.475775],[102.313395,32.476216],[102.313131,32.476667],[102.312199,32.478262],[102.311323,32.479834],[102.311219,32.480334],[102.310916,32.481787],[102.311089,32.483307],[102.311673,32.484208],[102.311739,32.4847],[102.311816,32.485284],[102.31153,32.486092],[102.31063,32.486997],[102.309694,32.487643],[102.308793,32.488586],[102.308286,32.4895],[102.307999,32.490345],[102.307839,32.491304],[102.307815,32.492117],[102.308133,32.49316],[102.308318,32.494274],[102.30869,32.494985],[102.308679,32.495343],[102.308664,32.495872],[102.308633,32.496907],[102.308369,32.49715],[102.308319,32.497197],[102.308144,32.49723],[102.30744,32.497363],[102.307147,32.49745],[102.30559,32.497915],[102.304271,32.498257],[102.303308,32.49831],[102.301595,32.49868],[102.300504,32.498657],[102.300373,32.498609],[102.300303,32.498583],[102.299338,32.498225],[102.298297,32.498018],[102.297387,32.497776],[102.296037,32.497673],[102.295037,32.497541],[102.293911,32.49722],[102.292726,32.497454],[102.292101,32.497884],[102.291871,32.498286],[102.29189,32.499101],[102.291976,32.50062],[102.291887,32.502135],[102.291637,32.503202],[102.291601,32.503375],[102.291597,32.503393],[102.291505,32.503833],[102.29147,32.503999],[102.291382,32.504418],[102.290941,32.506036],[102.290556,32.507212],[102.290392,32.508318],[102.290603,32.510025],[102.29064,32.511691],[102.290391,32.512721],[102.29019,32.513605],[102.289346,32.515511],[102.288597,32.517196],[102.288122,32.517988],[102.287869,32.518673],[102.287337,32.518908],[102.286228,32.519032],[102.284592,32.519194],[102.283165,32.519536],[102.282892,32.519601],[102.281662,32.519821],[102.280661,32.520194],[102.280417,32.5203],[102.280201,32.520393],[102.280189,32.520398],[102.279632,32.520638],[102.279246,32.520805],[102.278934,32.521489],[102.278447,32.522401],[102.277761,32.523683],[102.277274,32.524758],[102.277244,32.524826],[102.277143,32.525049],[102.277014,32.525018],[102.276779,32.524961],[102.276544,32.524904],[102.27631,32.524846],[102.276075,32.524789],[102.275857,32.52472],[102.275639,32.524651],[102.275299,32.52453],[102.275037,32.524347],[102.274816,32.524082],[102.274802,32.52406],[102.274785,32.524033],[102.27465,32.523819],[102.274563,32.523527],[102.274535,32.523284],[102.274531,32.523251],[102.274517,32.523138],[102.274515,32.523108],[102.274514,32.523097],[102.274505,32.522976],[102.274553,32.522872],[102.274604,32.522763],[102.274627,32.522713],[102.274749,32.522451],[102.27489,32.522227],[102.274992,32.522052],[102.274988,32.522033],[102.274974,32.52197],[102.27492,32.521911],[102.274887,32.521875],[102.274809,32.521789],[102.274619,32.521705],[102.274498,32.52168],[102.274354,32.52165],[102.274185,32.521646],[102.274086,32.521644],[102.273972,32.521641],[102.273945,32.52164],[102.273685,32.521627],[102.273398,32.521613],[102.273015,32.521516],[102.27298,32.521506],[102.272871,32.521439],[102.272714,32.521341],[102.272665,32.52131],[102.272604,32.521273],[102.272433,32.521087],[102.272345,32.520991],[102.272162,32.520727],[102.271881,32.520495],[102.2716,32.520327],[102.271536,32.5203],[102.271419,32.52025],[102.271333,32.520214],[102.271306,32.520202],[102.271279,32.520191],[102.271266,32.520188],[102.27088,32.520102],[102.270641,32.520104],[102.270403,32.520107],[102.270124,32.520142],[102.269985,32.520159],[102.269845,32.520177],[102.269719,32.520168],[102.26968,32.520165],[102.2695,32.520152],[102.269215,32.520099],[102.268971,32.519948],[102.268958,32.519931],[102.268931,32.519895],[102.268903,32.519857],[102.268713,32.519601],[102.268591,32.519445],[102.268569,32.519417],[102.268556,32.5194],[102.268475,32.519297],[102.268456,32.519273],[102.268363,32.519104],[102.268242,32.518884],[102.268083,32.518596],[102.268068,32.518568],[102.268027,32.518495],[102.267986,32.51842],[102.267813,32.518106],[102.267707,32.517914],[102.267599,32.517717],[102.267445,32.517468],[102.267417,32.517423],[102.267269,32.517226],[102.267177,32.517127],[102.267019,32.517056],[102.266987,32.517041],[102.26689,32.517035],[102.266644,32.517018],[102.266565,32.517012],[102.266367,32.516998],[102.266319,32.516995],[102.26613,32.51691],[102.265982,32.51676],[102.265873,32.516548],[102.265846,32.516223],[102.265853,32.515964],[102.26592,32.515658],[102.265986,32.515353],[102.266042,32.515195],[102.266049,32.515177],[102.266072,32.515048],[102.266122,32.514677],[102.266013,32.514495],[102.265967,32.514459],[102.265938,32.514437],[102.265863,32.514378],[102.265843,32.514363],[102.265829,32.514356],[102.265524,32.514209],[102.265145,32.514023],[102.264943,32.513842],[102.264759,32.513594],[102.26463,32.513381],[102.264601,32.513044],[102.264572,32.512706],[102.264564,32.512342],[102.264564,32.512341],[102.264562,32.512254],[102.264561,32.512191],[102.264558,32.512084],[102.264557,32.51201],[102.264556,32.511978],[102.264542,32.511781],[102.264535,32.511685],[102.264529,32.511604],[102.264423,32.511328],[102.264391,32.511291],[102.26438,32.511278],[102.264308,32.511196],[102.264219,32.511096],[102.264206,32.511081],[102.2642,32.511073],[102.264173,32.511041],[102.264145,32.511008],[102.264035,32.510876],[102.263985,32.510817],[102.263944,32.510767],[102.263917,32.510743],[102.263897,32.510726],[102.263744,32.51059],[102.263644,32.510502],[102.263581,32.510464],[102.263525,32.510431],[102.263363,32.510333],[102.263221,32.510303],[102.263191,32.510297],[102.263105,32.510295],[102.263045,32.510294],[102.26302,32.510294],[102.262713,32.510303],[102.262465,32.510395],[102.262424,32.51041],[102.262381,32.510443],[102.262272,32.510524],[102.262227,32.510558],[102.262141,32.510622],[102.26211,32.510645],[102.262074,32.510672],[102.261757,32.510913],[102.261519,32.511073],[102.26149,32.511092],[102.261406,32.511148],[102.261268,32.511221],[102.26123,32.511242],[102.261069,32.511285],[102.261006,32.511302],[102.260951,32.511316],[102.260909,32.511328],[102.26085,32.511343],[102.260794,32.511358],[102.260671,32.511391],[102.260385,32.511445],[102.26027,32.511466],[102.260128,32.511493],[102.259869,32.511541],[102.259798,32.511556],[102.259764,32.511563],[102.259715,32.511573],[102.259562,32.511606],[102.259429,32.511666],[102.25942,32.511671],[102.259378,32.51169],[102.259329,32.511712],[102.259096,32.511819],[102.258952,32.511885],[102.258914,32.511902],[102.258876,32.51192],[102.258863,32.511926],[102.258699,32.512001],[102.258629,32.512032],[102.258391,32.512086],[102.258301,32.512106],[102.258153,32.51214],[102.258097,32.512144],[102.257916,32.512158],[102.257678,32.512177],[102.257343,32.512216],[102.257006,32.512303],[102.256693,32.512556],[102.256596,32.512904],[102.256523,32.513161],[102.256498,32.513251],[102.256349,32.513602],[102.256259,32.513811],[102.256169,32.514021],[102.255982,32.514205],[102.255796,32.514389],[102.255623,32.514562],[102.255451,32.514735],[102.255306,32.514932],[102.255161,32.51513],[102.254807,32.51531],[102.254454,32.515491],[102.254177,32.515462],[102.25393,32.515339],[102.253742,32.515123],[102.25361,32.514861],[102.253524,32.514484],[102.253438,32.514108],[102.253385,32.513706],[102.253332,32.513305],[102.25328,32.512903],[102.25327,32.512677],[102.25326,32.512451],[102.25325,32.512225],[102.25324,32.511999],[102.25323,32.511772],[102.25322,32.511546],[102.253211,32.51132],[102.253201,32.511094],[102.253191,32.510867],[102.253181,32.510641],[102.25318,32.510373],[102.25318,32.510106],[102.253179,32.509838],[102.253178,32.50957],[102.253178,32.509303],[102.253177,32.509035],[102.253176,32.508767],[102.253175,32.5085],[102.253175,32.508232],[102.253174,32.507964],[102.253173,32.507696],[102.253173,32.507429],[102.253172,32.507161],[102.253171,32.506893],[102.253171,32.506626],[102.25317,32.506358],[102.253154,32.50612],[102.253138,32.505882],[102.253122,32.505645],[102.253106,32.505407],[102.25309,32.505169],[102.253074,32.504931],[102.253058,32.504694],[102.253042,32.504456],[102.253026,32.504218],[102.25301,32.503981],[102.252994,32.503743],[102.252978,32.503505],[102.25293,32.503249],[102.252882,32.502993],[102.252834,32.502737],[102.252786,32.50248],[102.252738,32.502224],[102.252691,32.501968],[102.252605,32.501755],[102.25252,32.501542],[102.252435,32.501328],[102.25235,32.501115],[102.252265,32.500902],[102.252179,32.500688],[102.252094,32.500475],[102.252009,32.500262],[102.25194,32.500117],[102.251924,32.500082],[102.251843,32.499911],[102.251745,32.499705],[102.251647,32.499499],[102.25155,32.499293],[102.251452,32.499088],[102.251355,32.498882],[102.251263,32.498536],[102.251172,32.49819],[102.25111,32.497955],[102.251048,32.49772],[102.250987,32.497485],[102.250925,32.497251],[102.250863,32.497016],[102.250801,32.496781],[102.250739,32.496547],[102.250677,32.496312],[102.250615,32.496077],[102.250554,32.495842],[102.250492,32.495608],[102.25043,32.495373],[102.250368,32.495138],[102.250306,32.494904],[102.250179,32.494548],[102.250121,32.494388],[102.250051,32.494192],[102.249838,32.493833],[102.249649,32.493642],[102.249348,32.493493],[102.24896,32.493415],[102.248703,32.493409],[102.248446,32.493403],[102.248189,32.493397],[102.247931,32.493392],[102.247666,32.493421],[102.247402,32.49345],[102.247136,32.49348],[102.246871,32.493509],[102.246501,32.49376],[102.246132,32.494011],[102.245762,32.494262],[102.245711,32.494302],[102.245563,32.494415],[102.245363,32.494568],[102.245164,32.49472],[102.244965,32.494873],[102.244765,32.495025],[102.244566,32.495178],[102.244366,32.49533],[102.244167,32.495483],[102.243968,32.495635],[102.243768,32.495788],[102.243569,32.495941],[102.24337,32.496093],[102.243205,32.496252],[102.24304,32.49641],[102.242875,32.496568],[102.24271,32.496727],[102.242545,32.496885],[102.24238,32.497043],[102.242215,32.497202],[102.24205,32.49736],[102.241891,32.497565],[102.241731,32.497771],[102.241572,32.497976],[102.241413,32.498182],[102.241253,32.498387],[102.241176,32.498487],[102.241094,32.498593],[102.240934,32.498798],[102.240775,32.499004],[102.24077,32.499014],[102.240604,32.499375],[102.240433,32.499746],[102.240262,32.500117],[102.240142,32.500378],[102.24003,32.500582],[102.239918,32.500787],[102.239806,32.500992],[102.239694,32.501197],[102.239582,32.501401],[102.23947,32.501606],[102.239358,32.501811],[102.239246,32.502016],[102.239134,32.50222],[102.239022,32.502425],[102.238908,32.502678],[102.238793,32.50293],[102.238679,32.503183],[102.238565,32.503435],[102.238451,32.503688],[102.238393,32.503815],[102.238336,32.50394],[102.238282,32.50419],[102.238228,32.50444],[102.238174,32.50469],[102.23812,32.504941],[102.238066,32.505191],[102.238011,32.505441],[102.237976,32.505699],[102.23794,32.505957],[102.237934,32.506192],[102.237927,32.506427],[102.237959,32.506687],[102.237992,32.506947],[102.238086,32.507165],[102.23818,32.507384],[102.238273,32.507603],[102.238367,32.507822],[102.238461,32.508041],[102.238555,32.50826],[102.238649,32.508479],[102.238742,32.508697],[102.238836,32.508916],[102.23893,32.509135],[102.238986,32.509354],[102.239042,32.509574],[102.239099,32.509793],[102.239155,32.510012],[102.239199,32.510366],[102.239162,32.510672],[102.239042,32.510975],[102.238808,32.5113],[102.238636,32.511473],[102.238464,32.511646],[102.238175,32.511968],[102.237945,32.512246],[102.237826,32.512491],[102.237707,32.512736],[102.237615,32.513016],[102.237608,32.513257],[102.237605,32.513345],[102.237595,32.513674],[102.237694,32.514077],[102.237727,32.514337],[102.237761,32.514597],[102.237753,32.514867],[102.237744,32.515138],[102.237706,32.515514],[102.237615,32.515723],[102.237493,32.516074],[102.237432,32.516293],[102.23737,32.516512],[102.237383,32.516655],[102.237401,32.516853],[102.237433,32.517195],[102.237437,32.517501],[102.237442,32.517807],[102.237442,32.51792],[102.237443,32.518059],[102.237445,32.51831],[102.237446,32.518561],[102.237448,32.518813],[102.237449,32.519064],[102.237451,32.519315],[102.237508,32.519717],[102.237566,32.520118],[102.237527,32.520447],[102.237489,32.520776],[102.237394,32.521174],[102.237246,32.521453],[102.237099,32.521733],[102.236927,32.522082],[102.236755,32.522431],[102.236583,32.52278],[102.236322,32.523136],[102.23606,32.523491],[102.235799,32.523847],[102.235644,32.52402],[102.23549,32.524193],[102.235335,32.524366],[102.23518,32.524539],[102.235025,32.524712],[102.23487,32.524885],[102.234715,32.525059],[102.234561,32.525232],[102.234394,32.525446],[102.234227,32.52566],[102.23406,32.525874],[102.233893,32.526089],[102.233761,32.526333],[102.233629,32.526577],[102.233452,32.526903],[102.2334,32.527196],[102.233349,32.52749],[102.233335,32.527741],[102.23332,32.527992],[102.233306,32.528244],[102.233292,32.528495],[102.233336,32.528861],[102.23338,32.529227],[102.233342,32.529544],[102.233305,32.529861],[102.233239,32.530201],[102.233174,32.530541],[102.233139,32.530776],[102.233104,32.53101],[102.233047,32.531244],[102.232991,32.531479],[102.23295,32.53165],[102.232935,32.531713],[102.232879,32.531947],[102.232781,32.532192],[102.232683,32.532437],[102.232585,32.532682],[102.232487,32.532927],[102.232425,32.533144],[102.232362,32.533361],[102.2323,32.533578],[102.232238,32.533794],[102.232239,32.534027],[102.23224,32.53426],[102.23224,32.534492],[102.232241,32.534725],[102.232242,32.534958],[102.232242,32.535108],[102.232243,32.53519],[102.232244,32.535423],[102.232244,32.535656],[102.232245,32.535888],[102.232246,32.536121],[102.232205,32.536387],[102.232165,32.536653],[102.232124,32.536919],[102.232083,32.537185],[102.232043,32.537451],[102.232002,32.537717],[102.231908,32.538068],[102.231814,32.538419],[102.231733,32.538601],[102.231679,32.538722],[102.231545,32.539025],[102.231382,32.539328],[102.231219,32.539631],[102.23107,32.539933],[102.23099,32.540097],[102.230922,32.540235],[102.230841,32.540611],[102.23076,32.540986],[102.230695,32.541279],[102.230631,32.541571],[102.230618,32.541704],[102.230609,32.541784],[102.23058,32.542065],[102.230551,32.542346],[102.230566,32.542731],[102.230582,32.543115],[102.230597,32.543499],[102.230716,32.543726],[102.230834,32.543954],[102.23088,32.544262],[102.230842,32.54459],[102.230691,32.544963],[102.230652,32.545011],[102.230431,32.545287],[102.230233,32.545424],[102.230035,32.545561],[102.229751,32.545696],[102.229468,32.545831],[102.229215,32.545919],[102.228962,32.546008],[102.228623,32.546095],[102.228373,32.546112],[102.228234,32.54611],[102.227848,32.545983],[102.227462,32.545857],[102.227227,32.545731],[102.226992,32.545606],[102.226757,32.54548],[102.226523,32.545355],[102.226288,32.545229],[102.226182,32.545173],[102.226053,32.545104],[102.225859,32.54497],[102.225666,32.544836],[102.225472,32.544702],[102.225279,32.544568],[102.225086,32.544435],[102.224892,32.544301],[102.224699,32.544167],[102.224505,32.544033],[102.224312,32.543899],[102.224118,32.543765],[102.223886,32.543629],[102.223653,32.543492],[102.223421,32.543356],[102.223189,32.543219],[102.222956,32.543083],[102.222724,32.542946],[102.222491,32.542809],[102.222259,32.542673],[102.222026,32.542536],[102.221794,32.5424],[102.221562,32.542263],[102.221329,32.542126],[102.221082,32.541955],[102.220835,32.541784],[102.220508,32.541558],[102.220182,32.541332],[102.219855,32.541106],[102.219655,32.540853],[102.219504,32.540664],[102.219489,32.540645],[102.219471,32.540623],[102.219454,32.540601],[102.219242,32.540244],[102.219058,32.539886],[102.218985,32.539579],[102.218913,32.53916],[102.218841,32.538742],[102.21877,32.538323],[102.218698,32.537904],[102.21866,32.537661],[102.218622,32.537419],[102.218585,32.537177],[102.218547,32.536934],[102.218509,32.536692],[102.218471,32.53645],[102.218434,32.536208],[102.218396,32.535965],[102.218379,32.535588],[102.218249,32.535326],[102.218005,32.535062],[102.217814,32.53494],[102.217623,32.534817],[102.217266,32.534717],[102.216987,32.53471],[102.216743,32.53471],[102.2165,32.534711],[102.21634,32.534711],[102.216256,32.534712],[102.216013,32.534712],[102.215614,32.534703],[102.215215,32.534694],[102.214816,32.534686],[102.214383,32.534711],[102.213951,32.534737],[102.213688,32.5348],[102.213425,32.534862],[102.213287,32.534895],[102.213239,32.534906],[102.213172,32.534922],[102.213163,32.534925],[102.213151,32.534927],[102.213123,32.534934],[102.2129,32.534987],[102.212727,32.535028],[102.212638,32.535049],[102.212375,32.535112],[102.212113,32.535174],[102.21185,32.535237],[102.211587,32.535299],[102.211325,32.535361],[102.211063,32.535416],[102.210802,32.535472],[102.21054,32.535527],[102.210279,32.535582],[102.210017,32.535637],[102.209755,32.535692],[102.209494,32.535747],[102.209232,32.535802],[102.209173,32.535814],[102.208971,32.535857],[102.208709,32.535912],[102.208448,32.535967],[102.208291,32.536],[102.208275,32.536004],[102.208186,32.536022],[102.207774,32.53613],[102.20765,32.536163],[102.207552,32.536189],[102.207363,32.536239],[102.206951,32.536347],[102.206559,32.536393],[102.206168,32.53644],[102.205777,32.536486],[102.205771,32.536486],[102.205443,32.536491],[102.205108,32.536495],[102.204873,32.536466],[102.204637,32.536437],[102.204276,32.536406],[102.203859,32.536326],[102.203532,32.536177],[102.203313,32.536054],[102.203126,32.535791],[102.203044,32.535537],[102.202962,32.535283],[102.202879,32.535029],[102.202797,32.534774],[102.202715,32.53452],[102.202633,32.534266],[102.202551,32.534011],[102.202469,32.533757],[102.202387,32.533503],[102.202305,32.533248],[102.202223,32.532994],[102.202141,32.53274],[102.202059,32.532486],[102.201977,32.532231],[102.201895,32.531977],[102.201813,32.531723],[102.201731,32.531468],[102.201648,32.531214],[102.201566,32.53096],[102.201484,32.530706],[102.201402,32.530451],[102.20132,32.530197],[102.201247,32.529978],[102.201173,32.529758],[102.2011,32.529539],[102.201027,32.529319],[102.200953,32.5291],[102.20088,32.52888],[102.200806,32.528661],[102.200733,32.528441],[102.200675,32.528178],[102.200617,32.527915],[102.200559,32.527652],[102.200502,32.527388],[102.200444,32.527125],[102.200386,32.526862],[102.200328,32.526599],[102.20027,32.526335],[102.200253,32.525984],[102.200264,32.525605],[102.200298,32.525419],[102.200359,32.525254],[102.20053,32.525105],[102.200681,32.524974],[102.200689,32.524968],[102.200701,32.524957],[102.200874,32.524808],[102.201046,32.524659],[102.201218,32.524511],[102.20139,32.524362],[102.201563,32.524213],[102.201643,32.524144],[102.201645,32.524143],[102.201735,32.524065],[102.201907,32.523916],[102.201961,32.52387],[102.202079,32.523767],[102.202245,32.523571],[102.202412,32.523374],[102.202578,32.523178],[102.202744,32.522982],[102.202949,32.52268],[102.203069,32.522425],[102.203174,32.522191],[102.203278,32.521957],[102.203345,32.521712],[102.203411,32.521466],[102.203478,32.52122],[102.203545,32.520975],[102.203612,32.520729],[102.203679,32.520483],[102.203745,32.520238],[102.203812,32.519992],[102.203867,32.519552],[102.203922,32.519112],[102.203977,32.518671],[102.204001,32.518481],[102.204001,32.518479],[102.204002,32.518477],[102.204033,32.518231],[102.204031,32.518193],[102.204011,32.517808],[102.203989,32.517385],[102.203967,32.516961],[102.203946,32.516538],[102.203898,32.516278],[102.20385,32.516018],[102.203803,32.515758],[102.203755,32.515498],[102.203666,32.515237],[102.203577,32.514976],[102.20342,32.514643],[102.203318,32.514359],[102.203191,32.513955],[102.203108,32.513694],[102.203025,32.513433],[102.202943,32.513172],[102.20286,32.512911],[102.202851,32.512676],[102.202842,32.512441],[102.202833,32.512206],[102.202824,32.511971],[102.202815,32.511735],[102.202806,32.5115],[102.202797,32.511265],[102.202788,32.51103],[102.202779,32.510795],[102.20277,32.510559],[102.202761,32.510324],[102.202757,32.510228],[102.202752,32.510089],[102.202713,32.509853],[102.202674,32.509616],[102.202634,32.50938],[102.202595,32.509144],[102.202556,32.508907],[102.202517,32.508671],[102.202478,32.508435],[102.202439,32.508198],[102.2024,32.507962],[102.202361,32.507726],[102.202322,32.507489],[102.202282,32.507253],[102.202255,32.506992],[102.202228,32.506731],[102.202201,32.50647],[102.202174,32.506209],[102.202147,32.505948],[102.20212,32.505686],[102.202093,32.505425],[102.202066,32.505164],[102.202039,32.504903],[102.202012,32.504642],[102.201985,32.504381],[102.201958,32.50412],[102.201931,32.503859],[102.201904,32.503598],[102.201877,32.503337],[102.20185,32.503076],[102.201797,32.502674],[102.201744,32.502272],[102.201692,32.50187],[102.201537,32.501514],[102.201376,32.501276],[102.201215,32.501084],[102.201,32.500867],[102.200702,32.500578],[102.200461,32.500219],[102.200418,32.500117],[102.200281,32.499791],[102.200176,32.499577],[102.200072,32.499362],[102.19997,32.499031],[102.199923,32.498765],[102.199876,32.498499],[102.199828,32.498233],[102.199781,32.497968],[102.199731,32.497724],[102.199682,32.49748],[102.199632,32.497237],[102.199582,32.496993],[102.199532,32.496749],[102.199482,32.496506],[102.199387,32.496284],[102.199292,32.496062],[102.199274,32.496021],[102.199197,32.49584],[102.199102,32.495618],[102.199006,32.495396],[102.198989,32.495356],[102.198911,32.495175],[102.198699,32.494863],[102.198535,32.494765],[102.198314,32.49469],[102.198009,32.494685],[102.197618,32.494699],[102.197395,32.494728],[102.197172,32.494758],[102.196907,32.494776],[102.196642,32.494794],[102.196196,32.494807],[102.195751,32.494798],[102.195306,32.494788],[102.195023,32.494782],[102.194862,32.494779],[102.19464,32.494738],[102.194419,32.494697],[102.194032,32.494606],[102.193645,32.494515],[102.193386,32.494419],[102.193127,32.494323],[102.192868,32.494227],[102.192609,32.494131],[102.19235,32.494035],[102.192091,32.493939],[102.191832,32.493843],[102.191572,32.493747],[102.191313,32.493651],[102.191054,32.493555],[102.190795,32.493458],[102.190536,32.493362],[102.190422,32.493317],[102.190407,32.493101],[102.190308,32.49166],[102.190146,32.489163],[102.190196,32.48754],[102.190116,32.484999],[102.190245,32.484007],[102.190247,32.483987],[102.190347,32.483219],[102.190356,32.483147],[102.190431,32.482569],[102.190829,32.48004],[102.191084,32.478285],[102.191362,32.477039],[102.191566,32.475622],[102.191625,32.475014],[102.190869,32.473643],[102.190209,32.473019],[102.190121,32.472689],[102.189816,32.471555],[102.189845,32.470611],[102.189847,32.470541],[102.189853,32.470371],[102.189859,32.468887],[102.189859,32.468882],[102.189841,32.468837],[102.189451,32.467891],[102.189325,32.466805],[102.189001,32.465647],[102.188354,32.464651],[102.187653,32.46406],[102.186502,32.463865],[102.185543,32.463877],[102.184357,32.463512],[102.182871,32.462497],[102.182061,32.461599],[102.181184,32.460259],[102.180516,32.458653],[102.179957,32.457355],[102.178293,32.455659],[102.177609,32.45456],[102.177051,32.453262],[102.177122,32.452248],[102.17725,32.450899],[102.177301,32.450356],[102.177262,32.449069],[102.176963,32.447133],[102.176604,32.445839],[102.176494,32.444245],[102.176729,32.4431],[102.178165,32.440593],[102.178953,32.439629],[102.179582,32.438662],[102.179974,32.437621],[102.180074,32.43698],[102.179828,32.435892],[102.179334,32.435102],[102.179353,32.434493],[102.17904,32.432997],[102.178558,32.431835],[102.177884,32.430398],[102.177654,32.428802],[102.177956,32.428098],[102.17782,32.427317],[102.178134,32.426207],[102.178769,32.42507],[102.179495,32.423529],[102.180289,32.422689],[102.180403,32.422568],[102.181511,32.421577],[102.182488,32.420956],[102.183544,32.420371],[102.184198,32.419877],[102.184373,32.419374],[102.184315,32.418695],[102.183905,32.417738],[102.183051,32.416975],[102.182793,32.416292],[102.182047,32.415903],[102.181391,32.415177],[102.180948,32.414017],[102.180106,32.412881],[102.178906,32.411703],[102.178143,32.41047],[102.177899,32.409269],[102.177831,32.407833],[102.177736,32.403623],[102.177688,32.401566],[102.177022,32.3994],[102.176786,32.397915],[102.176776,32.397853],[102.176769,32.397807],[102.176743,32.397648],[102.17674,32.397624],[102.176606,32.396474],[102.177087,32.395528],[102.177899,32.394769],[102.178099,32.394304],[102.178118,32.394259],[102.178127,32.394237],[102.178067,32.394221],[102.178007,32.394204],[102.177247,32.394002],[102.1769,32.39387],[102.176874,32.39386],[102.176767,32.393819],[102.176719,32.393801],[102.176618,32.393763],[102.176551,32.393737],[102.176434,32.393693],[102.176244,32.393621],[102.176065,32.393549],[102.176002,32.393524],[102.175933,32.393496],[102.175651,32.393383],[102.175632,32.393375],[102.175611,32.393369],[102.175201,32.393203],[102.174777,32.393229],[102.174767,32.393573],[102.174765,32.393624],[102.174763,32.393681],[102.174762,32.393731],[102.174325,32.394187],[102.173881,32.394177],[102.173814,32.394176],[102.173734,32.394174],[102.173727,32.394165],[102.173699,32.394124],[102.173289,32.393519],[102.173214,32.392941],[102.173208,32.39289],[102.173205,32.392866],[102.1732,32.392827],[102.173187,32.392727],[102.173166,32.392559],[102.17316,32.392508],[102.173113,32.392123],[102.173109,32.392091],[102.173102,32.392034],[102.173086,32.3919],[102.172956,32.391882],[102.172826,32.391863],[102.17277,32.391855],[102.172758,32.391853],[102.172497,32.391815],[102.17169,32.391941],[102.170849,32.391778],[102.170823,32.391733],[102.170806,32.391705],[102.170568,32.391306],[102.170609,32.391013],[102.170614,32.390974],[102.170637,32.390813],[102.170642,32.390776],[102.170666,32.3906],[102.170655,32.390583],[102.170641,32.390528],[102.170661,32.390492],[102.170679,32.390479],[102.170687,32.390204],[102.170688,32.390169],[102.1707,32.389803],[102.170631,32.389302],[102.170641,32.389284],[102.170649,32.389249],[102.170643,32.38922],[102.170616,32.389186],[102.170597,32.389047],[102.170133,32.388674],[102.17012,32.388663],[102.170104,32.38866],[102.170087,32.388637],[102.169996,32.388564],[102.169967,32.388471],[102.169955,32.388416],[102.169912,32.388356],[102.169845,32.388303],[102.169816,32.38829],[102.169784,32.388289],[102.169707,32.388312],[102.169688,32.388329],[102.169652,32.388339],[102.16964,32.38834],[102.169601,32.388324],[102.169541,32.388284],[102.169454,32.38823],[102.169358,32.38817],[102.169323,32.388123],[102.169322,32.388089],[102.169369,32.388026],[102.169373,32.388022],[102.169378,32.388018],[102.169383,32.388014],[102.169389,32.388012],[102.169422,32.388],[102.169427,32.387998],[102.169433,32.387997],[102.16944,32.387997],[102.169446,32.387997],[102.169491,32.388002],[102.169525,32.387997],[102.169538,32.387984],[102.169543,32.387957],[102.169489,32.38785],[102.169447,32.387798],[102.169418,32.387779],[102.169411,32.387776],[102.169376,32.387748],[102.169325,32.387735],[102.169262,32.387734],[102.169219,32.387728],[102.169185,32.387711],[102.169162,32.38768],[102.169194,32.387663],[102.169185,32.38761],[102.169195,32.38756],[102.169239,32.387476],[102.169242,32.387471],[102.169289,32.387423],[102.169345,32.387398],[102.169648,32.387353],[102.169878,32.387286],[102.169979,32.387248],[102.169989,32.387242],[102.170015,32.387232],[102.170167,32.387193],[102.170272,32.387137],[102.170298,32.387088],[102.170294,32.387056],[102.17029,32.387052],[102.17026,32.387022],[102.170225,32.387013],[102.170143,32.387018],[102.170072,32.386993],[102.170057,32.386982],[102.170029,32.386963],[102.169999,32.386921],[102.169933,32.386753],[102.169897,32.386712],[102.169867,32.386677],[102.169861,32.386637],[102.169882,32.386604],[102.169927,32.386579],[102.170049,32.386559],[102.170082,32.386548],[102.170127,32.386511],[102.170136,32.386465],[102.170126,32.386438],[102.170088,32.386394],[102.169938,32.386337],[102.169927,32.38633],[102.169856,32.386286],[102.169838,32.386258],[102.16983,32.386195],[102.169857,32.386111],[102.169867,32.386081],[102.169944,32.385946],[102.170015,32.385858],[102.170108,32.385784],[102.170167,32.385569],[102.170209,32.385536],[102.170203,32.3855],[102.170304,32.385444],[102.170333,32.385419],[102.17031,32.385366],[102.170183,32.385245],[102.170178,32.385199],[102.170207,32.385147],[102.170285,32.385077],[102.170356,32.385045],[102.170419,32.385047],[102.170445,32.385062],[102.170474,32.385098],[102.170513,32.385111],[102.170544,32.385112],[102.170576,32.385106],[102.170606,32.385091],[102.170657,32.385033],[102.170657,32.384891],[102.170646,32.384821],[102.170615,32.384752],[102.170517,32.384628],[102.170476,32.384524],[102.170451,32.384503],[102.170284,32.384454],[102.170138,32.384382],[102.170112,32.38436],[102.170101,32.38434],[102.170094,32.384291],[102.170114,32.384232],[102.170167,32.384179],[102.170241,32.384142],[102.170379,32.384108],[102.170453,32.38408],[102.170512,32.384046],[102.170542,32.383997],[102.17057,32.383861],[102.170566,32.383838],[102.17054,32.383806],[102.170477,32.38378],[102.170437,32.383764],[102.170391,32.383721],[102.170312,32.383597],[102.1703,32.383573],[102.170263,32.383499],[102.170254,32.383431],[102.170266,32.383394],[102.170276,32.383384],[102.170305,32.383353],[102.170387,32.383301],[102.17053,32.38324],[102.170601,32.383166],[102.170641,32.383081],[102.170679,32.383003],[102.170783,32.382744],[102.170786,32.38271],[102.17077,32.382669],[102.170709,32.382594],[102.170627,32.382546],[102.170605,32.38254],[102.170571,32.382549],[102.170517,32.382564],[102.170486,32.382573],[102.17044,32.38257],[102.170403,32.382554],[102.170357,32.3825],[102.1703,32.382457],[102.170276,32.382424],[102.170233,32.382311],[102.170224,32.382298],[102.170189,32.382245],[102.170168,32.38223],[102.170129,32.382233],[102.170089,32.382224],[102.170053,32.382187],[102.170029,32.382121],[102.169986,32.382001],[102.16989,32.381849],[102.16989,32.381807],[102.169916,32.381785],[102.169969,32.381775],[102.170082,32.381776],[102.17011,32.38176],[102.170137,32.381729],[102.170151,32.381649],[102.170115,32.381563],[102.170123,32.381548],[102.170155,32.381529],[102.170163,32.381436],[102.170198,32.381417],[102.170226,32.381416],[102.170233,32.381406],[102.170238,32.381368],[102.170219,32.38134],[102.170209,32.381299],[102.17021,32.381261],[102.170223,32.381212],[102.170248,32.381168],[102.170283,32.381133],[102.170324,32.381115],[102.17038,32.38109],[102.17041,32.381035],[102.170411,32.381012],[102.170402,32.380993],[102.170313,32.381027],[102.1703,32.381028],[102.170252,32.381034],[102.170184,32.381022],[102.170136,32.381006],[102.170116,32.380999],[102.170083,32.380965],[102.17008,32.380928],[102.170111,32.380859],[102.170162,32.380814],[102.170226,32.380755],[102.170237,32.380746],[102.170243,32.380706],[102.170228,32.380672],[102.170213,32.380664],[102.170201,32.380664],[102.17019,32.380664],[102.170129,32.380682],[102.170051,32.380736],[102.170031,32.38079],[102.170001,32.380819],[102.169953,32.380838],[102.1699,32.380833],[102.169856,32.380804],[102.169801,32.38073],[102.169573,32.380514],[102.169541,32.380485],[102.169495,32.38043],[102.169498,32.380404],[102.169519,32.380374],[102.169658,32.380312],[102.169811,32.380203],[102.16985,32.380187],[102.16995,32.380176],[102.170017,32.380158],[102.170052,32.380128],[102.170084,32.380069],[102.170071,32.38001],[102.170048,32.379984],[102.170022,32.37997],[102.169991,32.379968],[102.169867,32.380011],[102.169842,32.380008],[102.169812,32.379992],[102.16978,32.379947],[102.169766,32.379849],[102.16978,32.379776],[102.169803,32.379745],[102.169819,32.379736],[102.169856,32.37974],[102.169943,32.37978],[102.16996,32.379769],[102.169959,32.37974],[102.169927,32.379628],[102.169877,32.379541],[102.169876,32.37952],[102.169896,32.379486],[102.169936,32.379464],[102.169967,32.37946],[102.170063,32.379508],[102.170086,32.379494],[102.170108,32.379481],[102.170135,32.379444],[102.170131,32.379421],[102.17007,32.379335],[102.170021,32.379268],[102.170007,32.379205],[102.169968,32.37916],[102.169948,32.379087],[102.169959,32.379055],[102.170025,32.378995],[102.170032,32.378983],[102.170043,32.378964],[102.170037,32.378771],[102.17003,32.378737],[102.170006,32.378733],[102.169923,32.378717],[102.16983,32.378681],[102.169701,32.378599],[102.169569,32.37854],[102.169417,32.378418],[102.169397,32.378371],[102.169415,32.378299],[102.169406,32.378264],[102.169366,32.378216],[102.169267,32.378134],[102.169085,32.377896],[102.169081,32.377878],[102.169089,32.377852],[102.169125,32.377829],[102.169139,32.3778],[102.169133,32.377781],[102.169121,32.377747],[102.169062,32.377678],[102.168867,32.377543],[102.168839,32.377493],[102.16884,32.377462],[102.168878,32.377413],[102.168897,32.377405],[102.168961,32.377401],[102.169013,32.377412],[102.169022,32.377418],[102.169062,32.377442],[102.169078,32.377458],[102.169104,32.377517],[102.169122,32.37754],[102.169204,32.377521],[102.169256,32.377492],[102.16929,32.377458],[102.169309,32.37745],[102.169344,32.377461],[102.169367,32.377481],[102.169384,32.377547],[102.169398,32.377567],[102.169432,32.377562],[102.169476,32.377519],[102.169487,32.377396],[102.169517,32.377365],[102.169554,32.377361],[102.169584,32.377234],[102.169582,32.377135],[102.169595,32.377064],[102.169588,32.377048],[102.169542,32.377018],[102.169533,32.37699],[102.169552,32.376952],[102.16963,32.376884],[102.169643,32.376861],[102.169645,32.376827],[102.169628,32.376779],[102.169601,32.376733],[102.169564,32.37674],[102.169478,32.376734],[102.169433,32.376716],[102.169417,32.376701],[102.169411,32.376683],[102.169481,32.376592],[102.169469,32.376521],[102.169481,32.376482],[102.1695,32.376463],[102.169547,32.376445],[102.169608,32.37645],[102.169641,32.376463],[102.169674,32.376454],[102.169698,32.376419],[102.169706,32.376394],[102.169707,32.376378],[102.16968,32.376327],[102.169689,32.376298],[102.16972,32.376269],[102.169846,32.376197],[102.169828,32.376162],[102.169724,32.376146],[102.169696,32.37613],[102.169658,32.376089],[102.169655,32.376069],[102.169667,32.376042],[102.169731,32.375996],[102.169733,32.37598],[102.169721,32.375955],[102.169675,32.375951],[102.169586,32.375959],[102.169542,32.37595],[102.169503,32.375921],[102.169497,32.375895],[102.169503,32.375863],[102.169532,32.375813],[102.169565,32.375793],[102.169625,32.375792],[102.169772,32.375806],[102.169921,32.375785],[102.169955,32.375757],[102.169956,32.375702],[102.169854,32.375672],[102.1698,32.375635],[102.169758,32.375595],[102.169717,32.375606],[102.169652,32.375662],[102.16963,32.375669],[102.169584,32.375661],[102.169511,32.375609],[102.169506,32.375598],[102.169493,32.375565],[102.169497,32.375535],[102.169524,32.375495],[102.169599,32.375427],[102.169606,32.375396],[102.169599,32.375325],[102.169585,32.375302],[102.169565,32.375289],[102.169513,32.375344],[102.169452,32.375366],[102.169391,32.375347],[102.169348,32.375319],[102.169341,32.375289],[102.169355,32.375259],[102.169486,32.375188],[102.169482,32.375151],[102.169455,32.375089],[102.169419,32.375068],[102.169344,32.375096],[102.169297,32.375159],[102.169256,32.375182],[102.169205,32.375182],[102.169196,32.37518],[102.169121,32.375165],[102.169104,32.375203],[102.169075,32.375271],[102.169071,32.37531],[102.169059,32.37541],[102.169025,32.375441],[102.168996,32.375454],[102.168961,32.375463],[102.168871,32.375464],[102.168844,32.375471],[102.168844,32.375478],[102.16887,32.375496],[102.168879,32.375524],[102.16886,32.37557],[102.168846,32.375582],[102.168803,32.375581],[102.168723,32.375521],[102.168668,32.37546],[102.168653,32.375429],[102.168653,32.375412],[102.168673,32.375396],[102.168711,32.375392],[102.168753,32.375359],[102.168829,32.37521],[102.168866,32.375089],[102.168885,32.375061],[102.168914,32.375041],[102.168949,32.37503],[102.168965,32.375025],[102.168992,32.375016],[102.169014,32.374997],[102.169026,32.374964],[102.169009,32.374825],[102.168987,32.374825],[102.16895,32.374837],[102.168935,32.37485],[102.168904,32.374906],[102.168897,32.374911],[102.168884,32.374919],[102.168843,32.37493],[102.16881,32.374919],[102.168761,32.374876],[102.168681,32.374878],[102.168637,32.374857],[102.168615,32.374837],[102.168604,32.374778],[102.168621,32.37474],[102.168641,32.374718],[102.168654,32.374709],[102.168705,32.374678],[102.168812,32.374645],[102.168822,32.374641],[102.168832,32.374631],[102.168835,32.374604],[102.168821,32.374578],[102.168816,32.374569],[102.168783,32.374539],[102.168764,32.374531],[102.168663,32.374557],[102.168618,32.374552],[102.168539,32.374492],[102.168512,32.374461],[102.168458,32.374334],[102.16839,32.374252],[102.16838,32.374212],[102.168397,32.374181],[102.168432,32.374166],[102.168461,32.374166],[102.168516,32.374192],[102.168546,32.374193],[102.168555,32.374178],[102.168551,32.374145],[102.168525,32.374086],[102.168496,32.374076],[102.168456,32.37408],[102.168365,32.37413],[102.168253,32.374179],[102.168245,32.374181],[102.168218,32.374189],[102.168154,32.374188],[102.168037,32.374152],[102.167963,32.374101],[102.167917,32.374041],[102.167903,32.373986],[102.167914,32.373875],[102.167914,32.373867],[102.167943,32.373783],[102.168012,32.373713],[102.16814,32.373634],[102.168688,32.373499],[102.168792,32.373495],[102.168914,32.373512],[102.168927,32.373507],[102.168953,32.373479],[102.16897,32.373441],[102.168973,32.373364],[102.168894,32.37321],[102.16888,32.373168],[102.168886,32.373145],[102.168963,32.373085],[102.16928,32.372897],[102.1693,32.372875],[102.169316,32.372826],[102.169308,32.372778],[102.169163,32.372715],[102.169156,32.37271],[102.169134,32.372691],[102.169122,32.372671],[102.169106,32.372597],[102.169107,32.372562],[102.169111,32.37248],[102.169065,32.372477],[102.169044,32.372487],[102.169023,32.372497],[102.169001,32.372555],[102.168971,32.372595],[102.168924,32.37263],[102.16885,32.372657],[102.168799,32.372651],[102.168759,32.372618],[102.168746,32.372591],[102.168743,32.372533],[102.16876,32.372475],[102.168781,32.372437],[102.168815,32.372373],[102.168864,32.372323],[102.16898,32.372278],[102.169223,32.372225],[102.169236,32.372212],[102.169231,32.372176],[102.169167,32.372149],[102.169142,32.372129],[102.169121,32.372068],[102.169128,32.372053],[102.169145,32.372039],[102.169276,32.371999],[102.169273,32.371982],[102.16925,32.37195],[102.169142,32.371925],[102.169115,32.371908],[102.169077,32.371883],[102.16905,32.371847],[102.16904,32.371789],[102.169064,32.371659],[102.169127,32.371533],[102.169184,32.37148],[102.169268,32.371455],[102.169289,32.371398],[102.169288,32.371316],[102.169271,32.371268],[102.169229,32.371224],[102.169115,32.371142],[102.169099,32.371108],[102.169103,32.371085],[102.169126,32.371047],[102.1692,32.371021],[102.169204,32.370976],[102.169193,32.370869],[102.169209,32.370821],[102.169226,32.370803],[102.169248,32.370797],[102.169286,32.370803],[102.169328,32.370822],[102.16934,32.370827],[102.169383,32.370867],[102.16947,32.370981],[102.169495,32.370997],[102.169705,32.370998],[102.169759,32.37098],[102.169799,32.370951],[102.169801,32.370894],[102.169781,32.37086],[102.169626,32.370755],[102.169604,32.370733],[102.16956,32.37069],[102.169533,32.37063],[102.169517,32.370542],[102.169484,32.370471],[102.16948,32.370425],[102.169507,32.370358],[102.169547,32.370323],[102.169611,32.370292],[102.169715,32.37028],[102.16974,32.370263],[102.169752,32.370221],[102.169658,32.370152],[102.169651,32.370131],[102.169656,32.370114],[102.169709,32.370051],[102.1698,32.369988],[102.169856,32.369935],[102.169884,32.369886],[102.169914,32.369784],[102.169895,32.369735],[102.169858,32.369687],[102.169718,32.369591],[102.169694,32.369575],[102.169625,32.369514],[102.169594,32.369468],[102.169589,32.369443],[102.169595,32.369384],[102.169619,32.369298],[102.169664,32.36919],[102.169682,32.369114],[102.169684,32.36909],[102.169685,32.369077],[102.169687,32.369057],[102.16969,32.369029],[102.169684,32.368983],[102.169668,32.368941],[102.16961,32.368871],[102.1695,32.368737],[102.169472,32.368669],[102.169462,32.368612],[102.169462,32.368533],[102.169498,32.368414],[102.169514,32.368363],[102.169512,32.368345],[102.169507,32.368289],[102.169487,32.368279],[102.169469,32.368277],[102.169427,32.368274],[102.169356,32.368282],[102.169313,32.368295],[102.169185,32.368357],[102.169178,32.368363],[102.169155,32.368383],[102.169112,32.368441],[102.169072,32.368451],[102.169007,32.368433],[102.168944,32.368372],[102.168881,32.368338],[102.168831,32.368328],[102.168739,32.368364],[102.168687,32.36837],[102.168625,32.368368],[102.168577,32.368347],[102.168541,32.36829],[102.168529,32.368238],[102.168535,32.368194],[102.168552,32.36817],[102.168616,32.368117],[102.168635,32.368045],[102.168637,32.367966],[102.168597,32.36788],[102.168603,32.367816],[102.168652,32.367733],[102.168738,32.367663],[102.168828,32.367566],[102.168907,32.367455],[102.168976,32.367326],[102.169049,32.367237],[102.16907,32.367174],[102.169066,32.367124],[102.169052,32.367089],[102.169023,32.36706],[102.168976,32.367031],[102.168878,32.366994],[102.168829,32.366988],[102.168738,32.366995],[102.168663,32.367001],[102.168645,32.367002],[102.168628,32.366998],[102.168547,32.366978],[102.168504,32.366954],[102.168482,32.366907],[102.168486,32.366788],[102.168464,32.366718],[102.168429,32.3666],[102.168404,32.366558],[102.168381,32.366519],[102.168354,32.36649],[102.168316,32.366464],[102.16831,32.36646],[102.168223,32.366436],[102.168128,32.366436],[102.168047,32.366471],[102.167941,32.366518],[102.1678,32.366549],[102.167746,32.366553],[102.167653,32.36654],[102.167592,32.366519],[102.167567,32.3665],[102.167545,32.366463],[102.167533,32.366374],[102.167542,32.366341],[102.16758,32.366279],[102.167614,32.366242],[102.167694,32.366179],[102.167739,32.366152],[102.167853,32.36611],[102.167907,32.366011],[102.167918,32.365934],[102.167908,32.365912],[102.16788,32.365885],[102.16786,32.365875],[102.167841,32.365877],[102.167735,32.365924],[102.167681,32.365928],[102.167646,32.365909],[102.167593,32.365852],[102.167577,32.365817],[102.167573,32.365776],[102.167581,32.365729],[102.167606,32.36568],[102.167653,32.365625],[102.167709,32.365578],[102.167769,32.365546],[102.167908,32.365525],[102.16797,32.365495],[102.167994,32.365468],[102.168009,32.365413],[102.16801,32.36534],[102.167986,32.365265],[102.167947,32.365194],[102.167919,32.365161],[102.16787,32.365104],[102.167772,32.365021],[102.167707,32.364984],[102.167658,32.364969],[102.167472,32.364956],[102.16735,32.364963],[102.167209,32.364984],[102.167163,32.364995],[102.166876,32.36506],[102.166765,32.365072],[102.166667,32.365059],[102.166609,32.365039],[102.166578,32.365003],[102.166573,32.364939],[102.166597,32.364869],[102.166648,32.364813],[102.166681,32.364791],[102.166729,32.364779],[102.166822,32.36478],[102.166903,32.364768],[102.16695,32.364749],[102.166962,32.364724],[102.166964,32.364696],[102.166967,32.364621],[102.166957,32.364539],[102.166782,32.364058],[102.166783,32.364],[102.166802,32.363901],[102.166824,32.363859],[102.166873,32.36383],[102.167037,32.363758],[102.167562,32.363567],[102.167807,32.363446],[102.167923,32.363402],[102.168021,32.363383],[102.168041,32.363372],[102.168045,32.36336],[102.168038,32.363307],[102.168025,32.363283],[102.168007,32.363276],[102.167879,32.363274],[102.167844,32.363266],[102.167823,32.363252],[102.167804,32.363226],[102.167783,32.363167],[102.167797,32.363124],[102.167846,32.363088],[102.167901,32.363064],[102.168006,32.363051],[102.168024,32.363037],[102.168085,32.362884],[102.168087,32.362825],[102.168063,32.362756],[102.168041,32.362751],[102.167971,32.362762],[102.167942,32.36278],[102.167862,32.362862],[102.16785,32.362873],[102.167823,32.362885],[102.16779,32.362878],[102.16775,32.362837],[102.167732,32.3628],[102.16774,32.362479],[102.167729,32.362436],[102.167687,32.362384],[102.167632,32.362341],[102.167529,32.362277],[102.167496,32.362266],[102.167412,32.36227],[102.167294,32.362299],[102.167195,32.362308],[102.167155,32.362305],[102.167095,32.362286],[102.167039,32.362247],[102.167,32.362201],[102.166941,32.362036],[102.166929,32.361939],[102.166928,32.361931],[102.166935,32.361833],[102.166951,32.361774],[102.167044,32.361546],[102.16708,32.361486],[102.167123,32.361436],[102.167177,32.361399],[102.167272,32.361357],[102.167298,32.361326],[102.167317,32.361267],[102.167291,32.361079],[102.167297,32.361049],[102.167326,32.361023],[102.167403,32.360995],[102.167426,32.360977],[102.16747,32.360919],[102.167508,32.360841],[102.167496,32.360826],[102.167385,32.360805],[102.167338,32.360762],[102.16733,32.360748],[102.167287,32.360669],[102.167272,32.360624],[102.167267,32.360568],[102.167292,32.360491],[102.167299,32.360485],[102.167309,32.360476],[102.16735,32.360467],[102.167423,32.360475],[102.167517,32.360499],[102.167602,32.360483],[102.167647,32.360453],[102.167662,32.360366],[102.167691,32.360307],[102.167718,32.360282],[102.16777,32.360267],[102.16792,32.360263],[102.168093,32.360207],[102.168135,32.3602],[102.168202,32.360208],[102.168329,32.360274],[102.168493,32.360332],[102.16851,32.360305],[102.168508,32.360247],[102.168461,32.360113],[102.168474,32.360055],[102.168509,32.359999],[102.168642,32.359892],[102.168736,32.359758],[102.168799,32.359669],[102.168822,32.359649],[102.168864,32.359632],[102.168892,32.359632],[102.168936,32.359644],[102.168987,32.359679],[102.168999,32.359727],[102.16904,32.359892],[102.169061,32.359925],[102.169095,32.359944],[102.169189,32.359971],[102.169243,32.359977],[102.169269,32.359971],[102.169307,32.359889],[102.169367,32.359825],[102.169426,32.359793],[102.169503,32.359791],[102.169536,32.359783],[102.169587,32.359745],[102.169621,32.359695],[102.169622,32.359654],[102.169549,32.359438],[102.169538,32.359405],[102.169516,32.359272],[102.169517,32.359237],[102.169537,32.359174],[102.169568,32.359126],[102.169593,32.359109],[102.169642,32.359099],[102.169753,32.35911],[102.169807,32.359126],[102.169831,32.359143],[102.169857,32.359184],[102.169867,32.359225],[102.169851,32.359377],[102.169857,32.359439],[102.169873,32.359472],[102.169894,32.359489],[102.169942,32.359512],[102.169963,32.35951],[102.170001,32.359484],[102.170051,32.359416],[102.170156,32.359349],[102.170223,32.359327],[102.170374,32.359304],[102.170404,32.359294],[102.170457,32.359262],[102.170478,32.359236],[102.170481,32.359192],[102.170472,32.359122],[102.170438,32.359024],[102.170367,32.358887],[102.170252,32.358731],[102.17023,32.358661],[102.170225,32.358642],[102.170224,32.358563],[102.170244,32.358498],[102.170265,32.358475],[102.170355,32.358375],[102.170366,32.358344],[102.170345,32.358277],[102.170256,32.358148],[102.170244,32.358132],[102.170225,32.358092],[102.170216,32.357994],[102.170221,32.35798],[102.17024,32.35793],[102.170426,32.357646],[102.170476,32.357598],[102.170529,32.357569],[102.170606,32.35755],[102.170676,32.357546],[102.170732,32.357562],[102.170817,32.357611],[102.170892,32.357643],[102.170912,32.357645],[102.170934,32.357632],[102.170972,32.357586],[102.170984,32.357553],[102.170997,32.357263],[102.171007,32.357212],[102.171047,32.357128],[102.171077,32.357091],[102.171125,32.357076],[102.171192,32.357081],[102.171309,32.357146],[102.171434,32.35719],[102.171486,32.357186],[102.171547,32.357157],[102.171565,32.357122],[102.171563,32.357065],[102.171502,32.356999],[102.171426,32.356954],[102.171401,32.356928],[102.171391,32.356879],[102.171401,32.35683],[102.17142,32.356808],[102.171479,32.35678],[102.17181,32.356693],[102.171849,32.356651],[102.171866,32.356598],[102.171863,32.356548],[102.171841,32.356496],[102.1718,32.356454],[102.171766,32.35645],[102.171642,32.356474],[102.17158,32.35647],[102.171552,32.356468],[102.17146,32.356446],[102.17143,32.356428],[102.171407,32.356401],[102.171391,32.35637],[102.171368,32.356279],[102.171364,32.356163],[102.171326,32.355972],[102.171329,32.355919],[102.171379,32.355773],[102.171372,32.355711],[102.171346,32.355649],[102.171305,32.355599],[102.171261,32.355566],[102.171176,32.355528],[102.171165,32.355509],[102.171164,32.355483],[102.171176,32.355448],[102.171199,32.355432],[102.171342,32.355415],[102.171439,32.355373],[102.171464,32.355352],[102.171473,32.355317],[102.171463,32.355266],[102.171384,32.355181],[102.171353,32.355127],[102.17135,32.355109],[102.171365,32.355086],[102.171395,32.35507],[102.171457,32.355066],[102.17149,32.355063],[102.171511,32.35505],[102.171556,32.354979],[102.171577,32.354915],[102.171573,32.354877],[102.171554,32.354859],[102.171395,32.354777],[102.171339,32.354748],[102.171297,32.354708],[102.171285,32.354639],[102.171312,32.354543],[102.171345,32.354493],[102.171355,32.354479],[102.171411,32.354429],[102.171537,32.354369],[102.171707,32.35433],[102.171785,32.354281],[102.171808,32.354257],[102.171823,32.354223],[102.171821,32.354155],[102.171773,32.354048],[102.171752,32.353948],[102.171753,32.353903],[102.171789,32.353806],[102.171789,32.353776],[102.171707,32.353686],[102.171519,32.353383],[102.1715,32.353331],[102.171509,32.353286],[102.171547,32.353236],[102.171572,32.353229],[102.171601,32.353232],[102.171727,32.353282],[102.171848,32.353345],[102.17193,32.353368],[102.172115,32.353399],[102.172148,32.353398],[102.172199,32.353378],[102.17223,32.353346],[102.172255,32.35327],[102.172272,32.35276],[102.172239,32.352665],[102.172203,32.352624],[102.171834,32.352528],[102.171722,32.352481],[102.171665,32.352448],[102.171626,32.352404],[102.171615,32.352391],[102.171592,32.352337],[102.171589,32.352302],[102.171604,32.35227],[102.171625,32.352249],[102.171706,32.352203],[102.171744,32.352198],[102.171882,32.352205],[102.17191,32.352192],[102.171934,32.352105],[102.171937,32.351919],[102.171954,32.351843],[102.171988,32.351756],[102.172034,32.351672],[102.17206,32.351623],[102.17211,32.351561],[102.172188,32.351504],[102.17226,32.351464],[102.17229,32.351448],[102.172431,32.351391],[102.17254,32.351329],[102.172582,32.351279],[102.172616,32.35121],[102.172634,32.351145],[102.172636,32.351095],[102.172618,32.351045],[102.172566,32.350973],[102.172475,32.350905],[102.172248,32.350737],[102.172169,32.350662],[102.172068,32.350508],[102.171938,32.350361],[102.171902,32.350277],[102.17189,32.350183],[102.171896,32.35013],[102.171907,32.350106],[102.171938,32.350074],[102.172128,32.349964],[102.172167,32.349904],[102.172178,32.349843],[102.172164,32.349765],[102.172113,32.349665],[102.172055,32.349517],[102.171983,32.349425],[102.171968,32.349411],[102.171929,32.349373],[102.171838,32.349308],[102.171786,32.349255],[102.171718,32.349139],[102.171672,32.349019],[102.171662,32.348993],[102.171618,32.348796],[102.17164,32.348765],[102.17171,32.348738],[102.171724,32.348696],[102.171718,32.348673],[102.17165,32.348581],[102.17164,32.348554],[102.171652,32.348522],[102.171697,32.348471],[102.171746,32.348432],[102.171756,32.348413],[102.171764,32.348254],[102.171758,32.348217],[102.17174,32.348176],[102.171713,32.348155],[102.171633,32.348157],[102.171541,32.348193],[102.171371,32.34826],[102.171262,32.348319],[102.171203,32.348334],[102.171121,32.34832],[102.171066,32.348296],[102.171014,32.348252],[102.170998,32.348207],[102.170996,32.34811],[102.171015,32.34806],[102.17103,32.348018],[102.171363,32.34756],[102.171437,32.34743],[102.171526,32.347229],[102.171562,32.347183],[102.171661,32.347055],[102.171671,32.347008],[102.171646,32.346928],[102.171613,32.346894],[102.171548,32.346866],[102.171455,32.346848],[102.171363,32.346853],[102.171288,32.34688],[102.171222,32.346903],[102.171085,32.346999],[102.170982,32.347058],[102.170881,32.347086],[102.170826,32.347085],[102.170787,32.347067],[102.170749,32.347024],[102.170727,32.346989],[102.170699,32.346909],[102.170662,32.346868],[102.170633,32.34686],[102.170465,32.346855],[102.170423,32.346844],[102.170398,32.346828],[102.170357,32.346782],[102.170302,32.346678],[102.170283,32.346606],[102.170278,32.346537],[102.170292,32.346408],[102.170297,32.346357],[102.170314,32.346288],[102.170335,32.34625],[102.170419,32.346185],[102.170425,32.346144],[102.170417,32.346112],[102.170402,32.346079],[102.170368,32.346048],[102.170262,32.345999],[102.170219,32.345971],[102.170143,32.345896],[102.170133,32.345886],[102.170101,32.345842],[102.170068,32.345763],[102.170054,32.345677],[102.169977,32.345398],[102.169974,32.345376],[102.169952,32.345233],[102.169951,32.3451],[102.169938,32.345017],[102.169903,32.344971],[102.169821,32.344921],[102.169747,32.344857],[102.169729,32.344829],[102.169724,32.344802],[102.169742,32.344742],[102.169763,32.344716],[102.169782,32.344693],[102.169965,32.344557],[102.170078,32.344489],[102.170104,32.344464],[102.170152,32.344396],[102.17025,32.344219],[102.170274,32.344147],[102.170278,32.3441],[102.170252,32.34373],[102.170254,32.343703],[102.170259,32.343651],[102.170253,32.343622],[102.170216,32.343578],[102.170178,32.343584],[102.170085,32.343598],[102.170012,32.343584],[102.169974,32.343566],[102.16993,32.343501],[102.16991,32.343487],[102.169867,32.343473],[102.169801,32.34347],[102.169767,32.343456],[102.16974,32.343422],[102.169723,32.343359],[102.169762,32.343222],[102.169716,32.343183],[102.169693,32.34315],[102.169675,32.343113],[102.169662,32.343027],[102.169633,32.343007],[102.169526,32.342982],[102.169483,32.342965],[102.169382,32.342887],[102.16933,32.3428],[102.16923,32.342777],[102.169168,32.342739],[102.169148,32.342717],[102.16913,32.342682],[102.169147,32.342589],[102.169129,32.342545],[102.16912,32.342534],[102.16909,32.342501],[102.169071,32.34248],[102.168939,32.342378],[102.168918,32.342344],[102.168913,32.342304],[102.168926,32.342287],[102.168948,32.342282],[102.169023,32.342288],[102.169045,32.342282],[102.169111,32.342241],[102.169143,32.34219],[102.169152,32.342147],[102.169148,32.341922],[102.169157,32.341827],[102.169187,32.341653],[102.169249,32.341475],[102.169253,32.34139],[102.169245,32.34133],[102.16922,32.341248],[102.169198,32.341218],[102.169086,32.341122],[102.16905,32.341032],[102.169046,32.340959],[102.169058,32.340888],[102.169085,32.340813],[102.169122,32.340771],[102.169123,32.340734],[102.169081,32.340707],[102.168968,32.340699],[102.168851,32.34066],[102.168829,32.34064],[102.16881,32.340624],[102.168806,32.340588],[102.16882,32.340556],[102.168826,32.340541],[102.168871,32.340522],[102.169106,32.340527],[102.169201,32.340517],[102.169203,32.34049],[102.169128,32.340437],[102.169105,32.3404],[102.16909,32.340348],[102.169082,32.340246],[102.169101,32.340141],[102.169179,32.340024],[102.169182,32.340009],[102.169175,32.339999],[102.169129,32.339989],[102.169091,32.339965],[102.169067,32.339937],[102.169059,32.339899],[102.169073,32.339858],[102.169152,32.339809],[102.169191,32.33975],[102.169265,32.339678],[102.169292,32.339627],[102.169296,32.339581],[102.169289,32.339556],[102.169265,32.339532],[102.169148,32.339476],[102.169033,32.339436],[102.169,32.339417],[102.168975,32.339393],[102.168939,32.339325],[102.168927,32.339263],[102.168926,32.339189],[102.168917,32.33916],[102.168877,32.339098],[102.168871,32.339067],[102.16888,32.339004],[102.168917,32.338955],[102.168924,32.338927],[102.168911,32.338904],[102.168854,32.33887],[102.168845,32.338818],[102.16885,32.338779],[102.168877,32.338701],[102.168967,32.338549],[102.168919,32.338527],[102.168826,32.338501],[102.168681,32.33847],[102.168657,32.338453],[102.168625,32.338407],[102.168628,32.33835],[102.168652,32.338305],[102.16863,32.338193],[102.168636,32.338108],[102.168662,32.338085],[102.168706,32.338073],[102.168724,32.338064],[102.16871,32.338046],[102.168695,32.338026],[102.168656,32.337908],[102.168648,32.337886],[102.168599,32.337739],[102.168537,32.33769],[102.168557,32.337613],[102.168535,32.337548],[102.168539,32.337535],[102.168541,32.337528],[102.168541,32.337492],[102.168542,32.337441],[102.168524,32.33739],[102.168534,32.337302],[102.16851,32.337278],[102.16848,32.337268],[102.168447,32.337257],[102.168446,32.33725],[102.168437,32.33722],[102.168431,32.337185],[102.168319,32.336685],[102.167762,32.3361],[102.167753,32.336091],[102.167747,32.336085],[102.167743,32.336079],[102.167643,32.335987],[102.167638,32.335982],[102.167621,32.335966],[102.167556,32.335904],[102.167511,32.335862],[102.167202,32.335569],[102.16714,32.335508],[102.167098,32.335466],[102.167094,32.335462],[102.167046,32.335415],[102.167022,32.335392],[102.166812,32.335183],[102.166782,32.335155],[102.166736,32.335109],[102.166732,32.335105],[102.166719,32.335091],[102.166714,32.335083],[102.166574,32.334914],[102.166537,32.334869],[102.166422,32.334808],[102.166336,32.334723],[102.166258,32.334664],[102.166216,32.334649],[102.166071,32.334624],[102.166032,32.334606],[102.166016,32.334589],[102.165978,32.334479],[102.165947,32.334241],[102.16591,32.334055],[102.165879,32.333994],[102.165787,32.333925],[102.165776,32.333895],[102.165778,32.333851],[102.165755,32.333809],[102.165716,32.333792],[102.165603,32.333798],[102.165537,32.333789],[102.165478,32.333762],[102.165421,32.333701],[102.165355,32.333563],[102.165327,32.333515],[102.165265,32.333494],[102.165103,32.333333],[102.164966,32.333262],[102.164921,32.333151],[102.164927,32.33305],[102.165002,32.332933],[102.164698,32.332057],[102.164263,32.331119],[102.1638,32.330034],[102.163611,32.32884],[102.163562,32.327495],[102.163733,32.326386],[102.163901,32.325966],[102.163923,32.325912],[102.164095,32.325494],[102.164139,32.32538]]]]},"properties":{"cp":[102.26744142868846,32.352994695555495],"code":"513233202","name":"江茸乡","level":"street","center":[102.26744142868846,32.352994695555495],"fullCode":"513233202000","fullName":"四川省阿坝藏族羌族自治州红原县江茸乡","acreageMu":770863.29,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.412,32.3022]}},{"id":"513233203","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[101.851556,32.335369],[101.851603,32.335224],[101.851669,32.335022],[101.851663,32.334903],[101.851614,32.334563],[101.851521,32.334334],[101.851478,32.334227],[101.851405,32.333878],[101.851332,32.333528],[101.851259,32.333178],[101.851185,32.332829],[101.851144,32.33246],[101.851457,32.332486],[101.85148,32.332488],[101.85177,32.332511],[101.852084,32.332537],[101.852316,32.332555],[101.852548,32.332573],[101.852977,32.332573],[101.852993,32.332573],[101.853317,32.332573],[101.853356,32.332573],[101.853407,32.332573],[101.85378,32.332564],[101.854063,32.332557],[101.854153,32.332555],[101.854402,32.332533],[101.854651,32.33251],[101.854901,32.332488],[101.85515,32.332465],[101.855547,32.332423],[101.855795,32.332349],[101.856043,32.332276],[101.856262,32.332211],[101.856481,32.332146],[101.856744,32.332105],[101.857042,32.332009],[101.857208,32.331896],[101.857287,32.331765],[101.857315,32.331718],[101.857565,32.331498],[101.857836,32.331284],[101.858107,32.331069],[101.858386,32.330829],[101.858666,32.330588],[101.858936,32.330341],[101.859207,32.330094],[101.859549,32.329817],[101.859891,32.329541],[101.860097,32.329273],[101.860304,32.329005],[101.86051,32.328738],[101.860703,32.328393],[101.860896,32.328048],[101.861055,32.327724],[101.861214,32.327401],[101.861372,32.327078],[101.861485,32.326798],[101.861497,32.326477],[101.861462,32.326168],[101.861446,32.32603],[101.861427,32.325859],[101.861392,32.32555],[101.861383,32.325361],[101.861373,32.325173],[101.861355,32.324797],[101.861307,32.324438],[101.861258,32.324079],[101.861208,32.323706],[101.861166,32.323448],[101.861125,32.323191],[101.861091,32.32298],[101.861069,32.322844],[101.861069,32.322552],[101.861069,32.32226],[101.861069,32.322238],[101.861065,32.321903],[101.861061,32.321546],[101.861057,32.321189],[101.861035,32.321012],[101.861021,32.320906],[101.860986,32.320624],[101.860983,32.320614],[101.860902,32.320314],[101.860819,32.320088],[101.860575,32.319714],[101.860361,32.319345],[101.860266,32.319035],[101.860135,32.318637],[101.86007,32.318304],[101.860082,32.318054],[101.860195,32.31763],[101.86023,32.317501],[101.860244,32.317407],[101.86029,32.317102],[101.860284,32.316828],[101.860224,32.316537],[101.860135,32.316287],[101.860129,32.31628],[101.859915,32.316049],[101.859713,32.315859],[101.85951,32.315668],[101.859225,32.315484],[101.858939,32.3153],[101.858701,32.314993],[101.858463,32.314687],[101.858324,32.314452],[101.858184,32.314217],[101.857964,32.313842],[101.857809,32.313711],[101.857601,32.313574],[101.857339,32.313271],[101.857317,32.313226],[101.857119,32.312825],[101.856979,32.312498],[101.856839,32.312171],[101.856756,32.311974],[101.856494,32.311742],[101.856218,32.311484],[101.855941,32.311225],[101.855674,32.310993],[101.855561,32.310796],[101.855495,32.310517],[101.85542,32.31019],[101.855345,32.309862],[101.855233,32.309503],[101.855175,32.309208],[101.855117,32.308913],[101.855112,32.30887],[101.855072,32.308494],[101.855026,32.308075],[101.854981,32.307656],[101.854975,32.307599],[101.855007,32.30722],[101.855059,32.306797],[101.855111,32.306373],[101.855144,32.306097],[101.855186,32.305734],[101.855187,32.305722],[101.855227,32.305371],[101.855227,32.30508],[101.855323,32.304788],[101.855388,32.304503],[101.855394,32.304162],[101.8554,32.303821],[101.855406,32.30348],[101.855477,32.303182],[101.855566,32.303033],[101.855627,32.303011],[101.8559,32.302909],[101.85617,32.302888],[101.856441,32.302867],[101.856784,32.302861],[101.857127,32.302855],[101.85747,32.302849],[101.857823,32.302903],[101.858176,32.302956],[101.858529,32.30301],[101.858904,32.303041],[101.859278,32.303072],[101.859653,32.303103],[101.860028,32.303135],[101.860299,32.303152],[101.860569,32.30317],[101.860831,32.30317],[101.861128,32.303111],[101.861541,32.303012],[101.861953,32.302913],[101.862366,32.302813],[101.862586,32.302715],[101.862806,32.302617],[101.863171,32.302379],[101.863181,32.302373],[101.863567,32.302189],[101.863879,32.301945],[101.863936,32.3019],[101.86419,32.301701],[101.864501,32.301457],[101.864739,32.301222],[101.864977,32.300987],[101.865156,32.300821],[101.865215,32.30066],[101.865346,32.300505],[101.865501,32.30038],[101.865685,32.300226],[101.865865,32.300075],[101.86587,32.300071],[101.866045,32.299848],[101.866221,32.299625],[101.86626,32.299547],[101.866362,32.299345],[101.866464,32.299143],[101.866726,32.298863],[101.866905,32.298727],[101.866952,32.298691],[101.867211,32.29853],[101.86747,32.29837],[101.867689,32.298179],[101.867696,32.298173],[101.867868,32.297953],[101.868154,32.297858],[101.868456,32.29773],[101.868758,32.297601],[101.868868,32.297555],[101.869103,32.297498],[101.869338,32.297442],[101.869599,32.297454],[101.869879,32.297507],[101.870254,32.297644],[101.870426,32.297757],[101.870605,32.297888],[101.870878,32.298025],[101.871194,32.298221],[101.871509,32.298417],[101.871765,32.29862],[101.872014,32.298727],[101.872181,32.298858],[101.872294,32.299],[101.872341,32.299096],[101.872354,32.299123],[101.87252,32.299458],[101.872609,32.299643],[101.872764,32.299768],[101.872919,32.299845],[101.873145,32.299994],[101.873341,32.300363],[101.873466,32.300654],[101.873573,32.300785],[101.873674,32.300838],[101.874019,32.301011],[101.874227,32.301124],[101.87437,32.301279],[101.874447,32.301421],[101.874685,32.301552],[101.874914,32.301712],[101.875138,32.301868],[101.875328,32.302028],[101.875447,32.302159],[101.875548,32.30232],[101.875715,32.302534],[101.875881,32.302629],[101.876066,32.302712],[101.876244,32.302867],[101.876345,32.303004],[101.876524,32.303325],[101.876708,32.30345],[101.877047,32.303718],[101.877246,32.303881],[101.877446,32.304045],[101.877719,32.304176],[101.877957,32.304229],[101.878368,32.304271],[101.878689,32.304425],[101.878915,32.304574],[101.879073,32.304833],[101.87923,32.305092],[101.879395,32.305349],[101.879559,32.305607],[101.879724,32.305865],[101.879867,32.306064],[101.88001,32.306263],[101.880064,32.306574],[101.880119,32.306884],[101.880173,32.307194],[101.880364,32.307514],[101.880493,32.307588],[101.880593,32.307747],[101.880879,32.307927],[101.881165,32.308107],[101.881384,32.308246],[101.881604,32.308385],[101.881823,32.308525],[101.882043,32.308664],[101.882262,32.308803],[101.882482,32.308942],[101.882701,32.309081],[101.882921,32.309221],[101.883085,32.309299],[101.883225,32.309366],[101.883529,32.309512],[101.883913,32.309621],[101.884296,32.309731],[101.884638,32.309791],[101.884979,32.309851],[101.885379,32.309842],[101.885778,32.309833],[101.886178,32.309824],[101.886615,32.309735],[101.887052,32.309645],[101.887489,32.309556],[101.887845,32.309464],[101.888211,32.309441],[101.888577,32.309419],[101.889005,32.309352],[101.889374,32.309256],[101.889743,32.30916],[101.890111,32.309064],[101.89048,32.308968],[101.890861,32.30873],[101.891042,32.308663],[101.891185,32.308602],[101.891318,32.308525],[101.891508,32.308383],[101.891675,32.308283],[101.891875,32.308187],[101.892189,32.307997],[101.892431,32.307802],[101.892601,32.307547],[101.892641,32.307488],[101.892769,32.307298],[101.892898,32.307107],[101.893162,32.30681],[101.893426,32.306512],[101.893659,32.306174],[101.89384,32.305951],[101.894064,32.305639],[101.894287,32.305327],[101.894414,32.305132],[101.89454,32.304937],[101.894706,32.304782],[101.894873,32.304628],[101.895096,32.304518],[101.895254,32.30438],[101.895501,32.304119],[101.895748,32.303857],[101.895915,32.303747],[101.89604,32.303692],[101.896077,32.303676],[101.896235,32.303621],[101.89631,32.303595],[101.896472,32.303557],[101.896605,32.303481],[101.896753,32.303338],[101.896848,32.303176],[101.897019,32.302886],[101.897233,32.302624],[101.89724,32.302616],[101.897424,32.302408],[101.897607,32.302199],[101.897652,32.302148],[101.897859,32.301972],[101.898066,32.301796],[101.898223,32.301382],[101.898223,32.301342],[101.898223,32.301101],[101.898214,32.30084],[101.898128,32.300497],[101.898102,32.300327],[101.898071,32.300121],[101.898009,32.299786],[101.897947,32.29945],[101.897947,32.29916],[101.897947,32.299081],[101.897947,32.299012],[101.897999,32.298941],[101.898095,32.298912],[101.89829,32.298974],[101.898499,32.299103],[101.898786,32.299369],[101.899073,32.299636],[101.89936,32.299902],[101.899508,32.299945],[101.899751,32.299945],[101.900041,32.299938],[101.900331,32.299931],[101.900693,32.299893],[101.900883,32.299821],[101.901121,32.299688],[101.901395,32.299476],[101.901478,32.299412],[101.901759,32.299146],[101.902073,32.298931],[101.902335,32.298827],[101.902516,32.298717],[101.902739,32.298413],[101.902925,32.298256],[101.90313,32.297975],[101.903201,32.297813],[101.903268,32.297632],[101.903344,32.297551],[101.903501,32.29747],[101.903701,32.297351],[101.903858,32.29718],[101.903929,32.296956],[101.904062,32.296628],[101.904191,32.296414],[101.904338,32.296304],[101.904552,32.296205],[101.904857,32.296086],[101.905069,32.296005],[101.905281,32.295924],[101.905499,32.295819],[101.90578,32.295629],[101.905946,32.295543],[101.906185,32.295419],[101.90648,32.295317],[101.906775,32.295215],[101.907025,32.295106],[101.907072,32.295077],[101.90728,32.294946],[101.907487,32.294816],[101.907866,32.294579],[101.907979,32.294496],[101.908279,32.29423],[101.908483,32.294058],[101.908626,32.293806],[101.908645,32.29354],[101.908702,32.29334],[101.908821,32.29313],[101.908959,32.293045],[101.909283,32.29294],[101.909468,32.292835],[101.909568,32.292716],[101.909615,32.292525],[101.909615,32.292524],[101.909616,32.292521],[101.909616,32.29235],[101.909616,32.29215],[101.909616,32.292095],[101.909616,32.291998],[101.909702,32.291731],[101.909713,32.291496],[101.909725,32.29126],[101.909678,32.290998],[101.909652,32.29095],[101.909526,32.290708],[101.909506,32.290537],[101.909521,32.290475],[101.90964,32.290399],[101.909863,32.290313],[101.910049,32.290137],[101.910135,32.289866],[101.910163,32.289609],[101.910358,32.289385],[101.910525,32.289295],[101.910756,32.289271],[101.910987,32.289247],[101.911282,32.289289],[101.911577,32.289332],[101.911824,32.289457],[101.912071,32.289581],[101.912393,32.28967],[101.912716,32.289759],[101.913039,32.289848],[101.913326,32.289939],[101.913613,32.29003],[101.913983,32.290168],[101.914353,32.290307],[101.914723,32.290446],[101.915094,32.290585],[101.915464,32.290724],[101.915772,32.290794],[101.91603,32.290852],[101.916287,32.290911],[101.916542,32.29095],[101.916796,32.29099],[101.917051,32.291029],[101.917305,32.291068],[101.917559,32.291108],[101.917697,32.291129],[101.917814,32.291147],[101.918068,32.291186],[101.918323,32.291225],[101.918577,32.291265],[101.918832,32.291304],[101.919086,32.291343],[101.91934,32.291383],[101.919611,32.291419],[101.919883,32.291455],[101.920154,32.291491],[101.920425,32.291527],[101.920696,32.291563],[101.920967,32.2916],[101.921238,32.291636],[101.921509,32.291672],[101.921902,32.291709],[101.922296,32.291747],[101.922689,32.291784],[101.922953,32.291809],[101.923232,32.291802],[101.923511,32.291796],[101.923583,32.291784],[101.923989,32.291717],[101.924225,32.291575],[101.92446,32.291434],[101.924653,32.291226],[101.924685,32.291191],[101.924846,32.291017],[101.925006,32.290796],[101.925166,32.290574],[101.925326,32.290352],[101.925486,32.29013],[101.925578,32.290002],[101.925578,32.290002],[101.925646,32.289909],[101.925806,32.289687],[101.925966,32.289465],[101.926126,32.289243],[101.926267,32.289028],[101.926407,32.288812],[101.926547,32.288596],[101.926688,32.28838],[101.926828,32.288164],[101.926968,32.287948],[101.927253,32.287662],[101.927278,32.287636],[101.927555,32.287526],[101.927993,32.287518],[101.928276,32.287613],[101.928559,32.287708],[101.928751,32.287829],[101.928942,32.28795],[101.929072,32.288032],[101.929294,32.288119],[101.929672,32.288362],[101.930051,32.288605],[101.930261,32.288744],[101.930471,32.288884],[101.930531,32.288923],[101.93076,32.289047],[101.930988,32.289171],[101.931301,32.289368],[101.931342,32.289391],[101.931559,32.289508],[101.931775,32.289626],[101.931991,32.289744],[101.932208,32.289862],[101.932383,32.289958],[101.932744,32.290094],[101.933011,32.290204],[101.933244,32.290354],[101.933477,32.290505],[101.933689,32.290642],[101.933901,32.290779],[101.933912,32.290784],[101.934043,32.290832],[101.934172,32.29086],[101.934539,32.290932],[101.934906,32.291003],[101.935328,32.29115],[101.935696,32.291249],[101.936063,32.291349],[101.93643,32.291448],[101.936868,32.291459],[101.937305,32.29147],[101.937662,32.291385],[101.938018,32.291301],[101.938352,32.291141],[101.938686,32.290981],[101.93902,32.290821],[101.939354,32.290661],[101.939634,32.290515],[101.939914,32.290369],[101.940194,32.290223],[101.940407,32.290136],[101.940621,32.290048],[101.940834,32.28996],[101.941048,32.289872],[101.941343,32.28974],[101.941638,32.289607],[101.941934,32.289475],[101.94222,32.289304],[101.942554,32.289028],[101.942601,32.288977],[101.942667,32.288905],[101.942734,32.288803],[101.942837,32.288509],[101.942939,32.288215],[101.943,32.287839],[101.94306,32.287463],[101.943064,32.28738],[101.943068,32.287292],[101.943065,32.287271],[101.94305,32.287174],[101.94293,32.286813],[101.94281,32.286453],[101.94269,32.286092],[101.942601,32.285873],[101.942512,32.285653],[101.942511,32.285653],[101.942511,32.285652],[101.94244,32.28543],[101.942369,32.285208],[101.942317,32.284853],[101.942265,32.284498],[101.942264,32.284395],[101.942338,32.284224],[101.942457,32.284221],[101.942699,32.284283],[101.94293,32.284425],[101.943161,32.284567],[101.943444,32.28474],[101.943623,32.28485],[101.943855,32.284992],[101.944086,32.285133],[101.944196,32.285195],[101.944318,32.285259],[101.944726,32.285419],[101.945133,32.285579],[101.945442,32.285658],[101.945751,32.285737],[101.946084,32.285751],[101.946417,32.285765],[101.946802,32.285717],[101.947169,32.285628],[101.947552,32.285516],[101.947935,32.285404],[101.948259,32.285283],[101.948583,32.285162],[101.948843,32.285125],[101.949103,32.285089],[101.949365,32.285097],[101.949779,32.285148],[101.950198,32.285222],[101.950616,32.285297],[101.950951,32.285343],[101.951287,32.285389],[101.951622,32.285435],[101.951731,32.285456],[101.95204,32.285515],[101.952458,32.285596],[101.952875,32.285676],[101.95314,32.285742],[101.953405,32.285809],[101.95363,32.285897],[101.953647,32.285903],[101.953981,32.286034],[101.954343,32.286224],[101.954656,32.286423],[101.954969,32.286622],[101.955281,32.286821],[101.955594,32.287019],[101.955949,32.287263],[101.956038,32.287324],[101.956155,32.287396],[101.956337,32.287529],[101.956434,32.287596],[101.956624,32.287726],[101.956911,32.287924],[101.957166,32.288112],[101.957261,32.288182],[101.957421,32.288301],[101.957757,32.288595],[101.957906,32.288791],[101.957948,32.288868],[101.957961,32.28888],[101.958028,32.289011],[101.958166,32.289258],[101.958304,32.289505],[101.95837,32.289725],[101.9585,32.290082],[101.95853,32.290249],[101.958542,32.290392],[101.958546,32.290705],[101.95855,32.291018],[101.958554,32.291332],[101.95856,32.291362],[101.958637,32.291736],[101.958679,32.291885],[101.958774,32.292081],[101.958967,32.292435],[101.959161,32.292789],[101.959277,32.292988],[101.959298,32.293025],[101.959393,32.293187],[101.959404,32.293209],[101.959464,32.293318],[101.95947,32.29333],[101.959565,32.293521],[101.959649,32.293657],[101.959756,32.293782],[101.960029,32.294023],[101.960303,32.294264],[101.960596,32.294514],[101.960889,32.294765],[101.961084,32.294931],[101.961278,32.295097],[101.961433,32.295234],[101.961546,32.295412],[101.961623,32.29568],[101.961629,32.295936],[101.961552,32.296147],[101.961475,32.296358],[101.961449,32.296404],[101.961353,32.296575],[101.961231,32.296792],[101.960954,32.297123],[101.960678,32.297453],[101.960537,32.297593],[101.960277,32.297853],[101.960017,32.298113],[101.959875,32.298339],[101.959732,32.298565],[101.959633,32.298732],[101.959601,32.298785],[101.959619,32.299029],[101.959666,32.29919],[101.959738,32.299484],[101.959809,32.299779],[101.959884,32.300001],[101.959958,32.300223],[101.960032,32.300444],[101.960107,32.300665],[101.960261,32.301064],[101.960362,32.30129],[101.960562,32.301608],[101.960761,32.301926],[101.961026,32.302285],[101.961291,32.302644],[101.961527,32.302947],[101.96153,32.302952],[101.96153,32.302952],[101.96153,32.302952],[101.961566,32.303006],[101.961713,32.303232],[101.96186,32.303458],[101.962008,32.303683],[101.962155,32.303909],[101.962275,32.304117],[101.962395,32.304325],[101.962516,32.304533],[101.962636,32.304741],[101.962757,32.304949],[101.962877,32.305157],[101.962997,32.305365],[101.963063,32.305478],[101.963066,32.305484],[101.963118,32.305573],[101.963238,32.305781],[101.963358,32.30599],[101.963479,32.306198],[101.963564,32.306345],[101.963599,32.306406],[101.963706,32.306629],[101.963813,32.306853],[101.96392,32.307077],[101.964028,32.307301],[101.964063,32.307375],[101.964135,32.307525],[101.964205,32.307671],[101.964242,32.307749],[101.964324,32.308013],[101.964406,32.308276],[101.964488,32.30854],[101.96457,32.308804],[101.964652,32.309068],[101.964734,32.309332],[101.964838,32.309588],[101.964943,32.309843],[101.965047,32.310098],[101.965151,32.310354],[101.965255,32.310609],[101.96536,32.310865],[101.965464,32.31112],[101.965492,32.311188],[101.965568,32.311376],[101.965673,32.311631],[101.965777,32.311886],[101.965938,32.312275],[101.966099,32.312663],[101.966259,32.313049],[101.966259,32.31305],[101.966259,32.31305],[101.96626,32.313052],[101.966386,32.313252],[101.966512,32.313453],[101.966638,32.313653],[101.966764,32.313853],[101.966839,32.31393],[101.967068,32.314163],[101.967372,32.314472],[101.967676,32.314782],[101.967853,32.31494],[101.96803,32.315099],[101.968207,32.315258],[101.968384,32.315416],[101.968561,32.315575],[101.968738,32.315734],[101.968915,32.315892],[101.969092,32.316051],[101.969269,32.31621],[101.969446,32.316368],[101.969669,32.31653],[101.969891,32.316692],[101.970114,32.316854],[101.970336,32.317016],[101.970558,32.317178],[101.970781,32.31734],[101.971003,32.317502],[101.971226,32.317664],[101.971448,32.317826],[101.971671,32.317988],[101.971893,32.31815],[101.971945,32.318188],[101.972116,32.318312],[101.972338,32.318474],[101.97256,32.318636],[101.972754,32.318779],[101.972903,32.318891],[101.972904,32.318891],[101.972947,32.318923],[101.97314,32.319066],[101.973333,32.319209],[101.973527,32.319353],[101.973716,32.319493],[101.973718,32.319494],[101.97372,32.319496],[101.973913,32.319639],[101.974106,32.319782],[101.9743,32.319926],[101.974493,32.320069],[101.974686,32.320212],[101.974879,32.320356],[101.975073,32.320499],[101.975266,32.320642],[101.975431,32.320798],[101.975596,32.320953],[101.975761,32.321109],[101.975926,32.321264],[101.976091,32.32142],[101.976256,32.321575],[101.976421,32.321731],[101.976587,32.321886],[101.976752,32.322042],[101.976917,32.322197],[101.977109,32.322383],[101.977302,32.322569],[101.977495,32.322755],[101.977687,32.322941],[101.97788,32.323127],[101.978073,32.323313],[101.978265,32.323499],[101.978458,32.323685],[101.978651,32.323871],[101.978843,32.324057],[101.979036,32.324243],[101.979228,32.324429],[101.979421,32.324615],[101.979614,32.324801],[101.979771,32.324991],[101.979929,32.325181],[101.980087,32.325372],[101.980244,32.325562],[101.980402,32.325752],[101.980559,32.325942],[101.980717,32.326132],[101.980875,32.326322],[101.981032,32.326513],[101.98119,32.326703],[101.981347,32.326893],[101.981505,32.327083],[101.981663,32.327273],[101.98182,32.327463],[101.981986,32.327636],[101.982152,32.327809],[101.982317,32.327981],[101.982483,32.328154],[101.982649,32.328326],[101.982815,32.328499],[101.98298,32.328671],[101.983146,32.328844],[101.983312,32.329016],[101.983478,32.329189],[101.983831,32.329424],[101.984185,32.32966],[101.984344,32.329767],[101.984379,32.329791],[101.984573,32.329922],[101.984767,32.330053],[101.984857,32.330114],[101.984865,32.330119],[101.984921,32.330157],[101.984961,32.330185],[101.985037,32.330269],[101.985169,32.330416],[101.985215,32.330586],[101.985149,32.330738],[101.985065,32.330929],[101.984714,32.331191],[101.984563,32.331304],[101.98455,32.331314],[101.984363,32.331453],[101.984358,32.331456],[101.984329,32.331468],[101.984234,32.331507],[101.984179,32.33153],[101.984146,32.331543],[101.98393,32.331634],[101.98369,32.331656],[101.983451,32.331679],[101.983129,32.331653],[101.982808,32.331627],[101.982586,32.331655],[101.982559,32.331658],[101.982472,32.331669],[101.982311,32.331689],[101.982062,32.33172],[101.981813,32.331751],[101.981595,32.331824],[101.981378,32.331897],[101.98116,32.331971],[101.980943,32.332044],[101.980726,32.332139],[101.980509,32.332235],[101.980292,32.332331],[101.980075,32.332426],[101.979859,32.332522],[101.97983,32.332535],[101.979642,32.332618],[101.979289,32.33283],[101.978936,32.333042],[101.978583,32.333254],[101.978343,32.333353],[101.978249,32.333392],[101.978141,32.333436],[101.978102,32.333452],[101.9781,32.333452],[101.978099,32.333453],[101.978013,32.333488],[101.977738,32.333704],[101.977463,32.333921],[101.977269,32.334108],[101.977075,32.334295],[101.976864,32.334431],[101.976653,32.334566],[101.976389,32.334653],[101.976262,32.334695],[101.976228,32.334706],[101.975835,32.334911],[101.975536,32.335067],[101.975508,32.335082],[101.975442,32.335116],[101.975432,32.335121],[101.975238,32.335212],[101.975034,32.335308],[101.97483,32.335404],[101.974625,32.335499],[101.974351,32.335571],[101.974076,32.335643],[101.973848,32.335714],[101.973621,32.335784],[101.973486,32.335846],[101.973438,32.335868],[101.973062,32.336085],[101.972686,32.336302],[101.972293,32.336511],[101.9719,32.33672],[101.971506,32.336929],[101.971144,32.33712],[101.970782,32.337311],[101.970705,32.337351],[101.970554,32.337431],[101.97042,32.337502],[101.970009,32.337642],[101.969598,32.337782],[101.969481,32.33782],[101.969302,32.337876],[101.969275,32.337885],[101.969005,32.33797],[101.96873,32.338015],[101.968654,32.338028],[101.968489,32.338055],[101.968455,32.338061],[101.968226,32.338099],[101.967997,32.338137],[101.967767,32.338175],[101.967726,32.338182],[101.967685,32.338189],[101.967582,32.338206],[101.967538,32.338213],[101.967364,32.338251],[101.967277,32.33827],[101.967271,32.338271],[101.967164,32.338295],[101.967004,32.33833],[101.966807,32.338373],[101.966737,32.338388],[101.966624,32.338412],[101.96647,32.338446],[101.966076,32.338625],[101.965683,32.338804],[101.965426,32.338954],[101.965364,32.33899],[101.965267,32.339047],[101.965254,32.339054],[101.96517,32.339103],[101.965007,32.339296],[101.964844,32.339489],[101.964811,32.339528],[101.964811,32.339529],[101.964738,32.339615],[101.964738,32.339615],[101.964682,32.339681],[101.964519,32.339874],[101.96435,32.340043],[101.964182,32.340212],[101.964013,32.340381],[101.963844,32.34055],[101.963675,32.340719],[101.963507,32.340888],[101.963333,32.341135],[101.963306,32.341173],[101.963306,32.341173],[101.963306,32.341173],[101.963301,32.34118],[101.963275,32.341217],[101.963267,32.341229],[101.96325,32.341252],[101.963236,32.341272],[101.963187,32.341342],[101.963181,32.341351],[101.963096,32.341471],[101.962988,32.341669],[101.962879,32.341868],[101.96277,32.342066],[101.962675,32.342239],[101.962662,32.342264],[101.962425,32.342569],[101.962378,32.34263],[101.962378,32.34263],[101.962378,32.34263],[101.962314,32.342713],[101.962189,32.342875],[101.961938,32.343212],[101.961688,32.343549],[101.961542,32.343801],[101.961397,32.344052],[101.961304,32.344269],[101.961211,32.344486],[101.961118,32.344703],[101.961026,32.34492],[101.960972,32.345151],[101.960918,32.345382],[101.960864,32.345613],[101.96081,32.345843],[101.960756,32.346074],[101.960702,32.346305],[101.960648,32.346536],[101.960594,32.346766],[101.96054,32.346997],[101.960486,32.347228],[101.960436,32.347464],[101.960386,32.347699],[101.960336,32.347935],[101.96032,32.348009],[101.960286,32.348171],[101.960236,32.348406],[101.960186,32.348642],[101.960136,32.348878],[101.960124,32.348935],[101.960086,32.349113],[101.960004,32.349434],[101.959977,32.349542],[101.959868,32.34997],[101.959851,32.350037],[101.959759,32.350398],[101.959733,32.35045],[101.959564,32.350792],[101.959506,32.35091],[101.959369,32.351186],[101.959174,32.35158],[101.95898,32.351974],[101.958856,32.35219],[101.958732,32.352406],[101.958609,32.352622],[101.958485,32.352838],[101.958362,32.353054],[101.958238,32.35327],[101.958182,32.353367],[101.958114,32.353485],[101.957991,32.353701],[101.957867,32.353917],[101.957744,32.354133],[101.95762,32.354349],[101.957496,32.354565],[101.957404,32.354684],[101.957339,32.354769],[101.957231,32.35491],[101.956966,32.355254],[101.956856,32.355396],[101.956831,32.355428],[101.95683,32.355429],[101.956772,32.355504],[101.956759,32.355521],[101.956748,32.355618],[101.956723,32.355848],[101.956688,32.356174],[101.956701,32.356565],[101.956703,32.356577],[101.956741,32.356775],[101.956766,32.356905],[101.956775,32.356954],[101.956905,32.357146],[101.956989,32.357272],[101.957024,32.357323],[101.957034,32.357338],[101.957091,32.357375],[101.957127,32.357397],[101.957135,32.357402],[101.957199,32.357443],[101.9572,32.357443],[101.957203,32.357445],[101.957253,32.357477],[101.957473,32.357615],[101.957583,32.357643],[101.957606,32.357649],[101.957652,32.357661],[101.957708,32.357675],[101.957744,32.357684],[101.957752,32.357686],[101.957796,32.357694],[101.958123,32.357757],[101.958431,32.357763],[101.958511,32.357764],[101.958604,32.357766],[101.958606,32.357766],[101.958609,32.357766],[101.958739,32.357768],[101.959093,32.357786],[101.959447,32.357804],[101.959877,32.357794],[101.960307,32.357784],[101.960631,32.357828],[101.960955,32.357873],[101.961187,32.357919],[101.96142,32.357966],[101.961652,32.358012],[101.961884,32.358059],[101.962276,32.358145],[101.962668,32.358232],[101.96306,32.358319],[101.963066,32.358321],[101.963286,32.358411],[101.963512,32.358503],[101.963738,32.358596],[101.963752,32.358601],[101.963964,32.358688],[101.964168,32.358813],[101.964295,32.358892],[101.964372,32.358939],[101.964576,32.359065],[101.96478,32.35919],[101.964841,32.359228],[101.964983,32.359316],[101.965187,32.359441],[101.965384,32.359582],[101.965581,32.359723],[101.965777,32.359863],[101.965974,32.360004],[101.966086,32.360084],[101.966171,32.360145],[101.966367,32.360286],[101.966577,32.36042],[101.966786,32.360554],[101.966995,32.360687],[101.967205,32.360821],[101.967414,32.360955],[101.967623,32.361089],[101.967919,32.361226],[101.968216,32.361363],[101.968434,32.361436],[101.968651,32.361509],[101.969052,32.361552],[101.969221,32.361548],[101.96939,32.361544],[101.969696,32.36151],[101.970123,32.361396],[101.970383,32.361351],[101.970642,32.361306],[101.970919,32.361298],[101.971165,32.361294],[101.971339,32.36129],[101.971411,32.361289],[101.971719,32.36132],[101.972027,32.361352],[101.972367,32.361396],[101.972739,32.361491],[101.972973,32.361603],[101.973207,32.361715],[101.973613,32.361887],[101.97366,32.361908],[101.973799,32.361967],[101.974019,32.36206],[101.974265,32.362107],[101.974512,32.362153],[101.974835,32.362146],[101.975159,32.362138],[101.975541,32.36209],[101.975924,32.362042],[101.976332,32.361988],[101.97674,32.361935],[101.977148,32.361881],[101.977525,32.36182],[101.977902,32.361759],[101.978279,32.361699],[101.978523,32.361628],[101.978766,32.361557],[101.97901,32.361486],[101.979192,32.361433],[101.979192,32.361433],[101.979253,32.361416],[101.979497,32.361345],[101.97974,32.361274],[101.979985,32.361209],[101.980044,32.361194],[101.980229,32.361145],[101.980473,32.36108],[101.980717,32.361015],[101.98074,32.36101],[101.980938,32.360965],[101.981159,32.360914],[101.98138,32.360863],[101.981601,32.360813],[101.981968,32.360642],[101.982334,32.360472],[101.982602,32.360192],[101.98287,32.359912],[101.983017,32.359751],[101.983044,32.359594],[101.982963,32.359335],[101.98294,32.359259],[101.982779,32.359015],[101.982617,32.358771],[101.982583,32.358689],[101.982516,32.358526],[101.982503,32.358493],[101.982463,32.358396],[101.982415,32.358281],[101.982402,32.357838],[101.982437,32.357498],[101.982472,32.357159],[101.982555,32.356883],[101.982638,32.356607],[101.982937,32.356365],[101.983165,32.356281],[101.983392,32.356198],[101.983804,32.35611],[101.983976,32.356073],[101.984217,32.356022],[101.984521,32.35595],[101.984826,32.355878],[101.985079,32.355845],[101.985221,32.355827],[101.985332,32.355813],[101.985584,32.355781],[101.985837,32.355749],[101.986221,32.355643],[101.986605,32.355538],[101.986877,32.3554],[101.986893,32.355392],[101.987036,32.35532],[101.987149,32.355263],[101.987268,32.355221],[101.987468,32.355151],[101.987786,32.355039],[101.988185,32.354979],[101.98863,32.354968],[101.989075,32.354957],[101.989393,32.354964],[101.98971,32.35497],[101.98994,32.354964],[101.99017,32.354959],[101.9904,32.354953],[101.990619,32.354948],[101.99063,32.354947],[101.990875,32.354909],[101.99112,32.354871],[101.991365,32.354833],[101.99161,32.354794],[101.991762,32.354751],[101.992036,32.354673],[101.992463,32.354552],[101.992889,32.354431],[101.993315,32.35431],[101.993533,32.354231],[101.99375,32.354152],[101.993968,32.354073],[101.994186,32.353994],[101.994403,32.353916],[101.994621,32.353837],[101.994838,32.353703],[101.995056,32.353569],[101.995273,32.353436],[101.99549,32.353302],[101.995708,32.353168],[101.995925,32.353035],[101.996142,32.352901],[101.99636,32.352767],[101.996577,32.352634],[101.996794,32.3525],[101.997012,32.352367],[101.997229,32.352233],[101.997446,32.352099],[101.997664,32.351966],[101.997878,32.351832],[101.998092,32.351699],[101.998306,32.351566],[101.99852,32.351433],[101.998734,32.3513],[101.998949,32.351167],[101.999163,32.351033],[101.999254,32.350977],[101.999255,32.350976],[101.999377,32.3509],[101.999591,32.350767],[101.999805,32.350634],[102.000019,32.350501],[102.000233,32.350368],[102.000238,32.350363],[102.000548,32.350136],[102.000749,32.349989],[102.000749,32.349989],[102.000858,32.349909],[102.001168,32.349683],[102.001268,32.349609],[102.001444,32.349481],[102.00172,32.349279],[102.001932,32.349149],[102.002143,32.349019],[102.002355,32.348889],[102.002566,32.348759],[102.002777,32.348629],[102.002871,32.348571],[102.002989,32.348499],[102.0032,32.348369],[102.003412,32.34824],[102.00377,32.348063],[102.004129,32.347887],[102.004488,32.347711],[102.004741,32.347612],[102.004991,32.347552],[102.005242,32.347492],[102.005476,32.347471],[102.00571,32.34745],[102.005943,32.347469],[102.006176,32.347487],[102.006439,32.347533],[102.006702,32.347578],[102.006946,32.347703],[102.007191,32.347828],[102.007468,32.348171],[102.007745,32.348514],[102.008022,32.348858],[102.008299,32.349201],[102.008456,32.349396],[102.008613,32.349591],[102.00877,32.349786],[102.008927,32.349982],[102.009047,32.350117],[102.009263,32.350175],[102.009606,32.350155],[102.009935,32.350071],[102.010265,32.349987],[102.010531,32.349927],[102.010798,32.349868],[102.011065,32.349808],[102.011331,32.349749],[102.011642,32.349703],[102.011952,32.349657],[102.012335,32.349665],[102.012719,32.349674],[102.013102,32.349683],[102.013536,32.349737],[102.013695,32.349757],[102.013971,32.349791],[102.01426,32.349828],[102.014405,32.349846],[102.014669,32.349852],[102.014933,32.349857],[102.015291,32.349853],[102.01565,32.349848],[102.01593,32.349829],[102.01621,32.349809],[102.016505,32.349817],[102.016801,32.349824],[102.017225,32.349878],[102.017648,32.349931],[102.018072,32.349985],[102.018287,32.350065],[102.018503,32.350145],[102.018718,32.350225],[102.018934,32.350305],[102.01909,32.350363],[102.019111,32.35037],[102.019149,32.350385],[102.019365,32.350465],[102.019465,32.350531],[102.019654,32.350656],[102.019682,32.350674],[102.019944,32.350848],[102.020184,32.351118],[102.020424,32.351389],[102.020728,32.351633],[102.021031,32.351877],[102.021161,32.351955],[102.021305,32.352042],[102.021312,32.352044],[102.021676,32.352156],[102.021939,32.352189],[102.022203,32.352222],[102.022591,32.352231],[102.022868,32.352237],[102.022979,32.35224],[102.023213,32.352232],[102.023446,32.352224],[102.023628,32.352218],[102.02368,32.352216],[102.023913,32.352209],[102.024143,32.352188],[102.024372,32.352167],[102.024601,32.352146],[102.02483,32.352124],[102.02506,32.352103],[102.025289,32.352082],[102.025505,32.35203],[102.025687,32.351986],[102.026085,32.35189],[102.026483,32.351793],[102.026734,32.351714],[102.026876,32.351669],[102.026985,32.351634],[102.027237,32.351555],[102.027488,32.351475],[102.027701,32.351394],[102.027913,32.351313],[102.028126,32.351233],[102.028339,32.351152],[102.028569,32.351012],[102.02863,32.350975],[102.028686,32.350941],[102.0288,32.350872],[102.028994,32.350754],[102.02903,32.350732],[102.029044,32.350724],[102.029066,32.350711],[102.029261,32.350593],[102.029508,32.350317],[102.029756,32.350041],[102.030004,32.349765],[102.030034,32.349732],[102.030147,32.349604],[102.030156,32.349593],[102.030308,32.349422],[102.03046,32.34925],[102.030612,32.349078],[102.030764,32.348906],[102.030916,32.348734],[102.031068,32.348562],[102.03122,32.34839],[102.03136,32.348159],[102.031499,32.347928],[102.031639,32.347697],[102.031779,32.347466],[102.031919,32.347235],[102.032058,32.347004],[102.032198,32.346773],[102.032338,32.346542],[102.032424,32.346289],[102.03251,32.346036],[102.032596,32.345782],[102.032682,32.345529],[102.032769,32.345276],[102.032855,32.345023],[102.032904,32.344773],[102.032954,32.344524],[102.033004,32.344274],[102.033053,32.344024],[102.033103,32.343775],[102.033153,32.343525],[102.033244,32.343274],[102.033335,32.343022],[102.033426,32.342771],[102.033518,32.342519],[102.033609,32.342268],[102.0337,32.342016],[102.033799,32.341765],[102.033897,32.341514],[102.033996,32.341263],[102.034094,32.341012],[102.034193,32.340761],[102.034291,32.34051],[102.03439,32.340259],[102.034488,32.340008],[102.034586,32.339757],[102.034685,32.339505],[102.034811,32.339201],[102.034837,32.339139],[102.034988,32.338773],[102.035015,32.338721],[102.035176,32.338343],[102.03521,32.338295],[102.035324,32.338135],[102.03555,32.337968],[102.035788,32.337855],[102.036127,32.33773],[102.03649,32.337683],[102.036874,32.337704],[102.037258,32.337724],[102.037507,32.337724],[102.037698,32.337707],[102.037858,32.337665],[102.03809,32.337576],[102.038263,32.337617],[102.038376,32.337796],[102.038488,32.338104],[102.03855,32.338276],[102.0386,32.338412],[102.038614,32.33845],[102.038804,32.338849],[102.038923,32.339003],[102.039072,32.339075],[102.039209,32.33914],[102.039298,32.339176],[102.039578,32.339378],[102.03975,32.339456],[102.03981,32.339539],[102.039863,32.33967],[102.039929,32.339824],[102.04,32.339925],[102.040101,32.340009],[102.040375,32.340086],[102.040667,32.340349],[102.040743,32.340401],[102.040989,32.34057],[102.041167,32.340699],[102.041296,32.340849],[102.041353,32.341034],[102.041375,32.341164],[102.041445,32.341577],[102.041545,32.341777],[102.04171,32.34208],[102.041874,32.342383],[102.042006,32.342608],[102.042138,32.342833],[102.042359,32.343104],[102.042502,32.343269],[102.042745,32.343454],[102.042811,32.343479],[102.043016,32.343554],[102.043287,32.34369],[102.043551,32.343768],[102.043815,32.343847],[102.044072,32.343932],[102.044294,32.343961],[102.044615,32.343961],[102.044865,32.343915],[102.045115,32.343868],[102.045339,32.343886],[102.045564,32.343904],[102.0457,32.343975],[102.045828,32.344118],[102.045936,32.344268],[102.046071,32.344575],[102.046159,32.344762],[102.04625,32.344953],[102.046335,32.345216],[102.046335,32.345217],[102.046335,32.345217],[102.046428,32.345374],[102.046678,32.345589],[102.046792,32.345617],[102.047096,32.345716],[102.047239,32.345852],[102.047425,32.346028],[102.047611,32.346204],[102.047797,32.34638],[102.047983,32.346556],[102.048166,32.346692],[102.048348,32.346829],[102.04853,32.346965],[102.048712,32.347101],[102.048895,32.347238],[102.049077,32.347374],[102.049305,32.347531],[102.049534,32.347688],[102.049762,32.347846],[102.049991,32.348003],[102.050219,32.34816],[102.050448,32.348317],[102.050676,32.348474],[102.050905,32.348631],[102.051232,32.348891],[102.051559,32.349151],[102.051887,32.34941],[102.052133,32.349508],[102.052379,32.349606],[102.052749,32.349693],[102.053014,32.349686],[102.053279,32.349679],[102.053513,32.349658],[102.053747,32.349637],[102.053981,32.349617],[102.054216,32.349596],[102.054636,32.349579],[102.055057,32.349562],[102.055384,32.34957],[102.05571,32.349578],[102.05602,32.349612],[102.056331,32.349645],[102.056717,32.34972],[102.057103,32.349796],[102.057536,32.349911],[102.057968,32.350026],[102.058338,32.350128],[102.058631,32.350208],[102.058709,32.35023],[102.058987,32.350275],[102.059266,32.350321],[102.059638,32.350383],[102.060009,32.350444],[102.060197,32.350481],[102.060396,32.350519],[102.060782,32.350594],[102.061046,32.350626],[102.061309,32.350659],[102.061573,32.350691],[102.061836,32.350724],[102.062272,32.35076],[102.06255,32.350832],[102.062828,32.350905],[102.063058,32.351003],[102.063288,32.351101],[102.063478,32.351237],[102.063668,32.351373],[102.063745,32.351428],[102.063942,32.351565],[102.06414,32.351702],[102.064337,32.351839],[102.064535,32.351975],[102.064711,32.352138],[102.064888,32.352301],[102.065087,32.352411],[102.065286,32.35252],[102.06553,32.352631],[102.065717,32.352637],[102.066092,32.352592],[102.06644,32.352455],[102.066787,32.352319],[102.067156,32.352133],[102.067525,32.351948],[102.067894,32.351762],[102.068124,32.351629],[102.068354,32.351496],[102.068584,32.351362],[102.068814,32.351229],[102.069105,32.350919],[102.069395,32.350608],[102.069587,32.350448],[102.069779,32.350288],[102.069971,32.350128],[102.070162,32.349968],[102.070374,32.349794],[102.070586,32.349621],[102.070798,32.349448],[102.07101,32.349275],[102.071221,32.349101],[102.071433,32.348928],[102.071645,32.348755],[102.071857,32.348581],[102.072064,32.348448],[102.072271,32.348314],[102.072478,32.348181],[102.072685,32.348047],[102.072914,32.347933],[102.073143,32.34782],[102.073372,32.347706],[102.073452,32.347666],[102.0736,32.347592],[102.073789,32.34752],[102.073821,32.347508],[102.074042,32.347424],[102.074263,32.34734],[102.074483,32.347256],[102.074704,32.347172],[102.074925,32.347088],[102.075146,32.347004],[102.075366,32.34692],[102.075612,32.346841],[102.075857,32.346763],[102.07613,32.346675],[102.076519,32.34654],[102.076542,32.346532],[102.076908,32.346405],[102.07711,32.346335],[102.077297,32.34627],[102.077686,32.346135],[102.078075,32.346],[102.078465,32.345865],[102.078854,32.34573],[102.079243,32.345595],[102.079632,32.34546],[102.079876,32.345386],[102.080121,32.345312],[102.080462,32.345186],[102.080803,32.34506],[102.081145,32.344934],[102.081486,32.344808],[102.081827,32.344682],[102.082059,32.3446],[102.082291,32.344518],[102.082491,32.344404],[102.082712,32.344275],[102.082838,32.34422],[102.082955,32.344168],[102.08326,32.344042],[102.083564,32.343916],[102.083869,32.34379],[102.084233,32.343554],[102.084383,32.343461],[102.084547,32.343426],[102.084711,32.343383],[102.084904,32.343297],[102.085197,32.343126],[102.085211,32.343122],[102.085389,32.343076],[102.085596,32.343069],[102.085903,32.342997],[102.086125,32.342876],[102.08626,32.342698],[102.08641,32.342526],[102.086532,32.342441],[102.086917,32.342276],[102.087203,32.342148],[102.087438,32.342019],[102.087688,32.341927],[102.088038,32.341798],[102.08838,32.341691],[102.088659,32.341613],[102.088823,32.341548],[102.088916,32.341441],[102.089116,32.34127],[102.089315,32.341177],[102.089465,32.34107],[102.089587,32.340884],[102.08973,32.340635],[102.08987,32.340335],[102.09001,32.340035],[102.090151,32.339735],[102.090161,32.339439],[102.090172,32.339143],[102.090186,32.338893],[102.090201,32.338643],[102.090236,32.3383],[102.090244,32.338268],[102.090297,32.338049],[102.090351,32.337829],[102.09046,32.337425],[102.09057,32.337021],[102.0906,32.336908],[102.090679,32.336666],[102.090686,32.336451],[102.09067,32.336369],[102.090586,32.335952],[102.090565,32.335758],[102.090529,32.335416],[102.090436,32.335138],[102.090429,32.334917],[102.090472,32.33471],[102.090465,32.334531],[102.090379,32.334331],[102.090343,32.334103],[102.090408,32.333967],[102.090508,32.333882],[102.090757,32.333746],[102.090936,32.333525],[102.091057,32.333175],[102.091129,32.332847],[102.091137,32.332429],[102.091145,32.332011],[102.09119,32.331725],[102.09119,32.331722],[102.091191,32.331721],[102.091193,32.331707],[102.091269,32.331431],[102.091357,32.331313],[102.091383,32.331279],[102.091545,32.331079],[102.091707,32.330879],[102.091816,32.330674],[102.091926,32.330469],[102.092069,32.330232],[102.09224,32.329927],[102.092402,32.32966],[102.092563,32.329394],[102.092699,32.3292],[102.092787,32.329076],[102.093075,32.328841],[102.093295,32.32866],[102.093515,32.32848],[102.093715,32.328352],[102.093915,32.328223],[102.094181,32.328081],[102.094372,32.328033],[102.0946,32.327957],[102.094762,32.327728],[102.094924,32.3275],[102.095114,32.327291],[102.095305,32.327081],[102.09539,32.326862],[102.095457,32.326746],[102.095581,32.326529],[102.095571,32.326158],[102.095504,32.32583],[102.095438,32.325501],[102.095448,32.325322],[102.095457,32.325168],[102.095562,32.32493],[102.095666,32.324692],[102.095799,32.324527],[102.095942,32.32435],[102.096099,32.324093],[102.096256,32.323836],[102.096409,32.323563],[102.096561,32.32329],[102.096713,32.323017],[102.096846,32.322789],[102.097075,32.322551],[102.097208,32.322341],[102.097341,32.322132],[102.097379,32.321922],[102.097484,32.321665],[102.097646,32.321504],[102.097806,32.321201],[102.097965,32.320897],[102.09809,32.320739],[102.098342,32.320455],[102.098595,32.320171],[102.098848,32.319887],[102.099024,32.319768],[102.099029,32.319765],[102.099301,32.319603],[102.099574,32.319442],[102.099851,32.319321],[102.100084,32.319219],[102.100316,32.319117],[102.100549,32.319016],[102.100782,32.318914],[102.101014,32.318813],[102.101247,32.318711],[102.101479,32.318609],[102.101712,32.318508],[102.101945,32.318406],[102.102177,32.318304],[102.10241,32.318203],[102.102643,32.318101],[102.102875,32.317999],[102.103108,32.317898],[102.103341,32.317796],[102.103573,32.317694],[102.103784,32.317611],[102.103995,32.317527],[102.104206,32.317444],[102.104417,32.31736],[102.104628,32.317277],[102.104839,32.317193],[102.10505,32.31711],[102.105261,32.317026],[102.105472,32.316943],[102.105683,32.316859],[102.10608,32.316679],[102.106476,32.316499],[102.106873,32.316319],[102.107269,32.316139],[102.107477,32.316022],[102.107685,32.315906],[102.107894,32.31579],[102.108102,32.315674],[102.10831,32.315558],[102.108518,32.315441],[102.108872,32.315249],[102.109153,32.315096],[102.109153,32.315096],[102.109225,32.315057],[102.109578,32.314865],[102.109988,32.3147],[102.110397,32.314534],[102.110806,32.314369],[102.111195,32.314241],[102.111583,32.314113],[102.111972,32.313985],[102.112236,32.313881],[102.112499,32.313777],[102.112729,32.313592],[102.112922,32.313375],[102.112935,32.312995],[102.112907,32.31268],[102.112902,32.312621],[102.11288,32.312364],[102.11285,32.312139],[102.11282,32.311913],[102.11279,32.311687],[102.112759,32.311462],[102.112729,32.311236],[102.112699,32.31101],[102.112669,32.310785],[102.112639,32.310559],[102.112646,32.310323],[102.112654,32.310086],[102.112736,32.309852],[102.112818,32.309617],[102.1129,32.309382],[102.112982,32.309147],[102.113068,32.308786],[102.113153,32.308425],[102.113148,32.307998],[102.113143,32.307572],[102.113122,32.307339],[102.113102,32.307105],[102.113081,32.306872],[102.113061,32.306639],[102.11304,32.306406],[102.11302,32.306173],[102.112999,32.305939],[102.112979,32.305706],[102.112968,32.305474],[102.112956,32.305243],[102.112945,32.305011],[102.112934,32.304779],[102.112923,32.304547],[102.112911,32.304316],[102.112936,32.30409],[102.112962,32.303864],[102.112987,32.303639],[102.113012,32.303413],[102.113136,32.303006],[102.113261,32.302598],[102.113495,32.302288],[102.113523,32.302261],[102.113725,32.302072],[102.114149,32.301987],[102.114573,32.301902],[102.114926,32.301831],[102.114998,32.301817],[102.115437,32.301748],[102.115876,32.301679],[102.116315,32.301611],[102.11661,32.301564],[102.116755,32.301542],[102.117153,32.301509],[102.117551,32.301476],[102.117949,32.301443],[102.118265,32.301434],[102.118582,32.301425],[102.118952,32.301466],[102.119323,32.301506],[102.119768,32.301516],[102.120192,32.301636],[102.120507,32.301725],[102.120617,32.301757],[102.12065,32.30178],[102.120999,32.302025],[102.121035,32.302051],[102.121381,32.302294],[102.121572,32.302429],[102.121764,32.302563],[102.121955,32.302697],[102.122146,32.302832],[102.12251,32.303093],[102.122873,32.303354],[102.122873,32.303354],[102.122873,32.303354],[102.123203,32.303488],[102.123534,32.303622],[102.123923,32.303678],[102.124312,32.303734],[102.124696,32.303753],[102.12508,32.303773],[102.125463,32.303792],[102.125815,32.303793],[102.126167,32.303795],[102.126419,32.303796],[102.12667,32.303797],[102.127107,32.303799],[102.127174,32.303799],[102.127191,32.3038],[102.127456,32.303818],[102.127721,32.303835],[102.127994,32.303853],[102.128268,32.303871],[102.128541,32.303889],[102.128815,32.303907],[102.12917,32.30393],[102.129362,32.303943],[102.129602,32.30398],[102.129843,32.304017],[102.130084,32.304054],[102.130325,32.304092],[102.130749,32.304196],[102.131173,32.3043],[102.131467,32.304402],[102.131761,32.304503],[102.13202,32.304556],[102.132279,32.304609],[102.132614,32.304617],[102.132767,32.304495],[102.13278,32.304464],[102.132864,32.304278],[102.132864,32.304278],[102.132886,32.304229],[102.133006,32.303964],[102.133065,32.303704],[102.133101,32.303546],[102.133104,32.303534],[102.133104,32.303534],[102.133124,32.303445],[102.133184,32.303186],[102.133243,32.302927],[102.133257,32.302865],[102.133302,32.302667],[102.133362,32.302408],[102.133421,32.302149],[102.13348,32.30189],[102.133566,32.301545],[102.133587,32.301461],[102.133653,32.3012],[102.13381,32.30092],[102.133894,32.300769],[102.133967,32.300639],[102.134215,32.30044],[102.134462,32.30024],[102.134679,32.300097],[102.134785,32.300027],[102.134968,32.299906],[102.135108,32.299813],[102.135353,32.299701],[102.135598,32.29959],[102.135865,32.299406],[102.135942,32.299353],[102.136131,32.299223],[102.136325,32.298959],[102.13652,32.298695],[102.136643,32.298455],[102.136765,32.298215],[102.136888,32.297975],[102.137011,32.297734],[102.137134,32.297494],[102.137257,32.297254],[102.137379,32.297014],[102.137502,32.296774],[102.137625,32.296533],[102.137748,32.296293],[102.137851,32.296075],[102.137955,32.295856],[102.138059,32.295637],[102.138162,32.295419],[102.138266,32.2952],[102.138369,32.294982],[102.138473,32.294763],[102.138577,32.294544],[102.13868,32.294326],[102.138784,32.294107],[102.13888,32.293857],[102.138976,32.293606],[102.139073,32.293356],[102.139169,32.293105],[102.139265,32.292855],[102.139361,32.292604],[102.139457,32.292354],[102.139554,32.292103],[102.139727,32.291781],[102.139844,32.291564],[102.13996,32.291347],[102.140077,32.29113],[102.140194,32.290914],[102.14031,32.290697],[102.140427,32.29048],[102.140543,32.290263],[102.14066,32.290046],[102.140819,32.289853],[102.140979,32.289659],[102.141244,32.289507],[102.141509,32.289354],[102.141847,32.289267],[102.142083,32.289207],[102.142184,32.289181],[102.142484,32.289109],[102.142784,32.289036],[102.143193,32.289046],[102.143433,32.289083],[102.143674,32.28912],[102.144042,32.289255],[102.14441,32.289389],[102.14463,32.289481],[102.144851,32.289573],[102.145071,32.289665],[102.145292,32.289756],[102.145386,32.289796],[102.145418,32.289809],[102.145512,32.289848],[102.145732,32.28994],[102.145953,32.290032],[102.145967,32.290038],[102.146173,32.290124],[102.146411,32.290261],[102.146648,32.290397],[102.146885,32.290534],[102.147123,32.290671],[102.14736,32.290808],[102.147597,32.290945],[102.147925,32.291184],[102.148252,32.291423],[102.148579,32.291662],[102.148731,32.291776],[102.148737,32.291781],[102.149051,32.292019],[102.149212,32.292228],[102.149373,32.292437],[102.149459,32.29266],[102.149545,32.292883],[102.149541,32.29296],[102.14953,32.293151],[102.149515,32.293419],[102.149513,32.293471],[102.149548,32.293716],[102.149584,32.29396],[102.149588,32.294227],[102.149582,32.29457],[102.149575,32.294914],[102.149569,32.295257],[102.149562,32.2956],[102.149522,32.29595],[102.149481,32.2963],[102.149441,32.296649],[102.1494,32.296999],[102.149389,32.297378],[102.149377,32.297757],[102.149365,32.298136],[102.14941,32.298528],[102.149432,32.298718],[102.149456,32.298921],[102.1495,32.299116],[102.14957,32.299418],[102.149639,32.29972],[102.149709,32.300022],[102.149804,32.30025],[102.149899,32.300479],[102.150008,32.300698],[102.150018,32.300717],[102.150118,32.300917],[102.150321,32.301234],[102.150548,32.301588],[102.150776,32.301942],[102.150924,32.302173],[102.151003,32.302297],[102.151193,32.302544],[102.151384,32.302792],[102.151574,32.303039],[102.15175,32.303182],[102.151787,32.303212],[102.151926,32.303325],[102.152212,32.303567],[102.152378,32.303708],[102.152497,32.30381],[102.152635,32.304015],[102.152773,32.304219],[102.152897,32.304533],[102.152983,32.30479],[102.153013,32.305201],[102.153021,32.305304],[102.153173,32.305475],[102.153306,32.305623],[102.153592,32.305942],[102.15383,32.306123],[102.153935,32.306153],[102.15423,32.306237],[102.154591,32.306247],[102.154953,32.306256],[102.155272,32.306304],[102.155581,32.306351],[102.155962,32.306375],[102.156343,32.306399],[102.156714,32.306361],[102.157085,32.306323],[102.157404,32.306318],[102.157723,32.306313],[102.157989,32.306366],[102.158256,32.306418],[102.158503,32.306518],[102.158751,32.306618],[102.159021,32.306746],[102.159274,32.306865],[102.159617,32.307037],[102.159633,32.30704],[102.160035,32.307122],[102.160359,32.307094],[102.160673,32.307113],[102.160987,32.307132],[102.161315,32.307079],[102.161576,32.307085],[102.161814,32.30709],[102.162052,32.307096],[102.162393,32.307067],[102.162499,32.307059],[102.162947,32.307021],[102.163339,32.306968],[102.163731,32.306914],[102.164135,32.306839],[102.164539,32.306764],[102.164803,32.306628],[102.165067,32.306492],[102.165404,32.306197],[102.165741,32.305901],[102.166077,32.305606],[102.166414,32.305311],[102.166751,32.305015],[102.166949,32.304841],[102.167146,32.304666],[102.167344,32.304491],[102.167542,32.304317],[102.16774,32.304142],[102.167937,32.303968],[102.16822,32.303832],[102.168503,32.303696],[102.168748,32.303607],[102.168993,32.303518],[102.169237,32.30346],[102.16948,32.303403],[102.169815,32.30341],[102.16988,32.303412],[102.169845,32.303446],[102.169594,32.303676],[102.169317,32.303862],[102.168943,32.304276],[102.168019,32.306366],[102.167576,32.307548],[102.167377,32.308079],[102.167013,32.309607],[102.166521,32.310901],[102.165894,32.312154],[102.165725,32.313225],[102.165819,32.31544],[102.165822,32.315506],[102.16583,32.315684],[102.166,32.317454],[102.165875,32.318564],[102.165879,32.319908],[102.165852,32.320752],[102.16556,32.321436],[102.165261,32.322312],[102.164763,32.323798],[102.164401,32.324716],[102.164246,32.325109],[102.164223,32.325168],[102.164139,32.32538],[102.164095,32.325494],[102.163923,32.325912],[102.163901,32.325966],[102.163733,32.326386],[102.163562,32.327495],[102.163611,32.32884],[102.1638,32.330034],[102.164263,32.331119],[102.164698,32.332057],[102.165002,32.332933],[102.164927,32.33305],[102.164921,32.333151],[102.164966,32.333262],[102.165103,32.333333],[102.165265,32.333494],[102.165327,32.333515],[102.165355,32.333563],[102.165421,32.333701],[102.165478,32.333762],[102.165537,32.333789],[102.165603,32.333798],[102.165716,32.333792],[102.165755,32.333809],[102.165778,32.333851],[102.165776,32.333895],[102.165787,32.333925],[102.165879,32.333994],[102.16591,32.334055],[102.165947,32.334241],[102.165978,32.334479],[102.166016,32.334589],[102.166032,32.334606],[102.166071,32.334624],[102.166216,32.334649],[102.166258,32.334664],[102.166336,32.334723],[102.166422,32.334808],[102.166537,32.334869],[102.166574,32.334914],[102.166714,32.335083],[102.166719,32.335091],[102.166732,32.335105],[102.166736,32.335109],[102.166782,32.335155],[102.166812,32.335183],[102.167022,32.335392],[102.167046,32.335415],[102.167094,32.335462],[102.167098,32.335466],[102.16714,32.335508],[102.167202,32.335569],[102.167511,32.335862],[102.167556,32.335904],[102.167621,32.335966],[102.167638,32.335982],[102.167643,32.335987],[102.167743,32.336079],[102.167747,32.336085],[102.167753,32.336091],[102.167762,32.3361],[102.168319,32.336685],[102.168431,32.337185],[102.168437,32.33722],[102.168446,32.33725],[102.168447,32.337257],[102.16848,32.337268],[102.16851,32.337278],[102.168534,32.337302],[102.168524,32.33739],[102.168542,32.337441],[102.168541,32.337492],[102.168541,32.337528],[102.168539,32.337535],[102.168535,32.337548],[102.168557,32.337613],[102.168537,32.33769],[102.168599,32.337739],[102.168648,32.337886],[102.168656,32.337908],[102.168695,32.338026],[102.16871,32.338046],[102.168724,32.338064],[102.168706,32.338073],[102.168662,32.338085],[102.168636,32.338108],[102.16863,32.338193],[102.168652,32.338305],[102.168628,32.33835],[102.168625,32.338407],[102.168657,32.338453],[102.168681,32.33847],[102.168826,32.338501],[102.168919,32.338527],[102.168967,32.338549],[102.168877,32.338701],[102.16885,32.338779],[102.168845,32.338818],[102.168854,32.33887],[102.168911,32.338904],[102.168924,32.338927],[102.168917,32.338955],[102.16888,32.339004],[102.168871,32.339067],[102.168877,32.339098],[102.168917,32.33916],[102.168926,32.339189],[102.168927,32.339263],[102.168939,32.339325],[102.168975,32.339393],[102.169,32.339417],[102.169033,32.339436],[102.169148,32.339476],[102.169265,32.339532],[102.169289,32.339556],[102.169296,32.339581],[102.169292,32.339627],[102.169265,32.339678],[102.169191,32.33975],[102.169152,32.339809],[102.169073,32.339858],[102.169059,32.339899],[102.169067,32.339937],[102.169091,32.339965],[102.169129,32.339989],[102.169175,32.339999],[102.169182,32.340009],[102.169179,32.340024],[102.169101,32.340141],[102.169082,32.340246],[102.16909,32.340348],[102.169105,32.3404],[102.169128,32.340437],[102.169203,32.34049],[102.169201,32.340517],[102.169106,32.340527],[102.168871,32.340522],[102.168826,32.340541],[102.16882,32.340556],[102.168806,32.340588],[102.16881,32.340624],[102.168829,32.34064],[102.168851,32.34066],[102.168968,32.340699],[102.169081,32.340707],[102.169123,32.340734],[102.169122,32.340771],[102.169085,32.340813],[102.169058,32.340888],[102.169046,32.340959],[102.16905,32.341032],[102.169086,32.341122],[102.169198,32.341218],[102.16922,32.341248],[102.169245,32.34133],[102.169253,32.34139],[102.169249,32.341475],[102.169187,32.341653],[102.169157,32.341827],[102.169148,32.341922],[102.169152,32.342147],[102.169143,32.34219],[102.169111,32.342241],[102.169045,32.342282],[102.169023,32.342288],[102.168948,32.342282],[102.168926,32.342287],[102.168913,32.342304],[102.168918,32.342344],[102.168939,32.342378],[102.169071,32.34248],[102.16909,32.342501],[102.16912,32.342534],[102.169129,32.342545],[102.169147,32.342589],[102.16913,32.342682],[102.169148,32.342717],[102.169168,32.342739],[102.16923,32.342777],[102.16933,32.3428],[102.169382,32.342887],[102.169483,32.342965],[102.169526,32.342982],[102.169633,32.343007],[102.169662,32.343027],[102.169675,32.343113],[102.169693,32.34315],[102.169716,32.343183],[102.169762,32.343222],[102.169723,32.343359],[102.16974,32.343422],[102.169767,32.343456],[102.169801,32.34347],[102.169867,32.343473],[102.16991,32.343487],[102.16993,32.343501],[102.169974,32.343566],[102.170012,32.343584],[102.170085,32.343598],[102.170178,32.343584],[102.170216,32.343578],[102.170253,32.343622],[102.170259,32.343651],[102.170254,32.343703],[102.170252,32.34373],[102.170278,32.3441],[102.170274,32.344147],[102.17025,32.344219],[102.170152,32.344396],[102.170104,32.344464],[102.170078,32.344489],[102.169965,32.344557],[102.169782,32.344693],[102.169763,32.344716],[102.169742,32.344742],[102.169724,32.344802],[102.169729,32.344829],[102.169747,32.344857],[102.169821,32.344921],[102.169903,32.344971],[102.169938,32.345017],[102.169951,32.3451],[102.169952,32.345233],[102.169974,32.345376],[102.169977,32.345398],[102.170054,32.345677],[102.170068,32.345763],[102.170101,32.345842],[102.170133,32.345886],[102.170143,32.345896],[102.170219,32.345971],[102.170262,32.345999],[102.170368,32.346048],[102.170402,32.346079],[102.170417,32.346112],[102.170425,32.346144],[102.170419,32.346185],[102.170335,32.34625],[102.170314,32.346288],[102.170297,32.346357],[102.170292,32.346408],[102.170278,32.346537],[102.170283,32.346606],[102.170302,32.346678],[102.170357,32.346782],[102.170398,32.346828],[102.170423,32.346844],[102.170465,32.346855],[102.170633,32.34686],[102.170662,32.346868],[102.170699,32.346909],[102.170727,32.346989],[102.170749,32.347024],[102.170787,32.347067],[102.170826,32.347085],[102.170881,32.347086],[102.170982,32.347058],[102.171085,32.346999],[102.171222,32.346903],[102.171288,32.34688],[102.171363,32.346853],[102.171455,32.346848],[102.171548,32.346866],[102.171613,32.346894],[102.171646,32.346928],[102.171671,32.347008],[102.171661,32.347055],[102.171562,32.347183],[102.171526,32.347229],[102.171437,32.34743],[102.171363,32.34756],[102.17103,32.348018],[102.171015,32.34806],[102.170996,32.34811],[102.170998,32.348207],[102.171014,32.348252],[102.171066,32.348296],[102.171121,32.34832],[102.171203,32.348334],[102.171262,32.348319],[102.171371,32.34826],[102.171541,32.348193],[102.171633,32.348157],[102.171713,32.348155],[102.17174,32.348176],[102.171758,32.348217],[102.171764,32.348254],[102.171756,32.348413],[102.171746,32.348432],[102.171697,32.348471],[102.171652,32.348522],[102.17164,32.348554],[102.17165,32.348581],[102.171718,32.348673],[102.171724,32.348696],[102.17171,32.348738],[102.17164,32.348765],[102.171618,32.348796],[102.171662,32.348993],[102.171672,32.349019],[102.171718,32.349139],[102.171786,32.349255],[102.171838,32.349308],[102.171929,32.349373],[102.171968,32.349411],[102.171983,32.349425],[102.172055,32.349517],[102.172113,32.349665],[102.172164,32.349765],[102.172178,32.349843],[102.172167,32.349904],[102.172128,32.349964],[102.171938,32.350074],[102.171907,32.350106],[102.171896,32.35013],[102.17189,32.350183],[102.171902,32.350277],[102.171938,32.350361],[102.172068,32.350508],[102.172169,32.350662],[102.172248,32.350737],[102.172475,32.350905],[102.172566,32.350973],[102.172618,32.351045],[102.172636,32.351095],[102.172634,32.351145],[102.172616,32.35121],[102.172582,32.351279],[102.17254,32.351329],[102.172431,32.351391],[102.17229,32.351448],[102.17226,32.351464],[102.172188,32.351504],[102.17211,32.351561],[102.17206,32.351623],[102.172034,32.351672],[102.171988,32.351756],[102.171954,32.351843],[102.171937,32.351919],[102.171934,32.352105],[102.17191,32.352192],[102.171882,32.352205],[102.171744,32.352198],[102.171706,32.352203],[102.171625,32.352249],[102.171604,32.35227],[102.171589,32.352302],[102.171592,32.352337],[102.171615,32.352391],[102.171626,32.352404],[102.171665,32.352448],[102.171722,32.352481],[102.171834,32.352528],[102.172203,32.352624],[102.172239,32.352665],[102.172272,32.35276],[102.172255,32.35327],[102.17223,32.353346],[102.172199,32.353378],[102.172148,32.353398],[102.172115,32.353399],[102.17193,32.353368],[102.171848,32.353345],[102.171727,32.353282],[102.171601,32.353232],[102.171572,32.353229],[102.171547,32.353236],[102.171509,32.353286],[102.1715,32.353331],[102.171519,32.353383],[102.171707,32.353686],[102.171789,32.353776],[102.171789,32.353806],[102.171753,32.353903],[102.171752,32.353948],[102.171773,32.354048],[102.171821,32.354155],[102.171823,32.354223],[102.171808,32.354257],[102.171785,32.354281],[102.171707,32.35433],[102.171537,32.354369],[102.171411,32.354429],[102.171355,32.354479],[102.171345,32.354493],[102.171312,32.354543],[102.171285,32.354639],[102.171297,32.354708],[102.171339,32.354748],[102.171395,32.354777],[102.171554,32.354859],[102.171573,32.354877],[102.171577,32.354915],[102.171556,32.354979],[102.171511,32.35505],[102.17149,32.355063],[102.171457,32.355066],[102.171395,32.35507],[102.171365,32.355086],[102.17135,32.355109],[102.171353,32.355127],[102.171384,32.355181],[102.171463,32.355266],[102.171473,32.355317],[102.171464,32.355352],[102.171439,32.355373],[102.171342,32.355415],[102.171199,32.355432],[102.171176,32.355448],[102.171164,32.355483],[102.171165,32.355509],[102.171176,32.355528],[102.171261,32.355566],[102.171305,32.355599],[102.171346,32.355649],[102.171372,32.355711],[102.171379,32.355773],[102.171329,32.355919],[102.171326,32.355972],[102.171364,32.356163],[102.171368,32.356279],[102.171391,32.35637],[102.171407,32.356401],[102.17143,32.356428],[102.17146,32.356446],[102.171552,32.356468],[102.17158,32.35647],[102.171642,32.356474],[102.171766,32.35645],[102.1718,32.356454],[102.171841,32.356496],[102.171863,32.356548],[102.171866,32.356598],[102.171849,32.356651],[102.17181,32.356693],[102.171479,32.35678],[102.17142,32.356808],[102.171401,32.35683],[102.171391,32.356879],[102.171401,32.356928],[102.171426,32.356954],[102.171502,32.356999],[102.171563,32.357065],[102.171565,32.357122],[102.171547,32.357157],[102.171486,32.357186],[102.171434,32.35719],[102.171309,32.357146],[102.171192,32.357081],[102.171125,32.357076],[102.171077,32.357091],[102.171047,32.357128],[102.171007,32.357212],[102.170997,32.357263],[102.170984,32.357553],[102.170972,32.357586],[102.170934,32.357632],[102.170912,32.357645],[102.170892,32.357643],[102.170817,32.357611],[102.170732,32.357562],[102.170676,32.357546],[102.170606,32.35755],[102.170529,32.357569],[102.170476,32.357598],[102.170426,32.357646],[102.17024,32.35793],[102.170221,32.35798],[102.170216,32.357994],[102.170225,32.358092],[102.170244,32.358132],[102.170256,32.358148],[102.170345,32.358277],[102.170366,32.358344],[102.170355,32.358375],[102.170265,32.358475],[102.170244,32.358498],[102.170224,32.358563],[102.170225,32.358642],[102.17023,32.358661],[102.170252,32.358731],[102.170367,32.358887],[102.170438,32.359024],[102.170472,32.359122],[102.170481,32.359192],[102.170478,32.359236],[102.170457,32.359262],[102.170404,32.359294],[102.170374,32.359304],[102.170223,32.359327],[102.170156,32.359349],[102.170051,32.359416],[102.170001,32.359484],[102.169963,32.35951],[102.169942,32.359512],[102.169894,32.359489],[102.169873,32.359472],[102.169857,32.359439],[102.169851,32.359377],[102.169867,32.359225],[102.169857,32.359184],[102.169831,32.359143],[102.169807,32.359126],[102.169753,32.35911],[102.169642,32.359099],[102.169593,32.359109],[102.169568,32.359126],[102.169537,32.359174],[102.169517,32.359237],[102.169516,32.359272],[102.169538,32.359405],[102.169549,32.359438],[102.169622,32.359654],[102.169621,32.359695],[102.169587,32.359745],[102.169536,32.359783],[102.169503,32.359791],[102.169426,32.359793],[102.169367,32.359825],[102.169307,32.359889],[102.169269,32.359971],[102.169243,32.359977],[102.169189,32.359971],[102.169095,32.359944],[102.169061,32.359925],[102.16904,32.359892],[102.168999,32.359727],[102.168987,32.359679],[102.168936,32.359644],[102.168892,32.359632],[102.168864,32.359632],[102.168822,32.359649],[102.168799,32.359669],[102.168736,32.359758],[102.168642,32.359892],[102.168509,32.359999],[102.168474,32.360055],[102.168461,32.360113],[102.168508,32.360247],[102.16851,32.360305],[102.168493,32.360332],[102.168329,32.360274],[102.168202,32.360208],[102.168135,32.3602],[102.168093,32.360207],[102.16792,32.360263],[102.16777,32.360267],[102.167718,32.360282],[102.167691,32.360307],[102.167662,32.360366],[102.167647,32.360453],[102.167602,32.360483],[102.167517,32.360499],[102.167423,32.360475],[102.16735,32.360467],[102.167309,32.360476],[102.167299,32.360485],[102.167292,32.360491],[102.167267,32.360568],[102.167272,32.360624],[102.167287,32.360669],[102.16733,32.360748],[102.167338,32.360762],[102.167385,32.360805],[102.167496,32.360826],[102.167508,32.360841],[102.16747,32.360919],[102.167426,32.360977],[102.167403,32.360995],[102.167326,32.361023],[102.167297,32.361049],[102.167291,32.361079],[102.167317,32.361267],[102.167298,32.361326],[102.167272,32.361357],[102.167177,32.361399],[102.167123,32.361436],[102.16708,32.361486],[102.167044,32.361546],[102.166951,32.361774],[102.166935,32.361833],[102.166928,32.361931],[102.166929,32.361939],[102.166941,32.362036],[102.167,32.362201],[102.167039,32.362247],[102.167095,32.362286],[102.167155,32.362305],[102.167195,32.362308],[102.167294,32.362299],[102.167412,32.36227],[102.167496,32.362266],[102.167529,32.362277],[102.167632,32.362341],[102.167687,32.362384],[102.167729,32.362436],[102.16774,32.362479],[102.167732,32.3628],[102.16775,32.362837],[102.16779,32.362878],[102.167823,32.362885],[102.16785,32.362873],[102.167862,32.362862],[102.167942,32.36278],[102.167971,32.362762],[102.168041,32.362751],[102.168063,32.362756],[102.168087,32.362825],[102.168085,32.362884],[102.168024,32.363037],[102.168006,32.363051],[102.167901,32.363064],[102.167846,32.363088],[102.167797,32.363124],[102.167783,32.363167],[102.167804,32.363226],[102.167823,32.363252],[102.167844,32.363266],[102.167879,32.363274],[102.168007,32.363276],[102.168025,32.363283],[102.168038,32.363307],[102.168045,32.36336],[102.168041,32.363372],[102.168021,32.363383],[102.167923,32.363402],[102.167807,32.363446],[102.167562,32.363567],[102.167037,32.363758],[102.166873,32.36383],[102.166824,32.363859],[102.166802,32.363901],[102.166783,32.364],[102.166782,32.364058],[102.166957,32.364539],[102.166967,32.364621],[102.166964,32.364696],[102.166962,32.364724],[102.16695,32.364749],[102.166903,32.364768],[102.166822,32.36478],[102.166729,32.364779],[102.166681,32.364791],[102.166648,32.364813],[102.166597,32.364869],[102.166573,32.364939],[102.166578,32.365003],[102.166609,32.365039],[102.166667,32.365059],[102.166765,32.365072],[102.166876,32.36506],[102.167163,32.364995],[102.167209,32.364984],[102.16735,32.364963],[102.167472,32.364956],[102.167658,32.364969],[102.167707,32.364984],[102.167772,32.365021],[102.16787,32.365104],[102.167919,32.365161],[102.167947,32.365194],[102.167986,32.365265],[102.16801,32.36534],[102.168009,32.365413],[102.167994,32.365468],[102.16797,32.365495],[102.167908,32.365525],[102.167769,32.365546],[102.167709,32.365578],[102.167653,32.365625],[102.167606,32.36568],[102.167581,32.365729],[102.167573,32.365776],[102.167577,32.365817],[102.167593,32.365852],[102.167646,32.365909],[102.167681,32.365928],[102.167735,32.365924],[102.167841,32.365877],[102.16786,32.365875],[102.16788,32.365885],[102.167908,32.365912],[102.167918,32.365934],[102.167907,32.366011],[102.167853,32.36611],[102.167739,32.366152],[102.167694,32.366179],[102.167614,32.366242],[102.16758,32.366279],[102.167542,32.366341],[102.167533,32.366374],[102.167545,32.366463],[102.167567,32.3665],[102.167592,32.366519],[102.167653,32.36654],[102.167746,32.366553],[102.1678,32.366549],[102.167941,32.366518],[102.168047,32.366471],[102.168128,32.366436],[102.168223,32.366436],[102.16831,32.36646],[102.168316,32.366464],[102.168354,32.36649],[102.168381,32.366519],[102.168404,32.366558],[102.168429,32.3666],[102.168464,32.366718],[102.168486,32.366788],[102.168482,32.366907],[102.168504,32.366954],[102.168547,32.366978],[102.168628,32.366998],[102.168645,32.367002],[102.168663,32.367001],[102.168738,32.366995],[102.168829,32.366988],[102.168878,32.366994],[102.168976,32.367031],[102.169023,32.36706],[102.169052,32.367089],[102.169066,32.367124],[102.16907,32.367174],[102.169049,32.367237],[102.168976,32.367326],[102.168907,32.367455],[102.168828,32.367566],[102.168738,32.367663],[102.168652,32.367733],[102.168603,32.367816],[102.168597,32.36788],[102.168637,32.367966],[102.168635,32.368045],[102.168616,32.368117],[102.168552,32.36817],[102.168535,32.368194],[102.168529,32.368238],[102.168541,32.36829],[102.168577,32.368347],[102.168625,32.368368],[102.168687,32.36837],[102.168739,32.368364],[102.168831,32.368328],[102.168881,32.368338],[102.168944,32.368372],[102.169007,32.368433],[102.169072,32.368451],[102.169112,32.368441],[102.169155,32.368383],[102.169178,32.368363],[102.169185,32.368357],[102.169313,32.368295],[102.169356,32.368282],[102.169427,32.368274],[102.169469,32.368277],[102.169487,32.368279],[102.169507,32.368289],[102.169512,32.368345],[102.169514,32.368363],[102.169498,32.368414],[102.169462,32.368533],[102.169462,32.368612],[102.169472,32.368669],[102.1695,32.368737],[102.16961,32.368871],[102.169668,32.368941],[102.169684,32.368983],[102.16969,32.369029],[102.169687,32.369057],[102.169685,32.369077],[102.169684,32.36909],[102.169682,32.369114],[102.169664,32.36919],[102.169619,32.369298],[102.169595,32.369384],[102.169589,32.369443],[102.169594,32.369468],[102.169625,32.369514],[102.169694,32.369575],[102.169718,32.369591],[102.169858,32.369687],[102.169895,32.369735],[102.169914,32.369784],[102.169884,32.369886],[102.169856,32.369935],[102.1698,32.369988],[102.169709,32.370051],[102.169656,32.370114],[102.169651,32.370131],[102.169658,32.370152],[102.169752,32.370221],[102.16974,32.370263],[102.169715,32.37028],[102.169611,32.370292],[102.169547,32.370323],[102.169507,32.370358],[102.16948,32.370425],[102.169484,32.370471],[102.169517,32.370542],[102.169533,32.37063],[102.16956,32.37069],[102.169604,32.370733],[102.169626,32.370755],[102.169781,32.37086],[102.169801,32.370894],[102.169799,32.370951],[102.169759,32.37098],[102.169705,32.370998],[102.169495,32.370997],[102.16947,32.370981],[102.169383,32.370867],[102.16934,32.370827],[102.169328,32.370822],[102.169286,32.370803],[102.169248,32.370797],[102.169226,32.370803],[102.169209,32.370821],[102.169193,32.370869],[102.169204,32.370976],[102.1692,32.371021],[102.169126,32.371047],[102.169103,32.371085],[102.169099,32.371108],[102.169115,32.371142],[102.169229,32.371224],[102.169271,32.371268],[102.169288,32.371316],[102.169289,32.371398],[102.169268,32.371455],[102.169184,32.37148],[102.169127,32.371533],[102.169064,32.371659],[102.16904,32.371789],[102.16905,32.371847],[102.169077,32.371883],[102.169115,32.371908],[102.169142,32.371925],[102.16925,32.37195],[102.169273,32.371982],[102.169276,32.371999],[102.169145,32.372039],[102.169128,32.372053],[102.169121,32.372068],[102.169142,32.372129],[102.169167,32.372149],[102.169231,32.372176],[102.169236,32.372212],[102.169223,32.372225],[102.16898,32.372278],[102.168864,32.372323],[102.168815,32.372373],[102.168781,32.372437],[102.16876,32.372475],[102.168743,32.372533],[102.168746,32.372591],[102.168759,32.372618],[102.168799,32.372651],[102.16885,32.372657],[102.168924,32.37263],[102.168971,32.372595],[102.169001,32.372555],[102.169023,32.372497],[102.169044,32.372487],[102.169065,32.372477],[102.169111,32.37248],[102.169107,32.372562],[102.169106,32.372597],[102.169122,32.372671],[102.169134,32.372691],[102.169156,32.37271],[102.169163,32.372715],[102.169308,32.372778],[102.169316,32.372826],[102.1693,32.372875],[102.16928,32.372897],[102.168963,32.373085],[102.168886,32.373145],[102.16888,32.373168],[102.168894,32.37321],[102.168973,32.373364],[102.16897,32.373441],[102.168953,32.373479],[102.168927,32.373507],[102.168914,32.373512],[102.168792,32.373495],[102.168688,32.373499],[102.16814,32.373634],[102.168012,32.373713],[102.167943,32.373783],[102.167914,32.373867],[102.167914,32.373875],[102.167903,32.373986],[102.167917,32.374041],[102.167963,32.374101],[102.168037,32.374152],[102.168154,32.374188],[102.168218,32.374189],[102.168245,32.374181],[102.168253,32.374179],[102.168365,32.37413],[102.168456,32.37408],[102.168496,32.374076],[102.168525,32.374086],[102.168551,32.374145],[102.168555,32.374178],[102.168546,32.374193],[102.168516,32.374192],[102.168461,32.374166],[102.168432,32.374166],[102.168397,32.374181],[102.16838,32.374212],[102.16839,32.374252],[102.168458,32.374334],[102.168512,32.374461],[102.168539,32.374492],[102.168618,32.374552],[102.168663,32.374557],[102.168764,32.374531],[102.168783,32.374539],[102.168816,32.374569],[102.168821,32.374578],[102.168835,32.374604],[102.168832,32.374631],[102.168822,32.374641],[102.168812,32.374645],[102.168705,32.374678],[102.168654,32.374709],[102.168641,32.374718],[102.168621,32.37474],[102.168604,32.374778],[102.168615,32.374837],[102.168637,32.374857],[102.168681,32.374878],[102.168761,32.374876],[102.16881,32.374919],[102.168843,32.37493],[102.168884,32.374919],[102.168897,32.374911],[102.168904,32.374906],[102.168935,32.37485],[102.16895,32.374837],[102.168987,32.374825],[102.169009,32.374825],[102.169026,32.374964],[102.169014,32.374997],[102.168992,32.375016],[102.168965,32.375025],[102.168949,32.37503],[102.168914,32.375041],[102.168885,32.375061],[102.168866,32.375089],[102.168829,32.37521],[102.168753,32.375359],[102.168711,32.375392],[102.168673,32.375396],[102.168653,32.375412],[102.168653,32.375429],[102.168668,32.37546],[102.168723,32.375521],[102.168803,32.375581],[102.168846,32.375582],[102.16886,32.37557],[102.168879,32.375524],[102.16887,32.375496],[102.168844,32.375478],[102.168844,32.375471],[102.168871,32.375464],[102.168961,32.375463],[102.168996,32.375454],[102.169025,32.375441],[102.169059,32.37541],[102.169071,32.37531],[102.169075,32.375271],[102.169104,32.375203],[102.169121,32.375165],[102.169196,32.37518],[102.169205,32.375182],[102.169256,32.375182],[102.169297,32.375159],[102.169344,32.375096],[102.169419,32.375068],[102.169455,32.375089],[102.169482,32.375151],[102.169486,32.375188],[102.169355,32.375259],[102.169341,32.375289],[102.169348,32.375319],[102.169391,32.375347],[102.169452,32.375366],[102.169513,32.375344],[102.169565,32.375289],[102.169585,32.375302],[102.169599,32.375325],[102.169606,32.375396],[102.169599,32.375427],[102.169524,32.375495],[102.169497,32.375535],[102.169493,32.375565],[102.169506,32.375598],[102.169511,32.375609],[102.169584,32.375661],[102.16963,32.375669],[102.169652,32.375662],[102.169717,32.375606],[102.169758,32.375595],[102.1698,32.375635],[102.169854,32.375672],[102.169956,32.375702],[102.169955,32.375757],[102.169921,32.375785],[102.169772,32.375806],[102.169625,32.375792],[102.169565,32.375793],[102.169532,32.375813],[102.169503,32.375863],[102.169497,32.375895],[102.169503,32.375921],[102.169542,32.37595],[102.169586,32.375959],[102.169675,32.375951],[102.169721,32.375955],[102.169733,32.37598],[102.169731,32.375996],[102.169667,32.376042],[102.169655,32.376069],[102.169658,32.376089],[102.169696,32.37613],[102.169724,32.376146],[102.169828,32.376162],[102.169846,32.376197],[102.16972,32.376269],[102.169689,32.376298],[102.16968,32.376327],[102.169707,32.376378],[102.169706,32.376394],[102.169698,32.376419],[102.169674,32.376454],[102.169641,32.376463],[102.169608,32.37645],[102.169547,32.376445],[102.1695,32.376463],[102.169481,32.376482],[102.169469,32.376521],[102.169481,32.376592],[102.169411,32.376683],[102.169417,32.376701],[102.169433,32.376716],[102.169478,32.376734],[102.169564,32.37674],[102.169601,32.376733],[102.169628,32.376779],[102.169645,32.376827],[102.169643,32.376861],[102.16963,32.376884],[102.169552,32.376952],[102.169533,32.37699],[102.169542,32.377018],[102.169588,32.377048],[102.169595,32.377064],[102.169582,32.377135],[102.169584,32.377234],[102.169554,32.377361],[102.169517,32.377365],[102.169487,32.377396],[102.169476,32.377519],[102.169432,32.377562],[102.169398,32.377567],[102.169384,32.377547],[102.169367,32.377481],[102.169344,32.377461],[102.169309,32.37745],[102.16929,32.377458],[102.169256,32.377492],[102.169204,32.377521],[102.169122,32.37754],[102.169104,32.377517],[102.169078,32.377458],[102.169062,32.377442],[102.169022,32.377418],[102.169013,32.377412],[102.168961,32.377401],[102.168897,32.377405],[102.168878,32.377413],[102.16884,32.377462],[102.168839,32.377493],[102.168867,32.377543],[102.169062,32.377678],[102.169121,32.377747],[102.169133,32.377781],[102.169139,32.3778],[102.169125,32.377829],[102.169089,32.377852],[102.169081,32.377878],[102.169085,32.377896],[102.169267,32.378134],[102.169366,32.378216],[102.169406,32.378264],[102.169415,32.378299],[102.169397,32.378371],[102.169417,32.378418],[102.169569,32.37854],[102.169701,32.378599],[102.16983,32.378681],[102.169923,32.378717],[102.170006,32.378733],[102.17003,32.378737],[102.170037,32.378771],[102.170043,32.378964],[102.170032,32.378983],[102.170025,32.378995],[102.169959,32.379055],[102.169948,32.379087],[102.169968,32.37916],[102.170007,32.379205],[102.170021,32.379268],[102.17007,32.379335],[102.170131,32.379421],[102.170135,32.379444],[102.170108,32.379481],[102.170086,32.379494],[102.170063,32.379508],[102.169967,32.37946],[102.169936,32.379464],[102.169896,32.379486],[102.169876,32.37952],[102.169877,32.379541],[102.169927,32.379628],[102.169959,32.37974],[102.16996,32.379769],[102.169943,32.37978],[102.169856,32.37974],[102.169819,32.379736],[102.169803,32.379745],[102.16978,32.379776],[102.169766,32.379849],[102.16978,32.379947],[102.169812,32.379992],[102.169842,32.380008],[102.169867,32.380011],[102.169991,32.379968],[102.170022,32.37997],[102.170048,32.379984],[102.170071,32.38001],[102.170084,32.380069],[102.170052,32.380128],[102.170017,32.380158],[102.16995,32.380176],[102.16985,32.380187],[102.169811,32.380203],[102.169658,32.380312],[102.169519,32.380374],[102.169498,32.380404],[102.169495,32.38043],[102.169541,32.380485],[102.169573,32.380514],[102.169801,32.38073],[102.169856,32.380804],[102.1699,32.380833],[102.169953,32.380838],[102.170001,32.380819],[102.170031,32.38079],[102.170051,32.380736],[102.170129,32.380682],[102.17019,32.380664],[102.170201,32.380664],[102.170213,32.380664],[102.170228,32.380672],[102.170243,32.380706],[102.170237,32.380746],[102.170226,32.380755],[102.170162,32.380814],[102.170111,32.380859],[102.17008,32.380928],[102.170083,32.380965],[102.170116,32.380999],[102.170136,32.381006],[102.170184,32.381022],[102.170252,32.381034],[102.1703,32.381028],[102.170313,32.381027],[102.170402,32.380993],[102.170411,32.381012],[102.17041,32.381035],[102.17038,32.38109],[102.170324,32.381115],[102.170283,32.381133],[102.170248,32.381168],[102.170223,32.381212],[102.17021,32.381261],[102.170209,32.381299],[102.170219,32.38134],[102.170238,32.381368],[102.170233,32.381406],[102.170226,32.381416],[102.170198,32.381417],[102.170163,32.381436],[102.170155,32.381529],[102.170123,32.381548],[102.170115,32.381563],[102.170151,32.381649],[102.170137,32.381729],[102.17011,32.38176],[102.170082,32.381776],[102.169969,32.381775],[102.169916,32.381785],[102.16989,32.381807],[102.16989,32.381849],[102.169986,32.382001],[102.170029,32.382121],[102.170053,32.382187],[102.170089,32.382224],[102.170129,32.382233],[102.170168,32.38223],[102.170189,32.382245],[102.170224,32.382298],[102.170233,32.382311],[102.170276,32.382424],[102.1703,32.382457],[102.170357,32.3825],[102.170403,32.382554],[102.17044,32.38257],[102.170486,32.382573],[102.170517,32.382564],[102.170571,32.382549],[102.170605,32.38254],[102.170627,32.382546],[102.170709,32.382594],[102.17077,32.382669],[102.170786,32.38271],[102.170783,32.382744],[102.170679,32.383003],[102.170641,32.383081],[102.170601,32.383166],[102.17053,32.38324],[102.170387,32.383301],[102.170305,32.383353],[102.170276,32.383384],[102.170266,32.383394],[102.170254,32.383431],[102.170263,32.383499],[102.1703,32.383573],[102.170312,32.383597],[102.170391,32.383721],[102.170437,32.383764],[102.170477,32.38378],[102.17054,32.383806],[102.170566,32.383838],[102.17057,32.383861],[102.170542,32.383997],[102.170512,32.384046],[102.170453,32.38408],[102.170379,32.384108],[102.170241,32.384142],[102.170167,32.384179],[102.170114,32.384232],[102.170094,32.384291],[102.170101,32.38434],[102.170112,32.38436],[102.170138,32.384382],[102.170284,32.384454],[102.170451,32.384503],[102.170476,32.384524],[102.170517,32.384628],[102.170615,32.384752],[102.170646,32.384821],[102.170657,32.384891],[102.170657,32.385033],[102.170606,32.385091],[102.170576,32.385106],[102.170544,32.385112],[102.170513,32.385111],[102.170474,32.385098],[102.170445,32.385062],[102.170419,32.385047],[102.170356,32.385045],[102.170285,32.385077],[102.170207,32.385147],[102.170178,32.385199],[102.170183,32.385245],[102.17031,32.385366],[102.170333,32.385419],[102.170304,32.385444],[102.170203,32.3855],[102.170209,32.385536],[102.170167,32.385569],[102.170108,32.385784],[102.170015,32.385858],[102.169944,32.385946],[102.169867,32.386081],[102.169857,32.386111],[102.16983,32.386195],[102.169838,32.386258],[102.169856,32.386286],[102.169927,32.38633],[102.169938,32.386337],[102.170088,32.386394],[102.170126,32.386438],[102.170136,32.386465],[102.170127,32.386511],[102.170082,32.386548],[102.170049,32.386559],[102.169927,32.386579],[102.169882,32.386604],[102.169861,32.386637],[102.169867,32.386677],[102.169897,32.386712],[102.169933,32.386753],[102.169999,32.386921],[102.170029,32.386963],[102.170057,32.386982],[102.170072,32.386993],[102.170143,32.387018],[102.170225,32.387013],[102.17026,32.387022],[102.17029,32.387052],[102.170294,32.387056],[102.170298,32.387088],[102.170272,32.387137],[102.170167,32.387193],[102.170015,32.387232],[102.169989,32.387242],[102.169979,32.387248],[102.169878,32.387286],[102.169648,32.387353],[102.169345,32.387398],[102.169289,32.387423],[102.169242,32.387471],[102.169239,32.387476],[102.169195,32.38756],[102.169185,32.38761],[102.169194,32.387663],[102.169162,32.38768],[102.169185,32.387711],[102.169219,32.387728],[102.169262,32.387734],[102.169325,32.387735],[102.169376,32.387748],[102.169411,32.387776],[102.169418,32.387779],[102.169447,32.387798],[102.169489,32.38785],[102.169543,32.387957],[102.169538,32.387984],[102.169525,32.387997],[102.169491,32.388002],[102.169446,32.387997],[102.16944,32.387997],[102.169433,32.387997],[102.169427,32.387998],[102.169422,32.388],[102.169389,32.388012],[102.169383,32.388014],[102.169378,32.388018],[102.169373,32.388022],[102.169369,32.388026],[102.169322,32.388089],[102.169323,32.388123],[102.169358,32.38817],[102.169454,32.38823],[102.169541,32.388284],[102.169601,32.388324],[102.16964,32.38834],[102.169652,32.388339],[102.169688,32.388329],[102.169707,32.388312],[102.169784,32.388289],[102.169816,32.38829],[102.169845,32.388303],[102.169912,32.388356],[102.169955,32.388416],[102.169967,32.388471],[102.169996,32.388564],[102.170087,32.388637],[102.170104,32.38866],[102.17012,32.388663],[102.170133,32.388674],[102.170597,32.389047],[102.170616,32.389186],[102.170643,32.38922],[102.170649,32.389249],[102.170641,32.389284],[102.170631,32.389302],[102.1707,32.389803],[102.170688,32.390169],[102.170687,32.390204],[102.170679,32.390479],[102.170661,32.390492],[102.170641,32.390528],[102.170655,32.390583],[102.170666,32.3906],[102.170642,32.390776],[102.170637,32.390813],[102.170614,32.390974],[102.170609,32.391013],[102.170568,32.391306],[102.170806,32.391705],[102.170823,32.391733],[102.170849,32.391778],[102.17169,32.391941],[102.172497,32.391815],[102.172758,32.391853],[102.17277,32.391855],[102.172826,32.391863],[102.172956,32.391882],[102.173086,32.3919],[102.173102,32.392034],[102.173109,32.392091],[102.173113,32.392123],[102.17316,32.392508],[102.173166,32.392559],[102.173187,32.392727],[102.1732,32.392827],[102.173205,32.392866],[102.173208,32.39289],[102.173214,32.392941],[102.173289,32.393519],[102.173699,32.394124],[102.173727,32.394165],[102.173734,32.394174],[102.173814,32.394176],[102.173881,32.394177],[102.174325,32.394187],[102.174762,32.393731],[102.174763,32.393681],[102.174765,32.393624],[102.174767,32.393573],[102.174777,32.393229],[102.175201,32.393203],[102.175611,32.393369],[102.175632,32.393375],[102.175651,32.393383],[102.175933,32.393496],[102.176002,32.393524],[102.176065,32.393549],[102.176244,32.393621],[102.176434,32.393693],[102.176551,32.393737],[102.176618,32.393763],[102.176719,32.393801],[102.176767,32.393819],[102.176874,32.39386],[102.1769,32.39387],[102.177247,32.394002],[102.178007,32.394204],[102.178067,32.394221],[102.178127,32.394237],[102.178118,32.394259],[102.178099,32.394304],[102.177899,32.394769],[102.177087,32.395528],[102.176606,32.396474],[102.17674,32.397624],[102.176743,32.397648],[102.176769,32.397807],[102.176776,32.397853],[102.176786,32.397915],[102.177022,32.3994],[102.177688,32.401566],[102.177736,32.403623],[102.177831,32.407833],[102.177899,32.409269],[102.178143,32.41047],[102.178906,32.411703],[102.180106,32.412881],[102.180948,32.414017],[102.181391,32.415177],[102.182047,32.415903],[102.182793,32.416292],[102.183051,32.416975],[102.183905,32.417738],[102.184315,32.418695],[102.184373,32.419374],[102.184198,32.419877],[102.183544,32.420371],[102.182488,32.420956],[102.181511,32.421577],[102.180403,32.422568],[102.180289,32.422689],[102.179495,32.423529],[102.178769,32.42507],[102.178134,32.426207],[102.17782,32.427317],[102.177956,32.428098],[102.177654,32.428802],[102.177884,32.430398],[102.178558,32.431835],[102.17904,32.432997],[102.179353,32.434493],[102.179334,32.435102],[102.179828,32.435892],[102.180074,32.43698],[102.179974,32.437621],[102.179582,32.438662],[102.178953,32.439629],[102.178165,32.440593],[102.176729,32.4431],[102.176494,32.444245],[102.176604,32.445839],[102.176963,32.447133],[102.177262,32.449069],[102.177301,32.450356],[102.17725,32.450899],[102.177122,32.452248],[102.177051,32.453262],[102.177609,32.45456],[102.178293,32.455659],[102.179957,32.457355],[102.180516,32.458653],[102.181184,32.460259],[102.182061,32.461599],[102.182871,32.462497],[102.184357,32.463512],[102.185543,32.463877],[102.186502,32.463865],[102.187653,32.46406],[102.188354,32.464651],[102.189001,32.465647],[102.189325,32.466805],[102.189451,32.467891],[102.189841,32.468837],[102.189859,32.468882],[102.189859,32.468887],[102.189853,32.470371],[102.189847,32.470541],[102.189845,32.470611],[102.189816,32.471555],[102.190121,32.472689],[102.190209,32.473019],[102.190869,32.473643],[102.191625,32.475014],[102.191566,32.475622],[102.191362,32.477039],[102.191084,32.478285],[102.190829,32.48004],[102.190431,32.482569],[102.190356,32.483147],[102.190347,32.483219],[102.190247,32.483987],[102.190245,32.484007],[102.190116,32.484999],[102.190196,32.48754],[102.190146,32.489163],[102.190308,32.49166],[102.190407,32.493101],[102.190422,32.493317],[102.190289,32.493264],[102.190041,32.493187],[102.189735,32.49318],[102.18965,32.493201],[102.189537,32.49327],[102.189418,32.493503],[102.189328,32.493713],[102.189211,32.493923],[102.189121,32.494108],[102.188996,32.494439],[102.18897,32.494508],[102.18882,32.494909],[102.18867,32.495309],[102.188546,32.495638],[102.188422,32.495968],[102.188242,32.496378],[102.188062,32.496789],[102.187883,32.4972],[102.187703,32.49761],[102.187523,32.498021],[102.187445,32.498283],[102.187368,32.498545],[102.18729,32.498807],[102.187213,32.499069],[102.187135,32.499331],[102.187058,32.499593],[102.18698,32.499855],[102.186903,32.500116],[102.186895,32.500143],[102.186803,32.500435],[102.18671,32.500727],[102.186614,32.501126],[102.186482,32.501323],[102.186351,32.501519],[102.186282,32.501581],[102.186155,32.501696],[102.18596,32.501872],[102.185764,32.502048],[102.185568,32.502224],[102.185373,32.5024],[102.185177,32.502576],[102.184977,32.502736],[102.184777,32.502897],[102.184577,32.503057],[102.184378,32.503218],[102.184178,32.503378],[102.184055,32.503476],[102.183978,32.503538],[102.183769,32.503671],[102.183561,32.503804],[102.183353,32.503936],[102.183144,32.504069],[102.182936,32.504202],[102.182728,32.504334],[102.182566,32.504537],[102.182403,32.504739],[102.182241,32.504941],[102.182079,32.505143],[102.181916,32.505345],[102.181754,32.505547],[102.181592,32.505749],[102.181429,32.505951],[102.181267,32.506153],[102.181105,32.506355],[102.180942,32.506557],[102.18078,32.506759],[102.180611,32.506935],[102.180442,32.507111],[102.180273,32.507287],[102.180104,32.507462],[102.179935,32.507638],[102.179766,32.507814],[102.179597,32.50799],[102.179428,32.508165],[102.179254,32.50831],[102.179079,32.508454],[102.178905,32.508599],[102.178731,32.508743],[102.178556,32.508887],[102.178382,32.509032],[102.178208,32.509176],[102.178033,32.509321],[102.177859,32.509465],[102.177685,32.50961],[102.177468,32.509723],[102.177251,32.509835],[102.177035,32.509948],[102.176818,32.510061],[102.176601,32.510174],[102.176384,32.510287],[102.176147,32.510417],[102.17591,32.510547],[102.175673,32.510677],[102.175436,32.510807],[102.175198,32.510937],[102.174961,32.511067],[102.174724,32.511197],[102.174487,32.511327],[102.174155,32.511563],[102.173822,32.511799],[102.17349,32.512035],[102.173305,32.512184],[102.173119,32.512332],[102.172934,32.512481],[102.172748,32.512629],[102.172694,32.512692],[102.17258,32.512823],[102.172412,32.513017],[102.172244,32.513211],[102.172076,32.513404],[102.171907,32.513598],[102.171739,32.513792],[102.171571,32.513986],[102.171403,32.514179],[102.171235,32.514373],[102.171066,32.514567],[102.170878,32.514742],[102.17069,32.514918],[102.170501,32.515094],[102.170313,32.515269],[102.170124,32.515445],[102.169936,32.515621],[102.169748,32.515796],[102.169559,32.515972],[102.169371,32.516148],[102.169182,32.516323],[102.168994,32.516499],[102.168805,32.516675],[102.168617,32.51685],[102.168429,32.517026],[102.168222,32.517192],[102.168015,32.517358],[102.167808,32.517525],[102.167601,32.517691],[102.167394,32.517857],[102.167187,32.518023],[102.166981,32.518189],[102.166774,32.518356],[102.166567,32.518522],[102.16636,32.518688],[102.166153,32.518854],[102.165946,32.51902],[102.16574,32.519187],[102.165533,32.519353],[102.165351,32.519507],[102.165169,32.519661],[102.164987,32.519815],[102.164806,32.519969],[102.164624,32.520123],[102.164442,32.520277],[102.16426,32.520431],[102.164078,32.520585],[102.163897,32.520739],[102.163715,32.520894],[102.163533,32.521048],[102.163351,32.521202],[102.16317,32.521356],[102.163048,32.521459],[102.162988,32.52151],[102.16279,32.521653],[102.162593,32.521797],[102.162395,32.52194],[102.162198,32.522084],[102.162,32.522227],[102.161803,32.522371],[102.161605,32.522514],[102.161408,32.522658],[102.16121,32.522801],[102.161013,32.522945],[102.160816,32.523088],[102.160618,32.523232],[102.160421,32.523375],[102.160223,32.523519],[102.160165,32.523555],[102.160001,32.523658],[102.159779,32.523798],[102.159557,32.523938],[102.159336,32.524077],[102.159114,32.524217],[102.158892,32.524356],[102.15867,32.524496],[102.158448,32.524635],[102.158226,32.524775],[102.158004,32.524914],[102.157782,32.525054],[102.15756,32.525193],[102.157338,32.525333],[102.1572,32.52542],[102.157117,32.525473],[102.157002,32.525578],[102.156787,32.525777],[102.156457,32.526082],[102.156128,32.526386],[102.155798,32.526691],[102.155603,32.526858],[102.155409,32.527026],[102.155214,32.527193],[102.155019,32.52736],[102.154825,32.527528],[102.15463,32.527695],[102.154436,32.527863],[102.154241,32.52803],[102.154046,32.528198],[102.153852,32.528365],[102.153549,32.528688],[102.153246,32.529011],[102.153017,32.52923],[102.152787,32.529448],[102.152614,32.529667],[102.15244,32.529887],[102.15235,32.530097],[102.15226,32.530307],[102.152196,32.530576],[102.152132,32.530845],[102.15211,32.53108],[102.152089,32.531315],[102.152024,32.531573],[102.151893,32.53177],[102.151762,32.531968],[102.151691,32.53207],[102.151631,32.532157],[102.1515,32.532346],[102.151368,32.532535],[102.151237,32.532724],[102.151106,32.532913],[102.150975,32.533102],[102.150843,32.533291],[102.150712,32.53348],[102.150581,32.533669],[102.15045,32.533858],[102.150287,32.534054],[102.150123,32.534249],[102.14996,32.534444],[102.149797,32.53464],[102.149634,32.534835],[102.14947,32.53503],[102.149307,32.535226],[102.149144,32.535421],[102.149072,32.535662],[102.148999,32.535904],[102.148927,32.536146],[102.148854,32.536387],[102.148782,32.536629],[102.148709,32.536871],[102.148555,32.537267],[102.148463,32.537572],[102.148421,32.537994],[102.148427,32.538265],[102.148433,32.538536],[102.148516,32.538767],[102.148599,32.538998],[102.148682,32.53923],[102.148766,32.539461],[102.148849,32.539693],[102.148932,32.539924],[102.149015,32.540156],[102.149098,32.540387],[102.149217,32.540613],[102.149335,32.540838],[102.149395,32.541123],[102.149455,32.541407],[102.149462,32.541785],[102.149465,32.541969],[102.149408,32.54223],[102.149351,32.54249],[102.149294,32.542751],[102.149237,32.543011],[102.14918,32.543272],[102.149123,32.543533],[102.149065,32.543793],[102.149008,32.544054],[102.148965,32.544288],[102.148921,32.544523],[102.148878,32.544757],[102.148834,32.544992],[102.148791,32.545226],[102.148747,32.545461],[102.148703,32.545695],[102.14866,32.54593],[102.148616,32.546164],[102.148573,32.546399],[102.148563,32.546676],[102.148554,32.546954],[102.148544,32.547232],[102.148535,32.547509],[102.148525,32.547787],[102.148516,32.548064],[102.148485,32.548456],[102.148485,32.548457],[102.148485,32.548457],[102.148454,32.548848],[102.148423,32.54924],[102.148388,32.549451],[102.148277,32.549748],[102.148266,32.549777],[102.148095,32.549926],[102.147923,32.550075],[102.14758,32.55035],[102.147237,32.550625],[102.147037,32.550797],[102.146879,32.550933],[102.146836,32.550969],[102.146715,32.55107],[102.146657,32.551118],[102.146479,32.551267],[102.1463,32.551416],[102.146121,32.551565],[102.146048,32.551652],[102.14587,32.551866],[102.145619,32.552166],[102.145368,32.552466],[102.145221,32.55268],[102.145113,32.552837],[102.145074,32.552894],[102.144927,32.553107],[102.14478,32.553321],[102.144633,32.553535],[102.144486,32.553749],[102.144339,32.553963],[102.144192,32.554176],[102.144142,32.554246],[102.144052,32.554371],[102.143912,32.554565],[102.143772,32.55476],[102.143633,32.554955],[102.143493,32.555149],[102.143353,32.555344],[102.143214,32.555538],[102.143074,32.555733],[102.142934,32.555928],[102.142798,32.556117],[102.142795,32.556122],[102.142746,32.556158],[102.142595,32.556271],[102.142395,32.556419],[102.142204,32.556558],[102.14209,32.556641],[102.142081,32.556648],[102.141954,32.556715],[102.141742,32.556828],[102.141582,32.556863],[102.141348,32.556914],[102.140972,32.556929],[102.140596,32.556943],[102.140177,32.556981],[102.139758,32.557019],[102.139507,32.557014],[102.139257,32.557008],[102.138978,32.557025],[102.138699,32.557042],[102.13842,32.557047],[102.138142,32.557053],[102.137905,32.557083],[102.137667,32.557113],[102.1374,32.557189],[102.137133,32.557266],[102.136737,32.557445],[102.136506,32.557699],[102.136304,32.557929],[102.136102,32.558159],[102.135934,32.558364],[102.135765,32.558568],[102.135596,32.558773],[102.135428,32.558977],[102.135259,32.559182],[102.13509,32.559386],[102.134921,32.55959],[102.134753,32.559795],[102.134585,32.559948],[102.134418,32.560101],[102.134251,32.560254],[102.134083,32.560407],[102.133916,32.56056],[102.133749,32.560713],[102.133438,32.560859],[102.133126,32.561005],[102.132816,32.56114],[102.132506,32.561274],[102.132224,32.561385],[102.131942,32.561496],[102.131606,32.561559],[102.13127,32.561622],[102.131011,32.561669],[102.130752,32.561716],[102.130493,32.561763],[102.130233,32.56181],[102.129813,32.561895],[102.129553,32.561966],[102.129293,32.562036],[102.129034,32.562107],[102.128774,32.562177],[102.128521,32.562254],[102.128268,32.56233],[102.128014,32.562407],[102.127929,32.562433],[102.127761,32.562484],[102.127508,32.56256],[102.127255,32.562637],[102.127002,32.562713],[102.126749,32.56279],[102.126524,32.562855],[102.126299,32.562921],[102.126172,32.562948],[102.125795,32.563027],[102.125542,32.563022],[102.125197,32.562955],[102.124851,32.562888],[102.124607,32.562718],[102.124335,32.562499],[102.12416,32.562331],[102.123984,32.562162],[102.123856,32.561962],[102.123728,32.561761],[102.1236,32.56156],[102.123472,32.561359],[102.123268,32.561225],[102.123064,32.56109],[102.122761,32.560966],[102.122457,32.560889],[102.122384,32.56087],[102.122153,32.560812],[102.121919,32.560747],[102.121685,32.560682],[102.12145,32.560642],[102.121215,32.560601],[102.120937,32.560559],[102.12066,32.560517],[102.120405,32.560492],[102.120151,32.560467],[102.119896,32.560441],[102.119642,32.560416],[102.119387,32.560391],[102.119133,32.560365],[102.118701,32.560367],[102.118348,32.560368],[102.118269,32.560368],[102.117906,32.560395],[102.117543,32.560422],[102.11718,32.560449],[102.116817,32.560476],[102.116466,32.560563],[102.116116,32.56065],[102.115863,32.560761],[102.115611,32.560872],[102.115359,32.560983],[102.115107,32.561095],[102.114855,32.561206],[102.114603,32.561317],[102.114353,32.561423],[102.114102,32.561529],[102.113852,32.561636],[102.113601,32.561742],[102.113351,32.561848],[102.1131,32.561954],[102.11285,32.56206],[102.112599,32.562166],[102.112396,32.562265],[102.112192,32.562364],[102.111988,32.562463],[102.111785,32.562562],[102.111581,32.562661],[102.111377,32.562759],[102.111173,32.562858],[102.11097,32.562957],[102.110766,32.563056],[102.110562,32.563155],[102.110374,32.56328],[102.110186,32.563405],[102.109997,32.563531],[102.109809,32.563656],[102.109631,32.563774],[102.10962,32.563781],[102.109533,32.563839],[102.109432,32.563906],[102.109243,32.564031],[102.109055,32.564157],[102.108827,32.564304],[102.1086,32.564452],[102.108372,32.5646],[102.108144,32.564748],[102.108007,32.564837],[102.107991,32.564847],[102.107917,32.564895],[102.107839,32.564946],[102.107689,32.565043],[102.107462,32.565191],[102.107234,32.565338],[102.106839,32.565494],[102.106443,32.565649],[102.106119,32.565795],[102.105794,32.565941],[102.105532,32.566004],[102.10527,32.566066],[102.105008,32.566129],[102.104747,32.566191],[102.104485,32.566254],[102.104223,32.566317],[102.103961,32.566379],[102.103699,32.566442],[102.103467,32.566501],[102.103236,32.56656],[102.103004,32.56662],[102.102772,32.566679],[102.102541,32.566738],[102.102309,32.566798],[102.102077,32.566857],[102.101846,32.566917],[102.101602,32.566997],[102.101358,32.567078],[102.101114,32.567159],[102.10087,32.56724],[102.100626,32.56732],[102.100382,32.567401],[102.100072,32.567524],[102.099762,32.567646],[102.099515,32.567746],[102.099268,32.567846],[102.099021,32.567946],[102.098774,32.568046],[102.098406,32.568214],[102.098039,32.568382],[102.097773,32.568447],[102.097506,32.568512],[102.097213,32.568552],[102.096919,32.568592],[102.096655,32.568575],[102.096391,32.568557],[102.095947,32.568499],[102.095726,32.568435],[102.095505,32.568372],[102.095286,32.568272],[102.095067,32.568173],[102.094833,32.568038],[102.0946,32.567903],[102.094219,32.567683],[102.093986,32.567548],[102.093754,32.567413],[102.093521,32.567278],[102.093289,32.567143],[102.09311,32.567039],[102.093056,32.567008],[102.092851,32.566889],[102.092824,32.566873],[102.092629,32.566816],[102.092492,32.566775],[102.092419,32.566754],[102.092015,32.566634],[102.091611,32.566515],[102.091223,32.566436],[102.090835,32.566357],[102.090552,32.566334],[102.090419,32.566324],[102.090002,32.566291],[102.089683,32.566271],[102.089363,32.566251],[102.089319,32.56625],[102.089057,32.566244],[102.088751,32.566238],[102.088514,32.566256],[102.088276,32.566274],[102.088039,32.566292],[102.087801,32.56631],[102.08752,32.566397],[102.087239,32.566485],[102.086985,32.566597],[102.086591,32.566729],[102.086284,32.566722],[102.086012,32.566726],[102.085739,32.566731],[102.085409,32.566607],[102.08516,32.566543],[102.084911,32.566478],[102.08465,32.566378],[102.084388,32.566277],[102.084074,32.566117],[102.083759,32.565957],[102.083542,32.565864],[102.083326,32.56577],[102.08311,32.565677],[102.082894,32.565583],[102.082677,32.56549],[102.082618,32.565464],[102.082461,32.565397],[102.082353,32.56535],[102.082245,32.565303],[102.082179,32.565275],[102.082029,32.56521],[102.081819,32.565149],[102.081767,32.565133],[102.081505,32.565057],[102.081254,32.565039],[102.081004,32.565022],[102.080863,32.565018],[102.080804,32.565016],[102.080753,32.565015],[102.080643,32.565012],[102.080614,32.565011],[102.080302,32.565098],[102.080279,32.565105],[102.080222,32.565121],[102.080139,32.56517],[102.0801,32.565193],[102.07988,32.565325],[102.079666,32.565465],[102.079453,32.565606],[102.07924,32.565747],[102.079026,32.565888],[102.078813,32.566028],[102.0786,32.566169],[102.078386,32.56631],[102.078173,32.56645],[102.077959,32.566591],[102.077746,32.566732],[102.077533,32.566872],[102.077319,32.567013],[102.077106,32.567154],[102.076892,32.567294],[102.076679,32.567435],[102.076466,32.567576],[102.076257,32.567746],[102.076049,32.567916],[102.075841,32.568085],[102.075632,32.568255],[102.075404,32.568463],[102.075342,32.568626],[102.075338,32.568735],[102.075337,32.568767],[102.075385,32.569004],[102.075502,32.569278],[102.075619,32.569551],[102.075723,32.569751],[102.075828,32.56995],[102.075933,32.57015],[102.076038,32.570349],[102.076143,32.570549],[102.076247,32.570749],[102.076352,32.570948],[102.076457,32.571148],[102.076595,32.571339],[102.076732,32.571531],[102.07687,32.571722],[102.077008,32.571914],[102.077146,32.572105],[102.077283,32.572297],[102.077582,32.572563],[102.07788,32.572782],[102.078183,32.57293],[102.078457,32.573054],[102.078732,32.573131],[102.079007,32.573255],[102.079256,32.573355],[102.079501,32.573502],[102.07973,32.573628],[102.07996,32.573754],[102.080189,32.573879],[102.080419,32.574005],[102.080649,32.574131],[102.080878,32.574257],[102.081111,32.574396],[102.081343,32.574534],[102.081575,32.574673],[102.081807,32.574812],[102.08204,32.57495],[102.082272,32.575089],[102.082515,32.575307],[102.082676,32.575476],[102.082754,32.575689],[102.082801,32.575926],[102.082797,32.576066],[102.082796,32.576124],[102.082794,32.576208],[102.082754,32.576536],[102.082628,32.576958],[102.082601,32.577016],[102.082595,32.57703],[102.082591,32.577038],[102.082587,32.577047],[102.082586,32.577048],[102.082574,32.577074],[102.082524,32.577179],[102.082508,32.577214],[102.082466,32.577302],[102.082424,32.577391],[102.08242,32.5774],[102.082239,32.577796],[102.082061,32.578169],[102.082006,32.578586],[102.081979,32.578799],[102.081952,32.579004],[102.081922,32.579271],[102.081893,32.579538],[102.081878,32.579673],[102.081863,32.579805],[102.081834,32.580073],[102.081804,32.58034],[102.081774,32.580607],[102.081745,32.580874],[102.081715,32.581141],[102.081734,32.581448],[102.081835,32.581756],[102.081991,32.582066],[102.082204,32.582385],[102.082417,32.582704],[102.08263,32.583023],[102.08284,32.583405],[102.082862,32.583454],[102.082965,32.583677],[102.082971,32.58369],[102.083016,32.583974],[102.083007,32.584244],[102.082999,32.584515],[102.082876,32.584841],[102.08277,32.585145],[102.082663,32.585448],[102.082445,32.585795],[102.082228,32.586141],[102.082049,32.586426],[102.082011,32.586487],[102.081738,32.586741],[102.081465,32.586994],[102.081121,32.587267],[102.080893,32.587427],[102.080665,32.587587],[102.08027,32.587742],[102.079962,32.587829],[102.079653,32.587916],[102.079357,32.588027],[102.079061,32.588138],[102.078789,32.588332],[102.078518,32.588526],[102.078287,32.588768],[102.078056,32.589009],[102.077931,32.589204],[102.077807,32.589399],[102.077682,32.589593],[102.077557,32.589788],[102.077385,32.589974],[102.07724,32.590134],[102.077089,32.590484],[102.077134,32.590814],[102.077199,32.591049],[102.077264,32.591284],[102.077329,32.591518],[102.077394,32.591753],[102.077459,32.591987],[102.077524,32.592222],[102.077589,32.592457],[102.077654,32.592691],[102.077719,32.592926],[102.077784,32.59316],[102.077829,32.593468],[102.077805,32.593773],[102.07778,32.594078],[102.077731,32.594313],[102.077682,32.594547],[102.077576,32.594938],[102.077471,32.595328],[102.077365,32.595718],[102.077266,32.595974],[102.077167,32.59623],[102.077167,32.596231],[102.077068,32.596487],[102.076969,32.596744],[102.076908,32.597007],[102.076846,32.597271],[102.076785,32.597534],[102.076724,32.597798],[102.076663,32.598062],[102.076601,32.598325],[102.07654,32.598589],[102.076479,32.598853],[102.076418,32.599116],[102.076356,32.59938],[102.07629,32.59972],[102.076224,32.60006],[102.076045,32.600384],[102.07587,32.600664],[102.075592,32.600937],[102.075315,32.60121],[102.075219,32.601304],[102.075119,32.601402],[102.074922,32.601594],[102.074726,32.601785],[102.074529,32.601977],[102.074333,32.602169],[102.074137,32.60236],[102.074053,32.602461],[102.073967,32.602564],[102.073798,32.602768],[102.073629,32.602972],[102.07346,32.603176],[102.073291,32.60338],[102.073121,32.603584],[102.072952,32.603788],[102.072783,32.603992],[102.072614,32.604196],[102.072444,32.6044],[102.072275,32.604604],[102.072106,32.604808],[102.071957,32.605016],[102.071808,32.605224],[102.071757,32.605296],[102.071659,32.605432],[102.07151,32.60564],[102.071361,32.605849],[102.071212,32.606057],[102.071063,32.606265],[102.070913,32.606473],[102.070764,32.606681],[102.070615,32.606889],[102.070466,32.607097],[102.070317,32.607305],[102.070074,32.607645],[102.069831,32.607985],[102.069588,32.608325],[102.069445,32.60856],[102.069301,32.608795],[102.069158,32.609029],[102.069014,32.609264],[102.068882,32.609481],[102.068871,32.609499],[102.068727,32.609734],[102.068584,32.609969],[102.06844,32.610204],[102.068307,32.610448],[102.068173,32.610692],[102.068124,32.610915],[102.068075,32.611137],[102.06808,32.611431],[102.068084,32.611726],[102.068112,32.611953],[102.068139,32.612179],[102.068145,32.612228],[102.068167,32.612406],[102.068195,32.612633],[102.068237,32.612717],[102.068326,32.612895],[102.068457,32.613158],[102.068575,32.613373],[102.068693,32.613588],[102.068853,32.613803],[102.069014,32.614018],[102.069229,32.614258],[102.06928,32.61437],[102.069359,32.614543],[102.069366,32.614653],[102.069377,32.614827],[102.069314,32.615174],[102.069309,32.615202],[102.069191,32.615412],[102.068971,32.615759],[102.068937,32.615812],[102.068927,32.615828],[102.06875,32.616106],[102.068627,32.616486],[102.068504,32.616865],[102.06838,32.617244],[102.068359,32.617479],[102.068337,32.617714],[102.068315,32.617949],[102.068294,32.618184],[102.068272,32.618419],[102.06825,32.618654],[102.068229,32.618889],[102.068207,32.619124],[102.068186,32.619547],[102.068166,32.61997],[102.068145,32.620393],[102.068124,32.620816],[102.068039,32.621038],[102.067954,32.621259],[102.067869,32.62148],[102.067784,32.621702],[102.067699,32.621923],[102.067614,32.622144],[102.067529,32.622365],[102.067444,32.622587],[102.06738,32.622698],[102.067369,32.622719],[102.06734,32.622769],[102.06732,32.622804],[102.067197,32.62302],[102.067074,32.623237],[102.067017,32.623337],[102.067013,32.623344],[102.066993,32.623378],[102.066991,32.623383],[102.06695,32.623454],[102.066827,32.623671],[102.066704,32.623888],[102.066563,32.624093],[102.066422,32.624299],[102.066281,32.624504],[102.06614,32.62471],[102.065998,32.624916],[102.065857,32.625121],[102.065797,32.625209],[102.065621,32.625452],[102.065446,32.625694],[102.065296,32.626045],[102.065181,32.626135],[102.064959,32.626108],[102.064628,32.626006],[102.064463,32.625908],[102.064276,32.625692],[102.064069,32.625407],[102.063862,32.625121],[102.063672,32.624859],[102.063501,32.624622],[102.06333,32.624385],[102.063205,32.624153],[102.06308,32.62392],[102.062955,32.623687],[102.06283,32.623455],[102.062768,32.62323],[102.062705,32.623005],[102.062606,32.62265],[102.062507,32.622271],[102.062463,32.621916],[102.062416,32.621655],[102.06234,32.621466],[102.062204,32.621275],[102.062016,32.621105],[102.061797,32.620983],[102.061482,32.620834],[102.061166,32.620685],[102.060951,32.620593],[102.060735,32.620502],[102.06052,32.620411],[102.060305,32.620319],[102.060089,32.620228],[102.059874,32.620137],[102.059658,32.620045],[102.059443,32.619954],[102.059228,32.619863],[102.059012,32.619771],[102.058797,32.61968],[102.058582,32.619588],[102.058348,32.619501],[102.058114,32.619413],[102.057852,32.619324],[102.057589,32.619235],[102.057229,32.619204],[102.056949,32.619267],[102.056722,32.619404],[102.056462,32.619657],[102.056287,32.619865],[102.056169,32.620074],[102.056051,32.620283],[102.055876,32.620537],[102.055564,32.620719],[102.055226,32.620829],[102.05496,32.620846],[102.054694,32.620863],[102.054327,32.620807],[102.053959,32.620751],[102.053569,32.620718],[102.053161,32.620708],[102.052752,32.620698],[102.052344,32.620689],[102.051953,32.620719],[102.051562,32.620749],[102.051171,32.620778],[102.050735,32.620875],[102.0503,32.620971],[102.050071,32.621028],[102.049841,32.621086],[102.049612,32.621143],[102.049382,32.6212],[102.049153,32.621258],[102.048924,32.621315],[102.048666,32.621349],[102.048409,32.621383],[102.048151,32.621417],[102.047894,32.621451],[102.047637,32.621485],[102.047379,32.621519],[102.047122,32.621553],[102.046864,32.621587],[102.046607,32.621621],[102.046349,32.621655],[102.046073,32.62167],[102.045796,32.621685],[102.045519,32.6217],[102.045242,32.621715],[102.044965,32.62173],[102.044688,32.621745],[102.044411,32.62176],[102.044135,32.621775],[102.043858,32.62179],[102.043581,32.621805],[102.043304,32.62182],[102.043027,32.621835],[102.042679,32.621815],[102.042331,32.621795],[102.041887,32.621749],[102.041509,32.62171],[102.041443,32.621704],[102.041125,32.621637],[102.040806,32.621571],[102.040378,32.621479],[102.039949,32.621386],[102.039728,32.621318],[102.039565,32.621268],[102.039517,32.621253],[102.039507,32.62125],[102.039286,32.621182],[102.039066,32.621114],[102.038845,32.621046],[102.038624,32.620979],[102.038432,32.620862],[102.038239,32.620746],[102.037854,32.620513],[102.03747,32.62028],[102.037085,32.620048],[102.036893,32.619931],[102.0367,32.619815],[102.036501,32.619676],[102.036302,32.619537],[102.036104,32.619399],[102.035905,32.61926],[102.035706,32.619121],[102.035507,32.618982],[102.035308,32.618843],[102.035109,32.618705],[102.03491,32.618566],[102.034711,32.618427],[102.03454,32.618274],[102.034369,32.61812],[102.034197,32.617967],[102.034026,32.617814],[102.033854,32.617661],[102.033683,32.617507],[102.033443,32.617172],[102.033204,32.616837],[102.032964,32.616501],[102.032936,32.616436],[102.032917,32.616392],[102.032874,32.616292],[102.032783,32.616083],[102.032692,32.615873],[102.032602,32.615664],[102.032511,32.615455],[102.032421,32.615246],[102.03233,32.615036],[102.032239,32.614827],[102.032149,32.614618],[102.032058,32.614409],[102.031964,32.614199],[102.03187,32.61399],[102.031776,32.613781],[102.031682,32.613572],[102.031588,32.613363],[102.031494,32.613153],[102.0314,32.612944],[102.031307,32.612735],[102.031213,32.612526],[102.031119,32.612317],[102.031052,32.612088],[102.030985,32.611858],[102.030919,32.611629],[102.030852,32.6114],[102.030785,32.611171],[102.030719,32.610942],[102.030698,32.610718],[102.030678,32.610494],[102.030658,32.610269],[102.030637,32.610045],[102.030617,32.609821],[102.030597,32.609597],[102.030605,32.60936],[102.030613,32.609123],[102.03062,32.608886],[102.030628,32.608649],[102.030636,32.608412],[102.030644,32.608175],[102.030652,32.607938],[102.03066,32.607701],[102.030747,32.60726],[102.030834,32.60682],[102.03092,32.606379],[102.031007,32.605938],[102.031094,32.605498],[102.031075,32.605236],[102.031027,32.605002],[102.030868,32.604739],[102.030668,32.604475],[102.030468,32.604211],[102.030197,32.60397],[102.029927,32.603728],[102.029761,32.603576],[102.029595,32.603425],[102.029473,32.603313],[102.029437,32.60328],[102.029429,32.603273],[102.029263,32.603121],[102.029097,32.60297],[102.028931,32.602818],[102.028765,32.602666],[102.028599,32.602515],[102.028433,32.602363],[102.028267,32.602212],[102.02794,32.601968],[102.027928,32.601958],[102.027614,32.601724],[102.027356,32.601381],[102.027099,32.601037],[102.026841,32.600694],[102.026544,32.600381],[102.026398,32.600177],[102.026251,32.599972],[102.026181,32.599595],[102.026105,32.599346],[102.02603,32.599097],[102.025876,32.598693],[102.025716,32.598478],[102.025528,32.598285],[102.025338,32.598139],[102.025145,32.598064],[102.024922,32.598035],[102.024631,32.598028],[102.024339,32.598021],[102.024047,32.59799],[102.023756,32.59796],[102.023534,32.597908],[102.023312,32.597856],[102.023065,32.597756],[102.022817,32.597656],[102.022612,32.597557],[102.022406,32.597457],[102.022202,32.597323],[102.021998,32.597189],[102.021793,32.597055],[102.021589,32.596921],[102.021309,32.596645],[102.021029,32.596369],[102.020748,32.596094],[102.020471,32.595766],[102.020194,32.595437],[102.019917,32.595109],[102.019686,32.59476],[102.019455,32.594411],[102.019314,32.594199],[102.019224,32.594062],[102.019111,32.593671],[102.018999,32.59328],[102.018958,32.593049],[102.018916,32.592819],[102.018902,32.592738],[102.018875,32.592589],[102.018834,32.592358],[102.018744,32.592144],[102.018653,32.59193],[102.01844,32.591619],[102.018172,32.591353],[102.017954,32.59116],[102.017655,32.590964],[102.017336,32.590769],[102.017018,32.590573],[102.016699,32.590377],[102.016441,32.590292],[102.016183,32.590206],[102.016,32.590145],[102.015999,32.590145],[102.015997,32.590145],[102.015925,32.59012],[102.015667,32.590035],[102.015408,32.589949],[102.01515,32.589864],[102.014892,32.589778],[102.014634,32.589692],[102.014344,32.589615],[102.014053,32.589537],[102.01382,32.589438],[102.013587,32.589338],[102.013287,32.589119],[102.012988,32.588876],[102.012813,32.588696],[102.012639,32.588515],[102.012455,32.588129],[102.012271,32.587743],[102.012087,32.587358],[102.011902,32.586972],[102.011655,32.586597],[102.011407,32.586222],[102.01116,32.585848],[102.010845,32.585542],[102.01053,32.585236],[102.010473,32.585181],[102.010215,32.584931],[102.009949,32.584571],[102.009761,32.584366],[102.009573,32.584161],[102.009412,32.58397],[102.009251,32.583778],[102.009046,32.583455],[102.009039,32.583443],[102.008866,32.583078],[102.008692,32.582713],[102.008519,32.582348],[102.008446,32.582132],[102.008372,32.581916],[102.008299,32.5817],[102.008225,32.581484],[102.008152,32.581268],[102.008078,32.581052],[102.008005,32.580836],[102.007931,32.58062],[102.00786,32.580379],[102.007789,32.580139],[102.007719,32.579898],[102.007648,32.579657],[102.007577,32.579416],[102.007506,32.579175],[102.007418,32.578947],[102.007331,32.57872],[102.007243,32.578492],[102.007156,32.578264],[102.007068,32.578036],[102.00698,32.577809],[102.006893,32.577581],[102.006805,32.577353],[102.006717,32.577126],[102.00663,32.576898],[102.006542,32.57667],[102.006455,32.576443],[102.006355,32.576225],[102.006255,32.576007],[102.006155,32.575789],[102.006055,32.575572],[102.005956,32.575354],[102.005856,32.575136],[102.005756,32.574918],[102.005656,32.574701],[102.005556,32.574483],[102.005522,32.574409],[102.005457,32.574265],[102.005344,32.574051],[102.005231,32.573836],[102.005118,32.573622],[102.005005,32.573407],[102.004893,32.573193],[102.00478,32.572978],[102.004667,32.572764],[102.004554,32.57255],[102.004441,32.572335],[102.004329,32.572121],[102.004051,32.571792],[102.003773,32.571462],[102.003496,32.571133],[102.003218,32.570804],[102.003002,32.570568],[102.002786,32.570332],[102.002578,32.57006],[102.002371,32.569789],[102.002204,32.569486],[102.002037,32.569183],[102.001893,32.568796],[102.001748,32.56841],[102.001672,32.568153],[102.001595,32.567896],[102.001592,32.567888],[102.001574,32.567827],[102.001518,32.567639],[102.001492,32.567551],[102.001481,32.567513],[102.001442,32.567383],[102.001365,32.567126],[102.001352,32.567084],[102.001318,32.566968],[102.001288,32.566869],[102.001171,32.566511],[102.001155,32.566461],[102.001095,32.56628],[102.001035,32.566096],[102.001028,32.566073],[102.00102,32.56605],[102.000944,32.565819],[102.000868,32.565588],[102.000793,32.565357],[102.000717,32.565126],[102.000597,32.565004],[102.000597,32.565004],[102.000478,32.564882],[102.000247,32.564647],[102.000238,32.564638],[102.000138,32.564678],[102.000062,32.564708],[102.000009,32.564736],[102.000001,32.56474],[101.999995,32.564744],[101.999941,32.564772],[101.999928,32.564779],[101.999928,32.564779],[101.999916,32.564786],[101.999876,32.564807],[101.999844,32.564824],[101.999844,32.564824],[101.999839,32.564827],[101.999708,32.564896],[101.999627,32.564939],[101.999354,32.565084],[101.99922,32.565155],[101.99922,32.565155],[101.999,32.565273],[101.998824,32.565428],[101.998647,32.565584],[101.998471,32.565739],[101.998295,32.565895],[101.998119,32.56605],[101.997943,32.566206],[101.997766,32.566361],[101.99759,32.566517],[101.997414,32.566673],[101.997238,32.566828],[101.997097,32.567004],[101.996957,32.567181],[101.996816,32.567357],[101.996676,32.567534],[101.996536,32.56771],[101.996395,32.567886],[101.996255,32.568063],[101.996115,32.568239],[101.995974,32.568415],[101.995834,32.568592],[101.995645,32.568733],[101.995456,32.568874],[101.995267,32.569015],[101.995078,32.569157],[101.994889,32.569298],[101.9947,32.569439],[101.994511,32.56958],[101.994322,32.569722],[101.994133,32.569863],[101.993944,32.570004],[101.993752,32.570135],[101.99356,32.570265],[101.993369,32.570396],[101.993177,32.570527],[101.992985,32.570657],[101.992793,32.570788],[101.992602,32.570919],[101.99241,32.571049],[101.992218,32.57118],[101.992027,32.571311],[101.991835,32.571441],[101.991643,32.571572],[101.991439,32.571696],[101.991235,32.57182],[101.99103,32.571944],[101.990826,32.572068],[101.990621,32.572192],[101.990417,32.572316],[101.990213,32.57244],[101.990008,32.572564],[101.98981,32.572672],[101.989611,32.572781],[101.989413,32.57289],[101.989214,32.572998],[101.988912,32.57314],[101.988611,32.573281],[101.988244,32.573352],[101.987897,32.573195],[101.987792,32.573011],[101.987723,32.572774],[101.987654,32.572537],[101.987652,32.572472],[101.987643,32.572227],[101.987654,32.572152],[101.987679,32.571967],[101.987714,32.571707],[101.98775,32.571448],[101.987785,32.571188],[101.987821,32.570928],[101.987834,32.570834],[101.987856,32.570668],[101.987892,32.570408],[101.987927,32.570148],[101.987963,32.569888],[101.987998,32.569628],[101.988061,32.56936],[101.988123,32.569091],[101.988185,32.568822],[101.988192,32.568791],[101.988247,32.568553],[101.98831,32.568284],[101.988372,32.568015],[101.988435,32.567746],[101.988497,32.567477],[101.988559,32.567208],[101.988622,32.566939],[101.988684,32.566687],[101.988747,32.566435],[101.98881,32.566183],[101.988873,32.565931],[101.988935,32.565678],[101.988998,32.565426],[101.989061,32.565174],[101.989124,32.564922],[101.989186,32.56467],[101.989249,32.564417],[101.989278,32.564157],[101.989306,32.563897],[101.989335,32.563638],[101.989363,32.563378],[101.989324,32.562943],[101.989284,32.562509],[101.989245,32.562075],[101.989206,32.561641],[101.989192,32.561206],[101.989177,32.560772],[101.989163,32.560338],[101.989186,32.560112],[101.98921,32.559886],[101.989233,32.55966],[101.989256,32.559434],[101.989279,32.559208],[101.989302,32.558982],[101.989326,32.558757],[101.989339,32.558624],[101.989349,32.558531],[101.989386,32.558261],[101.989423,32.557992],[101.98946,32.557722],[101.989498,32.557453],[101.989517,32.557314],[101.989535,32.557183],[101.989572,32.556914],[101.989609,32.556645],[101.989646,32.556375],[101.989684,32.556106],[101.989721,32.555836],[101.989724,32.555583],[101.989728,32.555331],[101.989732,32.555078],[101.989733,32.555017],[101.989736,32.554825],[101.989739,32.554572],[101.989741,32.554473],[101.989743,32.554319],[101.989747,32.554066],[101.989751,32.553813],[101.989754,32.553561],[101.989758,32.553308],[101.989699,32.552978],[101.989594,32.552772],[101.989468,32.55265],[101.989292,32.55253],[101.989071,32.552494],[101.988859,32.552516],[101.988802,32.552521],[101.988567,32.552545],[101.988533,32.552548],[101.988119,32.55262],[101.98783,32.552794],[101.987542,32.552967],[101.987321,32.553084],[101.9871,32.553202],[101.986879,32.553319],[101.986658,32.553437],[101.986449,32.553548],[101.986438,32.553554],[101.986335,32.553609],[101.986217,32.553672],[101.986123,32.553722],[101.985996,32.553789],[101.985775,32.553907],[101.985555,32.554024],[101.985334,32.554142],[101.985113,32.554259],[101.984892,32.554377],[101.984811,32.554406],[101.98466,32.554461],[101.984461,32.554533],[101.984434,32.554543],[101.984429,32.554545],[101.984418,32.554548],[101.984197,32.554628],[101.983965,32.554712],[101.983829,32.554762],[101.983733,32.554796],[101.983501,32.55488],[101.983269,32.554964],[101.983038,32.555048],[101.982806,32.555132],[101.982574,32.555216],[101.982342,32.5553],[101.982127,32.555378],[101.98211,32.555384],[101.982047,32.555406],[101.981905,32.555458],[101.981878,32.555467],[101.981647,32.555551],[101.98125,32.555726],[101.980853,32.5559],[101.980568,32.556026],[101.980546,32.556035],[101.980457,32.556075],[101.980247,32.556167],[101.980213,32.556182],[101.980203,32.556186],[101.980129,32.556219],[101.980107,32.556228],[101.98006,32.556249],[101.979906,32.556392],[101.979739,32.556547],[101.979548,32.556724],[101.979485,32.556783],[101.979419,32.556845],[101.979098,32.557142],[101.978778,32.55744],[101.978736,32.557471],[101.978687,32.557508],[101.978613,32.557563],[101.978565,32.557598],[101.978353,32.557756],[101.97814,32.557914],[101.977928,32.558072],[101.977715,32.558229],[101.977503,32.558387],[101.977291,32.558545],[101.977128,32.558666],[101.977078,32.558703],[101.976893,32.558837],[101.976707,32.558971],[101.976603,32.559046],[101.976601,32.559048],[101.976599,32.559049],[101.976558,32.559079],[101.976552,32.559083],[101.976522,32.559105],[101.976337,32.559239],[101.975989,32.559454],[101.975716,32.559623],[101.97564,32.55967],[101.97535,32.559791],[101.975196,32.559855],[101.975059,32.559912],[101.97485,32.559963],[101.974779,32.55998],[101.9745,32.560049],[101.974277,32.560103],[101.974054,32.560156],[101.973831,32.56021],[101.973608,32.560263],[101.973385,32.560317],[101.973162,32.560371],[101.972898,32.560533],[101.972634,32.560695],[101.972622,32.560711],[101.972621,32.560712],[101.972551,32.560806],[101.972521,32.560847],[101.972476,32.560908],[101.972469,32.560916],[101.972305,32.561138],[101.97216,32.561319],[101.972014,32.561501],[101.971985,32.561538],[101.971869,32.561682],[101.971724,32.561864],[101.971694,32.561902],[101.971683,32.561915],[101.971578,32.562046],[101.971478,32.562171],[101.971477,32.562172],[101.971448,32.562209],[101.971433,32.562227],[101.971288,32.562409],[101.971143,32.56259],[101.970946,32.562761],[101.97075,32.562931],[101.970553,32.563101],[101.970492,32.563155],[101.970479,32.563166],[101.970432,32.563207],[101.970425,32.563213],[101.970357,32.563272],[101.97016,32.563442],[101.969964,32.563613],[101.969767,32.563783],[101.96957,32.563953],[101.969417,32.564173],[101.969375,32.564233],[101.969317,32.564317],[101.969264,32.564392],[101.96921,32.56447],[101.969156,32.564548],[101.969111,32.564611],[101.968958,32.56483],[101.968858,32.564974],[101.968842,32.564997],[101.968805,32.56505],[101.968775,32.565093],[101.968652,32.565269],[101.968441,32.565564],[101.968351,32.565691],[101.96835,32.565691],[101.96835,32.565692],[101.96823,32.565859],[101.968227,32.565862],[101.968204,32.565882],[101.967897,32.566158],[101.967563,32.566436],[101.967351,32.566506],[101.96733,32.566512],[101.967208,32.566552],[101.96717,32.566564],[101.967151,32.566571],[101.966859,32.566639],[101.966817,32.566649],[101.966795,32.566655],[101.966567,32.566708],[101.966311,32.566756],[101.966055,32.566803],[101.965641,32.566897],[101.965241,32.56701],[101.965214,32.567017],[101.965017,32.567072],[101.964891,32.567108],[101.96484,32.567122],[101.964617,32.567249],[101.964575,32.567273],[101.964451,32.56739],[101.964416,32.567424],[101.964373,32.567465],[101.964263,32.567569],[101.964235,32.567596],[101.964171,32.567656],[101.964008,32.567898],[101.963844,32.56814],[101.963638,32.568325],[101.963629,32.568332],[101.963476,32.568469],[101.963474,32.568471],[101.963423,32.568516],[101.963415,32.568524],[101.963125,32.568649],[101.963113,32.568655],[101.963101,32.56866],[101.963047,32.568684],[101.962957,32.568722],[101.96295,32.568725],[101.962811,32.568786],[101.962469,32.568836],[101.9622,32.568842],[101.961857,32.56885],[101.961635,32.568893],[101.961613,32.568897],[101.961516,32.568921],[101.961438,32.569151],[101.961417,32.569214],[101.961382,32.569315],[101.961375,32.569337],[101.96136,32.569381],[101.961306,32.56962],[101.961273,32.569769],[101.96127,32.569781],[101.961266,32.569801],[101.961252,32.569859],[101.961125,32.57007],[101.961079,32.570145],[101.960997,32.57028],[101.960662,32.570578],[101.960459,32.570738],[101.960348,32.570825],[101.960255,32.570899],[101.960035,32.571001],[101.959814,32.571102],[101.959594,32.571204],[101.959373,32.571306],[101.959136,32.571519],[101.959048,32.571598],[101.959036,32.571608],[101.958999,32.571641],[101.958999,32.571641],[101.958999,32.571641],[101.958939,32.571695],[101.958939,32.571695],[101.958723,32.571889],[101.958397,32.57218],[101.958348,32.572224],[101.95827,32.572295],[101.958266,32.572299],[101.958247,32.572315],[101.958148,32.572404],[101.957899,32.572628],[101.957624,32.572862],[101.957417,32.573039],[101.957397,32.573056],[101.95735,32.573096],[101.957338,32.573101],[101.957095,32.573196],[101.956841,32.573295],[101.956562,32.573395],[101.956284,32.573494],[101.956079,32.573603],[101.955874,32.573712],[101.955623,32.573924],[101.955373,32.574137],[101.955233,32.574348],[101.955093,32.574558],[101.954957,32.574798],[101.954955,32.574801],[101.954953,32.574803],[101.954914,32.574872],[101.954907,32.574885],[101.954902,32.574894],[101.954841,32.575001],[101.954839,32.575004],[101.954799,32.575075],[101.954722,32.575211],[101.954388,32.575508],[101.95412,32.575555],[101.954099,32.575552],[101.953848,32.575521],[101.95365,32.575442],[101.953399,32.575283],[101.953109,32.57501],[101.953068,32.574971],[101.953004,32.574911],[101.952819,32.574737],[101.952563,32.574432],[101.952394,32.574146],[101.952225,32.573859],[101.952125,32.573655],[101.952025,32.573451],[101.951924,32.573246],[101.951824,32.573042],[101.951724,32.572838],[101.951624,32.572633],[101.951524,32.572429],[101.951423,32.572225],[101.951323,32.572021],[101.951223,32.571816],[101.951103,32.571598],[101.950984,32.57138],[101.950864,32.571161],[101.950745,32.570943],[101.950625,32.570725],[101.950506,32.570506],[101.95044,32.570386],[101.95042,32.57035],[101.950386,32.570288],[101.950267,32.57007],[101.950147,32.569851],[101.950028,32.569633],[101.949908,32.569414],[101.949789,32.569196],[101.949762,32.569146],[101.949669,32.568968],[101.949549,32.56874],[101.949429,32.568511],[101.949309,32.568283],[101.9493,32.568266],[101.949189,32.568055],[101.949069,32.567827],[101.948949,32.567598],[101.948829,32.56737],[101.948709,32.567142],[101.948589,32.566913],[101.948469,32.566685],[101.948348,32.566457],[101.948271,32.566239],[101.948194,32.566021],[101.948116,32.565803],[101.948039,32.565584],[101.947961,32.565366],[101.947884,32.565148],[101.947806,32.56493],[101.947729,32.564712],[101.947634,32.564493],[101.947539,32.564274],[101.947444,32.564055],[101.947349,32.563836],[101.947254,32.563617],[101.947159,32.563399],[101.947064,32.56318],[101.946969,32.562961],[101.946874,32.562742],[101.946779,32.562523],[101.946684,32.562304],[101.946589,32.562085],[101.946483,32.561855],[101.946376,32.561624],[101.94627,32.561394],[101.946164,32.561163],[101.946058,32.560933],[101.945951,32.560702],[101.945845,32.560472],[101.945739,32.560241],[101.945622,32.560044],[101.945506,32.559847],[101.945389,32.559651],[101.945272,32.559454],[101.945155,32.559257],[101.945039,32.559061],[101.944922,32.558864],[101.944873,32.558781],[101.944805,32.558667],[101.944672,32.558459],[101.94465,32.558426],[101.944538,32.558252],[101.944405,32.558044],[101.944271,32.557837],[101.944138,32.557629],[101.944004,32.557421],[101.943827,32.557252],[101.94365,32.557083],[101.943473,32.556913],[101.943295,32.556744],[101.943118,32.556574],[101.942941,32.556405],[101.942764,32.556236],[101.942642,32.556119],[101.942623,32.556101],[101.942587,32.556066],[101.942428,32.55589],[101.942269,32.555714],[101.942111,32.555537],[101.941952,32.555361],[101.941793,32.555184],[101.941635,32.555008],[101.941476,32.554832],[101.941318,32.554655],[101.941159,32.554479],[101.941072,32.554382],[101.941,32.554303],[101.940974,32.554277],[101.940893,32.554199],[101.940817,32.554125],[101.94068,32.553992],[101.940591,32.553906],[101.940538,32.553854],[101.940408,32.553729],[101.940382,32.553704],[101.94036,32.553682],[101.940228,32.553554],[101.940039,32.553372],[101.939697,32.553117],[101.939484,32.552959],[101.939437,32.552924],[101.939354,32.552863],[101.939315,32.552834],[101.939269,32.552799],[101.939012,32.552608],[101.938669,32.552354],[101.938462,32.5522],[101.938255,32.552046],[101.937891,32.55179],[101.937527,32.551534],[101.937164,32.551279],[101.937117,32.551245],[101.9368,32.551023],[101.936623,32.550893],[101.936486,32.550792],[101.936172,32.550561],[101.936145,32.550526],[101.936131,32.550508],[101.936127,32.550504],[101.936121,32.550496],[101.936031,32.550381],[101.935989,32.550327],[101.935969,32.550301],[101.935891,32.550201],[101.93575,32.550022],[101.935609,32.549842],[101.935547,32.549763],[101.935468,32.549662],[101.935328,32.549483],[101.935261,32.549413],[101.935153,32.549301],[101.934978,32.549119],[101.934804,32.548937],[101.93472,32.548849],[101.934675,32.548803],[101.934629,32.548755],[101.934574,32.548697],[101.934454,32.548573],[101.93428,32.548391],[101.934268,32.548383],[101.933916,32.548135],[101.933553,32.547879],[101.933347,32.547734],[101.933345,32.547733],[101.933343,32.547731],[101.933189,32.547623],[101.932959,32.547461],[101.932826,32.547368],[101.932788,32.547334],[101.932759,32.547308],[101.932643,32.547204],[101.932601,32.547167],[101.932579,32.547147],[101.932562,32.547132],[101.932555,32.547126],[101.93246,32.547041],[101.932277,32.546878],[101.932094,32.546715],[101.931911,32.546551],[101.931728,32.546388],[101.931698,32.546361],[101.931578,32.546255],[101.931545,32.546225],[101.931361,32.546062],[101.931178,32.545898],[101.930995,32.545735],[101.930812,32.545572],[101.930629,32.545409],[101.930496,32.545262],[101.930465,32.545228],[101.930426,32.545184],[101.930301,32.545047],[101.930147,32.544877],[101.930138,32.544866],[101.929974,32.544685],[101.92981,32.544504],[101.929646,32.544323],[101.929482,32.544142],[101.92946,32.544118],[101.929319,32.543962],[101.929155,32.543781],[101.928991,32.5436],[101.928827,32.543419],[101.928663,32.543238],[101.928598,32.543165],[101.9285,32.543057],[101.928336,32.542876],[101.928134,32.542705],[101.927932,32.542533],[101.927732,32.542364],[101.92773,32.542362],[101.927698,32.542335],[101.927528,32.54219],[101.927339,32.542019],[101.92715,32.541848],[101.927087,32.541789],[101.926876,32.541591],[101.926846,32.541563],[101.92684,32.541557],[101.926592,32.541279],[101.926384,32.540916],[101.926177,32.540553],[101.925969,32.540191],[101.925873,32.540023],[101.925851,32.539986],[101.925761,32.539828],[101.925708,32.53971],[101.925692,32.539675],[101.925664,32.539611],[101.925658,32.539599],[101.925634,32.539545],[101.925567,32.539394],[101.925469,32.539178],[101.92539,32.539001],[101.925372,32.538961],[101.92532,32.538844],[101.925275,32.538744],[101.925178,32.538528],[101.925081,32.538311],[101.925052,32.538245],[101.925035,32.538208],[101.924984,32.538094],[101.924887,32.537877],[101.92479,32.537661],[101.924714,32.537492],[101.924692,32.537444],[101.924595,32.537227],[101.924528,32.537089],[101.924477,32.536983],[101.924359,32.536739],[101.924318,32.536654],[101.924294,32.536604],[101.924241,32.536495],[101.924122,32.53625],[101.924038,32.536076],[101.924021,32.536041],[101.924004,32.536006],[101.923886,32.535762],[101.923768,32.535518],[101.923649,32.535274],[101.923531,32.535029],[101.923413,32.534785],[101.923295,32.534541],[101.923177,32.534297],[101.923081,32.53407],[101.922986,32.533843],[101.922891,32.533616],[101.922877,32.533582],[101.922796,32.533389],[101.922701,32.533162],[101.922667,32.533082],[101.922606,32.532935],[101.922511,32.532708],[101.922415,32.532481],[101.92232,32.532254],[101.922225,32.532027],[101.92213,32.531801],[101.922035,32.531574],[101.92194,32.531347],[101.921844,32.53112],[101.921746,32.530891],[101.921648,32.530663],[101.921549,32.530434],[101.921451,32.530205],[101.921352,32.529977],[101.921254,32.529748],[101.92122,32.52967],[101.921201,32.529626],[101.921156,32.52952],[101.921057,32.529291],[101.921003,32.529164],[101.920959,32.529062],[101.92086,32.528834],[101.920825,32.528751],[101.920762,32.528605],[101.920664,32.528377],[101.920565,32.528148],[101.920524,32.528054],[101.920509,32.528019],[101.920467,32.52792],[101.920457,32.527899],[101.920361,32.527692],[101.920353,32.527676],[101.920255,32.527464],[101.920211,32.52737],[101.920149,32.527237],[101.920067,32.527061],[101.920043,32.527009],[101.91995,32.526808],[101.919938,32.526782],[101.919929,32.526763],[101.919832,32.526554],[101.919726,32.526326],[101.91962,32.526099],[101.919548,32.525943],[101.919545,32.525936],[101.919527,32.525899],[101.919514,32.525871],[101.919413,32.525653],[101.919409,32.525644],[101.919395,32.525619],[101.91939,32.52561],[101.919226,32.525302],[101.919217,32.525286],[101.919203,32.52526],[101.919043,32.524961],[101.918947,32.524781],[101.91886,32.52462],[101.918856,32.52461],[101.918703,32.524292],[101.918649,32.524086],[101.918617,32.523924],[101.918604,32.523859],[101.918567,32.523667],[101.91856,32.523632],[101.918543,32.523537],[101.918517,32.523397],[101.918515,32.523385],[101.91847,32.523137],[101.918426,32.52289],[101.918381,32.522642],[101.918322,32.522363],[101.918301,32.522262],[101.918263,32.522085],[101.918202,32.521651],[101.918195,32.521453],[101.918192,32.52134],[101.918196,32.521192],[101.918204,32.520967],[101.91822,32.520718],[101.918227,32.520685],[101.918234,32.520657],[101.918263,32.520531],[101.918354,32.520301],[101.91836,32.520286],[101.918366,32.520271],[101.918458,32.52004],[101.918555,32.519795],[101.918653,32.51955],[101.918738,32.519314],[101.918824,32.519078],[101.918909,32.518842],[101.918994,32.518606],[101.919055,32.518436],[101.919067,32.518405],[101.919079,32.518369],[101.919165,32.518133],[101.91925,32.517897],[101.919312,32.517725],[101.919325,32.517688],[101.919335,32.517661],[101.91942,32.517425],[101.919506,32.517189],[101.919536,32.517082],[101.91954,32.517066],[101.919574,32.516946],[101.919643,32.516704],[101.919712,32.516461],[101.91978,32.516219],[101.919832,32.516039],[101.919849,32.515976],[101.919903,32.515785],[101.919918,32.515734],[101.919987,32.515491],[101.920034,32.515325],[101.920055,32.515249],[101.920108,32.515016],[101.920141,32.514868],[101.920177,32.514708],[101.920184,32.514678],[101.920227,32.514487],[101.920313,32.514106],[101.920311,32.513853],[101.920309,32.513599],[101.920306,32.513345],[101.920304,32.513092],[101.920346,32.512863],[101.920348,32.512855],[101.920356,32.512822],[101.920418,32.51258],[101.920425,32.512553],[101.92044,32.512494],[101.92048,32.512337],[101.920488,32.512306],[101.920535,32.512126],[101.920629,32.511757],[101.920694,32.511487],[101.92071,32.511259],[101.920704,32.511051],[101.92068,32.510972],[101.920673,32.510946],[101.920649,32.510866],[101.920514,32.510497],[101.920379,32.510128],[101.920245,32.509767],[101.920197,32.509637],[101.920177,32.509581],[101.920123,32.509438],[101.920112,32.509406],[101.920067,32.509166],[101.920023,32.508926],[101.919979,32.508686],[101.919934,32.508445],[101.91989,32.508205],[101.919846,32.507965],[101.919843,32.507701],[101.919841,32.507437],[101.919839,32.507206],[101.919839,32.507172],[101.919836,32.506908],[101.919834,32.506857],[101.919834,32.50683],[101.919823,32.506515],[101.91986,32.506182],[101.919927,32.505974],[101.920045,32.505764],[101.920075,32.50569],[101.920085,32.505664],[101.920112,32.505596],[101.920091,32.505348],[101.920071,32.5051],[101.920051,32.505037],[101.919962,32.50475],[101.919852,32.5044],[101.919772,32.504174],[101.919691,32.503948],[101.919546,32.503641],[101.919528,32.503603],[101.919402,32.503333],[101.91939,32.503313],[101.919292,32.503158],[101.919273,32.503128],[101.919168,32.50296],[101.919134,32.502905],[101.918934,32.502588],[101.918899,32.502531],[101.918701,32.502215],[101.91861,32.501973],[101.91852,32.501732],[101.918463,32.50158],[101.918435,32.501506],[101.918429,32.50149],[101.918339,32.501249],[101.918248,32.501008],[101.918158,32.500766],[101.918067,32.500525],[101.917977,32.500283],[101.917936,32.500122],[101.917877,32.499887],[101.917818,32.499653],[101.917777,32.499492],[101.917759,32.499418],[101.917729,32.4993],[101.917722,32.499272],[101.9177,32.499184],[101.917641,32.49895],[101.917623,32.498879],[101.917616,32.498851],[101.917582,32.498715],[101.917553,32.498599],[101.917478,32.498292],[101.917458,32.498211],[101.917451,32.498185],[101.91744,32.498137],[101.917406,32.497999],[101.917406,32.497998],[101.917401,32.497979],[101.917374,32.497868],[101.917358,32.497804],[101.917342,32.497738],[101.917308,32.497601],[101.91727,32.497445],[101.917149,32.497247],[101.917029,32.497049],[101.916969,32.496952],[101.916908,32.496852],[101.916788,32.496654],[101.916667,32.496457],[101.916546,32.496259],[101.916402,32.495972],[101.916258,32.495685],[101.916098,32.495296],[101.915992,32.49505],[101.915958,32.494751],[101.915923,32.494451],[101.915928,32.494217],[101.915933,32.493984],[101.915938,32.493751],[101.915942,32.493549],[101.915942,32.493517],[101.915922,32.493269],[101.915901,32.493021],[101.915867,32.49269],[101.915762,32.492464],[101.915657,32.492239],[101.915608,32.492148],[101.915593,32.492121],[101.91554,32.492024],[101.915422,32.49181],[101.915304,32.491596],[101.915186,32.491382],[101.915063,32.49108],[101.915052,32.491054],[101.915035,32.491012],[101.914926,32.490744],[101.914884,32.490642],[101.914734,32.490272],[101.914652,32.490025],[101.914571,32.489779],[101.914489,32.489532],[101.914408,32.489285],[101.914349,32.488955],[101.91429,32.488666],[101.914253,32.488315],[101.914247,32.4881],[101.914246,32.488072],[101.914245,32.488045],[101.914239,32.487842],[101.914237,32.487776],[101.914241,32.487571],[101.914241,32.487534],[101.914246,32.487292],[101.91425,32.48705],[101.914255,32.486808],[101.914259,32.4866],[101.914259,32.486567],[101.91426,32.486554],[101.91426,32.486545],[101.914264,32.486338],[101.914264,32.486325],[101.91425,32.486222],[101.914238,32.486134],[101.914232,32.486088],[101.914202,32.485869],[101.914199,32.48585],[101.914196,32.485839],[101.914194,32.485832],[101.914137,32.485651],[101.914137,32.485651],[101.914124,32.48561],[101.914048,32.485369],[101.913973,32.485128],[101.913897,32.484887],[101.913833,32.484659],[101.913768,32.484431],[101.913704,32.484202],[101.913639,32.483974],[101.913575,32.483746],[101.91351,32.483517],[101.913446,32.483289],[101.913381,32.483061],[101.913317,32.482833],[101.913252,32.482604],[101.913188,32.482376],[101.913123,32.482148],[101.913034,32.481922],[101.912945,32.481696],[101.912855,32.481471],[101.912766,32.481245],[101.912677,32.481019],[101.912588,32.480794],[101.912498,32.480568],[101.912409,32.480342],[101.91232,32.480116],[101.912231,32.479891],[101.912142,32.479665],[101.912052,32.479439],[101.91195,32.479216],[101.911847,32.478992],[101.911744,32.478769],[101.911641,32.478545],[101.911538,32.478322],[101.911436,32.478098],[101.911339,32.477887],[101.911333,32.477874],[101.911322,32.477851],[101.911266,32.477728],[101.91123,32.477651],[101.911127,32.477427],[101.911025,32.477204],[101.910969,32.477064],[101.910939,32.47699],[101.910934,32.476976],[101.910854,32.476777],[101.910769,32.476563],[101.910683,32.476349],[101.910598,32.476136],[101.910513,32.475922],[101.910431,32.475717],[101.910427,32.475709],[101.910342,32.475495],[101.910296,32.47538],[101.910257,32.475281],[101.910171,32.475068],[101.910147,32.474912],[101.910141,32.474872],[101.910121,32.474749],[101.910102,32.474625],[101.910092,32.474564],[101.910032,32.474182],[101.909963,32.473739],[101.909893,32.473296],[101.90985,32.472849],[101.909806,32.472403],[101.909763,32.471956],[101.909719,32.471509],[101.909675,32.471063],[101.909676,32.47071],[101.909677,32.470407],[101.909677,32.470358],[101.909669,32.470089],[101.90966,32.469978],[101.909648,32.469841],[101.909628,32.469593],[101.909606,32.469282],[101.909596,32.469139],[101.909584,32.468972],[101.909527,32.468735],[101.90951,32.468665],[101.90947,32.468499],[101.909418,32.468282],[101.909413,32.468263],[101.909409,32.468244],[101.90936,32.468042],[101.909356,32.468027],[101.909264,32.467822],[101.909172,32.467617],[101.909079,32.467412],[101.908987,32.467207],[101.908895,32.467002],[101.908891,32.466995],[101.908882,32.466974],[101.90887,32.466947],[101.908849,32.4669],[101.908836,32.466871],[101.908809,32.466812],[101.908802,32.466797],[101.908734,32.466646],[101.908732,32.466641],[101.90871,32.466592],[101.908617,32.466387],[101.90856,32.466259],[101.908556,32.46625],[101.908537,32.466208],[101.908527,32.466186],[101.908526,32.466184],[101.908525,32.466182],[101.908498,32.466122],[101.908433,32.465977],[101.908356,32.465737],[101.908278,32.465497],[101.908201,32.465257],[101.908124,32.465017],[101.908047,32.464776],[101.907969,32.464536],[101.907915,32.464281],[101.90787,32.464069],[101.90786,32.464026],[101.907855,32.464003],[101.907845,32.463955],[101.907823,32.46385],[101.907806,32.463771],[101.907751,32.463516],[101.907697,32.463261],[101.907642,32.463006],[101.907621,32.462904],[101.907616,32.462881],[101.907607,32.462838],[101.907605,32.462828],[101.907588,32.46275],[101.907533,32.462495],[101.907494,32.462311],[101.907479,32.46224],[101.907476,32.462228],[101.907424,32.461985],[101.90738,32.461793],[101.907367,32.461738],[101.907357,32.461694],[101.907338,32.461613],[101.90731,32.461491],[101.907275,32.461159],[101.907252,32.460936],[101.907238,32.460808],[101.907228,32.460456],[101.907245,32.460207],[101.907282,32.459853],[101.907344,32.459521],[101.907346,32.459505],[101.907386,32.45925],[101.907372,32.458858],[101.907372,32.458858],[101.907372,32.458858],[101.907353,32.458718],[101.907316,32.458454],[101.907313,32.458427],[101.907313,32.458427],[101.907264,32.45807],[101.907256,32.458017],[101.907211,32.457686],[101.907168,32.457452],[101.907126,32.457217],[101.907107,32.457113],[101.907083,32.456983],[101.90706,32.456854],[101.907041,32.456748],[101.906998,32.456514],[101.906956,32.456279],[101.906913,32.456045],[101.906871,32.455811],[101.906829,32.455576],[101.906786,32.455342],[101.906786,32.455342],[101.906744,32.455107],[101.906743,32.455105],[101.906743,32.455103],[101.906701,32.454873],[101.906659,32.454639],[101.906616,32.454404],[101.906572,32.454162],[101.906527,32.45392],[101.906497,32.453758],[101.906497,32.453755],[101.906494,32.453738],[101.906483,32.453678],[101.906464,32.453578],[101.906464,32.453576],[101.906438,32.453435],[101.906438,32.453433],[101.906438,32.453432],[101.906425,32.453361],[101.906394,32.453193],[101.906349,32.452951],[101.906305,32.452709],[101.90626,32.452467],[101.906252,32.452424],[101.906247,32.452397],[101.906239,32.45235],[101.906229,32.452296],[101.906216,32.452225],[101.906171,32.451983],[101.906157,32.451905],[101.906144,32.451837],[101.906127,32.45174],[101.906107,32.451634],[101.906105,32.451621],[101.906101,32.451602],[101.9061,32.451594],[101.906082,32.451498],[101.906064,32.451245],[101.906045,32.450993],[101.906026,32.45074],[101.906008,32.450487],[101.905989,32.450234],[101.90597,32.449982],[101.905952,32.449729],[101.905933,32.449476],[101.905914,32.449223],[101.905896,32.448971],[101.905877,32.448718],[101.905868,32.448597],[101.905868,32.448595],[101.905868,32.448593],[101.905858,32.448465],[101.90584,32.448212],[101.905821,32.447959],[101.905832,32.447525],[101.905844,32.447091],[101.905855,32.446657],[101.905862,32.44638],[101.905866,32.446223],[101.905902,32.445984],[101.905937,32.445744],[101.905972,32.445505],[101.906007,32.445266],[101.906042,32.445027],[101.906078,32.444788],[101.906113,32.444549],[101.906148,32.444309],[101.906196,32.444078],[101.906243,32.443846],[101.906291,32.443615],[101.906338,32.443383],[101.906386,32.443151],[101.906433,32.44292],[101.906481,32.442688],[101.906529,32.442457],[101.90656,32.442192],[101.906591,32.441927],[101.906623,32.441663],[101.906654,32.441398],[101.906674,32.441229],[101.906686,32.441133],[101.906717,32.440869],[101.906748,32.440604],[101.90678,32.440339],[101.906784,32.440101],[101.906789,32.439862],[101.906793,32.439624],[101.906798,32.439385],[101.906803,32.439147],[101.906807,32.438908],[101.906812,32.43867],[101.906816,32.438431],[101.906821,32.438193],[101.906826,32.437954],[101.90683,32.437716],[101.906835,32.437477],[101.906799,32.437217],[101.906763,32.436957],[101.906727,32.436697],[101.906691,32.436437],[101.906655,32.436176],[101.906619,32.435916],[101.906583,32.435656],[101.906547,32.435396],[101.906502,32.435143],[101.906457,32.43489],[101.906412,32.434637],[101.906367,32.434384],[101.906322,32.434132],[101.906278,32.433879],[101.906233,32.433626],[101.906188,32.433373],[101.906155,32.43319],[101.906143,32.43312],[101.906098,32.432867],[101.906053,32.432615],[101.906008,32.432362],[101.905975,32.432087],[101.905942,32.431813],[101.905909,32.431538],[101.905876,32.431263],[101.905843,32.430989],[101.90581,32.430714],[101.905847,32.430361],[101.905884,32.430007],[101.906031,32.42959],[101.906178,32.429172],[101.906285,32.428949],[101.906392,32.428725],[101.906498,32.428501],[101.906605,32.428278],[101.906712,32.428055],[101.906712,32.428054],[101.906713,32.428052],[101.906716,32.428046],[101.906819,32.42783],[101.906945,32.427673],[101.906955,32.427661],[101.906986,32.427623],[101.90715,32.427418],[101.907315,32.427213],[101.907479,32.427009],[101.907643,32.426804],[101.907808,32.426599],[101.907972,32.426395],[101.908155,32.426209],[101.908337,32.426024],[101.90839,32.42597],[101.908403,32.425957],[101.90846,32.425899],[101.90847,32.425889],[101.90852,32.425838],[101.908702,32.425653],[101.908885,32.425467],[101.909067,32.425282],[101.90925,32.425097],[101.909432,32.424911],[101.909615,32.424726],[101.909797,32.42454],[101.90998,32.424355],[101.910162,32.42417],[101.910378,32.424023],[101.910593,32.423877],[101.910809,32.42373],[101.911024,32.423584],[101.91124,32.423437],[101.911455,32.42329],[101.911664,32.423182],[101.911873,32.423073],[101.912081,32.422965],[101.91229,32.422856],[101.912499,32.422748],[101.912707,32.422639],[101.912892,32.422532],[101.912935,32.422506],[101.912952,32.422496],[101.913026,32.422454],[101.913164,32.422373],[101.913173,32.422368],[101.913392,32.42224],[101.91362,32.422107],[101.913848,32.421974],[101.914018,32.421875],[101.914076,32.421841],[101.914385,32.421551],[101.914694,32.42126],[101.915003,32.420969],[101.915174,32.420753],[101.915344,32.420536],[101.915515,32.42032],[101.915685,32.420104],[101.91582,32.419708],[101.915824,32.419459],[101.915828,32.419209],[101.915793,32.418899],[101.915761,32.418672],[101.915619,32.418267],[101.915476,32.417861],[101.915394,32.417627],[101.915333,32.417456],[101.915191,32.417051],[101.915094,32.416787],[101.915009,32.416559],[101.914925,32.41633],[101.914841,32.416102],[101.914757,32.415873],[101.914673,32.415645],[101.914589,32.415416],[101.914505,32.415188],[101.914484,32.415132],[101.914459,32.415065],[101.914453,32.415048],[101.914421,32.41496],[101.914336,32.414731],[101.914252,32.414503],[101.914045,32.414145],[101.913838,32.413787],[101.91366,32.413574],[101.913482,32.41336],[101.913292,32.413177],[101.913102,32.412995],[101.912919,32.412649],[101.912736,32.412303],[101.912692,32.412071],[101.912648,32.411838],[101.912603,32.411606],[101.912559,32.411373],[101.912453,32.411066],[101.912346,32.410799],[101.912214,32.410532],[101.912024,32.41035],[101.911835,32.410168],[101.911637,32.41003],[101.911439,32.409891],[101.911242,32.409753],[101.911044,32.409614],[101.910846,32.409476],[101.910649,32.409337],[101.910451,32.409199],[101.910253,32.40906],[101.910056,32.408922],[101.909858,32.408783],[101.909636,32.408618],[101.909414,32.408453],[101.909192,32.408287],[101.908971,32.408122],[101.908749,32.407956],[101.908527,32.407791],[101.908305,32.407626],[101.908248,32.407583],[101.908083,32.40746],[101.907861,32.407295],[101.907691,32.407168],[101.907666,32.407149],[101.90764,32.407129],[101.907418,32.406964],[101.907196,32.406799],[101.907012,32.406649],[101.906827,32.4065],[101.906643,32.40635],[101.906459,32.406201],[101.906275,32.406051],[101.90609,32.405902],[101.905906,32.405752],[101.905722,32.405603],[101.905538,32.405453],[101.905353,32.405304],[101.905169,32.405155],[101.904985,32.405005],[101.904761,32.404896],[101.904537,32.404787],[101.904254,32.404731],[101.903971,32.404676],[101.903676,32.40463],[101.903522,32.404606],[101.903381,32.404585],[101.903252,32.404574],[101.903147,32.404565],[101.903098,32.40456],[101.902975,32.40455],[101.902816,32.404536],[101.902547,32.404553],[101.902279,32.40457],[101.902106,32.404607],[101.902013,32.404627],[101.901747,32.404685],[101.901584,32.40472],[101.901517,32.404734],[101.901481,32.404742],[101.901467,32.404745],[101.901215,32.404799],[101.901112,32.40484],[101.900913,32.40492],[101.900751,32.404985],[101.90061,32.405041],[101.900283,32.405132],[101.899955,32.405223],[101.899724,32.405259],[101.899493,32.405296],[101.899066,32.405336],[101.898639,32.405377],[101.898395,32.405393],[101.89815,32.405409],[101.897796,32.405438],[101.897442,32.405467],[101.897174,32.405504],[101.896906,32.405542],[101.896555,32.405622],[101.896204,32.405702],[101.89596,32.40576],[101.895717,32.405817],[101.895461,32.405875],[101.895206,32.405932],[101.894891,32.406002],[101.894475,32.406012],[101.894179,32.405956],[101.893907,32.40588],[101.893683,32.40575],[101.893459,32.405621],[101.893182,32.405379],[101.892964,32.405073],[101.892747,32.404767],[101.892565,32.404459],[101.89246,32.404208],[101.892354,32.403957],[101.892248,32.403705],[101.892142,32.403454],[101.892036,32.403202],[101.89193,32.402951],[101.891824,32.402699],[101.891719,32.402448],[101.891593,32.402233],[101.891467,32.402019],[101.891341,32.401804],[101.891215,32.40159],[101.89109,32.401376],[101.890964,32.401161],[101.890838,32.400947],[101.890712,32.400732],[101.890586,32.400518],[101.890461,32.400303],[101.890335,32.400089],[101.890209,32.399875],[101.890046,32.399655],[101.889883,32.399436],[101.88972,32.399217],[101.889557,32.398997],[101.889394,32.398778],[101.889231,32.398559],[101.889068,32.39834],[101.888905,32.39812],[101.888569,32.397831],[101.888233,32.397542],[101.887897,32.397253],[101.887703,32.397107],[101.887509,32.396961],[101.887314,32.396815],[101.88712,32.39667],[101.886908,32.39653],[101.886696,32.39639],[101.886435,32.396271],[101.886175,32.396152],[101.885903,32.396065],[101.885631,32.395978],[101.885368,32.395911],[101.885335,32.395902],[101.885244,32.395878],[101.885124,32.395848],[101.885086,32.395838],[101.885039,32.395826],[101.884791,32.395738],[101.884544,32.39565],[101.884221,32.395523],[101.883899,32.395396],[101.883588,32.395217],[101.883278,32.395038],[101.883141,32.394839],[101.883004,32.394641],[101.882867,32.394442],[101.88273,32.394243],[101.882614,32.394041],[101.882497,32.393839],[101.882381,32.393636],[101.882264,32.393434],[101.882148,32.393231],[101.882031,32.393029],[101.881914,32.392826],[101.881798,32.392624],[101.881681,32.392421],[101.881565,32.392219],[101.881439,32.392003],[101.881313,32.391787],[101.881188,32.391571],[101.881062,32.391355],[101.880936,32.391139],[101.880883,32.391048],[101.88081,32.390924],[101.880801,32.390908],[101.88074,32.390803],[101.880685,32.390708],[101.880559,32.390492],[101.880433,32.390276],[101.88035,32.390133],[101.880307,32.39006],[101.880182,32.389844],[101.880056,32.389628],[101.879877,32.389373],[101.879697,32.389119],[101.879517,32.38896],[101.879337,32.388802],[101.879156,32.388644],[101.878976,32.388485],[101.878796,32.388327],[101.878616,32.388169],[101.878316,32.38801],[101.87797,32.387893],[101.877674,32.387817],[101.877256,32.387745],[101.876819,32.387693],[101.876814,32.387693],[101.876771,32.387682],[101.876717,32.387668],[101.876703,32.387664],[101.876592,32.387635],[101.876371,32.387578],[101.876167,32.387479],[101.875798,32.387301],[101.875586,32.387171],[101.875375,32.387041],[101.87516,32.38687],[101.874946,32.386698],[101.874733,32.386516],[101.87452,32.386334],[101.874318,32.386142],[101.874116,32.385951],[101.873978,32.385827],[101.873919,32.385773],[101.87389,32.385748],[101.873848,32.38571],[101.873665,32.385545],[101.873337,32.385264],[101.873105,32.385161],[101.873026,32.385126],[101.873018,32.385123],[101.873018,32.385122],[101.872938,32.385087],[101.872831,32.385039],[101.872716,32.384988],[101.872456,32.38489],[101.872196,32.384793],[101.871854,32.384545],[101.871852,32.384543],[101.871849,32.384542],[101.871772,32.384486],[101.871772,32.384486],[101.871511,32.384297],[101.871169,32.384049],[101.871085,32.384],[101.870949,32.38392],[101.870897,32.38389],[101.870729,32.383791],[101.870621,32.383728],[101.870554,32.383688],[101.870509,32.383662],[101.870289,32.383533],[101.870069,32.383404],[101.869848,32.383275],[101.869628,32.383146],[101.869408,32.383017],[101.869188,32.382888],[101.868968,32.382759],[101.868748,32.38263],[101.868528,32.3825],[101.868308,32.382371],[101.868087,32.382242],[101.867867,32.382113],[101.867647,32.381984],[101.867597,32.381959],[101.867468,32.381894],[101.867443,32.381881],[101.867371,32.381846],[101.867264,32.381792],[101.867238,32.381779],[101.867033,32.381676],[101.866829,32.381573],[101.866624,32.38147],[101.866419,32.381368],[101.866215,32.381265],[101.86601,32.381162],[101.865805,32.381059],[101.865601,32.380957],[101.865367,32.3809],[101.865132,32.380843],[101.864895,32.380828],[101.864658,32.380813],[101.864422,32.380797],[101.864185,32.380782],[101.863948,32.380766],[101.863711,32.380751],[101.863416,32.380717],[101.863121,32.380661],[101.862895,32.380479],[101.862765,32.380243],[101.862635,32.380008],[101.862501,32.379638],[101.862444,32.379479],[101.862443,32.379474],[101.86242,32.379412],[101.862414,32.379393],[101.862389,32.379323],[101.86234,32.379186],[101.862336,32.379073],[101.862336,32.37907],[101.862332,32.378937],[101.862324,32.378689],[101.862316,32.37844],[101.862309,32.378192],[101.862301,32.377943],[101.862293,32.377695],[101.862285,32.377447],[101.862277,32.377198],[101.862294,32.376938],[101.862312,32.376679],[101.862329,32.376419],[101.862346,32.376159],[101.862363,32.375899],[101.862381,32.37564],[101.862398,32.37538],[101.862415,32.37512],[101.862427,32.374938],[101.862439,32.3747],[101.862451,32.374461],[101.862463,32.374223],[101.862475,32.373984],[101.862487,32.373745],[101.862493,32.373626],[101.862499,32.373507],[101.862503,32.373436],[101.862511,32.373268],[101.862524,32.37303],[101.862536,32.372791],[101.862548,32.372552],[101.862559,32.37212],[101.862565,32.371876],[101.86257,32.371687],[101.862579,32.37132],[101.862581,32.371255],[101.862592,32.370822],[101.862646,32.370603],[101.862701,32.370384],[101.862723,32.370326],[101.862783,32.370172],[101.862814,32.370091],[101.862879,32.36984],[101.862888,32.369811],[101.862937,32.36965],[101.862968,32.369548],[101.863084,32.369339],[101.863149,32.369094],[101.863215,32.368849],[101.86328,32.368603],[101.863333,32.368405],[101.863346,32.368358],[101.863373,32.368131],[101.863377,32.368101],[101.863409,32.367845],[101.863439,32.367599],[101.863497,32.367259],[101.863552,32.366935],[101.863553,32.366933],[101.863555,32.36692],[101.863613,32.36658],[101.86364,32.366294],[101.863666,32.366008],[101.863667,32.365995],[101.863623,32.365553],[101.863578,32.36511],[101.863534,32.364668],[101.863489,32.364226],[101.863466,32.364002],[101.863387,32.363576],[101.863307,32.363151],[101.863227,32.362725],[101.863148,32.3623],[101.863068,32.361874],[101.862977,32.361468],[101.862899,32.361123],[101.862827,32.360804],[101.862821,32.360779],[101.862757,32.360492],[101.862693,32.360206],[101.862693,32.35993],[101.862693,32.359654],[101.862697,32.359392],[101.862702,32.35913],[101.862702,32.358972],[101.862702,32.358683],[101.862636,32.358369],[101.862588,32.358102],[101.862626,32.357769],[101.862759,32.357455],[101.862869,32.357231],[101.862978,32.357008],[101.863035,32.356684],[101.863026,32.356427],[101.862908,32.355998],[101.862855,32.355805],[101.862848,32.355787],[101.862848,32.355786],[101.862848,32.355786],[101.862844,32.355774],[101.862771,32.355566],[101.86276,32.355533],[101.862687,32.355327],[101.862606,32.355138],[101.862606,32.355138],[101.862606,32.355138],[101.862444,32.354762],[101.862282,32.354387],[101.86222,32.354295],[101.862181,32.354238],[101.862043,32.354056],[101.861905,32.353875],[101.861866,32.353832],[101.861791,32.35375],[101.86152,32.35345],[101.861352,32.353286],[101.861184,32.353122],[101.861006,32.352969],[101.860827,32.352815],[101.860513,32.352615],[101.860335,32.352458],[101.86027,32.352244],[101.860263,32.352016],[101.860227,32.351701],[101.860162,32.351579],[101.860121,32.351503],[101.860042,32.351412],[101.859817,32.351167],[101.859593,32.350922],[101.859365,32.350659],[101.859192,32.35046],[101.859019,32.350261],[101.858847,32.350062],[101.858674,32.349863],[101.858448,32.349511],[101.858221,32.349159],[101.857995,32.348808],[101.857768,32.348456],[101.857588,32.348295],[101.857407,32.348133],[101.857226,32.347972],[101.857046,32.34781],[101.856865,32.347648],[101.856685,32.347487],[101.856367,32.347217],[101.856049,32.346948],[101.855731,32.346679],[101.8555,32.346345],[101.85527,32.346012],[101.855039,32.345679],[101.854922,32.345464],[101.854819,32.345274],[101.854805,32.345249],[101.854689,32.345034],[101.854572,32.344819],[101.854437,32.34457],[101.854326,32.344477],[101.854012,32.344242],[101.853892,32.344132],[101.853822,32.344069],[101.853777,32.344028],[101.853591,32.343746],[101.853406,32.343464],[101.853313,32.343232],[101.85322,32.343],[101.853077,32.342714],[101.852934,32.342429],[101.852791,32.342125],[101.852749,32.342036],[101.852656,32.341615],[101.852649,32.341237],[101.852642,32.340858],[101.852599,32.34068],[101.852549,32.340516],[101.852492,32.340409],[101.852406,32.340209],[101.852406,32.340002],[101.852392,32.339873],[101.852335,32.339709],[101.852381,32.339416],[101.852428,32.339124],[101.852499,32.338867],[101.852497,32.338843],[101.85247,32.338574],[101.852473,32.338228],[101.852475,32.337882],[101.852404,32.337654],[101.852379,32.337504],[101.852297,32.337083],[101.852254,32.336958],[101.852198,32.336881],[101.852198,32.33688],[101.852197,32.336879],[101.852111,32.336804],[101.851942,32.336622],[101.851785,32.336343],[101.851627,32.336063],[101.851514,32.335801],[101.851478,32.335605],[101.851556,32.335369]]]]},"properties":{"cp":[102.04239391087305,32.455224568167694],"code":"513233203","name":"查尔玛乡","level":"street","center":[102.04239391087305,32.455224568167694],"fullCode":"513233203000","fullName":"四川省阿坝藏族羌族自治州红原县查尔玛乡","acreageMu":1092920.26,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[101.921,32.5029]}},{"id":"513233204","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.485374,33.088931],[102.485341,33.088785],[102.485348,33.088537],[102.485356,33.088289],[102.485367,33.087863],[102.485377,33.087532],[102.485397,33.087205],[102.485417,33.086878],[102.485309,33.086675],[102.485202,33.086471],[102.48493,33.086183],[102.484751,33.086002],[102.484573,33.08582],[102.484395,33.085675],[102.484216,33.085529],[102.484007,33.085442],[102.483798,33.085355],[102.48338,33.085251],[102.483112,33.085246],[102.482844,33.085241],[102.482449,33.08528],[102.482155,33.085262],[102.48186,33.085245],[102.481496,33.085167],[102.481246,33.08502],[102.481032,33.08466],[102.480954,33.084446],[102.480876,33.084231],[102.480797,33.084005],[102.480719,33.083778],[102.480506,33.083457],[102.480449,33.083371],[102.480314,33.083155],[102.48018,33.08294],[102.480046,33.082712],[102.479912,33.082485],[102.479791,33.082293],[102.47967,33.082102],[102.479455,33.081718],[102.479351,33.081456],[102.479162,33.08113],[102.479138,33.080902],[102.479113,33.080675],[102.479089,33.080447],[102.479064,33.080219],[102.479039,33.079992],[102.479015,33.079764],[102.47899,33.079537],[102.478966,33.079309],[102.478941,33.079082],[102.478916,33.078854],[102.478894,33.078579],[102.478871,33.078305],[102.478849,33.07803],[102.478826,33.077756],[102.478803,33.077481],[102.478781,33.077207],[102.478758,33.076932],[102.478735,33.076658],[102.478713,33.076383],[102.47869,33.076109],[102.478667,33.075834],[102.478645,33.075559],[102.478596,33.075299],[102.478548,33.075038],[102.478502,33.074634],[102.478427,33.074325],[102.478354,33.074104],[102.478281,33.073883],[102.478208,33.073662],[102.478135,33.073441],[102.478062,33.07322],[102.477988,33.072999],[102.477907,33.07279],[102.477826,33.07258],[102.477745,33.07237],[102.477664,33.07216],[102.477582,33.071951],[102.477501,33.071741],[102.47742,33.071531],[102.477339,33.071321],[102.477257,33.071111],[102.477176,33.070902],[102.477092,33.070676],[102.477007,33.070449],[102.476923,33.070223],[102.476839,33.069997],[102.476755,33.069771],[102.47667,33.069545],[102.476586,33.069319],[102.476502,33.069093],[102.476417,33.068867],[102.476333,33.068641],[102.47625,33.068381],[102.476167,33.06812],[102.476084,33.06786],[102.476001,33.0676],[102.475918,33.06734],[102.475835,33.06708],[102.475752,33.066819],[102.475669,33.066559],[102.475586,33.066299],[102.475503,33.066039],[102.47542,33.065779],[102.475337,33.065518],[102.475254,33.065258],[102.475171,33.064998],[102.475042,33.064577],[102.474914,33.064157],[102.474785,33.063736],[102.474694,33.063427],[102.474604,33.063117],[102.474633,33.062859],[102.474662,33.0626],[102.474691,33.062341],[102.47472,33.062082],[102.474788,33.061843],[102.474856,33.061604],[102.474924,33.061364],[102.474992,33.061125],[102.47508,33.060812],[102.475292,33.060436],[102.475504,33.060061],[102.475702,33.059694],[102.475901,33.059327],[102.476099,33.05896],[102.476316,33.058571],[102.476533,33.058181],[102.476623,33.057788],[102.476713,33.057395],[102.476716,33.057121],[102.476719,33.056847],[102.476682,33.05653],[102.476644,33.056213],[102.476607,33.055896],[102.476555,33.055455],[102.476549,33.055064],[102.476543,33.054673],[102.476537,33.054282],[102.476531,33.05406],[102.476521,33.053734],[102.476511,33.053408],[102.476504,33.053084],[102.476496,33.052759],[102.476488,33.052435],[102.47642,33.052174],[102.476351,33.051913],[102.476291,33.051686],[102.476231,33.051459],[102.476115,33.051083],[102.475999,33.050706],[102.47598,33.050644],[102.475833,33.050356],[102.475686,33.050069],[102.47554,33.049781],[102.475349,33.049436],[102.475159,33.049091],[102.47512,33.048987],[102.474994,33.048655],[102.474868,33.048323],[102.474743,33.047991],[102.474637,33.047791],[102.474528,33.047586],[102.474291,33.047212],[102.474008,33.046911],[102.473725,33.046611],[102.473689,33.046536],[102.473642,33.046438],[102.473666,33.046212],[102.47366,33.045849],[102.473654,33.045486],[102.473688,33.045178],[102.473722,33.04487],[102.473749,33.044624],[102.473775,33.044255],[102.473801,33.043886],[102.473827,33.043517],[102.473828,33.043352],[102.47383,33.042991],[102.473833,33.042629],[102.473836,33.042267],[102.473838,33.041905],[102.473856,33.041537],[102.473904,33.041311],[102.474047,33.041067],[102.474172,33.040847],[102.474296,33.040626],[102.474499,33.040406],[102.474701,33.040186],[102.474826,33.039996],[102.474945,33.039764],[102.474998,33.039484],[102.475117,33.039223],[102.475177,33.039116],[102.475179,33.039109],[102.47519,33.03866],[102.475201,33.03829],[102.475211,33.03792],[102.475222,33.037549],[102.475261,33.037297],[102.475299,33.037044],[102.475338,33.036792],[102.475377,33.036539],[102.475416,33.036287],[102.475455,33.036034],[102.475493,33.035782],[102.475532,33.035529],[102.475574,33.035261],[102.475582,33.035207],[102.475637,33.03523],[102.476507,33.035744],[102.477346,33.03604],[102.478298,33.036277],[102.478923,33.036351],[102.478959,33.036352],[102.479841,33.036463],[102.480447,33.03719],[102.480949,33.037666],[102.481976,33.037842],[102.482808,33.038417],[102.483751,33.038964],[102.484244,33.03975],[102.484622,33.04072],[102.484898,33.041378],[102.485531,33.042477],[102.486396,33.043147],[102.487775,33.04392],[102.489316,33.044199],[102.490709,33.044015],[102.490944,33.043984],[102.492318,33.043639],[102.493072,33.043033],[102.494461,33.04216],[102.494835,33.040647],[102.495199,33.039536],[102.495965,33.038496],[102.497306,33.036691],[102.498087,33.035154],[102.499122,33.035051],[102.499675,33.035062],[102.500222,33.035185],[102.500546,33.035083],[102.501299,33.034557],[102.501858,33.034108],[102.502507,33.033851],[102.502766,33.033775],[102.503184,33.033756],[102.503601,33.033792],[102.504169,33.034128],[102.505439,33.034667],[102.506104,33.035005],[102.506864,33.035372],[102.507595,33.03563],[102.508559,33.035622],[102.509431,33.03545],[102.510549,33.035218],[102.511503,33.035064],[102.512043,33.035053],[102.512733,33.035197],[102.51329,33.035489],[102.513953,33.035654],[102.514969,33.036085],[102.515863,33.036276],[102.516349,33.036351],[102.517473,33.036568],[102.518386,33.036997],[102.519404,33.037342],[102.519916,33.037396],[102.522811,33.038062],[102.523696,33.038027],[102.524803,33.03817],[102.525561,33.038272],[102.526239,33.038286],[102.526871,33.038454],[102.527509,33.038449],[102.528049,33.038269],[102.528543,33.038227],[102.529272,33.037913],[102.530071,33.037407],[102.530795,33.036826],[102.531727,33.035888],[102.532038,33.03534],[102.532231,33.034928],[102.53248,33.034849],[102.532688,33.035034],[102.533093,33.035277],[102.533533,33.035438],[102.53399,33.035572],[102.534416,33.035636],[102.534951,33.035924],[102.535533,33.03631],[102.536001,33.036638],[102.537837,33.037931],[102.538575,33.038537],[102.539558,33.039192],[102.540183,33.039411],[102.540789,33.039719],[102.542123,33.040346],[102.543113,33.040937],[102.543737,33.041245],[102.544176,33.041431],[102.544879,33.041406],[102.545443,33.041338],[102.546175,33.041096],[102.54684,33.040735],[102.547299,33.040231],[102.54766,33.039864],[102.54839,33.039701],[102.549396,33.03972],[102.550049,33.039812],[102.550889,33.039908],[102.551708,33.039904],[102.553137,33.039853],[102.553888,33.039809],[102.554891,33.039927],[102.555916,33.040105],[102.556472,33.040293],[102.556985,33.040382],[102.557617,33.040375],[102.559062,33.04058],[102.559556,33.040511],[102.560478,33.040155],[102.561196,33.039597],[102.561634,33.038994],[102.561676,33.038325],[102.56179,33.037558],[102.561623,33.036826],[102.5616,33.035978],[102.561842,33.034839],[102.562602,33.033573],[102.563055,33.032418],[102.563595,33.030334],[102.563754,33.029327],[102.564152,33.027113],[102.564351,33.026233],[102.564996,33.024583],[102.565489,33.023014],[102.565268,33.022255],[102.564832,33.021152],[102.564503,33.019769],[102.564702,33.017414],[102.565032,33.016325],[102.565145,33.01585],[102.565203,33.015718],[102.565244,33.015624],[102.565393,33.015285],[102.565433,33.015195],[102.565508,33.015198],[102.565561,33.015211],[102.565608,33.015223],[102.565636,33.015245],[102.565658,33.015278],[102.565666,33.015309],[102.565667,33.01538],[102.565662,33.015432],[102.565642,33.015471],[102.565607,33.015517],[102.565605,33.01553],[102.565637,33.015558],[102.565684,33.01556],[102.565717,33.01555],[102.56577,33.01552],[102.565802,33.015493],[102.565852,33.015458],[102.565891,33.015428],[102.565952,33.015401],[102.566021,33.015384],[102.566053,33.015381],[102.566192,33.015377],[102.566269,33.015359],[102.566301,33.015328],[102.566314,33.015297],[102.566315,33.015268],[102.566298,33.01524],[102.566274,33.015213],[102.56634,33.015218],[102.566342,33.015157],[102.566316,33.015122],[102.566235,33.015069],[102.566174,33.015041],[102.56612,33.015038],[102.566059,33.015055],[102.565981,33.015083],[102.565927,33.015105],[102.565874,33.015116],[102.565848,33.015115],[102.565803,33.015099],[102.565774,33.015075],[102.56575,33.015037],[102.565722,33.014962],[102.56572,33.014955],[102.565709,33.014878],[102.565705,33.014794],[102.56569,33.014713],[102.565667,33.014665],[102.565623,33.014628],[102.565608,33.014616],[102.56554,33.014581],[102.565446,33.014556],[102.56541,33.014546],[102.56533,33.014531],[102.565257,33.014509],[102.565201,33.014488],[102.565159,33.014465],[102.565139,33.014437],[102.565127,33.014387],[102.56515,33.014316],[102.565187,33.014265],[102.56524,33.014238],[102.565273,33.014237],[102.56535,33.014261],[102.565421,33.01431],[102.565487,33.014334],[102.56553,33.014338],[102.565605,33.014317],[102.56566,33.01428],[102.565718,33.014212],[102.565756,33.014174],[102.565796,33.014128],[102.565832,33.014114],[102.565868,33.014113],[102.565929,33.014147],[102.566033,33.014201],[102.5661,33.014221],[102.566184,33.014236],[102.566269,33.01423],[102.566342,33.014224],[102.566406,33.014238],[102.566455,33.014276],[102.566501,33.01421],[102.56654,33.0142],[102.566559,33.014235],[102.566561,33.014264],[102.566558,33.014317],[102.566541,33.014371],[102.566525,33.01441],[102.566502,33.014452],[102.566472,33.014505],[102.566449,33.014539],[102.566419,33.014589],[102.566413,33.014636],[102.566427,33.014654],[102.566458,33.014667],[102.566533,33.01467],[102.566574,33.014662],[102.566625,33.014637],[102.566657,33.014613],[102.566684,33.014584],[102.56671,33.014548],[102.566742,33.014499],[102.566751,33.014475],[102.566762,33.014449],[102.566762,33.014384],[102.566753,33.014335],[102.566738,33.014279],[102.56672,33.014238],[102.566706,33.014202],[102.566684,33.014162],[102.566687,33.014128],[102.566694,33.014109],[102.56671,33.014092],[102.566746,33.014059],[102.566768,33.014035],[102.566794,33.014014],[102.566837,33.014003],[102.566886,33.014005],[102.56692,33.014019],[102.566961,33.014052],[102.566988,33.014081],[102.567028,33.014119],[102.567072,33.014156],[102.567113,33.014192],[102.567205,33.014274],[102.567256,33.014326],[102.567285,33.01437],[102.567332,33.014434],[102.567387,33.014464],[102.567442,33.014478],[102.567501,33.014482],[102.56754,33.014474],[102.567603,33.014452],[102.567646,33.014432],[102.567725,33.014424],[102.567768,33.014426],[102.567805,33.01443],[102.567845,33.01444],[102.56788,33.014448],[102.567914,33.014463],[102.567944,33.014481],[102.567966,33.014504],[102.567994,33.014572],[102.567994,33.014617],[102.567991,33.014652],[102.56796,33.014701],[102.567908,33.014749],[102.567853,33.014792],[102.567788,33.014833],[102.567713,33.014859],[102.567706,33.014862],[102.567675,33.014873],[102.567639,33.014903],[102.567637,33.014943],[102.567647,33.014967],[102.567668,33.014986],[102.567695,33.015012],[102.567728,33.015039],[102.567748,33.015072],[102.567799,33.015115],[102.567837,33.01514],[102.567889,33.015149],[102.567947,33.015145],[102.567987,33.015124],[102.568009,33.015103],[102.568033,33.015064],[102.568051,33.015022],[102.568057,33.01498],[102.56807,33.014907],[102.568073,33.01486],[102.568082,33.014828],[102.568115,33.014775],[102.568146,33.014746],[102.568178,33.014721],[102.568183,33.014718],[102.568234,33.01469],[102.568272,33.01468],[102.568333,33.01469],[102.568385,33.014721],[102.568425,33.014737],[102.568571,33.014829],[102.568597,33.014883],[102.568605,33.014951],[102.568596,33.015006],[102.568559,33.015057],[102.568512,33.015102],[102.568484,33.015122],[102.568456,33.015143],[102.568398,33.015176],[102.568353,33.015191],[102.568317,33.015215],[102.568267,33.015253],[102.568229,33.015291],[102.568249,33.015338],[102.568283,33.015382],[102.568316,33.015398],[102.56837,33.015403],[102.568408,33.015372],[102.568414,33.015368],[102.568466,33.015337],[102.568536,33.015276],[102.56859,33.015241],[102.568607,33.015225],[102.568662,33.01519],[102.568715,33.015156],[102.568759,33.015133],[102.568801,33.015106],[102.56884,33.015082],[102.568899,33.015046],[102.568917,33.015033],[102.569055,33.015019],[102.569089,33.015016],[102.569146,33.01501],[102.569426,33.014529],[102.569787,33.014311],[102.570199,33.014242],[102.57059,33.014177],[102.570725,33.014127],[102.570748,33.014119],[102.570984,33.014032],[102.571029,33.014015],[102.571149,33.013971],[102.571212,33.013973],[102.571312,33.013987],[102.571378,33.013999],[102.57148,33.014024],[102.57152,33.014066],[102.571586,33.014136],[102.571648,33.014213],[102.571679,33.014289],[102.571686,33.014315],[102.571705,33.014382],[102.571895,33.014331],[102.572006,33.014429],[102.571682,33.01491],[102.571574,33.015164],[102.571572,33.015169],[102.571586,33.01517],[102.57161,33.015172],[102.57163,33.015177],[102.571651,33.015183],[102.571701,33.015202],[102.571753,33.015256],[102.571792,33.015319],[102.571839,33.015361],[102.571897,33.015427],[102.571952,33.015495],[102.571989,33.015561],[102.571998,33.015576],[102.572005,33.015578],[102.57224,33.015632],[102.572479,33.015843],[102.57249,33.015853],[102.572602,33.015851],[102.572703,33.015863],[102.572802,33.015895],[102.572828,33.015924],[102.572855,33.015967],[102.572873,33.015994],[102.572882,33.016036],[102.572882,33.016083],[102.572857,33.016122],[102.572807,33.016178],[102.572758,33.016214],[102.572672,33.016248],[102.572706,33.016465],[102.572606,33.016875],[102.572569,33.016975],[102.572567,33.01698],[102.572514,33.017123],[102.57251,33.017135],[102.572587,33.017165],[102.572601,33.01717],[102.572818,33.017254],[102.573309,33.017151],[102.573531,33.017193],[102.573914,33.017799],[102.574333,33.018077],[102.574453,33.018156],[102.574533,33.01821],[102.574612,33.018262],[102.574703,33.018313],[102.575218,33.018598],[102.57523,33.018604],[102.575247,33.018595],[102.575282,33.018579],[102.575326,33.01858],[102.575384,33.01858],[102.57547,33.018581],[102.575537,33.018614],[102.57562,33.018684],[102.575653,33.018748],[102.575669,33.018787],[102.575929,33.018887],[102.576139,33.01934],[102.576176,33.019603],[102.576066,33.019799],[102.575989,33.019937],[102.57597,33.019953],[102.575993,33.019987],[102.57599,33.020037],[102.575967,33.020082],[102.575907,33.02015],[102.575843,33.020201],[102.575753,33.020236],[102.575708,33.020251],[102.57564,33.020246],[102.575625,33.020258],[102.575533,33.02034],[102.575489,33.020564],[102.575482,33.020602],[102.575479,33.020714],[102.575467,33.021125],[102.575115,33.021513],[102.575101,33.021529],[102.575107,33.021604],[102.575111,33.021674],[102.57511,33.021715],[102.575103,33.021787],[102.57509,33.021827],[102.575045,33.021888],[102.574983,33.021913],[102.574898,33.021918],[102.574812,33.021904],[102.574724,33.021856],[102.574624,33.021791],[102.574606,33.021779],[102.574594,33.021766],[102.57456,33.021781],[102.574404,33.021932],[102.574332,33.022001],[102.574501,33.022342],[102.574928,33.022949],[102.574919,33.023286],[102.574688,33.023618],[102.574313,33.024323],[102.574305,33.024612],[102.574305,33.024622],[102.574304,33.024659],[102.574358,33.024698],[102.574415,33.024738],[102.574522,33.024814],[102.574835,33.024745],[102.575447,33.024217],[102.575472,33.024195],[102.575488,33.024185],[102.575602,33.02411],[102.57565,33.024079],[102.57597,33.023868],[102.576169,33.023872],[102.576459,33.023878],[102.576574,33.024062],[102.576519,33.024115],[102.576576,33.024175],[102.576621,33.024138],[102.576672,33.024219],[102.576877,33.024822],[102.57682,33.025308],[102.577393,33.025468],[102.577466,33.025474],[102.577488,33.025476],[102.577502,33.025471],[102.577597,33.025435],[102.577719,33.025382],[102.577846,33.025382],[102.577993,33.025375],[102.578068,33.025354],[102.578151,33.0253],[102.578271,33.025223],[102.578381,33.025173],[102.578465,33.025182],[102.578554,33.02523],[102.578613,33.025312],[102.578625,33.025407],[102.578603,33.025482],[102.578573,33.025518],[102.578536,33.025544],[102.578459,33.025577],[102.578394,33.025597],[102.578412,33.025601],[102.578422,33.025619],[102.578624,33.025979],[102.578856,33.026539],[102.578865,33.026561],[102.578919,33.0266],[102.578967,33.026692],[102.578958,33.026736],[102.578945,33.026754],[102.578999,33.026885],[102.579209,33.027339],[102.579322,33.027438],[102.579386,33.027371],[102.579474,33.027289],[102.579553,33.027281],[102.579635,33.027288],[102.5797,33.027316],[102.579741,33.02735],[102.579766,33.027376],[102.579776,33.027395],[102.579781,33.027391],[102.579831,33.027351],[102.580229,33.027433],[102.580349,33.027715],[102.580365,33.027754],[102.580407,33.027851],[102.580409,33.027857],[102.580438,33.027924],[102.580833,33.028082],[102.58106,33.027936],[102.581295,33.027454],[102.5814,33.026857],[102.581564,33.02686],[102.581712,33.026863],[102.5818,33.026865],[102.581869,33.02692],[102.581881,33.026929],[102.581881,33.026973],[102.581879,33.027013],[102.581875,33.027071],[102.58188,33.027106],[102.581897,33.027129],[102.58193,33.027138],[102.582007,33.02714],[102.58206,33.027141],[102.582107,33.027138],[102.582137,33.027135],[102.582155,33.027137],[102.582207,33.027148],[102.582294,33.027218],[102.582492,33.027366],[102.58253,33.027407],[102.582562,33.027427],[102.582632,33.027511],[102.582682,33.027584],[102.582714,33.027629],[102.582759,33.027683],[102.582788,33.027724],[102.582816,33.027764],[102.582829,33.027774],[102.58285,33.027768],[102.582867,33.027746],[102.582872,33.027719],[102.582876,33.027658],[102.582875,33.027625],[102.582891,33.027635],[102.583036,33.0277],[102.583051,33.027706],[102.583154,33.027752],[102.583203,33.027803],[102.583413,33.028019],[102.583445,33.028507],[102.583558,33.028618],[102.58373,33.028787],[102.583777,33.028794],[102.583863,33.028828],[102.583938,33.028918],[102.584161,33.028982],[102.584225,33.029],[102.58454,33.02909],[102.58478,33.029044],[102.584898,33.029022],[102.585206,33.028996],[102.585243,33.028993],[102.585345,33.028985],[102.585759,33.028951],[102.585767,33.028951],[102.586011,33.028931],[102.586039,33.028928],[102.586204,33.028913],[102.586367,33.028897],[102.586502,33.028885],[102.586629,33.028873],[102.587086,33.02883],[102.587403,33.0288],[102.587423,33.028798],[102.58766,33.028776],[102.587814,33.028606],[102.588027,33.028371],[102.58808,33.028104],[102.588233,33.027326],[102.588196,33.027087],[102.588099,33.026455],[102.588082,33.02635],[102.587868,33.025627],[102.587867,33.025622],[102.587835,33.025516],[102.587821,33.025516],[102.587808,33.025504],[102.587795,33.025484],[102.587779,33.025436],[102.587752,33.025364],[102.587722,33.025307],[102.587693,33.025238],[102.587682,33.025154],[102.58767,33.025072],[102.587637,33.024948],[102.587601,33.024853],[102.587576,33.024778],[102.587537,33.024649],[102.587518,33.024537],[102.587511,33.024436],[102.587522,33.02426],[102.587533,33.02416],[102.587567,33.024012],[102.587602,33.023894],[102.58767,33.023781],[102.587689,33.023667],[102.587717,33.023529],[102.587717,33.023498],[102.587708,33.023479],[102.587684,33.023436],[102.587651,33.023372],[102.587611,33.0233],[102.587566,33.023207],[102.587534,33.023077],[102.587502,33.022953],[102.587477,33.022865],[102.587484,33.022815],[102.587525,33.022743],[102.587584,33.022693],[102.587663,33.022666],[102.587759,33.022624],[102.587813,33.022599],[102.587852,33.022603],[102.587872,33.022622],[102.587871,33.022651],[102.587857,33.022688],[102.587833,33.022713],[102.587836,33.022727],[102.587852,33.022736],[102.587876,33.022744],[102.587911,33.02274],[102.587944,33.02273],[102.587992,33.022703],[102.588098,33.022645],[102.588169,33.022586],[102.5882,33.022549],[102.5882,33.02253],[102.588183,33.02251],[102.588143,33.022492],[102.588106,33.022475],[102.588079,33.022449],[102.588085,33.022421],[102.5881,33.022403],[102.588144,33.022386],[102.588218,33.022382],[102.588312,33.022383],[102.588379,33.022393],[102.588426,33.022415],[102.588438,33.022402],[102.588579,33.022258],[102.58907,33.022159],[102.589152,33.022143],[102.589212,33.022163],[102.589334,33.022195],[102.589411,33.022213],[102.589576,33.022218],[102.589647,33.022218],[102.589704,33.022208],[102.589786,33.022188],[102.589907,33.022161],[102.590051,33.02212],[102.590142,33.022091],[102.590266,33.02204],[102.590511,33.021851],[102.591144,33.021708],[102.591161,33.021702],[102.591167,33.021699],[102.591902,33.021417],[102.592401,33.021225],[102.593002,33.020995],[102.59303,33.020981],[102.5936,33.020705],[102.593784,33.020616],[102.594183,33.020423],[102.594985,33.020034],[102.595286,33.019805],[102.595949,33.019299],[102.596136,33.019157],[102.596736,33.018017],[102.596761,33.017969],[102.596793,33.017892],[102.596987,33.017422],[102.597047,33.017276],[102.59709,33.01717],[102.597085,33.017167],[102.597084,33.017153],[102.597096,33.017099],[102.597126,33.01699],[102.597157,33.016801],[102.597174,33.016722],[102.597173,33.016653],[102.597178,33.016596],[102.597201,33.016546],[102.597226,33.016476],[102.597221,33.016398],[102.597217,33.016297],[102.597218,33.016187],[102.597169,33.015997],[102.597145,33.015832],[102.597124,33.015689],[102.597101,33.015493],[102.597057,33.015335],[102.597028,33.015083],[102.596998,33.014977],[102.596958,33.014857],[102.59689,33.014527],[102.596855,33.014254],[102.5968,33.013921],[102.596793,33.01388],[102.59678,33.013734],[102.596735,33.013516],[102.596723,33.013455],[102.596676,33.01334],[102.596637,33.01322],[102.596618,33.013132],[102.596619,33.012985],[102.5966,33.012861],[102.596583,33.012755],[102.596582,33.012722],[102.596587,33.01271],[102.596602,33.012707],[102.596501,33.012145],[102.596487,33.012067],[102.596486,33.012062],[102.596409,33.011956],[102.596377,33.011896],[102.596351,33.011828],[102.596329,33.011745],[102.596306,33.01165],[102.596279,33.011572],[102.596241,33.01145],[102.596222,33.011359],[102.596203,33.01129],[102.596194,33.0112],[102.596176,33.011106],[102.596159,33.011058],[102.596128,33.011012],[102.596117,33.010984],[102.596114,33.010931],[102.596111,33.010826],[102.596103,33.010737],[102.596067,33.010644],[102.596038,33.010551],[102.59602,33.010378],[102.596016,33.010342],[102.595964,33.009979],[102.595842,33.009421],[102.59581,33.00918],[102.595808,33.009091],[102.595796,33.008998],[102.595795,33.008862],[102.595803,33.00879],[102.595822,33.008722],[102.595851,33.008616],[102.595873,33.00855],[102.595979,33.008387],[102.596019,33.008347],[102.596058,33.00829],[102.596133,33.008224],[102.596165,33.008181],[102.59621,33.008151],[102.596247,33.008125],[102.596271,33.008089],[102.596302,33.00806],[102.596341,33.008054],[102.596361,33.008056],[102.596374,33.008063],[102.596502,33.007872],[102.597201,33.007266],[102.597291,33.007188],[102.597632,33.006829],[102.597681,33.006776],[102.597774,33.006678],[102.597988,33.006453],[102.598268,33.006157],[102.598568,33.005621],[102.598841,33.005135],[102.599175,33.004538],[102.599514,33.003933],[102.599699,33.003498],[102.599772,33.003328],[102.599868,33.003102],[102.600175,33.002382],[102.600288,33.002117],[102.600337,33.002],[102.600242,33.001836],[102.600198,33.001761],[102.599949,33.00133],[102.599487,33.000535],[102.599261,32.999641],[102.599114,32.999063],[102.599064,32.998867],[102.599032,32.998739],[102.599097,32.998698],[102.598982,32.998588],[102.598888,32.998445],[102.598769,32.998313],[102.597865,32.996847],[102.597802,32.996745],[102.597653,32.996432],[102.597535,32.996184],[102.59753,32.996173],[102.597496,32.996102],[102.597438,32.99598],[102.597539,32.995619],[102.597571,32.995504],[102.597736,32.995108],[102.597751,32.994957],[102.597837,32.994828],[102.597933,32.994676],[102.597978,32.994587],[102.59798,32.994457],[102.597985,32.994385],[102.597985,32.994376],[102.598043,32.994268],[102.598142,32.994094],[102.598145,32.994089],[102.598198,32.994014],[102.5982,32.99401],[102.598241,32.993894],[102.598252,32.99382],[102.598252,32.993758],[102.59824,32.993684],[102.598225,32.993622],[102.598197,32.993556],[102.598165,32.993482],[102.598135,32.993447],[102.598473,32.99306],[102.598643,32.992707],[102.598882,32.99221],[102.599116,32.991723],[102.599161,32.991631],[102.59971,32.991318],[102.599707,32.991307],[102.599715,32.991277],[102.599762,32.991106],[102.5998,32.991002],[102.599868,32.990857],[102.599935,32.990717],[102.600071,32.990565],[102.600144,32.990448],[102.600212,32.990406],[102.600289,32.990359],[102.600339,32.990322],[102.600399,32.990296],[102.600477,32.990284],[102.600506,32.990336],[102.600635,32.990232],[102.601333,32.989671],[102.60139,32.989583],[102.60146,32.989478],[102.601489,32.989433],[102.601541,32.989354],[102.601927,32.988769],[102.602002,32.988656],[102.602137,32.988388],[102.602371,32.987928],[102.602399,32.987871],[102.602545,32.987584],[102.602738,32.986789],[102.60284,32.986373],[102.602852,32.986324],[102.602978,32.985807],[102.60364,32.985062],[102.603682,32.98503],[102.603843,32.984905],[102.604081,32.984722],[102.604093,32.984712],[102.604134,32.984681],[102.604552,32.984358],[102.60496,32.984044],[102.605213,32.983848],[102.605268,32.983813],[102.606012,32.983334],[102.606602,32.982955],[102.607282,32.982517],[102.607396,32.982444],[102.6075,32.982377],[102.607528,32.982322],[102.607575,32.982231],[102.607727,32.981937],[102.607807,32.981784],[102.607811,32.981776],[102.607824,32.98175],[102.607817,32.981747],[102.607814,32.981738],[102.607814,32.981721],[102.607797,32.981674],[102.607784,32.981641],[102.607752,32.981596],[102.607727,32.981564],[102.607714,32.981534],[102.607699,32.981491],[102.607691,32.981449],[102.607691,32.981409],[102.607697,32.981342],[102.60771,32.981293],[102.607782,32.981204],[102.607824,32.98115],[102.60785,32.981107],[102.607863,32.981065],[102.607859,32.981006],[102.607853,32.980936],[102.607853,32.980869],[102.607853,32.980823],[102.607876,32.980759],[102.6079,32.980714],[102.607973,32.980628],[102.608028,32.980565],[102.608067,32.980495],[102.608097,32.980417],[102.608111,32.980371],[102.608148,32.980306],[102.608179,32.980261],[102.608216,32.980212],[102.608255,32.98014],[102.608276,32.980093],[102.608318,32.980065],[102.608326,32.980026],[102.60836,32.979838],[102.608452,32.979338],[102.608634,32.978352],[102.608636,32.978341],[102.608683,32.978282],[102.609001,32.977883],[102.609661,32.977056],[102.609699,32.977009],[102.610059,32.976693],[102.610081,32.976673],[102.610133,32.976627],[102.611094,32.975783],[102.611145,32.975738],[102.61265,32.974684],[102.612817,32.973998],[102.612939,32.9735],[102.612956,32.972851],[102.612603,32.972121],[102.612486,32.971878],[102.612348,32.971595],[102.612087,32.971478],[102.611207,32.971086],[102.611063,32.971029],[102.609539,32.970427],[102.609448,32.970391],[102.609047,32.970233],[102.609021,32.970216],[102.608589,32.969944],[102.608164,32.969675],[102.60807,32.969515],[102.608028,32.969443],[102.607989,32.969376],[102.60784,32.969122],[102.607427,32.968416],[102.607465,32.968105],[102.60747,32.968069],[102.607479,32.967994],[102.607494,32.967873],[102.607592,32.967067],[102.608788,32.965575],[102.609314,32.96527],[102.609357,32.965245],[102.609366,32.965239],[102.609626,32.965088],[102.609643,32.965079],[102.609676,32.96506],[102.609724,32.965032],[102.609961,32.964894],[102.610591,32.964906],[102.610987,32.964914],[102.611173,32.964917],[102.611051,32.964849],[102.611023,32.964837],[102.611,32.964814],[102.611003,32.96479],[102.611042,32.964775],[102.611113,32.964775],[102.611178,32.964775],[102.611226,32.964791],[102.611283,32.964827],[102.611354,32.964876],[102.611411,32.964929],[102.611433,32.964949],[102.611508,32.964992],[102.611579,32.965007],[102.611763,32.964986],[102.611856,32.964984],[102.611934,32.964987],[102.61198,32.964988],[102.612054,32.964968],[102.612068,32.964969],[102.612279,32.964982],[102.612445,32.964992],[102.612526,32.964997],[102.613554,32.964913],[102.614134,32.964866],[102.6142,32.964794],[102.614205,32.96479],[102.614255,32.964736],[102.614498,32.964475],[102.614554,32.964459],[102.61458,32.964406],[102.614576,32.96435],[102.614576,32.964278],[102.614606,32.964203],[102.614633,32.964126],[102.614661,32.964044],[102.614694,32.963962],[102.614731,32.963871],[102.614782,32.963811],[102.614795,32.96374],[102.614801,32.963688],[102.614816,32.963624],[102.614839,32.963528],[102.614901,32.963397],[102.614914,32.963326],[102.614924,32.963263],[102.61495,32.963164],[102.614992,32.963075],[102.614993,32.963056],[102.614996,32.963009],[102.615004,32.962926],[102.615008,32.96285],[102.615013,32.962764],[102.615004,32.962685],[102.61501,32.962636],[102.615045,32.962578],[102.615087,32.962527],[102.615101,32.96249],[102.615068,32.962424],[102.61506,32.962364],[102.615063,32.962228],[102.615074,32.962184],[102.61514,32.962163],[102.615175,32.962145],[102.615148,32.962077],[102.615143,32.962032],[102.615145,32.961999],[102.615167,32.961966],[102.615228,32.961926],[102.615258,32.961906],[102.615264,32.961873],[102.61569,32.962006],[102.615704,32.962011],[102.615916,32.962077],[102.615949,32.962087],[102.61794,32.962709],[102.618418,32.962804],[102.618494,32.962819],[102.619296,32.962979],[102.619415,32.963002],[102.619534,32.963026],[102.619545,32.963028],[102.619898,32.963098],[102.621186,32.963584],[102.621599,32.963739],[102.621695,32.963776],[102.621943,32.963869],[102.62215,32.963947],[102.622206,32.963968],[102.622228,32.963976],[102.622259,32.963988],[102.622854,32.964212],[102.624804,32.965004],[102.625129,32.96511],[102.62515,32.965116],[102.625202,32.965133],[102.625251,32.965149],[102.625517,32.965235],[102.625633,32.965272],[102.627837,32.965465],[102.628738,32.965587],[102.629563,32.965699],[102.631407,32.965986],[102.633611,32.965652],[102.635503,32.965123],[102.637224,32.964289],[102.638671,32.963675],[102.640033,32.962872],[102.641353,32.961992],[102.642505,32.960695],[102.643612,32.959435],[102.644205,32.958994],[102.644971,32.958744],[102.645697,32.958343],[102.646026,32.957747],[102.647238,32.957543],[102.649124,32.95724],[102.650025,32.956955],[102.651058,32.956786],[102.652834,32.957234],[102.653898,32.957593],[102.655903,32.95782],[102.657777,32.957968],[102.658295,32.958001],[102.65869,32.958026],[102.659473,32.958075],[102.661343,32.958374],[102.66317,32.958597],[102.664637,32.958888],[102.665795,32.95906],[102.66674,32.958814],[102.667381,32.958529],[102.668662,32.960426],[102.669856,32.962223],[102.670758,32.962785],[102.672389,32.964408],[102.673007,32.965511],[102.673966,32.965984],[102.676001,32.966568],[102.677882,32.966876],[102.678521,32.967068],[102.678685,32.967118],[102.680498,32.96797],[102.681946,32.968316],[102.68301,32.968881],[102.683574,32.970029],[102.683979,32.971037],[102.684403,32.973411],[102.685128,32.974561],[102.685795,32.975893],[102.686783,32.977321],[102.687721,32.978612],[102.688071,32.979665],[102.689113,32.981094],[102.690873,32.9819],[102.692481,32.982339],[102.693452,32.982357],[102.694762,32.98179],[102.695747,32.981262],[102.695866,32.981138],[102.695949,32.981122],[102.69608,32.981094],[102.696233,32.98102],[102.696396,32.98088],[102.696599,32.98065],[102.696966,32.980321],[102.697073,32.980172],[102.697083,32.98012],[102.697123,32.98001],[102.697098,32.979899],[102.697029,32.979737],[102.697309,32.97929],[102.697858,32.978936],[102.698725,32.978816],[102.699548,32.978648],[102.699627,32.978666],[102.699777,32.978697],[102.700037,32.978715],[102.700187,32.978722],[102.700314,32.978727],[102.700434,32.978724],[102.700581,32.978702],[102.70066,32.97867],[102.700754,32.978623],[102.700955,32.978536],[102.701082,32.978495],[102.701226,32.978445],[102.701421,32.978385],[102.701515,32.978352],[102.701665,32.978326],[102.701746,32.97832],[102.701882,32.978319],[102.701913,32.978323],[102.702012,32.978316],[102.703087,32.978242],[102.703451,32.978201],[102.703688,32.978167],[102.703748,32.978161],[102.704193,32.97812],[102.704448,32.978073],[102.704826,32.978018],[102.705015,32.978002],[102.705063,32.977983],[102.705176,32.977944],[102.705261,32.977908],[102.705345,32.977862],[102.705402,32.977816],[102.705455,32.977756],[102.705514,32.977692],[102.705592,32.977591],[102.705654,32.977498],[102.705701,32.977438],[102.705777,32.977349],[102.705929,32.977236],[102.706028,32.977181],[102.706146,32.977142],[102.706271,32.977108],[102.706395,32.977078],[102.706595,32.977039],[102.706776,32.976986],[102.706875,32.97694],[102.706993,32.976875],[102.7071,32.976786],[102.707246,32.976649],[102.707364,32.976534],[102.707446,32.976455],[102.707496,32.97638],[102.707563,32.976304],[102.707645,32.97626],[102.707797,32.976183],[102.707851,32.97613],[102.70789,32.976049],[102.70794,32.975956],[102.708021,32.975874],[102.708083,32.975847],[102.708153,32.975752],[102.708215,32.975644],[102.708262,32.97557],[102.708321,32.975493],[102.708383,32.975431],[102.708473,32.975335],[102.708599,32.975219],[102.708675,32.975162],[102.708742,32.975111],[102.708855,32.975044],[102.708968,32.975],[102.709075,32.974973],[102.7092,32.974968],[102.709358,32.974967],[102.709545,32.975005],[102.70956,32.975008],[102.709755,32.97507],[102.709911,32.975114],[102.710064,32.975178],[102.710224,32.975261],[102.710373,32.97535],[102.710505,32.975432],[102.710686,32.975545],[102.71072,32.975526],[102.7109,32.975471],[102.711006,32.975453],[102.711225,32.975434],[102.711476,32.975414],[102.711653,32.975396],[102.711836,32.975377],[102.71196,32.975352],[102.71213,32.975309],[102.712468,32.975191],[102.712683,32.975071],[102.712852,32.97495],[102.713024,32.97483],[102.713334,32.974629],[102.713465,32.974586],[102.713638,32.974546],[102.713804,32.974495],[102.714033,32.974407],[102.714198,32.974334],[102.714286,32.974262],[102.714346,32.974178],[102.714388,32.974089],[102.714387,32.974044],[102.714425,32.973969],[102.714527,32.973873],[102.714594,32.973861],[102.714697,32.973869],[102.714828,32.973904],[102.714963,32.973957],[102.715048,32.974001],[102.715319,32.974173],[102.715432,32.974247],[102.715685,32.974424],[102.715777,32.974477],[102.715951,32.974551],[102.716065,32.974607],[102.716239,32.974666],[102.716452,32.974739],[102.716675,32.974797],[102.716814,32.974844],[102.71697,32.974912],[102.717108,32.974968],[102.717218,32.975006],[102.717499,32.975141],[102.717655,32.975236],[102.717801,32.975354],[102.717933,32.975476],[102.718022,32.975586],[102.71819,32.975776],[102.71824,32.975859],[102.718309,32.975966],[102.718401,32.976016],[102.718468,32.976039],[102.718649,32.976068],[102.718776,32.976068],[102.718918,32.976058],[102.719013,32.976066],[102.719176,32.976113],[102.719279,32.97616],[102.719386,32.976219],[102.719532,32.976287],[102.719667,32.976334],[102.719759,32.976366],[102.719823,32.976401],[102.719858,32.976449],[102.719887,32.976517],[102.719902,32.976604],[102.719917,32.976684],[102.719931,32.976726],[102.719953,32.97675],[102.720045,32.976809],[102.72012,32.976841],[102.720233,32.976873],[102.720347,32.976896],[102.720489,32.976955],[102.720574,32.977035],[102.720646,32.977139],[102.72075,32.977303],[102.7208,32.977377],[102.720875,32.977466],[102.720936,32.977522],[102.721003,32.977576],[102.721106,32.977641],[102.721164,32.977697],[102.721189,32.97775],[102.721189,32.977813],[102.721188,32.977826],[102.721282,32.977901],[102.721369,32.977982],[102.721563,32.978086],[102.721599,32.978114],[102.721593,32.978136],[102.721591,32.978159],[102.721591,32.97819],[102.721607,32.978197],[102.721657,32.978226],[102.721664,32.97826],[102.72168,32.978298],[102.721687,32.978327],[102.721706,32.97834],[102.72176,32.97834],[102.721801,32.978332],[102.721843,32.978325],[102.721848,32.978324],[102.721873,32.978343],[102.721873,32.978358],[102.721871,32.978381],[102.721851,32.978402],[102.721845,32.978421],[102.721874,32.978432],[102.721924,32.978432],[102.721936,32.97843],[102.721995,32.978499],[102.722054,32.978557],[102.722056,32.97858],[102.722057,32.978607],[102.72205,32.978643],[102.722039,32.978682],[102.722023,32.978703],[102.722008,32.978724],[102.72199,32.978733],[102.72196,32.978739],[102.721949,32.978745],[102.721965,32.978768],[102.721986,32.978785],[102.722008,32.978806],[102.722027,32.978829],[102.722028,32.978843],[102.722032,32.978871],[102.722016,32.97888],[102.721986,32.97888],[102.721974,32.978862],[102.721961,32.978842],[102.721941,32.978816],[102.721918,32.978793],[102.72189,32.978782],[102.721823,32.97878],[102.721771,32.978788],[102.721721,32.978794],[102.721712,32.978813],[102.721737,32.978828],[102.72176,32.978861],[102.721773,32.97887],[102.721776,32.978873],[102.721713,32.978899],[102.721774,32.978931],[102.721718,32.978952],[102.7216,32.978993],[102.7216,32.978999],[102.721602,32.979054],[102.721838,32.980377],[102.721906,32.981925],[102.722161,32.982521],[102.723982,32.983055],[102.726878,32.98379],[102.72754,32.983958],[102.727843,32.984035],[102.729457,32.984246],[102.730261,32.984443],[102.730849,32.984681],[102.730877,32.98523],[102.73089,32.985484],[102.730894,32.985565],[102.730902,32.985731],[102.730921,32.986092],[102.73105,32.987368],[102.731337,32.988351],[102.731398,32.988557],[102.73255,32.989943],[102.73399,32.990606],[102.734674,32.991301],[102.735613,32.992591],[102.736182,32.993557],[102.737294,32.994396],[102.739037,32.995883],[102.740258,32.996724],[102.741226,32.996832],[102.741881,32.996571],[102.741919,32.995071],[102.742054,32.994027],[102.74248,32.993057],[102.742569,32.992854],[102.743522,32.991461],[102.743771,32.990192],[102.744401,32.988747],[102.744713,32.98707],[102.74496,32.985846],[102.74509,32.984984],[102.745489,32.984173],[102.745726,32.983313],[102.745721,32.981402],[102.74575,32.980266],[102.746421,32.979322],[102.747383,32.977566],[102.748527,32.976023],[102.748573,32.97596],[102.748677,32.97582],[102.748602,32.975817],[102.748514,32.975799],[102.748427,32.975771],[102.748302,32.97573],[102.74822,32.975692],[102.748206,32.975637],[102.748201,32.975555],[102.748229,32.975442],[102.748291,32.975306],[102.748423,32.975139],[102.748536,32.975063],[102.748577,32.975041],[102.74874,32.974867],[102.748886,32.974742],[102.749074,32.974619],[102.749236,32.974514],[102.749238,32.974513],[102.749338,32.974456],[102.749484,32.974377],[102.749566,32.974292],[102.74959,32.974253],[102.749638,32.974219],[102.74975,32.9742],[102.749773,32.974205],[102.749867,32.974226],[102.749954,32.974109],[102.752386,32.971833],[102.753006,32.97119],[102.753331,32.970853],[102.754014,32.970145],[102.754325,32.969821],[102.755924,32.968485],[102.756612,32.967712],[102.756631,32.967691],[102.75665,32.96767],[102.756662,32.967656],[102.756709,32.967604],[102.756723,32.967588],[102.756737,32.967572],[102.756973,32.967307],[102.756987,32.967291],[102.757178,32.967077],[102.757175,32.967062],[102.757137,32.966989],[102.7571,32.966894],[102.7571,32.966864],[102.757109,32.966842],[102.757133,32.966819],[102.757146,32.966812],[102.757174,32.966812],[102.757209,32.966816],[102.757316,32.96684],[102.757377,32.966849],[102.757429,32.966861],[102.757473,32.966848],[102.757499,32.966829],[102.757519,32.966804],[102.757526,32.966782],[102.757538,32.966744],[102.757537,32.966673],[102.757706,32.966483],[102.757757,32.966426],[102.758814,32.965171],[102.759517,32.964523],[102.759649,32.9644],[102.759974,32.9641],[102.760814,32.962887],[102.76097,32.962704],[102.76101,32.962656],[102.762149,32.961319],[102.764134,32.959673],[102.764298,32.959538],[102.76462,32.959262],[102.766063,32.958023],[102.767549,32.956867],[102.768272,32.955942],[102.768497,32.955655],[102.768538,32.955606],[102.768894,32.955187],[102.769094,32.954952],[102.769219,32.954804],[102.769561,32.954415],[102.769858,32.954077],[102.770164,32.953729],[102.770371,32.953438],[102.770611,32.9531],[102.77083,32.953415],[102.771028,32.953699],[102.77153,32.953991],[102.771908,32.95421],[102.772304,32.954447],[102.77269,32.954674],[102.773048,32.954872],[102.773346,32.955001],[102.773607,32.955113],[102.773923,32.955249],[102.774347,32.955432],[102.77481,32.955632],[102.775093,32.955812],[102.775548,32.956102],[102.775941,32.956354],[102.77635,32.956614],[102.776161,32.958036],[102.776151,32.958112],[102.776143,32.958432],[102.776118,32.959431],[102.776114,32.959593],[102.776077,32.961067],[102.776039,32.962568],[102.776066,32.96366],[102.776523,32.964805],[102.77741,32.966004],[102.77878,32.967302],[102.779723,32.968456],[102.781472,32.969715],[102.786111,32.971981],[102.787012,32.972634],[102.788022,32.973243],[102.789142,32.973764],[102.789884,32.974323],[102.791195,32.975847],[102.792179,32.977502],[102.792915,32.978288],[102.794242,32.979176],[102.795519,32.979927],[102.796524,32.980763],[102.798027,32.981063],[102.799009,32.98067],[102.80048,32.980105],[102.801797,32.979218],[102.801875,32.979166],[102.802073,32.979035],[102.803059,32.978376],[102.804862,32.977498],[102.805465,32.977145],[102.806382,32.977161],[102.807907,32.976597],[102.809487,32.975987],[102.810955,32.975558],[102.811809,32.975937],[102.813195,32.976644],[102.814265,32.977026],[102.815819,32.977463],[102.816384,32.977446],[102.817384,32.976424],[102.817708,32.976191],[102.818462,32.975606],[102.819401,32.974725],[102.820127,32.974064],[102.820311,32.973953],[102.820849,32.973626],[102.821336,32.973013],[102.821793,32.972472],[102.822168,32.971681],[102.822274,32.971483],[102.822335,32.971369],[102.822974,32.970174],[102.823218,32.969968],[102.823477,32.96975],[102.823699,32.969563],[102.824126,32.96954],[102.82438,32.969525],[102.826164,32.970354],[102.827426,32.97075],[102.828182,32.971287],[102.829415,32.971683],[102.830507,32.971776],[102.831339,32.971641],[102.832757,32.971716],[102.833971,32.971687],[102.835834,32.971694],[102.837553,32.971574],[102.839267,32.971268],[102.839335,32.971256],[102.84064,32.971129],[102.841619,32.971021],[102.84238,32.971334],[102.84263,32.97147],[102.842919,32.97144],[102.843118,32.971444],[102.843218,32.971431],[102.843486,32.971518],[102.843563,32.97156],[102.84357,32.971563],[102.843797,32.971686],[102.843972,32.971822],[102.844076,32.971876],[102.844129,32.971926],[102.84419,32.971994],[102.844191,32.972072],[102.844142,32.972126],[102.844075,32.972171],[102.843972,32.972247],[102.843996,32.972277],[102.844927,32.973424],[102.845412,32.975118],[102.84538,32.976404],[102.845782,32.977209],[102.845784,32.977216],[102.84612,32.978163],[102.846225,32.978459],[102.846324,32.978653],[102.846332,32.978669],[102.846525,32.979047],[102.846553,32.979101],[102.846727,32.979443],[102.846785,32.980114],[102.846813,32.980434],[102.846845,32.980817],[102.846856,32.980936],[102.846892,32.981354],[102.847113,32.983087],[102.847091,32.983208],[102.847085,32.983243],[102.847078,32.983278],[102.847073,32.983306],[102.847006,32.983679],[102.847003,32.983697],[102.846999,32.983722],[102.846965,32.983908],[102.84693,32.984104],[102.846533,32.985295],[102.846467,32.985599],[102.846456,32.985653],[102.846456,32.985653],[102.846356,32.986117],[102.846309,32.986335],[102.846295,32.9864],[102.846271,32.986698],[102.846121,32.988511],[102.846126,32.98858],[102.84622,32.988564],[102.846298,32.988564],[102.846337,32.988587],[102.84637,32.988697],[102.846336,32.988793],[102.84629,32.988838],[102.846149,32.988913],[102.846226,32.989992],[102.846212,32.990035],[102.846145,32.990243],[102.84577,32.991403],[102.845761,32.991448],[102.845653,32.991957],[102.845557,32.992407],[102.845532,32.992523],[102.84578,32.993888],[102.846594,32.995025],[102.848012,32.998625],[102.84811,32.998776],[102.848335,32.999122],[102.848353,32.99915],[102.848753,32.999765],[102.848992,33.000135],[102.849273,33.000567],[102.849408,33.000739],[102.84943,33.000767],[102.849431,33.000768],[102.849522,33.000883],[102.849565,33.000939],[102.849953,33.001413],[102.849954,33.001414],[102.84996,33.001421],[102.850149,33.001653],[102.850544,33.003383],[102.850866,33.003953],[102.850895,33.004014],[102.851009,33.004252],[102.851248,33.00475],[102.851266,33.004823],[102.851285,33.004902],[102.851583,33.006139],[102.851562,33.007013],[102.851312,33.00763],[102.850754,33.008552],[102.850632,33.008782],[102.850449,33.008855],[102.850304,33.008986],[102.850136,33.009268],[102.850107,33.009517],[102.850117,33.009651],[102.850162,33.009757],[102.84989,33.01102],[102.849655,33.012427],[102.849572,33.013075],[102.849761,33.013586],[102.851089,33.014291],[102.85133,33.014245],[102.852178,33.014483],[102.852586,33.014663],[102.853221,33.01522],[102.853395,33.015513],[102.85453,33.016079],[102.85455,33.016089],[102.854623,33.016126],[102.855511,33.016434],[102.855534,33.016442],[102.855541,33.016445],[102.855544,33.016446],[102.855579,33.016458],[102.855598,33.016465],[102.856308,33.016712],[102.856349,33.016726],[102.857779,33.017224],[102.858539,33.017689],[102.858594,33.018169],[102.858102,33.01912],[102.857836,33.019781],[102.857759,33.01997],[102.857639,33.02027],[102.85701,33.021331],[102.856625,33.022002],[102.856544,33.022593],[102.85659,33.023469],[102.857227,33.024806],[102.857501,33.025968],[102.857282,33.026698],[102.856808,33.02827],[102.856445,33.02945],[102.856091,33.030234],[102.855469,33.030985],[102.854791,33.03134],[102.854443,33.031842],[102.854085,33.032796],[102.853801,33.034173],[102.85374,33.034468],[102.853592,33.035186],[102.853084,33.036786],[102.852846,33.038278],[102.852891,33.039182],[102.852986,33.04082],[102.852059,33.044501],[102.851659,33.045792],[102.851163,33.046885],[102.85111,33.04701],[102.851068,33.04711],[102.850947,33.047394],[102.850701,33.047977],[102.850368,33.049242],[102.850289,33.049748],[102.849892,33.050927],[102.849238,33.051621],[102.848508,33.052709],[102.848225,33.053325],[102.847498,33.054272],[102.846876,33.055023],[102.846806,33.056518],[102.846591,33.057107],[102.846445,33.057584],[102.845688,33.058389],[102.845335,33.059145],[102.845546,33.060108],[102.84563,33.060759],[102.84601,33.061697],[102.846066,33.062149],[102.84569,33.062453],[102.845547,33.062818],[102.844961,33.063485],[102.843901,33.064313],[102.843883,33.065075],[102.844117,33.066462],[102.844119,33.066488],[102.844189,33.06762],[102.844198,33.067669],[102.844589,33.069865],[102.844711,33.07062],[102.844725,33.070707],[102.84485,33.071477],[102.845118,33.072038],[102.845204,33.072041],[102.845242,33.072058],[102.845263,33.072102],[102.845273,33.072178],[102.845272,33.072264],[102.845259,33.072336],[102.845459,33.073577],[102.845469,33.073643],[102.8455,33.073836],[102.845496,33.073923],[102.845548,33.073897],[102.845582,33.073888],[102.845607,33.073897],[102.845605,33.073935],[102.845592,33.073981],[102.845563,33.07405],[102.845532,33.074119],[102.845519,33.074188],[102.84552,33.074258],[102.845527,33.074306],[102.845541,33.074363],[102.845541,33.074403],[102.845535,33.074447],[102.845517,33.07448],[102.845469,33.074509],[102.845455,33.074811],[102.845218,33.075529],[102.845265,33.075541],[102.845276,33.075575],[102.84528,33.075629],[102.845258,33.075685],[102.845243,33.075728],[102.845203,33.075757],[102.845141,33.075762],[102.84501,33.076158],[102.845079,33.076199],[102.845103,33.076236],[102.845115,33.076287],[102.845117,33.076336],[102.845099,33.076369],[102.845065,33.076391],[102.845031,33.0764],[102.844994,33.076401],[102.844935,33.07639],[102.844671,33.077231],[102.84467,33.077303],[102.844669,33.077341],[102.844646,33.078265],[102.844645,33.078323],[102.844641,33.07835],[102.844578,33.07883],[102.844569,33.078895],[102.844506,33.079376],[102.84443,33.079385],[102.844382,33.079401],[102.844495,33.079459],[102.844487,33.079513],[102.844508,33.079591],[102.84451,33.079602],[102.844512,33.07961],[102.844514,33.079618],[102.844559,33.079789],[102.844655,33.080159],[102.84525,33.080499],[102.845257,33.080503],[102.845298,33.080522],[102.845361,33.080552],[102.845363,33.080553],[102.845381,33.080562],[102.845398,33.080569],[102.845445,33.080591],[102.846283,33.080984],[102.846558,33.081086],[102.847221,33.081334],[102.847443,33.08131],[102.847586,33.081323],[102.847683,33.081317],[102.847819,33.0813],[102.847929,33.081285],[102.848028,33.081272],[102.84815,33.081248],[102.848238,33.081223],[102.848321,33.081192],[102.84839,33.081165],[102.84849,33.081112],[102.848577,33.081023],[102.84862,33.080975],[102.848658,33.080933],[102.848697,33.080876],[102.848697,33.080876],[102.848701,33.08087],[102.848731,33.080818],[102.848758,33.080799],[102.848817,33.080776],[102.848885,33.080757],[102.848931,33.080737],[102.848963,33.080715],[102.848969,33.080701],[102.848998,33.080643],[102.849001,33.080629],[102.849112,33.080743],[102.849713,33.080503],[102.850058,33.08164],[102.850294,33.083945],[102.8503,33.084349],[102.850301,33.084383],[102.850301,33.0844],[102.850318,33.085526],[102.850086,33.086506],[102.850374,33.089233],[102.850422,33.09071],[102.850403,33.09149],[102.850402,33.091519],[102.850378,33.092483],[102.850522,33.092517],[102.851355,33.092713],[102.851419,33.092728],[102.851453,33.092736],[102.851526,33.092753],[102.851535,33.092755],[102.852391,33.092957],[102.852889,33.093255],[102.852894,33.093258],[102.854324,33.094114],[102.855045,33.094495],[102.856554,33.095223],[102.857046,33.095461],[102.858194,33.096306],[102.858509,33.09655],[102.85889,33.096845],[102.85994,33.097442],[102.861071,33.098129],[102.861065,33.098389],[102.861061,33.098533],[102.861061,33.098539],[102.86106,33.098556],[102.861044,33.098582],[102.861033,33.098598],[102.861023,33.098613],[102.86101,33.098642],[102.861004,33.098666],[102.860991,33.098698],[102.860981,33.098735],[102.860968,33.098759],[102.86095,33.098794],[102.86093,33.098823],[102.860904,33.098841],[102.860862,33.09888],[102.860836,33.098903],[102.860807,33.098916],[102.860786,33.098915],[102.860755,33.098913],[102.860741,33.098919],[102.860737,33.098931],[102.860733,33.098949],[102.860725,33.098969],[102.860716,33.099011],[102.860713,33.099037],[102.860705,33.099086],[102.86071,33.099107],[102.860719,33.099122],[102.860743,33.099141],[102.860767,33.099153],[102.860783,33.099167],[102.8608,33.099188],[102.860808,33.099205],[102.860823,33.099223],[102.86055,33.099531],[102.860332,33.099777],[102.86032,33.099766],[102.860306,33.099764],[102.860286,33.099765],[102.860274,33.09978],[102.860267,33.099809],[102.860262,33.099833],[102.860259,33.099867],[102.860109,33.100093],[102.859586,33.100879],[102.859505,33.101633],[102.85946,33.102616],[102.859614,33.104024],[102.85943,33.104706],[102.859011,33.105138],[102.859009,33.105141],[102.85894,33.105212],[102.858917,33.105196],[102.85889,33.105181],[102.858874,33.105183],[102.858854,33.105195],[102.858841,33.105217],[102.858842,33.10523],[102.858861,33.105255],[102.858881,33.105272],[102.858927,33.105335],[102.858942,33.105392],[102.858947,33.105411],[102.858932,33.105501],[102.85888,33.105546],[102.858816,33.10557],[102.858744,33.10554],[102.858651,33.105511],[102.858625,33.105504],[102.858593,33.1055],[102.858585,33.105513],[102.858585,33.105536],[102.858591,33.105555],[102.858601,33.105574],[102.858535,33.105655],[102.858533,33.105658],[102.858459,33.10575],[102.8581,33.106194],[102.858056,33.106573],[102.858054,33.106595],[102.858049,33.106638],[102.858048,33.10665],[102.858042,33.1067],[102.857995,33.107105],[102.85789,33.107543],[102.85791,33.107566],[102.857915,33.107591],[102.857909,33.107607],[102.857891,33.107625],[102.857869,33.107631],[102.857842,33.107648],[102.857822,33.10766],[102.857799,33.107671],[102.857769,33.10769],[102.857747,33.107706],[102.857732,33.107722],[102.857725,33.107741],[102.857732,33.107759],[102.857748,33.107772],[102.857774,33.107783],[102.857804,33.10779],[102.85783,33.107792],[102.85779,33.107866],[102.857773,33.107899],[102.857133,33.109093],[102.857054,33.109278],[102.857044,33.109303],[102.857035,33.109324],[102.856712,33.110087],[102.856575,33.110577],[102.856583,33.111086],[102.856485,33.111682],[102.855896,33.112743],[102.855313,33.113541],[102.85473,33.114357],[102.854244,33.115437],[102.854168,33.116016],[102.854051,33.11654],[102.854206,33.117035],[102.854426,33.117408],[102.854543,33.117761],[102.854455,33.117953],[102.854298,33.118248],[102.854264,33.11824],[102.854234,33.11824],[102.854211,33.118248],[102.854176,33.118258],[102.854148,33.11827],[102.854131,33.118289],[102.854114,33.118314],[102.854114,33.118362],[102.854129,33.118395],[102.854151,33.11842],[102.854175,33.118441],[102.854193,33.118461],[102.854211,33.118491],[102.854222,33.118521],[102.854223,33.118562],[102.854217,33.118592],[102.854213,33.118627],[102.854211,33.118663],[102.854225,33.118689],[102.854252,33.118707],[102.854291,33.11872],[102.854306,33.118726],[102.854362,33.118723],[102.854394,33.118731],[102.85441,33.118759],[102.854413,33.118787],[102.854399,33.118796],[102.854376,33.118803],[102.854335,33.118801],[102.854301,33.118794],[102.854286,33.118788],[102.854248,33.118772],[102.854212,33.118761],[102.854139,33.118735],[102.854094,33.118716],[102.854077,33.118712],[102.854031,33.118709],[102.853997,33.118714],[102.853972,33.118723],[102.853954,33.118751],[102.853947,33.118778],[102.853949,33.118823],[102.853966,33.118863],[102.854038,33.118965],[102.854095,33.119045],[102.854166,33.119131],[102.854181,33.11914],[102.854178,33.11916],[102.854174,33.119177],[102.85412,33.119686],[102.853982,33.12021],[102.853571,33.120801],[102.85348,33.121958],[102.853504,33.122696],[102.853509,33.123364],[102.853622,33.123875],[102.85372,33.124966],[102.853662,33.125633],[102.853441,33.126173],[102.852825,33.127445],[102.852286,33.128138],[102.851337,33.129387],[102.850987,33.130066],[102.85087,33.130573],[102.850819,33.130941],[102.850642,33.131377],[102.850197,33.132493],[102.8502,33.133214],[102.850457,33.133798],[102.851046,33.134493],[102.8511,33.134863],[102.851124,33.135206],[102.851131,33.135302],[102.851089,33.135465],[102.851015,33.135757],[102.851047,33.136144],[102.851189,33.136322],[102.851521,33.136416],[102.851627,33.136446],[102.851671,33.136459],[102.851688,33.136473],[102.851702,33.136484],[102.851723,33.136495],[102.851751,33.136504],[102.851779,33.136511],[102.851798,33.136513],[102.851827,33.136512],[102.851832,33.136504],[102.851847,33.13649],[102.851868,33.136476],[102.851891,33.136467],[102.851923,33.136459],[102.851946,33.136454],[102.851979,33.136456],[102.852017,33.136465],[102.852053,33.136475],[102.852095,33.136494],[102.852112,33.136522],[102.852121,33.136544],[102.852123,33.136568],[102.852104,33.136603],[102.85209,33.136639],[102.852091,33.136659],[102.852091,33.136678],[102.852095,33.136698],[102.852105,33.136728],[102.852118,33.136748],[102.852128,33.136758],[102.852173,33.136778],[102.852215,33.136781],[102.852248,33.136776],[102.852266,33.13679],[102.852469,33.136941],[102.852832,33.137457],[102.852861,33.138121],[102.852869,33.138295],[102.852872,33.138371],[102.852986,33.138727],[102.853008,33.138794],[102.853026,33.138802],[102.853035,33.138805],[102.853088,33.138824],[102.853089,33.138839],[102.853089,33.13888],[102.853092,33.138913],[102.853098,33.138939],[102.853107,33.138956],[102.853122,33.138961],[102.853139,33.138962],[102.85316,33.138958],[102.853177,33.13895],[102.853205,33.138929],[102.85322,33.138914],[102.853244,33.138881],[102.853256,33.138865],[102.853286,33.138848],[102.853316,33.138835],[102.853345,33.138832],[102.853376,33.138832],[102.853393,33.138841],[102.853413,33.13886],[102.853423,33.138881],[102.853436,33.13895],[102.853567,33.138998],[102.85381,33.139045],[102.853848,33.139052],[102.853854,33.139064],[102.853864,33.139078],[102.853873,33.139094],[102.853881,33.139114],[102.853877,33.139125],[102.853863,33.139138],[102.853841,33.139155],[102.853816,33.139177],[102.853795,33.139206],[102.853791,33.139229],[102.853786,33.139245],[102.853798,33.139281],[102.853832,33.139319],[102.853866,33.139336],[102.853909,33.139338],[102.853982,33.139336],[102.854048,33.139305],[102.854106,33.139261],[102.854139,33.139216],[102.854173,33.139158],[102.854186,33.139134],[102.854293,33.139168],[102.854451,33.13954],[102.854528,33.139805],[102.854537,33.139898],[102.854561,33.140174],[102.85473,33.140365],[102.854846,33.140495],[102.854948,33.140517],[102.854987,33.140525],[102.854982,33.140539],[102.854952,33.140618],[102.854951,33.140664],[102.854965,33.140707],[102.854985,33.140758],[102.855005,33.140816],[102.855021,33.140868],[102.855043,33.140907],[102.855063,33.140926],[102.855073,33.140935],[102.855143,33.140953],[102.855172,33.140954],[102.855249,33.140936],[102.855349,33.1409],[102.855441,33.140877],[102.855493,33.140839],[102.855528,33.140789],[102.855553,33.14073],[102.85556,33.140705],[102.855567,33.14069],[102.855716,33.140756],[102.855855,33.14104],[102.855825,33.141443],[102.855628,33.141791],[102.855242,33.142224],[102.854334,33.142629],[102.853763,33.142953],[102.853168,33.143365],[102.852716,33.143919],[102.852429,33.144564],[102.852192,33.144876],[102.852083,33.145032],[102.85227,33.145088],[102.852482,33.144951],[102.852932,33.144777],[102.852965,33.144764],[102.852951,33.144732],[102.852939,33.144708],[102.852936,33.144686],[102.852938,33.144657],[102.852957,33.144616],[102.852969,33.144585],[102.852982,33.144554],[102.852993,33.144536],[102.853022,33.144513],[102.853061,33.1445],[102.853092,33.144486],[102.853135,33.144481],[102.853134,33.144491],[102.853139,33.144507],[102.853148,33.144523],[102.853164,33.144545],[102.853181,33.144557],[102.853198,33.144572],[102.853213,33.144591],[102.853239,33.144635],[102.853263,33.144665],[102.85331,33.144793],[102.853336,33.144851],[102.853364,33.144872],[102.853389,33.144883],[102.85342,33.144891],[102.853441,33.144889],[102.853486,33.14488],[102.85354,33.144859],[102.85365,33.144798],[102.853749,33.144732],[102.853756,33.144743],[102.853817,33.144838],[102.853821,33.144845],[102.853837,33.14487],[102.853755,33.144926],[102.8537,33.145038],[102.853699,33.145148],[102.853781,33.145297],[102.853896,33.145411],[102.854034,33.145519],[102.854226,33.145579],[102.85439,33.145581],[102.85455,33.145567],[102.854776,33.145569],[102.854947,33.145547],[102.855225,33.145487],[102.855509,33.145482],[102.855613,33.145539],[102.855598,33.145652],[102.85554,33.145764],[102.855516,33.145842],[102.855599,33.145876],[102.855789,33.145868],[102.855974,33.145804],[102.856089,33.14567],[102.856094,33.145585],[102.856045,33.145471],[102.856066,33.145388],[102.85616,33.145378],[102.856239,33.145446],[102.856245,33.145579],[102.856248,33.145822],[102.856272,33.145942],[102.856332,33.146023],[102.856461,33.146098],[102.856477,33.146163],[102.856424,33.146239],[102.856377,33.146316],[102.856421,33.146351],[102.856472,33.146434],[102.856384,33.146497],[102.856284,33.146505],[102.856168,33.146517],[102.856006,33.146612],[102.855852,33.146782],[102.855717,33.14691],[102.855579,33.146957],[102.855498,33.146889],[102.855453,33.146737],[102.855495,33.146601],[102.855659,33.146507],[102.855919,33.14642],[102.855979,33.146311],[102.855956,33.146215],[102.855822,33.146085],[102.855653,33.146024],[102.855534,33.146069],[102.85545,33.146149],[102.855352,33.146178],[102.855179,33.146183],[102.85511,33.146201],[102.855055,33.146318],[102.855086,33.14641],[102.855192,33.146522],[102.855236,33.146616],[102.855235,33.146732],[102.855157,33.146821],[102.855105,33.146836],[102.854999,33.146813],[102.854734,33.146718],[102.854548,33.146725],[102.854436,33.146795],[102.854388,33.146909],[102.854392,33.147019],[102.854387,33.147135],[102.854312,33.147169],[102.854224,33.14718],[102.854104,33.147179],[102.854015,33.14711],[102.853843,33.146878],[102.853679,33.146759],[102.853561,33.146715],[102.853444,33.146772],[102.853351,33.146871],[102.853303,33.147027],[102.853313,33.147122],[102.8534,33.147209],[102.853387,33.147215],[102.853364,33.147242],[102.853354,33.147254],[102.853194,33.14744],[102.853204,33.147897],[102.8534,33.148427],[102.853415,33.148458],[102.854155,33.149986],[102.85451,33.150835],[102.854685,33.151383],[102.854651,33.151927],[102.854557,33.152364],[102.854841,33.152703],[102.855174,33.152744],[102.855307,33.152592],[102.855372,33.152518],[102.855379,33.15251],[102.855508,33.152364],[102.85544,33.152273],[102.85541,33.152176],[102.855457,33.152109],[102.855547,33.152032],[102.855608,33.152005],[102.855643,33.151981],[102.855684,33.151956],[102.855704,33.151944],[102.855746,33.151933],[102.855789,33.151913],[102.855806,33.151899],[102.855822,33.151871],[102.855829,33.151844],[102.85583,33.151806],[102.855824,33.151769],[102.855803,33.15173],[102.855774,33.151695],[102.855752,33.151676],[102.855729,33.151658],[102.85571,33.151645],[102.855697,33.151634],[102.855689,33.151627],[102.855693,33.151609],[102.855704,33.151558],[102.855902,33.15114],[102.856594,33.151029],[102.857314,33.150602],[102.857804,33.150347],[102.857815,33.150341],[102.857839,33.150329],[102.857872,33.150312],[102.857882,33.150306],[102.858096,33.150194],[102.858822,33.1504],[102.85898,33.150789],[102.85901,33.151264],[102.859011,33.151537],[102.859011,33.151654],[102.859011,33.15167],[102.859012,33.151914],[102.859012,33.152037],[102.859004,33.152152],[102.858998,33.152237],[102.858995,33.152278],[102.858981,33.152475],[102.859028,33.152578],[102.859159,33.152865],[102.859383,33.153097],[102.859653,33.153154],[102.859765,33.153089],[102.859773,33.153084],[102.859809,33.153063],[102.859868,33.153076],[102.859935,33.153071],[102.860054,33.153038],[102.860215,33.152977],[102.860474,33.152937],[102.860837,33.152894],[102.860979,33.15291],[102.861046,33.153017],[102.861085,33.15315],[102.861123,33.153199],[102.861209,33.153191],[102.861275,33.15311],[102.86129,33.152994],[102.861229,33.152841],[102.861199,33.152716],[102.861222,33.152602],[102.861298,33.152558],[102.861424,33.152514],[102.861549,33.152506],[102.861616,33.152473],[102.861647,33.152404],[102.861624,33.152334],[102.861546,33.152268],[102.861504,33.152214],[102.861509,33.152158],[102.861555,33.152114],[102.861664,33.152065],[102.861823,33.152065],[102.861971,33.15208],[102.862039,33.152125],[102.862069,33.152217],[102.862069,33.152279],[102.862075,33.152367],[102.862058,33.152421],[102.862004,33.152495],[102.861962,33.152606],[102.862011,33.152698],[102.862113,33.152775],[102.862352,33.15288],[102.862458,33.15295],[102.862465,33.153008],[102.862453,33.153064],[102.862355,33.153086],[102.862212,33.153072],[102.862068,33.153041],[102.861989,33.153035],[102.861933,33.15307],[102.861884,33.153142],[102.861932,33.153235],[102.862139,33.153353],[102.862346,33.153449],[102.862383,33.153511],[102.862355,33.153554],[102.862262,33.153572],[102.862172,33.153568],[102.862053,33.153518],[102.861934,33.15344],[102.861797,33.153295],[102.861669,33.153154],[102.861592,33.153088],[102.861501,33.153072],[102.861445,33.153084],[102.861412,33.153129],[102.861378,33.153225],[102.86138,33.153301],[102.861445,33.153399],[102.861568,33.153538],[102.861669,33.153586],[102.861786,33.153597],[102.861951,33.153617],[102.862159,33.153744],[102.862241,33.153789],[102.862326,33.153777],[102.862478,33.153719],[102.862541,33.153721],[102.862582,33.153802],[102.86254,33.153853],[102.86244,33.153904],[102.862327,33.153945],[102.86223,33.153974],[102.8622,33.154043],[102.862199,33.154105],[102.862288,33.154155],[102.862377,33.154192],[102.862501,33.154205],[102.862604,33.154185],[102.862698,33.154113],[102.862897,33.153876],[102.86303,33.153675],[102.863146,33.153478],[102.863233,33.153429],[102.863339,33.153423],[102.863418,33.153405],[102.863483,33.153358],[102.863523,33.153372],[102.863529,33.153375],[102.863801,33.153472],[102.863919,33.153772],[102.864053,33.154249],[102.864187,33.15476],[102.864531,33.155241],[102.864896,33.155651],[102.865472,33.156047],[102.86569,33.156508],[102.865764,33.156895],[102.865664,33.157596],[102.86563,33.158123],[102.865555,33.158631],[102.865422,33.158975],[102.865406,33.159015],[102.865324,33.159033],[102.865248,33.159128],[102.865281,33.159241],[102.865596,33.159537],[102.865897,33.159707],[102.865913,33.159812],[102.865844,33.159867],[102.865668,33.15994],[102.865293,33.159982],[102.865059,33.159868],[102.864926,33.159835],[102.8648,33.159867],[102.864647,33.159967],[102.864519,33.159978],[102.864448,33.159918],[102.864468,33.159805],[102.864648,33.159691],[102.864819,33.159546],[102.86477,33.159426],[102.864538,33.159352],[102.864366,33.159369],[102.864263,33.159523],[102.864195,33.159734],[102.864172,33.159927],[102.864097,33.15993],[102.864087,33.15993],[102.864074,33.159931],[102.863895,33.159937],[102.863574,33.160248],[102.863502,33.160633],[102.863574,33.161108],[102.863879,33.161447],[102.864355,33.161631],[102.864754,33.161533],[102.864783,33.161509],[102.864873,33.161516],[102.864999,33.161521],[102.86525,33.161519],[102.865401,33.161506],[102.865589,33.161469],[102.865705,33.161424],[102.865759,33.16138],[102.865898,33.161269],[102.865943,33.161156],[102.865944,33.161058],[102.866143,33.161082],[102.866454,33.161227],[102.866535,33.161265],[102.86663,33.16167],[102.866684,33.162022],[102.866571,33.16213],[102.866565,33.162137],[102.866534,33.162126],[102.866468,33.162123],[102.866373,33.162138],[102.866243,33.162176],[102.866144,33.162241],[102.866104,33.162299],[102.866091,33.162355],[102.86609,33.162408],[102.866102,33.162461],[102.866124,33.162507],[102.866115,33.162514],[102.865747,33.162779],[102.865361,33.163177],[102.865602,33.163567],[102.866019,33.163627],[102.866049,33.163623],[102.866067,33.16362],[102.866087,33.163638],[102.866129,33.163664],[102.866189,33.163679],[102.866274,33.163688],[102.866401,33.163689],[102.86647,33.163684],[102.866604,33.163657],[102.866747,33.163615],[102.866805,33.163586],[102.866848,33.163563],[102.867022,33.163591],[102.86706,33.16375],[102.866885,33.164063],[102.866586,33.164357],[102.865868,33.164661],[102.865665,33.164893],[102.865616,33.16495],[102.86546,33.165128],[102.865702,33.165501],[102.866131,33.165877],[102.866544,33.166939],[102.86676,33.167373],[102.866764,33.167381],[102.866766,33.167386],[102.866786,33.167427],[102.866659,33.167582],[102.866645,33.167692],[102.866774,33.167739],[102.867033,33.167719],[102.867305,33.167618],[102.867519,33.167525],[102.86762,33.167553],[102.86763,33.167738],[102.8675,33.167968],[102.867306,33.168085],[102.86713,33.168122],[102.866879,33.16811],[102.866426,33.167984],[102.866066,33.167791],[102.865703,33.16752],[102.865508,33.167464],[102.865339,33.167433],[102.864892,33.167447],[102.864819,33.167533],[102.864747,33.167748],[102.864756,33.167881],[102.864866,33.168042],[102.864779,33.168146],[102.864555,33.168273],[102.864278,33.168436],[102.864056,33.168472],[102.863676,33.168258],[102.863466,33.168173],[102.863342,33.168191],[102.86317,33.168344],[102.86302,33.168427],[102.862941,33.168382],[102.862874,33.168211],[102.862836,33.167979],[102.862764,33.167736],[102.86265,33.167623],[102.862477,33.167608],[102.862307,33.167643],[102.862227,33.167727],[102.862176,33.167832],[102.862188,33.167935],[102.862212,33.168096],[102.862176,33.168216],[102.862051,33.168323],[102.861926,33.168373],[102.861776,33.168376],[102.861677,33.168331],[102.861593,33.168154],[102.861512,33.168096],[102.861444,33.168095],[102.861402,33.168229],[102.861505,33.168555],[102.861583,33.168773],[102.861749,33.168787],[102.862067,33.168776],[102.862206,33.168813],[102.862234,33.168919],[102.862153,33.169042],[102.861936,33.169123],[102.861687,33.169168],[102.861351,33.169146],[102.861059,33.16906],[102.860881,33.168954],[102.860573,33.16873],[102.860453,33.168635],[102.860316,33.168625],[102.860218,33.168672],[102.860066,33.168801],[102.859907,33.168838],[102.859743,33.168882],[102.859713,33.168954],[102.859809,33.169103],[102.860098,33.169344],[102.860249,33.169469],[102.860213,33.169551],[102.860084,33.169589],[102.859929,33.169577],[102.859826,33.169508],[102.859616,33.169344],[102.859416,33.169167],[102.859409,33.169194],[102.859404,33.169211],[102.8594,33.169228],[102.859343,33.169437],[102.859239,33.169561],[102.859056,33.169544],[102.858712,33.169257],[102.858524,33.168762],[102.858248,33.16842],[102.857959,33.167952],[102.857931,33.167917],[102.857922,33.167907],[102.857972,33.167881],[102.858029,33.167835],[102.858095,33.167748],[102.858135,33.167654],[102.858139,33.16759],[102.85813,33.167542],[102.858114,33.167501],[102.858093,33.167467],[102.858071,33.167444],[102.858038,33.16743],[102.857942,33.167426],[102.857857,33.167432],[102.857825,33.16744],[102.857799,33.167465],[102.857777,33.16751],[102.857736,33.167605],[102.857718,33.167656],[102.857711,33.167647],[102.857643,33.167564],[102.857122,33.166926],[102.8571,33.166922],[102.857076,33.166912],[102.857051,33.166896],[102.857039,33.166879],[102.85703,33.166857],[102.857034,33.166819],[102.857039,33.166796],[102.85706,33.16675],[102.857104,33.166699],[102.857175,33.166641],[102.857276,33.166588],[102.857307,33.166574],[102.857309,33.166554],[102.857302,33.166535],[102.857291,33.166525],[102.857284,33.166519],[102.857252,33.166501],[102.857208,33.166477],[102.857132,33.16644],[102.85696,33.166411],[102.856906,33.166414],[102.856868,33.166425],[102.856835,33.166424],[102.85679,33.166425],[102.856746,33.166441],[102.856711,33.166475],[102.856688,33.166519],[102.856692,33.166568],[102.856691,33.166602],[102.856673,33.166599],[102.856625,33.166589],[102.8566,33.166584],[102.85634,33.166533],[102.855953,33.166653],[102.85588,33.166919],[102.855957,33.167187],[102.856167,33.167472],[102.856597,33.167662],[102.856908,33.167892],[102.856943,33.168003],[102.856966,33.168075],[102.856987,33.168142],[102.856926,33.16813],[102.856884,33.168128],[102.856872,33.168127],[102.856856,33.168134],[102.856843,33.168161],[102.85684,33.168189],[102.856841,33.168213],[102.85685,33.168257],[102.85686,33.168311],[102.856863,33.168345],[102.856859,33.168364],[102.856843,33.168379],[102.85681,33.168398],[102.85676,33.168403],[102.856693,33.168403],[102.856622,33.168396],[102.856574,33.168388],[102.856517,33.168351],[102.856489,33.168322],[102.856458,33.168259],[102.856444,33.168215],[102.856441,33.168165],[102.856449,33.168129],[102.856521,33.167951],[102.856551,33.167918],[102.856582,33.167874],[102.856595,33.167834],[102.856603,33.167797],[102.856603,33.167773],[102.856599,33.167758],[102.856592,33.167748],[102.856569,33.167743],[102.856545,33.167745],[102.8565,33.16775],[102.856354,33.167807],[102.856333,33.167814],[102.856278,33.167848],[102.856262,33.167865],[102.856256,33.167881],[102.856258,33.167899],[102.856292,33.167954],[102.856306,33.167983],[102.856312,33.168014],[102.856313,33.168053],[102.856313,33.168071],[102.856309,33.168124],[102.85632,33.16818],[102.856335,33.168224],[102.856349,33.168261],[102.856368,33.1683],[102.856373,33.16831],[102.856379,33.168347],[102.856378,33.16838],[102.856371,33.168405],[102.856354,33.168429],[102.856326,33.168455],[102.856297,33.168464],[102.856263,33.168472],[102.856219,33.168475],[102.85618,33.168471],[102.856149,33.168464],[102.856094,33.168422],[102.856034,33.168371],[102.856021,33.168364],[102.856004,33.168361],[102.855992,33.168367],[102.855983,33.168388],[102.855949,33.168487],[102.85587,33.168433],[102.855857,33.168446],[102.855838,33.168458],[102.855817,33.168462],[102.855788,33.168459],[102.855756,33.168447],[102.855734,33.168435],[102.85572,33.168431],[102.855609,33.168429],[102.855538,33.16843],[102.855463,33.168429],[102.855406,33.168438],[102.855371,33.168453],[102.855337,33.168482],[102.85532,33.16852],[102.855319,33.168555],[102.855329,33.168594],[102.855358,33.168637],[102.855403,33.168671],[102.855457,33.168681],[102.855518,33.168681],[102.855547,33.168681],[102.855583,33.168693],[102.855594,33.168696],[102.855595,33.168758],[102.855513,33.168811],[102.855466,33.168844],[102.855409,33.168881],[102.855308,33.16893],[102.855245,33.168964],[102.855212,33.168993],[102.855192,33.169022],[102.855186,33.169059],[102.855195,33.169088],[102.85521,33.169108],[102.855252,33.169131],[102.855296,33.169159],[102.855341,33.169185],[102.855382,33.169193],[102.855413,33.16919],[102.855477,33.169174],[102.855521,33.16917],[102.855528,33.169169],[102.855675,33.169172],[102.855712,33.169172],[102.855764,33.169166],[102.85581,33.169145],[102.855842,33.169141],[102.855865,33.169169],[102.855874,33.169204],[102.85589,33.169255],[102.855918,33.169305],[102.855948,33.16934],[102.85598,33.169407],[102.855999,33.169492],[102.856027,33.169536],[102.856061,33.169569],[102.856104,33.169579],[102.856156,33.169578],[102.856212,33.16957],[102.856246,33.16956],[102.856274,33.169541],[102.856326,33.169505],[102.856363,33.169483],[102.856448,33.169426],[102.856501,33.169407],[102.856552,33.169407],[102.856612,33.169411],[102.856653,33.16942],[102.856692,33.169455],[102.856706,33.169484],[102.856704,33.169532],[102.856683,33.169562],[102.856641,33.169596],[102.856597,33.169639],[102.856585,33.169674],[102.856589,33.169718],[102.856601,33.169763],[102.856625,33.169799],[102.856671,33.169839],[102.856709,33.169865],[102.856788,33.169907],[102.856839,33.16992],[102.856891,33.169935],[102.856928,33.169946],[102.856944,33.169959],[102.856947,33.169976],[102.856942,33.169997],[102.856916,33.170026],[102.856879,33.170054],[102.856835,33.170071],[102.856783,33.170071],[102.856735,33.170068],[102.856697,33.17006],[102.85666,33.170041],[102.856613,33.170009],[102.856572,33.169987],[102.85653,33.169983],[102.856442,33.169986],[102.856364,33.170004],[102.856315,33.170021],[102.85626,33.170055],[102.856233,33.170104],[102.856207,33.170157],[102.856186,33.17017],[102.856143,33.170184],[102.856097,33.170204],[102.856064,33.170227],[102.856049,33.170249],[102.85605,33.170283],[102.856063,33.170315],[102.85609,33.170345],[102.856108,33.17036],[102.856173,33.170398],[102.856287,33.17043],[102.856386,33.170435],[102.856585,33.170469],[102.856712,33.170487],[102.856807,33.170497],[102.856898,33.17051],[102.85694,33.170544],[102.856957,33.170575],[102.856962,33.170616],[102.856962,33.170674],[102.856957,33.170714],[102.856938,33.170765],[102.856924,33.170825],[102.856924,33.170884],[102.856935,33.170937],[102.856946,33.170997],[102.856957,33.17105],[102.85694,33.171077],[102.856903,33.171114],[102.856845,33.171171],[102.856805,33.171211],[102.856777,33.171246],[102.856779,33.171275],[102.856786,33.171303],[102.856801,33.171337],[102.856807,33.171369],[102.856807,33.171396],[102.85679,33.171408],[102.856761,33.171403],[102.856675,33.171325],[102.856601,33.171244],[102.856562,33.171184],[102.856514,33.17112],[102.856492,33.171103],[102.856459,33.171087],[102.85643,33.17108],[102.856393,33.17108],[102.856363,33.171088],[102.856339,33.171101],[102.856314,33.171125],[102.856312,33.171128],[102.856289,33.171179],[102.85628,33.171261],[102.856287,33.171378],[102.85631,33.171476],[102.85633,33.171511],[102.856336,33.171525],[102.856337,33.171558],[102.856331,33.171578],[102.856317,33.171582],[102.856267,33.171576],[102.85629,33.17162],[102.856245,33.171608],[102.85606,33.171533],[102.856043,33.171431],[102.856113,33.171284],[102.856257,33.170989],[102.856186,33.170805],[102.856081,33.170778],[102.855947,33.17082],[102.855806,33.170955],[102.855686,33.171148],[102.855636,33.171369],[102.855642,33.171499],[102.855575,33.171539],[102.855532,33.171497],[102.855523,33.171488],[102.855469,33.171435],[102.855461,33.171429],[102.855157,33.171219],[102.855041,33.171202],[102.855005,33.171286],[102.854901,33.171467],[102.854511,33.171713],[102.854437,33.171779],[102.854426,33.171789],[102.85433,33.171874],[102.854049,33.172126],[102.853644,33.17233],[102.852718,33.172623],[102.85213,33.172768],[102.852044,33.172905],[102.852058,33.172935],[102.852073,33.172976],[102.852082,33.173006],[102.852099,33.173051],[102.85214,33.173095],[102.852192,33.173125],[102.852237,33.173137],[102.852301,33.173148],[102.852331,33.173199],[102.852582,33.173393],[102.852959,33.173695],[102.853418,33.174068],[102.853463,33.174094],[102.85351,33.174122],[102.853906,33.173709],[102.854238,33.173342],[102.854302,33.173219],[102.854332,33.173127],[102.85435,33.172652],[102.854404,33.172652],[102.854494,33.172654],[102.854534,33.17279],[102.854684,33.172877],[102.855221,33.172888],[102.855663,33.172954],[102.856086,33.173109],[102.856217,33.17329],[102.856137,33.173504],[102.855868,33.173689],[102.855719,33.173823],[102.855707,33.17396],[102.855776,33.174117],[102.85594,33.174207],[102.856179,33.174188],[102.856328,33.173994],[102.856494,33.173635],[102.856714,33.173269],[102.857016,33.173076],[102.857299,33.173132],[102.857395,33.173369],[102.857242,33.173623],[102.856968,33.173815],[102.856708,33.174051],[102.856567,33.174424],[102.856441,33.174547],[102.856024,33.174698],[102.855619,33.174788],[102.855425,33.17492],[102.855369,33.175146],[102.855541,33.175322],[102.856057,33.175644],[102.856167,33.175862],[102.856038,33.176036],[102.855606,33.176157],[102.855556,33.176287],[102.855665,33.176531],[102.855851,33.176542],[102.856289,33.176468],[102.856598,33.176491],[102.856723,33.176825],[102.85676,33.177042],[102.856698,33.177297],[102.856483,33.177428],[102.856151,33.177578],[102.855763,33.177666],[102.855164,33.177819],[102.854894,33.177926],[102.854849,33.178117],[102.854903,33.178352],[102.855138,33.178474],[102.855364,33.178674],[102.855804,33.179088],[102.856238,33.17942],[102.856454,33.179801],[102.856415,33.179975],[102.85608,33.18014],[102.855702,33.180375],[102.855445,33.180412],[102.855288,33.180313],[102.855175,33.180115],[102.8552,33.179943],[102.855286,33.179729],[102.855208,33.179613],[102.855038,33.179555],[102.854861,33.17962],[102.854819,33.179859],[102.854888,33.180189],[102.854971,33.180526],[102.854965,33.180722],[102.85484,33.180846],[102.854603,33.180874],[102.854372,33.180787],[102.854121,33.18066],[102.854027,33.180679],[102.853948,33.180836],[102.853887,33.181026],[102.853915,33.181135],[102.854056,33.181274],[102.854435,33.181477],[102.854627,33.181643],[102.854615,33.181885],[102.854597,33.182196],[102.854584,33.182508],[102.854372,33.182789],[102.85431,33.183057],[102.854236,33.183283],[102.854177,33.183334],[102.854064,33.183327],[102.853893,33.183215],[102.853636,33.182961],[102.853336,33.182695],[102.853154,33.182295],[102.853024,33.181977],[102.852848,33.181963],[102.852663,33.182093],[102.852549,33.182296],[102.852552,33.182487],[102.852691,33.18277],[102.852761,33.183031],[102.852804,33.18326],[102.852919,33.183342],[102.85319,33.183439],[102.853239,33.183504],[102.853136,33.183586],[102.852772,33.18371],[102.852448,33.183722],[102.85214,33.183616],[102.852051,33.18333],[102.851944,33.182979],[102.851841,33.182918],[102.851651,33.183053],[102.851108,33.18347],[102.850898,33.183715],[102.850819,33.183976],[102.851029,33.184095],[102.851538,33.184096],[102.852272,33.184126],[102.85259,33.184497],[102.852927,33.185096],[102.853149,33.185151],[102.853271,33.185035],[102.853386,33.184747],[102.853548,33.184514],[102.853971,33.184332],[102.854266,33.184372],[102.854544,33.184654],[102.854868,33.18493],[102.855164,33.185104],[102.85541,33.185052],[102.855977,33.184947],[102.856161,33.185002],[102.856193,33.185223],[102.856055,33.18546],[102.855861,33.185676],[102.855846,33.185837],[102.856065,33.185865],[102.856291,33.185584],[102.856502,33.185369],[102.856712,33.185359],[102.856835,33.185578],[102.856954,33.186002],[102.85706,33.186716],[102.857127,33.186833],[102.857288,33.186878],[102.857428,33.186812],[102.857578,33.186476],[102.857712,33.186129],[102.857964,33.186082],[102.858294,33.186339],[102.858553,33.186566],[102.858638,33.186848],[102.858746,33.187039],[102.858977,33.18702],[102.859235,33.186823],[102.859393,33.18688],[102.859741,33.187323],[102.860062,33.187779],[102.860288,33.188138],[102.860301,33.188496],[102.860373,33.188691],[102.860739,33.18882],[102.861396,33.188919],[102.861854,33.189231],[102.862218,33.189396],[102.862522,33.189389],[102.862897,33.189376],[102.863164,33.189458],[102.863532,33.189559],[102.863676,33.189272],[102.863892,33.189149],[102.864033,33.189344],[102.863899,33.18961],[102.863689,33.189923],[102.863695,33.190473],[102.863618,33.190695],[102.863271,33.190752],[102.86302,33.190831],[102.862945,33.190957],[102.863189,33.191131],[102.863653,33.19119],[102.864031,33.191048],[102.864323,33.19085],[102.864723,33.19076],[102.86515,33.19083],[102.865354,33.191015],[102.865437,33.191342],[102.865572,33.191543],[102.865916,33.191681],[102.866537,33.191707],[102.866913,33.191579],[102.867118,33.191274],[102.867154,33.190942],[102.866997,33.19073],[102.866556,33.190579],[102.866222,33.190423],[102.865726,33.190372],[102.865304,33.19031],[102.865188,33.190118],[102.865233,33.189854],[102.865637,33.18949],[102.866046,33.189096],[102.866163,33.188845],[102.866085,33.188669],[102.865865,33.188487],[102.86585,33.188391],[102.866066,33.188317],[102.866306,33.188392],[102.8669,33.188803],[102.867363,33.189134],[102.867759,33.18938],[102.868,33.189369],[102.868087,33.189224],[102.868062,33.188988],[102.867732,33.188688],[102.867612,33.188564],[102.867667,33.188406],[102.867978,33.188293],[102.868247,33.188182],[102.868295,33.188021],[102.868124,33.187929],[102.86795,33.187698],[102.867821,33.187109],[102.867654,33.18676],[102.867559,33.186512],[102.867636,33.186342],[102.867811,33.186257],[102.868261,33.186406],[102.868873,33.186657],[102.868996,33.186802],[102.86901,33.186978],[102.869012,33.187142],[102.869186,33.187254],[102.869403,33.187321],[102.869645,33.187264],[102.869943,33.187205],[102.870056,33.187295],[102.870022,33.187494],[102.869847,33.187687],[102.869735,33.187858],[102.869765,33.188021],[102.869903,33.188075],[102.870106,33.187997],[102.87034,33.187774],[102.870545,33.187568],[102.870774,33.18752],[102.870958,33.187566],[102.871106,33.187748],[102.871219,33.187862],[102.871402,33.187851],[102.871574,33.187525],[102.871766,33.187247],[102.872046,33.187197],[102.872172,33.187269],[102.872207,33.187451],[102.872124,33.187605],[102.872107,33.187895],[102.872055,33.188207],[102.872009,33.188515],[102.872182,33.188655],[102.872397,33.188704],[102.872461,33.188719],[102.872783,33.188895],[102.87286,33.188897],[102.873122,33.188904],[102.873336,33.188737],[102.87347,33.188385],[102.873641,33.188082],[102.873879,33.188068],[102.874013,33.188298],[102.873936,33.188647],[102.873724,33.189367],[102.873707,33.189662],[102.873812,33.189904],[102.874092,33.189954],[102.874436,33.189882],[102.874778,33.189949],[102.874902,33.190154],[102.874874,33.190339],[102.874562,33.19054],[102.874168,33.190886],[102.873756,33.19115],[102.87376,33.191274],[102.873942,33.191373],[102.874351,33.191556],[102.874508,33.191868],[102.874645,33.19205],[102.875228,33.19206],[102.875511,33.192157],[102.875701,33.192389],[102.875536,33.192611],[102.875157,33.192781],[102.874901,33.192999],[102.874933,33.193129],[102.875286,33.1932],[102.875919,33.193122],[102.87614,33.192925],[102.876395,33.192531],[102.876719,33.192525],[102.876817,33.192882],[102.876812,33.193258],[102.877043,33.193372],[102.877263,33.1933],[102.877451,33.192989],[102.877415,33.19263],[102.877449,33.192332],[102.877707,33.192285],[102.877897,33.192712],[102.877772,33.193017],[102.877537,33.19345],[102.877164,33.193916],[102.876879,33.194242],[102.876882,33.194419],[102.877191,33.194468],[102.877701,33.194402],[102.878099,33.194368],[102.878267,33.19459],[102.878249,33.194794],[102.877983,33.19503],[102.877598,33.195196],[102.87714,33.195287],[102.876999,33.195394],[102.877035,33.195574],[102.877286,33.195692],[102.87745,33.1958],[102.877485,33.195929],[102.877387,33.196029],[102.877212,33.196114],[102.877071,33.196216],[102.877068,33.196344],[102.877256,33.196444],[102.877707,33.196482],[102.878042,33.196635],[102.878419,33.197029],[102.878504,33.197386],[102.878398,33.197604],[102.878233,33.197725],[102.877974,33.197868],[102.877907,33.198012],[102.878042,33.198175],[102.878364,33.198178],[102.879058,33.198093],[102.879687,33.198165],[102.879742,33.198317],[102.87966,33.198478],[102.879259,33.19879],[102.879215,33.19896],[102.879372,33.199172],[102.879953,33.199189],[102.880336,33.199244],[102.880946,33.19957],[102.881179,33.199804],[102.881181,33.19999],[102.881012,33.200122],[102.880801,33.20031],[102.88065,33.2005],[102.880722,33.200646],[102.880923,33.200765],[102.881327,33.200729],[102.881942,33.200578],[102.882119,33.200652],[102.882102,33.200846],[102.881928,33.20102],[102.881786,33.201224],[102.881844,33.201388],[102.882159,33.20152],[102.882604,33.201581],[102.882693,33.201699],[102.882907,33.201918],[102.883051,33.202162],[102.883038,33.202385],[102.882941,33.2026],[102.88274,33.202735],[102.882372,33.202846],[102.881961,33.2029],[102.881688,33.202817],[102.881583,33.202584],[102.881501,33.202238],[102.881393,33.202143],[102.881229,33.202132],[102.880979,33.202245],[102.880859,33.202455],[102.880912,33.202619],[102.881126,33.202932],[102.881335,33.203136],[102.881566,33.20326],[102.881841,33.2034],[102.881906,33.203546],[102.881774,33.203669],[102.881377,33.203707],[102.881129,33.20364],[102.88073,33.203266],[102.880498,33.20312],[102.880336,33.203098],[102.880178,33.203187],[102.88006,33.203396],[102.879948,33.20361],[102.879794,33.203701],[102.879562,33.203741],[102.879305,33.203841],[102.879244,33.204007],[102.879455,33.204408],[102.879752,33.204771],[102.880229,33.204905],[102.88027,33.205071],[102.880021,33.205196],[102.879562,33.205345],[102.879447,33.205494],[102.879475,33.205672],[102.880042,33.205948],[102.880437,33.206174],[102.880653,33.206459],[102.880786,33.206708],[102.88097,33.206753],[102.881599,33.20656],[102.881807,33.206692],[102.882021,33.207197],[102.882086,33.207533],[102.881954,33.207666],[102.88177,33.207706],[102.88148,33.207627],[102.880866,33.207459],[102.880327,33.207389],[102.879435,33.207332],[102.878863,33.207368],[102.878347,33.207519],[102.878146,33.207542],[102.878058,33.207389],[102.878141,33.207131],[102.87815,33.206971],[102.877948,33.206934],[102.877598,33.20697],[102.877276,33.207013],[102.876899,33.207062],[102.876816,33.207255],[102.876904,33.207495],[102.877028,33.207618],[102.877392,33.208067],[102.877455,33.208384],[102.877327,33.208604],[102.877053,33.208925],[102.876723,33.209343],[102.876555,33.20959],[102.876614,33.209746],[102.877007,33.209719],[102.877352,33.20954],[102.877606,33.20926],[102.87784,33.208646],[102.878047,33.208411],[102.87839,33.208345],[102.878707,33.208739],[102.878609,33.209555],[102.878665,33.210143],[102.878486,33.210202],[102.878036,33.210041],[102.877638,33.210067],[102.87749,33.210271],[102.877402,33.21071],[102.877371,33.211157],[102.877482,33.211476],[102.877831,33.211528],[102.87822,33.211259],[102.878891,33.210734],[102.879219,33.210952],[102.879335,33.211228],[102.879264,33.211475],[102.878795,33.211747],[102.878261,33.211904],[102.877611,33.211889],[102.876957,33.211928],[102.876879,33.212038],[102.876911,33.212229],[102.87745,33.212346],[102.878098,33.212251],[102.878578,33.212178],[102.878935,33.212246],[102.879453,33.212491],[102.879793,33.212787],[102.879963,33.213079],[102.879914,33.213325],[102.879743,33.213542],[102.879436,33.213658],[102.878894,33.213612],[102.878588,33.213428],[102.87789,33.21295],[102.87759,33.212991],[102.877485,33.213115],[102.87748,33.213354],[102.877595,33.213788],[102.877638,33.214136],[102.877576,33.214323],[102.877072,33.214298],[102.876716,33.214141],[102.876528,33.213858],[102.876565,33.213449],[102.876725,33.213034],[102.876722,33.212873],[102.876289,33.212859],[102.876145,33.213003],[102.876081,33.213211],[102.876195,33.213451],[102.876171,33.213722],[102.876054,33.214189],[102.875865,33.214363],[102.875557,33.214765],[102.875677,33.214959],[102.876039,33.214946],[102.876602,33.214694],[102.876906,33.21466],[102.877047,33.214934],[102.876838,33.215236],[102.876453,33.215431],[102.87584,33.215588],[102.87548,33.215566],[102.875188,33.215411],[102.874663,33.214707],[102.874311,33.214335],[102.874007,33.214233],[102.873825,33.214297],[102.873742,33.214479],[102.873798,33.214896],[102.874043,33.215262],[102.87456,33.215623],[102.875222,33.215942],[102.875718,33.215945],[102.876598,33.215851],[102.876764,33.21598],[102.876791,33.216186],[102.876742,33.21636],[102.876501,33.216491],[102.876018,33.216626],[102.875401,33.216764],[102.87527,33.216943],[102.87526,33.217109],[102.875468,33.217255],[102.875901,33.217478],[102.876438,33.217628],[102.876517,33.21763],[102.876919,33.217639],[102.877422,33.217525],[102.878134,33.217403],[102.878452,33.217475],[102.878655,33.217627],[102.878813,33.21783],[102.878788,33.218144],[102.878636,33.218257],[102.878276,33.218302],[102.877835,33.218388],[102.877646,33.218529],[102.877591,33.218741],[102.87769,33.218967],[102.878208,33.219444],[102.878635,33.219896],[102.878605,33.220041],[102.878397,33.220148],[102.878032,33.220276],[102.877952,33.220433],[102.878093,33.220621],[102.878608,33.220927],[102.879037,33.221043],[102.879335,33.220916],[102.879482,33.220651],[102.87951,33.220405],[102.879434,33.220021],[102.879404,33.219671],[102.879485,33.219508],[102.879722,33.219436],[102.880109,33.219437],[102.880335,33.219572],[102.880419,33.219811],[102.880538,33.220309],[102.880496,33.220597],[102.880425,33.22094],[102.880412,33.221079],[102.88056,33.221167],[102.880773,33.221087],[102.880946,33.220894],[102.881144,33.220709],[102.881418,33.220599],[102.881724,33.220602],[102.882309,33.220678],[102.882516,33.220616],[102.882813,33.22048],[102.883136,33.220489],[102.883571,33.220592],[102.883763,33.220655],[102.884003,33.220622],[102.884236,33.22061],[102.884372,33.220649],[102.884458,33.220786],[102.884507,33.220964],[102.884587,33.221201],[102.884615,33.221397],[102.884611,33.221624],[102.884594,33.222066],[102.88469,33.222463],[102.884879,33.222571],[102.885279,33.222559],[102.885777,33.222554],[102.885982,33.22267],[102.88598,33.222849],[102.88569,33.223094],[102.885317,33.223368],[102.885301,33.223496],[102.885456,33.223606],[102.885738,33.223582],[102.886025,33.223404],[102.886486,33.222829],[102.886929,33.222156],[102.887182,33.222059],[102.88735,33.222165],[102.887351,33.222323],[102.887083,33.223284],[102.886881,33.224173],[102.886656,33.224978],[102.886652,33.225178],[102.886773,33.225222],[102.887335,33.224988],[102.887719,33.22489],[102.88793,33.224916],[102.888442,33.225208],[102.888722,33.225427],[102.888766,33.225625],[102.88868,33.225783],[102.888423,33.226394],[102.888141,33.227232],[102.887977,33.227336],[102.887689,33.227256],[102.887502,33.227143],[102.886993,33.22674],[102.886835,33.226434],[102.886748,33.225892],[102.886656,33.225617],[102.88636,33.225543],[102.886035,33.225567],[102.885743,33.225722],[102.885578,33.225929],[102.885606,33.226216],[102.885872,33.226623],[102.886061,33.226983],[102.886162,33.227884],[102.886237,33.228639],[102.886503,33.228746],[102.886771,33.228909],[102.88681,33.229111],[102.88671,33.229269],[102.886361,33.229416],[102.885909,33.229402],[102.884948,33.229353],[102.884144,33.229267],[102.883596,33.229144],[102.883219,33.22881],[102.882999,33.228686],[102.882816,33.228726],[102.88273,33.229128],[102.882805,33.229593],[102.883041,33.230494],[102.883432,33.230886],[102.883645,33.230958],[102.8839,33.230826],[102.88417,33.230331],[102.884403,33.229662],[102.884605,33.229554],[102.884872,33.22964],[102.885304,33.229768],[102.885683,33.229834],[102.886169,33.229821],[102.886355,33.22985],[102.886318,33.23],[102.886141,33.230177],[102.885533,33.230879],[102.885255,33.231377],[102.88518,33.231593],[102.885261,33.231703],[102.885497,33.231744],[102.885966,33.23162],[102.886469,33.231435],[102.886753,33.231426],[102.88693,33.231496],[102.887065,33.231665],[102.887173,33.231934],[102.887334,33.232467],[102.887353,33.232666],[102.887254,33.232817],[102.887074,33.232833],[102.88683,33.232844],[102.886515,33.232891],[102.886205,33.232957],[102.886112,33.233058],[102.886143,33.233207],[102.886338,33.233358],[102.886677,33.233472],[102.88697,33.23345],[102.887288,33.233387],[102.887654,33.233339],[102.888415,33.233116],[102.889023,33.232847],[102.889106,33.232582],[102.889187,33.232291],[102.889355,33.232205],[102.889523,33.232236],[102.889832,33.232529],[102.890171,33.232977],[102.890233,33.233132],[102.89004,33.233276],[102.889766,33.233494],[102.889417,33.233794],[102.888742,33.234203],[102.888388,33.234381],[102.888307,33.234524],[102.888403,33.234632],[102.888722,33.234691],[102.889308,33.23478],[102.889447,33.234878],[102.889469,33.235083],[102.889301,33.235258],[102.888952,33.235426],[102.888621,33.235487],[102.888223,33.235521],[102.887839,33.235474],[102.887152,33.235156],[102.886755,33.234968],[102.886697,33.234862],[102.886779,33.234708],[102.886945,33.234411],[102.886993,33.234245],[102.886818,33.234178],[102.886645,33.234228],[102.886336,33.234504],[102.886005,33.234933],[102.885894,33.235239],[102.88575,33.235887],[102.885654,33.235997],[102.885538,33.236025],[102.885424,33.235934],[102.885224,33.235722],[102.885037,33.235579],[102.884805,33.235541],[102.884645,33.235591],[102.884464,33.235773],[102.884382,33.236088],[102.884376,33.236331],[102.884594,33.236461],[102.885068,33.236788],[102.885294,33.237065],[102.885354,33.237343],[102.885254,33.237528],[102.885069,33.23768],[102.884622,33.237852],[102.884345,33.23784],[102.883727,33.237662],[102.883055,33.237506],[102.882795,33.237591],[102.882744,33.237793],[102.88296,33.238079],[102.883384,33.238282],[102.884197,33.238521],[102.884537,33.238525],[102.884742,33.23831],[102.885012,33.238159],[102.88524,33.23813],[102.885324,33.238343],[102.885333,33.238752],[102.885351,33.239348],[102.88529,33.239803],[102.88507,33.239879],[102.884398,33.239742],[102.884024,33.239736],[102.883863,33.239882],[102.883846,33.240162],[102.884194,33.240336],[102.884848,33.240541],[102.885931,33.240851],[102.886625,33.241094],[102.886962,33.241286],[102.887068,33.241412],[102.887066,33.241559],[102.886971,33.241722],[102.886906,33.241905],[102.886872,33.242161],[102.886869,33.242297],[102.887023,33.242332],[102.88727,33.242238],[102.887805,33.24201],[102.888687,33.241701],[102.889379,33.241501],[102.889574,33.241516],[102.889703,33.241628],[102.889737,33.241851],[102.889561,33.242176],[102.88931,33.242391],[102.889041,33.242784],[102.889042,33.242905],[102.889181,33.243007],[102.889383,33.243044],[102.889892,33.24299],[102.890284,33.242971],[102.890503,33.243012],[102.890846,33.243211],[102.891113,33.243297],[102.891266,33.243225],[102.891251,33.243046],[102.89107,33.242802],[102.890757,33.242475],[102.890742,33.242299],[102.890848,33.242154],[102.891057,33.242077],[102.891472,33.242111],[102.892056,33.242296],[102.892356,33.242473],[102.892435,33.242723],[102.892283,33.243067],[102.891935,33.243422],[102.891163,33.24389],[102.890562,33.244241],[102.889853,33.244604],[102.889654,33.244733],[102.889557,33.244944],[102.889802,33.245114],[102.890317,33.2452],[102.890887,33.245127],[102.891293,33.244869],[102.891645,33.244558],[102.892258,33.244044],[102.892504,33.243968],[102.892716,33.243995],[102.893113,33.244172],[102.893426,33.244428],[102.893923,33.244959],[102.89429,33.245438],[102.894264,33.245594],[102.894022,33.245742],[102.893459,33.245776],[102.89241,33.245672],[102.892226,33.245703],[102.892149,33.245779],[102.892141,33.245979],[102.892439,33.24628],[102.892784,33.24648],[102.893311,33.246555],[102.893818,33.246548],[102.894883,33.246468],[102.895153,33.246499],[102.895398,33.24658],[102.89582,33.246931],[102.896192,33.247056],[102.896394,33.246997],[102.896449,33.246828],[102.896273,33.246549],[102.895895,33.246229],[102.895818,33.246078],[102.895906,33.245939],[102.896189,33.245865],[102.896799,33.245863],[102.897115,33.245915],[102.897341,33.246041],[102.897529,33.24623],[102.897822,33.246552],[102.898129,33.246865],[102.898144,33.24697],[102.897862,33.247193],[102.897746,33.24737],[102.89772,33.247506],[102.897828,33.247606],[102.89805,33.247686],[102.898386,33.247744],[102.899047,33.247929],[102.899276,33.248081],[102.899398,33.248322],[102.899431,33.248606],[102.899403,33.2491],[102.899288,33.249309],[102.898936,33.249619],[102.898817,33.249805],[102.898974,33.249935],[102.899372,33.250204],[102.899654,33.250625],[102.899824,33.251013],[102.899726,33.251142],[102.899016,33.251156],[102.898378,33.251233],[102.897627,33.251277],[102.897016,33.251388],[102.896725,33.251494],[102.896494,33.251712],[102.89637,33.251827],[102.896213,33.25182],[102.896089,33.25161],[102.895998,33.251345],[102.895913,33.250906],[102.895741,33.250662],[102.895498,33.250669],[102.895342,33.250815],[102.895287,33.251103],[102.895287,33.251499],[102.895229,33.251543],[102.895215,33.251553],[102.895108,33.251635],[102.895065,33.251667],[102.8946,33.252208],[102.894164,33.252633],[102.894157,33.252639],[102.894068,33.252726],[102.894085,33.252752],[102.894194,33.252928],[102.894255,33.253026],[102.895721,33.255386],[102.895736,33.255445],[102.895739,33.255484],[102.895741,33.255526],[102.895741,33.255564],[102.895732,33.255602],[102.895716,33.25565],[102.895714,33.25568],[102.895713,33.2557],[102.895726,33.255718],[102.895744,33.255718],[102.89575,33.255705],[102.895762,33.255691],[102.895771,33.255693],[102.895782,33.255703],[102.895788,33.25571],[102.895805,33.255748],[102.89583,33.255811],[102.895843,33.255845],[102.895863,33.255849],[102.895875,33.255844],[102.895879,33.255821],[102.895877,33.255776],[102.895862,33.25574],[102.895853,33.255707],[102.895852,33.25568],[102.895851,33.255654],[102.895862,33.255613],[102.896195,33.256149],[102.896639,33.256863],[102.896783,33.257095],[102.897857,33.258822],[102.918741,33.29242],[102.918913,33.292696],[102.918917,33.292834],[102.919007,33.292947],[102.919032,33.293128],[102.918998,33.293294],[102.918977,33.293403],[102.918996,33.293508],[102.919071,33.293562],[102.919194,33.293638],[102.91929,33.293746],[102.919345,33.29385],[102.919388,33.29395],[102.919384,33.294087],[102.919316,33.294215],[102.91927,33.294281],[102.919245,33.294396],[102.91929,33.294488],[102.919364,33.29455],[102.919532,33.29459],[102.919662,33.294607],[102.919821,33.294617],[102.919901,33.294644],[102.920008,33.294696],[102.920188,33.294747],[102.920341,33.29463],[102.920409,33.294639],[102.92046,33.294618],[102.920504,33.294597],[102.920524,33.294569],[102.920537,33.294543],[102.920567,33.294497],[102.920603,33.294483],[102.920786,33.294569],[102.921041,33.294573],[102.921283,33.294565],[102.921339,33.294614],[102.92125,33.294756],[102.920962,33.29493],[102.920874,33.295036],[102.920799,33.295032],[102.920757,33.295015],[102.920713,33.294983],[102.920685,33.294959],[102.920664,33.294929],[102.920652,33.294904],[102.920621,33.294895],[102.920584,33.294903],[102.920547,33.294919],[102.920524,33.294925],[102.920476,33.294921],[102.920443,33.294912],[102.92039,33.294918],[102.92035,33.294943],[102.920329,33.294973],[102.920226,33.295043],[102.920174,33.295158],[102.920147,33.295233],[102.9201,33.295312],[102.920066,33.295363],[102.920028,33.295426],[102.920021,33.295494],[102.920026,33.295557],[102.920055,33.295598],[102.920094,33.295609],[102.92021,33.295614],[102.920307,33.295606],[102.920416,33.29558],[102.920493,33.295573],[102.92057,33.295515],[102.92063,33.295457],[102.920666,33.295516],[102.92071,33.295589],[102.920946,33.295986],[102.921019,33.296109],[102.92084,33.296106],[102.920608,33.296102],[102.920377,33.296098],[102.920145,33.296095],[102.919913,33.296091],[102.919682,33.296087],[102.91945,33.296083],[102.919219,33.296079],[102.918987,33.296075],[102.918746,33.296088],[102.918506,33.2961],[102.918265,33.296112],[102.918024,33.296125],[102.917783,33.296137],[102.917542,33.296149],[102.917301,33.296161],[102.917061,33.296174],[102.91682,33.296186],[102.916666,33.296194],[102.916579,33.296198],[102.916338,33.296211],[102.916097,33.296223],[102.915841,33.296232],[102.915585,33.296242],[102.915329,33.296251],[102.915072,33.29626],[102.914816,33.29627],[102.91456,33.296279],[102.914303,33.296288],[102.914047,33.296297],[102.913791,33.296307],[102.913534,33.296316],[102.913278,33.296325],[102.913022,33.296335],[102.912766,33.296344],[102.912509,33.296353],[102.912253,33.296363],[102.911997,33.296372],[102.911729,33.296377],[102.911462,33.296381],[102.911195,33.296385],[102.910927,33.29639],[102.91066,33.296394],[102.910392,33.296399],[102.910125,33.296403],[102.909858,33.296408],[102.90959,33.296412],[102.909323,33.296417],[102.909065,33.296439],[102.908808,33.296462],[102.908486,33.296493],[102.908164,33.296524],[102.907886,33.296609],[102.907561,33.296751],[102.907552,33.296755],[102.907217,33.296902],[102.906998,33.297096],[102.906779,33.297289],[102.906645,33.297448],[102.906462,33.297587],[102.906278,33.297726],[102.906095,33.297866],[102.905912,33.298005],[102.905728,33.298144],[102.905545,33.298283],[102.905362,33.298422],[102.905178,33.298561],[102.904894,33.298843],[102.904609,33.299125],[102.904325,33.299407],[102.904115,33.299655],[102.903906,33.299902],[102.903742,33.30007],[102.903578,33.300238],[102.903381,33.300379],[102.903056,33.300553],[102.902731,33.300727],[102.902397,33.300855],[102.902063,33.300984],[102.901842,33.301061],[102.90162,33.301138],[102.901399,33.301215],[102.901178,33.301293],[102.900797,33.301404],[102.900416,33.301516],[102.900116,33.301566],[102.899838,33.301579],[102.899582,33.301539],[102.899347,33.301518],[102.898919,33.301493],[102.898585,33.301603],[102.898251,33.301713],[102.898056,33.30185],[102.89786,33.301988],[102.897664,33.302125],[102.897469,33.302263],[102.897273,33.3024],[102.897078,33.302538],[102.896903,33.302696],[102.896728,33.302854],[102.896553,33.303013],[102.896378,33.303171],[102.896203,33.30333],[102.896028,33.303488],[102.895853,33.303647],[102.895678,33.303805],[102.895483,33.303972],[102.895288,33.304138],[102.895093,33.304305],[102.894898,33.304471],[102.894703,33.304637],[102.894508,33.304804],[102.894212,33.305077],[102.893916,33.30535],[102.893763,33.305509],[102.893567,33.305684],[102.893349,33.305807],[102.893198,33.305857],[102.892907,33.305969],[102.892616,33.30608],[102.892337,33.306165],[102.892014,33.306215],[102.891725,33.306237],[102.891436,33.306258],[102.891007,33.306269],[102.890579,33.306279],[102.890354,33.306302],[102.89013,33.306326],[102.88984,33.306356],[102.88955,33.306387],[102.889388,33.306385],[102.889136,33.306343],[102.888883,33.3063],[102.888587,33.306231],[102.888291,33.306162],[102.88793,33.306061],[102.887568,33.30596],[102.887359,33.305848],[102.887149,33.305736],[102.886927,33.305643],[102.886705,33.30555],[102.886483,33.305456],[102.88626,33.305363],[102.886038,33.305269],[102.885816,33.305176],[102.885594,33.305082],[102.885371,33.304989],[102.885022,33.304839],[102.884829,33.304853],[102.88453,33.304884],[102.884206,33.304968],[102.884009,33.305163],[102.883766,33.305499],[102.883586,33.305882],[102.883405,33.306264],[102.883206,33.306584],[102.883006,33.30685],[102.882841,33.307053],[102.882676,33.307257],[102.882521,33.307443],[102.882367,33.307629],[102.882189,33.307904],[102.882011,33.308178],[102.881919,33.308462],[102.88185,33.308677],[102.88178,33.308892],[102.881676,33.309175],[102.881571,33.309458],[102.881455,33.309814],[102.881428,33.310066],[102.881442,33.310371],[102.881519,33.310696],[102.881566,33.310983],[102.881612,33.311271],[102.88165,33.311504],[102.881685,33.311847],[102.881719,33.312151],[102.881713,33.312402],[102.881707,33.312653],[102.881636,33.31294],[102.881566,33.31319],[102.881428,33.313598],[102.881326,33.313968],[102.881225,33.314337],[102.881123,33.314707],[102.881055,33.31495],[102.880988,33.315192],[102.88092,33.315435],[102.880853,33.315678],[102.880785,33.315921],[102.880718,33.316164],[102.88065,33.316406],[102.880583,33.316649],[102.880463,33.316898],[102.880343,33.317147],[102.880223,33.317396],[102.880103,33.317646],[102.879983,33.317895],[102.879863,33.318144],[102.879661,33.318517],[102.879419,33.318835],[102.879176,33.319154],[102.878903,33.319392],[102.878629,33.319629],[102.878304,33.319785],[102.878067,33.319871],[102.877679,33.319972],[102.877336,33.320012],[102.876993,33.320051],[102.876591,33.320052],[102.87619,33.320053],[102.876116,33.320053],[102.875867,33.320025],[102.875619,33.319996],[102.87537,33.319968],[102.875121,33.31994],[102.874872,33.319912],[102.874623,33.319884],[102.874353,33.319885],[102.874083,33.319886],[102.873813,33.319887],[102.873543,33.319888],[102.873147,33.31989],[102.872751,33.319892],[102.872386,33.319958],[102.872133,33.32003],[102.87188,33.320102],[102.871627,33.320174],[102.871374,33.320246],[102.871121,33.320317],[102.870868,33.320389],[102.870615,33.320461],[102.870362,33.320533],[102.870137,33.320602],[102.869913,33.320672],[102.869688,33.320741],[102.869464,33.320811],[102.869239,33.32088],[102.869015,33.32095],[102.868791,33.321019],[102.868566,33.321088],[102.868342,33.321158],[102.868117,33.321227],[102.867893,33.321297],[102.867668,33.321366],[102.867268,33.32142],[102.867031,33.321452],[102.866796,33.321448],[102.866561,33.321444],[102.866338,33.321378],[102.866115,33.321311],[102.865936,33.321164],[102.865757,33.321017],[102.865454,33.320725],[102.865151,33.320432],[102.864936,33.320272],[102.864721,33.320111],[102.864506,33.319951],[102.864291,33.31979],[102.864059,33.319643],[102.863828,33.319495],[102.863572,33.319455],[102.863316,33.319415],[102.863048,33.319354],[102.86278,33.319294],[102.862512,33.319234],[102.862244,33.319174],[102.861976,33.319114],[102.861708,33.319054],[102.86144,33.318993],[102.861172,33.318933],[102.860904,33.318873],[102.860636,33.318813],[102.860259,33.318641],[102.859882,33.318469],[102.859505,33.318297],[102.859092,33.318124],[102.858679,33.317951],[102.858266,33.317778],[102.857853,33.317605],[102.857639,33.317525],[102.857424,33.317445],[102.857209,33.317365],[102.856995,33.317285],[102.85678,33.317205],[102.856566,33.317125],[102.856351,33.317045],[102.856136,33.316965],[102.855892,33.316916],[102.855648,33.316866],[102.855351,33.316772],[102.855011,33.316641],[102.854652,33.316473],[102.854421,33.316272],[102.854171,33.316034],[102.854,33.315851],[102.85383,33.315669],[102.85366,33.315487],[102.85349,33.315304],[102.85332,33.315122],[102.853149,33.31494],[102.852878,33.314675],[102.852606,33.31441],[102.85233,33.314315],[102.851914,33.314281],[102.851498,33.314246],[102.851082,33.314212],[102.850683,33.314199],[102.850284,33.314186],[102.849885,33.314172],[102.849671,33.314222],[102.849498,33.314256],[102.849248,33.314404],[102.848998,33.314552],[102.848747,33.314763],[102.848496,33.314973],[102.848324,33.315025],[102.848217,33.31504],[102.847896,33.315035],[102.847661,33.315013],[102.847342,33.314935],[102.847096,33.314814],[102.846851,33.314694],[102.846605,33.314573],[102.84636,33.314452],[102.846114,33.314331],[102.845868,33.31421],[102.845623,33.314089],[102.845377,33.313969],[102.845153,33.313826],[102.84493,33.313683],[102.844706,33.31354],[102.844482,33.313397],[102.844258,33.313254],[102.844034,33.313112],[102.843811,33.312969],[102.843587,33.312826],[102.84337,33.312715],[102.843154,33.312603],[102.842938,33.312492],[102.842721,33.312381],[102.842478,33.312287],[102.842234,33.312192],[102.842011,33.31213],[102.841788,33.312068],[102.841565,33.312006],[102.841341,33.311944],[102.841065,33.311903],[102.840788,33.311863],[102.840516,33.311844],[102.840244,33.311826],[102.839972,33.311807],[102.839701,33.311789],[102.839429,33.31177],[102.839157,33.311752],[102.838886,33.311733],[102.838614,33.311714],[102.838386,33.311701],[102.838158,33.311688],[102.83793,33.311675],[102.837702,33.311662],[102.837474,33.311649],[102.837246,33.311636],[102.836842,33.311594],[102.836628,33.311573],[102.836393,33.311567],[102.836072,33.31158],[102.835672,33.31177],[102.835271,33.31196],[102.835096,33.312125],[102.834921,33.312289],[102.834746,33.312454],[102.834571,33.312619],[102.834396,33.312783],[102.834221,33.312948],[102.833979,33.313176],[102.833827,33.313244],[102.833612,33.313313],[102.833333,33.313345],[102.832991,33.313356],[102.832565,33.31326],[102.832237,33.313137],[102.831908,33.313015],[102.831741,33.312841],[102.831574,33.312668],[102.831408,33.312463],[102.831242,33.312258],[102.831076,33.312054],[102.83091,33.311849],[102.830744,33.311644],[102.830578,33.31144],[102.830412,33.311235],[102.830246,33.31103],[102.830037,33.310834],[102.829815,33.31067],[102.829593,33.310506],[102.829319,33.310369],[102.829046,33.310232],[102.828983,33.310219],[102.828625,33.310122],[102.828266,33.310025],[102.827908,33.309928],[102.827566,33.309922],[102.827225,33.309916],[102.82686,33.309964],[102.826579,33.310031],[102.826451,33.310083],[102.826255,33.310258],[102.826032,33.310612],[102.82596,33.310926],[102.825887,33.311239],[102.825839,33.311489],[102.82579,33.31174],[102.825632,33.312059],[102.825475,33.312289],[102.825301,33.312465],[102.824954,33.312621],[102.824707,33.31268],[102.824459,33.312739],[102.824237,33.312792],[102.824015,33.312844],[102.823792,33.312897],[102.82357,33.31295],[102.823348,33.313003],[102.823125,33.313056],[102.822899,33.313112],[102.822672,33.313168],[102.822445,33.313225],[102.822218,33.313281],[102.821991,33.313337],[102.821764,33.313393],[102.821537,33.313449],[102.82131,33.313506],[102.821083,33.313562],[102.820856,33.313618],[102.820641,33.313684],[102.820425,33.313749],[102.82021,33.313815],[102.819994,33.31388],[102.819779,33.313946],[102.819563,33.314011],[102.819348,33.314077],[102.819132,33.314142],[102.818743,33.314338],[102.818353,33.314533],[102.817964,33.314728],[102.817574,33.314924],[102.817247,33.315178],[102.816919,33.315433],[102.816688,33.315698],[102.816456,33.315962],[102.816149,33.316284],[102.815841,33.316607],[102.815534,33.316929],[102.815227,33.317251],[102.814895,33.317529],[102.814563,33.317808],[102.814301,33.318001],[102.813977,33.318138],[102.813689,33.318168],[102.813677,33.318169],[102.813292,33.318143],[102.812933,33.318029],[102.812592,33.317917],[102.812347,33.317867],[102.812103,33.317818],[102.811739,33.317789],[102.811665,33.317783],[102.811228,33.317748],[102.810958,33.317746],[102.810688,33.317743],[102.810418,33.317741],[102.810148,33.317739],[102.809878,33.317736],[102.809608,33.317734],[102.809517,33.317733],[102.809338,33.317731],[102.809211,33.31773],[102.809068,33.317729],[102.808798,33.317726],[102.808528,33.317724],[102.808456,33.317723],[102.808258,33.317721],[102.807988,33.317719],[102.807718,33.317716],[102.807448,33.317714],[102.807178,33.317711],[102.806908,33.317709],[102.806639,33.317717],[102.80637,33.317724],[102.8061,33.317732],[102.805831,33.31774],[102.805562,33.317748],[102.805292,33.317756],[102.805023,33.317763],[102.804754,33.317771],[102.804484,33.317779],[102.804215,33.317787],[102.803946,33.317795],[102.803676,33.317802],[102.803407,33.31781],[102.803138,33.317818],[102.802868,33.317826],[102.802599,33.317833],[102.80233,33.317841],[102.80206,33.317849],[102.801791,33.317857],[102.801522,33.317865],[102.801251,33.317896],[102.80098,33.317927],[102.800709,33.317958],[102.800439,33.317989],[102.800168,33.31802],[102.799897,33.318051],[102.799626,33.318082],[102.799355,33.318113],[102.799085,33.318144],[102.798814,33.318175],[102.798543,33.318206],[102.798272,33.318237],[102.798001,33.318268],[102.797731,33.318299],[102.79746,33.31833],[102.797189,33.318361],[102.796943,33.318396],[102.796698,33.318431],[102.796453,33.318466],[102.796207,33.3185],[102.795962,33.318535],[102.795716,33.31857],[102.795481,33.318584],[102.795245,33.318597],[102.79501,33.318611],[102.794774,33.318625],[102.794538,33.318638],[102.794303,33.318652],[102.7942,33.318647],[102.79387,33.318631],[102.793438,33.31861],[102.793005,33.318589],[102.792573,33.318567],[102.792196,33.318525],[102.791818,33.318482],[102.791441,33.318439],[102.791079,33.318406],[102.790717,33.318373],[102.790267,33.318365],[102.789818,33.318357],[102.789551,33.318339],[102.789284,33.318321],[102.789017,33.318302],[102.788751,33.318284],[102.788484,33.318266],[102.788217,33.318248],[102.78795,33.31823],[102.787683,33.318212],[102.787324,33.318122],[102.786964,33.318032],[102.786557,33.317924],[102.786196,33.317795],[102.785945,33.3177],[102.785693,33.317605],[102.785369,33.317518],[102.785045,33.31743],[102.784816,33.317366],[102.784586,33.317301],[102.784356,33.317236],[102.784127,33.317171],[102.783897,33.317106],[102.783667,33.317041],[102.783437,33.316976],[102.783208,33.316911],[102.782978,33.316846],[102.782748,33.316781],[102.782519,33.316716],[102.782289,33.316651],[102.782059,33.316586],[102.78183,33.316521],[102.781544,33.316374],[102.781329,33.316259],[102.781114,33.316144],[102.780846,33.315961],[102.780577,33.315778],[102.780309,33.315595],[102.779943,33.315336],[102.779577,33.315077],[102.77921,33.314818],[102.778844,33.314559],[102.778711,33.31433],[102.778644,33.314111],[102.77854,33.313688],[102.778435,33.313264],[102.778297,33.313031],[102.778159,33.312798],[102.778111,33.312725],[102.77793,33.312455],[102.777769,33.312303],[102.777768,33.312303],[102.77755,33.312227],[102.777232,33.312171],[102.777226,33.31217],[102.776969,33.312093],[102.776817,33.312017],[102.776731,33.311913],[102.776636,33.311741],[102.776494,33.311622],[102.776383,33.311554],[102.776174,33.311426],[102.775965,33.311298],[102.775756,33.311169],[102.775547,33.311041],[102.775337,33.310913],[102.775128,33.310785],[102.774919,33.310657],[102.77471,33.310529],[102.774353,33.31031],[102.774095,33.310276],[102.773705,33.310171],[102.77345,33.310067],[102.773333,33.310019],[102.773086,33.309838],[102.772867,33.309543],[102.772751,33.309225],[102.772635,33.308906],[102.772518,33.308588],[102.772505,33.308553],[102.772315,33.308381],[102.771925,33.308172],[102.771606,33.308025],[102.771287,33.307877],[102.771147,33.307815],[102.771049,33.307772],[102.770878,33.307687],[102.770659,33.307658],[102.770373,33.30763],[102.770069,33.307534],[102.76974,33.307434],[102.769412,33.307335],[102.769098,33.307135],[102.768869,33.306963],[102.768842,33.306882],[102.768727,33.306542],[102.768612,33.306202],[102.768543,33.306032],[102.768368,33.305901],[102.768181,33.305762],[102.767995,33.305623],[102.767643,33.30536],[102.767316,33.305187],[102.766988,33.305014],[102.766661,33.304841],[102.766376,33.304699],[102.76609,33.304558],[102.7657,33.304365],[102.765395,33.304089],[102.765215,33.303861],[102.765189,33.303824],[102.765053,33.303632],[102.764862,33.30347],[102.764615,33.303404],[102.764196,33.303356],[102.763904,33.303437],[102.763612,33.303517],[102.763473,33.303556],[102.763346,33.303581],[102.763178,33.303613],[102.762854,33.303584],[102.762473,33.303508],[102.762212,33.303423],[102.76195,33.303337],[102.761769,33.303223],[102.761636,33.303097],[102.761598,33.303061],[102.76148,33.302914],[102.761295,33.302844],[102.76114,33.302794],[102.760907,33.302813],[102.760675,33.302833],[102.760351,33.302804],[102.760027,33.30268],[102.759732,33.302595],[102.759437,33.302509],[102.759171,33.302394],[102.759085,33.302357],[102.758762,33.302252],[102.758438,33.302147],[102.758124,33.302109],[102.75781,33.302223],[102.757496,33.302484],[102.757182,33.302744],[102.756867,33.303004],[102.756866,33.303004],[102.756865,33.303005],[102.756605,33.303123],[102.756344,33.303242],[102.755906,33.303318],[102.75564,33.303328],[102.755373,33.303337],[102.755021,33.303251],[102.75481,33.303166],[102.7546,33.303081],[102.754574,33.303071],[102.754269,33.302918],[102.753917,33.302658],[102.753566,33.302398],[102.753214,33.302137],[102.75306,33.302024],[102.75281,33.301849],[102.752559,33.301675],[102.752308,33.3015],[102.752213,33.301433],[102.752118,33.301272],[102.752099,33.30092],[102.75208,33.300567],[102.752054,33.300482],[102.751948,33.300129],[102.751842,33.299777],[102.751731,33.299489],[102.75162,33.2992],[102.751536,33.298981],[102.751509,33.298911],[102.751515,33.298699],[102.751518,33.298578],[102.75154,33.298207],[102.751562,33.297836],[102.751583,33.297479],[102.751604,33.297122],[102.751585,33.296694],[102.751573,33.296427],[102.751561,33.29616],[102.751477,33.295949],[102.751443,33.295901],[102.751362,33.295786],[102.751219,33.295702],[102.751187,33.295684],[102.750976,33.295561],[102.750701,33.295465],[102.750425,33.295368],[102.750285,33.295321],[102.750227,33.295254],[102.750195,33.295218],[102.750005,33.294971],[102.749848,33.294766],[102.749691,33.294562],[102.749482,33.294409],[102.74922,33.294309],[102.748958,33.294209],[102.748673,33.294117],[102.748387,33.294025],[102.748102,33.293933],[102.747883,33.293819],[102.74773,33.293667],[102.747678,33.293573],[102.747645,33.293515],[102.747645,33.293463],[102.747645,33.293018],[102.747645,33.292572],[102.747616,33.292334],[102.747501,33.291937],[102.747387,33.29154],[102.747272,33.291142],[102.747226,33.290983],[102.747116,33.290655],[102.747007,33.290326],[102.746769,33.290079],[102.746498,33.290017],[102.746227,33.289955],[102.745836,33.289879],[102.745541,33.289755],[102.745227,33.289527],[102.744994,33.289256],[102.744761,33.288985],[102.74458,33.288775],[102.744294,33.288613],[102.744018,33.288565],[102.743601,33.288615],[102.743557,33.288603],[102.743279,33.288588],[102.743094,33.288578],[102.743001,33.288573],[102.742638,33.288565],[102.742325,33.288539],[102.742013,33.288473],[102.741701,33.288406],[102.741364,33.288339],[102.741102,33.288194],[102.740914,33.287987],[102.740753,33.28768],[102.740674,33.287446],[102.740595,33.287211],[102.740485,33.286864],[102.74037,33.286558],[102.740257,33.286292],[102.740021,33.286086],[102.739773,33.285868],[102.739525,33.285651],[102.739364,33.285475],[102.739202,33.2853],[102.73904,33.285125],[102.738879,33.28495],[102.738717,33.284775],[102.738555,33.284599],[102.738393,33.284424],[102.738232,33.284249],[102.738042,33.284099],[102.737853,33.283948],[102.737664,33.283798],[102.737474,33.283647],[102.737285,33.283497],[102.737095,33.283346],[102.736906,33.283196],[102.736717,33.283045],[102.736473,33.282943],[102.73623,33.282842],[102.735942,33.282746],[102.735655,33.282649],[102.735392,33.282553],[102.735128,33.282457],[102.734816,33.28236],[102.734504,33.282263],[102.734203,33.282237],[102.733902,33.282212],[102.733712,33.282244],[102.733417,33.282387],[102.733121,33.282531],[102.732825,33.282674],[102.732464,33.282798],[102.73215,33.282817],[102.731921,33.282798],[102.731636,33.282702],[102.731322,33.282502],[102.731007,33.282303],[102.73077,33.282248],[102.730567,33.282232],[102.730254,33.282226],[102.73004,33.282235],[102.729796,33.282293],[102.729551,33.28235],[102.729199,33.282388],[102.729018,33.28235],[102.728733,33.282245],[102.728585,33.282118],[102.72839,33.28195],[102.728228,33.281779],[102.728162,33.281532],[102.728151,33.281488],[102.728095,33.281256],[102.728019,33.280865],[102.727762,33.28077],[102.727376,33.280713],[102.726991,33.280656],[102.726779,33.280578],[102.726705,33.280551],[102.726477,33.280437],[102.72623,33.280342],[102.725925,33.28018],[102.725738,33.279968],[102.725448,33.279638],[102.72544,33.279628],[102.725225,33.279433],[102.725011,33.279238],[102.724791,33.279128],[102.724571,33.279018],[102.724554,33.279009],[102.724269,33.278902],[102.723983,33.278794],[102.723698,33.278686],[102.723422,33.278643],[102.723146,33.2786],[102.722781,33.278575],[102.722416,33.278549],[102.722051,33.278524],[102.721623,33.278476],[102.721261,33.278305],[102.721004,33.278115],[102.720814,33.277734],[102.720647,33.277496],[102.720481,33.277258],[102.72029,33.277001],[102.720162,33.276778],[102.720148,33.276754],[102.720014,33.276525],[102.719795,33.276316],[102.71951,33.27604],[102.719509,33.276039],[102.719509,33.276038],[102.719301,33.275678],[102.71911,33.27545],[102.718882,33.275126],[102.718644,33.274917],[102.718463,33.274745],[102.718257,33.274498],[102.718051,33.274251],[102.717892,33.27406],[102.717678,33.27376],[102.717464,33.273461],[102.717424,33.273264],[102.717375,33.273193],[102.717264,33.27303],[102.71713,33.272937],[102.716907,33.272785],[102.716683,33.272632],[102.71646,33.272326],[102.716237,33.272019],[102.71615,33.2719],[102.716084,33.2717],[102.716055,33.271424],[102.716029,33.271202],[102.716007,33.271014],[102.715961,33.270858],[102.71595,33.270824],[102.715865,33.270634],[102.715722,33.270443],[102.715579,33.270253],[102.715403,33.27011],[102.715227,33.269967],[102.715181,33.269933],[102.714968,33.26977],[102.71483,33.269592],[102.714692,33.269413],[102.714462,33.269201],[102.714231,33.26899],[102.714114,33.268771],[102.713998,33.268552],[102.713931,33.268457],[102.713803,33.268361],[102.713741,33.268261],[102.713739,33.268248],[102.713717,33.268076],[102.713684,33.267766],[102.713677,33.267674],[102.71366,33.26741],[102.713555,33.267005],[102.713455,33.266798],[102.713355,33.266591],[102.713222,33.266443],[102.713046,33.266334],[102.712807,33.266241],[102.712665,33.266187],[102.71228,33.265996],[102.711894,33.265806],[102.711642,33.265634],[102.711494,33.265515],[102.71128,33.265187],[102.711214,33.265092],[102.71119,33.264973],[102.711171,33.264849],[102.711028,33.264649],[102.710909,33.26444],[102.7107,33.264354],[102.710533,33.264259],[102.710428,33.264164],[102.710338,33.26405],[102.710262,33.263974],[102.710133,33.263897],[102.709857,33.26384],[102.70947,33.263733],[102.709082,33.263626],[102.708782,33.263498],[102.708425,33.263257],[102.708068,33.263017],[102.707721,33.262765],[102.707602,33.262608],[102.707421,33.26237],[102.707383,33.262284],[102.707359,33.262118],[102.707349,33.262078],[102.707311,33.261932],[102.707235,33.261832],[102.707069,33.261737],[102.706975,33.261688],[102.706686,33.261539],[102.706398,33.26139],[102.706298,33.261294],[102.706274,33.261223],[102.706272,33.261209],[102.70626,33.261123],[102.706198,33.261014],[102.706074,33.260952],[102.705908,33.260937],[102.7059,33.260938],[102.705636,33.260971],[102.705432,33.260937],[102.705294,33.260876],[102.70507,33.260709],[102.704846,33.260542],[102.704632,33.260447],[102.704342,33.260352],[102.704144,33.260237],[102.704013,33.260162],[102.703785,33.259986],[102.703633,33.259795],[102.703452,33.259434],[102.703361,33.259348],[102.703138,33.259267],[102.702947,33.259196],[102.702729,33.259096],[102.702581,33.258967],[102.702315,33.258748],[102.702048,33.258529],[102.701846,33.258284],[102.701644,33.258039],[102.701501,33.257768],[102.701372,33.25772],[102.701229,33.25773],[102.70112,33.257801],[102.700977,33.257901],[102.700735,33.257977],[102.70071,33.25798],[102.700421,33.258009],[102.700363,33.258015],[102.700225,33.258039],[102.70013,33.258073],[102.70004,33.258149],[102.699887,33.258353],[102.699714,33.258701],[102.69954,33.259048],[102.699335,33.259265],[102.699131,33.259481],[102.698926,33.259614],[102.698769,33.259729],[102.698541,33.259781],[102.698312,33.25981],[102.698208,33.259857],[102.698096,33.260183],[102.697984,33.260509],[102.697872,33.260835],[102.69776,33.261161],[102.697629,33.261572],[102.697497,33.261983],[102.697365,33.262394],[102.69734,33.262465],[102.697212,33.262828],[102.697108,33.263122],[102.69698,33.263369],[102.696885,33.263502],[102.696516,33.263729],[102.696147,33.263955],[102.696071,33.263974],[102.695866,33.26395],[102.695505,33.263888],[102.695152,33.263737],[102.6948,33.263587],[102.694448,33.263436],[102.694086,33.263291],[102.693725,33.263146],[102.693472,33.263086],[102.69322,33.263027],[102.692898,33.262995],[102.692576,33.262963],[102.692254,33.262931],[102.691914,33.262858],[102.691878,33.262851],[102.691721,33.262822],[102.691517,33.262865],[102.691226,33.263036],[102.690967,33.263329],[102.690707,33.263622],[102.690448,33.263915],[102.690188,33.264207],[102.689894,33.264346],[102.689568,33.26433],[102.689242,33.264314],[102.688954,33.264248],[102.688686,33.264124],[102.68846,33.264019],[102.688121,33.263729],[102.687782,33.263439],[102.687444,33.263148],[102.687261,33.262959],[102.687079,33.262771],[102.686897,33.262582],[102.686715,33.262393],[102.686533,33.262204],[102.68635,33.262015],[102.686168,33.261826],[102.685986,33.261637],[102.685804,33.261448],[102.685622,33.26126],[102.685439,33.261071],[102.685257,33.260882],[102.685075,33.260693],[102.684893,33.260504],[102.68471,33.260315],[102.684528,33.260126],[102.684415,33.260009],[102.684379,33.259972],[102.684346,33.259937],[102.684164,33.259748],[102.684042,33.259622],[102.683982,33.25956],[102.683911,33.259486],[102.683799,33.259371],[102.68353,33.259111],[102.683261,33.258852],[102.682992,33.258592],[102.68278,33.258366],[102.682569,33.258139],[102.682418,33.257913],[102.682267,33.257687],[102.682117,33.257431],[102.681967,33.257174],[102.681814,33.256979],[102.681662,33.256783],[102.681416,33.256525],[102.68117,33.256267],[102.680963,33.256096],[102.680756,33.255925],[102.680549,33.255754],[102.680342,33.255583],[102.68014,33.255455],[102.679938,33.255327],[102.679736,33.255199],[102.679535,33.255071],[102.679333,33.254943],[102.679131,33.254815],[102.678929,33.254687],[102.678727,33.254559],[102.678498,33.254435],[102.678305,33.254331],[102.67827,33.254312],[102.678269,33.254311],[102.678247,33.254299],[102.678179,33.254262],[102.678041,33.254188],[102.677812,33.254064],[102.677584,33.25394],[102.677355,33.253816],[102.677127,33.253693],[102.676969,33.253607],[102.676899,33.253569],[102.676899,33.253569],[102.676898,33.253569],[102.67667,33.253445],[102.676441,33.253321],[102.676242,33.253204],[102.676043,33.253086],[102.675844,33.252969],[102.675645,33.252851],[102.675418,33.252766],[102.675191,33.25268],[102.674759,33.252591],[102.674519,33.252525],[102.67428,33.25246],[102.673872,33.252351],[102.673621,33.252266],[102.67337,33.25218],[102.673119,33.252063],[102.672868,33.251946],[102.67256,33.251739],[102.672322,33.251593],[102.672238,33.251559],[102.672107,33.251507],[102.671939,33.25144],[102.671893,33.251421],[102.671652,33.251367],[102.671412,33.251312],[102.671123,33.251266],[102.670834,33.25122],[102.670497,33.251194],[102.670147,33.251187],[102.669797,33.25118],[102.669674,33.251259],[102.669623,33.251379],[102.669594,33.251562],[102.669601,33.251767],[102.669607,33.251927],[102.66964,33.251985],[102.669816,33.252294],[102.66998,33.252481],[102.670144,33.252667],[102.670304,33.252968],[102.670351,33.253055],[102.670351,33.253056],[102.670351,33.253056],[102.670319,33.253339],[102.670098,33.253497],[102.669829,33.253633],[102.669797,33.253661],[102.669705,33.253741],[102.669671,33.253771],[102.669557,33.25387],[102.669532,33.253892],[102.669502,33.254094],[102.669554,33.254439],[102.669564,33.254499],[102.669644,33.254669],[102.669747,33.254889],[102.669908,33.255195],[102.669962,33.25543],[102.670016,33.255664],[102.670033,33.255949],[102.670025,33.256242],[102.670017,33.256536],[102.669961,33.256819],[102.669877,33.257014],[102.669698,33.257229],[102.669684,33.257246],[102.669627,33.257314],[102.669553,33.257393],[102.669532,33.257407],[102.669481,33.257441],[102.669233,33.25761],[102.668915,33.257767],[102.668524,33.257942],[102.668255,33.258058],[102.668156,33.258158],[102.668129,33.258259],[102.668172,33.258442],[102.668334,33.258729],[102.668373,33.258803],[102.668402,33.258859],[102.668464,33.258977],[102.668477,33.259001],[102.668495,33.259036],[102.668497,33.259042],[102.668529,33.259172],[102.668581,33.259382],[102.668575,33.259686],[102.668525,33.259726],[102.668427,33.259764],[102.668395,33.259769],[102.668268,33.259789],[102.668245,33.259792],[102.668185,33.259801],[102.66799,33.259847],[102.667869,33.259875],[102.667567,33.25987],[102.667495,33.259868],[102.667423,33.259867],[102.667359,33.259866],[102.667224,33.259863],[102.666976,33.259859],[102.666529,33.259851],[102.666388,33.259848],[102.666319,33.259847],[102.666082,33.259842],[102.665719,33.259886],[102.665355,33.25993],[102.665303,33.259939],[102.665101,33.259976],[102.664846,33.260021],[102.66458,33.260046],[102.664313,33.260072],[102.664059,33.260067],[102.663805,33.260063],[102.663384,33.260005],[102.662963,33.259947],[102.66253,33.259867],[102.662098,33.259787],[102.661784,33.259781],[102.661351,33.259753],[102.660965,33.259746],[102.660531,33.259658],[102.660196,33.259549],[102.659861,33.259441],[102.659623,33.259317],[102.659384,33.259194],[102.659146,33.25907],[102.658908,33.258947],[102.65867,33.258823],[102.658431,33.258699],[102.658193,33.258576],[102.657955,33.258452],[102.657658,33.258237],[102.657352,33.257947],[102.657045,33.257657],[102.656809,33.25745],[102.65655,33.257203],[102.656336,33.257077],[102.656003,33.256868],[102.655693,33.25673],[102.655384,33.256592],[102.655169,33.256492],[102.654954,33.256392],[102.654739,33.256291],[102.654524,33.256191],[102.654225,33.256094],[102.653926,33.255997],[102.653661,33.255911],[102.653303,33.255783],[102.652993,33.255655],[102.652635,33.255466],[102.652495,33.255302],[102.652235,33.255113],[102.652045,33.254928],[102.651788,33.254659],[102.651482,33.254349],[102.651285,33.254051],[102.651088,33.253753],[102.650862,33.2534],[102.650636,33.253046],[102.65041,33.252692],[102.650184,33.252338],[102.649918,33.252038],[102.649716,33.251923],[102.649514,33.251808],[102.649154,33.251699],[102.648746,33.25163],[102.648337,33.251562],[102.64817,33.251519],[102.647881,33.251432],[102.647585,33.251244],[102.647288,33.251056],[102.647103,33.250907],[102.646918,33.250758],[102.646733,33.25061],[102.646548,33.250461],[102.646363,33.250312],[102.646178,33.250163],[102.646109,33.250122],[102.645797,33.249933],[102.645462,33.249805],[102.64521,33.249759],[102.644957,33.249714],[102.644729,33.249679],[102.6445,33.249645],[102.644117,33.249516],[102.64371,33.249387],[102.643499,33.249243],[102.643288,33.249099],[102.643077,33.248955],[102.642866,33.248811],[102.642642,33.248656],[102.642419,33.248501],[102.642195,33.248346],[102.641972,33.248192],[102.641748,33.248037],[102.641525,33.247882],[102.641301,33.247727],[102.641078,33.247572],[102.640854,33.247417],[102.640631,33.247263],[102.640407,33.247108],[102.640184,33.246953],[102.63996,33.246798],[102.639737,33.246643],[102.639545,33.246507],[102.639521,33.24649],[102.639304,33.246336],[102.639088,33.246182],[102.638872,33.246029],[102.638655,33.245875],[102.638439,33.245722],[102.638223,33.245568],[102.638007,33.245415],[102.637669,33.245265],[102.637641,33.245252],[102.637344,33.24512],[102.637305,33.245103],[102.637275,33.24509],[102.637194,33.245053],[102.637148,33.245033],[102.636988,33.244962],[102.63691,33.244927],[102.636563,33.244789],[102.636217,33.244651],[102.635792,33.244516],[102.635367,33.244381],[102.634942,33.244247],[102.634516,33.244112],[102.634115,33.243939],[102.633713,33.243767],[102.633311,33.243595],[102.633074,33.243428],[102.632863,33.243201],[102.632841,33.243162],[102.632755,33.24301],[102.632748,33.242996],[102.632734,33.242611],[102.632812,33.242389],[102.632891,33.242168],[102.633048,33.24187],[102.633081,33.241806],[102.633272,33.241445],[102.633376,33.241183],[102.633479,33.240922],[102.633537,33.240579],[102.633572,33.240194],[102.633583,33.240099],[102.633603,33.239931],[102.633634,33.239668],[102.633642,33.239371],[102.633644,33.239304],[102.633614,33.239081],[102.633584,33.238857],[102.633509,33.238637],[102.633469,33.238517],[102.633435,33.238416],[102.63336,33.238195],[102.633286,33.237975],[102.633211,33.237754],[102.633137,33.237533],[102.633027,33.237336],[102.632918,33.237139],[102.632808,33.236942],[102.632699,33.236745],[102.63259,33.236547],[102.63248,33.23635],[102.632371,33.236153],[102.632262,33.235956],[102.63209,33.235598],[102.631919,33.23524],[102.631794,33.234954],[102.631669,33.234669],[102.631578,33.234446],[102.631488,33.234224],[102.631397,33.234002],[102.631306,33.233779],[102.631216,33.233557],[102.631125,33.233335],[102.631034,33.233112],[102.630944,33.23289],[102.630843,33.232635],[102.630742,33.232381],[102.630632,33.231953],[102.630614,33.231694],[102.630638,33.231606],[102.630696,33.23139],[102.630809,33.23119],[102.630923,33.23099],[102.631111,33.23073],[102.631299,33.230469],[102.631454,33.230087],[102.631546,33.229816],[102.631639,33.229544],[102.631674,33.229119],[102.631638,33.228672],[102.631596,33.228418],[102.631555,33.228164],[102.631457,33.227787],[102.631359,33.22741],[102.631274,33.227149],[102.631189,33.226888],[102.631105,33.226627],[102.63102,33.226366],[102.630935,33.226105],[102.630851,33.225844],[102.630766,33.225583],[102.630681,33.225322],[102.630597,33.225061],[102.630512,33.224799],[102.630449,33.22458],[102.630386,33.22436],[102.630323,33.22414],[102.630261,33.22392],[102.630198,33.2237],[102.630135,33.223481],[102.630098,33.223074],[102.630044,33.22283],[102.629991,33.222585],[102.629902,33.2223],[102.629813,33.222015],[102.629591,33.221767],[102.629368,33.22152],[102.629146,33.221253],[102.628923,33.220985],[102.628779,33.220786],[102.628635,33.220586],[102.62849,33.220387],[102.628346,33.220187],[102.628202,33.219988],[102.628057,33.219789],[102.627913,33.219589],[102.627769,33.21939],[102.627625,33.21919],[102.62748,33.218991],[102.627288,33.218624],[102.627095,33.218258],[102.626903,33.217891],[102.626801,33.217666],[102.626698,33.217442],[102.626613,33.217054],[102.626571,33.216821],[102.62653,33.216587],[102.626439,33.216373],[102.626347,33.216159],[102.626185,33.215904],[102.626046,33.215686],[102.625812,33.215418],[102.625554,33.21515],[102.625244,33.214962],[102.625019,33.214836],[102.624793,33.21471],[102.624436,33.21446],[102.62413,33.214231],[102.623979,33.214045],[102.623827,33.21386],[102.623724,33.213634],[102.623621,33.213409],[102.623593,33.213145],[102.623564,33.212881],[102.623646,33.212526],[102.62375,33.212265],[102.623853,33.212003],[102.624077,33.211744],[102.624252,33.211524],[102.624427,33.211304],[102.624583,33.21111],[102.62474,33.210916],[102.624896,33.210721],[102.625052,33.210527],[102.625196,33.210332],[102.62534,33.210137],[102.625484,33.209942],[102.625628,33.209747],[102.625731,33.209545],[102.625821,33.209304],[102.625912,33.209063],[102.625965,33.20876],[102.626018,33.208457],[102.626054,33.208254],[102.626089,33.207871],[102.626097,33.207597],[102.626106,33.207324],[102.626053,33.206988],[102.626001,33.206652],[102.625885,33.20641],[102.625746,33.206163],[102.625631,33.205918],[102.625615,33.205634],[102.625716,33.205473],[102.625951,33.205129],[102.626186,33.204785],[102.626194,33.204773],[102.62646,33.204447],[102.626726,33.204122],[102.626992,33.203796],[102.627284,33.203497],[102.627576,33.203199],[102.627868,33.2029],[102.628159,33.202601],[102.628333,33.202363],[102.628489,33.201979],[102.62855,33.201758],[102.628611,33.201536],[102.628671,33.201314],[102.628732,33.201092],[102.628805,33.200827],[102.628879,33.200563],[102.628952,33.200298],[102.629026,33.200033],[102.629099,33.199769],[102.629173,33.199504],[102.629246,33.199239],[102.62932,33.198975],[102.629332,33.198573],[102.629289,33.19835],[102.629247,33.198127],[102.629162,33.19772],[102.629076,33.197312],[102.628917,33.196934],[102.628758,33.196556],[102.628631,33.196202],[102.628504,33.195848],[102.628377,33.195495],[102.628263,33.195249],[102.628149,33.195004],[102.628047,33.194759],[102.627945,33.194514],[102.627759,33.194185],[102.627573,33.193959],[102.627349,33.193793],[102.627124,33.193626],[102.626811,33.193424],[102.626498,33.193222],[102.626186,33.19302],[102.626057,33.192937],[102.625814,33.192758],[102.625648,33.192613],[102.625416,33.192305],[102.625301,33.19207],[102.625187,33.191835],[102.625121,33.1916],[102.625054,33.191366],[102.624968,33.190989],[102.624882,33.190613],[102.624749,33.190226],[102.624658,33.18999],[102.624567,33.189755],[102.624455,33.189449],[102.624342,33.189142],[102.624146,33.188824],[102.62395,33.188507],[102.623754,33.188148],[102.623558,33.18779],[102.623385,33.187496],[102.623211,33.187201],[102.623049,33.186934],[102.622861,33.186768],[102.622552,33.18656],[102.62222,33.186391],[102.621788,33.186292],[102.621355,33.186192],[102.621098,33.186152],[102.620842,33.186112],[102.620585,33.186071],[102.620328,33.186031],[102.620071,33.18599],[102.619815,33.18595],[102.619558,33.185909],[102.619301,33.185869],[102.619044,33.185829],[102.618788,33.185788],[102.618531,33.185748],[102.618274,33.185707],[102.618017,33.185667],[102.61776,33.185626],[102.617504,33.185586],[102.617247,33.185546],[102.616973,33.185514],[102.616698,33.185482],[102.616424,33.185451],[102.61615,33.185419],[102.615875,33.185388],[102.615601,33.185356],[102.615327,33.185325],[102.615053,33.185293],[102.614778,33.185262],[102.614504,33.18523],[102.61427,33.185192],[102.614195,33.185179],[102.614169,33.185175],[102.614036,33.185153],[102.613803,33.185115],[102.613569,33.185076],[102.613335,33.185038],[102.613101,33.185],[102.612868,33.184961],[102.612634,33.184923],[102.6124,33.184885],[102.612166,33.184846],[102.611933,33.184808],[102.611699,33.18477],[102.611435,33.184704],[102.611171,33.184638],[102.611034,33.184604],[102.610908,33.184572],[102.610644,33.184507],[102.61038,33.184441],[102.610117,33.184375],[102.609882,33.184338],[102.609786,33.184322],[102.6097,33.184308],[102.609648,33.1843],[102.609479,33.184273],[102.609414,33.184263],[102.609179,33.184225],[102.609081,33.184209],[102.609001,33.184196],[102.608945,33.184188],[102.608774,33.18416],[102.608711,33.18415],[102.608477,33.184113],[102.608242,33.184075],[102.608014,33.184054],[102.607968,33.184049],[102.607785,33.184032],[102.607557,33.184011],[102.607376,33.183994],[102.607328,33.183989],[102.6071,33.183968],[102.606871,33.183946],[102.606437,33.183939],[102.606098,33.183973],[102.605735,33.184047],[102.605371,33.184121],[102.605121,33.184197],[102.604872,33.184273],[102.604863,33.184276],[102.604622,33.184349],[102.604373,33.184426],[102.604123,33.184502],[102.604109,33.184506],[102.604085,33.184514],[102.603873,33.184578],[102.603624,33.184654],[102.603374,33.184731],[102.60313,33.184843],[102.602886,33.184954],[102.602641,33.185066],[102.602397,33.185178],[102.602152,33.18529],[102.601908,33.185402],[102.601842,33.185432],[102.601664,33.185514],[102.601419,33.185626],[102.60117,33.185713],[102.600922,33.185801],[102.600531,33.185915],[102.600313,33.185972],[102.600094,33.186029],[102.599744,33.186052],[102.599393,33.186076],[102.598966,33.186108],[102.598539,33.18614],[102.598112,33.186173],[102.597668,33.186168],[102.597224,33.186163],[102.59678,33.186158],[102.596655,33.186157],[102.596348,33.186154],[102.596301,33.186154],[102.595916,33.186151],[102.595688,33.186123],[102.595687,33.186123],[102.595687,33.186123],[102.59555,33.186107],[102.595459,33.186096],[102.595418,33.186091],[102.595231,33.186069],[102.595002,33.186042],[102.594774,33.186015],[102.594545,33.185987],[102.594316,33.18596],[102.594088,33.185933],[102.593835,33.185915],[102.593582,33.185896],[102.593329,33.185878],[102.593076,33.185859],[102.592824,33.185841],[102.592571,33.185822],[102.592341,33.18578],[102.592111,33.185738],[102.591881,33.185696],[102.591651,33.185653],[102.591421,33.185611],[102.591191,33.185569],[102.590961,33.185527],[102.590731,33.185485],[102.59047,33.185421],[102.590209,33.185357],[102.589948,33.185294],[102.589688,33.18523],[102.589427,33.185167],[102.589166,33.185103],[102.588906,33.185039],[102.588645,33.184976],[102.588384,33.184912],[102.588124,33.184848],[102.58801,33.184821],[102.587863,33.184785],[102.587662,33.184736],[102.587602,33.184721],[102.587452,33.184685],[102.587342,33.184658],[102.587081,33.184594],[102.587175,33.184202],[102.58727,33.18381],[102.587269,33.183796],[102.587251,33.1834],[102.587198,33.183066],[102.587115,33.182782],[102.58695,33.182623],[102.586923,33.182597],[102.586922,33.182595],[102.586785,33.182463],[102.58662,33.182303],[102.586456,33.182144],[102.586171,33.181972],[102.585887,33.1818],[102.585586,33.181679],[102.585284,33.181558],[102.584936,33.181449],[102.584588,33.18134],[102.584349,33.181284],[102.58411,33.181228],[102.584043,33.181212],[102.583989,33.1812],[102.583872,33.181172],[102.583633,33.181116],[102.583394,33.18106],[102.583156,33.181004],[102.582917,33.180949],[102.582678,33.180893],[102.582378,33.180747],[102.582373,33.180745],[102.582348,33.180733],[102.582017,33.180573],[102.581701,33.180387],[102.581386,33.180202],[102.581163,33.180005],[102.580939,33.179809],[102.580777,33.179601],[102.580615,33.179393],[102.580561,33.179157],[102.580506,33.178921],[102.580452,33.178684],[102.580398,33.178448],[102.580405,33.178141],[102.580444,33.177861],[102.580541,33.177631],[102.580638,33.17748],[102.58088,33.177242],[102.580919,33.177203],[102.581023,33.177009],[102.581123,33.176823],[102.581326,33.176443],[102.581469,33.176178],[102.581481,33.176155],[102.58153,33.176063],[102.581546,33.175853],[102.581554,33.175744],[102.58156,33.175671],[102.581572,33.175503],[102.581579,33.175424],[102.581583,33.175369],[102.581595,33.175242],[102.5816,33.175181],[102.581622,33.174939],[102.581753,33.174583],[102.581948,33.174227],[102.582134,33.174053],[102.582207,33.173939],[102.582238,33.173889],[102.582459,33.173746],[102.582572,33.17362],[102.582688,33.173403],[102.582664,33.173274],[102.58261,33.173017],[102.582583,33.172928],[102.582507,33.172677],[102.582242,33.172338],[102.582176,33.1722],[102.582069,33.171976],[102.581984,33.171758],[102.581898,33.171539],[102.581808,33.171437],[102.581692,33.171304],[102.581421,33.171171],[102.581086,33.171138],[102.580843,33.171082],[102.580658,33.171055],[102.580449,33.171024],[102.580087,33.170862],[102.579908,33.170705],[102.579733,33.170446],[102.579554,33.170059],[102.579376,33.169672],[102.579256,33.169431],[102.579135,33.169189],[102.579015,33.168948],[102.578894,33.168707],[102.578774,33.168466],[102.578653,33.168224],[102.578448,33.167965],[102.57818,33.167728],[102.577968,33.167648],[102.577756,33.167568],[102.577438,33.167497],[102.577121,33.167426],[102.576755,33.167336],[102.576726,33.167329],[102.576534,33.167282],[102.576332,33.167232],[102.576163,33.167177],[102.576,33.167123],[102.575667,33.167014],[102.575304,33.166905],[102.574941,33.166795],[102.574924,33.166791],[102.57454,33.166683],[102.574155,33.166575],[102.57373,33.166477],[102.573306,33.166378],[102.572897,33.166281],[102.572487,33.166184],[102.572064,33.166073],[102.57164,33.165962],[102.5714,33.165829],[102.57116,33.165697],[102.570921,33.1655],[102.570683,33.165303],[102.57052,33.165121],[102.570358,33.164939],[102.570182,33.164562],[102.570007,33.164185],[102.569832,33.163808],[102.569654,33.163599],[102.569491,33.163443],[102.569328,33.163287],[102.569091,33.163052],[102.568971,33.162985],[102.568957,33.162966],[102.568761,33.162752],[102.568642,33.16252],[102.568386,33.16236],[102.568095,33.162253],[102.567803,33.162276],[102.567473,33.162475],[102.56722,33.162627],[102.567095,33.162717],[102.566923,33.16274],[102.566739,33.162675],[102.566643,33.162449],[102.566582,33.162157],[102.56656,33.16205],[102.56653,33.161747],[102.566352,33.161467],[102.566123,33.161203],[102.565929,33.16098],[102.565784,33.160751],[102.565638,33.160522],[102.565538,33.160194],[102.565437,33.159867],[102.565412,33.159784],[102.565341,33.159683],[102.565263,33.159611],[102.565132,33.159582],[102.564919,33.159593],[102.564811,33.1596],[102.56446,33.159641],[102.564234,33.159611],[102.564074,33.159492],[102.563901,33.159356],[102.563776,33.15926],[102.563663,33.159254],[102.563366,33.159272],[102.56314,33.15935],[102.562908,33.159308],[102.562673,33.159189],[102.562438,33.15907],[102.562075,33.158969],[102.561712,33.158868],[102.561357,33.158746],[102.56114,33.15882],[102.560923,33.158895],[102.560521,33.159091],[102.560242,33.159253],[102.559963,33.159414],[102.559649,33.159715],[102.559463,33.159852],[102.559277,33.15999],[102.559242,33.160013],[102.559043,33.160151],[102.559011,33.160174],[102.558809,33.160313],[102.558532,33.160423],[102.558254,33.160533],[102.557827,33.160601],[102.557477,33.160568],[102.557127,33.160536],[102.556896,33.160504],[102.556679,33.160385],[102.55656,33.160319],[102.55634,33.16026],[102.556013,33.160319],[102.555922,33.160351],[102.555757,33.160408],[102.555531,33.160485],[102.555305,33.160563],[102.555011,33.160674],[102.554717,33.160785],[102.554423,33.160896],[102.554187,33.160986],[102.553848,33.161152],[102.553616,33.161164],[102.553431,33.161099],[102.553211,33.160956],[102.553033,33.160664],[102.552955,33.160441],[102.552878,33.160218],[102.552747,33.160099],[102.552609,33.160041],[102.55242,33.159962],[102.552345,33.159906],[102.552182,33.159784],[102.551926,33.159605],[102.551629,33.159397],[102.551492,33.159189],[102.55132,33.158817],[102.551147,33.158445],[102.550992,33.158083],[102.550927,33.157904],[102.550772,33.15772],[102.550736,33.157565],[102.550593,33.157486],[102.550201,33.15727],[102.549809,33.157053],[102.549613,33.156946],[102.549464,33.156964],[102.549291,33.156845],[102.548928,33.15675],[102.548637,33.156673],[102.548593,33.156656],[102.548256,33.15653],[102.548051,33.156408],[102.547846,33.156286],[102.547542,33.156012],[102.547358,33.155825],[102.547173,33.155638],[102.546878,33.155473],[102.546582,33.155308],[102.546477,33.155227],[102.546251,33.154864],[102.54621,33.154692],[102.546073,33.154507],[102.546002,33.154377],[102.545906,33.15418],[102.545847,33.153948],[102.545834,33.153855],[102.545787,33.153512],[102.54574,33.153169],[102.545752,33.152824],[102.545829,33.152527],[102.545829,33.152417],[102.545829,33.151993],[102.545829,33.151569],[102.545805,33.15142],[102.545696,33.151243],[102.54534,33.151018],[102.544948,33.150856],[102.544624,33.150778],[102.544374,33.150752],[102.544223,33.150736],[102.543946,33.150706],[102.54367,33.150677],[102.543414,33.150629],[102.543301,33.150558],[102.543174,33.150431],[102.543075,33.150332],[102.542849,33.150308],[102.542726,33.150324],[102.542533,33.150349],[102.542233,33.150445],[102.541933,33.15054],[102.541671,33.150546],[102.541377,33.15046],[102.541084,33.150375],[102.54079,33.15029],[102.540416,33.150236],[102.539987,33.150254],[102.539583,33.150314],[102.539268,33.150465],[102.538952,33.150617],[102.538875,33.150666],[102.538562,33.150864],[102.538248,33.151062],[102.537935,33.151259],[102.537656,33.151518],[102.537376,33.151777],[102.537351,33.151829],[102.537215,33.15211],[102.536971,33.152259],[102.536626,33.15239],[102.5365,33.15241],[102.536186,33.152461],[102.535832,33.152717],[102.535478,33.152973],[102.535303,33.153139],[102.535127,33.153306],[102.534954,33.153376],[102.534878,33.153407],[102.534741,33.153413],[102.534574,33.153365],[102.534342,33.153234],[102.534166,33.153212],[102.533994,33.153216],[102.533704,33.153223],[102.533606,33.153207],[102.533491,33.153211],[102.533242,33.153258],[102.532992,33.153306],[102.532778,33.153246],[102.53254,33.153145],[102.532236,33.153115],[102.532187,33.153119],[102.531964,33.153136],[102.531921,33.153139],[102.53186,33.153156],[102.531522,33.153246],[102.531195,33.153425],[102.530868,33.153603],[102.530621,33.153779],[102.530374,33.153955],[102.530136,33.154096],[102.529898,33.154236],[102.529897,33.154236],[102.529896,33.154237],[102.529638,33.154324],[102.529381,33.154412],[102.529149,33.154501],[102.528917,33.154589],[102.528662,33.154584],[102.528407,33.154579],[102.52811,33.154523],[102.527814,33.154467],[102.527551,33.154147],[102.527482,33.153881],[102.527413,33.153615],[102.527356,33.15322],[102.527299,33.152826],[102.527212,33.152588],[102.527125,33.15235],[102.526877,33.152031],[102.526764,33.151885],[102.526764,33.151885],[102.526763,33.151884],[102.526361,33.151698],[102.525958,33.151511],[102.525559,33.151403],[102.525159,33.151295],[102.52476,33.151187],[102.52445,33.15109],[102.524141,33.150993],[102.523832,33.150897],[102.523523,33.150786],[102.523215,33.150675],[102.522906,33.150563],[102.522716,33.150352],[102.522527,33.150141],[102.522457,33.149911],[102.522387,33.14968],[102.522402,33.149428],[102.522432,33.14909],[102.522462,33.148753],[102.522492,33.148416],[102.522546,33.148071],[102.522582,33.147785],[102.522617,33.1475],[102.52257,33.147238],[102.522522,33.146976],[102.522445,33.146759],[102.522368,33.146542],[102.522198,33.14626],[102.522028,33.145977],[102.521922,33.145791],[102.521755,33.1455],[102.521588,33.14521],[102.521474,33.144993],[102.521309,33.14468],[102.52113,33.144347],[102.520934,33.144062],[102.520708,33.143913],[102.520342,33.14372],[102.519976,33.143526],[102.519792,33.143306],[102.51972,33.143003],[102.519688,33.14278],[102.519655,33.142557],[102.519697,33.14211],[102.519738,33.141664],[102.51978,33.141218],[102.519756,33.140921],[102.519738,33.14065],[102.51972,33.140378],[102.519628,33.140072],[102.519616,33.140031],[102.519536,33.139765],[102.519278,33.139469],[102.51902,33.139173],[102.518762,33.138877],[102.518428,33.138656],[102.518161,33.138479],[102.517893,33.138301],[102.51748,33.138193],[102.517066,33.138085],[102.516768,33.138017],[102.516469,33.137949],[102.516171,33.137881],[102.516062,33.137847],[102.51606,33.137846],[102.516058,33.137846],[102.515742,33.137718],[102.515425,33.137589],[102.515211,33.137471],[102.514914,33.137195],[102.514616,33.136919],[102.514319,33.136644],[102.514105,33.136352],[102.514004,33.136025],[102.513962,33.135686],[102.513994,33.135377],[102.514026,33.135067],[102.514057,33.134758],[102.514016,33.134356],[102.513974,33.133955],[102.513967,33.133598],[102.51396,33.13324],[102.513956,33.133063],[102.513909,33.132694],[102.513825,33.132414],[102.513647,33.132081],[102.513638,33.132068],[102.513467,33.131822],[102.513296,33.131575],[102.513128,33.13137],[102.512961,33.131164],[102.512774,33.130934],[102.512517,33.130618],[102.512344,33.13035],[102.512172,33.130082],[102.511975,33.129847],[102.511779,33.129612],[102.511603,33.129458],[102.511428,33.129303],[102.511285,33.129],[102.511249,33.12875],[102.511291,33.128339],[102.511398,33.128066],[102.511505,33.127792],[102.511624,33.127572],[102.511725,33.127167],[102.511535,33.126906],[102.511336,33.1267],[102.511136,33.126495],[102.510904,33.126311],[102.510672,33.126126],[102.51039,33.125988],[102.510108,33.12585],[102.509766,33.125682],[102.509423,33.125514],[102.509106,33.125397],[102.508789,33.12528],[102.508471,33.125163],[102.508125,33.125022],[102.507778,33.124881],[102.507431,33.12474],[102.507129,33.124617],[102.506828,33.124494],[102.506526,33.124372],[102.506187,33.124215],[102.505848,33.124058],[102.505509,33.123902],[102.505268,33.123795],[102.505027,33.123687],[102.5047,33.123497],[102.504495,33.123334],[102.50429,33.12317],[102.504052,33.12298],[102.503703,33.122823],[102.503354,33.122666],[102.503005,33.12251],[102.502658,33.122361],[102.502311,33.122212],[102.501964,33.122064],[102.501658,33.121951],[102.501353,33.121838],[102.501252,33.121786],[102.500924,33.121574],[102.500596,33.121363],[102.500267,33.121151],[102.500176,33.121076],[102.499831,33.120791],[102.499486,33.120506],[102.499217,33.120271],[102.49892,33.120013],[102.498622,33.119754],[102.498325,33.119495],[102.498023,33.119332],[102.497722,33.119168],[102.49742,33.119005],[102.497119,33.118841],[102.496763,33.118629],[102.496408,33.118417],[102.496367,33.118384],[102.496163,33.118132],[102.495959,33.117879],[102.495715,33.117543],[102.495556,33.117185],[102.495507,33.116937],[102.495457,33.11669],[102.49546,33.116438],[102.495462,33.116185],[102.495465,33.115933],[102.495467,33.115681],[102.49547,33.115428],[102.495472,33.115176],[102.495511,33.114799],[102.495507,33.114697],[102.495495,33.114396],[102.495459,33.114135],[102.495424,33.113874],[102.495366,33.113448],[102.495308,33.113021],[102.49537,33.112809],[102.495404,33.112597],[102.495556,33.112221],[102.495763,33.11187],[102.495911,33.111613],[102.496002,33.111379],[102.496041,33.111001],[102.496019,33.110811],[102.495996,33.110679],[102.495994,33.110668],[102.495944,33.110455],[102.495767,33.110205],[102.49559,33.109955],[102.495497,33.109728],[102.495404,33.109501],[102.495304,33.109074],[102.495258,33.108695],[102.495271,33.108269],[102.49528,33.107914],[102.495289,33.107608],[102.495325,33.107324],[102.495449,33.106948],[102.495455,33.106711],[102.495376,33.106497],[102.495187,33.106233],[102.494911,33.106038],[102.494578,33.105889],[102.494342,33.105766],[102.494106,33.105644],[102.493787,33.105495],[102.493467,33.105347],[102.493204,33.105188],[102.492942,33.105029],[102.492763,33.104871],[102.492584,33.104714],[102.492338,33.104449],[102.492327,33.104204],[102.492315,33.103958],[102.4923,33.103509],[102.492211,33.103242],[102.492196,33.1032],[102.492093,33.10289],[102.491899,33.102744],[102.491851,33.102722],[102.491622,33.10262],[102.491491,33.102592],[102.491383,33.102569],[102.491259,33.102542],[102.491191,33.102499],[102.49112,33.102454],[102.491065,33.102419],[102.491054,33.102412],[102.490871,33.102297],[102.490655,33.101938],[102.490592,33.1017],[102.490528,33.101462],[102.49051,33.101411],[102.490484,33.10134],[102.490424,33.101177],[102.49018,33.100864],[102.489877,33.100621],[102.489517,33.100425],[102.489302,33.100357],[102.489196,33.100324],[102.489086,33.100289],[102.488875,33.100223],[102.488608,33.100194],[102.488341,33.100165],[102.488232,33.100168],[102.488185,33.10017],[102.488102,33.100172],[102.488087,33.100173],[102.487862,33.100179],[102.487814,33.100203],[102.487785,33.100218],[102.487591,33.100315],[102.487457,33.100383],[102.48732,33.100452],[102.487115,33.100731],[102.486944,33.100964],[102.486909,33.101011],[102.486705,33.101256],[102.486502,33.1015],[102.486273,33.101613],[102.486079,33.101539],[102.486032,33.101437],[102.485974,33.101313],[102.485945,33.101251],[102.485955,33.100897],[102.486053,33.100497],[102.486156,33.100286],[102.486157,33.100285],[102.486158,33.100284],[102.486241,33.100115],[102.48626,33.100075],[102.48632,33.099937],[102.486356,33.099852],[102.486451,33.09963],[102.486547,33.099407],[102.486642,33.099184],[102.486738,33.098961],[102.486834,33.098739],[102.486945,33.098511],[102.487057,33.098284],[102.487169,33.098057],[102.487281,33.09783],[102.487288,33.097592],[102.487212,33.097284],[102.487136,33.096998],[102.487059,33.096713],[102.486952,33.09651],[102.486846,33.096307],[102.486683,33.09609],[102.48652,33.095874],[102.486371,33.095694],[102.486221,33.095513],[102.486034,33.095155],[102.48599,33.094752],[102.485997,33.094492],[102.486004,33.094232],[102.486044,33.09383],[102.486112,33.093405],[102.486189,33.093171],[102.486266,33.092936],[102.486417,33.09256],[102.486569,33.092184],[102.486661,33.091925],[102.486674,33.091501],[102.486593,33.09131],[102.486406,33.090935],[102.486299,33.09072],[102.486193,33.090505],[102.486058,33.09029],[102.485924,33.090074],[102.485803,33.089882],[102.485682,33.08969],[102.485561,33.089464],[102.485518,33.089381],[102.485472,33.089294],[102.485441,33.089237],[102.485391,33.089011],[102.485382,33.08897],[102.485374,33.088931]]]]},"properties":{"cp":[102.6838973693402,33.13732598840634],"code":"513233204","name":"瓦切镇","level":"street","center":[102.6838973693402,33.13732598840634],"fullCode":"513233204000","fullName":"四川省阿坝藏族羌族自治州红原县瓦切镇","acreageMu":1486490.28,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.669,33.2578]}},{"id":"513233205","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.615039,32.961439],[102.615041,32.961423],[102.61506,32.961253],[102.615113,32.960767],[102.615237,32.959638],[102.615775,32.958729],[102.615969,32.958606],[102.616157,32.958487],[102.61641,32.958327],[102.616466,32.958292],[102.616657,32.958171],[102.616683,32.958155],[102.616813,32.958071],[102.616773,32.957989],[102.61714,32.957866],[102.617603,32.957574],[102.61982,32.956263],[102.620567,32.955685],[102.621524,32.954943],[102.622672,32.953755],[102.62291,32.953509],[102.623137,32.953362],[102.623227,32.953304],[102.62369,32.953007],[102.623828,32.952861],[102.623952,32.952768],[102.624102,32.95268],[102.624407,32.952583],[102.624521,32.952567],[102.624575,32.952549],[102.624634,32.95253],[102.624718,32.952503],[102.624784,32.952481],[102.624898,32.952443],[102.624993,32.952412],[102.625048,32.952413],[102.625092,32.952414],[102.625819,32.952428],[102.625966,32.95243],[102.626001,32.952431],[102.62601,32.952431],[102.626055,32.952432],[102.626411,32.952439],[102.626533,32.952441],[102.628126,32.95285],[102.629362,32.95283],[102.629667,32.952825],[102.629867,32.952653],[102.630014,32.952525],[102.630043,32.952501],[102.630072,32.952476],[102.630581,32.952036],[102.630586,32.952031],[102.631193,32.951022],[102.631212,32.950989],[102.631325,32.950801],[102.631305,32.95058],[102.631292,32.950435],[102.631289,32.950407],[102.631281,32.950321],[102.631268,32.950179],[102.631261,32.950096],[102.631253,32.950011],[102.631239,32.949864],[102.631226,32.949717],[102.631147,32.949632],[102.631026,32.949501],[102.630945,32.949414],[102.630797,32.949254],[102.630717,32.949168],[102.630664,32.949111],[102.630559,32.949094],[102.630223,32.94904],[102.630073,32.949016],[102.629896,32.948988],[102.629789,32.94897],[102.629708,32.948958],[102.629671,32.948952],[102.62965,32.948949],[102.629514,32.948927],[102.629305,32.949017],[102.629284,32.949026],[102.629275,32.949029],[102.629149,32.949084],[102.629124,32.949091],[102.629128,32.949072],[102.629128,32.949052],[102.629128,32.94903],[102.629132,32.94902],[102.62915,32.949005],[102.629183,32.948969],[102.629237,32.948921],[102.629284,32.948885],[102.62931,32.948845],[102.629287,32.948833],[102.629242,32.94884],[102.62918,32.948888],[102.629121,32.948941],[102.629036,32.948996],[102.628909,32.949071],[102.628805,32.949141],[102.628718,32.949208],[102.628679,32.949261],[102.628679,32.949286],[102.62867,32.94929],[102.627807,32.949785],[102.627695,32.949759],[102.627607,32.949758],[102.627511,32.949803],[102.627333,32.949871],[102.627195,32.949893],[102.627028,32.949901],[102.626858,32.949902],[102.626711,32.949872],[102.626617,32.949834],[102.626523,32.949756],[102.626241,32.949485],[102.62597,32.949274],[102.625912,32.949199],[102.625857,32.949129],[102.625849,32.949119],[102.625835,32.949102],[102.625803,32.949061],[102.625727,32.948963],[102.625684,32.948907],[102.625731,32.948804],[102.625736,32.948794],[102.625673,32.948727],[102.625545,32.948604],[102.625474,32.948537],[102.625371,32.948488],[102.625351,32.948476],[102.625221,32.948308],[102.624921,32.94792],[102.624661,32.947719],[102.624519,32.94761],[102.624337,32.947469],[102.62409,32.947278],[102.6239,32.947298],[102.623772,32.947322],[102.623654,32.947338],[102.623541,32.947333],[102.623575,32.947311],[102.623661,32.947282],[102.623752,32.947253],[102.623829,32.94723],[102.623969,32.947185],[102.62395,32.94717],[102.623915,32.947143],[102.623865,32.947114],[102.623832,32.947094],[102.623569,32.946939],[102.62325,32.946751],[102.622588,32.94636],[102.622215,32.94592],[102.622203,32.945672],[102.6222,32.945615],[102.622184,32.94527],[102.622188,32.945178],[102.622282,32.945131],[102.622399,32.94504],[102.622461,32.944995],[102.62253,32.944946],[102.622554,32.944902],[102.622627,32.944914],[102.624358,32.944947],[102.624897,32.944973],[102.624921,32.944974],[102.624962,32.944976],[102.625021,32.944979],[102.6252,32.944988],[102.625312,32.944994],[102.625517,32.945004],[102.625704,32.945013],[102.625829,32.945011],[102.625877,32.945011],[102.626547,32.945002],[102.626715,32.944999],[102.626771,32.944999],[102.626956,32.944996],[102.627475,32.944827],[102.627538,32.944807],[102.627781,32.944728],[102.627788,32.944485],[102.627799,32.944073],[102.6278,32.944038],[102.6278,32.94398],[102.627805,32.943247],[102.627806,32.943155],[102.627807,32.942856],[102.627808,32.94282],[102.627809,32.94268],[102.62781,32.942466],[102.62781,32.942438],[102.627811,32.942347],[102.627815,32.941644],[102.627778,32.941492],[102.627763,32.941406],[102.627746,32.941325],[102.627734,32.941265],[102.627706,32.941115],[102.627707,32.941113],[102.627744,32.94106],[102.627748,32.941041],[102.627755,32.941008],[102.627766,32.94096],[102.627786,32.940914],[102.627817,32.940889],[102.627836,32.940881],[102.627841,32.940702],[102.627853,32.940184],[102.627855,32.940176],[102.627857,32.940081],[102.627863,32.93986],[102.627846,32.939758],[102.627841,32.939733],[102.627815,32.93958],[102.627797,32.939471],[102.627788,32.939417],[102.627655,32.938638],[102.627586,32.938556],[102.627572,32.938538],[102.627485,32.938434],[102.62737,32.938296],[102.627091,32.937961],[102.627068,32.937934],[102.627002,32.937855],[102.626862,32.937789],[102.626004,32.937389],[102.625218,32.937134],[102.625103,32.937156],[102.62506,32.937158],[102.624961,32.937152],[102.624854,32.937123],[102.624805,32.937105],[102.624752,32.937074],[102.624729,32.936978],[102.623426,32.93661],[102.623307,32.936597],[102.622872,32.936552],[102.622375,32.936501],[102.62226,32.936489],[102.621987,32.936461],[102.621837,32.936446],[102.620499,32.936311],[102.620468,32.936312],[102.620401,32.936314],[102.620007,32.936327],[102.618958,32.936362],[102.618905,32.936357],[102.617919,32.936263],[102.617902,32.936261],[102.617001,32.935757],[102.616202,32.934903],[102.616183,32.934882],[102.616112,32.934807],[102.616086,32.933994],[102.616977,32.933038],[102.617518,32.933099],[102.617755,32.933125],[102.617769,32.933127],[102.617902,32.933142],[102.618273,32.933184],[102.618315,32.933188],[102.618538,32.933206],[102.618546,32.933207],[102.619521,32.933289],[102.619924,32.933347],[102.620041,32.933364],[102.620127,32.933377],[102.620815,32.933476],[102.621431,32.933512],[102.621677,32.933527],[102.621682,32.933559],[102.621699,32.933675],[102.621698,32.93368],[102.621696,32.93369],[102.621693,32.933708],[102.621769,32.93371],[102.621854,32.933686],[102.621881,32.933675],[102.621992,32.933632],[102.622146,32.933591],[102.622308,32.933513],[102.622452,32.933447],[102.622607,32.933378],[102.622749,32.933313],[102.622869,32.933262],[102.622959,32.933214],[102.623006,32.933178],[102.623085,32.933154],[102.623205,32.933127],[102.623314,32.933071],[102.623394,32.933046],[102.62347,32.932992],[102.623547,32.932913],[102.623691,32.932796],[102.623785,32.932719],[102.623863,32.932619],[102.623915,32.932574],[102.624021,32.932543],[102.624131,32.932516],[102.624212,32.932505],[102.62425,32.932496],[102.624268,32.932451],[102.624296,32.932367],[102.624322,32.932275],[102.62434,32.932118],[102.624352,32.932108],[102.624417,32.932049],[102.624694,32.931801],[102.62483,32.931679],[102.624812,32.931628],[102.624823,32.931597],[102.624853,32.931583],[102.624893,32.931572],[102.624945,32.931545],[102.62497,32.931512],[102.624988,32.931461],[102.624994,32.931421],[102.625017,32.931375],[102.625046,32.931365],[102.625083,32.931365],[102.625159,32.931349],[102.625181,32.931332],[102.625195,32.931307],[102.625206,32.931274],[102.625206,32.931252],[102.625197,32.931232],[102.625169,32.931228],[102.625177,32.931215],[102.625332,32.930966],[102.625345,32.930946],[102.625524,32.93066],[102.625606,32.930529],[102.625621,32.930505],[102.625668,32.93043],[102.625868,32.930111],[102.626012,32.929882],[102.626642,32.929153],[102.626655,32.929138],[102.626676,32.929114],[102.626806,32.928964],[102.627594,32.928481],[102.627833,32.928334],[102.628244,32.927368],[102.62809,32.926724],[102.628072,32.926649],[102.628035,32.926495],[102.627952,32.926149],[102.627941,32.926104],[102.627842,32.925932],[102.627826,32.925905],[102.627822,32.925898],[102.627717,32.925716],[102.627565,32.925452],[102.627544,32.925416],[102.627509,32.925355],[102.627443,32.925242],[102.62737,32.925116],[102.62724,32.924891],[102.627204,32.924827],[102.627159,32.92475],[102.627123,32.924718],[102.626866,32.924491],[102.626683,32.92433],[102.626609,32.924265],[102.626462,32.924135],[102.626306,32.923997],[102.626219,32.92392],[102.626133,32.923866],[102.625869,32.923702],[102.625858,32.923709],[102.625821,32.923754],[102.625802,32.923772],[102.625774,32.923775],[102.625746,32.923751],[102.625732,32.923722],[102.625703,32.92369],[102.625661,32.923676],[102.625633,32.923653],[102.625586,32.923629],[102.62553,32.923609],[102.625475,32.923596],[102.625424,32.923582],[102.625375,32.923548],[102.625368,32.923522],[102.625361,32.923485],[102.625316,32.923467],[102.625238,32.923459],[102.625196,32.923452],[102.625141,32.923431],[102.625101,32.923415],[102.625048,32.923421],[102.624994,32.923441],[102.624965,32.923437],[102.624953,32.923416],[102.624956,32.923393],[102.624992,32.923371],[102.625042,32.923351],[102.625088,32.923338],[102.625125,32.923322],[102.625135,32.923302],[102.625123,32.923279],[102.625064,32.923265],[102.624911,32.923211],[102.624853,32.923176],[102.62479,32.923129],[102.624716,32.923072],[102.624547,32.922905],[102.624522,32.922893],[102.62437,32.922788],[102.624427,32.922741],[102.624406,32.922721],[102.624385,32.922701],[102.62438,32.922696],[102.62423,32.922553],[102.62413,32.922457],[102.623484,32.921839],[102.622876,32.921123],[102.622695,32.920909],[102.6226,32.920797],[102.622552,32.92074],[102.622518,32.920701],[102.622504,32.920684],[102.622472,32.920638],[102.622378,32.920501],[102.622343,32.92045],[102.622252,32.920318],[102.622187,32.920224],[102.622164,32.92019],[102.622167,32.919965],[102.622119,32.919923],[102.62206,32.91986],[102.622022,32.919816],[102.622121,32.919364],[102.622252,32.918768],[102.622264,32.91871],[102.622268,32.918691],[102.622344,32.918642],[102.622456,32.91857],[102.622537,32.918518],[102.622575,32.918494],[102.622727,32.918396],[102.623325,32.91801],[102.624304,32.91738],[102.624471,32.917272],[102.624972,32.916551],[102.625006,32.916494],[102.625056,32.91641],[102.625147,32.916259],[102.625475,32.915709],[102.626131,32.914873],[102.62621,32.914864],[102.626231,32.91482],[102.626316,32.914762],[102.626331,32.914751],[102.626464,32.914602],[102.62657,32.914466],[102.626826,32.914228],[102.627014,32.914039],[102.627174,32.913921],[102.627188,32.913927],[102.627293,32.913989],[102.6273,32.913985],[102.62732,32.913971],[102.627406,32.913915],[102.627409,32.913899],[102.627408,32.913845],[102.627407,32.913819],[102.627407,32.913805],[102.627403,32.913797],[102.627386,32.913787],[102.627359,32.913775],[102.627343,32.913764],[102.627329,32.913749],[102.627312,32.913727],[102.627311,32.913725],[102.627301,32.913705],[102.627296,32.913693],[102.627294,32.913681],[102.627293,32.913665],[102.627293,32.913637],[102.627372,32.913652],[102.627486,32.913682],[102.627566,32.913712],[102.627622,32.913737],[102.627673,32.913766],[102.627717,32.913797],[102.627757,32.913764],[102.627804,32.913724],[102.627857,32.913679],[102.627826,32.913638],[102.627938,32.913564],[102.628346,32.913364],[102.628357,32.913358],[102.628468,32.913304],[102.628729,32.913174],[102.629248,32.912921],[102.629346,32.912872],[102.629352,32.912869],[102.629619,32.912738],[102.630083,32.91251],[102.630222,32.912471],[102.630646,32.912353],[102.63074,32.912327],[102.63089,32.912285],[102.63096,32.912265],[102.631066,32.912236],[102.631528,32.912107],[102.631709,32.912057],[102.632098,32.911948],[102.632122,32.911942],[102.632265,32.911902],[102.632352,32.911849],[102.632554,32.911727],[102.63295,32.911488],[102.633064,32.911482],[102.633099,32.911405],[102.633161,32.911223],[102.633158,32.911157],[102.633459,32.910423],[102.633451,32.909577],[102.633448,32.909315],[102.633446,32.909084],[102.633672,32.908455],[102.633697,32.908384],[102.633706,32.908358],[102.633669,32.908378],[102.633673,32.90837],[102.63376,32.908214],[102.633982,32.908013],[102.634106,32.907965],[102.634151,32.907921],[102.634259,32.907906],[102.634405,32.907885],[102.634408,32.907894],[102.634425,32.907924],[102.63444,32.907938],[102.63451,32.907935],[102.634578,32.90792],[102.634622,32.90792],[102.634669,32.907916],[102.634725,32.907908],[102.634773,32.907902],[102.63481,32.907899],[102.634866,32.90789],[102.634881,32.90788],[102.634845,32.907863],[102.634825,32.907857],[102.634803,32.907842],[102.6348,32.907831],[102.634893,32.907818],[102.634924,32.907813],[102.635186,32.907955],[102.635295,32.908014],[102.635437,32.90806],[102.635548,32.908071],[102.635648,32.908099],[102.635734,32.908135],[102.635777,32.908162],[102.635831,32.908216],[102.635759,32.908208],[102.635631,32.908196],[102.636014,32.908402],[102.636056,32.908415],[102.636157,32.908447],[102.636298,32.908491],[102.636569,32.908575],[102.636573,32.908576],[102.637189,32.908768],[102.637197,32.90877],[102.6372,32.908772],[102.637379,32.908827],[102.637467,32.908792],[102.637512,32.908781],[102.637542,32.908784],[102.637562,32.908815],[102.637562,32.90884],[102.637544,32.908877],[102.63776,32.908864],[102.637774,32.908863],[102.638553,32.908816],[102.638689,32.908634],[102.638712,32.908603],[102.638719,32.908595],[102.638775,32.908519],[102.63883,32.908446],[102.638818,32.908252],[102.638808,32.908094],[102.638816,32.907979],[102.638854,32.907902],[102.638858,32.907849],[102.638857,32.907807],[102.638875,32.907784],[102.638899,32.907758],[102.638926,32.907731],[102.638949,32.907703],[102.638974,32.907675],[102.638991,32.907659],[102.638979,32.90757],[102.638977,32.90756],[102.638906,32.907058],[102.638899,32.907013],[102.638848,32.906654],[102.638847,32.906642],[102.638846,32.906641],[102.63881,32.906386],[102.638776,32.906093],[102.638742,32.905803],[102.638736,32.905752],[102.638736,32.90575],[102.638653,32.905044],[102.638717,32.904836],[102.63872,32.904826],[102.638729,32.904799],[102.638725,32.904683],[102.638813,32.904022],[102.638917,32.903767],[102.639114,32.903378],[102.639166,32.903117],[102.639282,32.902909],[102.639399,32.90291],[102.639537,32.902585],[102.639571,32.902558],[102.639772,32.902395],[102.63978,32.902389],[102.640913,32.901475],[102.641605,32.901035],[102.64163,32.901019],[102.641649,32.901007],[102.641843,32.900884],[102.642057,32.900824],[102.642078,32.900818],[102.642113,32.900808],[102.6432,32.900504],[102.643417,32.900587],[102.643604,32.900659],[102.643616,32.900664],[102.643849,32.900753],[102.643867,32.90076],[102.644057,32.900946],[102.644144,32.901032],[102.644163,32.901051],[102.644176,32.901064],[102.644289,32.901174],[102.644939,32.902038],[102.645604,32.902375],[102.646228,32.902343],[102.646439,32.902333],[102.64648,32.90233],[102.64676,32.902316],[102.647604,32.901963],[102.64764,32.901948],[102.647781,32.901889],[102.647921,32.901721],[102.647949,32.901687],[102.647956,32.901679],[102.647988,32.90164],[102.648278,32.90129],[102.648493,32.900872],[102.64858,32.900704],[102.648589,32.900687],[102.648685,32.900502],[102.648717,32.900438],[102.648734,32.900406],[102.648746,32.900349],[102.64878,32.900186],[102.648955,32.899355],[102.648741,32.898383],[102.64874,32.898377],[102.648705,32.898318],[102.648697,32.898305],[102.648722,32.898283],[102.648726,32.898265],[102.648715,32.89824],[102.64869,32.898216],[102.648662,32.898199],[102.64862,32.898176],[102.648604,32.89815],[102.648575,32.8981],[102.648468,32.897922],[102.648421,32.897844],[102.648415,32.897833],[102.648333,32.897805],[102.648051,32.897713],[102.647969,32.897665],[102.64793,32.897624],[102.64786,32.897547],[102.647846,32.897512],[102.647823,32.897475],[102.647788,32.897445],[102.647752,32.897419],[102.647728,32.897394],[102.647717,32.897316],[102.647714,32.897294],[102.647879,32.896904],[102.647916,32.896819],[102.648151,32.89655],[102.648187,32.896508],[102.648212,32.89648],[102.64829,32.896338],[102.648418,32.896141],[102.648588,32.895963],[102.648795,32.895776],[102.649038,32.895568],[102.64909,32.895525],[102.649158,32.895495],[102.649227,32.895473],[102.649337,32.895435],[102.649552,32.895349],[102.649682,32.895287],[102.649687,32.895212],[102.649741,32.895177],[102.650277,32.894835],[102.650313,32.894808],[102.651363,32.894026],[102.651553,32.893885],[102.652916,32.893261],[102.65373,32.893353],[102.653779,32.893359],[102.654404,32.893727],[102.654774,32.893945],[102.654798,32.893966],[102.654896,32.894049],[102.654965,32.894054],[102.655054,32.894067],[102.655118,32.894094],[102.655163,32.894122],[102.655207,32.894169],[102.655241,32.89421],[102.655286,32.894246],[102.655358,32.894329],[102.655407,32.894417],[102.655436,32.894503],[102.655666,32.894697],[102.655688,32.894715],[102.655809,32.894817],[102.656172,32.895635],[102.65702,32.896301],[102.657266,32.89632],[102.657312,32.896324],[102.657283,32.896342],[102.657314,32.896348],[102.657345,32.896369],[102.657355,32.896381],[102.657375,32.896389],[102.657405,32.896396],[102.657512,32.896339],[102.657554,32.89631],[102.657595,32.896269],[102.657647,32.896223],[102.65768,32.896189],[102.657707,32.89615],[102.657719,32.896123],[102.657734,32.896075],[102.657742,32.896022],[102.657748,32.895951],[102.65776,32.895902],[102.657775,32.895842],[102.657791,32.89579],[102.657799,32.895756],[102.657788,32.895639],[102.657788,32.895596],[102.657781,32.895561],[102.657774,32.895521],[102.657763,32.89547],[102.657763,32.89542],[102.657769,32.895364],[102.657779,32.895304],[102.657807,32.895215],[102.657831,32.895167],[102.657837,32.895136],[102.657844,32.895084],[102.657853,32.895028],[102.657877,32.894944],[102.657896,32.894884],[102.657916,32.894839],[102.65794,32.894795],[102.657951,32.894777],[102.65794,32.894737],[102.657903,32.8946],[102.65772,32.893918],[102.657717,32.893906],[102.657666,32.893716],[102.657708,32.893378],[102.657727,32.89323],[102.658175,32.893014],[102.658214,32.892995],[102.659423,32.892734],[102.659453,32.892706],[102.660163,32.892018],[102.660845,32.891706],[102.661289,32.891693],[102.661711,32.891681],[102.662236,32.891849],[102.662522,32.89194],[102.662943,32.892394],[102.663252,32.89328],[102.663256,32.893293],[102.663256,32.893314],[102.663254,32.893365],[102.663282,32.893498],[102.663286,32.893564],[102.663283,32.89368],[102.663284,32.893795],[102.663309,32.893941],[102.663343,32.893988],[102.663323,32.89421],[102.66337,32.89451],[102.663371,32.89486],[102.663359,32.895057],[102.663396,32.895284],[102.663669,32.895898],[102.664223,32.89676],[102.664933,32.89722],[102.664967,32.897222],[102.664991,32.897223],[102.665116,32.897231],[102.665347,32.897244],[102.665707,32.897265],[102.665743,32.897268],[102.665941,32.897279],[102.666727,32.896685],[102.668332,32.895985],[102.668715,32.895839],[102.668775,32.895816],[102.668799,32.895807],[102.669116,32.895686],[102.669132,32.89568],[102.669277,32.895625],[102.66945,32.895559],[102.66958,32.895536],[102.66962,32.895528],[102.669704,32.895513],[102.670465,32.895375],[102.67052,32.895342],[102.670569,32.895312],[102.670716,32.895224],[102.671247,32.894903],[102.671862,32.894594],[102.671904,32.894503],[102.67193,32.894503],[102.671994,32.894497],[102.672181,32.894434],[102.672417,32.894316],[102.672699,32.894213],[102.673208,32.894028],[102.673582,32.893891],[102.673727,32.893784],[102.673732,32.89378],[102.673905,32.893652],[102.673934,32.893631],[102.67406,32.893538],[102.674171,32.893456],[102.674267,32.893385],[102.674244,32.893347],[102.674224,32.89325],[102.674259,32.893207],[102.674391,32.893184],[102.674546,32.89318],[102.67471,32.89306],[102.674932,32.893105],[102.674934,32.893105],[102.675121,32.893143],[102.675156,32.89315],[102.675214,32.893161],[102.67538,32.893194],[102.67542,32.893233],[102.675437,32.893248],[102.6766,32.894353],[102.67769,32.89476],[102.677699,32.894764],[102.677744,32.89478],[102.677992,32.89485],[102.678985,32.895128],[102.679132,32.895223],[102.67922,32.895247],[102.679411,32.895317],[102.679629,32.895423],[102.679745,32.895517],[102.679779,32.895555],[102.679814,32.895643],[102.67982,32.895665],[102.680026,32.895797],[102.680198,32.895948],[102.680475,32.896192],[102.68052,32.896233],[102.681483,32.897082],[102.682138,32.897476],[102.682161,32.89749],[102.682273,32.897558],[102.682409,32.89764],[102.682525,32.89771],[102.682605,32.89778],[102.682616,32.89779],[102.683137,32.898249],[102.683128,32.898592],[102.683182,32.898554],[102.683219,32.89852],[102.683253,32.898474],[102.683266,32.898424],[102.683302,32.898416],[102.683301,32.898442],[102.683301,32.89855],[102.683286,32.898632],[102.683259,32.898671],[102.683163,32.898703],[102.683124,32.898712],[102.683121,32.898865],[102.683117,32.898998],[102.683116,32.899033],[102.683115,32.89906],[102.683071,32.899073],[102.683051,32.899082],[102.683031,32.899093],[102.683013,32.899108],[102.682987,32.89914],[102.682675,32.899336],[102.682595,32.899352],[102.682578,32.899356],[102.682538,32.899364],[102.68195,32.899485],[102.681367,32.899717],[102.68106,32.9],[102.680776,32.900262],[102.680677,32.900354],[102.680458,32.900829],[102.680429,32.90089],[102.680419,32.900913],[102.680306,32.901158],[102.680333,32.90119],[102.680348,32.901209],[102.680387,32.901265],[102.680397,32.901294],[102.680399,32.901325],[102.680397,32.90136],[102.68039,32.9014],[102.680548,32.901609],[102.681053,32.901841],[102.681107,32.901866],[102.681351,32.901978],[102.681595,32.90209],[102.682116,32.902328],[102.683152,32.9032],[102.683054,32.903717],[102.683052,32.903728],[102.682995,32.904034],[102.682939,32.904074],[102.682898,32.904094],[102.68285,32.904113],[102.682817,32.904128],[102.682796,32.904149],[102.68277,32.904196],[102.682647,32.904257],[102.682643,32.904259],[102.681571,32.904794],[102.681325,32.905214],[102.681288,32.905277],[102.681218,32.905396],[102.681343,32.906169],[102.68191,32.906545],[102.682449,32.906578],[102.682606,32.906587],[102.682777,32.906597],[102.682784,32.906598],[102.682832,32.906601],[102.682871,32.906603],[102.683042,32.906606],[102.683315,32.906611],[102.683784,32.90662],[102.683806,32.906623],[102.684065,32.906654],[102.684176,32.906668],[102.684588,32.906717],[102.684669,32.906727],[102.685024,32.90677],[102.685174,32.906788],[102.685367,32.906812],[102.685487,32.906818],[102.68578,32.906834],[102.685877,32.906839],[102.686487,32.906872],[102.68652,32.906874],[102.686622,32.906833],[102.686633,32.906829],[102.686929,32.90671],[102.686953,32.906701],[102.687006,32.90668],[102.688349,32.906826],[102.688397,32.906859],[102.688524,32.906942],[102.689484,32.907578],[102.689666,32.907732],[102.689737,32.907793],[102.689756,32.907809],[102.690044,32.908054],[102.690057,32.908066],[102.690442,32.908393],[102.690785,32.908684],[102.690849,32.908739],[102.691092,32.908822],[102.691436,32.908938],[102.691508,32.908962],[102.691524,32.908967],[102.691541,32.908973],[102.691632,32.909004],[102.691648,32.909009],[102.692375,32.909255],[102.694242,32.909614],[102.695183,32.90955],[102.69524,32.909546],[102.696122,32.909486],[102.697161,32.909169],[102.697536,32.909054],[102.697544,32.909051],[102.697625,32.909027],[102.697734,32.908993],[102.69829,32.90882],[102.698352,32.908801],[102.698446,32.908772],[102.698983,32.908605],[102.700235,32.908392],[102.700258,32.908388],[102.700469,32.908352],[102.700916,32.908276],[102.701927,32.907981],[102.702094,32.907932],[102.702106,32.907929],[102.702224,32.907894],[102.702512,32.907857],[102.703616,32.907717],[102.703656,32.907712],[102.703674,32.90771],[102.703898,32.907681],[102.704457,32.90761],[102.704478,32.907608],[102.704734,32.907575],[102.704856,32.907609],[102.70505,32.907662],[102.705442,32.907771],[102.705574,32.907808],[102.705833,32.907879],[102.705886,32.907918],[102.705893,32.907924],[102.706339,32.908251],[102.706367,32.908272],[102.706412,32.908304],[102.706683,32.908504],[102.707575,32.908692],[102.707646,32.908707],[102.707735,32.908726],[102.708094,32.908687],[102.708159,32.90868],[102.708216,32.908674],[102.708361,32.908658],[102.7087,32.908622],[102.709571,32.908435],[102.710292,32.908524],[102.710722,32.908578],[102.710755,32.908581],[102.710802,32.908622],[102.710956,32.908706],[102.71108,32.908821],[102.711279,32.908959],[102.711516,32.909092],[102.711733,32.909211],[102.711933,32.909306],[102.712116,32.909376],[102.712227,32.909408],[102.712252,32.909414],[102.712418,32.909461],[102.712609,32.909589],[102.712665,32.909666],[102.712776,32.909808],[102.712907,32.910053],[102.713413,32.910575],[102.713932,32.910911],[102.714123,32.911034],[102.714274,32.911047],[102.714299,32.911049],[102.714365,32.911054],[102.714747,32.911086],[102.71487,32.911103],[102.714956,32.911162],[102.715039,32.911186],[102.715117,32.911207],[102.715182,32.911236],[102.715254,32.911274],[102.715321,32.911309],[102.715372,32.911327],[102.715443,32.911336],[102.715582,32.911339],[102.715599,32.911339],[102.716182,32.911853],[102.716183,32.911854],[102.716218,32.911884],[102.716229,32.911912],[102.71643,32.912388],[102.716465,32.91247],[102.71658,32.912743],[102.71758,32.913167],[102.718304,32.913058],[102.71978,32.912873],[102.719994,32.912846],[102.720509,32.912563],[102.720696,32.91246],[102.721067,32.912257],[102.722416,32.911998],[102.722522,32.911978],[102.722528,32.911977],[102.722541,32.911974],[102.722608,32.911961],[102.722614,32.91196],[102.722804,32.912009],[102.722942,32.912045],[102.72308,32.91208],[102.723202,32.912112],[102.723754,32.912254],[102.72387,32.912284],[102.724068,32.912336],[102.724086,32.91234],[102.724443,32.912432],[102.724455,32.912436],[102.724466,32.912438],[102.724754,32.912513],[102.724813,32.912528],[102.724963,32.912605],[102.72498,32.912613],[102.724997,32.912622],[102.726047,32.913159],[102.726388,32.913223],[102.726459,32.913236],[102.726484,32.913241],[102.726503,32.913245],[102.726707,32.913283],[102.726669,32.913316],[102.726672,32.913328],[102.726683,32.913328],[102.726769,32.913295],[102.727005,32.913339],[102.727323,32.913157],[102.727329,32.913152],[102.727385,32.913042],[102.727519,32.912918],[102.727617,32.912821],[102.727718,32.912715],[102.7278,32.912634],[102.72786,32.9126],[102.727891,32.912583],[102.728089,32.912489],[102.728131,32.912471],[102.728178,32.912451],[102.728273,32.91241],[102.728318,32.91239],[102.728723,32.912359],[102.728853,32.912364],[102.728923,32.912373],[102.728956,32.912386],[102.729003,32.912416],[102.729104,32.912447],[102.729271,32.91247],[102.729416,32.912485],[102.729546,32.912448],[102.729624,32.912485],[102.72991,32.912621],[102.730192,32.913232],[102.730268,32.913397],[102.730317,32.913503],[102.730318,32.913505],[102.730393,32.913668],[102.730416,32.913718],[102.730457,32.913807],[102.730451,32.914056],[102.73045,32.914098],[102.730431,32.914821],[102.730604,32.915148],[102.730611,32.915197],[102.730646,32.915269],[102.730666,32.915328],[102.730692,32.915396],[102.73071,32.915442],[102.730742,32.915484],[102.730774,32.915564],[102.730825,32.915564],[102.730844,32.9156],[102.7311,32.915744],[102.731291,32.915851],[102.732131,32.916324],[102.732409,32.916481],[102.732834,32.917172],[102.732956,32.917371],[102.733084,32.91758],[102.733241,32.917835],[102.733385,32.91797],[102.733601,32.918174],[102.733813,32.918373],[102.733821,32.918381],[102.733962,32.918514],[102.734196,32.918751],[102.734407,32.918941],[102.734604,32.919118],[102.734786,32.919267],[102.734929,32.919384],[102.735104,32.919528],[102.735408,32.919777],[102.735575,32.919913],[102.735707,32.920021],[102.735922,32.920198],[102.736177,32.920407],[102.736439,32.920621],[102.73663,32.920778],[102.736807,32.920895],[102.736945,32.920987],[102.737116,32.921101],[102.737241,32.921184],[102.737408,32.921296],[102.737582,32.921412],[102.737763,32.921532],[102.737933,32.921646],[102.738081,32.921744],[102.73822,32.921837],[102.738326,32.921907],[102.738424,32.921973],[102.738578,32.922075],[102.738677,32.922141],[102.738759,32.922196],[102.738913,32.922291],[102.739069,32.922388],[102.73921,32.922475],[102.739349,32.922569],[102.739501,32.92266],[102.739661,32.922755],[102.739811,32.922848],[102.739923,32.922917],[102.740037,32.922988],[102.740175,32.923074],[102.740282,32.92314],[102.740368,32.923194],[102.74047,32.923257],[102.740621,32.923268],[102.740795,32.923289],[102.740974,32.92334],[102.74112,32.923392],[102.741241,32.923447],[102.74136,32.923474],[102.742381,32.923703],[102.742473,32.923724],[102.742664,32.923748],[102.742859,32.923772],[102.742902,32.923777],[102.742914,32.923778],[102.742972,32.923786],[102.743241,32.923819],[102.74332,32.923671],[102.743392,32.923538],[102.743306,32.923128],[102.743254,32.923076],[102.743238,32.923032],[102.74322,32.922971],[102.743208,32.92291],[102.743198,32.922843],[102.743198,32.922799],[102.743221,32.922724],[102.743266,32.922591],[102.743284,32.92251],[102.743288,32.922482],[102.743265,32.922461],[102.743185,32.922477],[102.743209,32.92233],[102.743253,32.922069],[102.743256,32.922054],[102.74328,32.921913],[102.743304,32.921767],[102.743312,32.921719],[102.74334,32.921553],[102.743591,32.921428],[102.743748,32.92135],[102.74378,32.921278],[102.743816,32.921258],[102.743884,32.921212],[102.744126,32.921157],[102.744397,32.92113],[102.744411,32.921129],[102.744895,32.921081],[102.744916,32.92106],[102.744943,32.921059],[102.744962,32.921075],[102.745525,32.92102],[102.746005,32.921121],[102.746019,32.921124],[102.746121,32.921145],[102.746329,32.921189],[102.746567,32.921239],[102.746578,32.921241],[102.747119,32.921684],[102.747138,32.9217],[102.747181,32.921783],[102.747305,32.922024],[102.747367,32.922131],[102.747411,32.922251],[102.747439,32.922325],[102.747439,32.922335],[102.747441,32.92239],[102.748182,32.922896],[102.748981,32.923567],[102.749043,32.92362],[102.749067,32.92364],[102.749539,32.923916],[102.75014,32.924268],[102.750821,32.924666],[102.750897,32.92471],[102.752718,32.925775],[102.753762,32.926362],[102.754013,32.926339],[102.754486,32.926294],[102.755005,32.926005],[102.75512,32.92594],[102.755324,32.925675],[102.755343,32.92565],[102.755767,32.9251],[102.755851,32.925049],[102.75694,32.92439],[102.757962,32.923922],[102.759033,32.923413],[102.760483,32.923155],[102.76197,32.923076],[102.763326,32.923003],[102.763664,32.922917],[102.763759,32.922893],[102.763859,32.922868],[102.765263,32.922511],[102.768211,32.921995],[102.768917,32.921832],[102.769064,32.921799],[102.770498,32.921468],[102.770824,32.921393],[102.771647,32.921183],[102.772644,32.92093],[102.772761,32.9209],[102.774166,32.920519],[102.774659,32.920528],[102.775261,32.920538],[102.775272,32.920539],[102.775292,32.920549],[102.775406,32.92053],[102.775565,32.920533],[102.775685,32.920557],[102.775724,32.920578],[102.775837,32.920637],[102.775953,32.920716],[102.77599,32.920763],[102.776038,32.920889],[102.776038,32.920923],[102.776003,32.920942],[102.776782,32.921742],[102.777396,32.9222],[102.778451,32.92234],[102.779793,32.922567],[102.780707,32.922543],[102.780821,32.922521],[102.780877,32.92251],[102.781004,32.922486],[102.781198,32.922448],[102.781227,32.922443],[102.781286,32.922431],[102.781674,32.922357],[102.781909,32.922218],[102.781916,32.922214],[102.782113,32.922097],[102.782407,32.921923],[102.783091,32.921058],[102.783102,32.921043],[102.783114,32.921025],[102.783167,32.92094],[102.783366,32.92062],[102.783454,32.920564],[102.783543,32.920473],[102.783617,32.920393],[102.783675,32.920321],[102.78412,32.920115],[102.784185,32.920084],[102.78422,32.920068],[102.784388,32.919977],[102.784709,32.919681],[102.785332,32.919338],[102.785571,32.919205],[102.785616,32.919177],[102.785818,32.919049],[102.785914,32.918988],[102.786003,32.918932],[102.786149,32.918839],[102.786208,32.918801],[102.786525,32.918546],[102.786551,32.918524],[102.78661,32.918476],[102.786756,32.918358],[102.787174,32.918127],[102.78726,32.918079],[102.787287,32.918051],[102.787318,32.917956],[102.787394,32.917881],[102.787617,32.917841],[102.787644,32.917837],[102.787859,32.917819],[102.787935,32.917821],[102.788048,32.917806],[102.788186,32.917746],[102.788313,32.917692],[102.788329,32.917688],[102.788463,32.917656],[102.788542,32.91766],[102.788644,32.917719],[102.788656,32.91774],[102.78886,32.917735],[102.789098,32.91773],[102.789228,32.917726],[102.789246,32.917726],[102.789323,32.917724],[102.789727,32.917693],[102.790093,32.91736],[102.790161,32.917035],[102.790185,32.91692],[102.790195,32.916871],[102.790195,32.916856],[102.790184,32.916358],[102.790176,32.915935],[102.790175,32.915889],[102.790168,32.915826],[102.790066,32.914868],[102.790069,32.914745],[102.790084,32.91414],[102.79009,32.913887],[102.790291,32.913022],[102.790959,32.912533],[102.791086,32.91244],[102.791095,32.912434],[102.791248,32.912322],[102.791313,32.912243],[102.791388,32.912299],[102.791459,32.912257],[102.791503,32.91218],[102.791515,32.912118],[102.791531,32.912086],[102.791561,32.912038],[102.791593,32.911993],[102.79161,32.911953],[102.791637,32.911851],[102.791772,32.911688],[102.791795,32.91166],[102.792171,32.911206],[102.79235,32.910484],[102.792381,32.91036],[102.792427,32.910174],[102.79243,32.91016],[102.792448,32.91009],[102.792451,32.910076],[102.792469,32.910003],[102.792499,32.909857],[102.792674,32.908987],[102.792659,32.908868],[102.792589,32.908296],[102.792588,32.908293],[102.792562,32.908079],[102.79258,32.907362],[102.792598,32.906607],[102.792311,32.905583],[102.792201,32.904599],[102.792147,32.904164],[102.79194,32.902481],[102.791918,32.901574],[102.791897,32.90063],[102.792016,32.899424],[102.792136,32.898708],[102.792174,32.898483],[102.792529,32.897642],[102.792982,32.896572],[102.793136,32.895782],[102.793334,32.894993],[102.793577,32.894242],[102.794106,32.892741],[102.794852,32.891546],[102.795242,32.890232],[102.795807,32.887297],[102.796124,32.88534],[102.795936,32.884076],[102.795932,32.884053],[102.795721,32.883558],[102.794845,32.882788],[102.794064,32.88183],[102.792755,32.880486],[102.792195,32.879607],[102.792015,32.87783],[102.791732,32.876617],[102.791887,32.875789],[102.791954,32.874884],[102.791453,32.873441],[102.790717,32.872446],[102.790649,32.871614],[102.790525,32.871394],[102.789877,32.870242],[102.78952,32.869795],[102.789357,32.869591],[102.788486,32.868632],[102.787961,32.868131],[102.787511,32.86784],[102.787497,32.867831],[102.787411,32.867776],[102.787402,32.86777],[102.787301,32.867705],[102.786635,32.867461],[102.78658,32.867441],[102.786548,32.867429],[102.786326,32.867347],[102.785864,32.867321],[102.785395,32.867294],[102.785388,32.867293],[102.784325,32.866859],[102.784121,32.866063],[102.784091,32.865458],[102.78402,32.864739],[102.783364,32.862349],[102.782933,32.859888],[102.782824,32.858867],[102.782848,32.857923],[102.782782,32.856978],[102.78237,32.855536],[102.781341,32.853782],[102.780965,32.852718],[102.780298,32.850743],[102.77869,32.848865],[102.778394,32.84818],[102.778601,32.847051],[102.77866,32.844711],[102.778935,32.840828],[102.779019,32.839244],[102.778864,32.838297],[102.778723,32.836784],[102.777969,32.834732],[102.777469,32.833251],[102.777068,32.831432],[102.776906,32.830668],[102.776818,32.830249],[102.776788,32.830105],[102.776835,32.829659],[102.776963,32.828447],[102.777092,32.8281],[102.77749,32.827022],[102.777562,32.825929],[102.777201,32.824299],[102.776928,32.822671],[102.776819,32.82165],[102.77715,32.820938],[102.778082,32.819407],[102.778698,32.818021],[102.778842,32.815834],[102.778791,32.814285],[102.778952,32.813193],[102.778714,32.811981],[102.778086,32.810271],[102.778451,32.808201],[102.778828,32.807415],[102.779383,32.80667],[102.779207,32.806553],[102.777841,32.805774],[102.774801,32.803983],[102.772867,32.802665],[102.771281,32.801731],[102.77063,32.800927],[102.769432,32.798791],[102.7685,32.796736],[102.767758,32.794231],[102.767846,32.792496],[102.768283,32.791107],[102.768401,32.789977],[102.768603,32.789036],[102.768283,32.783934],[102.766972,32.782778],[102.764572,32.780432],[102.76358,32.779018],[102.762794,32.778286],[102.762059,32.777292],[102.760564,32.776321],[102.759334,32.775469],[102.757893,32.774121],[102.757023,32.7732],[102.756686,32.772363],[102.756347,32.77164],[102.755127,32.77041],[102.753668,32.76978],[102.751567,32.769817],[102.749698,32.769482],[102.749676,32.769478],[102.749675,32.769477],[102.74874,32.769307],[102.748725,32.769304],[102.748457,32.769256],[102.748441,32.769253],[102.74832,32.769231],[102.747987,32.769127],[102.747886,32.769096],[102.747007,32.768823],[102.746988,32.768817],[102.746903,32.768791],[102.746896,32.768786],[102.746884,32.768778],[102.745408,32.767744],[102.743606,32.766541],[102.74239,32.76516],[102.740571,32.764057],[102.739106,32.763074],[102.738288,32.762456],[102.736213,32.762066],[102.734195,32.761778],[102.733005,32.761706],[102.732346,32.761845],[102.731268,32.762077],[102.729958,32.762053],[102.728347,32.762125],[102.726982,32.761949],[102.725669,32.762026],[102.723295,32.761681],[102.722461,32.761665],[102.721722,32.761859],[102.721562,32.761901],[102.721528,32.761909],[102.721535,32.761574],[102.721403,32.760994],[102.721183,32.760042],[102.721268,32.758641],[102.721303,32.758239],[102.721475,32.756253],[102.72146,32.754933],[102.721534,32.753945],[102.720966,32.753233],[102.720301,32.75252],[102.719211,32.751263],[102.719018,32.751013],[102.718502,32.750343],[102.717787,32.749711],[102.717373,32.748714],[102.717,32.748006],[102.71673,32.745239],[102.716646,32.743862],[102.716626,32.743546],[102.716983,32.73914],[102.717228,32.737165],[102.717499,32.736098],[102.717708,32.735566],[102.716965,32.734109],[102.716123,32.732691],[102.715777,32.730953],[102.714921,32.728174],[102.71461,32.727312],[102.714009,32.725642],[102.713869,32.723495],[102.713414,32.722209],[102.713119,32.720389],[102.712902,32.719354],[102.712407,32.717695],[102.711905,32.716367],[102.711114,32.714868],[102.710765,32.713253],[102.709942,32.711094],[102.709183,32.710255],[102.709519,32.70857],[102.710358,32.706276],[102.710897,32.705149],[102.711045,32.704072],[102.710474,32.703337],[102.710017,32.702332],[102.709341,32.701549],[102.708339,32.700897],[102.707656,32.700386],[102.706591,32.70014],[102.705215,32.699435],[102.704211,32.698918],[102.703359,32.698676],[102.702284,32.698838],[102.70224,32.698831],[102.701003,32.698633],[102.699845,32.697841],[102.69933,32.697017],[102.698919,32.696329],[102.698738,32.695012],[102.698869,32.694109],[102.698802,32.692522],[102.698076,32.691602],[102.696438,32.690711],[102.695055,32.690323],[102.693941,32.690213],[102.693933,32.690212],[102.693482,32.690181],[102.693023,32.69015],[102.691877,32.691413],[102.68777,32.695936],[102.687705,32.696008],[102.683759,32.700354],[102.68316,32.700868],[102.682445,32.701482],[102.681951,32.701906],[102.680319,32.702827],[102.678915,32.703254],[102.678,32.703419],[102.676411,32.70271],[102.675476,32.70156],[102.675466,32.701628],[102.675395,32.701302],[102.675186,32.700339],[102.675227,32.698736],[102.674756,32.696418],[102.674282,32.694228],[102.673717,32.692614],[102.67323,32.690937],[102.672292,32.689059],[102.671802,32.687511],[102.671464,32.685901],[102.671496,32.684682],[102.67192,32.682958],[102.672356,32.681203],[102.672635,32.680083],[102.672656,32.679999],[102.672682,32.679893],[102.673309,32.679135],[102.674451,32.678964],[102.67544,32.678854],[102.676287,32.679232],[102.67635,32.67926],[102.676639,32.67939],[102.678383,32.679422],[102.680135,32.679134],[102.681366,32.678451],[102.681637,32.678265],[102.681667,32.678244],[102.681706,32.678218],[102.681757,32.678183],[102.681831,32.678132],[102.682246,32.677847],[102.682241,32.677779],[102.682238,32.677683],[102.682263,32.677557],[102.682279,32.677463],[102.68229,32.677449],[102.682321,32.677414],[102.682326,32.677409],[102.682385,32.677355],[102.682413,32.677294],[102.682416,32.677278],[102.682431,32.677204],[102.68247,32.677154],[102.682618,32.677107],[102.682743,32.677065],[102.682844,32.677026],[102.682918,32.677014],[102.682963,32.677006],[102.683032,32.677005],[102.683093,32.677005],[102.683215,32.676868],[102.683384,32.676676],[102.683689,32.675608],[102.683601,32.675309],[102.683561,32.675298],[102.683283,32.675222],[102.68256,32.675187],[102.682356,32.675177],[102.682117,32.675122],[102.681991,32.67516],[102.681835,32.675168],[102.681748,32.675149],[102.681649,32.6751],[102.681521,32.675014],[102.681482,32.674975],[102.681411,32.674893],[102.681323,32.674784],[102.681159,32.674621],[102.681082,32.674508],[102.681038,32.674407],[102.681001,32.674262],[102.681076,32.673936],[102.681534,32.673566],[102.682123,32.673486],[102.68224,32.67347],[102.682334,32.673489],[102.683125,32.673646],[102.683294,32.673679],[102.683994,32.673692],[102.684191,32.67371],[102.684761,32.673761],[102.685199,32.673653],[102.685276,32.673635],[102.685326,32.673616],[102.685475,32.673561],[102.685527,32.673541],[102.68576,32.673454],[102.685769,32.673103],[102.685713,32.672804],[102.685395,32.672717],[102.684462,32.672916],[102.684081,32.672828],[102.683798,32.672606],[102.683765,32.672199],[102.683765,32.672191],[102.68375,32.67201],[102.68374,32.671985],[102.683692,32.67186],[102.683682,32.671834],[102.683669,32.671799],[102.683542,32.67147],[102.68354,32.671465],[102.683467,32.671388],[102.683452,32.671372],[102.683415,32.671332],[102.683073,32.670969],[102.682674,32.670861],[102.682626,32.670848],[102.682328,32.670767],[102.682315,32.670764],[102.68225,32.670765],[102.682149,32.670761],[102.682008,32.670744],[102.681933,32.670728],[102.681834,32.670695],[102.681696,32.670622],[102.681564,32.670516],[102.681539,32.670496],[102.681376,32.670362],[102.681293,32.670263],[102.681219,32.670179],[102.681207,32.670113],[102.681199,32.670106],[102.680891,32.669823],[102.680857,32.669791],[102.68084,32.669776],[102.680831,32.669767],[102.680707,32.669653],[102.680427,32.669351],[102.679888,32.669178],[102.67976,32.669138],[102.679442,32.669037],[102.679356,32.66901],[102.679342,32.669005],[102.679253,32.668977],[102.67908,32.668782],[102.678911,32.668592],[102.678699,32.668128],[102.678713,32.667587],[102.67855,32.666735],[102.678393,32.666535],[102.678355,32.666486],[102.678324,32.666447],[102.678085,32.66614],[102.678058,32.666133],[102.677949,32.666105],[102.677937,32.666103],[102.677703,32.666043],[102.67728,32.665935],[102.677243,32.665925],[102.677131,32.665897],[102.677008,32.665897],[102.676871,32.665897],[102.675732,32.6659],[102.675723,32.6659],[102.675556,32.6659],[102.675492,32.6659],[102.675141,32.665901],[102.675118,32.665901],[102.674944,32.665901],[102.674897,32.665896],[102.674869,32.665893],[102.674833,32.665856],[102.674781,32.665836],[102.674713,32.665832],[102.674644,32.665833],[102.674558,32.665833],[102.674498,32.665851],[102.674354,32.665835],[102.674347,32.665834],[102.674246,32.665823],[102.674038,32.665799],[102.6739,32.665784],[102.673508,32.665739],[102.673251,32.665666],[102.673228,32.665659],[102.6732,32.665651],[102.672814,32.66554],[102.672603,32.665479],[102.672538,32.6654],[102.672506,32.665382],[102.672453,32.665356],[102.672368,32.665317],[102.672287,32.665292],[102.672161,32.665199],[102.671979,32.665064],[102.671966,32.665055],[102.671874,32.664987],[102.671203,32.664118],[102.670967,32.663856],[102.670925,32.663809],[102.670858,32.663736],[102.67085,32.663727],[102.670729,32.663593],[102.670713,32.663575],[102.670581,32.663429],[102.67017,32.662835],[102.669943,32.662767],[102.669939,32.662765],[102.669852,32.662739],[102.669561,32.662815],[102.669047,32.66295],[102.668465,32.663198],[102.668238,32.663295],[102.667752,32.663338],[102.667533,32.663334],[102.667305,32.663349],[102.6669,32.66324],[102.666766,32.663204],[102.666715,32.66319],[102.665581,32.662885],[102.664943,32.662681],[102.664908,32.66267],[102.664897,32.662666],[102.664682,32.662598],[102.664653,32.662576],[102.664645,32.662571],[102.66456,32.662507],[102.664054,32.662135],[102.664002,32.661992],[102.663999,32.661985],[102.663952,32.661856],[102.663873,32.661639],[102.663914,32.66163],[102.663935,32.661619],[102.664063,32.661558],[102.664012,32.661519],[102.663976,32.661466],[102.663946,32.661403],[102.66393,32.661365],[102.663909,32.661314],[102.663901,32.661238],[102.664145,32.660693],[102.664301,32.660276],[102.664308,32.660258],[102.664328,32.660206],[102.664431,32.659931],[102.664496,32.659481],[102.664352,32.659195],[102.664291,32.659076],[102.664166,32.658972],[102.663957,32.658847],[102.663842,32.65881],[102.663774,32.658798],[102.663745,32.658782],[102.663392,32.658874],[102.663113,32.659534],[102.663051,32.65968],[102.662612,32.660168],[102.662547,32.660146],[102.662537,32.660143],[102.662515,32.660135],[102.662432,32.660107],[102.662423,32.660104],[102.662194,32.660027],[102.662165,32.660017],[102.662145,32.66001],[102.661976,32.659953],[102.661766,32.659881],[102.661715,32.659887],[102.661588,32.659901],[102.661071,32.659959],[102.66048,32.660083],[102.660468,32.660086],[102.660331,32.660115],[102.660263,32.660129],[102.660221,32.660138],[102.660115,32.66016],[102.659891,32.660207],[102.659854,32.660197],[102.658885,32.659918],[102.658876,32.659914],[102.658804,32.659884],[102.658717,32.659846],[102.65828,32.65966],[102.658154,32.659607],[102.657777,32.659446],[102.657708,32.659398],[102.657242,32.659078],[102.657165,32.658991],[102.656969,32.658771],[102.656384,32.658111],[102.6562,32.657822],[102.655813,32.657212],[102.655451,32.656865],[102.655442,32.656856],[102.655278,32.656699],[102.655095,32.65655],[102.655075,32.656533],[102.655036,32.656501],[102.655026,32.656493],[102.654896,32.656387],[102.654696,32.656224],[102.654614,32.656204],[102.654515,32.656123],[102.654352,32.656076],[102.654241,32.656052],[102.654197,32.656099],[102.654116,32.656229],[102.653911,32.656557],[102.65393,32.657544],[102.65393,32.657563],[102.653927,32.657591],[102.65391,32.657751],[102.65394,32.657765],[102.654034,32.657839],[102.654096,32.657886],[102.654141,32.657929],[102.654177,32.65799],[102.654189,32.658071],[102.654178,32.658126],[102.654139,32.658164],[102.654065,32.658218],[102.653984,32.658258],[102.65393,32.658313],[102.653873,32.658375],[102.653794,32.658421],[102.65373,32.658464],[102.65366,32.658502],[102.653657,32.658504],[102.653635,32.658509],[102.653568,32.658526],[102.653463,32.658536],[102.653388,32.658525],[102.653297,32.658495],[102.653215,32.658451],[102.653212,32.658448],[102.653197,32.658435],[102.653175,32.658414],[102.653146,32.658386],[102.653084,32.658345],[102.653027,32.658352],[102.652912,32.658365],[102.652811,32.658376],[102.652703,32.658389],[102.652586,32.658402],[102.6524,32.658423],[102.65181,32.658258],[102.651782,32.658126],[102.651773,32.658083],[102.651744,32.657942],[102.651729,32.65787],[102.651863,32.65769],[102.651868,32.657683],[102.651958,32.657562],[102.652013,32.657488],[102.652065,32.657399],[102.652131,32.657286],[102.652137,32.657275],[102.652146,32.65726],[102.652178,32.657206],[102.652329,32.656947],[102.652348,32.656915],[102.652341,32.656723],[102.652334,32.65654],[102.652321,32.65618],[102.652298,32.65615],[102.652172,32.655985],[102.651953,32.6557],[102.651995,32.655655],[102.652012,32.655609],[102.652021,32.655556],[102.652023,32.655492],[102.652016,32.655442],[102.651995,32.655409],[102.651961,32.655391],[102.651932,32.65539],[102.65192,32.655396],[102.651906,32.655414],[102.651905,32.655441],[102.651905,32.655491],[102.651904,32.655534],[102.651904,32.655567],[102.651907,32.655641],[102.651844,32.655558],[102.651851,32.655516],[102.651856,32.655485],[102.651856,32.655457],[102.651846,32.655427],[102.651826,32.655408],[102.6518,32.655389],[102.651773,32.655371],[102.651747,32.655363],[102.651682,32.655348],[102.651658,32.655317],[102.651494,32.655286],[102.651474,32.655282],[102.650978,32.655188],[102.650023,32.654938],[102.649976,32.654918],[102.649797,32.654842],[102.6496,32.654759],[102.649299,32.654632],[102.649164,32.654574],[102.648968,32.654534],[102.64823,32.654383],[102.648138,32.654364],[102.647894,32.654314],[102.64771,32.654277],[102.647462,32.654346],[102.64723,32.654411],[102.647189,32.654423],[102.647065,32.654458],[102.64697,32.65444],[102.6469,32.654426],[102.646513,32.654353],[102.646156,32.654286],[102.646001,32.654009],[102.645981,32.653973],[102.645964,32.653355],[102.646166,32.652983],[102.646516,32.652746],[102.646582,32.652727],[102.646644,32.652708],[102.64667,32.6527],[102.646794,32.652663],[102.646825,32.652654],[102.646914,32.652627],[102.647089,32.652574],[102.647419,32.652475],[102.647597,32.652484],[102.647701,32.652483],[102.647775,32.652486],[102.647845,32.65248],[102.647933,32.652445],[102.647995,32.652416],[102.648144,32.652384],[102.648169,32.652376],[102.648164,32.652357],[102.648169,32.652348],[102.648201,32.652328],[102.648233,32.652318],[102.64829,32.652285],[102.648312,32.65226],[102.648334,32.652229],[102.648366,32.652188],[102.648393,32.652157],[102.648441,32.652112],[102.648468,32.652086],[102.648502,32.65205],[102.648537,32.652014],[102.64856,32.651958],[102.648568,32.651915],[102.648578,32.651865],[102.64858,32.651819],[102.648579,32.651759],[102.648575,32.651712],[102.64855,32.651674],[102.648505,32.651632],[102.64847,32.6516],[102.648426,32.65157],[102.648366,32.651541],[102.648281,32.651509],[102.648176,32.651471],[102.648223,32.651471],[102.648271,32.651475],[102.648312,32.651489],[102.648381,32.651514],[102.648417,32.651528],[102.648461,32.651549],[102.64852,32.651575],[102.648556,32.651602],[102.648582,32.651622],[102.648614,32.651649],[102.648631,32.651676],[102.64865,32.651705],[102.648686,32.651785],[102.648693,32.651852],[102.64869,32.651893],[102.648689,32.651941],[102.648679,32.651971],[102.648671,32.651991],[102.64865,32.652053],[102.648731,32.651947],[102.648825,32.651823],[102.64883,32.651649],[102.648832,32.651555],[102.648833,32.651528],[102.648838,32.651321],[102.648067,32.651187],[102.647838,32.651148],[102.646467,32.651122],[102.646263,32.651067],[102.646112,32.650997],[102.646097,32.651022],[102.646091,32.651021],[102.64607,32.651015],[102.646024,32.651003],[102.646015,32.651],[102.645972,32.651079],[102.64594,32.651134],[102.64584,32.651101],[102.645741,32.651096],[102.645628,32.651118],[102.645614,32.65112],[102.645556,32.651139],[102.645458,32.651296],[102.645486,32.651413],[102.645481,32.651488],[102.645476,32.651547],[102.645477,32.651662],[102.645463,32.651673],[102.645447,32.651715],[102.645425,32.651879],[102.645396,32.651912],[102.645371,32.651967],[102.645358,32.652007],[102.645341,32.652059],[102.645298,32.652125],[102.645292,32.652155],[102.64527,32.652195],[102.645229,32.652236],[102.645194,32.652271],[102.645171,32.652291],[102.645118,32.652329],[102.645079,32.652351],[102.645011,32.652382],[102.644947,32.652408],[102.644877,32.652428],[102.644819,32.652438],[102.64478,32.652438],[102.644741,32.652462],[102.644727,32.652471],[102.644661,32.65251],[102.64456,32.652469],[102.644537,32.652481],[102.644492,32.65248],[102.64442,32.652467],[102.644323,32.65244],[102.644241,32.652409],[102.644178,32.652405],[102.644126,32.652437],[102.644092,32.652477],[102.644052,32.652526],[102.64399,32.65255],[102.643908,32.652568],[102.643872,32.652504],[102.643885,32.652001],[102.643881,32.651991],[102.643868,32.651966],[102.643823,32.651874],[102.643845,32.651854],[102.643842,32.651837],[102.643825,32.651802],[102.643802,32.651766],[102.643774,32.65173],[102.643712,32.65165],[102.643629,32.651628],[102.643304,32.65154],[102.643265,32.65153],[102.643258,32.651528],[102.64294,32.651442],[102.642827,32.651464],[102.642411,32.651544],[102.642375,32.651551],[102.642338,32.651558],[102.642118,32.6516],[102.642042,32.651658],[102.642012,32.651676],[102.641971,32.651695],[102.641925,32.651696],[102.641851,32.651719],[102.641762,32.651737],[102.641696,32.651726],[102.641652,32.651713],[102.641614,32.651704],[102.641545,32.651695],[102.641479,32.651693],[102.641428,32.651698],[102.641348,32.651694],[102.64127,32.651691],[102.641198,32.65168],[102.641184,32.651674],[102.641069,32.65165],[102.640984,32.651616],[102.640909,32.651578],[102.640842,32.65154],[102.640778,32.651495],[102.640749,32.651456],[102.64075,32.651425],[102.640756,32.651378],[102.640767,32.651324],[102.640776,32.65128],[102.640792,32.651222],[102.640869,32.651121],[102.640918,32.65108],[102.640971,32.651057],[102.641024,32.651053],[102.641096,32.651054],[102.641233,32.650909],[102.641238,32.650903],[102.641464,32.650665],[102.641482,32.650646],[102.641594,32.650527],[102.6417,32.650316],[102.641725,32.650267],[102.641779,32.650159],[102.641854,32.65019],[102.641842,32.650144],[102.641847,32.650098],[102.641835,32.650049],[102.641836,32.650018],[102.641844,32.649988],[102.641878,32.64995],[102.641809,32.649892],[102.641788,32.649839],[102.641754,32.649773],[102.641713,32.649751],[102.641682,32.649738],[102.641637,32.64972],[102.641591,32.649711],[102.641516,32.649696],[102.641514,32.649688],[102.641502,32.649682],[102.641474,32.649688],[102.641448,32.649701],[102.641429,32.6497],[102.641406,32.649681],[102.641388,32.649639],[102.641373,32.649595],[102.641362,32.649555],[102.641355,32.649515],[102.641167,32.64936],[102.640851,32.649238],[102.640534,32.649116],[102.640256,32.649266],[102.640241,32.649274],[102.639978,32.649415],[102.639883,32.649521],[102.639815,32.649597],[102.63958,32.649859],[102.639559,32.649884],[102.639396,32.650066],[102.639383,32.65008],[102.639366,32.650099],[102.639039,32.650364],[102.638588,32.650123],[102.638462,32.649486],[102.638391,32.649507],[102.638388,32.649487],[102.638388,32.649476],[102.638381,32.649463],[102.638382,32.649447],[102.638393,32.649429],[102.638405,32.649414],[102.63844,32.649372],[102.638427,32.649308],[102.638406,32.649244],[102.638403,32.649235],[102.638398,32.649219],[102.638374,32.649146],[102.638258,32.648789],[102.638176,32.64872],[102.638128,32.64867],[102.638039,32.648598],[102.637989,32.648553],[102.637953,32.648494],[102.637928,32.648438],[102.637878,32.648376],[102.63779,32.648292],[102.637703,32.6482],[102.637607,32.648111],[102.637508,32.64809],[102.636909,32.647966],[102.636895,32.64797],[102.636676,32.648048],[102.636641,32.64806],[102.636494,32.648112],[102.636437,32.64868],[102.636436,32.648687],[102.636432,32.64873],[102.636395,32.648859],[102.636376,32.648927],[102.63628,32.649268],[102.636256,32.649282],[102.636118,32.649359],[102.636105,32.649366],[102.635796,32.649538],[102.63569,32.649598],[102.63568,32.649603],[102.635178,32.649768],[102.635153,32.649776],[102.635004,32.649825],[102.634991,32.649829],[102.634957,32.64984],[102.634894,32.64986],[102.634653,32.64992],[102.634284,32.650011],[102.63402,32.650076],[102.633705,32.649915],[102.633645,32.649691],[102.63359,32.64969],[102.633558,32.649691],[102.633564,32.6496],[102.633585,32.649578],[102.63359,32.64957],[102.633605,32.649544],[102.633615,32.649434],[102.633619,32.64936],[102.633595,32.649235],[102.633557,32.64912],[102.63354,32.649026],[102.633506,32.648948],[102.633469,32.648894],[102.633404,32.648827],[102.633373,32.648769],[102.633357,32.648718],[102.633338,32.648674],[102.633326,32.64866],[102.633296,32.648666],[102.633277,32.648675],[102.633258,32.648684],[102.63325,32.648698],[102.63322,32.648699],[102.633203,32.648688],[102.633183,32.648672],[102.633158,32.648647],[102.633136,32.648631],[102.633071,32.648598],[102.633005,32.648566],[102.632908,32.648529],[102.632804,32.648476],[102.632706,32.648412],[102.632522,32.648303],[102.632396,32.648214],[102.63231,32.648166],[102.632105,32.648184],[102.632104,32.648217],[102.632101,32.648348],[102.632096,32.648532],[102.632808,32.649241],[102.632558,32.649501],[102.632541,32.649519],[102.632512,32.649549],[102.63248,32.649583],[102.632467,32.649588],[102.631907,32.649842],[102.63174,32.649917],[102.631415,32.649935],[102.630687,32.649974],[102.630377,32.649879],[102.63037,32.649878],[102.629463,32.649603],[102.628923,32.649284],[102.628938,32.648743],[102.629165,32.648404],[102.62919,32.648367],[102.629271,32.648247],[102.629329,32.648163],[102.629346,32.648138],[102.62936,32.648141],[102.629374,32.648141],[102.629399,32.648129],[102.629418,32.648096],[102.629461,32.648035],[102.629481,32.647999],[102.629498,32.647951],[102.629543,32.647885],[102.629574,32.647841],[102.629597,32.647817],[102.629628,32.647802],[102.629659,32.647782],[102.629718,32.647744],[102.629771,32.647687],[102.629857,32.647492],[102.629887,32.647434],[102.629909,32.647389],[102.629915,32.647365],[102.629915,32.647354],[102.62991,32.647343],[102.629906,32.647337],[102.629891,32.647289],[102.629792,32.647173],[102.629766,32.647138],[102.629731,32.647103],[102.629681,32.647056],[102.629548,32.646963],[102.629532,32.646956],[102.629469,32.646928],[102.629217,32.646815],[102.628614,32.646829],[102.628551,32.646831],[102.628425,32.646834],[102.628404,32.646834],[102.628302,32.646837],[102.628276,32.646863],[102.627867,32.647264],[102.627784,32.647345],[102.627824,32.647393],[102.627842,32.64742],[102.627854,32.647442],[102.627855,32.647458],[102.627853,32.647466],[102.627844,32.647475],[102.627818,32.647486],[102.627799,32.647495],[102.627785,32.647505],[102.62777,32.647517],[102.62776,32.647528],[102.627754,32.647544],[102.62775,32.647559],[102.627746,32.647577],[102.627735,32.647597],[102.627723,32.647608],[102.6277,32.647623],[102.627673,32.647635],[102.627609,32.647639],[102.627595,32.647639],[102.627567,32.647637],[102.627493,32.647633],[102.627459,32.647624],[102.627409,32.647608],[102.627375,32.647589],[102.627176,32.647669],[102.627165,32.647674],[102.627145,32.647682],[102.627092,32.647703],[102.626417,32.64769],[102.626356,32.647689],[102.626224,32.647686],[102.626168,32.647672],[102.626156,32.647669],[102.626006,32.647629],[102.625589,32.64752],[102.625589,32.647488],[102.625602,32.64702],[102.625664,32.646948],[102.625811,32.646784],[102.625832,32.64676],[102.625842,32.64675],[102.625867,32.646721],[102.626103,32.646457],[102.626159,32.646395],[102.626178,32.646418],[102.626202,32.646444],[102.626213,32.64646],[102.626216,32.646457],[102.626223,32.646445],[102.626223,32.646432],[102.62622,32.646402],[102.62622,32.646374],[102.626216,32.646332],[102.626573,32.646042],[102.626583,32.646035],[102.626595,32.646025],[102.626614,32.64601],[102.626733,32.645913],[102.626742,32.645906],[102.626868,32.645804],[102.627083,32.645475],[102.627088,32.645468],[102.627124,32.645413],[102.627184,32.645323],[102.627197,32.645303],[102.6272,32.645298],[102.627344,32.645079],[102.627494,32.645015],[102.627505,32.64501],[102.627553,32.64499],[102.627697,32.644929],[102.627714,32.644922],[102.628129,32.644746],[102.628065,32.643701],[102.62774,32.643381],[102.627773,32.643365],[102.627792,32.643357],[102.627833,32.643358],[102.6278,32.643345],[102.627768,32.643337],[102.627736,32.64333],[102.627716,32.643315],[102.627683,32.643285],[102.627652,32.643251],[102.62762,32.643225],[102.627593,32.643198],[102.627548,32.643157],[102.627463,32.643137],[102.627452,32.643152],[102.627443,32.643145],[102.627155,32.642935],[102.627103,32.642935],[102.626987,32.642894],[102.626939,32.642875],[102.626893,32.642851],[102.626865,32.642816],[102.626845,32.642772],[102.626824,32.642728],[102.626794,32.642697],[102.626737,32.64267],[102.626647,32.642619],[102.626611,32.642578],[102.626596,32.642531],[102.626578,32.642495],[102.626576,32.642456],[102.626588,32.642396],[102.626415,32.642201],[102.626363,32.641808],[102.626358,32.64177],[102.626374,32.641763],[102.626391,32.641751],[102.626407,32.641713],[102.626462,32.641605],[102.626511,32.641553],[102.62656,32.641504],[102.626569,32.641496],[102.626634,32.641435],[102.626767,32.641306],[102.627,32.641052],[102.62712,32.640927],[102.627319,32.64076],[102.627601,32.640522],[102.62797,32.640143],[102.628064,32.640045],[102.628118,32.639991],[102.62806,32.639901],[102.628013,32.639828],[102.627959,32.639744],[102.627942,32.639717],[102.627741,32.639565],[102.627629,32.639479],[102.627123,32.639585],[102.626942,32.639769],[102.626928,32.639782],[102.626915,32.639796],[102.626824,32.639888],[102.626748,32.639965],[102.626732,32.639974],[102.626713,32.639973],[102.626673,32.639961],[102.626613,32.639958],[102.626546,32.639963],[102.62647,32.63998],[102.626389,32.64003],[102.62635,32.640055],[102.626332,32.640083],[102.626311,32.640101],[102.62629,32.640105],[102.626254,32.640108],[102.626168,32.64015],[102.626149,32.640171],[102.626143,32.640198],[102.626141,32.640219],[102.626136,32.640243],[102.626126,32.640256],[102.626099,32.640264],[102.626074,32.640276],[102.626022,32.640335],[102.626011,32.640364],[102.625999,32.640385],[102.625998,32.640401],[102.625997,32.640411],[102.62595,32.640439],[102.625866,32.640489],[102.625755,32.64051],[102.625683,32.640524],[102.625131,32.64063],[102.624709,32.640828],[102.624669,32.640847],[102.624653,32.640854],[102.62453,32.640866],[102.624426,32.640901],[102.624365,32.640937],[102.624306,32.640993],[102.624265,32.641052],[102.624211,32.641122],[102.624108,32.641187],[102.623956,32.641283],[102.623925,32.641303],[102.623331,32.64133],[102.622841,32.640819],[102.622849,32.640525],[102.62285,32.640505],[102.622852,32.640433],[102.622854,32.640355],[102.622942,32.640263],[102.622984,32.64022],[102.623183,32.640013],[102.623913,32.640027],[102.624517,32.639652],[102.624478,32.639223],[102.624446,32.638877],[102.624339,32.638636],[102.624188,32.638293],[102.623922,32.638299],[102.623867,32.6383],[102.623826,32.638301],[102.623522,32.638308],[102.623511,32.638309],[102.623273,32.638314],[102.622581,32.638572],[102.622298,32.638459],[102.622234,32.638433],[102.622226,32.638408],[102.622218,32.638381],[102.622209,32.638351],[102.622197,32.638314],[102.622178,32.63827],[102.622146,32.638221],[102.62212,32.638188],[102.622075,32.638137],[102.621974,32.637859],[102.621961,32.637825],[102.622061,32.637636],[102.622087,32.637586],[102.622202,32.637366],[102.622242,32.637317],[102.622579,32.636909],[102.622619,32.636891],[102.623227,32.636612],[102.623736,32.636598],[102.623709,32.636569],[102.623661,32.636536],[102.62384,32.636548],[102.623961,32.636569],[102.62406,32.636582],[102.624076,32.636571],[102.624422,32.636326],[102.624567,32.636049],[102.624609,32.635969],[102.624568,32.635921],[102.624521,32.635878],[102.624414,32.635802],[102.624326,32.635751],[102.624304,32.635733],[102.624297,32.635714],[102.624291,32.635699],[102.624273,32.635671],[102.624212,32.635638],[102.624154,32.635618],[102.624089,32.635615],[102.624033,32.635618],[102.623957,32.635651],[102.623899,32.63569],[102.623853,32.635693],[102.623799,32.635695],[102.623595,32.635824],[102.62358,32.63588],[102.623579,32.635904],[102.623549,32.635903],[102.623492,32.635916],[102.623472,32.635938],[102.623449,32.635967],[102.623423,32.635991],[102.623391,32.636009],[102.623358,32.636024],[102.623311,32.636038],[102.623236,32.636054],[102.623213,32.63605],[102.62319,32.636023],[102.623158,32.635977],[102.623155,32.635954],[102.623085,32.635952],[102.623025,32.635951],[102.623011,32.635951],[102.62297,32.63595],[102.622878,32.635882],[102.622872,32.635878],[102.622867,32.635874],[102.622701,32.635752],[102.622802,32.635406],[102.622929,32.635292],[102.622945,32.635277],[102.622952,32.635249],[102.622961,32.635228],[102.622988,32.635201],[102.623045,32.635153],[102.623142,32.635072],[102.623261,32.634973],[102.623259,32.634943],[102.623269,32.634927],[102.623291,32.634903],[102.623309,32.634889],[102.623364,32.634868],[102.623413,32.634838],[102.623455,32.634817],[102.623474,32.634804],[102.623512,32.634789],[102.623581,32.634765],[102.62364,32.63472],[102.623701,32.634688],[102.623756,32.634668],[102.623806,32.63465],[102.623857,32.634616],[102.623897,32.634583],[102.623929,32.634542],[102.623941,32.63451],[102.623969,32.634443],[102.624022,32.634379],[102.624045,32.634351],[102.624072,32.634278],[102.624101,32.634209],[102.624124,32.634171],[102.624132,32.634145],[102.624138,32.63412],[102.624144,32.634063],[102.624174,32.63402],[102.624231,32.633945],[102.624248,32.633897],[102.624256,32.633857],[102.624258,32.63382],[102.624254,32.633795],[102.624238,32.633779],[102.624231,32.633768],[102.624223,32.633759],[102.62421,32.633742],[102.624198,32.633719],[102.624192,32.633697],[102.624189,32.633673],[102.624188,32.633651],[102.624181,32.63361],[102.624173,32.633609],[102.62409,32.633596],[102.623628,32.633527],[102.623071,32.633865],[102.622798,32.634106],[102.622783,32.634119],[102.622692,32.634199],[102.622557,32.634319],[102.622451,32.634349],[102.622082,32.634455],[102.622065,32.634459],[102.62205,32.634464],[102.622031,32.63443],[102.621963,32.634307],[102.621964,32.634275],[102.621986,32.63425],[102.622042,32.63418],[102.622046,32.634175],[102.62207,32.634127],[102.62207,32.634117],[102.622076,32.634029],[102.622103,32.633843],[102.622148,32.633676],[102.622175,32.633609],[102.62218,32.633586],[102.622182,32.633571],[102.622179,32.633564],[102.622172,32.63356],[102.622267,32.633335],[102.62236,32.633117],[102.622331,32.632498],[102.622075,32.632303],[102.622017,32.63226],[102.621846,32.632138],[102.62184,32.632134],[102.621807,32.632111],[102.62168,32.632021],[102.621662,32.632008],[102.621344,32.631783],[102.621257,32.631659],[102.621237,32.63163],[102.621219,32.631604],[102.621124,32.63147],[102.621132,32.63116],[102.621273,32.631113],[102.621303,32.631102],[102.62132,32.631097],[102.621642,32.630987],[102.621737,32.630955],[102.621778,32.630941],[102.622201,32.630485],[102.62213,32.62971],[102.622103,32.629658],[102.622102,32.629657],[102.622088,32.62963],[102.622083,32.629619],[102.622036,32.629529],[102.622026,32.629509],[102.622001,32.629462],[102.621924,32.629313],[102.621826,32.629125],[102.622087,32.628956],[102.622102,32.628946],[102.622158,32.62891],[102.622224,32.628867],[102.622286,32.628878],[102.622343,32.628893],[102.622382,32.628908],[102.622437,32.628921],[102.622477,32.628922],[102.62256,32.628907],[102.622586,32.628892],[102.622627,32.628872],[102.622669,32.628869],[102.622691,32.62887],[102.622737,32.628865],[102.622773,32.628851],[102.622801,32.628841],[102.622837,32.628835],[102.622907,32.628829],[102.622941,32.628825],[102.623011,32.628821],[102.623081,32.628828],[102.62321,32.628868],[102.623298,32.628917],[102.623359,32.628922],[102.623886,32.62897],[102.624528,32.628867],[102.625035,32.628488],[102.625051,32.628476],[102.625078,32.628456],[102.625085,32.628451],[102.625134,32.628414],[102.625142,32.628097],[102.625147,32.627908],[102.625159,32.627448],[102.625101,32.626937],[102.625074,32.626704],[102.625048,32.62648],[102.624968,32.62631],[102.624943,32.626257],[102.624939,32.626249],[102.62493,32.626229],[102.624909,32.626185],[102.624597,32.625522],[102.624576,32.625477],[102.624561,32.625447],[102.624345,32.624987],[102.624313,32.624919],[102.624322,32.624879],[102.6244,32.624549],[102.624463,32.624281],[102.624486,32.624265],[102.624863,32.624273],[102.624876,32.624273],[102.624971,32.624253],[102.625082,32.624253],[102.625161,32.624285],[102.625295,32.624371],[102.625402,32.624458],[102.625533,32.624554],[102.625551,32.624586],[102.625921,32.625222],[102.625926,32.62523],[102.62593,32.625237],[102.625986,32.625333],[102.625994,32.625347],[102.626004,32.625364],[102.626079,32.625494],[102.626268,32.625571],[102.626576,32.625697],[102.626607,32.625687],[102.626673,32.625666],[102.626807,32.625624],[102.62684,32.625532],[102.626845,32.625518],[102.626961,32.625203],[102.626968,32.625182],[102.627102,32.624818],[102.627107,32.624623],[102.627108,32.624593],[102.62711,32.624529],[102.62711,32.624521],[102.627111,32.624469],[102.627112,32.624435],[102.62712,32.624122],[102.626967,32.623588],[102.626957,32.623553],[102.626953,32.623539],[102.626959,32.623484],[102.626971,32.623374],[102.626956,32.623352],[102.626953,32.62333],[102.626951,32.623303],[102.626954,32.623277],[102.626967,32.623244],[102.626988,32.623223],[102.627064,32.623118],[102.627155,32.623061],[102.627307,32.622987],[102.627439,32.622946],[102.627606,32.62301],[102.627689,32.62332],[102.627692,32.623327],[102.627731,32.623476],[102.627745,32.623485],[102.627846,32.623551],[102.627966,32.623628],[102.627983,32.623639],[102.628041,32.6237],[102.628085,32.623727],[102.628151,32.623761],[102.628334,32.623809],[102.628397,32.623817],[102.628444,32.623818],[102.628508,32.623811],[102.628561,32.623796],[102.628588,32.623785],[102.628717,32.623675],[102.628803,32.623708],[102.628935,32.623537],[102.629142,32.62327],[102.6292,32.623195],[102.629267,32.622988],[102.62935,32.622734],[102.629314,32.622685],[102.629246,32.622589],[102.629232,32.62257],[102.629041,32.622303],[102.628513,32.622107],[102.628496,32.622101],[102.628477,32.622093],[102.628362,32.622051],[102.628335,32.622086],[102.628316,32.62211],[102.628308,32.622136],[102.628293,32.62217],[102.628282,32.622188],[102.628255,32.622197],[102.628187,32.622181],[102.628165,32.622161],[102.628151,32.62213],[102.628127,32.622091],[102.628104,32.622059],[102.628054,32.622022],[102.628022,32.622004],[102.627994,32.621985],[102.627975,32.621956],[102.627964,32.621917],[102.627948,32.62186],[102.627935,32.621842],[102.627927,32.621828],[102.627905,32.621813],[102.627891,32.621803],[102.627875,32.62179],[102.627858,32.621771],[102.62785,32.621752],[102.627851,32.621739],[102.627858,32.621721],[102.627867,32.621707],[102.627882,32.621691],[102.627898,32.621668],[102.627901,32.621655],[102.627902,32.62163],[102.627898,32.621606],[102.627881,32.621591],[102.627879,32.621572],[102.627888,32.621522],[102.627909,32.621483],[102.62792,32.621467],[102.627935,32.621453],[102.627948,32.621443],[102.627959,32.621436],[102.627975,32.621437],[102.627984,32.621442],[102.627998,32.621386],[102.628,32.62138],[102.628003,32.621367],[102.628067,32.621125],[102.628506,32.620979],[102.62862,32.620942],[102.628627,32.620947],[102.628634,32.620953],[102.628766,32.621054],[102.628787,32.621071],[102.628932,32.621183],[102.628969,32.621235],[102.629037,32.6213],[102.629104,32.62135],[102.629144,32.621379],[102.629176,32.621402],[102.629193,32.62141],[102.629226,32.621418],[102.629255,32.621422],[102.629277,32.621429],[102.629291,32.621447],[102.629301,32.621469],[102.629337,32.621496],[102.629422,32.621507],[102.629432,32.621508],[102.629701,32.621542],[102.62987,32.62133],[102.629905,32.621285],[102.62992,32.621268],[102.630058,32.621094],[102.630126,32.621009],[102.630125,32.620995],[102.630123,32.620981],[102.630053,32.620312],[102.630051,32.620293],[102.62995,32.620178],[102.629837,32.6201],[102.629772,32.620038],[102.629754,32.619986],[102.629754,32.619921],[102.629819,32.619935],[102.629952,32.61994],[102.630005,32.619941],[102.630003,32.619926],[102.629994,32.619862],[102.629992,32.619847],[102.629977,32.61973],[102.629827,32.619381],[102.629822,32.61937],[102.629809,32.619339],[102.629793,32.619302],[102.629778,32.61931],[102.629764,32.619314],[102.629753,32.619317],[102.629744,32.61932],[102.629733,32.619318],[102.629723,32.619315],[102.629706,32.619314],[102.629696,32.619316],[102.629685,32.619322],[102.629676,32.619332],[102.629667,32.619343],[102.629637,32.619291],[102.62964,32.619268],[102.629706,32.619233],[102.629742,32.619184],[102.629676,32.619029],[102.629823,32.618645],[102.629966,32.618136],[102.629805,32.617975],[102.629496,32.617618],[102.629476,32.617571],[102.629432,32.617523],[102.629352,32.617438],[102.629347,32.617432],[102.628642,32.616651],[102.628652,32.616278],[102.628664,32.616229],[102.628667,32.616217],[102.628674,32.616187],[102.628701,32.616074],[102.628707,32.616047],[102.628718,32.615648],[102.62832,32.615214],[102.628268,32.615004],[102.628255,32.614951],[102.628235,32.614866],[102.62831,32.614415],[102.628316,32.614403],[102.62847,32.614105],[102.628542,32.613967],[102.628628,32.613684],[102.628679,32.613517],[102.628681,32.613503],[102.628698,32.613319],[102.628723,32.613065],[102.628543,32.612715],[102.62836,32.612499],[102.62808,32.612387],[102.627877,32.612463],[102.62785,32.612473],[102.627798,32.612493],[102.627674,32.612539],[102.627626,32.612589],[102.62759,32.612638],[102.62755,32.612693],[102.627505,32.612733],[102.627436,32.612777],[102.627426,32.612784],[102.627376,32.6128],[102.6273,32.612826],[102.62729,32.612828],[102.627266,32.612851],[102.627185,32.612929],[102.626827,32.612922],[102.626681,32.61292],[102.626531,32.612777],[102.626375,32.612629],[102.626329,32.612585],[102.626312,32.612569],[102.626252,32.612512],[102.626302,32.612287],[102.626309,32.612255],[102.626323,32.612194],[102.626323,32.612194],[102.626323,32.612194],[102.626338,32.61219],[102.626355,32.612185],[102.626406,32.612171],[102.626415,32.612168],[102.62666,32.612101],[102.626667,32.612099],[102.626667,32.612099],[102.626667,32.612099],[102.626707,32.612088],[102.626749,32.612076],[102.626761,32.612073],[102.626769,32.612071],[102.626957,32.612019],[102.626965,32.612018],[102.626966,32.612017],[102.626968,32.612017],[102.627017,32.612006],[102.627054,32.611997],[102.627071,32.611993],[102.627149,32.611975],[102.627812,32.611823],[102.628165,32.611536],[102.628317,32.611274],[102.628327,32.611257],[102.628333,32.611245],[102.628363,32.611194],[102.628372,32.611145],[102.628373,32.611142],[102.628373,32.61114],[102.628396,32.611017],[102.628436,32.610796],[102.628258,32.610537],[102.628234,32.610503],[102.628207,32.610464],[102.628194,32.610445],[102.628193,32.610445],[102.628191,32.610445],[102.628151,32.610442],[102.627534,32.610406],[102.627524,32.610411],[102.627463,32.61044],[102.627402,32.61047],[102.627375,32.610483],[102.627056,32.610636],[102.62685,32.610678],[102.626824,32.610684],[102.626729,32.610703],[102.626455,32.610758],[102.626225,32.610588],[102.626208,32.610576],[102.626208,32.610576],[102.626207,32.610575],[102.626181,32.610556],[102.62614,32.610526],[102.626128,32.610517],[102.626103,32.610498],[102.626085,32.610485],[102.6257,32.610144],[102.625316,32.609805],[102.625058,32.609693],[102.624476,32.609443],[102.623824,32.609111],[102.623239,32.608937],[102.622575,32.608741],[102.62212,32.608545],[102.622103,32.608538],[102.622085,32.60853],[102.621798,32.608406],[102.62152,32.608188],[102.621549,32.608132],[102.621653,32.607924],[102.621774,32.607819],[102.621802,32.607795],[102.621809,32.607789],[102.621892,32.607716],[102.621903,32.607706],[102.622072,32.607559],[102.622058,32.60732],[102.622056,32.60729],[102.622056,32.607289],[102.622056,32.607288],[102.62205,32.607188],[102.62205,32.607187],[102.62205,32.607186],[102.622031,32.60718],[102.62203,32.60718],[102.622028,32.607179],[102.621934,32.607151],[102.621904,32.607142],[102.621488,32.607016],[102.620828,32.607003],[102.620723,32.606822],[102.620723,32.606821],[102.620722,32.60682],[102.620718,32.606814],[102.620675,32.606739],[102.620675,32.606739],[102.620674,32.606738],[102.620407,32.606276],[102.620241,32.606042],[102.620065,32.605793],[102.620064,32.605792],[102.620064,32.605791],[102.620058,32.605784],[102.619896,32.605554],[102.619891,32.605547],[102.619869,32.605487],[102.619777,32.605235],[102.619773,32.605222],[102.619765,32.605202],[102.619734,32.605116],[102.619725,32.605092],[102.619722,32.605083],[102.619715,32.605065],[102.619885,32.604681],[102.619936,32.604566],[102.619949,32.604537],[102.620019,32.604272],[102.620037,32.604206],[102.620063,32.604105],[102.620076,32.604059],[102.620081,32.604039],[102.620124,32.603876],[102.620124,32.603875],[102.620124,32.603874],[102.620229,32.603796],[102.620236,32.603791],[102.620353,32.603704],[102.620366,32.603694],[102.620609,32.603513],[102.620611,32.603512],[102.620613,32.60351],[102.620627,32.6035],[102.620713,32.603436],[102.620715,32.603434],[102.620717,32.603433],[102.620927,32.603277],[102.620996,32.603038],[102.620595,32.602738],[102.620164,32.602357],[102.61981,32.601806],[102.619805,32.601797],[102.619784,32.601759],[102.619753,32.601704],[102.619655,32.601528],[102.619599,32.601428],[102.619576,32.601376],[102.619321,32.600799],[102.61933,32.600758],[102.619337,32.600725],[102.61934,32.60071],[102.619352,32.60065],[102.619357,32.600628],[102.619374,32.600544],[102.619385,32.600493],[102.619406,32.600395],[102.619852,32.600247],[102.619875,32.600045],[102.619878,32.600022],[102.619879,32.600015],[102.619889,32.599925],[102.619891,32.599908],[102.619899,32.599843],[102.619776,32.599746],[102.619574,32.599587],[102.619614,32.59954],[102.619624,32.599528],[102.619941,32.599153],[102.619979,32.599108],[102.619988,32.599097],[102.620093,32.598973],[102.62012,32.598941],[102.620145,32.598912],[102.62056,32.598545],[102.620541,32.598506],[102.620541,32.598505],[102.620541,32.598504],[102.620521,32.598461],[102.620521,32.598461],[102.62052,32.598459],[102.620462,32.598333],[102.620451,32.598311],[102.620386,32.598168],[102.620143,32.597602],[102.620125,32.597578],[102.62011,32.597558],[102.620046,32.59747],[102.620002,32.597411],[102.619648,32.596927],[102.619609,32.596874],[102.619548,32.59682],[102.61935,32.596645],[102.619282,32.596584],[102.619244,32.596551],[102.619213,32.596524],[102.618953,32.596433],[102.618919,32.596421],[102.618556,32.596293],[102.618557,32.596287],[102.618602,32.595951],[102.618908,32.595739],[102.61891,32.595738],[102.618912,32.595736],[102.618947,32.595711],[102.618996,32.595678],[102.619023,32.595659],[102.619127,32.595587],[102.619523,32.595354],[102.619539,32.595345],[102.619564,32.595186],[102.619571,32.595143],[102.619583,32.595066],[102.619583,32.595065],[102.619583,32.595065],[102.619536,32.59498],[102.619482,32.594884],[102.619447,32.594821],[102.619408,32.59475],[102.618823,32.594552],[102.618056,32.594319],[102.617771,32.593939],[102.617563,32.593467],[102.617866,32.59313],[102.618143,32.593025],[102.618246,32.592986],[102.618389,32.592931],[102.61849,32.592893],[102.618648,32.592833],[102.619144,32.592549],[102.619065,32.592209],[102.618865,32.592067],[102.618629,32.5919],[102.61797,32.591624],[102.617462,32.591174],[102.617441,32.591156],[102.617358,32.591082],[102.617339,32.591066],[102.617276,32.59101],[102.617265,32.590998],[102.617152,32.590885],[102.616627,32.590359],[102.61662,32.590286],[102.616616,32.590252],[102.616607,32.59016],[102.6166,32.5901],[102.616592,32.59002],[102.616779,32.589647],[102.616972,32.589585],[102.616999,32.589576],[102.617074,32.589552],[102.617122,32.589536],[102.617158,32.589524],[102.617546,32.589399],[102.617561,32.589394],[102.617608,32.589378],[102.617661,32.589361],[102.617676,32.589356],[102.617765,32.589328],[102.617815,32.589103],[102.617467,32.588833],[102.617208,32.588771],[102.617207,32.58877],[102.617206,32.58877],[102.617029,32.588727],[102.616999,32.58872],[102.616998,32.588719],[102.616997,32.588719],[102.616629,32.58863],[102.616564,32.588505],[102.616522,32.588425],[102.616519,32.588418],[102.616442,32.58827],[102.616396,32.588181],[102.616333,32.58806],[102.616166,32.587681],[102.616241,32.587512],[102.616241,32.587512],[102.616242,32.587511],[102.616247,32.587499],[102.616253,32.587485],[102.616298,32.587384],[102.616305,32.58737],[102.616342,32.587288],[102.616449,32.587048],[102.616514,32.586694],[102.616534,32.586583],[102.616552,32.586486],[102.616519,32.586401],[102.616478,32.586297],[102.616352,32.585974],[102.616344,32.585956],[102.616338,32.585925],[102.61628,32.585623],[102.616278,32.585615],[102.616227,32.585352],[102.616427,32.584529],[102.616407,32.584412],[102.616404,32.584397],[102.616401,32.584379],[102.616389,32.584305],[102.616384,32.584277],[102.616381,32.584261],[102.616365,32.584163],[102.616311,32.58385],[102.616342,32.583623],[102.616346,32.583592],[102.616351,32.583557],[102.61636,32.583488],[102.616361,32.583478],[102.616362,32.583477],[102.616362,32.583475],[102.616367,32.583438],[102.6166,32.583029],[102.617226,32.582808],[102.617249,32.582799],[102.617406,32.582744],[102.617414,32.582741],[102.617522,32.582697],[102.617679,32.582635],[102.617765,32.5826],[102.617767,32.582521],[102.617768,32.582485],[102.61777,32.582433],[102.617774,32.582262],[102.61777,32.582225],[102.617747,32.582039],[102.617738,32.581961],[102.617473,32.581881],[102.617388,32.581793],[102.61735,32.581753],[102.617246,32.581645],[102.617214,32.581612],[102.61721,32.581597],[102.617205,32.581575],[102.617094,32.581122],[102.617281,32.580749],[102.617533,32.580637],[102.617559,32.580626],[102.617559,32.580625],[102.617559,32.580625],[102.617655,32.580583],[102.617675,32.580574],[102.617912,32.580468],[102.61809,32.580389],[102.618139,32.580202],[102.618191,32.57994],[102.618089,32.579725],[102.618076,32.579699],[102.618076,32.579699],[102.618076,32.579699],[102.618065,32.579674],[102.617943,32.579616],[102.6179,32.579595],[102.617835,32.579564],[102.617495,32.5794],[102.617244,32.578794],[102.617266,32.577979],[102.617266,32.577968],[102.617264,32.577963],[102.617158,32.577697],[102.617135,32.577638],[102.617007,32.57732],[102.616933,32.577135],[102.616962,32.576045],[102.617024,32.57537],[102.617128,32.574808],[102.617546,32.574269],[102.617547,32.574268],[102.617547,32.574268],[102.617564,32.574246],[102.617588,32.574215],[102.617617,32.574197],[102.617617,32.574197],[102.617618,32.574196],[102.617779,32.574093],[102.618041,32.573927],[102.618086,32.573899],[102.618204,32.573824],[102.618213,32.573818],[102.618213,32.573818],[102.618214,32.573818],[102.61822,32.573814],[102.618232,32.573802],[102.618447,32.573593],[102.618411,32.573291],[102.618068,32.572834],[102.617373,32.572257],[102.616982,32.571949],[102.617039,32.571461],[102.617046,32.571433],[102.617127,32.571108],[102.617188,32.570863],[102.617347,32.569889],[102.617331,32.56903],[102.61733,32.569001],[102.617329,32.568932],[102.617329,32.568911],[102.617303,32.568825],[102.617237,32.568605],[102.617235,32.568598],[102.617211,32.56852],[102.617125,32.568231],[102.616478,32.567504],[102.616138,32.567062],[102.616119,32.567038],[102.616069,32.566972],[102.616059,32.56696],[102.615962,32.566833],[102.61592,32.56678],[102.615901,32.566006],[102.6159,32.565956],[102.615899,32.565915],[102.615988,32.565587],[102.616011,32.565504],[102.616144,32.565017],[102.616205,32.564417],[102.616316,32.563555],[102.616504,32.563183],[102.616523,32.563175],[102.616705,32.563109],[102.617086,32.562968],[102.617187,32.562887],[102.617223,32.562857],[102.617449,32.562674],[102.617455,32.562449],[102.617435,32.562421],[102.617405,32.562378],[102.617371,32.562329],[102.61737,32.562328],[102.617369,32.562326],[102.617354,32.562305],[102.617228,32.562125],[102.617148,32.56201],[102.617147,32.56201],[102.617028,32.561839],[102.616994,32.561823],[102.616353,32.561508],[102.616302,32.561483],[102.616296,32.56148],[102.616151,32.561409],[102.615762,32.561012],[102.615734,32.560985],[102.615703,32.560952],[102.615287,32.560529],[102.615034,32.560035],[102.614831,32.559317],[102.614545,32.558372],[102.61425,32.557803],[102.614135,32.557124],[102.614149,32.556561],[102.614332,32.556062],[102.614348,32.556017],[102.614365,32.555971],[102.614384,32.55592],[102.614437,32.555777],[102.614949,32.554847],[102.615821,32.553774],[102.616057,32.553252],[102.616033,32.552462],[102.616357,32.55198],[102.616737,32.552072],[102.617168,32.552177],[102.617194,32.552183],[102.618168,32.552277],[102.61853,32.552021],[102.618628,32.551647],[102.618283,32.551302],[102.617712,32.551066],[102.617631,32.550764],[102.617824,32.550203],[102.618076,32.549043],[102.618233,32.548144],[102.61838,32.547621],[102.618569,32.547173],[102.619383,32.546587],[102.619578,32.54663],[102.619616,32.546638],[102.619653,32.546646],[102.619825,32.546684],[102.619927,32.546707],[102.620133,32.546752],[102.620412,32.546688],[102.62053,32.546661],[102.620532,32.546661],[102.620533,32.546661],[102.620648,32.546634],[102.620664,32.54663],[102.620892,32.546578],[102.621171,32.546301],[102.621211,32.546261],[102.621212,32.54626],[102.621213,32.546259],[102.621333,32.546139],[102.621385,32.546088],[102.62146,32.546013],[102.621485,32.545988],[102.621511,32.545969],[102.621587,32.545914],[102.621648,32.545869],[102.6217,32.545832],[102.621734,32.545806],[102.62239,32.545329],[102.622941,32.544625],[102.624279,32.54435],[102.624451,32.544246],[102.624691,32.5441],[102.624692,32.544099],[102.624693,32.544098],[102.624695,32.544097],[102.624776,32.544049],[102.625001,32.543912],[102.62528,32.54377],[102.62531,32.543755],[102.625351,32.543734],[102.62537,32.543724],[102.625855,32.543477],[102.62613,32.543144],[102.626329,32.543051],[102.626403,32.543016],[102.626426,32.543006],[102.626593,32.542927],[102.62662,32.542915],[102.626669,32.542891],[102.626966,32.542985],[102.627813,32.543251],[102.628128,32.543169],[102.628567,32.543054],[102.628618,32.543041],[102.628621,32.543023],[102.628655,32.54286],[102.628685,32.542719],[102.628705,32.542621],[102.628708,32.54261],[102.628719,32.542554],[102.629047,32.542384],[102.629104,32.542355],[102.629114,32.54235],[102.629207,32.542302],[102.62922,32.542295],[102.629265,32.542271],[102.629349,32.542228],[102.629441,32.541815],[102.62945,32.541779],[102.629508,32.54165],[102.629517,32.541628],[102.629563,32.541528],[102.629571,32.54151],[102.629664,32.541304],[102.629685,32.541257],[102.629861,32.54129],[102.62988,32.541294],[102.629969,32.541311],[102.629999,32.541316],[102.630568,32.541424],[102.630756,32.541421],[102.630765,32.541421],[102.630765,32.541421],[102.630813,32.54142],[102.630881,32.541419],[102.630883,32.541419],[102.630884,32.541419],[102.630886,32.541419],[102.630901,32.541419],[102.631635,32.541408],[102.631678,32.541407],[102.631678,32.541408],[102.631678,32.541408],[102.63176,32.541581],[102.631836,32.54174],[102.631845,32.541759],[102.63193,32.541938],[102.631892,32.542158],[102.631889,32.542171],[102.631869,32.542291],[102.631842,32.542444],[102.63184,32.542455],[102.631837,32.542473],[102.631826,32.542538],[102.631933,32.54269],[102.631934,32.542692],[102.631935,32.542694],[102.631989,32.54277],[102.632039,32.542842],[102.63213,32.542858],[102.632132,32.542858],[102.632135,32.542859],[102.632217,32.542873],[102.632235,32.542876],[102.632525,32.542927],[102.633512,32.542532],[102.634104,32.541942],[102.634044,32.541696],[102.634043,32.541694],[102.634043,32.541692],[102.634028,32.54163],[102.634025,32.541618],[102.634022,32.541607],[102.634002,32.541525],[102.633984,32.541451],[102.633966,32.541389],[102.633933,32.541275],[102.633928,32.541256],[102.633928,32.541255],[102.633902,32.541166],[102.633902,32.541164],[102.633902,32.541164],[102.633821,32.540884],[102.633956,32.5405],[102.633965,32.540473],[102.634144,32.540353],[102.634236,32.540291],[102.634704,32.540323],[102.634727,32.540324],[102.634989,32.540342],[102.635121,32.540338],[102.635162,32.540337],[102.635744,32.540319],[102.635927,32.540097],[102.635864,32.539923],[102.635849,32.539881],[102.635805,32.539763],[102.635803,32.539756],[102.635773,32.539748],[102.635763,32.539745],[102.635296,32.539612],[102.635234,32.539594],[102.635224,32.539591],[102.635099,32.539555],[102.635012,32.539569],[102.634853,32.539595],[102.634502,32.539652],[102.634475,32.539656],[102.634465,32.539644],[102.634336,32.539484],[102.634332,32.539479],[102.63426,32.539389],[102.63426,32.539366],[102.634261,32.539351],[102.634263,32.539258],[102.634267,32.539116],[102.634268,32.539088],[102.634269,32.539088],[102.63427,32.539088],[102.634369,32.539048],[102.634383,32.539042],[102.634716,32.538909],[102.635295,32.538845],[102.63535,32.538763],[102.635439,32.538632],[102.635443,32.538626],[102.635512,32.538524],[102.635523,32.538508],[102.635572,32.538437],[102.635849,32.537991],[102.636312,32.538],[102.636457,32.538002],[102.636483,32.538003],[102.636515,32.538003],[102.636583,32.538007],[102.636613,32.538009],[102.637073,32.538034],[102.637093,32.538035],[102.637269,32.538044],[102.637285,32.538045],[102.637513,32.538057],[102.637578,32.538061],[102.637599,32.538036],[102.637606,32.538026],[102.637616,32.538015],[102.637676,32.537942],[102.637682,32.537935],[102.637723,32.537886],[102.637853,32.537728],[102.637863,32.537711],[102.637927,32.537602],[102.637977,32.537517],[102.637999,32.537479],[102.638224,32.537096],[102.638283,32.537056],[102.638375,32.536993],[102.638376,32.536992],[102.638376,32.536992],[102.638493,32.536912],[102.638494,32.536911],[102.638505,32.536904],[102.638572,32.536858],[102.638586,32.536848],[102.638587,32.536848],[102.638587,32.536847],[102.638603,32.536836],[102.638676,32.536787],[102.638761,32.536728],[102.638812,32.536694],[102.638913,32.536207],[102.639317,32.536027],[102.639376,32.536028],[102.639527,32.536031],[102.63956,32.536031],[102.639724,32.536034],[102.639752,32.536035],[102.64012,32.536042],[102.64016,32.536042],[102.640215,32.536023],[102.640236,32.536015],[102.640397,32.535959],[102.640427,32.535948],[102.640563,32.5359],[102.640747,32.53564],[102.640694,32.535356],[102.640675,32.535254],[102.640672,32.535242],[102.640669,32.535225],[102.640967,32.535253],[102.641096,32.535265],[102.641211,32.535275],[102.641281,32.535282],[102.641299,32.535284],[102.641687,32.535319],[102.641735,32.535332],[102.641818,32.535354],[102.641818,32.535354],[102.641925,32.535382],[102.642035,32.535411],[102.642613,32.535562],[102.642891,32.535593],[102.642909,32.535594],[102.642943,32.535598],[102.643001,32.535604],[102.643002,32.535605],[102.643005,32.535605],[102.643453,32.535653],[102.643861,32.535323],[102.643814,32.535071],[102.643805,32.535024],[102.643783,32.534908],[102.643747,32.534607],[102.643747,32.534607],[102.643747,32.534606],[102.643595,32.534421],[102.643403,32.534187],[102.643167,32.534021],[102.643052,32.533827],[102.643625,32.533382],[102.643938,32.533334],[102.64408,32.533313],[102.64409,32.533311],[102.644091,32.533311],[102.644196,32.533295],[102.644196,32.533295],[102.644197,32.533295],[102.644393,32.533265],[102.64468,32.53348],[102.644681,32.53348],[102.644681,32.53348],[102.644682,32.533481],[102.644706,32.533494],[102.644769,32.533529],[102.644796,32.533544],[102.644856,32.533577],[102.645269,32.533806],[102.645627,32.533787],[102.64564,32.533307],[102.645557,32.533128],[102.645509,32.533089],[102.645294,32.532915],[102.645046,32.532714],[102.64499,32.532668],[102.645266,32.532445],[102.645275,32.532438],[102.645286,32.532429],[102.645329,32.532404],[102.645358,32.532387],[102.645388,32.532371],[102.645453,32.532333],[102.646118,32.531954],[102.646955,32.531316],[102.647929,32.530966],[102.649002,32.530496],[102.649638,32.53014],[102.649875,32.530032],[102.650146,32.529907],[102.650175,32.529894],[102.650259,32.529855],[102.650269,32.52985],[102.650322,32.529826],[102.650605,32.530077],[102.650546,32.530877],[102.650545,32.530898],[102.650536,32.531019],[102.650535,32.531031],[102.650534,32.531043],[102.65053,32.531097],[102.650693,32.531584],[102.650709,32.531631],[102.651536,32.531764],[102.651862,32.531816],[102.653072,32.531635],[102.653643,32.53144],[102.653944,32.531337],[102.654094,32.531286],[102.654879,32.53081],[102.655517,32.529994],[102.655534,32.52999],[102.655662,32.529965],[102.655669,32.529963],[102.656314,32.529834],[102.65641,32.529815],[102.656565,32.529784],[102.657123,32.529925],[102.65713,32.529926],[102.657237,32.529953],[102.657244,32.529955],[102.657263,32.52996],[102.657409,32.529996],[102.658259,32.529947],[102.659581,32.529579],[102.659938,32.529226],[102.659987,32.528834],[102.659803,32.528471],[102.659902,32.528379],[102.659942,32.528343],[102.659953,32.528333],[102.66003,32.528261],[102.660043,32.528249],[102.660071,32.528223],[102.66008,32.528215],[102.660501,32.528353],[102.660548,32.528369],[102.660566,32.528375],[102.660672,32.52841],[102.66068,32.528412],[102.660698,32.528418],[102.660922,32.528492],[102.66135,32.528369],[102.661704,32.528114],[102.661943,32.527824],[102.66307,32.527518],[102.664161,32.527146],[102.664518,32.52676],[102.664905,32.526735],[102.665566,32.526551],[102.665926,32.526067],[102.666055,32.525546],[102.666295,32.525224],[102.666917,32.525072],[102.66728,32.524732],[102.667395,32.524624],[102.6674,32.524619],[102.667431,32.524591],[102.667477,32.524574],[102.667492,32.524569],[102.66786,32.524435],[102.667951,32.524547],[102.667961,32.524558],[102.667961,32.524559],[102.667961,32.524559],[102.668012,32.524621],[102.668035,32.52465],[102.668065,32.524686],[102.668159,32.5248],[102.668617,32.525005],[102.669042,32.52498],[102.66932,32.524691],[102.66941,32.524202],[102.669075,32.523706],[102.668774,32.523406],[102.669132,32.522987],[102.669294,32.522965],[102.669367,32.522955],[102.669399,32.522951],[102.6694,32.522951],[102.669403,32.522951],[102.66951,32.522936],[102.669513,32.522936],[102.669515,32.522935],[102.669558,32.52293],[102.669892,32.523459],[102.670378,32.524057],[102.670431,32.524103],[102.670432,32.524104],[102.670432,32.524104],[102.670492,32.524157],[102.670513,32.524176],[102.670528,32.524189],[102.670553,32.524212],[102.670793,32.524424],[102.670986,32.524491],[102.671291,32.524597],[102.671554,32.524486],[102.67211,32.524252],[102.672697,32.523936],[102.673671,32.523595],[102.673758,32.523236],[102.673403,32.523078],[102.673382,32.523068],[102.673251,32.52301],[102.673237,32.523004],[102.673223,32.522998],[102.673136,32.52287],[102.673439,32.522784],[102.673464,32.522776],[102.67358,32.522743],[102.673602,32.522737],[102.67383,32.522671],[102.675023,32.522587],[102.676171,32.521759],[102.677006,32.520979],[102.677587,32.520299],[102.677981,32.520142],[102.678163,32.520069],[102.678266,32.520027],[102.678979,32.519741],[102.679013,32.519669],[102.679067,32.519549],[102.679245,32.519163],[102.679367,32.518942],[102.679507,32.51869],[102.680065,32.518912],[102.680557,32.519293],[102.680821,32.518767],[102.680585,32.518179],[102.680667,32.517438],[102.680855,32.517285],[102.680882,32.517263],[102.680957,32.517203],[102.680962,32.517198],[102.681017,32.517154],[102.681022,32.51715],[102.681434,32.516815],[102.681934,32.516877],[102.681933,32.516894],[102.681933,32.516899],[102.681929,32.517076],[102.681926,32.51717],[102.681919,32.517461],[102.682352,32.517681],[102.682923,32.517373],[102.68311,32.517089],[102.68351,32.516482],[102.684625,32.515951],[102.684905,32.515818],[102.685788,32.515569],[102.685954,32.515649],[102.68597,32.515657],[102.686083,32.515712],[102.686095,32.515718],[102.686179,32.515759],[102.686468,32.5159],[102.686606,32.51631],[102.686613,32.516331],[102.686625,32.516366],[102.686651,32.516445],[102.686655,32.516456],[102.686671,32.516504],[102.686701,32.516594],[102.687266,32.516551],[102.687724,32.515764],[102.688046,32.515451],[102.688716,32.51535],[102.689303,32.515262],[102.690046,32.514998],[102.690441,32.514858],[102.69077,32.514228],[102.691602,32.513553],[102.691931,32.513438],[102.692448,32.513257],[102.692613,32.5132],[102.692987,32.51326],[102.693362,32.513267],[102.693903,32.512961],[102.693915,32.512954],[102.693926,32.512948],[102.693926,32.512948],[102.693927,32.512948],[102.693998,32.512907],[102.694022,32.512914],[102.694049,32.512923],[102.694386,32.513025],[102.694498,32.513059],[102.694515,32.513064],[102.694688,32.513116],[102.69471,32.513123],[102.694744,32.513133],[102.694769,32.513134],[102.695495,32.513147],[102.695589,32.513264],[102.695589,32.513264],[102.695589,32.513264],[102.695617,32.513298],[102.695663,32.513356],[102.695699,32.513401],[102.695798,32.513524],[102.695492,32.513878],[102.695447,32.513931],[102.695347,32.514046],[102.695347,32.514047],[102.695347,32.514047],[102.695344,32.514065],[102.695342,32.514081],[102.695268,32.514682],[102.695765,32.51485],[102.696356,32.514778],[102.696545,32.514754],[102.696895,32.514711],[102.697061,32.514684],[102.697136,32.514672],[102.697181,32.514664],[102.698342,32.514473],[102.699918,32.514077],[102.700242,32.513658],[102.700255,32.513128],[102.700016,32.512699],[102.699908,32.512007],[102.70036,32.511485],[102.701493,32.51124],[102.701513,32.511239],[102.70153,32.511237],[102.70162,32.51123],[102.701654,32.511227],[102.701667,32.511226],[102.702383,32.511168],[102.702384,32.511168],[102.702386,32.511168],[102.702421,32.511165],[102.702484,32.51116],[102.702492,32.511159],[102.70256,32.511154],[102.703558,32.511331],[102.704126,32.511129],[102.704323,32.510627],[102.704368,32.510512],[102.704368,32.510512],[102.704368,32.510512],[102.704394,32.510444],[102.704444,32.51044],[102.704482,32.510437],[102.704959,32.510401],[102.705316,32.511151],[102.705536,32.511604],[102.70556,32.511652],[102.705612,32.51176],[102.705622,32.511781],[102.705622,32.511781],[102.705623,32.511782],[102.705623,32.511782],[102.705732,32.512007],[102.706044,32.512066],[102.706493,32.51165],[102.706572,32.511015],[102.706529,32.510218],[102.706532,32.510217],[102.706534,32.510216],[102.70656,32.510204],[102.706659,32.51016],[102.706669,32.510155],[102.70694,32.510034],[102.7071,32.509963],[102.707407,32.510181],[102.707499,32.510238],[102.707532,32.510258],[102.707622,32.510314],[102.70764,32.510325],[102.708024,32.510563],[102.708224,32.510567],[102.708462,32.510571],[102.709095,32.510318],[102.709417,32.509952],[102.709475,32.50948],[102.709487,32.509387],[102.70949,32.509363],[102.709494,32.50933],[102.709496,32.509317],[102.709529,32.509284],[102.709817,32.509004],[102.709887,32.509029],[102.709954,32.509053],[102.709979,32.509063],[102.710039,32.509084],[102.710063,32.509093],[102.710127,32.509116],[102.710493,32.509494],[102.710806,32.5095],[102.710882,32.50897],[102.71083,32.508545],[102.710504,32.50832],[102.710292,32.508174],[102.71031,32.508154],[102.710723,32.508037],[102.71116,32.507914],[102.711915,32.507729],[102.711916,32.507729],[102.711917,32.507729],[102.711945,32.507722],[102.711979,32.507714],[102.712118,32.507679],[102.712168,32.507667],[102.712609,32.507569],[102.712821,32.507706],[102.712847,32.507723],[102.712937,32.507781],[102.713025,32.507837],[102.713047,32.507852],[102.713073,32.507868],[102.713074,32.507869],[102.713075,32.507869],[102.713287,32.508006],[102.713785,32.508121],[102.714349,32.508078],[102.714991,32.507453],[102.715568,32.506933],[102.715631,32.506963],[102.715692,32.506992],[102.71583,32.507058],[102.715862,32.507073],[102.715942,32.507111],[102.716046,32.50716],[102.71622,32.507243],[102.71638,32.507319],[102.716496,32.507374],[102.7166,32.507404],[102.716857,32.507477],[102.716892,32.507487],[102.717491,32.507658],[102.718252,32.5073],[102.718639,32.50683],[102.718745,32.50632],[102.718782,32.506142],[102.718915,32.505826],[102.719185,32.505702],[102.71919,32.5057],[102.719204,32.505693],[102.71921,32.505691],[102.719359,32.505622],[102.719934,32.505796],[102.719977,32.505809],[102.720006,32.505818],[102.720007,32.505818],[102.720007,32.505818],[102.720017,32.505821],[102.720048,32.505831],[102.720151,32.505862],[102.720291,32.505904],[102.720993,32.505386],[102.721051,32.505351],[102.721117,32.505311],[102.721208,32.505256],[102.721208,32.505255],[102.72121,32.505255],[102.721334,32.505179],[102.721414,32.50513],[102.721438,32.505116],[102.721542,32.505053],[102.721873,32.504851],[102.721875,32.50485],[102.721877,32.504849],[102.722037,32.504752],[102.722519,32.504459],[102.723365,32.503728],[102.723691,32.503446],[102.723805,32.503348],[102.723817,32.503337],[102.723842,32.503315],[102.723843,32.503314],[102.723844,32.503314],[102.72393,32.50324],[102.724398,32.502835],[102.724504,32.502743],[102.726435,32.500656],[102.727914,32.49909],[102.728166,32.498816],[102.728367,32.498597],[102.728395,32.498566],[102.728471,32.498483],[102.728485,32.498468],[102.728492,32.49846],[102.728511,32.49844],[102.72856,32.498386],[102.728629,32.498311],[102.728646,32.498293],[102.729782,32.497054],[102.730612,32.495811],[102.731148,32.495009],[102.732184,32.493648],[102.733208,32.492503],[102.734052,32.491559],[102.736673,32.48943],[102.738793,32.487293],[102.740527,32.485544],[102.740655,32.485416],[102.742389,32.483696],[102.743611,32.482391],[102.745918,32.480256],[102.746753,32.479422],[102.748555,32.477438],[102.750094,32.47598],[102.750684,32.475398],[102.750992,32.475094],[102.752602,32.473318],[102.754269,32.471703],[102.755668,32.470826],[102.757623,32.470277],[102.760208,32.469527],[102.761659,32.469075],[102.762228,32.468925],[102.763549,32.468578],[102.764686,32.468174],[102.766968,32.467029],[102.767291,32.466858],[102.767291,32.466858],[102.767291,32.466858],[102.767501,32.46702],[102.76771,32.467181],[102.768054,32.467329],[102.768399,32.467477],[102.768643,32.467581],[102.768995,32.467731],[102.769195,32.46781],[102.76928,32.467902],[102.769409,32.467974],[102.769609,32.468024],[102.769837,32.468124],[102.769894,32.468338],[102.769909,32.468588],[102.76998,32.468709],[102.770058,32.46883],[102.77008,32.468973],[102.770101,32.469405],[102.770123,32.469837],[102.770116,32.470037],[102.769923,32.470372],[102.769959,32.470629],[102.770044,32.471],[102.770098,32.471089],[102.770242,32.471326],[102.770387,32.471564],[102.77058,32.4718],[102.770672,32.472078],[102.770779,32.472278],[102.770979,32.472535],[102.771022,32.47261],[102.771186,32.472892],[102.771222,32.473071],[102.771251,32.473328],[102.771279,32.473585],[102.771251,32.47397],[102.771183,32.474402],[102.771115,32.474834],[102.771086,32.475159],[102.771058,32.475483],[102.770919,32.475847],[102.770779,32.476211],[102.770669,32.476579],[102.770558,32.476947],[102.770572,32.477089],[102.770658,32.477168],[102.770787,32.477254],[102.771097,32.477325],[102.771408,32.477396],[102.771734,32.477444],[102.77206,32.477492],[102.772236,32.477518],[102.772525,32.477625],[102.772814,32.477732],[102.773092,32.477832],[102.773371,32.477932],[102.773799,32.478053],[102.774049,32.478203],[102.774299,32.478353],[102.774391,32.478406],[102.774598,32.478524],[102.774798,32.478524],[102.775195,32.478453],[102.775591,32.478382],[102.775912,32.478336],[102.776233,32.478291],[102.776554,32.478246],[102.776933,32.478224],[102.777222,32.478142],[102.777511,32.47806],[102.777729,32.477946],[102.777946,32.477832],[102.778268,32.477632],[102.778632,32.477596],[102.77886,32.477582],[102.779146,32.47755],[102.779431,32.477518],[102.77971,32.477511],[102.779988,32.477504],[102.780213,32.477507],[102.780438,32.477511],[102.780677,32.477589],[102.780916,32.477668],[102.781166,32.477775],[102.781416,32.477882],[102.781698,32.47797],[102.781981,32.478059],[102.782008,32.478067],[102.782312,32.47811],[102.782615,32.478153],[102.782847,32.478192],[102.783079,32.478232],[102.783222,32.47821],[102.783621,32.478082],[102.783832,32.477971],[102.784043,32.47786],[102.784235,32.477714],[102.784428,32.477568],[102.784709,32.477406],[102.78499,32.477244],[102.78527,32.477082],[102.785531,32.477064],[102.785791,32.477047],[102.78617,32.477068],[102.786548,32.477089],[102.786934,32.477125],[102.787276,32.477318],[102.787612,32.477549],[102.787947,32.47778],[102.788283,32.47801],[102.788603,32.478216],[102.788922,32.478422],[102.789004,32.478474],[102.789289,32.478724],[102.789575,32.478974],[102.789867,32.479224],[102.790067,32.479395],[102.790126,32.479539],[102.790146,32.479588],[102.790274,32.479802],[102.790396,32.479959],[102.790681,32.480177],[102.790967,32.480395],[102.791202,32.480602],[102.791356,32.480826],[102.791509,32.481051],[102.791756,32.481397],[102.792002,32.481744],[102.79208,32.481886],[102.79208,32.482001],[102.791995,32.482101],[102.791659,32.482393],[102.791496,32.482604],[102.791388,32.482743],[102.791238,32.482957],[102.791152,32.483071],[102.790995,32.483107],[102.790767,32.483164],[102.790738,32.483171],[102.79036,32.483257],[102.790232,32.483321],[102.790053,32.483507],[102.789875,32.483757],[102.789718,32.483935],[102.789603,32.484042],[102.789518,32.484214],[102.789511,32.484328],[102.789546,32.484553],[102.789582,32.484778],[102.789482,32.484985],[102.78935,32.48517],[102.789218,32.485356],[102.789218,32.485356],[102.789217,32.485357],[102.789056,32.485639],[102.788989,32.485755],[102.788911,32.486051],[102.788832,32.486346],[102.788754,32.486641],[102.788691,32.486903],[102.788628,32.487166],[102.788568,32.487412],[102.788472,32.487811],[102.788376,32.488211],[102.788276,32.488514],[102.788176,32.488818],[102.788088,32.488952],[102.787957,32.489153],[102.787826,32.489353],[102.78764,32.489639],[102.787569,32.489856],[102.787498,32.490074],[102.787492,32.490101],[102.787405,32.490503],[102.787405,32.490838],[102.787405,32.491174],[102.787405,32.491438],[102.787365,32.491662],[102.787326,32.491887],[102.787324,32.491912],[102.787298,32.492151],[102.787291,32.492294],[102.787233,32.492551],[102.787169,32.492851],[102.787151,32.493276],[102.787133,32.4937],[102.787098,32.494122],[102.786976,32.494329],[102.786898,32.494557],[102.786877,32.494871],[102.786877,32.495128],[102.786905,32.495407],[102.786869,32.495564],[102.786812,32.495655],[102.786748,32.495756],[102.78647,32.495949],[102.786248,32.496045],[102.786027,32.496142],[102.785767,32.496164],[102.785692,32.49617],[102.78527,32.496206],[102.784963,32.496277],[102.784656,32.496349],[102.78435,32.49642],[102.78395,32.496531],[102.78355,32.496642],[102.783186,32.496763],[102.782912,32.496903],[102.782639,32.497044],[102.782365,32.497184],[102.782058,32.497373],[102.781751,32.497562],[102.781394,32.497805],[102.781037,32.498048],[102.780843,32.498153],[102.780558,32.498307],[102.780274,32.498462],[102.780071,32.498557],[102.779724,32.498719],[102.779453,32.498883],[102.779181,32.498919],[102.778953,32.498947],[102.778724,32.498976],[102.778697,32.498981],[102.778654,32.498989],[102.778408,32.499036],[102.778161,32.499083],[102.777889,32.499165],[102.777618,32.499247],[102.777261,32.49934],[102.776947,32.499554],[102.776769,32.499761],[102.776583,32.500161],[102.776441,32.50041],[102.776347,32.500575],[102.776069,32.500917],[102.775849,32.501231],[102.77563,32.501546],[102.77541,32.50186],[102.775191,32.502174],[102.774984,32.502395],[102.774777,32.502616],[102.774584,32.502859],[102.774391,32.503102],[102.774263,32.503237],[102.774042,32.503316],[102.773795,32.503395],[102.773548,32.503474],[102.77337,32.503531],[102.773085,32.503623],[102.772735,32.503773],[102.772386,32.503923],[102.772022,32.504105],[102.771657,32.504287],[102.7714,32.504447],[102.771144,32.504608],[102.770858,32.504851],[102.770826,32.504881],[102.770587,32.505108],[102.77043,32.505436],[102.770339,32.505684],[102.77022,32.506009],[102.770101,32.506335],[102.769994,32.506564],[102.769887,32.506792],[102.769616,32.507056],[102.769345,32.507321],[102.76906,32.507473],[102.768775,32.507626],[102.768545,32.507749],[102.768367,32.507892],[102.768317,32.507956],[102.768295,32.508042],[102.768324,32.508077],[102.768663,32.508231],[102.769002,32.508384],[102.769327,32.508498],[102.769652,32.508613],[102.77003,32.508727],[102.770255,32.508837],[102.77048,32.508948],[102.770815,32.509087],[102.771151,32.509226],[102.771536,32.509419],[102.771779,32.509562],[102.772067,32.509793],[102.772355,32.510024],[102.772643,32.510254],[102.772821,32.510472],[102.772999,32.51069],[102.773185,32.51109],[102.773264,32.511439],[102.773342,32.511789],[102.773406,32.512125],[102.773571,32.51246],[102.773689,32.512655],[102.773848,32.512914],[102.774006,32.513174],[102.774056,32.513506],[102.774106,32.513838],[102.77422,32.514148],[102.774334,32.514459],[102.774347,32.514488],[102.774448,32.514713],[102.774549,32.514937],[102.774602,32.515233],[102.774656,32.51553],[102.774756,32.515851],[102.774855,32.516079],[102.774955,32.516308],[102.775162,32.516636],[102.775344,32.5169],[102.775526,32.517164],[102.775634,32.517371],[102.775741,32.517578],[102.775791,32.517914],[102.775813,32.518135],[102.775841,32.518414],[102.775883,32.518671],[102.775926,32.518928],[102.776048,32.519263],[102.776172,32.519455],[102.776297,32.519647],[102.776326,32.519691],[102.776526,32.51992],[102.776597,32.520155],[102.776612,32.520498],[102.776597,32.520759],[102.776583,32.521019],[102.776644,32.521362],[102.776704,32.521704],[102.776751,32.521947],[102.776797,32.52219],[102.776859,32.522497],[102.776921,32.522804],[102.776983,32.523111],[102.777004,32.52341],[102.776963,32.523703],[102.776922,32.523997],[102.776881,32.524289],[102.77684,32.524581],[102.776729,32.524845],[102.776619,32.525109],[102.776612,32.525288],[102.776647,32.525473],[102.776738,32.525614],[102.776917,32.525891],[102.777096,32.526168],[102.777275,32.526444],[102.77749,32.526769],[102.777704,32.527094],[102.777875,32.527222],[102.777996,32.527279],[102.778325,32.527272],[102.778675,32.527229],[102.778903,32.527215],[102.779109,32.527215],[102.779153,32.527215],[102.77936,32.527258],[102.779667,32.527429],[102.779912,32.52761],[102.780168,32.527798],[102.780423,32.527986],[102.780766,32.528161],[102.781109,32.528336],[102.781401,32.528557],[102.781544,32.528757],[102.781798,32.528796],[102.782051,32.528836],[102.782322,32.528832],[102.782593,32.528828],[102.782915,32.528768],[102.783236,32.528707],[102.783644,32.528625],[102.783871,32.528579],[102.784292,32.528543],[102.784477,32.528554],[102.784792,32.528571],[102.785188,32.5285],[102.785584,32.528429],[102.785906,32.528354],[102.786227,32.528279],[102.786612,32.528207],[102.786948,32.528179],[102.787191,32.528172],[102.787483,32.5282],[102.787726,32.528272],[102.787922,32.528386],[102.788119,32.5285],[102.78849,32.5287],[102.788647,32.528821],[102.788847,32.529082],[102.789047,32.529342],[102.789314,32.529564],[102.789582,32.529785],[102.789921,32.530063],[102.79026,32.530342],[102.790588,32.530549],[102.790917,32.530756],[102.791139,32.530865],[102.791452,32.53102],[102.791458,32.531025],[102.791701,32.531233],[102.791945,32.531441],[102.792162,32.53162],[102.79238,32.531798],[102.792673,32.53198],[102.792966,32.532162],[102.793287,32.532401],[102.793608,32.53264],[102.793821,32.532942],[102.793915,32.533076],[102.794099,32.53344],[102.794243,32.533725],[102.794347,32.533975],[102.79445,32.534225],[102.794498,32.534335],[102.794485,32.534424],[102.794612,32.53465],[102.794622,32.534682],[102.79475,32.534775],[102.794776,32.534784],[102.794971,32.534853],[102.795014,32.534862],[102.795384,32.534921],[102.795522,32.534971],[102.795671,32.535003],[102.795819,32.535079],[102.795835,32.535084],[102.795841,32.535089],[102.796163,32.535253],[102.796485,32.535417],[102.796678,32.535589],[102.796929,32.535954],[102.797064,32.53615],[102.797199,32.536345],[102.797317,32.5366],[102.797418,32.536819],[102.79752,32.537038],[102.797547,32.537102],[102.79762,32.537273],[102.797741,32.537373],[102.798041,32.537602],[102.798255,32.537809],[102.798469,32.538016],[102.798612,32.538251],[102.798912,32.538351],[102.799304,32.538487],[102.799573,32.538581],[102.79959,32.538587],[102.799811,32.538665],[102.79999,32.538794],[102.800166,32.538946],[102.800342,32.539098],[102.800493,32.5392],[102.800702,32.539342],[102.800911,32.539483],[102.801021,32.539639],[102.801041,32.539794],[102.800921,32.540004],[102.80078,32.540208],[102.800638,32.540413],[102.800497,32.540618],[102.800355,32.540822],[102.800281,32.541013],[102.800276,32.541265],[102.80043,32.541478],[102.800727,32.541781],[102.800896,32.541953],[102.801066,32.542125],[102.801235,32.542297],[102.801404,32.542469],[102.801573,32.542641],[102.801742,32.542813],[102.801974,32.543067],[102.802207,32.543322],[102.802362,32.543497],[102.80247,32.54373],[102.802596,32.544162],[102.802722,32.544593],[102.802848,32.545025],[102.8029,32.545252],[102.802951,32.545479],[102.803003,32.545707],[102.803054,32.545934],[102.803048,32.546261],[102.802881,32.54649],[102.802608,32.546813],[102.802334,32.547136],[102.802061,32.547459],[102.801913,32.547673],[102.801766,32.547887],[102.801619,32.548101],[102.801471,32.548316],[102.801326,32.548673],[102.80118,32.54903],[102.801035,32.549387],[102.800926,32.549743],[102.800817,32.550099],[102.800708,32.550455],[102.800665,32.550781],[102.800626,32.551087],[102.800623,32.551107],[102.800637,32.551483],[102.800651,32.551859],[102.800733,32.552208],[102.800783,32.552418],[102.800816,32.552557],[102.800931,32.552734],[102.800953,32.552878],[102.801062,32.553169],[102.801203,32.553549],[102.801307,32.553759],[102.80141,32.55397],[102.801692,32.55432],[102.80176,32.554405],[102.802067,32.554648],[102.802374,32.554891],[102.802745,32.555142],[102.803116,32.555394],[102.803488,32.555646],[102.803859,32.555897],[102.804201,32.556115],[102.804544,32.556333],[102.804758,32.55649],[102.804944,32.556583],[102.805094,32.556697],[102.805158,32.556839],[102.805186,32.557002],[102.805188,32.55709],[102.805196,32.557363],[102.805118,32.55776],[102.805099,32.557855],[102.805062,32.558178],[102.805024,32.558501],[102.804987,32.558824],[102.804851,32.559238],[102.804818,32.559337],[102.804715,32.559638],[102.804595,32.559812],[102.804523,32.559916],[102.804316,32.560123],[102.804247,32.560195],[102.803992,32.560462],[102.803737,32.56073],[102.803537,32.560951],[102.803338,32.561172],[102.803211,32.561378],[102.803085,32.561583],[102.802938,32.561822],[102.802795,32.562093],[102.802652,32.562365],[102.802463,32.562682],[102.802274,32.563],[102.802103,32.563271],[102.801839,32.56361],[102.801574,32.563949],[102.80146,32.564149],[102.801377,32.564292],[102.801153,32.564677],[102.801004,32.564859],[102.800889,32.564999],[102.800889,32.565106],[102.800953,32.565249],[102.801253,32.565427],[102.80134,32.565504],[102.80151,32.565655],[102.801741,32.565879],[102.801972,32.566103],[102.802203,32.566326],[102.802213,32.566341],[102.802395,32.566605],[102.802542,32.56683],[102.802688,32.567055],[102.802834,32.567265],[102.802981,32.567476],[102.803273,32.56774],[102.803552,32.567958],[102.80383,32.568175],[102.804134,32.568325],[102.804437,32.568475],[102.804751,32.568539],[102.805151,32.568625],[102.805465,32.568561],[102.805779,32.568496],[102.806122,32.568447],[102.806432,32.568418],[102.806743,32.568389],[102.807088,32.568382],[102.807433,32.568375],[102.807778,32.568368],[102.80811,32.568404],[102.808442,32.568439],[102.808781,32.568504],[102.80912,32.568568],[102.809441,32.568621],[102.809762,32.568675],[102.810164,32.568851],[102.810402,32.568956],[102.81064,32.56906],[102.810658,32.569069],[102.811009,32.569247],[102.811359,32.569425],[102.81171,32.569603],[102.812061,32.569781],[102.812396,32.569956],[102.812732,32.570131],[102.813017,32.570414],[102.813303,32.570697],[102.813588,32.570981],[102.813831,32.571184],[102.814074,32.571388],[102.814381,32.571509],[102.814523,32.571559],[102.814895,32.571473],[102.815152,32.571259],[102.815409,32.571045],[102.815787,32.570809],[102.816165,32.570574],[102.816558,32.570502],[102.816951,32.570431],[102.817386,32.570364],[102.817821,32.570298],[102.818257,32.570231],[102.81857,32.5702],[102.818913,32.570165],[102.819256,32.570131],[102.819556,32.570174],[102.819857,32.570216],[102.820157,32.570259],[102.820363,32.570288],[102.820795,32.570388],[102.821226,32.570488],[102.821521,32.570559],[102.821817,32.570631],[102.822112,32.570702],[102.822461,32.570838],[102.822811,32.570973],[102.823128,32.571271],[102.823444,32.571568],[102.823761,32.571866],[102.824032,32.572206],[102.824303,32.572546],[102.824574,32.572887],[102.824769,32.573201],[102.824965,32.573515],[102.82516,32.573829],[102.825289,32.574103],[102.825418,32.574377],[102.825547,32.57465],[102.825567,32.574693],[102.825752,32.575092],[102.825913,32.575289],[102.826073,32.575485],[102.826395,32.575696],[102.826716,32.575906],[102.827111,32.576075],[102.827506,32.576244],[102.827901,32.576413],[102.828215,32.576538],[102.828529,32.576663],[102.828907,32.576877],[102.829286,32.577091],[102.8296,32.577227],[102.829914,32.577362],[102.830214,32.577562],[102.830242,32.577605],[102.830242,32.577606],[102.830242,32.577607],[102.830242,32.577684],[102.830157,32.577841],[102.829885,32.578055],[102.829718,32.578217],[102.8296,32.578333],[102.829478,32.57864],[102.829357,32.579068],[102.829236,32.579497],[102.829114,32.579925],[102.829014,32.580339],[102.828914,32.580753],[102.828879,32.581181],[102.828864,32.581446],[102.828972,32.581806],[102.829079,32.582166],[102.82916,32.582481],[102.82924,32.582795],[102.829321,32.583109],[102.829418,32.58338],[102.829514,32.583651],[102.829694,32.584014],[102.829875,32.584377],[102.830055,32.584739],[102.830206,32.585043],[102.830367,32.585432],[102.830528,32.585821],[102.830688,32.58621],[102.830849,32.586599],[102.831031,32.586994],[102.831106,32.587156],[102.831127,32.587313],[102.831085,32.587563],[102.830956,32.587749],[102.830737,32.588004],[102.830519,32.588259],[102.830485,32.588298],[102.830197,32.588627],[102.82991,32.588957],[102.829842,32.589034],[102.829734,32.589242],[102.829626,32.589451],[102.829564,32.589569],[102.829386,32.58994],[102.829207,32.590311],[102.829076,32.590663],[102.828946,32.591015],[102.828886,32.591175],[102.828907,32.591475],[102.828929,32.591775],[102.828872,32.592139],[102.828797,32.592481],[102.828722,32.592824],[102.828658,32.593115],[102.828595,32.593406],[102.828544,32.59364],[102.828493,32.593873],[102.828493,32.59428],[102.828496,32.59434],[102.828506,32.594577],[102.828516,32.594813],[102.828529,32.595143],[102.828543,32.595472],[102.828632,32.595772],[102.828722,32.596072],[102.828738,32.596151],[102.828822,32.596565],[102.828836,32.596789],[102.82885,32.597014],[102.828793,32.5974],[102.828679,32.59765],[102.828565,32.597899],[102.828364,32.598181],[102.82819,32.598426],[102.828015,32.59867],[102.82795,32.598777],[102.827614,32.599066],[102.827303,32.599387],[102.826992,32.599708],[102.826681,32.600028],[102.826371,32.600349],[102.826206,32.600549],[102.826041,32.600748],[102.825896,32.601112],[102.825843,32.601419],[102.825813,32.601766],[102.825806,32.601997],[102.8258,32.602228],[102.825761,32.602458],[102.825721,32.602688],[102.825659,32.602918],[102.825596,32.603149],[102.825522,32.603379],[102.825448,32.603609],[102.82534,32.603847],[102.825231,32.604086],[102.825181,32.604317],[102.82513,32.604547],[102.82506,32.604786],[102.824991,32.605024],[102.824922,32.605263],[102.824852,32.605501],[102.824731,32.605807],[102.824611,32.606113],[102.824509,32.606516],[102.8245,32.606921],[102.824582,32.607289],[102.824732,32.607657],[102.824928,32.608027],[102.825124,32.608396],[102.82532,32.608766],[102.825516,32.609135],[102.825579,32.609358],[102.825643,32.60958],[102.825749,32.60989],[102.825855,32.610201],[102.825938,32.610604],[102.826021,32.611007],[102.826059,32.611296],[102.825983,32.611602],[102.825817,32.611947],[102.825716,32.612186],[102.825615,32.612425],[102.825514,32.612664],[102.825414,32.612903],[102.825313,32.613142],[102.825233,32.613332],[102.825212,32.613381],[102.825113,32.613687],[102.824924,32.613954],[102.824715,32.614124],[102.824472,32.614255],[102.824229,32.614385],[102.823848,32.61459],[102.823667,32.614688],[102.823539,32.614725],[102.823232,32.614767],[102.822925,32.61481],[102.82254,32.614857],[102.822154,32.614903],[102.821826,32.614989],[102.821433,32.615117],[102.821085,32.615334],[102.820791,32.615517],[102.820505,32.615649],[102.82022,32.615781],[102.820179,32.615813],[102.819917,32.61602],[102.819613,32.616259],[102.819501,32.616394],[102.819328,32.616602],[102.819063,32.616909],[102.819006,32.617095],[102.819006,32.617344],[102.819091,32.617611],[102.819092,32.617616],[102.819263,32.617889],[102.819435,32.618163],[102.819606,32.618437],[102.819681,32.618686],[102.819756,32.618936],[102.819777,32.619074],[102.819799,32.619215],[102.819763,32.619572],[102.819699,32.619804],[102.819635,32.620036],[102.819583,32.62019],[102.81952,32.620378],[102.819456,32.620535],[102.819346,32.620669],[102.819292,32.620735],[102.819067,32.620906],[102.818842,32.621078],[102.818704,32.621131],[102.818348,32.621269],[102.817993,32.621406],[102.817707,32.621575],[102.817422,32.621744],[102.817136,32.621913],[102.816911,32.622064],[102.81671,32.622199],[102.816508,32.622334],[102.816322,32.622491],[102.816208,32.62262],[102.816237,32.622791],[102.816239,32.62287],[102.816244,32.623005],[102.81623,32.62321],[102.81623,32.623219],[102.81613,32.623533],[102.81593,32.623893],[102.81573,32.624252],[102.81553,32.624611],[102.81528,32.624915],[102.81503,32.625218],[102.814702,32.625518],[102.814374,32.625818],[102.814045,32.626118],[102.813753,32.626417],[102.813653,32.626482],[102.813467,32.626546],[102.81341,32.626565],[102.813296,32.626603],[102.813046,32.626717],[102.812832,32.626888],[102.812618,32.627045],[102.81251,32.627167],[102.812296,32.627324],[102.812196,32.627481],[102.812096,32.627738],[102.811954,32.627938],[102.811832,32.628045],[102.811718,32.628159],[102.81164,32.628316],[102.811618,32.628516],[102.811661,32.628896],[102.811668,32.628959],[102.811725,32.629401],[102.811781,32.629844],[102.811782,32.629851],[102.811782,32.630229],[102.811707,32.630618],[102.811632,32.631007],[102.811554,32.6314],[102.81144,32.631714],[102.811404,32.631892],[102.81144,32.632],[102.811604,32.632199],[102.811911,32.632464],[102.812218,32.632728],[102.812453,32.63302],[102.812689,32.633199],[102.812889,32.633263],[102.813131,32.633299],[102.813141,32.633302],[102.813223,32.633361],[102.813512,32.633655],[102.813682,32.633973],[102.813708,32.634024],[102.813906,32.634374],[102.81402,32.634574],[102.814135,32.634774],[102.81425,32.634973],[102.814365,32.635173],[102.814553,32.635388],[102.814741,32.635602],[102.814944,32.635731],[102.815111,32.635838],[102.815147,32.63586],[102.815392,32.636048],[102.815628,32.636228],[102.815638,32.636235],[102.815958,32.636504],[102.816279,32.636773],[102.816599,32.637042],[102.816824,32.63719],[102.817049,32.637338],[102.817377,32.637553],[102.817507,32.637682],[102.81751,32.637687],[102.81765,32.637932],[102.817832,32.638185],[102.818014,32.638438],[102.81825,32.63866],[102.818649,32.638831],[102.818985,32.639092],[102.81932,32.639352],[102.819556,32.639645],[102.819877,32.639887],[102.820141,32.64008],[102.820405,32.640273],[102.820712,32.640392],[102.821019,32.640511],[102.821326,32.64063],[102.821601,32.640786],[102.821875,32.640942],[102.822104,32.641072],[102.822291,32.641237],[102.822597,32.641508],[102.822861,32.641708],[102.823125,32.641908],[102.823389,32.642107],[102.823624,32.642257],[102.823859,32.642406],[102.824192,32.642617],[102.824524,32.642828],[102.82481,32.643071],[102.825095,32.643314],[102.825285,32.643507],[102.825474,32.643699],[102.825602,32.643956],[102.825816,32.644206],[102.826009,32.644285],[102.826384,32.644424],[102.826759,32.644563],[102.827073,32.644717],[102.827387,32.64487],[102.827662,32.645077],[102.827936,32.645284],[102.828163,32.645553],[102.828389,32.645822],[102.828615,32.646091],[102.828712,32.64618],[102.828872,32.646326],[102.829086,32.646433],[102.82945,32.646655],[102.829624,32.646755],[102.829735,32.646819],[102.82985,32.646954],[102.829892,32.647154],[102.829895,32.647186],[102.829921,32.647461],[102.829875,32.647861],[102.829828,32.648261],[102.829757,32.648614],[102.829685,32.648967],[102.829589,32.649207],[102.829493,32.649446],[102.829279,32.64981],[102.829209,32.649879],[102.829029,32.65006],[102.828857,32.650217],[102.828743,32.650452],[102.828686,32.650788],[102.828661,32.650906],[102.828593,32.65123],[102.828465,32.651559],[102.828336,32.651887],[102.828168,32.652187],[102.828001,32.652487],[102.827929,32.652658],[102.827737,32.652879],[102.827423,32.653116],[102.827109,32.653353],[102.827094,32.653365],[102.82683,32.6536],[102.826666,32.653836],[102.826644,32.654136],[102.826752,32.654336],[102.827019,32.65461],[102.827287,32.654885],[102.827555,32.65516],[102.827822,32.655435],[102.827978,32.655628],[102.828133,32.655821],[102.828236,32.655949],[102.828336,32.656142],[102.828429,32.656299],[102.828429,32.656491],[102.828386,32.656663],[102.828193,32.656955],[102.82812,32.657215],[102.828047,32.657474],[102.828018,32.657682],[102.827976,32.657981],[102.827953,32.658152],[102.827949,32.658176],[102.827938,32.658404],[102.827926,32.658633],[102.827922,32.658704],[102.827869,32.658943],[102.827815,32.659182],[102.827722,32.659418],[102.827672,32.659618],[102.82768,32.659854],[102.827887,32.66025],[102.828094,32.660646],[102.82826,32.660901],[102.828322,32.660996],[102.828436,32.661217],[102.828436,32.661345],[102.828543,32.661424],[102.828765,32.661538],[102.829139,32.661624],[102.829514,32.661709],[102.829889,32.661795],[102.830264,32.661881],[102.830606,32.662021],[102.830949,32.662162],[102.831292,32.662302],[102.83157,32.662454],[102.831848,32.662607],[102.832127,32.662759],[102.83234,32.662956],[102.832576,32.663175],[102.832812,32.663394],[102.832998,32.663682],[102.833183,32.66397],[102.833369,32.664258],[102.833643,32.664585],[102.83389,32.664879],[102.834068,32.665222],[102.834168,32.665386],[102.834325,32.665436],[102.834482,32.665393],[102.834732,32.665332],[102.834982,32.665272],[102.835239,32.665261],[102.835496,32.66525],[102.835808,32.665298],[102.836119,32.665346],[102.836162,32.665358],[102.836554,32.665558],[102.836946,32.665757],[102.837338,32.665957],[102.837663,32.666128],[102.837987,32.666299],[102.838348,32.666564],[102.838708,32.666828],[102.839008,32.667078],[102.839308,32.667327],[102.839672,32.66757],[102.839779,32.667749],[102.839929,32.667998],[102.840079,32.668248],[102.8401,32.668284],[102.840322,32.668512],[102.8405,32.668634],[102.84075,32.668748],[102.841064,32.668791],[102.841378,32.668834],[102.841685,32.668886],[102.841992,32.668938],[102.842299,32.668991],[102.842486,32.669046],[102.842784,32.669133],[102.843113,32.669355],[102.843434,32.669469],[102.843655,32.669569],[102.843827,32.669847],[102.844059,32.6702],[102.844225,32.670452],[102.84439,32.670704],[102.844559,32.670923],[102.844728,32.671142],[102.844945,32.671422],[102.845161,32.671703],[102.845347,32.67191],[102.845533,32.672117],[102.845694,32.672245],[102.845704,32.672253],[102.84574,32.67227],[102.845802,32.672302],[102.845825,32.672308],[102.845924,32.672334],[102.846118,32.672346],[102.846375,32.67231],[102.846561,32.672285],[102.847003,32.672224],[102.847267,32.672224],[102.84753,32.672224],[102.847596,32.672224],[102.847986,32.672286],[102.848244,32.672327],[102.848376,32.672348],[102.848766,32.67241],[102.849159,32.672481],[102.849552,32.672553],[102.849944,32.672624],[102.850183,32.672674],[102.850422,32.672724],[102.850601,32.672791],[102.851001,32.672939],[102.8514,32.673088],[102.8518,32.67325],[102.8522,32.673413],[102.8526,32.673575],[102.852999,32.673738],[102.853263,32.673905],[102.853528,32.674073],[102.853727,32.674252],[102.853927,32.674344],[102.854113,32.674355],[102.85417,32.674359],[102.85451,32.674249],[102.854851,32.67414],[102.855191,32.67403],[102.855278,32.67398],[102.855541,32.673827],[102.855805,32.673673],[102.856033,32.673449],[102.856262,32.673224],[102.856487,32.673073],[102.856519,32.673052],[102.856761,32.67296],[102.857068,32.672924],[102.857318,32.672938],[102.857568,32.672952],[102.857839,32.673013],[102.85811,32.673074],[102.858209,32.673122],[102.858452,32.673199],[102.858668,32.673285],[102.858885,32.673371],[102.859101,32.673457],[102.859317,32.673543],[102.859533,32.673629],[102.859749,32.673715],[102.859955,32.673849],[102.860161,32.673984],[102.860296,32.674072],[102.860581,32.674232],[102.860866,32.674392],[102.861151,32.674551],[102.861398,32.674753],[102.861645,32.674954],[102.861651,32.674958],[102.861777,32.675088],[102.861953,32.67527],[102.862129,32.675451],[102.862286,32.675644],[102.862579,32.675908],[102.862869,32.676067],[102.86316,32.676227],[102.86345,32.676386],[102.863714,32.67652],[102.863979,32.676653],[102.864278,32.676804],[102.864578,32.676956],[102.864878,32.677107],[102.865107,32.677208],[102.86519,32.677318],[102.865304,32.677458],[102.865312,32.677546],[102.865295,32.677613],[102.865074,32.677945],[102.864853,32.678277],[102.864781,32.678484],[102.864674,32.678798],[102.864696,32.679112],[102.864781,32.679384],[102.864938,32.679698],[102.865232,32.679999],[102.865488,32.680262],[102.865631,32.680476],[102.865773,32.68069],[102.865848,32.680943],[102.865923,32.681197],[102.865945,32.681425],[102.865816,32.681682],[102.865823,32.681868],[102.865909,32.682011],[102.865952,32.682196],[102.865995,32.68241],[102.865988,32.682646],[102.866016,32.682839],[102.866088,32.683046],[102.866173,32.683188],[102.866316,32.683281],[102.866687,32.683388],[102.866998,32.683428],[102.867308,32.683467],[102.867465,32.683545],[102.867697,32.683692],[102.867929,32.683838],[102.868136,32.683995],[102.868229,32.684145],[102.868251,32.684331],[102.868272,32.684538],[102.86835,32.684652],[102.868486,32.684752],[102.868832,32.684912],[102.869178,32.685073],[102.869236,32.685141],[102.8694,32.685337],[102.869568,32.685505],[102.869735,32.685673],[102.869887,32.685872],[102.870142,32.686208],[102.870385,32.686493],[102.870613,32.686743],[102.87091,32.686954],[102.871206,32.687164],[102.871225,32.68718],[102.871563,32.68745],[102.871834,32.687764],[102.871977,32.687989],[102.87212,32.688214],[102.872173,32.688612],[102.872198,32.688799],[102.872177,32.68911],[102.872155,32.68942],[102.872127,32.689583],[102.872062,32.689948],[102.871985,32.690345],[102.871907,32.690741],[102.871905,32.690748],[102.871913,32.690934],[102.872034,32.691162],[102.872079,32.691238],[102.872198,32.69144],[102.872323,32.691651],[102.872448,32.691862],[102.872499,32.691967],[102.872662,32.692304],[102.872719,32.692529],[102.872725,32.692553],[102.872776,32.692754],[102.872933,32.693054],[102.873078,32.693209],[102.873138,32.69329],[102.873315,32.693446],[102.873331,32.69346],[102.873637,32.693638],[102.873943,32.693816],[102.874084,32.693819],[102.874226,32.693797],[102.874496,32.693671],[102.874785,32.69354],[102.875074,32.693409],[102.875362,32.693278],[102.87564,32.69318],[102.875917,32.693082],[102.876263,32.693053],[102.87661,32.693023],[102.876667,32.693018],[102.877021,32.693008],[102.877376,32.692999],[102.87773,32.692989],[102.878059,32.692925],[102.878401,32.692775],[102.87866,32.692634],[102.878919,32.692493],[102.878951,32.692475],[102.879151,32.69234],[102.87954,32.692236],[102.879929,32.692133],[102.880286,32.692083],[102.880643,32.692033],[102.880886,32.691999],[102.88109,32.691948],[102.881454,32.691905],[102.881817,32.691862],[102.882169,32.691848],[102.882313,32.691891],[102.882335,32.69189],[102.882592,32.69194],[102.882849,32.69199],[102.88317,32.692126],[102.883484,32.692375],[102.883798,32.692625],[102.883962,32.692854],[102.884155,32.693196],[102.88425,32.693335],[102.884485,32.693493],[102.884719,32.69365],[102.884972,32.693763],[102.885225,32.693877],[102.885251,32.693885],[102.885481,32.693994],[102.885711,32.694103],[102.885979,32.694206],[102.886246,32.69431],[102.886599,32.694331],[102.886951,32.694353],[102.887303,32.694374],[102.887703,32.694474],[102.887981,32.694474],[102.888145,32.694353],[102.888171,32.694333],[102.888499,32.694072],[102.888828,32.693812],[102.888866,32.693782],[102.889188,32.693547],[102.889511,32.693312],[102.889523,32.693303],[102.88983,32.693089],[102.890227,32.693034],[102.890237,32.693032],[102.890451,32.693061],[102.890858,32.693096],[102.891161,32.693139],[102.891465,32.693182],[102.891842,32.693225],[102.892188,32.693264],[102.892535,32.693303],[102.892835,32.693313],[102.893135,32.693323],[102.893435,32.693332],[102.893627,32.693361],[102.893892,32.693432],[102.894093,32.693514],[102.894371,32.693626],[102.894648,32.693739],[102.894962,32.693867],[102.895276,32.693996],[102.895519,32.694067],[102.895748,32.694124],[102.895976,32.694182],[102.896267,32.694221],[102.896497,32.694253],[102.89674,32.694274],[102.896968,32.69436],[102.897197,32.694446],[102.897446,32.694681],[102.897604,32.694863],[102.897761,32.695045],[102.897937,32.695274],[102.898003,32.695359],[102.8982,32.695612],[102.898396,32.695866],[102.898549,32.696082],[102.898589,32.696137],[102.898731,32.696402],[102.898867,32.69663],[102.899088,32.696716],[102.899388,32.696762],[102.899688,32.696808],[102.900026,32.696844],[102.900364,32.69688],[102.900702,32.696916],[102.901087,32.697037],[102.901473,32.697158],[102.901687,32.697233],[102.901901,32.697308],[102.902229,32.697426],[102.902558,32.697544],[102.902797,32.697676],[102.903036,32.697808],[102.903375,32.698033],[102.903714,32.698258],[102.903925,32.698365],[102.904135,32.698472],[102.904378,32.698661],[102.904621,32.69885],[102.904856,32.698993],[102.905227,32.699128],[102.905366,32.699249],[102.90562,32.699471],[102.905756,32.699542],[102.905899,32.69957],[102.905972,32.699593],[102.906074,32.699581],[102.906177,32.699539],[102.90634,32.699435],[102.906635,32.699134],[102.906929,32.698833],[102.907224,32.698532],[102.907519,32.698231],[102.907787,32.698006],[102.908054,32.697782],[102.908277,32.697642],[102.908475,32.697531],[102.908672,32.69742],[102.908955,32.697318],[102.909237,32.697216],[102.909545,32.697148],[102.909853,32.69708],[102.910139,32.69713],[102.910306,32.697196],[102.910517,32.69728],[102.910827,32.697433],[102.911138,32.697587],[102.911452,32.697782],[102.911802,32.698001],[102.912134,32.69824],[102.912466,32.698479],[102.912644,32.698566],[102.913022,32.69875],[102.913262,32.698896],[102.913501,32.699043],[102.913822,32.69915],[102.913869,32.699175],[102.914143,32.699321],[102.914257,32.699421],[102.914285,32.69954],[102.914286,32.699541],[102.914286,32.699542],[102.914343,32.699735],[102.914436,32.699807],[102.9147,32.699821],[102.914814,32.699792],[102.915171,32.699814],[102.915457,32.699899],[102.915771,32.699878],[102.916024,32.699824],[102.916278,32.699771],[102.916645,32.699749],[102.917013,32.699728],[102.917248,32.699714],[102.917484,32.699699],[102.917789,32.699623],[102.918084,32.69955],[102.918394,32.699528],[102.918705,32.699507],[102.918972,32.699528],[102.91924,32.69955],[102.919612,32.699654],[102.919954,32.699749],[102.920351,32.699804],[102.920749,32.699859],[102.921146,32.699914],[102.921179,32.69992],[102.921484,32.699977],[102.921788,32.700035],[102.92221,32.700049],[102.92247,32.700021],[102.922731,32.699992],[102.923049,32.699895],[102.923368,32.699797],[102.923687,32.699699],[102.924078,32.699517],[102.924469,32.699334],[102.924805,32.699121],[102.924805,32.699121],[102.924806,32.69912],[102.925015,32.698987],[102.925224,32.698855],[102.925433,32.698722],[102.925642,32.698589],[102.925851,32.698456],[102.92606,32.698323],[102.926269,32.69819],[102.926478,32.698057],[102.926825,32.697921],[102.927173,32.697784],[102.927491,32.697691],[102.92781,32.697597],[102.928068,32.697552],[102.928326,32.697506],[102.928641,32.697531],[102.928957,32.697556],[102.929235,32.69765],[102.929513,32.697743],[102.92987,32.697996],[102.930227,32.698249],[102.930485,32.698543],[102.930678,32.698763],[102.930768,32.699014],[102.930938,32.699353],[102.930954,32.699385],[102.931118,32.699621],[102.931218,32.699792],[102.931368,32.700078],[102.931468,32.700378],[102.931639,32.700735],[102.931875,32.701113],[102.931996,32.701227],[102.932196,32.701377],[102.932481,32.701625],[102.932667,32.701787],[102.932753,32.701862],[102.932896,32.702005],[102.932981,32.702127],[102.933053,32.702266],[102.933081,32.702319],[102.93314,32.702599],[102.933198,32.702878],[102.933238,32.703265],[102.933278,32.703653],[102.933319,32.70404],[102.933339,32.704234],[102.933369,32.704521],[102.933399,32.704808],[102.933459,32.705029],[102.933519,32.705249],[102.933565,32.705421],[102.933706,32.705768],[102.933829,32.706082],[102.933952,32.706395],[102.934059,32.706624],[102.934166,32.706852],[102.934281,32.707038],[102.93453,32.707252],[102.934656,32.707324],[102.934903,32.707466],[102.935151,32.707609],[102.935432,32.707694],[102.935595,32.707743],[102.935623,32.707752],[102.935987,32.70798],[102.936269,32.708191],[102.936551,32.708401],[102.936746,32.708637],[102.936941,32.708872],[102.937136,32.709108],[102.937346,32.709479],[102.937557,32.70985],[102.937678,32.710134],[102.9377,32.710186],[102.937832,32.710497],[102.937964,32.710808],[102.938021,32.710942],[102.938085,32.711107],[102.938157,32.71121],[102.93831,32.711319],[102.93862,32.711454],[102.938929,32.711589],[102.939301,32.711725],[102.939673,32.711862],[102.940044,32.711999],[102.940416,32.712136],[102.940813,32.712337],[102.941205,32.712535],[102.941597,32.712734],[102.94199,32.712932],[102.942382,32.713131],[102.94239,32.713133],[102.942561,32.713181],[102.942826,32.713255],[102.943029,32.713312],[102.943089,32.713329],[102.943351,32.713402],[102.943614,32.713476],[102.943877,32.713549],[102.94414,32.713623],[102.944402,32.713696],[102.944665,32.71377],[102.944928,32.713843],[102.945315,32.713928],[102.945702,32.714013],[102.94609,32.714099],[102.946475,32.714174],[102.946859,32.71425],[102.947112,32.714267],[102.947366,32.714284],[102.947619,32.714302],[102.947872,32.714319],[102.948125,32.714336],[102.948378,32.714354],[102.948818,32.714374],[102.949259,32.714395],[102.949488,32.714406],[102.949699,32.714416],[102.949933,32.71442],[102.950142,32.714522],[102.950347,32.714723],[102.950471,32.714918],[102.950595,32.715112],[102.95065,32.715199],[102.950818,32.715361],[102.951057,32.715726],[102.951296,32.716092],[102.951457,32.71627],[102.951617,32.716449],[102.951831,32.716651],[102.952046,32.716853],[102.952176,32.717091],[102.95226,32.717376],[102.952323,32.717633],[102.952387,32.71789],[102.952415,32.718005],[102.952445,32.718127],[102.952522,32.718435],[102.952587,32.718697],[102.952652,32.718959],[102.952807,32.719209],[102.953069,32.719518],[102.95336,32.719831],[102.95339,32.719863],[102.953711,32.720049],[102.954032,32.720236],[102.954354,32.720422],[102.954556,32.720517],[102.95477,32.720636],[102.95483,32.720755],[102.954861,32.720923],[102.954865,32.720946],[102.954888,32.721244],[102.954889,32.721255],[102.954877,32.721636],[102.955032,32.721886],[102.95521,32.722052],[102.955282,32.72235],[102.955329,32.722695],[102.955591,32.72304],[102.955829,32.723295],[102.956067,32.723551],[102.956373,32.72369],[102.956567,32.723777],[102.956799,32.723849],[102.957031,32.72392],[102.957366,32.724001],[102.957667,32.724073],[102.957967,32.724145],[102.958268,32.724217],[102.958613,32.724467],[102.958684,32.724527],[102.958744,32.724753],[102.958732,32.724991],[102.95872,32.725229],[102.958714,32.72552],[102.958708,32.725812],[102.958803,32.726157],[102.959029,32.72643],[102.959351,32.72668],[102.959707,32.726859],[102.959815,32.726966],[102.959823,32.726983],[102.959922,32.72718],[102.959986,32.727502],[102.959993,32.727537],[102.959981,32.727838],[102.959969,32.72814],[102.959957,32.728441],[102.959962,32.728774],[102.959979,32.728813],[102.960143,32.729193],[102.960343,32.729412],[102.960619,32.729574],[102.961,32.729716],[102.961212,32.729778],[102.961428,32.72984],[102.961871,32.729894],[102.962294,32.729945],[102.96257,32.73005],[102.962722,32.730211],[102.962894,32.730392],[102.96291,32.730419],[102.963046,32.730639],[102.963183,32.73086],[102.963217,32.730916],[102.963465,32.73122],[102.963779,32.731392],[102.964093,32.731582],[102.964407,32.731772],[102.96455,32.731858],[102.964731,32.731991],[102.964864,32.732172],[102.964917,32.732264],[102.965007,32.732419],[102.965179,32.732592],[102.965197,32.73261],[102.965549,32.732857],[102.965755,32.732983],[102.965961,32.733108],[102.965987,32.733124],[102.966239,32.733343],[102.966491,32.733562],[102.966634,32.733761],[102.966758,32.733999],[102.966929,32.734171],[102.967072,32.734342],[102.967111,32.734414],[102.967186,32.734551],[102.967321,32.734969],[102.967367,32.735113],[102.967557,32.73547],[102.967629,32.735584],[102.96765,32.73577],[102.967586,32.73597],[102.967357,32.736277],[102.96715,32.736551],[102.966943,32.736826],[102.966747,32.737105],[102.966551,32.737383],[102.966551,32.737383],[102.966551,32.737383],[102.96636,32.737635],[102.966168,32.737886],[102.966144,32.737918],[102.965965,32.738254],[102.965659,32.738518],[102.96538,32.738789],[102.96508,32.739053],[102.964852,32.73925],[102.964773,32.739318],[102.964524,32.73956],[102.964523,32.739562],[102.964427,32.739781],[102.964424,32.739789],[102.964331,32.740133],[102.964295,32.740267],[102.964247,32.740533],[102.964198,32.740799],[102.964181,32.740895],[102.964167,32.74094],[102.964109,32.74112],[102.964038,32.741345],[102.963931,32.741559],[102.963738,32.741702],[102.963417,32.741745],[102.963146,32.741784],[102.962875,32.741823],[102.96276,32.741849],[102.962496,32.741909],[102.962132,32.741959],[102.961797,32.74198],[102.961497,32.741966],[102.961439,32.741961],[102.961254,32.741944],[102.96123,32.741944],[102.96099,32.741944],[102.960783,32.742041],[102.960576,32.742137],[102.960393,32.74239],[102.960254,32.742452],[102.96004,32.742547],[102.959825,32.742643],[102.95961,32.742738],[102.959395,32.742833],[102.959185,32.742926],[102.95918,32.742929],[102.958965,32.743024],[102.958751,32.743119],[102.958536,32.743215],[102.958165,32.743393],[102.957795,32.743571],[102.957424,32.74375],[102.957208,32.743911],[102.956991,32.744073],[102.956774,32.744235],[102.956557,32.744396],[102.956395,32.744576],[102.956233,32.744756],[102.956071,32.744936],[102.955909,32.745116],[102.955715,32.745449],[102.95552,32.745782],[102.955439,32.746013],[102.955357,32.746244],[102.955276,32.746474],[102.955194,32.746705],[102.955122,32.746953],[102.95505,32.747201],[102.954979,32.747449],[102.954907,32.747697],[102.954761,32.747942],[102.954614,32.748187],[102.954363,32.748449],[102.954112,32.748712],[102.953945,32.748867],[102.953777,32.749023],[102.95361,32.749178],[102.953442,32.749333],[102.953275,32.749489],[102.953107,32.749644],[102.953075,32.749672],[102.952832,32.74988],[102.952557,32.750116],[102.952533,32.750136],[102.952248,32.750381],[102.951904,32.750553],[102.951879,32.750566],[102.951561,32.750725],[102.951255,32.750818],[102.950948,32.750912],[102.950524,32.751014],[102.9501,32.751116],[102.949992,32.75113],[102.949684,32.751169],[102.949267,32.751221],[102.948851,32.751274],[102.948435,32.751326],[102.948189,32.751337],[102.947943,32.751348],[102.947697,32.751358],[102.947451,32.751369],[102.947207,32.75138],[102.947205,32.75138],[102.946959,32.751391],[102.946713,32.751401],[102.946467,32.751412],[102.946221,32.751423],[102.945975,32.751434],[102.945729,32.751444],[102.945483,32.751455],[102.945251,32.751473],[102.945019,32.751491],[102.944788,32.751509],[102.944556,32.751527],[102.94418,32.7516],[102.943803,32.751673],[102.943556,32.751748],[102.943309,32.751822],[102.943046,32.752035],[102.942829,32.752348],[102.942667,32.752528],[102.942504,32.752708],[102.942342,32.752888],[102.94218,32.753068],[102.942026,32.753285],[102.941983,32.753346],[102.941976,32.753355],[102.941872,32.753502],[102.941718,32.75372],[102.941563,32.753937],[102.941543,32.753966],[102.941485,32.754047],[102.941409,32.754154],[102.941395,32.754175],[102.941255,32.754372],[102.941101,32.754589],[102.940947,32.754806],[102.940816,32.755011],[102.940685,32.755215],[102.940555,32.755419],[102.940424,32.755623],[102.940293,32.755827],[102.940162,32.756031],[102.940047,32.756252],[102.939931,32.756472],[102.939815,32.756692],[102.939699,32.756912],[102.939527,32.757255],[102.939354,32.757598],[102.93926,32.757959],[102.939167,32.75832],[102.939073,32.758681],[102.939087,32.759089],[102.939101,32.759497],[102.939115,32.759906],[102.939144,32.760171],[102.939173,32.760437],[102.939202,32.760702],[102.939231,32.760968],[102.93926,32.761233],[102.939289,32.761498],[102.939246,32.761804],[102.939203,32.76211],[102.939032,32.762482],[102.93891,32.762707],[102.938788,32.762932],[102.938684,32.763024],[102.93846,32.763221],[102.938237,32.763418],[102.937973,32.763729],[102.937825,32.763904],[102.937709,32.76404],[102.937608,32.76435],[102.937553,32.764703],[102.937616,32.764972],[102.937643,32.765085],[102.93768,32.765241],[102.937769,32.765449],[102.937858,32.765658],[102.937947,32.765867],[102.938036,32.766076],[102.938147,32.766315],[102.938259,32.766554],[102.938323,32.766822],[102.938388,32.767089],[102.93841,32.767475],[102.938432,32.76786],[102.938454,32.768246],[102.938495,32.768493],[102.938536,32.768741],[102.938684,32.769157],[102.938712,32.769237],[102.938893,32.769517],[102.939052,32.769718],[102.939211,32.769918],[102.939324,32.770137],[102.939437,32.770355],[102.939476,32.770634],[102.939491,32.771029],[102.93946,32.771343],[102.939404,32.771719],[102.93942,32.772094],[102.939461,32.772247],[102.939528,32.772491],[102.939655,32.772707],[102.939782,32.772923],[102.939909,32.773139],[102.940036,32.773355],[102.940163,32.773571],[102.94029,32.773787],[102.940418,32.774003],[102.940545,32.774219],[102.940651,32.774443],[102.940757,32.774667],[102.940862,32.774891],[102.940968,32.775115],[102.941067,32.775413],[102.941166,32.775711],[102.941251,32.776068],[102.941336,32.776425],[102.941398,32.776791],[102.94146,32.777158],[102.941453,32.777444],[102.941446,32.77773],[102.941429,32.777987],[102.941411,32.778243],[102.94137,32.778509],[102.941337,32.778722],[102.941329,32.778775],[102.941265,32.779031],[102.941201,32.779287],[102.941107,32.779531],[102.941014,32.779775],[102.94092,32.78002],[102.940826,32.780264],[102.940608,32.780609],[102.940389,32.780954],[102.940171,32.781299],[102.939944,32.781664],[102.939717,32.782029],[102.93949,32.782394],[102.939221,32.782737],[102.938953,32.783081],[102.938684,32.783424],[102.938414,32.783769],[102.938143,32.784115],[102.937873,32.78446],[102.937766,32.784672],[102.93766,32.784883],[102.937553,32.785094],[102.937534,32.785132],[102.937486,32.785226],[102.937452,32.785294],[102.937446,32.785306],[102.93734,32.785517],[102.937233,32.785728],[102.937191,32.785833],[102.937139,32.785964],[102.937133,32.785979],[102.937122,32.786009],[102.937034,32.786229],[102.936934,32.786479],[102.936835,32.786729],[102.936724,32.787142],[102.936613,32.787555],[102.936524,32.787886],[102.936502,32.787968],[102.936457,32.788363],[102.936413,32.788758],[102.936404,32.789139],[102.936395,32.789521],[102.936387,32.789902],[102.936423,32.790326],[102.936459,32.79075],[102.936453,32.791027],[102.936447,32.791304],[102.936427,32.791544],[102.936406,32.791784],[102.936383,32.792054],[102.936327,32.792448],[102.936296,32.79267],[102.936271,32.792842],[102.936237,32.793024],[102.936193,32.793255],[102.936191,32.793268],[102.936111,32.793695],[102.936076,32.793879],[102.93603,32.794122],[102.93599,32.794375],[102.935968,32.79451],[102.935959,32.794566],[102.935949,32.794627],[102.935908,32.79488],[102.935867,32.795133],[102.935839,32.795311],[102.935829,32.79537],[102.935827,32.795386],[102.935786,32.795639],[102.93571,32.795874],[102.935645,32.796076],[102.935634,32.79611],[102.935602,32.796209],[102.935558,32.796346],[102.935482,32.796581],[102.935396,32.796818],[102.93531,32.797055],[102.935278,32.797143],[102.935224,32.797292],[102.935138,32.797529],[102.935053,32.797766],[102.934967,32.798003],[102.934881,32.79824],[102.934795,32.798477],[102.934709,32.798714],[102.934623,32.798952],[102.934537,32.799189],[102.934452,32.799426],[102.934395,32.799682],[102.934338,32.799938],[102.934281,32.800194],[102.934225,32.80045],[102.934168,32.800706],[102.934111,32.800962],[102.934074,32.801215],[102.934037,32.801468],[102.934,32.801721],[102.933963,32.801973],[102.933926,32.802226],[102.933889,32.802479],[102.93388,32.802884],[102.933871,32.803289],[102.9339,32.80371],[102.933929,32.80413],[102.933958,32.804551],[102.934029,32.804765],[102.9341,32.804978],[102.934172,32.805192],[102.934243,32.805406],[102.934399,32.805725],[102.934555,32.806043],[102.934797,32.806389],[102.935039,32.806736],[102.935281,32.807082],[102.935459,32.807248],[102.935637,32.807414],[102.935814,32.80758],[102.935992,32.807746],[102.936063,32.807793],[102.936013,32.80783],[102.934879,32.808317],[102.933789,32.808695],[102.933748,32.808709],[102.932941,32.809186],[102.932352,32.809534],[102.931927,32.809785],[102.931088,32.810276],[102.930562,32.810583],[102.929342,32.811574],[102.928809,32.811976],[102.927929,32.812814],[102.927908,32.812834],[102.92793,32.813059],[102.927881,32.813193],[102.927826,32.813299],[102.927769,32.813337],[102.927719,32.813338],[102.927605,32.813305],[102.927426,32.813288],[102.926973,32.813715],[102.92583,32.814612],[102.924806,32.815195],[102.923798,32.815581],[102.922549,32.81651],[102.921764,32.817317],[102.921287,32.818021],[102.920757,32.818833],[102.920502,32.819929],[102.920294,32.821177],[102.920074,32.821821],[102.919937,32.822229],[102.919542,32.823064],[102.919081,32.823862],[102.918583,32.824746],[102.917569,32.825852],[102.916515,32.827186],[102.916182,32.828332],[102.916115,32.829712],[102.916032,32.83184],[102.916081,32.832647],[102.916265,32.833514],[102.915939,32.83581],[102.915777,32.83693],[102.915502,32.837198],[102.915253,32.837439],[102.91442,32.838099],[102.913864,32.838538],[102.912854,32.839471],[102.912321,32.840383],[102.912231,32.841331],[102.912993,32.843704],[102.913418,32.844488],[102.913605,32.844679],[102.914017,32.845102],[102.914889,32.845721],[102.914945,32.84624],[102.914884,32.846419],[102.914653,32.847098],[102.914301,32.847809],[102.914116,32.848183],[102.913412,32.849121],[102.912774,32.850175],[102.912105,32.851084],[102.911271,32.851346],[102.910971,32.85144],[102.909854,32.851133],[102.909759,32.851113],[102.909691,32.851098],[102.909683,32.851097],[102.909637,32.851087],[102.90952,32.851062],[102.909397,32.851035],[102.909209,32.850995],[102.909152,32.850983],[102.909006,32.850952],[102.9089,32.850929],[102.908868,32.850922],[102.908844,32.850917],[102.908804,32.850908],[102.908682,32.850882],[102.908667,32.850879],[102.908656,32.850877],[102.908603,32.850866],[102.908585,32.850862],[102.908395,32.850821],[102.907379,32.850545],[102.906262,32.850181],[102.905111,32.849845],[102.904054,32.849827],[102.902658,32.849775],[102.901531,32.849871],[102.900031,32.849846],[102.899478,32.850182],[102.899453,32.851218],[102.899529,32.852341],[102.900031,32.854191],[102.900346,32.85529],[102.900999,32.85651],[102.901606,32.858247],[102.90189,32.85923],[102.901703,32.859946],[102.901726,32.860407],[102.901708,32.861155],[102.901659,32.861816],[102.901196,32.86552],[102.901096,32.866871],[102.900589,32.868129],[102.899904,32.871167],[102.899493,32.874124],[102.899108,32.875988],[102.899044,32.877282],[102.898907,32.878719],[102.898709,32.881334],[102.899057,32.882491],[102.899003,32.883325],[102.898817,32.883983],[102.89849,32.884389],[102.89829,32.884636],[102.8978,32.885175],[102.897787,32.885186],[102.897278,32.885626],[102.896146,32.887334],[102.895571,32.88859],[102.895698,32.888995],[102.895751,32.889629],[102.895731,32.890464],[102.895235,32.8927],[102.894937,32.893759],[102.894535,32.894904],[102.894308,32.895821],[102.894356,32.896685],[102.894163,32.897215],[102.894094,32.897403],[102.893845,32.898086],[102.893579,32.899262],[102.89373,32.90007],[102.893743,32.900962],[102.893818,32.902114],[102.893929,32.903181],[102.893877,32.903928],[102.893691,32.904587],[102.893298,32.905329],[102.893252,32.905846],[102.89303,32.906561],[102.892434,32.907242],[102.891588,32.908408],[102.891018,32.909434],[102.890012,32.910136],[102.887136,32.912016],[102.886416,32.912147],[102.885692,32.91248],[102.884545,32.913353],[102.883882,32.914004],[102.883036,32.91514],[102.882087,32.916275],[102.881664,32.916844],[102.880757,32.917692],[102.879803,32.917647],[102.879321,32.91756],[102.87904,32.917509],[102.877821,32.917289],[102.876403,32.917034],[102.8761,32.916979],[102.876038,32.917017],[102.871981,32.91947],[102.871968,32.919496],[102.870938,32.920345],[102.870533,32.921255],[102.870228,32.923298],[102.870064,32.924805],[102.869858,32.925394],[102.869007,32.926242],[102.868257,32.92817],[102.867081,32.929228],[102.865955,32.93088],[102.865398,32.932757],[102.86523,32.934426],[102.865707,32.935889],[102.866382,32.937033],[102.866716,32.937779],[102.866746,32.937848],[102.866625,32.938309],[102.866394,32.939189],[102.865904,32.94096],[102.864585,32.942662],[102.863643,32.944587],[102.862638,32.94651],[102.861969,32.947739],[102.861808,32.949137],[102.861775,32.950484],[102.861744,32.950788],[102.861691,32.951315],[102.86162,32.951313],[102.861651,32.951857],[102.86167,32.952186],[102.861624,32.953016],[102.861455,32.953297],[102.861363,32.953469],[102.861205,32.953713],[102.861087,32.953893],[102.860996,32.95408],[102.860905,32.954352],[102.860864,32.954539],[102.86083,32.954846],[102.860635,32.955175],[102.860484,32.955576],[102.860467,32.955601],[102.8603,32.955824],[102.860098,32.956054],[102.859863,32.956364],[102.859755,32.956557],[102.85963,32.956773],[102.859496,32.956982],[102.859387,32.957147],[102.859254,32.957377],[102.859153,32.957528],[102.85902,32.957772],[102.858932,32.957991],[102.858705,32.9583],[102.858044,32.95907],[102.854856,32.961091],[102.853988,32.961587],[102.853286,32.962597],[102.85298,32.963434],[102.851996,32.964319],[102.850872,32.965052],[102.84967,32.966084],[102.8473,32.968208],[102.845807,32.969445],[102.844901,32.970021],[102.843744,32.970467],[102.842155,32.970493],[102.840628,32.970574],[102.839288,32.970765],[102.839267,32.971268],[102.837553,32.971574],[102.835834,32.971694],[102.833971,32.971687],[102.832757,32.971716],[102.831339,32.971641],[102.830507,32.971776],[102.829415,32.971683],[102.828182,32.971287],[102.827426,32.97075],[102.826164,32.970354],[102.82438,32.969525],[102.824126,32.96954],[102.823699,32.969563],[102.823477,32.96975],[102.823218,32.969968],[102.822974,32.970174],[102.822335,32.971369],[102.822274,32.971483],[102.822168,32.971681],[102.821793,32.972472],[102.821336,32.973013],[102.820849,32.973626],[102.820311,32.973953],[102.820127,32.974064],[102.819401,32.974725],[102.818462,32.975606],[102.817708,32.976191],[102.817384,32.976424],[102.816384,32.977446],[102.815819,32.977463],[102.814265,32.977026],[102.813195,32.976644],[102.811809,32.975937],[102.810955,32.975558],[102.809487,32.975987],[102.807907,32.976597],[102.806382,32.977161],[102.805465,32.977145],[102.804862,32.977498],[102.803059,32.978376],[102.802073,32.979035],[102.801875,32.979166],[102.801797,32.979218],[102.80048,32.980105],[102.799009,32.98067],[102.798027,32.981063],[102.796524,32.980763],[102.795519,32.979927],[102.794242,32.979176],[102.792915,32.978288],[102.792179,32.977502],[102.791195,32.975847],[102.789884,32.974323],[102.789142,32.973764],[102.788022,32.973243],[102.787012,32.972634],[102.786111,32.971981],[102.781472,32.969715],[102.779723,32.968456],[102.77878,32.967302],[102.77741,32.966004],[102.776523,32.964805],[102.776066,32.96366],[102.776039,32.962568],[102.776077,32.961067],[102.776114,32.959593],[102.776118,32.959431],[102.776143,32.958432],[102.776151,32.958112],[102.776161,32.958036],[102.77635,32.956614],[102.775941,32.956354],[102.775548,32.956102],[102.775093,32.955812],[102.77481,32.955632],[102.774347,32.955432],[102.773923,32.955249],[102.773607,32.955113],[102.773346,32.955001],[102.773048,32.954872],[102.77269,32.954674],[102.772304,32.954447],[102.771908,32.95421],[102.77153,32.953991],[102.771028,32.953699],[102.77083,32.953415],[102.770611,32.9531],[102.770371,32.953438],[102.770164,32.953729],[102.769858,32.954077],[102.769561,32.954415],[102.769219,32.954804],[102.769094,32.954952],[102.768894,32.955187],[102.768538,32.955606],[102.768497,32.955655],[102.768272,32.955942],[102.767549,32.956867],[102.766063,32.958023],[102.76462,32.959262],[102.764298,32.959538],[102.764134,32.959673],[102.762149,32.961319],[102.76101,32.962656],[102.76097,32.962704],[102.760814,32.962887],[102.759974,32.9641],[102.759649,32.9644],[102.759517,32.964523],[102.758814,32.965171],[102.757757,32.966426],[102.757706,32.966483],[102.757537,32.966673],[102.757538,32.966744],[102.757526,32.966782],[102.757519,32.966804],[102.757499,32.966829],[102.757473,32.966848],[102.757429,32.966861],[102.757377,32.966849],[102.757316,32.96684],[102.757209,32.966816],[102.757174,32.966812],[102.757146,32.966812],[102.757133,32.966819],[102.757109,32.966842],[102.7571,32.966864],[102.7571,32.966894],[102.757137,32.966989],[102.757175,32.967062],[102.757178,32.967077],[102.756987,32.967291],[102.756973,32.967307],[102.756737,32.967572],[102.756723,32.967588],[102.756709,32.967604],[102.756662,32.967656],[102.75665,32.96767],[102.756631,32.967691],[102.756612,32.967712],[102.755924,32.968485],[102.754325,32.969821],[102.754014,32.970145],[102.753331,32.970853],[102.753006,32.97119],[102.752386,32.971833],[102.749954,32.974109],[102.749867,32.974226],[102.749773,32.974205],[102.74975,32.9742],[102.749638,32.974219],[102.74959,32.974253],[102.749566,32.974292],[102.749484,32.974377],[102.749338,32.974456],[102.749238,32.974513],[102.749236,32.974514],[102.749074,32.974619],[102.748886,32.974742],[102.74874,32.974867],[102.748577,32.975041],[102.748536,32.975063],[102.748423,32.975139],[102.748291,32.975306],[102.748229,32.975442],[102.748201,32.975555],[102.748206,32.975637],[102.74822,32.975692],[102.748302,32.97573],[102.748427,32.975771],[102.748514,32.975799],[102.748602,32.975817],[102.748677,32.97582],[102.748573,32.97596],[102.748527,32.976023],[102.747383,32.977566],[102.746421,32.979322],[102.74575,32.980266],[102.745721,32.981402],[102.745726,32.983313],[102.745489,32.984173],[102.74509,32.984984],[102.74496,32.985846],[102.744713,32.98707],[102.744401,32.988747],[102.743771,32.990192],[102.743522,32.991461],[102.742569,32.992854],[102.74248,32.993057],[102.742054,32.994027],[102.741919,32.995071],[102.741881,32.996571],[102.741226,32.996832],[102.740258,32.996724],[102.739037,32.995883],[102.737294,32.994396],[102.736182,32.993557],[102.735613,32.992591],[102.734674,32.991301],[102.73399,32.990606],[102.73255,32.989943],[102.731398,32.988557],[102.731337,32.988351],[102.73105,32.987368],[102.730921,32.986092],[102.730902,32.985731],[102.730894,32.985565],[102.73089,32.985484],[102.730877,32.98523],[102.730849,32.984681],[102.730261,32.984443],[102.729457,32.984246],[102.727843,32.984035],[102.72754,32.983958],[102.726878,32.98379],[102.723982,32.983055],[102.722161,32.982521],[102.721906,32.981925],[102.721838,32.980377],[102.721602,32.979054],[102.7216,32.978999],[102.7216,32.978993],[102.721718,32.978952],[102.721774,32.978931],[102.721713,32.978899],[102.721776,32.978873],[102.721773,32.97887],[102.72176,32.978861],[102.721737,32.978828],[102.721712,32.978813],[102.721721,32.978794],[102.721771,32.978788],[102.721823,32.97878],[102.72189,32.978782],[102.721918,32.978793],[102.721941,32.978816],[102.721961,32.978842],[102.721974,32.978862],[102.721986,32.97888],[102.722016,32.97888],[102.722032,32.978871],[102.722028,32.978843],[102.722027,32.978829],[102.722008,32.978806],[102.721986,32.978785],[102.721965,32.978768],[102.721949,32.978745],[102.72196,32.978739],[102.72199,32.978733],[102.722008,32.978724],[102.722023,32.978703],[102.722039,32.978682],[102.72205,32.978643],[102.722057,32.978607],[102.722056,32.97858],[102.722054,32.978557],[102.721995,32.978499],[102.721936,32.97843],[102.721924,32.978432],[102.721874,32.978432],[102.721845,32.978421],[102.721851,32.978402],[102.721871,32.978381],[102.721873,32.978358],[102.721873,32.978343],[102.721848,32.978324],[102.721843,32.978325],[102.721801,32.978332],[102.72176,32.97834],[102.721706,32.97834],[102.721687,32.978327],[102.72168,32.978298],[102.721664,32.97826],[102.721657,32.978226],[102.721607,32.978197],[102.721591,32.97819],[102.721591,32.978159],[102.721593,32.978136],[102.721599,32.978114],[102.721563,32.978086],[102.721369,32.977982],[102.721282,32.977901],[102.721188,32.977826],[102.721189,32.977813],[102.721189,32.97775],[102.721164,32.977697],[102.721106,32.977641],[102.721003,32.977576],[102.720936,32.977522],[102.720875,32.977466],[102.7208,32.977377],[102.72075,32.977303],[102.720646,32.977139],[102.720574,32.977035],[102.720489,32.976955],[102.720347,32.976896],[102.720233,32.976873],[102.72012,32.976841],[102.720045,32.976809],[102.719953,32.97675],[102.719931,32.976726],[102.719917,32.976684],[102.719902,32.976604],[102.719887,32.976517],[102.719858,32.976449],[102.719823,32.976401],[102.719759,32.976366],[102.719667,32.976334],[102.719532,32.976287],[102.719386,32.976219],[102.719279,32.97616],[102.719176,32.976113],[102.719013,32.976066],[102.718918,32.976058],[102.718776,32.976068],[102.718649,32.976068],[102.718468,32.976039],[102.718401,32.976016],[102.718309,32.975966],[102.71824,32.975859],[102.71819,32.975776],[102.718022,32.975586],[102.717933,32.975476],[102.717801,32.975354],[102.717655,32.975236],[102.717499,32.975141],[102.717218,32.975006],[102.717108,32.974968],[102.71697,32.974912],[102.716814,32.974844],[102.716675,32.974797],[102.716452,32.974739],[102.716239,32.974666],[102.716065,32.974607],[102.715951,32.974551],[102.715777,32.974477],[102.715685,32.974424],[102.715432,32.974247],[102.715319,32.974173],[102.715048,32.974001],[102.714963,32.973957],[102.714828,32.973904],[102.714697,32.973869],[102.714594,32.973861],[102.714527,32.973873],[102.714425,32.973969],[102.714387,32.974044],[102.714388,32.974089],[102.714346,32.974178],[102.714286,32.974262],[102.714198,32.974334],[102.714033,32.974407],[102.713804,32.974495],[102.713638,32.974546],[102.713465,32.974586],[102.713334,32.974629],[102.713024,32.97483],[102.712852,32.97495],[102.712683,32.975071],[102.712468,32.975191],[102.71213,32.975309],[102.71196,32.975352],[102.711836,32.975377],[102.711653,32.975396],[102.711476,32.975414],[102.711225,32.975434],[102.711006,32.975453],[102.7109,32.975471],[102.71072,32.975526],[102.710686,32.975545],[102.710505,32.975432],[102.710373,32.97535],[102.710224,32.975261],[102.710064,32.975178],[102.709911,32.975114],[102.709755,32.97507],[102.70956,32.975008],[102.709545,32.975005],[102.709358,32.974967],[102.7092,32.974968],[102.709075,32.974973],[102.708968,32.975],[102.708855,32.975044],[102.708742,32.975111],[102.708675,32.975162],[102.708599,32.975219],[102.708473,32.975335],[102.708383,32.975431],[102.708321,32.975493],[102.708262,32.97557],[102.708215,32.975644],[102.708153,32.975752],[102.708083,32.975847],[102.708021,32.975874],[102.70794,32.975956],[102.70789,32.976049],[102.707851,32.97613],[102.707797,32.976183],[102.707645,32.97626],[102.707563,32.976304],[102.707496,32.97638],[102.707446,32.976455],[102.707364,32.976534],[102.707246,32.976649],[102.7071,32.976786],[102.706993,32.976875],[102.706875,32.97694],[102.706776,32.976986],[102.706595,32.977039],[102.706395,32.977078],[102.706271,32.977108],[102.706146,32.977142],[102.706028,32.977181],[102.705929,32.977236],[102.705777,32.977349],[102.705701,32.977438],[102.705654,32.977498],[102.705592,32.977591],[102.705514,32.977692],[102.705455,32.977756],[102.705402,32.977816],[102.705345,32.977862],[102.705261,32.977908],[102.705176,32.977944],[102.705063,32.977983],[102.705015,32.978002],[102.704826,32.978018],[102.704448,32.978073],[102.704193,32.97812],[102.703748,32.978161],[102.703688,32.978167],[102.703451,32.978201],[102.703087,32.978242],[102.702012,32.978316],[102.701913,32.978323],[102.701882,32.978319],[102.701746,32.97832],[102.701665,32.978326],[102.701515,32.978352],[102.701421,32.978385],[102.701226,32.978445],[102.701082,32.978495],[102.700955,32.978536],[102.700754,32.978623],[102.70066,32.97867],[102.700581,32.978702],[102.700434,32.978724],[102.700314,32.978727],[102.700187,32.978722],[102.700037,32.978715],[102.699777,32.978697],[102.699627,32.978666],[102.699548,32.978648],[102.698725,32.978816],[102.697858,32.978936],[102.697309,32.97929],[102.697029,32.979737],[102.697098,32.979899],[102.697123,32.98001],[102.697083,32.98012],[102.697073,32.980172],[102.696966,32.980321],[102.696599,32.98065],[102.696396,32.98088],[102.696233,32.98102],[102.69608,32.981094],[102.695949,32.981122],[102.695866,32.981138],[102.695747,32.981262],[102.694762,32.98179],[102.693452,32.982357],[102.692481,32.982339],[102.690873,32.9819],[102.689113,32.981094],[102.688071,32.979665],[102.687721,32.978612],[102.686783,32.977321],[102.685795,32.975893],[102.685128,32.974561],[102.684403,32.973411],[102.683979,32.971037],[102.683574,32.970029],[102.68301,32.968881],[102.681946,32.968316],[102.680498,32.96797],[102.678685,32.967118],[102.678521,32.967068],[102.677882,32.966876],[102.676001,32.966568],[102.673966,32.965984],[102.673007,32.965511],[102.672389,32.964408],[102.670758,32.962785],[102.669856,32.962223],[102.668662,32.960426],[102.667381,32.958529],[102.66674,32.958814],[102.665795,32.95906],[102.664637,32.958888],[102.66317,32.958597],[102.661343,32.958374],[102.659473,32.958075],[102.65869,32.958026],[102.658295,32.958001],[102.657777,32.957968],[102.655903,32.95782],[102.653898,32.957593],[102.652834,32.957234],[102.651058,32.956786],[102.650025,32.956955],[102.649124,32.95724],[102.647238,32.957543],[102.646026,32.957747],[102.645697,32.958343],[102.644971,32.958744],[102.644205,32.958994],[102.643612,32.959435],[102.642505,32.960695],[102.641353,32.961992],[102.640033,32.962872],[102.638671,32.963675],[102.637224,32.964289],[102.635503,32.965123],[102.633611,32.965652],[102.631407,32.965986],[102.629563,32.965699],[102.628738,32.965587],[102.627837,32.965465],[102.625633,32.965272],[102.625517,32.965235],[102.625251,32.965149],[102.625202,32.965133],[102.62515,32.965116],[102.625129,32.96511],[102.624804,32.965004],[102.622854,32.964212],[102.622259,32.963988],[102.622228,32.963976],[102.622206,32.963968],[102.62215,32.963947],[102.621943,32.963869],[102.621695,32.963776],[102.621599,32.963739],[102.621186,32.963584],[102.619898,32.963098],[102.619545,32.963028],[102.619534,32.963026],[102.619415,32.963002],[102.619296,32.962979],[102.618494,32.962819],[102.618418,32.962804],[102.61794,32.962709],[102.615949,32.962087],[102.615916,32.962077],[102.615704,32.962011],[102.61569,32.962006],[102.615264,32.961873],[102.615128,32.961831],[102.615001,32.961791],[102.615024,32.961581],[102.615039,32.961439]]]]},"properties":{"cp":[102.84021326842111,32.73181473528267],"code":"513233205","name":"阿木乡","level":"street","center":[102.84021326842111,32.73181473528267],"fullCode":"513233205000","fullName":"四川省阿坝藏族羌族自治州红原县阿木乡","acreageMu":1338297.24,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.789,32.9154]}},{"id":"513233207","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.844495,33.079459],[102.844382,33.079401],[102.84443,33.079385],[102.844506,33.079376],[102.844569,33.078895],[102.844578,33.07883],[102.844641,33.07835],[102.844645,33.078323],[102.844646,33.078265],[102.844669,33.077341],[102.84467,33.077303],[102.844671,33.077231],[102.844935,33.07639],[102.844994,33.076401],[102.845031,33.0764],[102.845065,33.076391],[102.845099,33.076369],[102.845117,33.076336],[102.845115,33.076287],[102.845103,33.076236],[102.845079,33.076199],[102.84501,33.076158],[102.845141,33.075762],[102.845203,33.075757],[102.845243,33.075728],[102.845258,33.075685],[102.84528,33.075629],[102.845276,33.075575],[102.845265,33.075541],[102.845218,33.075529],[102.845455,33.074811],[102.845469,33.074509],[102.845517,33.07448],[102.845535,33.074447],[102.845541,33.074403],[102.845541,33.074363],[102.845527,33.074306],[102.84552,33.074258],[102.845519,33.074188],[102.845532,33.074119],[102.845563,33.07405],[102.845592,33.073981],[102.845605,33.073935],[102.845607,33.073897],[102.845582,33.073888],[102.845548,33.073897],[102.845496,33.073923],[102.8455,33.073836],[102.845469,33.073643],[102.845459,33.073577],[102.845259,33.072336],[102.845272,33.072264],[102.845273,33.072178],[102.845263,33.072102],[102.845242,33.072058],[102.845204,33.072041],[102.845118,33.072038],[102.84485,33.071477],[102.844725,33.070707],[102.844711,33.07062],[102.844589,33.069865],[102.844198,33.067669],[102.844189,33.06762],[102.844119,33.066488],[102.844117,33.066462],[102.843883,33.065075],[102.843901,33.064313],[102.844961,33.063485],[102.845547,33.062818],[102.84569,33.062453],[102.846066,33.062149],[102.84601,33.061697],[102.84563,33.060759],[102.845546,33.060108],[102.845335,33.059145],[102.845688,33.058389],[102.846445,33.057584],[102.846591,33.057107],[102.846806,33.056518],[102.846876,33.055023],[102.847498,33.054272],[102.848225,33.053325],[102.848508,33.052709],[102.849238,33.051621],[102.849892,33.050927],[102.850289,33.049748],[102.850368,33.049242],[102.850701,33.047977],[102.850947,33.047394],[102.851068,33.04711],[102.85111,33.04701],[102.851163,33.046885],[102.851659,33.045792],[102.852059,33.044501],[102.852986,33.04082],[102.852891,33.039182],[102.852846,33.038278],[102.853084,33.036786],[102.853592,33.035186],[102.85374,33.034468],[102.853801,33.034173],[102.854085,33.032796],[102.854443,33.031842],[102.854791,33.03134],[102.855469,33.030985],[102.856091,33.030234],[102.856445,33.02945],[102.856808,33.02827],[102.857282,33.026698],[102.857501,33.025968],[102.857227,33.024806],[102.85659,33.023469],[102.856544,33.022593],[102.856625,33.022002],[102.85701,33.021331],[102.857639,33.02027],[102.857759,33.01997],[102.857836,33.019781],[102.858102,33.01912],[102.858594,33.018169],[102.858539,33.017689],[102.857779,33.017224],[102.856349,33.016726],[102.856308,33.016712],[102.855598,33.016465],[102.855579,33.016458],[102.855544,33.016446],[102.855541,33.016445],[102.855534,33.016442],[102.855511,33.016434],[102.854623,33.016126],[102.85455,33.016089],[102.85453,33.016079],[102.853395,33.015513],[102.853221,33.01522],[102.852586,33.014663],[102.852178,33.014483],[102.85133,33.014245],[102.851089,33.014291],[102.849761,33.013586],[102.849572,33.013075],[102.849655,33.012427],[102.84989,33.01102],[102.850162,33.009757],[102.850117,33.009651],[102.850107,33.009517],[102.850136,33.009268],[102.850304,33.008986],[102.850449,33.008855],[102.850632,33.008782],[102.850754,33.008552],[102.851312,33.00763],[102.851562,33.007013],[102.851583,33.006139],[102.851285,33.004902],[102.851266,33.004823],[102.851248,33.00475],[102.851009,33.004252],[102.850895,33.004014],[102.850866,33.003953],[102.850544,33.003383],[102.850149,33.001653],[102.84996,33.001421],[102.849954,33.001414],[102.849953,33.001413],[102.849565,33.000939],[102.849522,33.000883],[102.849431,33.000768],[102.84943,33.000767],[102.849408,33.000739],[102.849273,33.000567],[102.848992,33.000135],[102.848753,32.999765],[102.848353,32.99915],[102.848335,32.999122],[102.84811,32.998776],[102.848012,32.998625],[102.846594,32.995025],[102.84578,32.993888],[102.845532,32.992523],[102.845557,32.992407],[102.845653,32.991957],[102.845761,32.991448],[102.84577,32.991403],[102.846145,32.990243],[102.846212,32.990035],[102.846226,32.989992],[102.846149,32.988913],[102.84629,32.988838],[102.846336,32.988793],[102.84637,32.988697],[102.846337,32.988587],[102.846298,32.988564],[102.84622,32.988564],[102.846126,32.98858],[102.846121,32.988511],[102.846271,32.986698],[102.846295,32.9864],[102.846309,32.986335],[102.846356,32.986117],[102.846456,32.985653],[102.846456,32.985653],[102.846467,32.985599],[102.846533,32.985295],[102.84693,32.984104],[102.846965,32.983908],[102.846999,32.983722],[102.847003,32.983697],[102.847006,32.983679],[102.847073,32.983306],[102.847078,32.983278],[102.847085,32.983243],[102.847091,32.983208],[102.847113,32.983087],[102.846892,32.981354],[102.846856,32.980936],[102.846845,32.980817],[102.846813,32.980434],[102.846785,32.980114],[102.846727,32.979443],[102.846553,32.979101],[102.846525,32.979047],[102.846332,32.978669],[102.846324,32.978653],[102.846225,32.978459],[102.84612,32.978163],[102.845784,32.977216],[102.845782,32.977209],[102.84538,32.976404],[102.845412,32.975118],[102.844927,32.973424],[102.843996,32.972277],[102.843972,32.972247],[102.844075,32.972171],[102.844142,32.972126],[102.844191,32.972072],[102.84419,32.971994],[102.844129,32.971926],[102.844076,32.971876],[102.843972,32.971822],[102.843797,32.971686],[102.84357,32.971563],[102.843563,32.97156],[102.843486,32.971518],[102.843218,32.971431],[102.843118,32.971444],[102.842919,32.97144],[102.84263,32.97147],[102.84238,32.971334],[102.841619,32.971021],[102.84064,32.971129],[102.839335,32.971256],[102.839267,32.971268],[102.839288,32.970765],[102.840628,32.970574],[102.842155,32.970493],[102.843744,32.970467],[102.844901,32.970021],[102.845807,32.969445],[102.8473,32.968208],[102.84967,32.966084],[102.850872,32.965052],[102.851996,32.964319],[102.85298,32.963434],[102.853286,32.962597],[102.853988,32.961587],[102.854856,32.961091],[102.858044,32.95907],[102.858705,32.9583],[102.858932,32.957991],[102.85902,32.957772],[102.859153,32.957528],[102.859254,32.957377],[102.859387,32.957147],[102.859496,32.956982],[102.85963,32.956773],[102.859755,32.956557],[102.859863,32.956364],[102.860098,32.956054],[102.8603,32.955824],[102.860467,32.955601],[102.860484,32.955576],[102.860635,32.955175],[102.86083,32.954846],[102.860864,32.954539],[102.860905,32.954352],[102.860996,32.95408],[102.861087,32.953893],[102.861205,32.953713],[102.861363,32.953469],[102.861455,32.953297],[102.861624,32.953016],[102.86167,32.952186],[102.861651,32.951857],[102.86162,32.951313],[102.861691,32.951315],[102.861744,32.950788],[102.861775,32.950484],[102.861808,32.949137],[102.861969,32.947739],[102.862638,32.94651],[102.863643,32.944587],[102.864585,32.942662],[102.865904,32.94096],[102.866394,32.939189],[102.866625,32.938309],[102.866746,32.937848],[102.866716,32.937779],[102.866382,32.937033],[102.865707,32.935889],[102.86523,32.934426],[102.865398,32.932757],[102.865955,32.93088],[102.867081,32.929228],[102.868257,32.92817],[102.869007,32.926242],[102.869858,32.925394],[102.870064,32.924805],[102.870228,32.923298],[102.870533,32.921255],[102.870938,32.920345],[102.871968,32.919496],[102.871693,32.92007],[102.871316,32.92156],[102.871284,32.922912],[102.871605,32.923752],[102.872158,32.924883],[102.87269,32.925439],[102.873804,32.925947],[102.874892,32.92611],[102.875972,32.926617],[102.876812,32.92715],[102.877686,32.927682],[102.878487,32.928444],[102.879622,32.929499],[102.880462,32.93006],[102.88147,32.930711],[102.882746,32.931567],[102.88366,32.931899],[102.884597,32.932663],[102.885266,32.933221],[102.886338,32.934045],[102.887179,32.934577],[102.888025,32.93485],[102.889218,32.934928],[102.89017,32.935088],[102.890806,32.935588],[102.891001,32.935994],[102.891224,32.93666],[102.891513,32.937442],[102.89211,32.938171],[102.892844,32.938845],[102.893542,32.939663],[102.893773,32.939983],[102.89386,32.940647],[102.893875,32.941453],[102.893751,32.942343],[102.893623,32.943434],[102.893464,32.944352],[102.8936,32.944383],[102.894722,32.944575],[102.89584,32.944939],[102.897195,32.945336],[102.898181,32.945496],[102.899676,32.945809],[102.900765,32.945914],[102.901924,32.945962],[102.902951,32.945864],[102.903707,32.945618],[102.904564,32.945489],[102.905414,32.945589],[102.906153,32.94612],[102.907391,32.947176],[102.907846,32.948134],[102.908545,32.948893],[102.909038,32.949679],[102.909909,32.950384],[102.911449,32.951647],[102.912465,32.951981],[102.912939,32.952161],[102.913242,32.952339],[102.912622,32.952587],[102.912574,32.952611],[102.912009,32.952887],[102.911482,32.953144],[102.910888,32.953738],[102.910227,32.954274],[102.909535,32.954665],[102.908971,32.955404],[102.908231,32.956428],[102.907793,32.957629],[102.907528,32.958718],[102.907099,32.959545],[102.907069,32.960811],[102.906946,32.961701],[102.906749,32.96423],[102.906522,32.965176],[102.906497,32.965334],[102.906495,32.965869],[102.906499,32.966255],[102.906439,32.966646],[102.90634,32.966847],[102.906244,32.967051],[102.906205,32.967212],[102.90613,32.967694],[102.906121,32.967749],[102.906063,32.968122],[102.906027,32.968355],[102.905999,32.968534],[102.906001,32.968584],[102.906008,32.968794],[102.906009,32.968813],[102.906011,32.968862],[102.906043,32.969763],[102.906044,32.969792],[102.906081,32.970837],[102.906163,32.971906],[102.906168,32.971965],[102.906193,32.972293],[102.906212,32.972537],[102.90621,32.972547],[102.906126,32.973054],[102.905943,32.97316],[102.905842,32.973237],[102.905686,32.973453],[102.905547,32.973693],[102.905436,32.973985],[102.905404,32.974157],[102.905462,32.974266],[102.905519,32.974347],[102.905554,32.974447],[102.905561,32.974561],[102.905513,32.974791],[102.90551,32.974799],[102.905355,32.975544],[102.90527,32.976262],[102.905155,32.976807],[102.904836,32.97732],[102.9047,32.978167],[102.904686,32.978259],[102.904675,32.978324],[102.904655,32.97847],[102.904633,32.978632],[102.904594,32.978913],[102.904561,32.979147],[102.904447,32.979969],[102.904366,32.980111],[102.904266,32.980259],[102.904233,32.980345],[102.904212,32.980503],[102.90423,32.980617],[102.904332,32.980799],[102.90433,32.98081],[102.904305,32.980994],[102.904256,32.981626],[102.904443,32.982349],[102.905163,32.983859],[102.905481,32.984526],[102.90555,32.98467],[102.906417,32.9869],[102.906576,32.987204],[102.906623,32.987326],[102.906681,32.987451],[102.906775,32.987602],[102.906836,32.987721],[102.90684,32.987808],[102.906877,32.987951],[102.906932,32.988087],[102.906997,32.988218],[102.907083,32.988337],[102.907148,32.988468],[102.907153,32.988593],[102.907112,32.988706],[102.907123,32.988829],[102.907153,32.98893],[102.907203,32.989031],[102.907229,32.989134],[102.907256,32.989241],[102.907257,32.989243],[102.907289,32.989367],[102.907377,32.989707],[102.907402,32.989805],[102.907673,32.989889],[102.907766,32.989945],[102.907883,32.990079],[102.907984,32.990283],[102.908002,32.990469],[102.907905,32.990584],[102.907786,32.990689],[102.907644,32.99074],[102.907704,32.990972],[102.907721,32.991037],[102.90796,32.99248],[102.908895,32.993387],[102.910068,32.994328],[102.910665,32.995057],[102.911393,32.996048],[102.911415,32.996074],[102.911493,32.996166],[102.91169,32.99629],[102.911844,32.996382],[102.911964,32.996527],[102.912034,32.996735],[102.912104,32.996916],[102.912156,32.996998],[102.912232,32.997048],[102.913258,32.998065],[102.913707,32.998406],[102.913747,32.998558],[102.913804,32.998675],[102.91386,32.998768],[102.91392,32.998843],[102.914031,32.998892],[102.914129,32.998931],[102.914209,32.998956],[102.914892,32.999732],[102.915434,32.999943],[102.916052,32.99978],[102.916126,32.999771],[102.916174,32.999764],[102.9162,32.999761],[102.917011,32.999653],[102.917514,32.999675],[102.918035,32.999698],[102.919982,32.999645],[102.920907,32.999516],[102.92169,32.999644],[102.922491,32.999642],[102.922543,32.999642],[102.923193,32.999641],[102.924316,32.999774],[102.925448,32.999592],[102.926467,32.99981],[102.926518,32.999816],[102.92683,32.999855],[102.927284,32.99991],[102.927557,32.999943],[102.928347,32.999726],[102.929353,32.999111],[102.929906,32.998774],[102.930204,32.998433],[102.930503,32.998093],[102.930961,32.997598],[102.930748,32.997514],[102.930684,32.997468],[102.930679,32.997396],[102.930704,32.997321],[102.930788,32.997263],[102.930902,32.997248],[102.931051,32.997236],[102.931208,32.997199],[102.93139,32.997147],[102.931714,32.997056],[102.932275,32.99677],[102.932608,32.996656],[102.932769,32.996601],[102.933285,32.996425],[102.933962,32.996193],[102.934749,32.996211],[102.935232,32.996222],[102.935324,32.99626],[102.935719,32.996425],[102.935852,32.996481],[102.936192,32.996622],[102.936612,32.996739],[102.936622,32.996741],[102.936887,32.996815],[102.936929,32.996827],[102.936943,32.997076],[102.93695,32.997206],[102.93694,32.997237],[102.936909,32.997338],[102.936905,32.997399],[102.936909,32.997525],[102.936929,32.997644],[102.936947,32.997751],[102.936954,32.99777],[102.936963,32.997787],[102.93698,32.997818],[102.937059,32.9979],[102.937139,32.997955],[102.937163,32.997974],[102.937142,32.998014],[102.937106,32.998043],[102.937052,32.998056],[102.936996,32.99804],[102.936958,32.998015],[102.936957,32.998075],[102.936956,32.998086],[102.936945,32.998557],[102.937224,32.99885],[102.93752,32.998759],[102.937586,32.998738],[102.937629,32.998709],[102.937689,32.99868],[102.937752,32.998662],[102.937807,32.99867],[102.938021,32.998604],[102.93804,32.998564],[102.93806,32.998523],[102.938081,32.998497],[102.938108,32.998472],[102.93813,32.998454],[102.938159,32.998434],[102.938193,32.998422],[102.938222,32.998415],[102.938256,32.998408],[102.938292,32.99841],[102.938331,32.998411],[102.938357,32.998413],[102.938389,32.998419],[102.938415,32.998425],[102.938434,32.998436],[102.938453,32.99845],[102.938469,32.998464],[102.938477,32.998497],[102.93883,32.998444],[102.93911,32.998689],[102.939105,32.998697],[102.9391,32.998709],[102.93907,32.998767],[102.939059,32.99879],[102.939043,32.998821],[102.938956,32.998995],[102.938944,32.999019],[102.938928,32.99905],[102.938898,32.999111],[102.938885,32.999137],[102.938751,32.999404],[102.938834,32.999835],[102.938853,32.999934],[102.938867,32.999974],[102.938875,32.999997],[102.938895,33.000053],[102.939019,33.000403],[102.939021,33.00041],[102.939024,33.000418],[102.939042,33.000467],[102.939069,33.000543],[102.939078,33.000571],[102.93931,33.001223],[102.939829,33.001618],[102.939572,33.002059],[102.940057,33.002453],[102.940541,33.002848],[102.940178,33.003287],[102.940114,33.003419],[102.939985,33.003684],[102.939919,33.003818],[102.939759,33.004002],[102.939731,33.004033],[102.93961,33.004071],[102.939537,33.004108],[102.939495,33.004134],[102.939403,33.004261],[102.939403,33.004286],[102.93889,33.004098],[102.938337,33.003766],[102.938229,33.003701],[102.938188,33.003968],[102.938272,33.004117],[102.938274,33.00412],[102.938383,33.004314],[102.938409,33.00436],[102.938425,33.004388],[102.938358,33.004432],[102.938342,33.004443],[102.938327,33.004453],[102.938262,33.004496],[102.938249,33.004505],[102.93823,33.004517],[102.937816,33.004794],[102.937788,33.004904],[102.937787,33.00491],[102.937786,33.004917],[102.93777,33.004977],[102.937741,33.005091],[102.937714,33.005202],[102.93766,33.005415],[102.93767,33.005428],[102.937918,33.005742],[102.937935,33.005764],[102.937969,33.005806],[102.93811,33.005948],[102.938167,33.006005],[102.93821,33.006048],[102.938205,33.006077],[102.938199,33.006109],[102.938197,33.006118],[102.938129,33.006492],[102.937805,33.006754],[102.937096,33.006951],[102.936373,33.007711],[102.936262,33.007878],[102.936249,33.007898],[102.936213,33.007952],[102.93608,33.008152],[102.935914,33.008704],[102.935908,33.008724],[102.935813,33.009039],[102.935438,33.009984],[102.934819,33.010806],[102.934762,33.010955],[102.934481,33.011691],[102.93449,33.011729],[102.934704,33.012705],[102.935033,33.013621],[102.935054,33.013682],[102.935069,33.013722],[102.935134,33.013858],[102.935164,33.013919],[102.935204,33.014003],[102.935674,33.01498],[102.93571,33.01506],[102.935717,33.015074],[102.935734,33.015114],[102.935742,33.01513],[102.935778,33.015212],[102.935942,33.015578],[102.936065,33.015696],[102.936191,33.015817],[102.936235,33.015859],[102.937046,33.016636],[102.93746,33.017342],[102.937508,33.017424],[102.937521,33.017447],[102.93782,33.017896],[102.938168,33.01842],[102.938174,33.01843],[102.938274,33.018581],[102.938279,33.018589],[102.938286,33.018599],[102.938339,33.018678],[102.938343,33.018702],[102.938345,33.018712],[102.93837,33.018701],[102.938446,33.018669],[102.938521,33.018625],[102.93852,33.018718],[102.938376,33.018899],[102.938525,33.019781],[102.938288,33.020847],[102.938445,33.021681],[102.938479,33.021746],[102.939121,33.02297],[102.939399,33.023421],[102.939937,33.024291],[102.940119,33.024354],[102.940279,33.024408],[102.940391,33.024447],[102.940623,33.024366],[102.940872,33.024278],[102.940879,33.024276],[102.941164,33.024176],[102.94128,33.024135],[102.942032,33.02392],[102.942559,33.02377],[102.943649,33.023907],[102.944453,33.024217],[102.945046,33.024524],[102.945566,33.024919],[102.945727,33.025575],[102.945435,33.026194],[102.945281,33.026518],[102.945072,33.026791],[102.944445,33.027604],[102.944594,33.027943],[102.944814,33.028442],[102.944982,33.028989],[102.945043,33.029189],[102.945058,33.030051],[102.944664,33.031827],[102.94418,33.032918],[102.943913,33.033805],[102.944072,33.034551],[102.944095,33.034921],[102.944123,33.035384],[102.944424,33.036102],[102.944406,33.036874],[102.944209,33.037241],[102.944185,33.037286],[102.943602,33.038079],[102.943658,33.038704],[102.943924,33.039421],[102.94475,33.040297],[102.945123,33.040957],[102.945112,33.041432],[102.944747,33.041931],[102.944704,33.042287],[102.944946,33.042499],[102.945685,33.04257],[102.946802,33.042783],[102.946879,33.042798],[102.947222,33.043098],[102.94723,33.043106],[102.947401,33.043255],[102.947433,33.043283],[102.947847,33.043646],[102.950089,33.046339],[102.950358,33.046662],[102.950379,33.046815],[102.950431,33.046911],[102.950535,33.047031],[102.950573,33.047075],[102.950715,33.047228],[102.950835,33.047306],[102.95104,33.047444],[102.951177,33.047521],[102.951336,33.04762],[102.951473,33.047748],[102.951564,33.047883],[102.951633,33.048022],[102.951643,33.048115],[102.951621,33.048179],[102.952035,33.048677],[102.952143,33.048753],[102.953077,33.049407],[102.954887,33.050447],[102.955224,33.051136],[102.954598,33.052421],[102.954577,33.052464],[102.954345,33.05294],[102.95424,33.053644],[102.954164,33.054391],[102.954105,33.054534],[102.954077,33.054667],[102.954007,33.054911],[102.953928,33.055083],[102.953828,33.055234],[102.953817,33.055363],[102.953789,33.055517],[102.953701,33.055665],[102.953639,33.05583],[102.95362,33.056019],[102.95363,33.056188],[102.953632,33.056324],[102.953616,33.056485],[102.953635,33.056631],[102.953696,33.056813],[102.953668,33.056932],[102.953601,33.057025],[102.953547,33.057108],[102.953527,33.057188],[102.953518,33.057226],[102.953515,33.057373],[102.953482,33.057455],[102.953438,33.057575],[102.953429,33.057599],[102.953401,33.057727],[102.953395,33.057754],[102.953401,33.058019],[102.953426,33.05914],[102.953439,33.059687],[102.953557,33.060173],[102.953721,33.060844],[102.954309,33.062117],[102.954944,33.063279],[102.955595,33.063773],[102.956519,33.063899],[102.957133,33.064058],[102.958356,33.064598],[102.959416,33.064541],[102.960792,33.064192],[102.962617,33.063516],[102.963865,33.06317],[102.96396,33.063143],[102.96426,33.06306],[102.965237,33.062816],[102.966028,33.06294],[102.966722,33.063472],[102.967116,33.06407],[102.967168,33.06407],[102.967212,33.06407],[102.967249,33.064082],[102.967288,33.064113],[102.9673,33.064167],[102.967297,33.064203],[102.96728,33.064215],[102.967228,33.064239],[102.967489,33.064636],[102.967934,33.065222],[102.968175,33.065539],[102.968292,33.06621],[102.968286,33.066451],[102.96828,33.06672],[102.968278,33.06679],[102.968298,33.066793],[102.968312,33.066798],[102.968323,33.066807],[102.96833,33.066818],[102.968346,33.066844],[102.968384,33.066858],[102.968404,33.066859],[102.968424,33.06686],[102.968462,33.066864],[102.96848,33.066872],[102.96849,33.066884],[102.968491,33.066904],[102.968473,33.066925],[102.968445,33.066929],[102.968403,33.066932],[102.96835,33.066937],[102.968321,33.066945],[102.968296,33.066961],[102.968281,33.066974],[102.96827,33.066993],[102.968269,33.067009],[102.968271,33.067024],[102.968278,33.067036],[102.96829,33.067047],[102.968302,33.067056],[102.968321,33.067071],[102.968356,33.067091],[102.968372,33.067101],[102.968392,33.067112],[102.968426,33.067137],[102.968447,33.067161],[102.968454,33.06718],[102.968445,33.067198],[102.968411,33.067212],[102.968398,33.067212],[102.968356,33.06722],[102.96835,33.067222],[102.968337,33.067232],[102.968324,33.06725],[102.968318,33.067277],[102.968322,33.0673],[102.968335,33.067312],[102.968363,33.067332],[102.968384,33.067336],[102.968404,33.067423],[102.968477,33.067736],[102.968553,33.067811],[102.969168,33.068416],[102.969685,33.068683],[102.969735,33.068709],[102.969749,33.068733],[102.969759,33.068742],[102.969795,33.068764],[102.969825,33.068783],[102.969864,33.068801],[102.969896,33.06882],[102.96992,33.068804],[102.969985,33.068838],[102.970433,33.069069],[102.971306,33.06967],[102.971649,33.069906],[102.971661,33.069933],[102.972195,33.071104],[102.972578,33.072109],[102.972614,33.072204],[102.972621,33.072223],[102.972648,33.072262],[102.972665,33.072291],[102.972677,33.072314],[102.972691,33.072337],[102.972705,33.072352],[102.972723,33.072365],[102.972746,33.07238],[102.972775,33.072413],[102.972803,33.072437],[102.972827,33.072459],[102.972831,33.072473],[102.972835,33.072484],[102.972837,33.072503],[102.972834,33.072516],[102.972809,33.072543],[102.972789,33.072563],[102.972789,33.072577],[102.972797,33.072602],[102.972803,33.072619],[102.972833,33.072668],[102.97286,33.072701],[102.972888,33.072742],[102.97291,33.072771],[102.972938,33.072801],[102.972978,33.072833],[102.972995,33.072855],[102.973046,33.072884],[102.973066,33.072893],[102.973059,33.072937],[102.973106,33.072967],[102.973176,33.073006],[102.973223,33.073032],[102.973267,33.073062],[102.973277,33.073082],[102.973282,33.073118],[102.973292,33.073146],[102.973322,33.073165],[102.97335,33.073177],[102.973391,33.07319],[102.973423,33.073214],[102.973442,33.07323],[102.973454,33.073252],[102.973466,33.073296],[102.973482,33.073314],[102.973529,33.073341],[102.973559,33.073361],[102.973583,33.073397],[102.973606,33.073428],[102.973636,33.073459],[102.97366,33.073485],[102.973776,33.073635],[102.973819,33.073704],[102.973849,33.07375],[102.973854,33.073756],[102.973904,33.07375],[102.97394,33.073796],[102.973967,33.07383],[102.973998,33.073857],[102.974025,33.073888],[102.974102,33.073961],[102.974151,33.074007],[102.974187,33.074036],[102.974217,33.074074],[102.974257,33.074135],[102.974299,33.074177],[102.974345,33.074214],[102.974391,33.074242],[102.974457,33.074265],[102.974485,33.07427],[102.974528,33.07428],[102.974546,33.074304],[102.974551,33.074329],[102.97453,33.074342],[102.9745,33.074373],[102.974482,33.074397],[102.974482,33.074409],[102.974503,33.074424],[102.974517,33.074424],[102.97453,33.074424],[102.974557,33.074417],[102.974592,33.074408],[102.974623,33.074427],[102.974632,33.074449],[102.97463,33.074478],[102.974618,33.0745],[102.974619,33.074523],[102.974631,33.074543],[102.974665,33.074558],[102.97468,33.074559],[102.974696,33.074559],[102.974716,33.074547],[102.974725,33.074528],[102.974725,33.0745],[102.974726,33.074486],[102.974729,33.074471],[102.974754,33.07446],[102.974774,33.074456],[102.974815,33.074466],[102.974832,33.074474],[102.974852,33.074486],[102.97486,33.074507],[102.974866,33.074527],[102.974873,33.074544],[102.974891,33.07456],[102.974915,33.074575],[102.974927,33.074586],[102.974935,33.074608],[102.974944,33.074623],[102.974963,33.074639],[102.974976,33.074656],[102.974975,33.074673],[102.974957,33.074692],[102.974947,33.074706],[102.974947,33.074717],[102.974953,33.074723],[102.974965,33.074727],[102.97498,33.074728],[102.974994,33.074725],[102.975017,33.074722],[102.975035,33.074711],[102.975037,33.074695],[102.97504,33.074675],[102.975047,33.074666],[102.975082,33.074672],[102.975101,33.074697],[102.97511,33.074721],[102.975128,33.074737],[102.975135,33.07474],[102.975155,33.07475],[102.975167,33.074772],[102.975148,33.074797],[102.975138,33.074808],[102.975132,33.074814],[102.975117,33.074839],[102.975114,33.07485],[102.975118,33.074861],[102.975127,33.074869],[102.975139,33.074872],[102.975161,33.074879],[102.975185,33.074894],[102.975209,33.074905],[102.97523,33.074922],[102.975258,33.074939],[102.975287,33.07496],[102.975302,33.074971],[102.975311,33.074994],[102.975308,33.075013],[102.975285,33.075026],[102.975268,33.075031],[102.975247,33.075035],[102.975233,33.07504],[102.975231,33.075048],[102.975234,33.07506],[102.975243,33.075066],[102.975253,33.075068],[102.975269,33.075069],[102.97529,33.075067],[102.975329,33.075072],[102.975356,33.075084],[102.975399,33.075081],[102.975412,33.075079],[102.975424,33.075074],[102.975457,33.075066],[102.975472,33.075075],[102.975479,33.075096],[102.975493,33.075107],[102.975505,33.075119],[102.975504,33.075149],[102.975497,33.075178],[102.975475,33.0752],[102.975454,33.075205],[102.975431,33.075194],[102.975432,33.075175],[102.975438,33.075152],[102.975437,33.075143],[102.975418,33.075143],[102.975409,33.075149],[102.975405,33.075162],[102.975405,33.07518],[102.975408,33.075202],[102.975409,33.075212],[102.975411,33.075229],[102.975412,33.075243],[102.97541,33.075255],[102.975403,33.075271],[102.975456,33.075352],[102.975708,33.075731],[102.975784,33.07606],[102.97587,33.076434],[102.9759,33.076565],[102.975931,33.076617],[102.975964,33.076668],[102.975994,33.076703],[102.976014,33.076721],[102.976044,33.076726],[102.976075,33.076731],[102.976139,33.076753],[102.976173,33.076777],[102.976197,33.076794],[102.976206,33.07682],[102.976207,33.076849],[102.976188,33.07689],[102.976152,33.076913],[102.976124,33.076942],[102.97611,33.076969],[102.976124,33.076997],[102.976134,33.077043],[102.976141,33.077065],[102.97615,33.077096],[102.976148,33.077127],[102.976137,33.077151],[102.976115,33.077176],[102.976067,33.077204],[102.976021,33.077226],[102.975987,33.077236],[102.975936,33.077246],[102.975916,33.077252],[102.975882,33.07774],[102.976311,33.078305],[102.977408,33.078583],[102.97755,33.078663],[102.978148,33.079003],[102.978661,33.079571],[102.978966,33.079908],[102.979567,33.080661],[102.980294,33.081676],[102.981612,33.081958],[102.982003,33.082224],[102.982649,33.082903],[102.983512,33.083772],[102.984031,33.084226],[102.984499,33.085014],[102.985049,33.086026],[102.985132,33.086162],[102.985363,33.086542],[102.985606,33.086943],[102.985688,33.087077],[102.985791,33.087132],[102.985844,33.087097],[102.985954,33.087109],[102.986004,33.08717],[102.986062,33.087192],[102.986151,33.087228],[102.986235,33.087244],[102.986326,33.087276],[102.986372,33.087311],[102.986403,33.08737],[102.986421,33.087408],[102.986387,33.087446],[102.98656,33.087537],[102.986654,33.087565],[102.987126,33.087706],[102.987181,33.087722],[102.987238,33.087739],[102.987875,33.08793],[102.988353,33.088182],[102.98871,33.08837],[102.988824,33.08843],[102.988965,33.088505],[102.988999,33.088951],[102.988992,33.089262],[102.988989,33.08941],[102.989081,33.089449],[102.989128,33.089493],[102.989139,33.089546],[102.989134,33.089602],[102.989111,33.089673],[102.989084,33.08971],[102.989027,33.089721],[102.988982,33.089715],[102.988919,33.08973],[102.988867,33.089752],[102.988813,33.08978],[102.988806,33.089824],[102.988826,33.089876],[102.98889,33.089939],[102.988927,33.089973],[102.988983,33.090017],[102.989034,33.090084],[102.989064,33.090145],[102.98911,33.090215],[102.989172,33.090273],[102.989269,33.090339],[102.989364,33.090465],[102.989491,33.090631],[102.990656,33.091231],[102.990756,33.091283],[102.990985,33.092048],[102.991003,33.092105],[102.991231,33.092496],[102.991257,33.092503],[102.991334,33.092519],[102.99138,33.092545],[102.99138,33.09259],[102.991339,33.092682],[102.99128,33.092725],[102.991255,33.092758],[102.991244,33.092806],[102.99125,33.092842],[102.991264,33.092873],[102.991287,33.092873],[102.99143,33.092838],[102.991706,33.093312],[102.991724,33.093342],[102.991725,33.093344],[102.991776,33.093355],[102.99183,33.093432],[102.991842,33.093494],[102.991864,33.093598],[102.991904,33.093685],[102.991958,33.093747],[102.992026,33.093815],[102.992094,33.093871],[102.992155,33.093915],[102.992219,33.093995],[102.992241,33.094058],[102.992209,33.094111],[102.992198,33.094183],[102.992208,33.094264],[102.992217,33.094338],[102.99226,33.094404],[102.992323,33.094442],[102.992435,33.094488],[102.992556,33.094709],[102.992569,33.094733],[102.992645,33.094872],[102.992657,33.094894],[102.992714,33.094999],[102.992724,33.095018],[102.992778,33.095116],[102.992791,33.09514],[102.992882,33.095307],[102.992893,33.095326],[102.992898,33.095336],[102.992957,33.095443],[102.992963,33.095448],[102.992987,33.095468],[102.993024,33.095499],[102.993059,33.095529],[102.993073,33.09554],[102.993191,33.09555],[102.993223,33.095552],[102.993248,33.09558],[102.993257,33.095624],[102.993266,33.095702],[102.993371,33.09579],[102.993453,33.095858],[102.993528,33.095921],[102.993551,33.09594],[102.993953,33.096277],[102.994552,33.097104],[102.995163,33.097344],[102.99534,33.097414],[102.995491,33.097303],[102.995513,33.097287],[102.995616,33.097212],[102.995789,33.097086],[102.995836,33.097096],[102.996039,33.097137],[102.996049,33.097139],[102.996102,33.09715],[102.99658,33.097248],[102.996695,33.097323],[102.996696,33.097265],[102.996695,33.097258],[102.996755,33.097256],[102.996838,33.097266],[102.996882,33.097285],[102.996913,33.097317],[102.996921,33.097354],[102.996911,33.097401],[102.996895,33.097455],[102.996909,33.097464],[102.997102,33.097591],[102.997232,33.097846],[102.99729,33.097841],[102.997343,33.097873],[102.997366,33.097918],[102.997368,33.097952],[102.99735,33.098004],[102.997308,33.098053],[102.997269,33.098059],[102.997233,33.09805],[102.997188,33.098032],[102.997137,33.098023],[102.997117,33.098035],[102.997103,33.098058],[102.997106,33.098094],[102.997135,33.098114],[102.997192,33.098145],[102.997242,33.098183],[102.997264,33.098226],[102.997264,33.098252],[102.997253,33.09827],[102.997227,33.098283],[102.997205,33.098296],[102.997209,33.098322],[102.997229,33.098339],[102.997277,33.09835],[102.997257,33.09855],[102.997256,33.098559],[102.997261,33.098615],[102.997271,33.098733],[102.997283,33.098875],[102.997206,33.098814],[102.997176,33.098787],[102.997123,33.098759],[102.99708,33.098754],[102.997051,33.098769],[102.997049,33.098811],[102.997095,33.098853],[102.997173,33.098898],[102.997243,33.098937],[102.997298,33.098966],[102.997385,33.099005],[102.997433,33.099035],[102.997437,33.099062],[102.997408,33.099089],[102.997359,33.099106],[102.997245,33.09913],[102.997172,33.099122],[102.99712,33.099096],[102.997095,33.099069],[102.997072,33.099044],[102.997038,33.099053],[102.997021,33.099073],[102.997039,33.099118],[102.997092,33.099162],[102.997137,33.099183],[102.997202,33.099217],[102.997226,33.099245],[102.997236,33.099284],[102.99724,33.099318],[102.997229,33.099362],[102.997202,33.099375],[102.997156,33.09938],[102.997122,33.099373],[102.9971,33.099379],[102.997073,33.099441],[102.997065,33.09949],[102.997027,33.099529],[102.996954,33.099554],[102.996924,33.099588],[102.996922,33.099634],[102.996923,33.099675],[102.996888,33.099719],[102.99685,33.09973],[102.996832,33.099749],[102.996854,33.099772],[102.99689,33.099779],[102.996915,33.099769],[102.996949,33.099732],[102.996991,33.099665],[102.997023,33.099625],[102.997057,33.099629],[102.997096,33.09965],[102.997132,33.099661],[102.997193,33.099649],[102.99725,33.099618],[102.997295,33.099615],[102.997341,33.099643],[102.997363,33.099695],[102.997361,33.099735],[102.997318,33.09976],[102.997232,33.099787],[102.997161,33.099794],[102.99711,33.09981],[102.997119,33.099837],[102.997156,33.099868],[102.997185,33.099874],[102.997206,33.099869],[102.997239,33.099837],[102.997281,33.099804],[102.997319,33.099782],[102.997366,33.099756],[102.997403,33.09975],[102.997437,33.099751],[102.997473,33.099767],[102.997485,33.099807],[102.99749,33.099873],[102.997499,33.099931],[102.997508,33.09996],[102.997532,33.100005],[102.99756,33.100042],[102.997607,33.100056],[102.997651,33.100049],[102.9978,33.099964],[102.997858,33.099933],[102.997886,33.099945],[102.997924,33.099988],[102.997929,33.100036],[102.997922,33.100064],[102.997913,33.10008],[102.997882,33.10011],[102.997876,33.100149],[102.997883,33.100164],[102.997911,33.100193],[102.997955,33.100218],[102.998054,33.100247],[102.99809,33.100244],[102.998117,33.100225],[102.998153,33.100255],[102.998188,33.100283],[102.998445,33.100478],[102.998839,33.100777],[102.999123,33.101199],[102.999213,33.101333],[102.999221,33.101345],[102.999211,33.101419],[102.999219,33.10149],[102.99924,33.101526],[102.999299,33.101548],[102.999332,33.101555],[102.999365,33.10156],[102.999383,33.101556],[102.999431,33.101555],[102.99948,33.101555],[102.99955,33.101557],[102.999567,33.101567],[102.99956,33.101582],[102.999525,33.101596],[102.999425,33.10163],[102.999457,33.101658],[102.99957,33.101757],[102.999784,33.101944],[103.000106,33.102294],[103.000462,33.10268],[103.000611,33.103062],[103.000655,33.103075],[103.000689,33.103106],[103.000712,33.103138],[103.000733,33.103183],[103.000763,33.103218],[103.000804,33.103233],[103.000831,33.103253],[103.000861,33.103282],[103.000853,33.103309],[103.000822,33.103328],[103.000788,33.10334],[103.00074,33.103394],[103.000745,33.103408],[103.000818,33.103578],[103.000854,33.103663],[103.001029,33.104074],[103.001466,33.104616],[103.00167,33.104724],[103.001836,33.104811],[103.002321,33.104818],[103.002523,33.104738],[103.002571,33.104718],[103.00256,33.104701],[103.002561,33.104674],[103.002573,33.104646],[103.002598,33.10461],[103.002622,33.104577],[103.002643,33.104541],[103.002658,33.104529],[103.002673,33.104527],[103.002698,33.104549],[103.002706,33.104574],[103.002712,33.104598],[103.002719,33.104615],[103.002728,33.104625],[103.002753,33.10463],[103.002788,33.104621],[103.002821,33.104602],[103.002833,33.104573],[103.002837,33.104544],[103.002842,33.104515],[103.002854,33.104493],[103.002885,33.104484],[103.002919,33.104494],[103.002962,33.104516],[103.002983,33.104539],[103.00299,33.104569],[103.003026,33.104565],[103.003063,33.104554],[103.003089,33.104541],[103.003113,33.104531],[103.003137,33.104528],[103.003157,33.104528],[103.003185,33.104535],[103.003215,33.104544],[103.003236,33.104542],[103.003675,33.104494],[103.003857,33.104717],[103.00381,33.105126],[103.003771,33.105182],[103.003661,33.105336],[103.003653,33.105348],[103.003608,33.105411],[103.003668,33.105385],[103.003688,33.105378],[103.003733,33.105374],[103.003761,33.105384],[103.003766,33.105404],[103.003751,33.105424],[103.003718,33.105444],[103.003664,33.105459],[103.003608,33.105478],[103.003584,33.105493],[103.003553,33.105529],[103.003535,33.105556],[103.003519,33.105584],[103.003495,33.105613],[103.003465,33.10564],[103.003447,33.105681],[103.003393,33.105798],[103.003386,33.105814],[103.003347,33.105898],[103.003344,33.105905],[103.003415,33.106097],[103.003428,33.106132],[103.003433,33.106145],[103.003433,33.106145],[103.003507,33.106343],[103.003516,33.106369],[103.003487,33.10638],[103.00347,33.106374],[103.003449,33.106364],[103.003438,33.106356],[103.003432,33.106401],[103.003435,33.106458],[103.003453,33.106491],[103.003558,33.10652],[103.003708,33.106527],[103.003742,33.106542],[103.003747,33.10657],[103.003729,33.106607],[103.003699,33.10671],[103.003699,33.106752],[103.003701,33.106825],[103.003722,33.106883],[103.003756,33.106942],[103.003803,33.106974],[103.003907,33.106978],[103.004004,33.106968],[103.004061,33.106946],[103.004131,33.106907],[103.004186,33.106848],[103.004233,33.106786],[103.004308,33.106712],[103.004325,33.106664],[103.004345,33.106648],[103.00437,33.106652],[103.004399,33.106657],[103.00444,33.10668],[103.004461,33.106699],[103.004482,33.106748],[103.004496,33.106799],[103.004506,33.106828],[103.004519,33.106844],[103.00455,33.106869],[103.004616,33.106874],[103.004659,33.106866],[103.004743,33.106819],[103.00483,33.106814],[103.004875,33.10685],[103.004908,33.10688],[103.004916,33.106908],[103.004904,33.106996],[103.004934,33.10703],[103.004985,33.107085],[103.005013,33.107163],[103.004992,33.107208],[103.004963,33.107274],[103.004968,33.107329],[103.004978,33.107358],[103.005021,33.107416],[103.005063,33.107478],[103.005115,33.10752],[103.005172,33.107558],[103.005246,33.107583],[103.005359,33.107587],[103.005458,33.107614],[103.005522,33.107672],[103.005559,33.107681],[103.005603,33.10769],[103.005652,33.107725],[103.005677,33.10776],[103.005706,33.107784],[103.005742,33.107806],[103.00579,33.107832],[103.005847,33.107851],[103.005915,33.107876],[103.005961,33.107893],[103.005998,33.107912],[103.006019,33.107956],[103.006044,33.107994],[103.006084,33.108065],[103.006087,33.108071],[103.006123,33.108138],[103.006175,33.108189],[103.006197,33.108208],[103.006188,33.108258],[103.006154,33.108294],[103.006129,33.108331],[103.006118,33.108386],[103.006117,33.108444],[103.006144,33.108498],[103.006168,33.108517],[103.00619,33.108526],[103.006234,33.108528],[103.006266,33.108524],[103.006357,33.108508],[103.00638,33.108531],[103.006379,33.10856],[103.006369,33.108576],[103.006348,33.108603],[103.006355,33.10864],[103.006369,33.10867],[103.006384,33.108684],[103.00641,33.108697],[103.006518,33.108739],[103.006557,33.108762],[103.006601,33.108786],[103.006632,33.108787],[103.006687,33.108786],[103.006695,33.10878],[103.006728,33.108793],[103.006768,33.10882],[103.006804,33.108836],[103.006842,33.108845],[103.006822,33.108886],[103.006861,33.108955],[103.006867,33.108965],[103.006869,33.108988],[103.006866,33.10903],[103.006872,33.109076],[103.006899,33.109105],[103.006951,33.109125],[103.00699,33.109143],[103.007032,33.109168],[103.007074,33.109199],[103.007127,33.109235],[103.00719,33.109263],[103.007251,33.109271],[103.007288,33.109267],[103.007331,33.109251],[103.007364,33.109229],[103.007389,33.109207],[103.007427,33.10919],[103.007481,33.109181],[103.007532,33.109172],[103.007569,33.109152],[103.0076,33.109133],[103.00762,33.109107],[103.007631,33.109081],[103.00765,33.109055],[103.007681,33.109035],[103.00774,33.109025],[103.007767,33.109031],[103.007805,33.109058],[103.007843,33.109091],[103.007875,33.109118],[103.007899,33.109136],[103.007941,33.109158],[103.007972,33.109163],[103.008006,33.109164],[103.008024,33.109151],[103.008034,33.10913],[103.008035,33.109108],[103.008104,33.109123],[103.008133,33.109129],[103.008298,33.10914],[103.00854,33.109156],[103.008569,33.109158],[103.008768,33.109171],[103.008904,33.10925],[103.008943,33.109273],[103.0091,33.109365],[103.009122,33.109384],[103.00918,33.109435],[103.009376,33.109607],[103.00943,33.109653],[103.009375,33.109836],[103.00936,33.109883],[103.009268,33.110186],[103.009288,33.110682],[103.009292,33.110784],[103.009659,33.111186],[103.009682,33.11121],[103.009723,33.111256],[103.00973,33.111263],[103.009893,33.111342],[103.009935,33.111325],[103.01,33.111311],[103.010083,33.111311],[103.010156,33.111314],[103.010265,33.11135],[103.010366,33.111375],[103.010445,33.111369],[103.010554,33.111331],[103.010665,33.111322],[103.010739,33.111335],[103.010801,33.111368],[103.010876,33.111395],[103.010967,33.111397],[103.011032,33.111365],[103.011101,33.111305],[103.011155,33.111273],[103.01121,33.111226],[103.011258,33.111167],[103.011289,33.111109],[103.011292,33.111046],[103.011297,33.110965],[103.011296,33.110948],[103.011294,33.110872],[103.011289,33.110846],[103.011283,33.110811],[103.011261,33.110768],[103.011244,33.110724],[103.011261,33.110682],[103.01129,33.110681],[103.011367,33.110686],[103.011415,33.110684],[103.011445,33.110668],[103.01145,33.110631],[103.01145,33.110589],[103.011445,33.110502],[103.011426,33.110441],[103.011399,33.110405],[103.011351,33.110362],[103.011326,33.110322],[103.011289,33.110261],[103.011244,33.110198],[103.011191,33.110137],[103.011166,33.110087],[103.011161,33.110039],[103.01121,33.110019],[103.011342,33.110021],[103.01139,33.11003],[103.011419,33.110059],[103.011431,33.110094],[103.011452,33.110135],[103.011465,33.110176],[103.011465,33.110202],[103.011477,33.110236],[103.011494,33.110262],[103.011517,33.110275],[103.011539,33.110286],[103.011574,33.110294],[103.011618,33.110295],[103.011663,33.110288],[103.011723,33.110264],[103.01176,33.110249],[103.011802,33.110238],[103.011854,33.110239],[103.011867,33.110243],[103.011884,33.11025],[103.011908,33.110262],[103.011949,33.110279],[103.011996,33.11031],[103.012034,33.110329],[103.012073,33.110335],[103.012119,33.110336],[103.01215,33.110323],[103.012179,33.110306],[103.012215,33.110292],[103.012249,33.110307],[103.012279,33.110326],[103.012294,33.110346],[103.012315,33.110363],[103.01233,33.110377],[103.012354,33.110384],[103.012387,33.110395],[103.012399,33.110411],[103.012417,33.110456],[103.012438,33.110483],[103.01246,33.110524],[103.012476,33.110539],[103.012514,33.110544],[103.012549,33.110541],[103.012582,33.110521],[103.012608,33.11049],[103.012624,33.110462],[103.012635,33.110433],[103.012645,33.110402],[103.012647,33.110383],[103.012651,33.110309],[103.012655,33.110247],[103.012664,33.110181],[103.012681,33.110114],[103.012711,33.110064],[103.012754,33.110042],[103.012834,33.110054],[103.012879,33.11008],[103.01294,33.110128],[103.012976,33.110158],[103.013011,33.110179],[103.013046,33.110188],[103.013076,33.11019],[103.013119,33.110184],[103.013163,33.110173],[103.013213,33.110147],[103.013263,33.110121],[103.013321,33.110092],[103.013499,33.110002],[103.013621,33.110004],[103.014019,33.11001],[103.014171,33.110012],[103.014503,33.110238],[103.01452,33.110348],[103.01456,33.110604],[103.014577,33.110714],[103.014617,33.110722],[103.01463,33.110731],[103.014637,33.110752],[103.014632,33.110773],[103.014622,33.110794],[103.014613,33.110827],[103.014606,33.110852],[103.014608,33.110882],[103.014616,33.110908],[103.014622,33.11093],[103.014623,33.11095],[103.014608,33.11097],[103.014606,33.110971],[103.01461,33.111045],[103.014627,33.111373],[103.014501,33.112],[103.014595,33.112058],[103.014631,33.112079],[103.014639,33.112084],[103.01468,33.112056],[103.014699,33.112052],[103.01473,33.112067],[103.01474,33.112083],[103.014753,33.112105],[103.01476,33.112128],[103.014799,33.112181],[103.014803,33.11219],[103.01483,33.112213],[103.014869,33.112235],[103.014891,33.112254],[103.0149,33.112265],[103.014899,33.112282],[103.014883,33.112291],[103.014869,33.112315],[103.01487,33.112339],[103.014885,33.112356],[103.014915,33.112368],[103.014983,33.11238],[103.015029,33.112371],[103.015072,33.112441],[103.015159,33.112584],[103.015171,33.112604],[103.015233,33.112705],[103.015147,33.113207],[103.015495,33.113537],[103.015586,33.113623],[103.015586,33.113623],[103.015607,33.113647],[103.015956,33.114065],[103.015987,33.114101],[103.016025,33.114142],[103.016091,33.114214],[103.016252,33.114387],[103.016462,33.114613],[103.016481,33.114728],[103.016576,33.115299],[103.016578,33.115309],[103.016582,33.115332],[103.016593,33.115402],[103.016594,33.115406],[103.016597,33.115423],[103.016625,33.115571],[103.016629,33.115591],[103.016629,33.115595],[103.016641,33.115655],[103.016642,33.11566],[103.016644,33.115674],[103.016688,33.11591],[103.016692,33.115932],[103.016736,33.116165],[103.01674,33.116186],[103.016794,33.116475],[103.017154,33.116731],[103.017179,33.116749],[103.017276,33.116817],[103.017298,33.116833],[103.017383,33.116893],[103.017663,33.116975],[103.017705,33.116953],[103.017729,33.116943],[103.017775,33.11694],[103.017807,33.116952],[103.01784,33.116968],[103.01788,33.116993],[103.017896,33.117014],[103.01791,33.117046],[103.018059,33.11709],[103.018113,33.117106],[103.018131,33.117111],[103.018339,33.117171],[103.018373,33.117162],[103.01848,33.11713],[103.018576,33.117134],[103.018644,33.117219],[103.018717,33.117248],[103.018781,33.117259],[103.01886,33.117251],[103.018922,33.117232],[103.018993,33.117217],[103.019029,33.117227],[103.019063,33.117257],[103.01909,33.117324],[103.019136,33.117383],[103.019171,33.117423],[103.019227,33.117455],[103.019271,33.117467],[103.01934,33.117468],[103.01941,33.117467],[103.019487,33.117487],[103.019513,33.1175],[103.019526,33.117542],[103.019522,33.117614],[103.019517,33.117658],[103.019664,33.117741],[103.019643,33.117793],[103.019632,33.117834],[103.019632,33.117883],[103.019655,33.117933],[103.019679,33.11796],[103.01971,33.117963],[103.019749,33.117945],[103.019803,33.117915],[103.01985,33.117903],[103.019911,33.117897],[103.019928,33.117944],[103.019958,33.118024],[103.019978,33.118007],[103.019996,33.11798],[103.020016,33.117962],[103.020043,33.117953],[103.020088,33.11795],[103.020128,33.117959],[103.020157,33.117976],[103.02019,33.117999],[103.020206,33.118021],[103.020221,33.118044],[103.020234,33.11808],[103.020226,33.118118],[103.020222,33.118142],[103.020238,33.118171],[103.02026,33.118182],[103.020298,33.118188],[103.020332,33.118208],[103.020321,33.118223],[103.020284,33.118238],[103.020264,33.11825],[103.020241,33.118255],[103.020212,33.118261],[103.020172,33.118265],[103.020138,33.11826],[103.020111,33.118242],[103.020092,33.118216],[103.020085,33.11819],[103.020078,33.118171],[103.020058,33.118124],[103.02004,33.118113],[103.020011,33.1181],[103.019985,33.118097],[103.020003,33.118145],[103.020047,33.118264],[103.020116,33.118448],[103.020461,33.118531],[103.020674,33.118582],[103.021023,33.118707],[103.021082,33.118727],[103.02123,33.11878],[103.021264,33.118818],[103.021668,33.119259],[103.021699,33.119563],[103.021709,33.119658],[103.021755,33.119696],[103.021771,33.119717],[103.0218,33.119749],[103.021803,33.119782],[103.021798,33.119809],[103.02179,33.119836],[103.021779,33.119871],[103.02177,33.119906],[103.021761,33.119946],[103.02174,33.119989],[103.021719,33.120008],[103.021712,33.120032],[103.021712,33.120054],[103.021732,33.120073],[103.021747,33.120079],[103.02175,33.120118],[103.02175,33.120128],[103.021751,33.120141],[103.021759,33.120236],[103.021818,33.120291],[103.021938,33.120401],[103.022415,33.120837],[103.022528,33.120941],[103.022644,33.121014],[103.022688,33.121041],[103.022719,33.12106],[103.022731,33.121077],[103.022764,33.121121],[103.022797,33.121165],[103.022819,33.121194],[103.022852,33.121206],[103.022891,33.121212],[103.023045,33.121264],[103.023128,33.121265],[103.023429,33.12127],[103.023567,33.121273],[103.023582,33.121267],[103.023599,33.121261],[103.023618,33.121256],[103.023699,33.121247],[103.023802,33.121254],[103.023859,33.121263],[103.024107,33.121217],[103.024118,33.121215],[103.024267,33.121187],[103.024305,33.121197],[103.024323,33.121202],[103.024347,33.121204],[103.024391,33.121216],[103.024421,33.121228],[103.024436,33.121242],[103.024437,33.121252],[103.024436,33.121282],[103.024428,33.121298],[103.024411,33.121327],[103.024412,33.121345],[103.024417,33.121366],[103.024447,33.12138],[103.024487,33.121386],[103.024533,33.121385],[103.024584,33.121375],[103.024615,33.121359],[103.024641,33.121332],[103.024656,33.121303],[103.024667,33.12127],[103.024676,33.121243],[103.02469,33.121208],[103.024697,33.121179],[103.024707,33.12115],[103.024712,33.121132],[103.024706,33.121106],[103.024694,33.121069],[103.024691,33.121055],[103.024673,33.121016],[103.024667,33.120986],[103.024668,33.120965],[103.024707,33.120954],[103.024752,33.120978],[103.024784,33.121002],[103.02483,33.121043],[103.024841,33.12108],[103.024842,33.1211],[103.024838,33.12112],[103.024832,33.121139],[103.024827,33.121157],[103.024818,33.121179],[103.02481,33.1212],[103.02481,33.12122],[103.024813,33.121242],[103.024828,33.121258],[103.024857,33.121269],[103.024913,33.12128],[103.024953,33.12128],[103.024998,33.121276],[103.025021,33.121267],[103.025046,33.121243],[103.025058,33.121226],[103.025074,33.121189],[103.025083,33.121166],[103.02508,33.121149],[103.025077,33.121132],[103.025074,33.121114],[103.02507,33.121097],[103.025068,33.12108],[103.025069,33.12106],[103.025233,33.121048],[103.025968,33.120996],[103.026047,33.121012],[103.027122,33.121234],[103.027291,33.121322],[103.027936,33.121656],[103.028157,33.122108],[103.028165,33.122123],[103.028195,33.122184],[103.028227,33.12225],[103.028294,33.122386],[103.028276,33.123172],[103.028262,33.123248],[103.02826,33.123263],[103.028233,33.123408],[103.028224,33.123457],[103.028215,33.123508],[103.028197,33.12361],[103.028191,33.123643],[103.02828,33.123744],[103.028341,33.123746],[103.028413,33.123757],[103.028481,33.123776],[103.028525,33.123794],[103.028573,33.123817],[103.028609,33.123843],[103.028641,33.123869],[103.028654,33.123896],[103.028675,33.123929],[103.028697,33.123947],[103.028743,33.123974],[103.028931,33.124001],[103.029399,33.123982],[103.029492,33.123979],[103.029903,33.124017],[103.030231,33.124303],[103.030184,33.124324],[103.030172,33.124341],[103.03015,33.12438],[103.03015,33.124395],[103.030169,33.124422],[103.030176,33.124426],[103.0302,33.124441],[103.030236,33.124452],[103.030261,33.124464],[103.030276,33.12446],[103.030311,33.124589],[103.030332,33.124666],[103.030344,33.124711],[103.030371,33.124811],[103.030514,33.125128],[103.030848,33.125228],[103.031089,33.125104],[103.031158,33.125069],[103.031265,33.125014],[103.031688,33.124485],[103.032065,33.124366],[103.032677,33.124505],[103.032726,33.124516],[103.032809,33.124535],[103.032961,33.124553],[103.033704,33.124643],[103.034095,33.12459],[103.034243,33.12457],[103.034517,33.124532],[103.034525,33.124553],[103.034536,33.124568],[103.034593,33.124613],[103.034631,33.124633],[103.034661,33.124638],[103.034692,33.124636],[103.034729,33.124615],[103.034762,33.124594],[103.034789,33.124577],[103.034813,33.124572],[103.034847,33.124581],[103.034875,33.124596],[103.034905,33.124603],[103.034955,33.1246],[103.034989,33.124583],[103.035013,33.124569],[103.035031,33.124554],[103.035045,33.124538],[103.035058,33.124523],[103.03507,33.124501],[103.03508,33.124475],[103.035076,33.124449],[103.035065,33.124432],[103.035036,33.124404],[103.035004,33.124382],[103.034983,33.124362],[103.034979,33.124341],[103.034987,33.12433],[103.035002,33.124321],[103.035036,33.124313],[103.03506,33.124312],[103.035083,33.124318],[103.035103,33.124328],[103.035114,33.124342],[103.035128,33.124365],[103.03514,33.124393],[103.035152,33.12442],[103.035161,33.124444],[103.035171,33.124467],[103.035184,33.124484],[103.035197,33.124492],[103.035224,33.124505],[103.035254,33.124513],[103.035282,33.124514],[103.035358,33.124509],[103.035388,33.124499],[103.035418,33.124485],[103.035435,33.12447],[103.035452,33.124452],[103.035468,33.124439],[103.03549,33.124428],[103.035528,33.124416],[103.035556,33.124417],[103.035585,33.124433],[103.035582,33.12446],[103.035569,33.124475],[103.035554,33.12448],[103.035521,33.124498],[103.035506,33.124507],[103.035488,33.124515],[103.035468,33.124537],[103.035457,33.124556],[103.03545,33.124578],[103.035469,33.124601],[103.035495,33.124618],[103.035524,33.124635],[103.0356,33.124646],[103.035688,33.124632],[103.035736,33.124615],[103.035986,33.124648],[103.036034,33.124659],[103.036544,33.124782],[103.037105,33.12476],[103.037527,33.124326],[103.037817,33.124189],[103.03798,33.124113],[103.038271,33.124135],[103.038306,33.124154],[103.038333,33.124163],[103.038373,33.124166],[103.038415,33.124173],[103.038444,33.124185],[103.038464,33.124202],[103.038484,33.124223],[103.038517,33.124245],[103.038539,33.124276],[103.038553,33.12431],[103.038555,33.124333],[103.038546,33.124362],[103.038518,33.124381],[103.038501,33.124398],[103.038481,33.124411],[103.038436,33.124434],[103.038411,33.124474],[103.038413,33.124513],[103.038425,33.124551],[103.038448,33.124571],[103.038513,33.124587],[103.038555,33.124586],[103.038605,33.124583],[103.038675,33.124583],[103.038688,33.124588],[103.0387,33.12462],[103.038692,33.124676],[103.03867,33.124712],[103.038656,33.124758],[103.038661,33.124809],[103.038684,33.124856],[103.038519,33.125097],[103.038596,33.125186],[103.038802,33.125427],[103.038847,33.12548],[103.038988,33.125489],[103.039482,33.125521],[103.039545,33.125507],[103.040122,33.125374],[103.040426,33.125425],[103.040679,33.125468],[103.040783,33.125486],[103.040853,33.125498],[103.040882,33.125522],[103.040899,33.125528],[103.040928,33.125534],[103.040956,33.125543],[103.040983,33.125552],[103.041059,33.125596],[103.041078,33.12561],[103.041119,33.125639],[103.041149,33.12566],[103.041236,33.125722],[103.041531,33.125931],[103.041659,33.126276],[103.041739,33.126492],[103.041742,33.126501],[103.041752,33.126598],[103.041773,33.126816],[103.042328,33.127077],[103.04289,33.127023],[103.043303,33.126866],[103.043569,33.126765],[103.043607,33.126751],[103.044159,33.126667],[103.044217,33.126658],[103.044232,33.126656],[103.044241,33.126667],[103.044264,33.126685],[103.044317,33.1267],[103.044374,33.12671],[103.04443,33.126712],[103.044487,33.126698],[103.044542,33.126679],[103.044581,33.126657],[103.044608,33.126639],[103.044652,33.126598],[103.044706,33.126591],[103.044869,33.12657],[103.045201,33.126527],[103.045221,33.126524],[103.045236,33.126522],[103.045671,33.126437],[103.046265,33.126666],[103.04653,33.126727],[103.047009,33.126836],[103.04773,33.126817],[103.047767,33.126806],[103.047826,33.12679],[103.047852,33.126782],[103.047872,33.126786],[103.048322,33.126667],[103.048922,33.126582],[103.048939,33.126581],[103.049416,33.126555],[103.049724,33.126539],[103.049737,33.126538],[103.049821,33.126533],[103.05046,33.126324],[103.051291,33.126053],[103.052377,33.125975],[103.053574,33.125963],[103.054513,33.12582],[103.055303,33.125741],[103.055351,33.125736],[103.0556,33.125711],[103.05683,33.12561],[103.057211,33.125579],[103.058862,33.125353],[103.06006,33.125308],[103.061785,33.125115],[103.062842,33.125031],[103.063434,33.124983],[103.064328,33.125155],[103.065495,33.128226],[103.065744,33.128796],[103.066639,33.128904],[103.067463,33.128854],[103.069706,33.128952],[103.070755,33.128874],[103.072174,33.12899],[103.073453,33.130363],[103.073888,33.131056],[103.073944,33.131144],[103.074176,33.131514],[103.074196,33.131545],[103.074197,33.131547],[103.074212,33.131571],[103.074849,33.133249],[103.074696,33.133199],[103.074522,33.1332],[103.074424,33.133219],[103.074404,33.133266],[103.074413,33.133348],[103.074453,33.133441],[103.074526,33.133497],[103.07465,33.13355],[103.07474,33.13361],[103.074899,33.133736],[103.074911,33.133848],[103.075345,33.134516],[103.075937,33.13484],[103.078205,33.135473],[103.080146,33.135692],[103.081307,33.135615],[103.082047,33.135973],[103.082068,33.135976],[103.082831,33.136079],[103.083459,33.136435],[103.083375,33.136533],[103.083405,33.136675],[103.083504,33.136861],[103.083655,33.137189],[103.083754,33.137388],[103.083836,33.137593],[103.083871,33.137692],[103.083958,33.137849],[103.084016,33.137963],[103.084086,33.138087],[103.084166,33.138143],[103.084226,33.138185],[103.084857,33.139622],[103.085072,33.140113],[103.085129,33.140151],[103.085224,33.140233],[103.085315,33.140379],[103.085354,33.14045],[103.085389,33.140536],[103.085421,33.140686],[103.085444,33.140803],[103.085465,33.141064],[103.085475,33.141297],[103.085472,33.141386],[103.085452,33.141455],[103.085415,33.141544],[103.085437,33.141634],[103.085523,33.141687],[103.085621,33.141764],[103.085691,33.14185],[103.085825,33.14194],[103.085881,33.142075],[103.08591,33.142201],[103.085918,33.142236],[103.08612,33.143117],[103.086857,33.144555],[103.086859,33.144561],[103.08696,33.144758],[103.087435,33.145684],[103.087456,33.145725],[103.08805,33.146885],[103.0884,33.146937],[103.088753,33.147005],[103.089233,33.147077],[103.089483,33.147159],[103.089447,33.147234],[103.089426,33.147278],[103.08918,33.147425],[103.089075,33.14754],[103.088967,33.147656],[103.088687,33.147881],[103.088571,33.147901],[103.088994,33.148728],[103.088996,33.148731],[103.089146,33.149024],[103.08933,33.149383],[103.089382,33.149484],[103.089539,33.14979],[103.089566,33.149843],[103.089882,33.150504],[103.090067,33.150889],[103.090161,33.15174],[103.090206,33.152182],[103.090263,33.152222],[103.090656,33.152496],[103.09081,33.152518],[103.090868,33.152624],[103.090998,33.152814],[103.091019,33.15284],[103.09107,33.152903],[103.091142,33.152998],[103.091137,33.153141],[103.091011,33.153279],[103.090636,33.153434],[103.090474,33.153492],[103.090573,33.153681],[103.090963,33.154428],[103.091088,33.154546],[103.09188,33.155292],[103.092615,33.155869],[103.093157,33.15679],[103.093466,33.157091],[103.093816,33.15743],[103.093868,33.157689],[103.093918,33.157935],[103.093917,33.157965],[103.093906,33.158476],[103.093905,33.158502],[103.093633,33.159001],[103.093483,33.159257],[103.09305,33.159999],[103.092612,33.160511],[103.09225,33.160935],[103.091754,33.161517],[103.09159,33.161708],[103.09157,33.162652],[103.091701,33.163844],[103.091756,33.164341],[103.091772,33.164486],[103.091883,33.165497],[103.091888,33.165537],[103.09182,33.1656],[103.091591,33.165584],[103.091443,33.165639],[103.091433,33.165645],[103.09152,33.165732],[103.091714,33.165909],[103.091808,33.166057],[103.091888,33.166253],[103.092005,33.166424],[103.092069,33.166813],[103.09211,33.167067],[103.092237,33.168139],[103.093096,33.169946],[103.093294,33.170724],[103.093337,33.170894],[103.09339,33.171894],[103.09339,33.171902],[103.093389,33.172164],[103.093385,33.172831],[103.093383,33.173386],[103.093379,33.174136],[103.093372,33.174438],[103.093362,33.174923],[103.093373,33.175038],[103.093422,33.175514],[103.093454,33.175837],[103.093441,33.175994],[103.093354,33.177032],[103.093047,33.17776],[103.092959,33.17797],[103.092198,33.178525],[103.091267,33.179046],[103.090721,33.179352],[103.090478,33.179431],[103.088874,33.179953],[103.087701,33.180367],[103.087594,33.180405],[103.087304,33.180507],[103.087252,33.180526],[103.086823,33.180677],[103.08563,33.181099],[103.085248,33.181439],[103.085214,33.181739],[103.085211,33.181768],[103.085202,33.181848],[103.085297,33.182636],[103.085289,33.182678],[103.085324,33.182877],[103.08527,33.183026],[103.085192,33.183183],[103.08519,33.183189],[103.08515,33.183397],[103.08506,33.183867],[103.085001,33.184174],[103.084871,33.18499],[103.084533,33.185342],[103.084335,33.185548],[103.083301,33.186533],[103.082806,33.187004],[103.082559,33.187315],[103.08246,33.187439],[103.082395,33.187642],[103.082383,33.187679],[103.082203,33.188242],[103.082092,33.188588],[103.082058,33.188692],[103.082014,33.188936],[103.081956,33.189255],[103.081952,33.189281],[103.081888,33.189634],[103.081577,33.190154],[103.081422,33.190414],[103.080772,33.191033],[103.080742,33.191309],[103.080725,33.191473],[103.080745,33.191523],[103.080751,33.191537],[103.080823,33.191713],[103.080836,33.191745],[103.08084,33.191756],[103.080867,33.191821],[103.081351,33.191955],[103.081721,33.191943],[103.081886,33.191938],[103.081899,33.191938],[103.081958,33.191902],[103.082066,33.19181],[103.082112,33.191757],[103.082329,33.19159],[103.082392,33.191547],[103.082398,33.191543],[103.082451,33.191505],[103.082488,33.191492],[103.082516,33.191495],[103.082555,33.191513],[103.082596,33.191542],[103.08263,33.191599],[103.082653,33.191658],[103.082677,33.191719],[103.082695,33.191768],[103.082716,33.191841],[103.082902,33.191816],[103.082976,33.191806],[103.083019,33.1918],[103.083076,33.191792],[103.083448,33.191924],[103.083553,33.19224],[103.082907,33.192671],[103.081883,33.19365],[103.081745,33.194453],[103.081953,33.194776],[103.08197,33.194802],[103.082122,33.195038],[103.082174,33.19506],[103.082217,33.195077],[103.082723,33.195284],[103.082857,33.195266],[103.082981,33.19525],[103.083076,33.195224],[103.083133,33.195194],[103.083142,33.195189],[103.083191,33.195164],[103.083254,33.195153],[103.08331,33.195161],[103.083358,33.195175],[103.083421,33.195206],[103.083501,33.195271],[103.083544,33.195327],[103.083584,33.19541],[103.083614,33.195485],[103.083626,33.195557],[103.083651,33.195652],[103.083755,33.195693],[103.083847,33.195835],[103.083875,33.195878],[103.083887,33.196067],[103.083859,33.196239],[103.083729,33.196406],[103.083663,33.196439],[103.083446,33.196549],[103.083383,33.196555],[103.083266,33.196556],[103.0831,33.196536],[103.082739,33.196522],[103.082591,33.196513],[103.082365,33.196522],[103.082357,33.196523],[103.08222,33.196539],[103.082137,33.196549],[103.081945,33.196573],[103.081785,33.196592],[103.081622,33.196605],[103.081491,33.196606],[103.081331,33.196609],[103.081241,33.1966],[103.081251,33.196628],[103.08127,33.196648],[103.081124,33.196732],[103.081085,33.196772],[103.080943,33.196909],[103.080742,33.197243],[103.080539,33.197582],[103.080587,33.198112],[103.080676,33.198268],[103.080688,33.19829],[103.080789,33.198467],[103.080895,33.198517],[103.081137,33.19863],[103.081144,33.198634],[103.081234,33.198676],[103.081715,33.198582],[103.081888,33.198513],[103.082099,33.198428],[103.08244,33.198291],[103.082489,33.198296],[103.082555,33.198217],[103.08262,33.198143],[103.082697,33.198082],[103.082699,33.198079],[103.082786,33.198074],[103.082865,33.19809],[103.082921,33.198124],[103.082945,33.19817],[103.082961,33.19822],[103.082971,33.198278],[103.082963,33.198341],[103.083068,33.198351],[103.083177,33.198456],[103.083157,33.198507],[103.08312,33.198664],[103.083084,33.198775],[103.083059,33.198872],[103.083042,33.198998],[103.083035,33.199121],[103.083008,33.199311],[103.083005,33.199443],[103.083003,33.199518],[103.082924,33.199781],[103.082907,33.199878],[103.082892,33.199956],[103.082862,33.199997],[103.082788,33.200041],[103.082741,33.20011],[103.082688,33.200272],[103.082583,33.200607],[103.082499,33.200811],[103.082465,33.200898],[103.082445,33.200929],[103.082419,33.200969],[103.082386,33.201009],[103.082332,33.201038],[103.08222,33.201098],[103.082175,33.20115],[103.082164,33.201173],[103.082127,33.201252],[103.082114,33.201326],[103.082113,33.201417],[103.082133,33.201491],[103.082138,33.201509],[103.082184,33.201616],[103.082276,33.20179],[103.082301,33.201884],[103.082302,33.201969],[103.082285,33.202088],[103.082246,33.202247],[103.0822,33.202403],[103.082153,33.202553],[103.082127,33.202666],[103.082116,33.202755],[103.082113,33.202857],[103.082111,33.202899],[103.082112,33.203],[103.082119,33.203097],[103.082164,33.203194],[103.082263,33.203352],[103.082379,33.203491],[103.082453,33.203514],[103.082527,33.203537],[103.082759,33.203546],[103.082942,33.20351],[103.083046,33.203846],[103.083152,33.204185],[103.083178,33.20427],[103.083508,33.204275],[103.084149,33.203898],[103.084175,33.203883],[103.084268,33.203856],[103.08441,33.203814],[103.084467,33.203797],[103.084665,33.203739],[103.084748,33.203715],[103.08492,33.204071],[103.084919,33.204119],[103.084809,33.204158],[103.084768,33.204206],[103.084741,33.204302],[103.08475,33.204377],[103.084751,33.204513],[103.084662,33.204581],[103.084546,33.204601],[103.084496,33.204653],[103.084471,33.20473],[103.084434,33.204851],[103.084458,33.204939],[103.084369,33.205068],[103.08418,33.20523],[103.083937,33.2055],[103.083681,33.205639],[103.083577,33.205667],[103.083534,33.205638],[103.083541,33.20545],[103.083512,33.205459],[103.083355,33.205349],[103.083251,33.205276],[103.083043,33.20513],[103.082716,33.2049],[103.082598,33.204817],[103.082133,33.204598],[103.082023,33.205058],[103.082209,33.20634],[103.082276,33.206795],[103.082283,33.20685],[103.082431,33.207171],[103.082703,33.207763],[103.083185,33.20825],[103.083445,33.208513],[103.083783,33.208807],[103.0838,33.208759],[103.083913,33.208796],[103.084071,33.208828],[103.084195,33.208844],[103.084357,33.20886],[103.084457,33.208862],[103.084523,33.208973],[103.084538,33.209077],[103.084512,33.209245],[103.084455,33.209414],[103.084403,33.209471],[103.084466,33.209557],[103.0845,33.209603],[103.084356,33.209695],[103.084287,33.209739],[103.084253,33.209761],[103.084202,33.209769],[103.084099,33.209766],[103.083986,33.209752],[103.083821,33.209821],[103.083671,33.209884],[103.083589,33.209832],[103.083535,33.209788],[103.08346,33.209738],[103.083403,33.209732],[103.083301,33.209763],[103.083195,33.209848],[103.083094,33.209968],[103.082996,33.210085],[103.082863,33.210232],[103.082793,33.210313],[103.082724,33.210421],[103.082694,33.210516],[103.082618,33.210733],[103.082548,33.211232],[103.082421,33.211445],[103.082177,33.21175],[103.082181,33.211758],[103.082168,33.211786],[103.082143,33.211857],[103.082129,33.211944],[103.082133,33.212066],[103.082149,33.212129],[103.082156,33.212156],[103.082211,33.21222],[103.082311,33.212262],[103.082484,33.212292],[103.082946,33.212355],[103.083309,33.212205],[103.08364,33.212147],[103.08384,33.212116],[103.084106,33.211842],[103.084296,33.211648],[103.084646,33.211327],[103.084655,33.211319],[103.084809,33.211178],[103.085233,33.21079],[103.085705,33.211133],[103.085768,33.21129],[103.085838,33.211467],[103.085894,33.211606],[103.085928,33.211682],[103.085923,33.211687],[103.085892,33.211741],[103.085868,33.211806],[103.085862,33.21189],[103.085868,33.211953],[103.085904,33.21204],[103.085956,33.212135],[103.086012,33.212196],[103.086132,33.212289],[103.08628,33.212369],[103.086416,33.212429],[103.086487,33.212438],[103.086579,33.212419],[103.086675,33.212388],[103.086749,33.21234],[103.086809,33.212274],[103.086863,33.212205],[103.086918,33.212132],[103.086974,33.212107],[103.087082,33.21206],[103.087138,33.212024],[103.087409,33.211845],[103.087483,33.211797],[103.088134,33.211368],[103.088166,33.211322],[103.088214,33.211253],[103.088284,33.211175],[103.088358,33.211118],[103.088428,33.211072],[103.088509,33.211018],[103.088594,33.210987],[103.088654,33.210987],[103.088718,33.211004],[103.0888,33.211058],[103.089103,33.21095],[103.08945,33.211051],[103.089505,33.211067],[103.089515,33.21107],[103.08963,33.211104],[103.089752,33.211139],[103.089768,33.211352],[103.089793,33.211677],[103.089357,33.212118],[103.089001,33.212424],[103.088595,33.212772],[103.088567,33.212796],[103.088552,33.212809],[103.088538,33.212821],[103.088515,33.212841],[103.088435,33.212909],[103.088319,33.213355],[103.088362,33.213803],[103.088473,33.213777],[103.088578,33.213753],[103.088595,33.213749],[103.088854,33.213688],[103.088898,33.213677],[103.089024,33.213628],[103.089207,33.213476],[103.089281,33.213397],[103.089287,33.213362],[103.08933,33.213327],[103.089548,33.21315],[103.089597,33.213132],[103.089609,33.213127],[103.089959,33.212995],[103.090418,33.212822],[103.090461,33.212806],[103.09061,33.21291],[103.090615,33.212914],[103.090723,33.212989],[103.090518,33.213398],[103.090501,33.213433],[103.090215,33.213892],[103.090059,33.214143],[103.090069,33.214208],[103.090071,33.214221],[103.090102,33.214434],[103.090105,33.214456],[103.090846,33.214692],[103.091044,33.214685],[103.091067,33.214685],[103.091566,33.214668],[103.091568,33.214682],[103.091641,33.215074],[103.091658,33.215388],[103.091622,33.215637],[103.091606,33.215711],[103.091756,33.215721],[103.091844,33.216224],[103.091862,33.216351],[103.091967,33.217109],[103.09238,33.217454],[103.092421,33.217488],[103.092437,33.217502],[103.092636,33.217668],[103.092713,33.217735],[103.092743,33.217743],[103.0928,33.21776],[103.092896,33.217811],[103.092979,33.217875],[103.093082,33.217944],[103.093176,33.218056],[103.093206,33.218121],[103.093223,33.218182],[103.093224,33.218229],[103.093224,33.218296],[103.093214,33.218354],[103.093201,33.218384],[103.093205,33.218526],[103.09321,33.218703],[103.092939,33.219019],[103.092929,33.219031],[103.092482,33.219551],[103.092484,33.219643],[103.092484,33.219656],[103.09249,33.219883],[103.092495,33.220173],[103.092511,33.220188],[103.09257,33.220251],[103.092636,33.220322],[103.092932,33.220641],[103.092978,33.220654],[103.093031,33.220665],[103.093087,33.220684],[103.093155,33.220711],[103.093251,33.220765],[103.093483,33.220904],[103.093548,33.220946],[103.093591,33.220984],[103.093632,33.22102],[103.093642,33.221031],[103.093765,33.221058],[103.094547,33.22123],[103.095763,33.221463],[103.096141,33.221538],[103.096285,33.221519],[103.096425,33.22151],[103.096561,33.221496],[103.09672,33.221477],[103.096929,33.221462],[103.096986,33.221467],[103.097043,33.221491],[103.097086,33.221531],[103.097135,33.221597],[103.09716,33.221682],[103.097175,33.221786],[103.097163,33.221866],[103.097342,33.221965],[103.097471,33.222561],[103.097457,33.222587],[103.0971,33.223158],[103.096815,33.223719],[103.096935,33.224042],[103.096969,33.22413],[103.09709,33.224442],[103.097097,33.224505],[103.097104,33.224577],[103.09712,33.224732],[103.096991,33.224807],[103.096842,33.224777],[103.096861,33.224728],[103.096861,33.224691],[103.096851,33.224655],[103.09679,33.224609],[103.096716,33.224561],[103.096663,33.224547],[103.096632,33.224553],[103.096611,33.224584],[103.096581,33.22463],[103.096538,33.22466],[103.096477,33.224672],[103.09609,33.224472],[103.096048,33.224451],[103.09594,33.224397],[103.095932,33.224394],[103.095875,33.224422],[103.095818,33.22444],[103.09572,33.224456],[103.095604,33.224454],[103.095539,33.224448],[103.095476,33.224429],[103.09542,33.224401],[103.095369,33.224345],[103.09537,33.224363],[103.095378,33.224614],[103.095442,33.225012],[103.095644,33.225207],[103.09578,33.225338],[103.095913,33.225464],[103.095934,33.225483],[103.096224,33.225756],[103.096264,33.225744],[103.096297,33.22573],[103.096315,33.225718],[103.096334,33.225706],[103.096384,33.22567],[103.096491,33.225626],[103.096537,33.225627],[103.0966,33.225634],[103.096638,33.225651],[103.096667,33.225676],[103.096691,33.225713],[103.096719,33.225773],[103.096734,33.225832],[103.096735,33.225903],[103.096725,33.225978],[103.096709,33.226027],[103.09669,33.226065],[103.096745,33.226101],[103.096919,33.226408],[103.09683,33.226647],[103.096784,33.226809],[103.096704,33.226972],[103.096666,33.227085],[103.096622,33.227148],[103.096586,33.227188],[103.096527,33.227243],[103.096425,33.2273],[103.096347,33.227339],[103.096229,33.227373],[103.096149,33.227384],[103.096029,33.227385],[103.095937,33.227377],[103.095831,33.227359],[103.095741,33.227323],[103.095695,33.2273],[103.095665,33.227304],[103.095555,33.22732],[103.095094,33.227619],[103.095262,33.22781],[103.095272,33.22782],[103.095649,33.228009],[103.095724,33.228028],[103.095804,33.228019],[103.095927,33.228014],[103.096073,33.228025],[103.096131,33.228036],[103.096223,33.228053],[103.096376,33.228103],[103.096436,33.228135],[103.096444,33.228134],[103.096628,33.228131],[103.096658,33.228128],[103.096794,33.228165],[103.097034,33.228201],[103.097134,33.2282],[103.097209,33.228193],[103.097287,33.228165],[103.097357,33.228118],[103.097421,33.228052],[103.097723,33.228063],[103.097757,33.228052],[103.097831,33.228048],[103.097926,33.228043],[103.098002,33.228044],[103.098058,33.228058],[103.098091,33.228076],[103.098138,33.228078],[103.098486,33.228197],[103.098532,33.228213],[103.098932,33.22835],[103.099295,33.228594],[103.099292,33.228707],[103.099287,33.228849],[103.099295,33.228928],[103.099287,33.229126],[103.099325,33.22928],[103.099552,33.229709],[103.099744,33.230109],[103.100051,33.230478],[103.100121,33.230493],[103.100202,33.23052],[103.100289,33.230561],[103.100326,33.230579],[103.100366,33.230599],[103.100409,33.230632],[103.100463,33.230692],[103.100528,33.230765],[103.100568,33.230821],[103.100579,33.230837],[103.100614,33.230895],[103.100655,33.230996],[103.100684,33.231063],[103.100689,33.231081],[103.100689,33.231104],[103.100688,33.231119],[103.100718,33.231151],[103.10072,33.231157],[103.100749,33.231288],[103.100771,33.231443],[103.100749,33.231626],[103.10069,33.231778],[103.100632,33.23193],[103.100545,33.232049],[103.100442,33.232165],[103.100277,33.232264],[103.100119,33.232345],[103.099925,33.232418],[103.099787,33.232437],[103.099344,33.232369],[103.099155,33.23234],[103.098956,33.232232],[103.098755,33.232122],[103.098728,33.232107],[103.098594,33.232107],[103.098442,33.232104],[103.09829,33.232067],[103.098153,33.232022],[103.098016,33.231963],[103.097934,33.231907],[103.0979,33.231872],[103.097881,33.231868],[103.097324,33.231742],[103.097318,33.23174],[103.097265,33.231699],[103.09715,33.231639],[103.096787,33.231478],[103.09662,33.231412],[103.096522,33.231383],[103.09642,33.231365],[103.096359,33.231365],[103.096214,33.231302],[103.095845,33.231263],[103.095799,33.231303],[103.095737,33.231346],[103.095626,33.23137],[103.09555,33.231379],[103.095468,33.231383],[103.095388,33.231375],[103.09527,33.231347],[103.095188,33.231414],[103.095121,33.231468],[103.095046,33.231529],[103.094911,33.231893],[103.094936,33.232413],[103.095287,33.232969],[103.095344,33.233096],[103.095505,33.233459],[103.095547,33.233553],[103.095446,33.233682],[103.095427,33.233831],[103.095392,33.233918],[103.095369,33.233996],[103.095327,33.234115],[103.095307,33.234211],[103.095288,33.234339],[103.095314,33.234396],[103.095291,33.234466],[103.095281,33.234628],[103.095263,33.234939],[103.095433,33.235172],[103.095446,33.235188],[103.095601,33.235402],[103.095648,33.235405],[103.095684,33.235412],[103.095766,33.235437],[103.095816,33.235462],[103.095876,33.235499],[103.095926,33.235521],[103.095945,33.235528],[103.095987,33.235544],[103.096051,33.235563],[103.096155,33.235592],[103.096252,33.235624],[103.096329,33.235652],[103.096461,33.235733],[103.09651,33.235776],[103.09656,33.235827],[103.09677,33.235863],[103.096823,33.235886],[103.097226,33.236057],[103.097256,33.236069],[103.097298,33.236126],[103.097415,33.236286],[103.097153,33.236633],[103.096642,33.23702],[103.09658,33.237067],[103.096548,33.237115],[103.096541,33.237126],[103.096373,33.237385],[103.09642,33.23759],[103.096439,33.237676],[103.096569,33.23777],[103.096656,33.23776],[103.096791,33.237769],[103.096885,33.237802],[103.096928,33.237856],[103.096977,33.237861],[103.097072,33.237869],[103.097192,33.237772],[103.09722,33.237749],[103.097479,33.237539],[103.09754,33.237492],[103.09764,33.237417],[103.098183,33.237006],[103.09831,33.23691],[103.098607,33.236733],[103.098702,33.236676],[103.09891,33.236552],[103.099157,33.236404],[103.099791,33.236551],[103.100005,33.236738],[103.100003,33.237054],[103.099892,33.237211],[103.099339,33.237771],[103.09873,33.238018],[103.098694,33.238166],[103.098626,33.238444],[103.098623,33.238457],[103.098599,33.238467],[103.098535,33.238496],[103.098348,33.238579],[103.098347,33.238579],[103.098255,33.23862],[103.098144,33.238772],[103.09788,33.239134],[103.097791,33.239548],[103.097771,33.239638],[103.097739,33.239789],[103.097794,33.240092],[103.097852,33.240417],[103.097885,33.240519],[103.097887,33.240527],[103.098125,33.241276],[103.097955,33.241564],[103.097685,33.241568],[103.097427,33.241571],[103.097363,33.241517],[103.097327,33.241487],[103.097325,33.241485],[103.097318,33.241479],[103.096892,33.24112],[103.096243,33.240104],[103.096112,33.239932],[103.096064,33.239941],[103.095986,33.239892],[103.095795,33.239738],[103.095763,33.239739],[103.095589,33.239747],[103.095525,33.239749],[103.095508,33.23975],[103.095431,33.239753],[103.094674,33.240119],[103.09465,33.240131],[103.094604,33.240153],[103.094458,33.240168],[103.093711,33.240246],[103.093265,33.240223],[103.093203,33.24022],[103.093182,33.240235],[103.093065,33.240286],[103.092893,33.240343],[103.092764,33.240367],[103.092608,33.240354],[103.092525,33.240332],[103.092486,33.240345],[103.092473,33.24035],[103.092267,33.240606],[103.092307,33.24074],[103.092327,33.240806],[103.092386,33.241005],[103.092683,33.241544],[103.093072,33.242039],[103.093301,33.242525],[103.093305,33.242533],[103.09342,33.242778],[103.093421,33.242783],[103.093453,33.242923],[103.093569,33.243437],[103.093523,33.24391],[103.093321,33.24409],[103.093037,33.244345],[103.092837,33.244526],[103.092437,33.244641],[103.092251,33.244694],[103.092233,33.2447],[103.091934,33.244669],[103.091544,33.244628],[103.090967,33.244466],[103.090912,33.244451],[103.0906,33.24443],[103.090583,33.244461],[103.090563,33.244491],[103.09053,33.244517],[103.090472,33.244538],[103.09038,33.244557],[103.090299,33.244561],[103.09025,33.244564],[103.090176,33.244558],[103.090102,33.244548],[103.090046,33.244537],[103.089991,33.244511],[103.089965,33.244502],[103.089934,33.244497],[103.089894,33.244499],[103.089852,33.2445],[103.089812,33.244501],[103.089776,33.244494],[103.089752,33.24448],[103.08974,33.244463],[103.08973,33.244436],[103.08942,33.244487],[103.089341,33.2445],[103.089328,33.244502],[103.08932,33.244508],[103.088878,33.244814],[103.088572,33.245025],[103.088561,33.245036],[103.088527,33.245073],[103.08848,33.245123],[103.088445,33.245086],[103.088406,33.245035],[103.088365,33.24502],[103.08834,33.245031],[103.088307,33.245079],[103.088296,33.24512],[103.088294,33.245131],[103.088296,33.245173],[103.088306,33.245224],[103.08834,33.245273],[103.08805,33.245582],[103.087851,33.245679],[103.087788,33.24571],[103.087607,33.245798],[103.087614,33.245824],[103.087593,33.24584],[103.087561,33.245853],[103.0875,33.245888],[103.087463,33.245911],[103.087416,33.245933],[103.087372,33.245959],[103.087356,33.245968],[103.087303,33.245946],[103.087076,33.246056],[103.087027,33.246056],[103.086943,33.246081],[103.086814,33.246122],[103.086683,33.246157],[103.086539,33.246182],[103.086428,33.246182],[103.0863,33.246182],[103.086194,33.24617],[103.086052,33.246147],[103.085975,33.246138],[103.085801,33.246174],[103.085379,33.246351],[103.084995,33.246483],[103.0845,33.246658],[103.084142,33.246792],[103.08395,33.246864],[103.083719,33.247186],[103.08376,33.247533],[103.083928,33.247652],[103.084217,33.247855],[103.084235,33.247868],[103.084261,33.247887],[103.085003,33.248306],[103.085645,33.248507],[103.085822,33.248563],[103.086052,33.248559],[103.086387,33.248554],[103.086477,33.248552],[103.086523,33.248548],[103.086823,33.24852],[103.087035,33.2485],[103.087184,33.248481],[103.087235,33.248413],[103.087267,33.248361],[103.087309,33.248372],[103.087344,33.248379],[103.087366,33.248406],[103.08738,33.248455],[103.087594,33.248427],[103.087619,33.248493],[103.087686,33.248673],[103.087685,33.248704],[103.087685,33.248725],[103.087673,33.249284],[103.087682,33.249314],[103.087619,33.249334],[103.087603,33.249357],[103.087608,33.24938],[103.087635,33.249395],[103.08767,33.249402],[103.087711,33.249408],[103.087783,33.249642],[103.087784,33.249646],[103.087786,33.249652],[103.088002,33.249757],[103.088269,33.249741],[103.088346,33.249678],[103.08859,33.249481],[103.088721,33.24935],[103.088728,33.249343],[103.088729,33.249343],[103.088816,33.249256],[103.088817,33.249256],[103.08883,33.249243],[103.089247,33.248829],[103.089358,33.248719],[103.089398,33.248706],[103.089704,33.248606],[103.089895,33.248544],[103.090329,33.248632],[103.090575,33.248813],[103.090608,33.248838],[103.090861,33.249024],[103.090882,33.24904],[103.090949,33.24909],[103.091106,33.249389],[103.091229,33.249624],[103.091336,33.25027],[103.091286,33.251084],[103.09112,33.251642],[103.091077,33.251787],[103.091058,33.252656],[103.091151,33.252795],[103.091204,33.252875],[103.091277,33.252985],[103.091881,33.253429],[103.092194,33.253895],[103.092359,33.254247],[103.092367,33.254264],[103.092421,33.254379],[103.092564,33.254652],[103.092666,33.254847],[103.092823,33.255148],[103.093182,33.255414],[103.093252,33.255466],[103.093575,33.255705],[103.093655,33.255764],[103.093717,33.255731],[103.093745,33.255719],[103.09378,33.255712],[103.093804,33.255707],[103.093842,33.255707],[103.093769,33.255827],[103.09397,33.255932],[103.094051,33.25584],[103.094098,33.255785],[103.094187,33.255693],[103.094362,33.255544],[103.09443,33.255476],[103.094524,33.255409],[103.0946,33.255361],[103.094616,33.255352],[103.09468,33.255315],[103.094766,33.255283],[103.094871,33.255247],[103.094972,33.255226],[103.095045,33.255226],[103.095123,33.255228],[103.095227,33.25524],[103.095352,33.255273],[103.095397,33.255293],[103.095583,33.255369],[103.095668,33.255422],[103.095859,33.255611],[103.095962,33.25579],[103.096067,33.256109],[103.096083,33.256266],[103.096084,33.256348],[103.096116,33.256321],[103.09613,33.256316],[103.09612,33.256447],[103.096106,33.256565],[103.096063,33.25668],[103.095973,33.25677],[103.095749,33.256918],[103.095601,33.257018],[103.095316,33.257127],[103.095308,33.257131],[103.095097,33.257227],[103.094745,33.25737],[103.094507,33.257493],[103.094269,33.257598],[103.093969,33.257731],[103.093603,33.257865],[103.093255,33.257948],[103.092908,33.258031],[103.092798,33.258069],[103.09266,33.258084],[103.092575,33.258079],[103.092446,33.258036],[103.092342,33.258003],[103.092166,33.257993],[103.092042,33.257998],[103.091923,33.258041],[103.091828,33.258122],[103.091771,33.258207],[103.091747,33.258283],[103.091747,33.258341],[103.091766,33.25845],[103.091818,33.25855],[103.091894,33.258645],[103.092037,33.258755],[103.092166,33.25884],[103.09242,33.258931],[103.092675,33.259021],[103.092922,33.259064],[103.09317,33.259107],[103.093376,33.259156],[103.093565,33.259202],[103.093674,33.25925],[103.093812,33.259383],[103.093826,33.259497],[103.093779,33.259654],[103.093712,33.259749],[103.093652,33.259806],[103.093617,33.25984],[103.09338,33.259992],[103.093143,33.260145],[103.092987,33.260256],[103.09273,33.260456],[103.092427,33.260606],[103.092123,33.260756],[103.091724,33.260863],[103.091395,33.260927],[103.091117,33.260963],[103.09071,33.260963],[103.090372,33.260906],[103.090034,33.260849],[103.089696,33.260792],[103.089368,33.260728],[103.089061,33.260728],[103.08879,33.260749],[103.088618,33.260813],[103.088404,33.260956],[103.088247,33.261134],[103.08814,33.261334],[103.088062,33.261513],[103.088056,33.261535],[103.087997,33.261763],[103.087933,33.261905],[103.087812,33.262034],[103.087633,33.26212],[103.087455,33.262198],[103.087284,33.262212],[103.087119,33.262184],[103.086955,33.262127],[103.086691,33.261948],[103.08657,33.261663],[103.086391,33.261256],[103.086353,33.261155],[103.086299,33.261013],[103.086227,33.26087],[103.08612,33.260713],[103.085992,33.260628],[103.085877,33.260628],[103.085706,33.260685],[103.085606,33.260792],[103.085492,33.26097],[103.085374,33.261234],[103.085256,33.261498],[103.085092,33.261841],[103.085006,33.262048],[103.084892,33.262277],[103.084749,33.262455],[103.084478,33.262683],[103.084307,33.262812],[103.084286,33.262825],[103.084086,33.262948],[103.083893,33.263147],[103.083857,33.263326],[103.0839,33.263483],[103.083979,33.263669],[103.084093,33.263861],[103.084378,33.264061],[103.084585,33.26414],[103.084807,33.264161],[103.084921,33.264154],[103.085006,33.264083],[103.085174,33.263865],[103.085342,33.263647],[103.085417,33.26354],[103.085485,33.263444],[103.085628,33.26324],[103.085742,33.263076],[103.08592,33.262876],[103.086199,33.262691],[103.086406,33.262612],[103.086527,33.262583],[103.08667,33.262576],[103.087019,33.262583],[103.087405,33.262683],[103.087562,33.262748],[103.087691,33.262833],[103.087862,33.263005],[103.087905,33.263083],[103.087927,33.263104],[103.088019,33.26319],[103.088147,33.263255],[103.088297,33.263276],[103.088454,33.263269],[103.088633,33.263219],[103.08879,33.263112],[103.088795,33.263107],[103.088897,33.263005],[103.088997,33.262762],[103.089061,33.262612],[103.089082,33.262491],[103.089111,33.262376],[103.089218,33.262277],[103.089397,33.262205],[103.089438,33.262195],[103.089539,33.262169],[103.089704,33.262169],[103.08982,33.262178],[103.090003,33.262191],[103.090253,33.262341],[103.090382,33.262519],[103.090467,33.262691],[103.090471,33.262696],[103.090537,33.262805],[103.090624,33.262948],[103.090717,33.263205],[103.090717,33.263387],[103.090717,33.263404],[103.090689,33.263547],[103.090574,33.263776],[103.090417,33.264054],[103.090324,33.264232],[103.09026,33.264354],[103.090068,33.264468],[103.089868,33.264568],[103.089642,33.264632],[103.089589,33.264646],[103.089254,33.264675],[103.088861,33.264704],[103.088497,33.264768],[103.088119,33.264961],[103.08793,33.2651],[103.08774,33.265239],[103.087405,33.265482],[103.087069,33.265724],[103.086827,33.265917],[103.086684,33.26611],[103.08667,33.266267],[103.086677,33.266374],[103.086741,33.266502],[103.086884,33.266688],[103.087066,33.266984],[103.087248,33.267281],[103.087298,33.267566],[103.087434,33.267894],[103.087619,33.268173],[103.087876,33.268423],[103.088112,33.268608],[103.088362,33.26874],[103.088611,33.268872],[103.088875,33.268922],[103.089268,33.268894],[103.089561,33.268822],[103.089961,33.268808],[103.090332,33.268808],[103.090374,33.26881],[103.090564,33.268819],[103.090796,33.26883],[103.091106,33.26888],[103.091417,33.26893],[103.091595,33.268979],[103.091874,33.269101],[103.091945,33.269186],[103.091995,33.269308],[103.091999,33.269389],[103.092002,33.269458],[103.091959,33.269743],[103.091902,33.270022],[103.091816,33.270222],[103.091652,33.270414],[103.091445,33.270564],[103.091231,33.2707],[103.090931,33.270857],[103.09066,33.270971],[103.090389,33.271085],[103.090091,33.271221],[103.089794,33.271357],[103.089497,33.271492],[103.089254,33.271671],[103.08904,33.271871],[103.089025,33.271999],[103.089054,33.272149],[103.089161,33.272299],[103.089361,33.272434],[103.089618,33.27257],[103.089946,33.272646],[103.090275,33.272722],[103.090603,33.272799],[103.090913,33.272913],[103.091224,33.273027],[103.091253,33.273038],[103.091502,33.273134],[103.091709,33.273355],[103.091781,33.273519],[103.091838,33.273698],[103.091824,33.273862],[103.091774,33.273983],[103.091717,33.274041],[103.09151,33.274126],[103.091388,33.274169],[103.09106,33.274226],[103.090817,33.274226],[103.09046,33.274191],[103.090075,33.274133],[103.089778,33.274108],[103.089482,33.274083],[103.089132,33.274033],[103.088783,33.273983],[103.088404,33.273983],[103.088382,33.273984],[103.088133,33.273991],[103.087898,33.274041],[103.087698,33.274141],[103.087491,33.274326],[103.087391,33.274483],[103.087312,33.274626],[103.087298,33.274797],[103.087298,33.274997],[103.087326,33.275176],[103.08744,33.275524],[103.087604,33.275835],[103.087631,33.276088],[103.087561,33.276411],[103.087496,33.276564],[103.08737,33.276716],[103.0873,33.276784],[103.087238,33.276844],[103.087197,33.276884],[103.087024,33.277052],[103.086852,33.27722],[103.086824,33.277248],[103.086679,33.277388],[103.086603,33.277462],[103.086506,33.277557],[103.086333,33.277725],[103.08616,33.277893],[103.085987,33.278061],[103.085842,33.278234],[103.085831,33.278248],[103.085674,33.278436],[103.085518,33.278623],[103.085455,33.278697],[103.085403,33.27876],[103.085361,33.27881],[103.085205,33.278997],[103.085048,33.279184],[103.084892,33.279371],[103.084736,33.279559],[103.084579,33.279746],[103.084423,33.279933],[103.084266,33.28012],[103.08411,33.280307],[103.083934,33.280496],[103.083759,33.280685],[103.083583,33.280874],[103.083408,33.281064],[103.083233,33.281253],[103.083057,33.281442],[103.082882,33.281631],[103.082706,33.28182],[103.082505,33.281957],[103.082304,33.282094],[103.081905,33.282241],[103.081492,33.282312],[103.081079,33.282383],[103.080833,33.282412],[103.080587,33.282441],[103.080341,33.282471],[103.080095,33.2825],[103.079849,33.282529],[103.079603,33.282558],[103.079357,33.282587],[103.079112,33.282616],[103.078859,33.282666],[103.078607,33.282715],[103.078354,33.282765],[103.078102,33.282814],[103.07785,33.282863],[103.077597,33.282913],[103.077345,33.282962],[103.077093,33.283011],[103.07684,33.283061],[103.076588,33.28311],[103.076336,33.28316],[103.076083,33.283209],[103.075847,33.28326],[103.075611,33.283311],[103.075375,33.283362],[103.075139,33.283413],[103.074902,33.283464],[103.074666,33.283516],[103.07443,33.283567],[103.074194,33.283618],[103.073958,33.283669],[103.073722,33.28372],[103.073486,33.283771],[103.07325,33.283822],[103.073013,33.283873],[103.072777,33.283924],[103.072616,33.283965],[103.07244,33.284009],[103.072103,33.284093],[103.071886,33.284268],[103.071822,33.28442],[103.07182,33.284427],[103.07181,33.284481],[103.071753,33.284778],[103.071647,33.284981],[103.071541,33.285184],[103.071435,33.285386],[103.071328,33.285589],[103.071222,33.285792],[103.071116,33.285994],[103.070927,33.286299],[103.070738,33.286603],[103.070458,33.286871],[103.070178,33.287139],[103.069898,33.287408],[103.069744,33.287614],[103.06959,33.287821],[103.069436,33.288028],[103.069282,33.288234],[103.069173,33.28838],[103.069128,33.288441],[103.06906,33.288531],[103.069056,33.288537],[103.068973,33.288648],[103.068819,33.288854],[103.068665,33.289061],[103.068521,33.289269],[103.068376,33.289476],[103.068231,33.289683],[103.068087,33.289891],[103.067942,33.290098],[103.067797,33.290306],[103.067653,33.290513],[103.067564,33.29064],[103.067508,33.290721],[103.067364,33.290928],[103.067275,33.291055],[103.06725,33.29109],[103.067219,33.291136],[103.066996,33.291463],[103.066986,33.291478],[103.066773,33.29179],[103.066644,33.29198],[103.066515,33.29217],[103.066386,33.29236],[103.066256,33.29255],[103.066127,33.29274],[103.065998,33.29293],[103.065868,33.29312],[103.065739,33.29331],[103.06559,33.29353],[103.065441,33.29375],[103.065292,33.293969],[103.065143,33.294189],[103.065045,33.294334],[103.064994,33.294408],[103.064977,33.294434],[103.064845,33.294628],[103.064696,33.294848],[103.064547,33.295067],[103.064398,33.295287],[103.064249,33.295507],[103.06411,33.295704],[103.064078,33.29575],[103.063971,33.295901],[103.063832,33.296099],[103.063731,33.296241],[103.063693,33.296296],[103.063539,33.296514],[103.063385,33.296732],[103.063231,33.296951],[103.063077,33.297169],[103.062923,33.297387],[103.062769,33.297606],[103.062568,33.297781],[103.062366,33.297956],[103.061968,33.298079],[103.061539,33.298166],[103.06111,33.298252],[103.060682,33.298339],[103.060652,33.298344],[103.060246,33.298416],[103.05981,33.298492],[103.059374,33.298568],[103.058938,33.298644],[103.058693,33.298705],[103.058448,33.298765],[103.058203,33.298825],[103.057958,33.298885],[103.057799,33.29892],[103.057717,33.298938],[103.057476,33.29899],[103.057236,33.299042],[103.056995,33.299094],[103.056754,33.299146],[103.056513,33.299198],[103.056273,33.299251],[103.056266,33.299252],[103.056032,33.299303],[103.055791,33.299355],[103.05555,33.299407],[103.05531,33.299459],[103.055069,33.299511],[103.054811,33.299579],[103.054554,33.299646],[103.054296,33.299714],[103.054039,33.299782],[103.053781,33.299849],[103.053524,33.299917],[103.053266,33.299984],[103.053009,33.300052],[103.052751,33.300119],[103.052494,33.300187],[103.052251,33.300221],[103.052007,33.300256],[103.051764,33.30029],[103.051521,33.300325],[103.051277,33.300359],[103.051034,33.300394],[103.050791,33.300428],[103.050547,33.300462],[103.050304,33.300497],[103.050061,33.300531],[103.049817,33.300566],[103.049574,33.3006],[103.049331,33.300635],[103.049088,33.300669],[103.048844,33.300704],[103.048601,33.300738],[103.048344,33.30076],[103.04833,33.300761],[103.04828,33.300765],[103.048087,33.300781],[103.04783,33.300803],[103.047573,33.300824],[103.047316,33.300846],[103.047059,33.300867],[103.046802,33.300889],[103.046545,33.30091],[103.046458,33.300918],[103.046404,33.300922],[103.046288,33.300932],[103.046031,33.300953],[103.045774,33.300975],[103.045517,33.300997],[103.045283,33.301014],[103.045049,33.301031],[103.044815,33.301049],[103.044581,33.301066],[103.044347,33.301084],[103.044113,33.301101],[103.043894,33.301141],[103.043874,33.301144],[103.043634,33.301188],[103.043395,33.301231],[103.043155,33.301274],[103.042944,33.301312],[103.042916,33.301317],[103.042676,33.30136],[103.042257,33.301385],[103.041837,33.301411],[103.041417,33.301436],[103.040997,33.301461],[103.040733,33.301457],[103.040469,33.301453],[103.040205,33.301449],[103.039941,33.301444],[103.039677,33.30144],[103.039413,33.301436],[103.039151,33.301435],[103.038889,33.301433],[103.038627,33.301432],[103.038365,33.30143],[103.038103,33.301429],[103.037841,33.301427],[103.037579,33.301426],[103.037317,33.301424],[103.037055,33.301423],[103.036793,33.301421],[103.036474,33.301409],[103.036388,33.301406],[103.035982,33.301391],[103.035576,33.301376],[103.035171,33.301338],[103.035149,33.301336],[103.034722,33.301296],[103.034295,33.301256],[103.033868,33.301216],[103.033442,33.301157],[103.033015,33.301097],[103.032588,33.301037],[103.032162,33.300977],[103.0318,33.300879],[103.031439,33.30078],[103.031213,33.300741],[103.030987,33.300702],[103.030733,33.300689],[103.030376,33.300683],[103.030366,33.300682],[103.03008,33.300661],[103.029818,33.300639],[103.029524,33.300599],[103.029209,33.300541],[103.028894,33.300483],[103.028662,33.300431],[103.028586,33.300413],[103.028483,33.30039],[103.028431,33.300378],[103.028166,33.300343],[103.0279,33.300307],[103.027635,33.300272],[103.02737,33.300237],[103.027097,33.300195],[103.026824,33.300154],[103.026793,33.300149],[103.026552,33.300112],[103.026279,33.30007],[103.026047,33.300053],[103.025816,33.300036],[103.025489,33.300031],[103.025162,33.300026],[103.024935,33.300036],[103.024708,33.300045],[103.02439,33.30008],[103.024073,33.300115],[103.02384,33.300154],[103.023607,33.300193],[103.023374,33.300232],[103.023142,33.300271],[103.022909,33.30031],[103.022676,33.300349],[103.02228,33.300404],[103.021884,33.300459],[103.021586,33.300521],[103.021289,33.300584],[103.020896,33.300692],[103.020751,33.300754],[103.02068,33.300785],[103.020463,33.300877],[103.020314,33.300963],[103.020121,33.301132],[103.019928,33.301302],[103.019731,33.301564],[103.019653,33.301757],[103.019567,33.302039],[103.019482,33.302321],[103.01938,33.302603],[103.01925,33.302761],[103.019154,33.302864],[103.019045,33.30296],[103.01895,33.303003],[103.018811,33.30308],[103.018673,33.303131],[103.018365,33.303188],[103.018111,33.3032],[103.017858,33.303211],[103.017605,33.303223],[103.017352,33.303234],[103.016904,33.303223],[103.016457,33.303213],[103.016009,33.303202],[103.015567,33.303144],[103.015124,33.303086],[103.014682,33.303029],[103.014239,33.302971],[103.013977,33.302925],[103.013715,33.302878],[103.013454,33.302831],[103.013192,33.302785],[103.01293,33.302738],[103.012668,33.302692],[103.012484,33.302659],[103.012406,33.302645],[103.012144,33.302599],[103.011882,33.302552],[103.011621,33.302506],[103.011359,33.302459],[103.011097,33.302413],[103.010835,33.302366],[103.010573,33.30232],[103.010311,33.302273],[103.010049,33.302227],[103.009787,33.30218],[103.009526,33.302134],[103.009264,33.302087],[103.009024,33.302044],[103.009002,33.302041],[103.0088,33.302005],[103.00874,33.301994],[103.008478,33.301948],[103.008216,33.301901],[103.007954,33.301854],[103.007693,33.301808],[103.007431,33.301761],[103.007169,33.301715],[103.006907,33.301668],[103.006653,33.301629],[103.006398,33.30159],[103.006144,33.301551],[103.005889,33.301511],[103.005635,33.301472],[103.005381,33.301433],[103.005126,33.301394],[103.004872,33.301355],[103.004618,33.301315],[103.004363,33.301276],[103.004109,33.301237],[103.003855,33.301198],[103.0036,33.301158],[103.003346,33.301119],[103.003076,33.301076],[103.002807,33.301032],[103.002538,33.300988],[103.002269,33.300945],[103.001999,33.300901],[103.00173,33.300857],[103.001461,33.300814],[103.001191,33.30077],[103.000961,33.300733],[103.000731,33.300696],[103.000501,33.300658],[103.000271,33.300621],[103.000029,33.300608],[102.999786,33.300594],[102.999544,33.300581],[102.999301,33.300567],[102.999059,33.300554],[102.998816,33.30054],[102.998574,33.300527],[102.998332,33.300513],[102.998089,33.3005],[102.997847,33.300486],[102.997604,33.300472],[102.997362,33.300459],[102.997124,33.300415],[102.996887,33.300372],[102.99665,33.300328],[102.996412,33.300285],[102.996406,33.300283],[102.996184,33.300243],[102.996175,33.300241],[102.995938,33.300198],[102.995815,33.300175],[102.995733,33.30016],[102.995701,33.300154],[102.995463,33.30011],[102.995226,33.300067],[102.994989,33.300023],[102.994751,33.29998],[102.994514,33.299936],[102.994277,33.299893],[102.994039,33.299849],[102.993613,33.299825],[102.99342,33.299822],[102.993205,33.29989],[102.99287,33.300178],[102.992535,33.300466],[102.992201,33.300754],[102.99194,33.300937],[102.99168,33.301121],[102.991431,33.301243],[102.991181,33.301364],[102.990771,33.301528],[102.990361,33.301692],[102.990352,33.301696],[102.990108,33.301776],[102.989855,33.301859],[102.989601,33.301942],[102.989348,33.302025],[102.989095,33.302108],[102.988841,33.302191],[102.988461,33.302281],[102.988081,33.30237],[102.987701,33.302459],[102.987455,33.302482],[102.987209,33.302505],[102.986824,33.302499],[102.986439,33.302494],[102.98611,33.302398],[102.985781,33.302302],[102.98558,33.302198],[102.985379,33.302094],[102.985178,33.30199],[102.984977,33.301886],[102.984776,33.301782],[102.984575,33.301677],[102.984374,33.301573],[102.984174,33.301469],[102.983947,33.301322],[102.983721,33.301175],[102.983494,33.301028],[102.983268,33.30088],[102.983041,33.300733],[102.982815,33.300586],[102.982588,33.300439],[102.982362,33.300292],[102.981996,33.300082],[102.98163,33.299873],[102.981264,33.299664],[102.98091,33.29952],[102.980556,33.299376],[102.980168,33.29919],[102.97978,33.299004],[102.979392,33.298818],[102.979095,33.298697],[102.978799,33.298576],[102.978671,33.298558],[102.978372,33.298515],[102.978138,33.298476],[102.977903,33.298436],[102.977669,33.298396],[102.977441,33.298357],[102.977435,33.298356],[102.977201,33.298317],[102.976967,33.298277],[102.976714,33.298264],[102.976461,33.298251],[102.976209,33.298238],[102.975956,33.298225],[102.975703,33.298212],[102.97545,33.298199],[102.975197,33.298185],[102.974944,33.298172],[102.974692,33.298159],[102.974439,33.298146],[102.974186,33.298133],[102.973933,33.29812],[102.973665,33.298117],[102.973396,33.298114],[102.973127,33.298111],[102.972859,33.298108],[102.97259,33.298105],[102.972321,33.298102],[102.972053,33.298098],[102.971784,33.298095],[102.971515,33.298092],[102.971247,33.298089],[102.970978,33.298086],[102.970709,33.298083],[102.970441,33.29808],[102.970172,33.298077],[102.969907,33.298083],[102.969642,33.29809],[102.969377,33.298097],[102.969113,33.298104],[102.968848,33.298111],[102.968583,33.298117],[102.968318,33.298124],[102.968053,33.298131],[102.967661,33.298149],[102.967268,33.298167],[102.966876,33.298184],[102.966515,33.298168],[102.966484,33.298166],[102.966093,33.298148],[102.965701,33.29813],[102.965472,33.298112],[102.965242,33.298095],[102.965013,33.298078],[102.964784,33.29806],[102.964554,33.298043],[102.964325,33.298026],[102.964096,33.298009],[102.963867,33.297991],[102.963609,33.29799],[102.963351,33.297988],[102.963093,33.297987],[102.962836,33.297985],[102.962578,33.297984],[102.96232,33.297982],[102.962062,33.29798],[102.961805,33.297979],[102.961547,33.297977],[102.961289,33.297976],[102.961031,33.297974],[102.960774,33.297973],[102.960516,33.297971],[102.960258,33.297969],[102.960001,33.297968],[102.959743,33.297966],[102.959485,33.297965],[102.959227,33.297963],[102.95897,33.297962],[102.958712,33.29796],[102.958453,33.297957],[102.958195,33.297954],[102.957936,33.297951],[102.957678,33.297949],[102.957419,33.297946],[102.957161,33.297943],[102.956902,33.29794],[102.956643,33.297937],[102.956385,33.297934],[102.956126,33.297931],[102.955868,33.297928],[102.955609,33.297925],[102.955351,33.297923],[102.955092,33.29792],[102.954834,33.297917],[102.954575,33.297914],[102.954317,33.297911],[102.954058,33.297908],[102.953799,33.297905],[102.953541,33.297902],[102.953282,33.2979],[102.953024,33.297897],[102.952765,33.297894],[102.952507,33.297891],[102.952248,33.297888],[102.95199,33.297885],[102.951731,33.297882],[102.951473,33.297879],[102.951214,33.297864],[102.950955,33.297848],[102.950697,33.297832],[102.950438,33.297816],[102.950179,33.2978],[102.94992,33.297784],[102.949662,33.297768],[102.94946,33.297756],[102.949403,33.297753],[102.949322,33.297748],[102.949144,33.297737],[102.948886,33.297721],[102.948627,33.297705],[102.948368,33.297689],[102.94811,33.297673],[102.947851,33.297657],[102.947598,33.297657],[102.947345,33.297656],[102.947092,33.297655],[102.946839,33.297654],[102.946586,33.297654],[102.946333,33.297653],[102.94608,33.297652],[102.945968,33.297652],[102.945827,33.297651],[102.945573,33.29765],[102.94532,33.29765],[102.944872,33.297678],[102.944636,33.297728],[102.944336,33.297759],[102.94393,33.297752],[102.943502,33.297741],[102.943075,33.297729],[102.942647,33.297718],[102.942564,33.297716],[102.942219,33.297707],[102.941985,33.2977],[102.941979,33.2977],[102.941739,33.297694],[102.941498,33.297688],[102.941258,33.297681],[102.941018,33.297675],[102.940778,33.297669],[102.940537,33.297662],[102.940297,33.297656],[102.940083,33.297653],[102.939977,33.297615],[102.939871,33.297505],[102.939834,33.297307],[102.939865,33.296913],[102.939876,33.296465],[102.939837,33.296349],[102.939815,33.296284],[102.93967,33.29612],[102.939544,33.296029],[102.939352,33.296007],[102.939158,33.296004],[102.938966,33.296055],[102.93879,33.296213],[102.93869,33.296416],[102.938538,33.296724],[102.938387,33.297032],[102.938358,33.29711],[102.938341,33.297157],[102.938296,33.297211],[102.938257,33.297253],[102.938231,33.297281],[102.938122,33.297316],[102.937972,33.29733],[102.937674,33.297289],[102.937399,33.29716],[102.937273,33.297062],[102.937232,33.29703],[102.937125,33.297011],[102.936976,33.29701],[102.936903,33.297018],[102.936718,33.29704],[102.936483,33.297054],[102.936248,33.297037],[102.936162,33.297031],[102.93602,33.297012],[102.936014,33.297011],[102.935908,33.296937],[102.935869,33.296793],[102.935853,33.296541],[102.935927,33.296112],[102.935934,33.296077],[102.935977,33.295827],[102.936002,33.295683],[102.935985,33.295521],[102.935945,33.295359],[102.935929,33.295336],[102.935884,33.295268],[102.935849,33.295257],[102.935649,33.295193],[102.935308,33.295169],[102.934988,33.29524],[102.934977,33.295243],[102.93491,33.295258],[102.934513,33.295346],[102.934115,33.295434],[102.933834,33.295483],[102.933428,33.295513],[102.933065,33.295506],[102.932787,33.295511],[102.932509,33.295515],[102.932245,33.295531],[102.93198,33.295548],[102.931716,33.295565],[102.931452,33.295581],[102.931188,33.295598],[102.930924,33.295614],[102.930658,33.29562],[102.930392,33.295626],[102.930126,33.295632],[102.92986,33.295637],[102.929595,33.295643],[102.929329,33.295649],[102.929063,33.295655],[102.928797,33.295661],[102.928531,33.295666],[102.928265,33.295672],[102.927999,33.295678],[102.927733,33.295684],[102.927467,33.295689],[102.927202,33.295695],[102.926962,33.295714],[102.926723,33.295733],[102.926483,33.295752],[102.926244,33.295771],[102.926004,33.29579],[102.925765,33.295809],[102.925526,33.295828],[102.925286,33.295847],[102.925047,33.295866],[102.924807,33.295885],[102.924572,33.295906],[102.924336,33.295928],[102.9241,33.295949],[102.923865,33.29597],[102.923629,33.295991],[102.923393,33.296013],[102.923158,33.296034],[102.922922,33.296055],[102.922686,33.296076],[102.922451,33.296097],[102.922066,33.29609],[102.921766,33.296122],[102.921535,33.296118],[102.921303,33.296114],[102.921071,33.29611],[102.921019,33.296109],[102.920946,33.295986],[102.92071,33.295589],[102.920666,33.295516],[102.92063,33.295457],[102.92057,33.295515],[102.920493,33.295573],[102.920416,33.29558],[102.920307,33.295606],[102.92021,33.295614],[102.920094,33.295609],[102.920055,33.295598],[102.920026,33.295557],[102.920021,33.295494],[102.920028,33.295426],[102.920066,33.295363],[102.9201,33.295312],[102.920147,33.295233],[102.920174,33.295158],[102.920226,33.295043],[102.920329,33.294973],[102.92035,33.294943],[102.92039,33.294918],[102.920443,33.294912],[102.920476,33.294921],[102.920524,33.294925],[102.920547,33.294919],[102.920584,33.294903],[102.920621,33.294895],[102.920652,33.294904],[102.920664,33.294929],[102.920685,33.294959],[102.920713,33.294983],[102.920757,33.295015],[102.920799,33.295032],[102.920874,33.295036],[102.920962,33.29493],[102.92125,33.294756],[102.921339,33.294614],[102.921283,33.294565],[102.921041,33.294573],[102.920786,33.294569],[102.920603,33.294483],[102.920567,33.294497],[102.920537,33.294543],[102.920524,33.294569],[102.920504,33.294597],[102.92046,33.294618],[102.920409,33.294639],[102.920341,33.29463],[102.920188,33.294747],[102.920008,33.294696],[102.919901,33.294644],[102.919821,33.294617],[102.919662,33.294607],[102.919532,33.29459],[102.919364,33.29455],[102.91929,33.294488],[102.919245,33.294396],[102.91927,33.294281],[102.919316,33.294215],[102.919384,33.294087],[102.919388,33.29395],[102.919345,33.29385],[102.91929,33.293746],[102.919194,33.293638],[102.919071,33.293562],[102.918996,33.293508],[102.918977,33.293403],[102.918998,33.293294],[102.919032,33.293128],[102.919007,33.292947],[102.918917,33.292834],[102.918913,33.292696],[102.918741,33.29242],[102.897857,33.258822],[102.896783,33.257095],[102.896639,33.256863],[102.896195,33.256149],[102.895862,33.255613],[102.895851,33.255654],[102.895852,33.25568],[102.895853,33.255707],[102.895862,33.25574],[102.895877,33.255776],[102.895879,33.255821],[102.895875,33.255844],[102.895863,33.255849],[102.895843,33.255845],[102.89583,33.255811],[102.895805,33.255748],[102.895788,33.25571],[102.895782,33.255703],[102.895771,33.255693],[102.895762,33.255691],[102.89575,33.255705],[102.895744,33.255718],[102.895726,33.255718],[102.895713,33.2557],[102.895714,33.25568],[102.895716,33.25565],[102.895732,33.255602],[102.895741,33.255564],[102.895741,33.255526],[102.895739,33.255484],[102.895736,33.255445],[102.895721,33.255386],[102.894255,33.253026],[102.894194,33.252928],[102.894085,33.252752],[102.894068,33.252726],[102.894157,33.252639],[102.894164,33.252633],[102.8946,33.252208],[102.895065,33.251667],[102.895108,33.251635],[102.895215,33.251553],[102.895229,33.251543],[102.895287,33.251499],[102.895287,33.251103],[102.895342,33.250815],[102.895498,33.250669],[102.895741,33.250662],[102.895913,33.250906],[102.895998,33.251345],[102.896089,33.25161],[102.896213,33.25182],[102.89637,33.251827],[102.896494,33.251712],[102.896725,33.251494],[102.897016,33.251388],[102.897627,33.251277],[102.898378,33.251233],[102.899016,33.251156],[102.899726,33.251142],[102.899824,33.251013],[102.899654,33.250625],[102.899372,33.250204],[102.898974,33.249935],[102.898817,33.249805],[102.898936,33.249619],[102.899288,33.249309],[102.899403,33.2491],[102.899431,33.248606],[102.899398,33.248322],[102.899276,33.248081],[102.899047,33.247929],[102.898386,33.247744],[102.89805,33.247686],[102.897828,33.247606],[102.89772,33.247506],[102.897746,33.24737],[102.897862,33.247193],[102.898144,33.24697],[102.898129,33.246865],[102.897822,33.246552],[102.897529,33.24623],[102.897341,33.246041],[102.897115,33.245915],[102.896799,33.245863],[102.896189,33.245865],[102.895906,33.245939],[102.895818,33.246078],[102.895895,33.246229],[102.896273,33.246549],[102.896449,33.246828],[102.896394,33.246997],[102.896192,33.247056],[102.89582,33.246931],[102.895398,33.24658],[102.895153,33.246499],[102.894883,33.246468],[102.893818,33.246548],[102.893311,33.246555],[102.892784,33.24648],[102.892439,33.24628],[102.892141,33.245979],[102.892149,33.245779],[102.892226,33.245703],[102.89241,33.245672],[102.893459,33.245776],[102.894022,33.245742],[102.894264,33.245594],[102.89429,33.245438],[102.893923,33.244959],[102.893426,33.244428],[102.893113,33.244172],[102.892716,33.243995],[102.892504,33.243968],[102.892258,33.244044],[102.891645,33.244558],[102.891293,33.244869],[102.890887,33.245127],[102.890317,33.2452],[102.889802,33.245114],[102.889557,33.244944],[102.889654,33.244733],[102.889853,33.244604],[102.890562,33.244241],[102.891163,33.24389],[102.891935,33.243422],[102.892283,33.243067],[102.892435,33.242723],[102.892356,33.242473],[102.892056,33.242296],[102.891472,33.242111],[102.891057,33.242077],[102.890848,33.242154],[102.890742,33.242299],[102.890757,33.242475],[102.89107,33.242802],[102.891251,33.243046],[102.891266,33.243225],[102.891113,33.243297],[102.890846,33.243211],[102.890503,33.243012],[102.890284,33.242971],[102.889892,33.24299],[102.889383,33.243044],[102.889181,33.243007],[102.889042,33.242905],[102.889041,33.242784],[102.88931,33.242391],[102.889561,33.242176],[102.889737,33.241851],[102.889703,33.241628],[102.889574,33.241516],[102.889379,33.241501],[102.888687,33.241701],[102.887805,33.24201],[102.88727,33.242238],[102.887023,33.242332],[102.886869,33.242297],[102.886872,33.242161],[102.886906,33.241905],[102.886971,33.241722],[102.887066,33.241559],[102.887068,33.241412],[102.886962,33.241286],[102.886625,33.241094],[102.885931,33.240851],[102.884848,33.240541],[102.884194,33.240336],[102.883846,33.240162],[102.883863,33.239882],[102.884024,33.239736],[102.884398,33.239742],[102.88507,33.239879],[102.88529,33.239803],[102.885351,33.239348],[102.885333,33.238752],[102.885324,33.238343],[102.88524,33.23813],[102.885012,33.238159],[102.884742,33.23831],[102.884537,33.238525],[102.884197,33.238521],[102.883384,33.238282],[102.88296,33.238079],[102.882744,33.237793],[102.882795,33.237591],[102.883055,33.237506],[102.883727,33.237662],[102.884345,33.23784],[102.884622,33.237852],[102.885069,33.23768],[102.885254,33.237528],[102.885354,33.237343],[102.885294,33.237065],[102.885068,33.236788],[102.884594,33.236461],[102.884376,33.236331],[102.884382,33.236088],[102.884464,33.235773],[102.884645,33.235591],[102.884805,33.235541],[102.885037,33.235579],[102.885224,33.235722],[102.885424,33.235934],[102.885538,33.236025],[102.885654,33.235997],[102.88575,33.235887],[102.885894,33.235239],[102.886005,33.234933],[102.886336,33.234504],[102.886645,33.234228],[102.886818,33.234178],[102.886993,33.234245],[102.886945,33.234411],[102.886779,33.234708],[102.886697,33.234862],[102.886755,33.234968],[102.887152,33.235156],[102.887839,33.235474],[102.888223,33.235521],[102.888621,33.235487],[102.888952,33.235426],[102.889301,33.235258],[102.889469,33.235083],[102.889447,33.234878],[102.889308,33.23478],[102.888722,33.234691],[102.888403,33.234632],[102.888307,33.234524],[102.888388,33.234381],[102.888742,33.234203],[102.889417,33.233794],[102.889766,33.233494],[102.89004,33.233276],[102.890233,33.233132],[102.890171,33.232977],[102.889832,33.232529],[102.889523,33.232236],[102.889355,33.232205],[102.889187,33.232291],[102.889106,33.232582],[102.889023,33.232847],[102.888415,33.233116],[102.887654,33.233339],[102.887288,33.233387],[102.88697,33.23345],[102.886677,33.233472],[102.886338,33.233358],[102.886143,33.233207],[102.886112,33.233058],[102.886205,33.232957],[102.886515,33.232891],[102.88683,33.232844],[102.887074,33.232833],[102.887254,33.232817],[102.887353,33.232666],[102.887334,33.232467],[102.887173,33.231934],[102.887065,33.231665],[102.88693,33.231496],[102.886753,33.231426],[102.886469,33.231435],[102.885966,33.23162],[102.885497,33.231744],[102.885261,33.231703],[102.88518,33.231593],[102.885255,33.231377],[102.885533,33.230879],[102.886141,33.230177],[102.886318,33.23],[102.886355,33.22985],[102.886169,33.229821],[102.885683,33.229834],[102.885304,33.229768],[102.884872,33.22964],[102.884605,33.229554],[102.884403,33.229662],[102.88417,33.230331],[102.8839,33.230826],[102.883645,33.230958],[102.883432,33.230886],[102.883041,33.230494],[102.882805,33.229593],[102.88273,33.229128],[102.882816,33.228726],[102.882999,33.228686],[102.883219,33.22881],[102.883596,33.229144],[102.884144,33.229267],[102.884948,33.229353],[102.885909,33.229402],[102.886361,33.229416],[102.88671,33.229269],[102.88681,33.229111],[102.886771,33.228909],[102.886503,33.228746],[102.886237,33.228639],[102.886162,33.227884],[102.886061,33.226983],[102.885872,33.226623],[102.885606,33.226216],[102.885578,33.225929],[102.885743,33.225722],[102.886035,33.225567],[102.88636,33.225543],[102.886656,33.225617],[102.886748,33.225892],[102.886835,33.226434],[102.886993,33.22674],[102.887502,33.227143],[102.887689,33.227256],[102.887977,33.227336],[102.888141,33.227232],[102.888423,33.226394],[102.88868,33.225783],[102.888766,33.225625],[102.888722,33.225427],[102.888442,33.225208],[102.88793,33.224916],[102.887719,33.22489],[102.887335,33.224988],[102.886773,33.225222],[102.886652,33.225178],[102.886656,33.224978],[102.886881,33.224173],[102.887083,33.223284],[102.887351,33.222323],[102.88735,33.222165],[102.887182,33.222059],[102.886929,33.222156],[102.886486,33.222829],[102.886025,33.223404],[102.885738,33.223582],[102.885456,33.223606],[102.885301,33.223496],[102.885317,33.223368],[102.88569,33.223094],[102.88598,33.222849],[102.885982,33.22267],[102.885777,33.222554],[102.885279,33.222559],[102.884879,33.222571],[102.88469,33.222463],[102.884594,33.222066],[102.884611,33.221624],[102.884615,33.221397],[102.884587,33.221201],[102.884507,33.220964],[102.884458,33.220786],[102.884372,33.220649],[102.884236,33.22061],[102.884003,33.220622],[102.883763,33.220655],[102.883571,33.220592],[102.883136,33.220489],[102.882813,33.22048],[102.882516,33.220616],[102.882309,33.220678],[102.881724,33.220602],[102.881418,33.220599],[102.881144,33.220709],[102.880946,33.220894],[102.880773,33.221087],[102.88056,33.221167],[102.880412,33.221079],[102.880425,33.22094],[102.880496,33.220597],[102.880538,33.220309],[102.880419,33.219811],[102.880335,33.219572],[102.880109,33.219437],[102.879722,33.219436],[102.879485,33.219508],[102.879404,33.219671],[102.879434,33.220021],[102.87951,33.220405],[102.879482,33.220651],[102.879335,33.220916],[102.879037,33.221043],[102.878608,33.220927],[102.878093,33.220621],[102.877952,33.220433],[102.878032,33.220276],[102.878397,33.220148],[102.878605,33.220041],[102.878635,33.219896],[102.878208,33.219444],[102.87769,33.218967],[102.877591,33.218741],[102.877646,33.218529],[102.877835,33.218388],[102.878276,33.218302],[102.878636,33.218257],[102.878788,33.218144],[102.878813,33.21783],[102.878655,33.217627],[102.878452,33.217475],[102.878134,33.217403],[102.877422,33.217525],[102.876919,33.217639],[102.876517,33.21763],[102.876438,33.217628],[102.875901,33.217478],[102.875468,33.217255],[102.87526,33.217109],[102.87527,33.216943],[102.875401,33.216764],[102.876018,33.216626],[102.876501,33.216491],[102.876742,33.21636],[102.876791,33.216186],[102.876764,33.21598],[102.876598,33.215851],[102.875718,33.215945],[102.875222,33.215942],[102.87456,33.215623],[102.874043,33.215262],[102.873798,33.214896],[102.873742,33.214479],[102.873825,33.214297],[102.874007,33.214233],[102.874311,33.214335],[102.874663,33.214707],[102.875188,33.215411],[102.87548,33.215566],[102.87584,33.215588],[102.876453,33.215431],[102.876838,33.215236],[102.877047,33.214934],[102.876906,33.21466],[102.876602,33.214694],[102.876039,33.214946],[102.875677,33.214959],[102.875557,33.214765],[102.875865,33.214363],[102.876054,33.214189],[102.876171,33.213722],[102.876195,33.213451],[102.876081,33.213211],[102.876145,33.213003],[102.876289,33.212859],[102.876722,33.212873],[102.876725,33.213034],[102.876565,33.213449],[102.876528,33.213858],[102.876716,33.214141],[102.877072,33.214298],[102.877576,33.214323],[102.877638,33.214136],[102.877595,33.213788],[102.87748,33.213354],[102.877485,33.213115],[102.87759,33.212991],[102.87789,33.21295],[102.878588,33.213428],[102.878894,33.213612],[102.879436,33.213658],[102.879743,33.213542],[102.879914,33.213325],[102.879963,33.213079],[102.879793,33.212787],[102.879453,33.212491],[102.878935,33.212246],[102.878578,33.212178],[102.878098,33.212251],[102.87745,33.212346],[102.876911,33.212229],[102.876879,33.212038],[102.876957,33.211928],[102.877611,33.211889],[102.878261,33.211904],[102.878795,33.211747],[102.879264,33.211475],[102.879335,33.211228],[102.879219,33.210952],[102.878891,33.210734],[102.87822,33.211259],[102.877831,33.211528],[102.877482,33.211476],[102.877371,33.211157],[102.877402,33.21071],[102.87749,33.210271],[102.877638,33.210067],[102.878036,33.210041],[102.878486,33.210202],[102.878665,33.210143],[102.878609,33.209555],[102.878707,33.208739],[102.87839,33.208345],[102.878047,33.208411],[102.87784,33.208646],[102.877606,33.20926],[102.877352,33.20954],[102.877007,33.209719],[102.876614,33.209746],[102.876555,33.20959],[102.876723,33.209343],[102.877053,33.208925],[102.877327,33.208604],[102.877455,33.208384],[102.877392,33.208067],[102.877028,33.207618],[102.876904,33.207495],[102.876816,33.207255],[102.876899,33.207062],[102.877276,33.207013],[102.877598,33.20697],[102.877948,33.206934],[102.87815,33.206971],[102.878141,33.207131],[102.878058,33.207389],[102.878146,33.207542],[102.878347,33.207519],[102.878863,33.207368],[102.879435,33.207332],[102.880327,33.207389],[102.880866,33.207459],[102.88148,33.207627],[102.88177,33.207706],[102.881954,33.207666],[102.882086,33.207533],[102.882021,33.207197],[102.881807,33.206692],[102.881599,33.20656],[102.88097,33.206753],[102.880786,33.206708],[102.880653,33.206459],[102.880437,33.206174],[102.880042,33.205948],[102.879475,33.205672],[102.879447,33.205494],[102.879562,33.205345],[102.880021,33.205196],[102.88027,33.205071],[102.880229,33.204905],[102.879752,33.204771],[102.879455,33.204408],[102.879244,33.204007],[102.879305,33.203841],[102.879562,33.203741],[102.879794,33.203701],[102.879948,33.20361],[102.88006,33.203396],[102.880178,33.203187],[102.880336,33.203098],[102.880498,33.20312],[102.88073,33.203266],[102.881129,33.20364],[102.881377,33.203707],[102.881774,33.203669],[102.881906,33.203546],[102.881841,33.2034],[102.881566,33.20326],[102.881335,33.203136],[102.881126,33.202932],[102.880912,33.202619],[102.880859,33.202455],[102.880979,33.202245],[102.881229,33.202132],[102.881393,33.202143],[102.881501,33.202238],[102.881583,33.202584],[102.881688,33.202817],[102.881961,33.2029],[102.882372,33.202846],[102.88274,33.202735],[102.882941,33.2026],[102.883038,33.202385],[102.883051,33.202162],[102.882907,33.201918],[102.882693,33.201699],[102.882604,33.201581],[102.882159,33.20152],[102.881844,33.201388],[102.881786,33.201224],[102.881928,33.20102],[102.882102,33.200846],[102.882119,33.200652],[102.881942,33.200578],[102.881327,33.200729],[102.880923,33.200765],[102.880722,33.200646],[102.88065,33.2005],[102.880801,33.20031],[102.881012,33.200122],[102.881181,33.19999],[102.881179,33.199804],[102.880946,33.19957],[102.880336,33.199244],[102.879953,33.199189],[102.879372,33.199172],[102.879215,33.19896],[102.879259,33.19879],[102.87966,33.198478],[102.879742,33.198317],[102.879687,33.198165],[102.879058,33.198093],[102.878364,33.198178],[102.878042,33.198175],[102.877907,33.198012],[102.877974,33.197868],[102.878233,33.197725],[102.878398,33.197604],[102.878504,33.197386],[102.878419,33.197029],[102.878042,33.196635],[102.877707,33.196482],[102.877256,33.196444],[102.877068,33.196344],[102.877071,33.196216],[102.877212,33.196114],[102.877387,33.196029],[102.877485,33.195929],[102.87745,33.1958],[102.877286,33.195692],[102.877035,33.195574],[102.876999,33.195394],[102.87714,33.195287],[102.877598,33.195196],[102.877983,33.19503],[102.878249,33.194794],[102.878267,33.19459],[102.878099,33.194368],[102.877701,33.194402],[102.877191,33.194468],[102.876882,33.194419],[102.876879,33.194242],[102.877164,33.193916],[102.877537,33.19345],[102.877772,33.193017],[102.877897,33.192712],[102.877707,33.192285],[102.877449,33.192332],[102.877415,33.19263],[102.877451,33.192989],[102.877263,33.1933],[102.877043,33.193372],[102.876812,33.193258],[102.876817,33.192882],[102.876719,33.192525],[102.876395,33.192531],[102.87614,33.192925],[102.875919,33.193122],[102.875286,33.1932],[102.874933,33.193129],[102.874901,33.192999],[102.875157,33.192781],[102.875536,33.192611],[102.875701,33.192389],[102.875511,33.192157],[102.875228,33.19206],[102.874645,33.19205],[102.874508,33.191868],[102.874351,33.191556],[102.873942,33.191373],[102.87376,33.191274],[102.873756,33.19115],[102.874168,33.190886],[102.874562,33.19054],[102.874874,33.190339],[102.874902,33.190154],[102.874778,33.189949],[102.874436,33.189882],[102.874092,33.189954],[102.873812,33.189904],[102.873707,33.189662],[102.873724,33.189367],[102.873936,33.188647],[102.874013,33.188298],[102.873879,33.188068],[102.873641,33.188082],[102.87347,33.188385],[102.873336,33.188737],[102.873122,33.188904],[102.87286,33.188897],[102.872783,33.188895],[102.872461,33.188719],[102.872397,33.188704],[102.872182,33.188655],[102.872009,33.188515],[102.872055,33.188207],[102.872107,33.187895],[102.872124,33.187605],[102.872207,33.187451],[102.872172,33.187269],[102.872046,33.187197],[102.871766,33.187247],[102.871574,33.187525],[102.871402,33.187851],[102.871219,33.187862],[102.871106,33.187748],[102.870958,33.187566],[102.870774,33.18752],[102.870545,33.187568],[102.87034,33.187774],[102.870106,33.187997],[102.869903,33.188075],[102.869765,33.188021],[102.869735,33.187858],[102.869847,33.187687],[102.870022,33.187494],[102.870056,33.187295],[102.869943,33.187205],[102.869645,33.187264],[102.869403,33.187321],[102.869186,33.187254],[102.869012,33.187142],[102.86901,33.186978],[102.868996,33.186802],[102.868873,33.186657],[102.868261,33.186406],[102.867811,33.186257],[102.867636,33.186342],[102.867559,33.186512],[102.867654,33.18676],[102.867821,33.187109],[102.86795,33.187698],[102.868124,33.187929],[102.868295,33.188021],[102.868247,33.188182],[102.867978,33.188293],[102.867667,33.188406],[102.867612,33.188564],[102.867732,33.188688],[102.868062,33.188988],[102.868087,33.189224],[102.868,33.189369],[102.867759,33.18938],[102.867363,33.189134],[102.8669,33.188803],[102.866306,33.188392],[102.866066,33.188317],[102.86585,33.188391],[102.865865,33.188487],[102.866085,33.188669],[102.866163,33.188845],[102.866046,33.189096],[102.865637,33.18949],[102.865233,33.189854],[102.865188,33.190118],[102.865304,33.19031],[102.865726,33.190372],[102.866222,33.190423],[102.866556,33.190579],[102.866997,33.19073],[102.867154,33.190942],[102.867118,33.191274],[102.866913,33.191579],[102.866537,33.191707],[102.865916,33.191681],[102.865572,33.191543],[102.865437,33.191342],[102.865354,33.191015],[102.86515,33.19083],[102.864723,33.19076],[102.864323,33.19085],[102.864031,33.191048],[102.863653,33.19119],[102.863189,33.191131],[102.862945,33.190957],[102.86302,33.190831],[102.863271,33.190752],[102.863618,33.190695],[102.863695,33.190473],[102.863689,33.189923],[102.863899,33.18961],[102.864033,33.189344],[102.863892,33.189149],[102.863676,33.189272],[102.863532,33.189559],[102.863164,33.189458],[102.862897,33.189376],[102.862522,33.189389],[102.862218,33.189396],[102.861854,33.189231],[102.861396,33.188919],[102.860739,33.18882],[102.860373,33.188691],[102.860301,33.188496],[102.860288,33.188138],[102.860062,33.187779],[102.859741,33.187323],[102.859393,33.18688],[102.859235,33.186823],[102.858977,33.18702],[102.858746,33.187039],[102.858638,33.186848],[102.858553,33.186566],[102.858294,33.186339],[102.857964,33.186082],[102.857712,33.186129],[102.857578,33.186476],[102.857428,33.186812],[102.857288,33.186878],[102.857127,33.186833],[102.85706,33.186716],[102.856954,33.186002],[102.856835,33.185578],[102.856712,33.185359],[102.856502,33.185369],[102.856291,33.185584],[102.856065,33.185865],[102.855846,33.185837],[102.855861,33.185676],[102.856055,33.18546],[102.856193,33.185223],[102.856161,33.185002],[102.855977,33.184947],[102.85541,33.185052],[102.855164,33.185104],[102.854868,33.18493],[102.854544,33.184654],[102.854266,33.184372],[102.853971,33.184332],[102.853548,33.184514],[102.853386,33.184747],[102.853271,33.185035],[102.853149,33.185151],[102.852927,33.185096],[102.85259,33.184497],[102.852272,33.184126],[102.851538,33.184096],[102.851029,33.184095],[102.850819,33.183976],[102.850898,33.183715],[102.851108,33.18347],[102.851651,33.183053],[102.851841,33.182918],[102.851944,33.182979],[102.852051,33.18333],[102.85214,33.183616],[102.852448,33.183722],[102.852772,33.18371],[102.853136,33.183586],[102.853239,33.183504],[102.85319,33.183439],[102.852919,33.183342],[102.852804,33.18326],[102.852761,33.183031],[102.852691,33.18277],[102.852552,33.182487],[102.852549,33.182296],[102.852663,33.182093],[102.852848,33.181963],[102.853024,33.181977],[102.853154,33.182295],[102.853336,33.182695],[102.853636,33.182961],[102.853893,33.183215],[102.854064,33.183327],[102.854177,33.183334],[102.854236,33.183283],[102.85431,33.183057],[102.854372,33.182789],[102.854584,33.182508],[102.854597,33.182196],[102.854615,33.181885],[102.854627,33.181643],[102.854435,33.181477],[102.854056,33.181274],[102.853915,33.181135],[102.853887,33.181026],[102.853948,33.180836],[102.854027,33.180679],[102.854121,33.18066],[102.854372,33.180787],[102.854603,33.180874],[102.85484,33.180846],[102.854965,33.180722],[102.854971,33.180526],[102.854888,33.180189],[102.854819,33.179859],[102.854861,33.17962],[102.855038,33.179555],[102.855208,33.179613],[102.855286,33.179729],[102.8552,33.179943],[102.855175,33.180115],[102.855288,33.180313],[102.855445,33.180412],[102.855702,33.180375],[102.85608,33.18014],[102.856415,33.179975],[102.856454,33.179801],[102.856238,33.17942],[102.855804,33.179088],[102.855364,33.178674],[102.855138,33.178474],[102.854903,33.178352],[102.854849,33.178117],[102.854894,33.177926],[102.855164,33.177819],[102.855763,33.177666],[102.856151,33.177578],[102.856483,33.177428],[102.856698,33.177297],[102.85676,33.177042],[102.856723,33.176825],[102.856598,33.176491],[102.856289,33.176468],[102.855851,33.176542],[102.855665,33.176531],[102.855556,33.176287],[102.855606,33.176157],[102.856038,33.176036],[102.856167,33.175862],[102.856057,33.175644],[102.855541,33.175322],[102.855369,33.175146],[102.855425,33.17492],[102.855619,33.174788],[102.856024,33.174698],[102.856441,33.174547],[102.856567,33.174424],[102.856708,33.174051],[102.856968,33.173815],[102.857242,33.173623],[102.857395,33.173369],[102.857299,33.173132],[102.857016,33.173076],[102.856714,33.173269],[102.856494,33.173635],[102.856328,33.173994],[102.856179,33.174188],[102.85594,33.174207],[102.855776,33.174117],[102.855707,33.17396],[102.855719,33.173823],[102.855868,33.173689],[102.856137,33.173504],[102.856217,33.17329],[102.856086,33.173109],[102.855663,33.172954],[102.855221,33.172888],[102.854684,33.172877],[102.854534,33.17279],[102.854494,33.172654],[102.854404,33.172652],[102.85435,33.172652],[102.854332,33.173127],[102.854302,33.173219],[102.854238,33.173342],[102.853906,33.173709],[102.85351,33.174122],[102.853463,33.174094],[102.853418,33.174068],[102.852959,33.173695],[102.852582,33.173393],[102.852331,33.173199],[102.852301,33.173148],[102.852237,33.173137],[102.852192,33.173125],[102.85214,33.173095],[102.852099,33.173051],[102.852082,33.173006],[102.852073,33.172976],[102.852058,33.172935],[102.852044,33.172905],[102.85213,33.172768],[102.852718,33.172623],[102.853644,33.17233],[102.854049,33.172126],[102.85433,33.171874],[102.854426,33.171789],[102.854437,33.171779],[102.854511,33.171713],[102.854901,33.171467],[102.855005,33.171286],[102.855041,33.171202],[102.855157,33.171219],[102.855461,33.171429],[102.855469,33.171435],[102.855523,33.171488],[102.855532,33.171497],[102.855575,33.171539],[102.855642,33.171499],[102.855636,33.171369],[102.855686,33.171148],[102.855806,33.170955],[102.855947,33.17082],[102.856081,33.170778],[102.856186,33.170805],[102.856257,33.170989],[102.856113,33.171284],[102.856043,33.171431],[102.85606,33.171533],[102.856245,33.171608],[102.85629,33.17162],[102.856267,33.171576],[102.856317,33.171582],[102.856331,33.171578],[102.856337,33.171558],[102.856336,33.171525],[102.85633,33.171511],[102.85631,33.171476],[102.856287,33.171378],[102.85628,33.171261],[102.856289,33.171179],[102.856312,33.171128],[102.856314,33.171125],[102.856339,33.171101],[102.856363,33.171088],[102.856393,33.17108],[102.85643,33.17108],[102.856459,33.171087],[102.856492,33.171103],[102.856514,33.17112],[102.856562,33.171184],[102.856601,33.171244],[102.856675,33.171325],[102.856761,33.171403],[102.85679,33.171408],[102.856807,33.171396],[102.856807,33.171369],[102.856801,33.171337],[102.856786,33.171303],[102.856779,33.171275],[102.856777,33.171246],[102.856805,33.171211],[102.856845,33.171171],[102.856903,33.171114],[102.85694,33.171077],[102.856957,33.17105],[102.856946,33.170997],[102.856935,33.170937],[102.856924,33.170884],[102.856924,33.170825],[102.856938,33.170765],[102.856957,33.170714],[102.856962,33.170674],[102.856962,33.170616],[102.856957,33.170575],[102.85694,33.170544],[102.856898,33.17051],[102.856807,33.170497],[102.856712,33.170487],[102.856585,33.170469],[102.856386,33.170435],[102.856287,33.17043],[102.856173,33.170398],[102.856108,33.17036],[102.85609,33.170345],[102.856063,33.170315],[102.85605,33.170283],[102.856049,33.170249],[102.856064,33.170227],[102.856097,33.170204],[102.856143,33.170184],[102.856186,33.17017],[102.856207,33.170157],[102.856233,33.170104],[102.85626,33.170055],[102.856315,33.170021],[102.856364,33.170004],[102.856442,33.169986],[102.85653,33.169983],[102.856572,33.169987],[102.856613,33.170009],[102.85666,33.170041],[102.856697,33.17006],[102.856735,33.170068],[102.856783,33.170071],[102.856835,33.170071],[102.856879,33.170054],[102.856916,33.170026],[102.856942,33.169997],[102.856947,33.169976],[102.856944,33.169959],[102.856928,33.169946],[102.856891,33.169935],[102.856839,33.16992],[102.856788,33.169907],[102.856709,33.169865],[102.856671,33.169839],[102.856625,33.169799],[102.856601,33.169763],[102.856589,33.169718],[102.856585,33.169674],[102.856597,33.169639],[102.856641,33.169596],[102.856683,33.169562],[102.856704,33.169532],[102.856706,33.169484],[102.856692,33.169455],[102.856653,33.16942],[102.856612,33.169411],[102.856552,33.169407],[102.856501,33.169407],[102.856448,33.169426],[102.856363,33.169483],[102.856326,33.169505],[102.856274,33.169541],[102.856246,33.16956],[102.856212,33.16957],[102.856156,33.169578],[102.856104,33.169579],[102.856061,33.169569],[102.856027,33.169536],[102.855999,33.169492],[102.85598,33.169407],[102.855948,33.16934],[102.855918,33.169305],[102.85589,33.169255],[102.855874,33.169204],[102.855865,33.169169],[102.855842,33.169141],[102.85581,33.169145],[102.855764,33.169166],[102.855712,33.169172],[102.855675,33.169172],[102.855528,33.169169],[102.855521,33.16917],[102.855477,33.169174],[102.855413,33.16919],[102.855382,33.169193],[102.855341,33.169185],[102.855296,33.169159],[102.855252,33.169131],[102.85521,33.169108],[102.855195,33.169088],[102.855186,33.169059],[102.855192,33.169022],[102.855212,33.168993],[102.855245,33.168964],[102.855308,33.16893],[102.855409,33.168881],[102.855466,33.168844],[102.855513,33.168811],[102.855595,33.168758],[102.855594,33.168696],[102.855583,33.168693],[102.855547,33.168681],[102.855518,33.168681],[102.855457,33.168681],[102.855403,33.168671],[102.855358,33.168637],[102.855329,33.168594],[102.855319,33.168555],[102.85532,33.16852],[102.855337,33.168482],[102.855371,33.168453],[102.855406,33.168438],[102.855463,33.168429],[102.855538,33.16843],[102.855609,33.168429],[102.85572,33.168431],[102.855734,33.168435],[102.855756,33.168447],[102.855788,33.168459],[102.855817,33.168462],[102.855838,33.168458],[102.855857,33.168446],[102.85587,33.168433],[102.855949,33.168487],[102.855983,33.168388],[102.855992,33.168367],[102.856004,33.168361],[102.856021,33.168364],[102.856034,33.168371],[102.856094,33.168422],[102.856149,33.168464],[102.85618,33.168471],[102.856219,33.168475],[102.856263,33.168472],[102.856297,33.168464],[102.856326,33.168455],[102.856354,33.168429],[102.856371,33.168405],[102.856378,33.16838],[102.856379,33.168347],[102.856373,33.16831],[102.856368,33.1683],[102.856349,33.168261],[102.856335,33.168224],[102.85632,33.16818],[102.856309,33.168124],[102.856313,33.168071],[102.856313,33.168053],[102.856312,33.168014],[102.856306,33.167983],[102.856292,33.167954],[102.856258,33.167899],[102.856256,33.167881],[102.856262,33.167865],[102.856278,33.167848],[102.856333,33.167814],[102.856354,33.167807],[102.8565,33.16775],[102.856545,33.167745],[102.856569,33.167743],[102.856592,33.167748],[102.856599,33.167758],[102.856603,33.167773],[102.856603,33.167797],[102.856595,33.167834],[102.856582,33.167874],[102.856551,33.167918],[102.856521,33.167951],[102.856449,33.168129],[102.856441,33.168165],[102.856444,33.168215],[102.856458,33.168259],[102.856489,33.168322],[102.856517,33.168351],[102.856574,33.168388],[102.856622,33.168396],[102.856693,33.168403],[102.85676,33.168403],[102.85681,33.168398],[102.856843,33.168379],[102.856859,33.168364],[102.856863,33.168345],[102.85686,33.168311],[102.85685,33.168257],[102.856841,33.168213],[102.85684,33.168189],[102.856843,33.168161],[102.856856,33.168134],[102.856872,33.168127],[102.856884,33.168128],[102.856926,33.16813],[102.856987,33.168142],[102.856966,33.168075],[102.856943,33.168003],[102.856908,33.167892],[102.856597,33.167662],[102.856167,33.167472],[102.855957,33.167187],[102.85588,33.166919],[102.855953,33.166653],[102.85634,33.166533],[102.8566,33.166584],[102.856625,33.166589],[102.856673,33.166599],[102.856691,33.166602],[102.856692,33.166568],[102.856688,33.166519],[102.856711,33.166475],[102.856746,33.166441],[102.85679,33.166425],[102.856835,33.166424],[102.856868,33.166425],[102.856906,33.166414],[102.85696,33.166411],[102.857132,33.16644],[102.857208,33.166477],[102.857252,33.166501],[102.857284,33.166519],[102.857291,33.166525],[102.857302,33.166535],[102.857309,33.166554],[102.857307,33.166574],[102.857276,33.166588],[102.857175,33.166641],[102.857104,33.166699],[102.85706,33.16675],[102.857039,33.166796],[102.857034,33.166819],[102.85703,33.166857],[102.857039,33.166879],[102.857051,33.166896],[102.857076,33.166912],[102.8571,33.166922],[102.857122,33.166926],[102.857643,33.167564],[102.857711,33.167647],[102.857718,33.167656],[102.857736,33.167605],[102.857777,33.16751],[102.857799,33.167465],[102.857825,33.16744],[102.857857,33.167432],[102.857942,33.167426],[102.858038,33.16743],[102.858071,33.167444],[102.858093,33.167467],[102.858114,33.167501],[102.85813,33.167542],[102.858139,33.16759],[102.858135,33.167654],[102.858095,33.167748],[102.858029,33.167835],[102.857972,33.167881],[102.857922,33.167907],[102.857931,33.167917],[102.857959,33.167952],[102.858248,33.16842],[102.858524,33.168762],[102.858712,33.169257],[102.859056,33.169544],[102.859239,33.169561],[102.859343,33.169437],[102.8594,33.169228],[102.859404,33.169211],[102.859409,33.169194],[102.859416,33.169167],[102.859616,33.169344],[102.859826,33.169508],[102.859929,33.169577],[102.860084,33.169589],[102.860213,33.169551],[102.860249,33.169469],[102.860098,33.169344],[102.859809,33.169103],[102.859713,33.168954],[102.859743,33.168882],[102.859907,33.168838],[102.860066,33.168801],[102.860218,33.168672],[102.860316,33.168625],[102.860453,33.168635],[102.860573,33.16873],[102.860881,33.168954],[102.861059,33.16906],[102.861351,33.169146],[102.861687,33.169168],[102.861936,33.169123],[102.862153,33.169042],[102.862234,33.168919],[102.862206,33.168813],[102.862067,33.168776],[102.861749,33.168787],[102.861583,33.168773],[102.861505,33.168555],[102.861402,33.168229],[102.861444,33.168095],[102.861512,33.168096],[102.861593,33.168154],[102.861677,33.168331],[102.861776,33.168376],[102.861926,33.168373],[102.862051,33.168323],[102.862176,33.168216],[102.862212,33.168096],[102.862188,33.167935],[102.862176,33.167832],[102.862227,33.167727],[102.862307,33.167643],[102.862477,33.167608],[102.86265,33.167623],[102.862764,33.167736],[102.862836,33.167979],[102.862874,33.168211],[102.862941,33.168382],[102.86302,33.168427],[102.86317,33.168344],[102.863342,33.168191],[102.863466,33.168173],[102.863676,33.168258],[102.864056,33.168472],[102.864278,33.168436],[102.864555,33.168273],[102.864779,33.168146],[102.864866,33.168042],[102.864756,33.167881],[102.864747,33.167748],[102.864819,33.167533],[102.864892,33.167447],[102.865339,33.167433],[102.865508,33.167464],[102.865703,33.16752],[102.866066,33.167791],[102.866426,33.167984],[102.866879,33.16811],[102.86713,33.168122],[102.867306,33.168085],[102.8675,33.167968],[102.86763,33.167738],[102.86762,33.167553],[102.867519,33.167525],[102.867305,33.167618],[102.867033,33.167719],[102.866774,33.167739],[102.866645,33.167692],[102.866659,33.167582],[102.866786,33.167427],[102.866766,33.167386],[102.866764,33.167381],[102.86676,33.167373],[102.866544,33.166939],[102.866131,33.165877],[102.865702,33.165501],[102.86546,33.165128],[102.865616,33.16495],[102.865665,33.164893],[102.865868,33.164661],[102.866586,33.164357],[102.866885,33.164063],[102.86706,33.16375],[102.867022,33.163591],[102.866848,33.163563],[102.866805,33.163586],[102.866747,33.163615],[102.866604,33.163657],[102.86647,33.163684],[102.866401,33.163689],[102.866274,33.163688],[102.866189,33.163679],[102.866129,33.163664],[102.866087,33.163638],[102.866067,33.16362],[102.866049,33.163623],[102.866019,33.163627],[102.865602,33.163567],[102.865361,33.163177],[102.865747,33.162779],[102.866115,33.162514],[102.866124,33.162507],[102.866102,33.162461],[102.86609,33.162408],[102.866091,33.162355],[102.866104,33.162299],[102.866144,33.162241],[102.866243,33.162176],[102.866373,33.162138],[102.866468,33.162123],[102.866534,33.162126],[102.866565,33.162137],[102.866571,33.16213],[102.866684,33.162022],[102.86663,33.16167],[102.866535,33.161265],[102.866454,33.161227],[102.866143,33.161082],[102.865944,33.161058],[102.865943,33.161156],[102.865898,33.161269],[102.865759,33.16138],[102.865705,33.161424],[102.865589,33.161469],[102.865401,33.161506],[102.86525,33.161519],[102.864999,33.161521],[102.864873,33.161516],[102.864783,33.161509],[102.864754,33.161533],[102.864355,33.161631],[102.863879,33.161447],[102.863574,33.161108],[102.863502,33.160633],[102.863574,33.160248],[102.863895,33.159937],[102.864074,33.159931],[102.864087,33.15993],[102.864097,33.15993],[102.864172,33.159927],[102.864195,33.159734],[102.864263,33.159523],[102.864366,33.159369],[102.864538,33.159352],[102.86477,33.159426],[102.864819,33.159546],[102.864648,33.159691],[102.864468,33.159805],[102.864448,33.159918],[102.864519,33.159978],[102.864647,33.159967],[102.8648,33.159867],[102.864926,33.159835],[102.865059,33.159868],[102.865293,33.159982],[102.865668,33.15994],[102.865844,33.159867],[102.865913,33.159812],[102.865897,33.159707],[102.865596,33.159537],[102.865281,33.159241],[102.865248,33.159128],[102.865324,33.159033],[102.865406,33.159015],[102.865422,33.158975],[102.865555,33.158631],[102.86563,33.158123],[102.865664,33.157596],[102.865764,33.156895],[102.86569,33.156508],[102.865472,33.156047],[102.864896,33.155651],[102.864531,33.155241],[102.864187,33.15476],[102.864053,33.154249],[102.863919,33.153772],[102.863801,33.153472],[102.863529,33.153375],[102.863523,33.153372],[102.863483,33.153358],[102.863418,33.153405],[102.863339,33.153423],[102.863233,33.153429],[102.863146,33.153478],[102.86303,33.153675],[102.862897,33.153876],[102.862698,33.154113],[102.862604,33.154185],[102.862501,33.154205],[102.862377,33.154192],[102.862288,33.154155],[102.862199,33.154105],[102.8622,33.154043],[102.86223,33.153974],[102.862327,33.153945],[102.86244,33.153904],[102.86254,33.153853],[102.862582,33.153802],[102.862541,33.153721],[102.862478,33.153719],[102.862326,33.153777],[102.862241,33.153789],[102.862159,33.153744],[102.861951,33.153617],[102.861786,33.153597],[102.861669,33.153586],[102.861568,33.153538],[102.861445,33.153399],[102.86138,33.153301],[102.861378,33.153225],[102.861412,33.153129],[102.861445,33.153084],[102.861501,33.153072],[102.861592,33.153088],[102.861669,33.153154],[102.861797,33.153295],[102.861934,33.15344],[102.862053,33.153518],[102.862172,33.153568],[102.862262,33.153572],[102.862355,33.153554],[102.862383,33.153511],[102.862346,33.153449],[102.862139,33.153353],[102.861932,33.153235],[102.861884,33.153142],[102.861933,33.15307],[102.861989,33.153035],[102.862068,33.153041],[102.862212,33.153072],[102.862355,33.153086],[102.862453,33.153064],[102.862465,33.153008],[102.862458,33.15295],[102.862352,33.15288],[102.862113,33.152775],[102.862011,33.152698],[102.861962,33.152606],[102.862004,33.152495],[102.862058,33.152421],[102.862075,33.152367],[102.862069,33.152279],[102.862069,33.152217],[102.862039,33.152125],[102.861971,33.15208],[102.861823,33.152065],[102.861664,33.152065],[102.861555,33.152114],[102.861509,33.152158],[102.861504,33.152214],[102.861546,33.152268],[102.861624,33.152334],[102.861647,33.152404],[102.861616,33.152473],[102.861549,33.152506],[102.861424,33.152514],[102.861298,33.152558],[102.861222,33.152602],[102.861199,33.152716],[102.861229,33.152841],[102.86129,33.152994],[102.861275,33.15311],[102.861209,33.153191],[102.861123,33.153199],[102.861085,33.15315],[102.861046,33.153017],[102.860979,33.15291],[102.860837,33.152894],[102.860474,33.152937],[102.860215,33.152977],[102.860054,33.153038],[102.859935,33.153071],[102.859868,33.153076],[102.859809,33.153063],[102.859773,33.153084],[102.859765,33.153089],[102.859653,33.153154],[102.859383,33.153097],[102.859159,33.152865],[102.859028,33.152578],[102.858981,33.152475],[102.858995,33.152278],[102.858998,33.152237],[102.859004,33.152152],[102.859012,33.152037],[102.859012,33.151914],[102.859011,33.15167],[102.859011,33.151654],[102.859011,33.151537],[102.85901,33.151264],[102.85898,33.150789],[102.858822,33.1504],[102.858096,33.150194],[102.857882,33.150306],[102.857872,33.150312],[102.857839,33.150329],[102.857815,33.150341],[102.857804,33.150347],[102.857314,33.150602],[102.856594,33.151029],[102.855902,33.15114],[102.855704,33.151558],[102.855693,33.151609],[102.855689,33.151627],[102.855697,33.151634],[102.85571,33.151645],[102.855729,33.151658],[102.855752,33.151676],[102.855774,33.151695],[102.855803,33.15173],[102.855824,33.151769],[102.85583,33.151806],[102.855829,33.151844],[102.855822,33.151871],[102.855806,33.151899],[102.855789,33.151913],[102.855746,33.151933],[102.855704,33.151944],[102.855684,33.151956],[102.855643,33.151981],[102.855608,33.152005],[102.855547,33.152032],[102.855457,33.152109],[102.85541,33.152176],[102.85544,33.152273],[102.855508,33.152364],[102.855379,33.15251],[102.855372,33.152518],[102.855307,33.152592],[102.855174,33.152744],[102.854841,33.152703],[102.854557,33.152364],[102.854651,33.151927],[102.854685,33.151383],[102.85451,33.150835],[102.854155,33.149986],[102.853415,33.148458],[102.8534,33.148427],[102.853204,33.147897],[102.853194,33.14744],[102.853354,33.147254],[102.853364,33.147242],[102.853387,33.147215],[102.8534,33.147209],[102.853313,33.147122],[102.853303,33.147027],[102.853351,33.146871],[102.853444,33.146772],[102.853561,33.146715],[102.853679,33.146759],[102.853843,33.146878],[102.854015,33.14711],[102.854104,33.147179],[102.854224,33.14718],[102.854312,33.147169],[102.854387,33.147135],[102.854392,33.147019],[102.854388,33.146909],[102.854436,33.146795],[102.854548,33.146725],[102.854734,33.146718],[102.854999,33.146813],[102.855105,33.146836],[102.855157,33.146821],[102.855235,33.146732],[102.855236,33.146616],[102.855192,33.146522],[102.855086,33.14641],[102.855055,33.146318],[102.85511,33.146201],[102.855179,33.146183],[102.855352,33.146178],[102.85545,33.146149],[102.855534,33.146069],[102.855653,33.146024],[102.855822,33.146085],[102.855956,33.146215],[102.855979,33.146311],[102.855919,33.14642],[102.855659,33.146507],[102.855495,33.146601],[102.855453,33.146737],[102.855498,33.146889],[102.855579,33.146957],[102.855717,33.14691],[102.855852,33.146782],[102.856006,33.146612],[102.856168,33.146517],[102.856284,33.146505],[102.856384,33.146497],[102.856472,33.146434],[102.856421,33.146351],[102.856377,33.146316],[102.856424,33.146239],[102.856477,33.146163],[102.856461,33.146098],[102.856332,33.146023],[102.856272,33.145942],[102.856248,33.145822],[102.856245,33.145579],[102.856239,33.145446],[102.85616,33.145378],[102.856066,33.145388],[102.856045,33.145471],[102.856094,33.145585],[102.856089,33.14567],[102.855974,33.145804],[102.855789,33.145868],[102.855599,33.145876],[102.855516,33.145842],[102.85554,33.145764],[102.855598,33.145652],[102.855613,33.145539],[102.855509,33.145482],[102.855225,33.145487],[102.854947,33.145547],[102.854776,33.145569],[102.85455,33.145567],[102.85439,33.145581],[102.854226,33.145579],[102.854034,33.145519],[102.853896,33.145411],[102.853781,33.145297],[102.853699,33.145148],[102.8537,33.145038],[102.853755,33.144926],[102.853837,33.14487],[102.853821,33.144845],[102.853817,33.144838],[102.853756,33.144743],[102.853749,33.144732],[102.85365,33.144798],[102.85354,33.144859],[102.853486,33.14488],[102.853441,33.144889],[102.85342,33.144891],[102.853389,33.144883],[102.853364,33.144872],[102.853336,33.144851],[102.85331,33.144793],[102.853263,33.144665],[102.853239,33.144635],[102.853213,33.144591],[102.853198,33.144572],[102.853181,33.144557],[102.853164,33.144545],[102.853148,33.144523],[102.853139,33.144507],[102.853134,33.144491],[102.853135,33.144481],[102.853092,33.144486],[102.853061,33.1445],[102.853022,33.144513],[102.852993,33.144536],[102.852982,33.144554],[102.852969,33.144585],[102.852957,33.144616],[102.852938,33.144657],[102.852936,33.144686],[102.852939,33.144708],[102.852951,33.144732],[102.852965,33.144764],[102.852932,33.144777],[102.852482,33.144951],[102.85227,33.145088],[102.852083,33.145032],[102.852192,33.144876],[102.852429,33.144564],[102.852716,33.143919],[102.853168,33.143365],[102.853763,33.142953],[102.854334,33.142629],[102.855242,33.142224],[102.855628,33.141791],[102.855825,33.141443],[102.855855,33.14104],[102.855716,33.140756],[102.855567,33.14069],[102.85556,33.140705],[102.855553,33.14073],[102.855528,33.140789],[102.855493,33.140839],[102.855441,33.140877],[102.855349,33.1409],[102.855249,33.140936],[102.855172,33.140954],[102.855143,33.140953],[102.855073,33.140935],[102.855063,33.140926],[102.855043,33.140907],[102.855021,33.140868],[102.855005,33.140816],[102.854985,33.140758],[102.854965,33.140707],[102.854951,33.140664],[102.854952,33.140618],[102.854982,33.140539],[102.854987,33.140525],[102.854948,33.140517],[102.854846,33.140495],[102.85473,33.140365],[102.854561,33.140174],[102.854537,33.139898],[102.854528,33.139805],[102.854451,33.13954],[102.854293,33.139168],[102.854186,33.139134],[102.854173,33.139158],[102.854139,33.139216],[102.854106,33.139261],[102.854048,33.139305],[102.853982,33.139336],[102.853909,33.139338],[102.853866,33.139336],[102.853832,33.139319],[102.853798,33.139281],[102.853786,33.139245],[102.853791,33.139229],[102.853795,33.139206],[102.853816,33.139177],[102.853841,33.139155],[102.853863,33.139138],[102.853877,33.139125],[102.853881,33.139114],[102.853873,33.139094],[102.853864,33.139078],[102.853854,33.139064],[102.853848,33.139052],[102.85381,33.139045],[102.853567,33.138998],[102.853436,33.13895],[102.853423,33.138881],[102.853413,33.13886],[102.853393,33.138841],[102.853376,33.138832],[102.853345,33.138832],[102.853316,33.138835],[102.853286,33.138848],[102.853256,33.138865],[102.853244,33.138881],[102.85322,33.138914],[102.853205,33.138929],[102.853177,33.13895],[102.85316,33.138958],[102.853139,33.138962],[102.853122,33.138961],[102.853107,33.138956],[102.853098,33.138939],[102.853092,33.138913],[102.853089,33.13888],[102.853089,33.138839],[102.853088,33.138824],[102.853035,33.138805],[102.853026,33.138802],[102.853008,33.138794],[102.852986,33.138727],[102.852872,33.138371],[102.852869,33.138295],[102.852861,33.138121],[102.852832,33.137457],[102.852469,33.136941],[102.852266,33.13679],[102.852248,33.136776],[102.852215,33.136781],[102.852173,33.136778],[102.852128,33.136758],[102.852118,33.136748],[102.852105,33.136728],[102.852095,33.136698],[102.852091,33.136678],[102.852091,33.136659],[102.85209,33.136639],[102.852104,33.136603],[102.852123,33.136568],[102.852121,33.136544],[102.852112,33.136522],[102.852095,33.136494],[102.852053,33.136475],[102.852017,33.136465],[102.851979,33.136456],[102.851946,33.136454],[102.851923,33.136459],[102.851891,33.136467],[102.851868,33.136476],[102.851847,33.13649],[102.851832,33.136504],[102.851827,33.136512],[102.851798,33.136513],[102.851779,33.136511],[102.851751,33.136504],[102.851723,33.136495],[102.851702,33.136484],[102.851688,33.136473],[102.851671,33.136459],[102.851627,33.136446],[102.851521,33.136416],[102.851189,33.136322],[102.851047,33.136144],[102.851015,33.135757],[102.851089,33.135465],[102.851131,33.135302],[102.851124,33.135206],[102.8511,33.134863],[102.851046,33.134493],[102.850457,33.133798],[102.8502,33.133214],[102.850197,33.132493],[102.850642,33.131377],[102.850819,33.130941],[102.85087,33.130573],[102.850987,33.130066],[102.851337,33.129387],[102.852286,33.128138],[102.852825,33.127445],[102.853441,33.126173],[102.853662,33.125633],[102.85372,33.124966],[102.853622,33.123875],[102.853509,33.123364],[102.853504,33.122696],[102.85348,33.121958],[102.853571,33.120801],[102.853982,33.12021],[102.85412,33.119686],[102.854174,33.119177],[102.854178,33.11916],[102.854181,33.11914],[102.854166,33.119131],[102.854095,33.119045],[102.854038,33.118965],[102.853966,33.118863],[102.853949,33.118823],[102.853947,33.118778],[102.853954,33.118751],[102.853972,33.118723],[102.853997,33.118714],[102.854031,33.118709],[102.854077,33.118712],[102.854094,33.118716],[102.854139,33.118735],[102.854212,33.118761],[102.854248,33.118772],[102.854286,33.118788],[102.854301,33.118794],[102.854335,33.118801],[102.854376,33.118803],[102.854399,33.118796],[102.854413,33.118787],[102.85441,33.118759],[102.854394,33.118731],[102.854362,33.118723],[102.854306,33.118726],[102.854291,33.11872],[102.854252,33.118707],[102.854225,33.118689],[102.854211,33.118663],[102.854213,33.118627],[102.854217,33.118592],[102.854223,33.118562],[102.854222,33.118521],[102.854211,33.118491],[102.854193,33.118461],[102.854175,33.118441],[102.854151,33.11842],[102.854129,33.118395],[102.854114,33.118362],[102.854114,33.118314],[102.854131,33.118289],[102.854148,33.11827],[102.854176,33.118258],[102.854211,33.118248],[102.854234,33.11824],[102.854264,33.11824],[102.854298,33.118248],[102.854455,33.117953],[102.854543,33.117761],[102.854426,33.117408],[102.854206,33.117035],[102.854051,33.11654],[102.854168,33.116016],[102.854244,33.115437],[102.85473,33.114357],[102.855313,33.113541],[102.855896,33.112743],[102.856485,33.111682],[102.856583,33.111086],[102.856575,33.110577],[102.856712,33.110087],[102.857035,33.109324],[102.857044,33.109303],[102.857054,33.109278],[102.857133,33.109093],[102.857773,33.107899],[102.85779,33.107866],[102.85783,33.107792],[102.857804,33.10779],[102.857774,33.107783],[102.857748,33.107772],[102.857732,33.107759],[102.857725,33.107741],[102.857732,33.107722],[102.857747,33.107706],[102.857769,33.10769],[102.857799,33.107671],[102.857822,33.10766],[102.857842,33.107648],[102.857869,33.107631],[102.857891,33.107625],[102.857909,33.107607],[102.857915,33.107591],[102.85791,33.107566],[102.85789,33.107543],[102.857995,33.107105],[102.858042,33.1067],[102.858048,33.10665],[102.858049,33.106638],[102.858054,33.106595],[102.858056,33.106573],[102.8581,33.106194],[102.858459,33.10575],[102.858533,33.105658],[102.858535,33.105655],[102.858601,33.105574],[102.858591,33.105555],[102.858585,33.105536],[102.858585,33.105513],[102.858593,33.1055],[102.858625,33.105504],[102.858651,33.105511],[102.858744,33.10554],[102.858816,33.10557],[102.85888,33.105546],[102.858932,33.105501],[102.858947,33.105411],[102.858942,33.105392],[102.858927,33.105335],[102.858881,33.105272],[102.858861,33.105255],[102.858842,33.10523],[102.858841,33.105217],[102.858854,33.105195],[102.858874,33.105183],[102.85889,33.105181],[102.858917,33.105196],[102.85894,33.105212],[102.859009,33.105141],[102.859011,33.105138],[102.85943,33.104706],[102.859614,33.104024],[102.85946,33.102616],[102.859505,33.101633],[102.859586,33.100879],[102.860109,33.100093],[102.860259,33.099867],[102.860262,33.099833],[102.860267,33.099809],[102.860274,33.09978],[102.860286,33.099765],[102.860306,33.099764],[102.86032,33.099766],[102.860332,33.099777],[102.86055,33.099531],[102.860823,33.099223],[102.860808,33.099205],[102.8608,33.099188],[102.860783,33.099167],[102.860767,33.099153],[102.860743,33.099141],[102.860719,33.099122],[102.86071,33.099107],[102.860705,33.099086],[102.860713,33.099037],[102.860716,33.099011],[102.860725,33.098969],[102.860733,33.098949],[102.860737,33.098931],[102.860741,33.098919],[102.860755,33.098913],[102.860786,33.098915],[102.860807,33.098916],[102.860836,33.098903],[102.860862,33.09888],[102.860904,33.098841],[102.86093,33.098823],[102.86095,33.098794],[102.860968,33.098759],[102.860981,33.098735],[102.860991,33.098698],[102.861004,33.098666],[102.86101,33.098642],[102.861023,33.098613],[102.861033,33.098598],[102.861044,33.098582],[102.86106,33.098556],[102.861061,33.098539],[102.861061,33.098533],[102.861065,33.098389],[102.861071,33.098129],[102.85994,33.097442],[102.85889,33.096845],[102.858509,33.09655],[102.858194,33.096306],[102.857046,33.095461],[102.856554,33.095223],[102.855045,33.094495],[102.854324,33.094114],[102.852894,33.093258],[102.852889,33.093255],[102.852391,33.092957],[102.851535,33.092755],[102.851526,33.092753],[102.851453,33.092736],[102.851419,33.092728],[102.851355,33.092713],[102.850522,33.092517],[102.850378,33.092483],[102.850402,33.091519],[102.850403,33.09149],[102.850422,33.09071],[102.850374,33.089233],[102.850086,33.086506],[102.850318,33.085526],[102.850301,33.0844],[102.850301,33.084383],[102.8503,33.084349],[102.850294,33.083945],[102.850058,33.08164],[102.849713,33.080503],[102.849112,33.080743],[102.849001,33.080629],[102.848998,33.080643],[102.848969,33.080701],[102.848963,33.080715],[102.848931,33.080737],[102.848885,33.080757],[102.848817,33.080776],[102.848758,33.080799],[102.848731,33.080818],[102.848701,33.08087],[102.848697,33.080876],[102.848697,33.080876],[102.848658,33.080933],[102.84862,33.080975],[102.848577,33.081023],[102.84849,33.081112],[102.84839,33.081165],[102.848321,33.081192],[102.848238,33.081223],[102.84815,33.081248],[102.848028,33.081272],[102.847929,33.081285],[102.847819,33.0813],[102.847683,33.081317],[102.847586,33.081323],[102.847443,33.08131],[102.847221,33.081334],[102.846558,33.081086],[102.846283,33.080984],[102.845445,33.080591],[102.845398,33.080569],[102.845381,33.080562],[102.845363,33.080553],[102.845361,33.080552],[102.845298,33.080522],[102.845257,33.080503],[102.84525,33.080499],[102.844655,33.080159],[102.844559,33.079789],[102.844514,33.079618],[102.844512,33.07961],[102.84451,33.079602],[102.844508,33.079591],[102.844487,33.079513],[102.844495,33.079459]]]]},"properties":{"cp":[102.93341761730755,33.11135771891013],"code":"513233207","name":"麦洼乡","level":"street","center":[102.93341761730755,33.11135771891013],"fullCode":"513233207000","fullName":"四川省阿坝藏族羌族自治州红原县麦洼乡","acreageMu":838703.39,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.918,32.9156]}},{"id":"513233208","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.876403,32.917034],[102.877821,32.917289],[102.87904,32.917509],[102.879321,32.91756],[102.879803,32.917647],[102.880757,32.917692],[102.881664,32.916844],[102.882087,32.916275],[102.883036,32.91514],[102.883882,32.914004],[102.884545,32.913353],[102.885692,32.91248],[102.886416,32.912147],[102.887136,32.912016],[102.890012,32.910136],[102.891018,32.909434],[102.891588,32.908408],[102.892434,32.907242],[102.89303,32.906561],[102.893252,32.905846],[102.893298,32.905329],[102.893691,32.904587],[102.893877,32.903928],[102.893929,32.903181],[102.893818,32.902114],[102.893743,32.900962],[102.89373,32.90007],[102.893579,32.899262],[102.893845,32.898086],[102.894094,32.897403],[102.894163,32.897215],[102.894356,32.896685],[102.894308,32.895821],[102.894535,32.894904],[102.894937,32.893759],[102.895235,32.8927],[102.895731,32.890464],[102.895751,32.889629],[102.895698,32.888995],[102.895571,32.88859],[102.896146,32.887334],[102.897278,32.885626],[102.897787,32.885186],[102.8978,32.885175],[102.89829,32.884636],[102.89849,32.884389],[102.898817,32.883983],[102.899003,32.883325],[102.899057,32.882491],[102.898709,32.881334],[102.898907,32.878719],[102.899044,32.877282],[102.899108,32.875988],[102.899493,32.874124],[102.899904,32.871167],[102.900589,32.868129],[102.901096,32.866871],[102.901196,32.86552],[102.901659,32.861816],[102.901708,32.861155],[102.901726,32.860407],[102.901703,32.859946],[102.90189,32.85923],[102.901606,32.858247],[102.900999,32.85651],[102.900346,32.85529],[102.900031,32.854191],[102.899529,32.852341],[102.899453,32.851218],[102.899478,32.850182],[102.900031,32.849846],[102.901531,32.849871],[102.902658,32.849775],[102.904054,32.849827],[102.905111,32.849845],[102.906262,32.850181],[102.907379,32.850545],[102.908395,32.850821],[102.908585,32.850862],[102.908603,32.850866],[102.908656,32.850877],[102.908667,32.850879],[102.908682,32.850882],[102.908804,32.850908],[102.908844,32.850917],[102.908868,32.850922],[102.9089,32.850929],[102.909006,32.850952],[102.909152,32.850983],[102.909209,32.850995],[102.909397,32.851035],[102.90952,32.851062],[102.909637,32.851087],[102.909683,32.851097],[102.909691,32.851098],[102.909759,32.851113],[102.909854,32.851133],[102.910971,32.85144],[102.911271,32.851346],[102.912105,32.851084],[102.912774,32.850175],[102.913412,32.849121],[102.914116,32.848183],[102.914301,32.847809],[102.914653,32.847098],[102.914884,32.846419],[102.914945,32.84624],[102.914889,32.845721],[102.914017,32.845102],[102.913605,32.844679],[102.913418,32.844488],[102.912993,32.843704],[102.912231,32.841331],[102.912321,32.840383],[102.912854,32.839471],[102.913864,32.838538],[102.91442,32.838099],[102.915253,32.837439],[102.915502,32.837198],[102.915777,32.83693],[102.915939,32.83581],[102.916265,32.833514],[102.916081,32.832647],[102.916032,32.83184],[102.916115,32.829712],[102.916182,32.828332],[102.916515,32.827186],[102.917569,32.825852],[102.918583,32.824746],[102.919081,32.823862],[102.919542,32.823064],[102.919937,32.822229],[102.920074,32.821821],[102.920294,32.821177],[102.920502,32.819929],[102.920757,32.818833],[102.921287,32.818021],[102.921764,32.817317],[102.922549,32.81651],[102.923798,32.815581],[102.924806,32.815195],[102.92583,32.814612],[102.926973,32.813715],[102.927426,32.813288],[102.927605,32.813305],[102.927719,32.813338],[102.927769,32.813337],[102.927826,32.813299],[102.927881,32.813193],[102.92793,32.813059],[102.927908,32.812834],[102.927929,32.812814],[102.928809,32.811976],[102.929342,32.811574],[102.930562,32.810583],[102.931088,32.810276],[102.931927,32.809785],[102.932352,32.809534],[102.932941,32.809186],[102.933748,32.808709],[102.933789,32.808695],[102.934879,32.808317],[102.936013,32.80783],[102.936063,32.807793],[102.936182,32.807873],[102.936372,32.808],[102.936563,32.808126],[102.936753,32.808253],[102.937055,32.808366],[102.937357,32.80848],[102.937721,32.808585],[102.938085,32.808689],[102.93845,32.808794],[102.938684,32.808886],[102.938914,32.808975],[102.939144,32.809065],[102.939373,32.809155],[102.939603,32.809245],[102.939832,32.809335],[102.940062,32.809424],[102.940291,32.809514],[102.940521,32.809604],[102.940751,32.809694],[102.94098,32.809784],[102.941207,32.809896],[102.941434,32.810007],[102.941662,32.810119],[102.941889,32.810231],[102.942116,32.810343],[102.942343,32.810454],[102.942562,32.810599],[102.942781,32.810745],[102.943,32.81089],[102.94322,32.811035],[102.943439,32.81118],[102.943658,32.811325],[102.943877,32.81147],[102.944096,32.811616],[102.944315,32.811761],[102.944534,32.811906],[102.944753,32.812051],[102.944972,32.812196],[102.945342,32.812425],[102.945712,32.812653],[102.946081,32.812882],[102.946451,32.81311],[102.946787,32.813264],[102.947123,32.813417],[102.947425,32.813501],[102.947752,32.813556],[102.948078,32.81361],[102.94845,32.813735],[102.948798,32.813918],[102.949012,32.814078],[102.949226,32.814238],[102.94944,32.814397],[102.949654,32.814557],[102.949868,32.814716],[102.950083,32.814876],[102.950297,32.815036],[102.950511,32.815195],[102.950725,32.815355],[102.950939,32.815514],[102.951132,32.815656],[102.951325,32.815797],[102.951518,32.815939],[102.951711,32.81608],[102.951903,32.816222],[102.952096,32.816363],[102.952289,32.816505],[102.952482,32.816646],[102.952793,32.816951],[102.953105,32.817255],[102.953416,32.81756],[102.953727,32.817865],[102.954085,32.818098],[102.954444,32.818331],[102.954675,32.818433],[102.954907,32.818535],[102.955168,32.818615],[102.955428,32.818694],[102.955689,32.818773],[102.955949,32.818853],[102.95621,32.818932],[102.95647,32.819011],[102.956731,32.819091],[102.956991,32.81917],[102.957252,32.819249],[102.957512,32.819329],[102.957883,32.819499],[102.958254,32.81967],[102.958625,32.819841],[102.95889,32.820022],[102.959156,32.820204],[102.959454,32.820486],[102.959679,32.820846],[102.959756,32.821084],[102.959832,32.821323],[102.959909,32.821541],[102.959986,32.82176],[102.960082,32.822008],[102.960179,32.822256],[102.960275,32.822504],[102.960371,32.822752],[102.960467,32.823],[102.960563,32.823248],[102.96066,32.823497],[102.960756,32.823745],[102.960852,32.823993],[102.960948,32.824241],[102.96106,32.82448],[102.961171,32.824719],[102.961283,32.824958],[102.961394,32.825197],[102.961427,32.825243],[102.961621,32.825516],[102.961704,32.825577],[102.961899,32.825718],[102.96209,32.825839],[102.962282,32.825961],[102.962473,32.826083],[102.962665,32.826205],[102.962856,32.826326],[102.963048,32.826448],[102.963239,32.82657],[102.963431,32.826691],[102.963621,32.826812],[102.963622,32.826813],[102.963761,32.826901],[102.963814,32.826935],[102.964229,32.827093],[102.964644,32.827252],[102.965059,32.827411],[102.965475,32.82757],[102.96589,32.827728],[102.966084,32.827845],[102.966092,32.82785],[102.966178,32.827902],[102.966467,32.828075],[102.966742,32.828316],[102.96697,32.828636],[102.967049,32.828814],[102.967148,32.829035],[102.967178,32.829262],[102.967208,32.829489],[102.967257,32.829895],[102.967306,32.830301],[102.967318,32.830568],[102.967329,32.830834],[102.967341,32.831101],[102.967353,32.831368],[102.967336,32.831598],[102.967319,32.831829],[102.967302,32.832059],[102.967285,32.83229],[102.967262,32.832526],[102.967239,32.832762],[102.967216,32.832999],[102.967193,32.833235],[102.967174,32.833451],[102.967138,32.833853],[102.967103,32.834255],[102.967067,32.834656],[102.966978,32.834971],[102.966888,32.835285],[102.966755,32.835501],[102.966621,32.835717],[102.966476,32.835902],[102.966332,32.836087],[102.966176,32.836262],[102.966019,32.836437],[102.965863,32.836613],[102.965707,32.836788],[102.96555,32.836964],[102.965394,32.837139],[102.965099,32.837444],[102.964804,32.837749],[102.964508,32.838053],[102.964213,32.838358],[102.964213,32.838359],[102.964212,32.83836],[102.964139,32.838534],[102.964134,32.838691],[102.964223,32.838892],[102.964409,32.839183],[102.964455,32.839256],[102.964687,32.83962],[102.964919,32.839984],[102.965151,32.840348],[102.965275,32.840554],[102.965399,32.84076],[102.965524,32.840966],[102.965648,32.841173],[102.965772,32.841379],[102.965896,32.841585],[102.96602,32.841791],[102.966144,32.841997],[102.966269,32.842203],[102.966339,32.84232],[102.966393,32.842409],[102.966517,32.842615],[102.966641,32.842822],[102.966814,32.84298],[102.966987,32.843139],[102.967159,32.843298],[102.967258,32.843388],[102.967332,32.843456],[102.967505,32.843615],[102.967678,32.843774],[102.96785,32.843932],[102.968023,32.844091],[102.968196,32.84425],[102.968368,32.844409],[102.968493,32.844598],[102.968618,32.844788],[102.968721,32.844994],[102.968742,32.845037],[102.968865,32.845286],[102.968988,32.84569],[102.969112,32.846093],[102.969235,32.846497],[102.969253,32.846725],[102.969272,32.846953],[102.969287,32.847308],[102.969279,32.847664],[102.969214,32.847939],[102.969149,32.848215],[102.969008,32.848594],[102.968867,32.848974],[102.968726,32.849353],[102.968566,32.849716],[102.968406,32.850079],[102.968241,32.850253],[102.968076,32.850428],[102.967911,32.850602],[102.967746,32.850776],[102.967581,32.850951],[102.967416,32.851125],[102.967234,32.851409],[102.967051,32.851692],[102.966974,32.852007],[102.966991,32.852303],[102.967068,32.852542],[102.967144,32.85278],[102.967255,32.853058],[102.967366,32.853336],[102.967473,32.853773],[102.967488,32.854129],[102.967471,32.854386],[102.967453,32.854642],[102.967415,32.854866],[102.967377,32.85509],[102.967339,32.855314],[102.967301,32.855538],[102.967263,32.855762],[102.967225,32.855986],[102.967187,32.85621],[102.96715,32.856434],[102.967112,32.856657],[102.967074,32.856881],[102.967026,32.857276],[102.966978,32.857671],[102.966931,32.858065],[102.966936,32.858352],[102.966941,32.858639],[102.967005,32.858936],[102.967068,32.859234],[102.967168,32.859477],[102.967267,32.85972],[102.967367,32.859964],[102.967467,32.860207],[102.96757,32.860361],[102.967639,32.860462],[102.967811,32.860717],[102.968064,32.860937],[102.968435,32.861121],[102.968666,32.861254],[102.968898,32.861386],[102.969129,32.861518],[102.96936,32.861651],[102.969634,32.86195],[102.969816,32.86225],[102.969939,32.862499],[102.970063,32.862748],[102.970082,32.862793],[102.970151,32.862957],[102.970239,32.863166],[102.970326,32.863473],[102.970413,32.86378],[102.970511,32.864138],[102.970608,32.864496],[102.970876,32.864809],[102.971144,32.865121],[102.971412,32.865433],[102.97171,32.865754],[102.972007,32.866075],[102.972304,32.866396],[102.972602,32.866717],[102.972749,32.866936],[102.972896,32.867156],[102.973052,32.867494],[102.973116,32.867832],[102.973128,32.868266],[102.973118,32.868701],[102.973039,32.869085],[102.972961,32.869469],[102.972883,32.869784],[102.972806,32.870098],[102.972798,32.870493],[102.972815,32.87075],[102.972833,32.871008],[102.97285,32.871265],[102.972868,32.871522],[102.97291,32.871586],[102.973072,32.871828],[102.973396,32.871992],[102.973722,32.872076],[102.974168,32.872043],[102.974311,32.871967],[102.974696,32.871828],[102.975082,32.87169],[102.975468,32.871551],[102.975728,32.871471],[102.975988,32.871391],[102.976248,32.871312],[102.976508,32.871232],[102.976848,32.871178],[102.977188,32.871125],[102.977626,32.871118],[102.978064,32.871112],[102.978501,32.871105],[102.978774,32.87113],[102.979048,32.871154],[102.979321,32.871178],[102.979594,32.871203],[102.979867,32.871227],[102.98014,32.871251],[102.980384,32.871322],[102.980629,32.871392],[102.980873,32.871463],[102.981117,32.871533],[102.981362,32.871604],[102.981606,32.871675],[102.981851,32.871745],[102.982095,32.871816],[102.98232,32.871911],[102.982545,32.872006],[102.98277,32.872102],[102.982995,32.872197],[102.983219,32.872293],[102.983444,32.872388],[102.983669,32.872483],[102.983894,32.872579],[102.984134,32.872666],[102.984373,32.872753],[102.984447,32.872779],[102.984612,32.87284],[102.984852,32.872927],[102.985091,32.873013],[102.985331,32.8731],[102.98557,32.873187],[102.98581,32.873274],[102.986049,32.873361],[102.986289,32.873448],[102.986542,32.873649],[102.986887,32.873931],[102.986937,32.873947],[102.987283,32.874056],[102.98761,32.874101],[102.987882,32.874103],[102.988155,32.874105],[102.988427,32.874107],[102.988699,32.874108],[102.988972,32.87411],[102.989244,32.874112],[102.989516,32.874114],[102.989789,32.874116],[102.990043,32.874103],[102.990297,32.87409],[102.990321,32.874088],[102.99055,32.874077],[102.990804,32.874064],[102.991058,32.874051],[102.991312,32.874038],[102.991566,32.874025],[102.99182,32.874012],[102.992127,32.873973],[102.992231,32.873959],[102.992642,32.873906],[102.993066,32.873795],[102.99349,32.873683],[102.993711,32.873564],[102.993932,32.873445],[102.994153,32.873326],[102.994373,32.873207],[102.994594,32.873088],[102.994815,32.872969],[102.995035,32.87285],[102.995114,32.872808],[102.995256,32.872732],[102.995477,32.872613],[102.995697,32.872494],[102.995923,32.872372],[102.996068,32.872294],[102.996148,32.872251],[102.996374,32.872129],[102.996599,32.872008],[102.996825,32.871887],[102.997051,32.871765],[102.997408,32.871494],[102.997765,32.871223],[102.997893,32.870988],[102.998022,32.870753],[102.99815,32.870518],[102.998279,32.870283],[102.998492,32.869933],[102.998705,32.869583],[102.998917,32.869234],[102.99911,32.869],[102.999303,32.868765],[102.99959,32.868524],[102.999876,32.868282],[103.000272,32.868072],[103.000501,32.86791],[103.000729,32.867747],[103.000958,32.867582],[103.001187,32.867417],[103.001378,32.867279],[103.001568,32.867142],[103.001839,32.866968],[103.002172,32.866684],[103.002376,32.86655],[103.00258,32.866416],[103.002784,32.866282],[103.002988,32.866149],[103.003291,32.86587],[103.003594,32.865592],[103.003772,32.865337],[103.00395,32.865082],[103.004137,32.864759],[103.004325,32.864436],[103.004512,32.864113],[103.004619,32.863897],[103.004726,32.863681],[103.004833,32.863465],[103.00494,32.863248],[103.005047,32.863032],[103.005154,32.862816],[103.005304,32.862399],[103.005453,32.861982],[103.005603,32.861564],[103.005765,32.861214],[103.005926,32.860864],[103.006087,32.860514],[103.006192,32.860293],[103.006297,32.860073],[103.006402,32.859853],[103.006508,32.859632],[103.006667,32.859393],[103.006784,32.859314],[103.006879,32.859315],[103.006994,32.859333],[103.007068,32.859431],[103.007121,32.859593],[103.007114,32.859948],[103.007094,32.860392],[103.007075,32.860835],[103.00704,32.861099],[103.007005,32.861363],[103.006971,32.861628],[103.006936,32.861892],[103.006907,32.862328],[103.006911,32.862578],[103.006914,32.862828],[103.006981,32.863083],[103.007047,32.863339],[103.007114,32.863594],[103.00718,32.863849],[103.007242,32.864073],[103.007304,32.864297],[103.007366,32.864522],[103.007428,32.864746],[103.00749,32.86497],[103.007552,32.865194],[103.007709,32.865579],[103.007866,32.865963],[103.008023,32.866347],[103.008144,32.866606],[103.008206,32.86674],[103.008389,32.867133],[103.008573,32.867526],[103.008751,32.867907],[103.008756,32.867919],[103.008856,32.868149],[103.008956,32.868379],[103.009057,32.868608],[103.009157,32.868838],[103.009257,32.869068],[103.009357,32.869297],[103.009366,32.869317],[103.009398,32.869391],[103.009457,32.869527],[103.009557,32.869757],[103.009686,32.869992],[103.009815,32.870228],[103.009945,32.870464],[103.010074,32.870699],[103.010203,32.870935],[103.010332,32.87117],[103.010461,32.871406],[103.01059,32.871642],[103.0107,32.871885],[103.010809,32.872129],[103.010919,32.872373],[103.011028,32.872616],[103.011138,32.87286],[103.011247,32.873104],[103.011357,32.873348],[103.011466,32.873591],[103.011641,32.873973],[103.011815,32.874355],[103.01199,32.874736],[103.012164,32.875118],[103.012317,32.875452],[103.01247,32.875787],[103.012588,32.876002],[103.012705,32.876217],[103.012759,32.876315],[103.012823,32.876432],[103.012941,32.876647],[103.013017,32.876786],[103.013058,32.876862],[103.013176,32.877077],[103.013294,32.877293],[103.013412,32.877508],[103.01362,32.877893],[103.013828,32.878278],[103.014036,32.878663],[103.014156,32.879042],[103.014275,32.87942],[103.014395,32.879799],[103.014504,32.880023],[103.014614,32.880248],[103.014763,32.880482],[103.014841,32.880603],[103.015068,32.880957],[103.015294,32.881312],[103.015298,32.881318],[103.015521,32.881667],[103.015631,32.881911],[103.015758,32.882187],[103.01581,32.882462],[103.015843,32.882688],[103.015876,32.882915],[103.015885,32.883157],[103.015894,32.883399],[103.015903,32.883641],[103.015912,32.883884],[103.015921,32.884143],[103.01593,32.884403],[103.015939,32.884662],[103.015948,32.884922],[103.015958,32.885182],[103.015967,32.885441],[103.015976,32.885701],[103.015985,32.88596],[103.016026,32.886407],[103.016067,32.886854],[103.016108,32.887301],[103.01616,32.887552],[103.016211,32.887803],[103.016262,32.888135],[103.016313,32.888466],[103.016445,32.888816],[103.016577,32.889167],[103.016709,32.889517],[103.016917,32.889866],[103.016932,32.889892],[103.017099,32.890121],[103.017287,32.89027],[103.017514,32.890353],[103.017887,32.89051],[103.018261,32.890666],[103.018634,32.890822],[103.018889,32.890972],[103.019028,32.891053],[103.019144,32.891121],[103.019388,32.891352],[103.019594,32.891596],[103.019779,32.89189],[103.01989,32.892102],[103.02,32.892313],[103.020134,32.892727],[103.020268,32.893141],[103.020389,32.893528],[103.020509,32.893916],[103.02063,32.894304],[103.020731,32.894508],[103.020832,32.894711],[103.020979,32.894955],[103.021298,32.895267],[103.021582,32.895434],[103.021824,32.89553],[103.022066,32.895627],[103.022308,32.895723],[103.022549,32.89582],[103.02278,32.895911],[103.022825,32.895929],[103.023058,32.896022],[103.0231,32.896039],[103.02327,32.896185],[103.02338,32.896382],[103.023433,32.896591],[103.023428,32.896785],[103.023404,32.897043],[103.023358,32.897366],[103.02333,32.897736],[103.023324,32.898026],[103.023384,32.898201],[103.023571,32.898413],[103.023835,32.89858],[103.024138,32.898714],[103.024482,32.898768],[103.024703,32.898805],[103.024925,32.898843],[103.025147,32.898881],[103.025369,32.898919],[103.025591,32.898956],[103.025812,32.898994],[103.026034,32.899032],[103.026256,32.89907],[103.02657,32.899139],[103.026885,32.899209],[103.027069,32.89928],[103.027122,32.899301],[103.027359,32.899393],[103.027496,32.899464],[103.027681,32.89956],[103.028002,32.899727],[103.028267,32.8999],[103.028532,32.900073],[103.028737,32.900302],[103.028943,32.900532],[103.029087,32.900716],[103.029232,32.9009],[103.029376,32.901084],[103.029521,32.901268],[103.029737,32.901605],[103.029953,32.901942],[103.030168,32.902279],[103.030447,32.902539],[103.030725,32.902799],[103.031004,32.903059],[103.031279,32.903414],[103.031553,32.90377],[103.031828,32.904125],[103.032103,32.904481],[103.032388,32.904778],[103.032396,32.904786],[103.03252,32.904916],[103.032541,32.904938],[103.032689,32.905092],[103.032766,32.905172],[103.032918,32.905331],[103.032983,32.905398],[103.033003,32.905416],[103.033007,32.90542],[103.033183,32.905578],[103.033383,32.905759],[103.033583,32.90594],[103.033783,32.90612],[103.033984,32.906301],[103.034184,32.906482],[103.034276,32.90655],[103.034337,32.906596],[103.034492,32.906713],[103.034514,32.906729],[103.034845,32.906976],[103.035148,32.907236],[103.035286,32.907354],[103.035451,32.907496],[103.035641,32.907662],[103.035695,32.90771],[103.035721,32.907732],[103.035739,32.907748],[103.035761,32.907767],[103.03594,32.907923],[103.036167,32.908057],[103.036409,32.908088],[103.036434,32.908091],[103.036454,32.908094],[103.036787,32.908128],[103.036816,32.90813],[103.03683,32.908129],[103.03722,32.90808],[103.037623,32.90803],[103.038057,32.907916],[103.03849,32.907802],[103.038923,32.907688],[103.039357,32.907574],[103.039599,32.907465],[103.039841,32.907355],[103.039904,32.907216],[103.040001,32.907003],[103.040023,32.906809],[103.040032,32.906756],[103.040069,32.906536],[103.040094,32.9063],[103.040118,32.906064],[103.040143,32.905828],[103.040167,32.905593],[103.040211,32.905335],[103.040255,32.905078],[103.040376,32.904822],[103.040562,32.904491],[103.040749,32.90416],[103.040935,32.90383],[103.041054,32.903635],[103.041173,32.903441],[103.041273,32.903276],[103.041292,32.903246],[103.041298,32.903235],[103.041411,32.903052],[103.04153,32.902857],[103.041564,32.902801],[103.041595,32.902751],[103.041649,32.902662],[103.041792,32.902434],[103.041935,32.902206],[103.042079,32.901978],[103.042222,32.90175],[103.042366,32.901522],[103.042462,32.901368],[103.042509,32.901294],[103.042612,32.901169],[103.042661,32.901111],[103.042765,32.900985],[103.042812,32.900927],[103.042964,32.900744],[103.043115,32.900561],[103.043267,32.900378],[103.043303,32.900334],[103.043418,32.900195],[103.043543,32.900043],[103.04357,32.900011],[103.043721,32.899828],[103.043873,32.899645],[103.044024,32.899462],[103.044177,32.899296],[103.044329,32.899129],[103.044482,32.898963],[103.044634,32.898797],[103.044701,32.898725],[103.044787,32.898631],[103.044939,32.898465],[103.045092,32.898299],[103.045244,32.898132],[103.045406,32.89796],[103.045568,32.897788],[103.04573,32.897616],[103.045892,32.897444],[103.046054,32.897271],[103.046215,32.897099],[103.046377,32.896927],[103.046539,32.896755],[103.046701,32.896582],[103.046863,32.89641],[103.047025,32.896238],[103.047186,32.896066],[103.047373,32.895892],[103.047443,32.895826],[103.047559,32.895718],[103.047745,32.895544],[103.047932,32.89537],[103.047965,32.89534],[103.048118,32.895196],[103.048276,32.895049],[103.048304,32.895022],[103.048491,32.894849],[103.048677,32.894675],[103.048699,32.894653],[103.04884,32.894513],[103.048848,32.894504],[103.049002,32.89435],[103.049165,32.894188],[103.049327,32.894026],[103.04949,32.893864],[103.049559,32.893795],[103.049652,32.893702],[103.049815,32.89354],[103.049977,32.893378],[103.05014,32.893216],[103.050303,32.893053],[103.050574,32.892881],[103.050604,32.892874],[103.050844,32.892821],[103.05119,32.89281],[103.05155,32.892928],[103.051792,32.893033],[103.051879,32.89307],[103.052034,32.893137],[103.052275,32.893242],[103.052517,32.893346],[103.052763,32.893495],[103.053009,32.893644],[103.053309,32.893964],[103.053609,32.894283],[103.053898,32.894619],[103.054187,32.894955],[103.05446,32.8952],[103.054732,32.895446],[103.055009,32.895609],[103.055053,32.895635],[103.055054,32.895635],[103.055057,32.895636],[103.055287,32.895771],[103.055544,32.895896],[103.0558,32.896021],[103.056219,32.896109],[103.056545,32.896097],[103.056618,32.896074],[103.056833,32.896005],[103.056911,32.895966],[103.05722,32.89581],[103.0573,32.89577],[103.057513,32.895662],[103.057608,32.895614],[103.057995,32.895418],[103.058382,32.895222],[103.058627,32.895128],[103.058872,32.895034],[103.059118,32.89494],[103.059363,32.894846],[103.059608,32.894752],[103.059685,32.894723],[103.059853,32.894658],[103.060099,32.894564],[103.060344,32.89447],[103.060584,32.894397],[103.060825,32.894324],[103.061065,32.894251],[103.061305,32.894178],[103.061747,32.89417],[103.062186,32.894208],[103.062439,32.894245],[103.062692,32.894281],[103.062945,32.894317],[103.063198,32.894354],[103.063443,32.894418],[103.063688,32.894481],[103.0641,32.894589],[103.064511,32.894696],[103.064796,32.89483],[103.065081,32.894964],[103.065288,32.895144],[103.065494,32.895325],[103.065701,32.895506],[103.065907,32.895686],[103.065943,32.895717],[103.066114,32.895867],[103.066321,32.896048],[103.066505,32.896254],[103.06669,32.89646],[103.066875,32.896666],[103.06706,32.896873],[103.067257,32.897037],[103.067454,32.897202],[103.067651,32.897367],[103.067849,32.897531],[103.068037,32.897704],[103.068224,32.897876],[103.068412,32.898048],[103.0686,32.898221],[103.068788,32.898393],[103.068976,32.898566],[103.069249,32.89878],[103.069523,32.898994],[103.069594,32.899032],[103.069741,32.89911],[103.069958,32.899227],[103.070176,32.899343],[103.070394,32.89946],[103.070643,32.899546],[103.070892,32.899632],[103.071141,32.899718],[103.07139,32.899804],[103.071639,32.89989],[103.071888,32.899976],[103.072137,32.900062],[103.072386,32.900148],[103.072635,32.900234],[103.072884,32.90032],[103.07312,32.900391],[103.073355,32.900462],[103.073464,32.900495],[103.073591,32.900533],[103.073826,32.900604],[103.074062,32.900675],[103.074298,32.900746],[103.074533,32.900817],[103.074769,32.900888],[103.075005,32.900959],[103.07524,32.90103],[103.075476,32.901101],[103.075711,32.901172],[103.075947,32.901243],[103.076183,32.901314],[103.076429,32.901423],[103.076676,32.901531],[103.076923,32.90164],[103.07717,32.901749],[103.077483,32.901916],[103.077795,32.902083],[103.07798,32.902231],[103.078165,32.902379],[103.07835,32.902527],[103.078535,32.902675],[103.078721,32.902823],[103.078906,32.902971],[103.079083,32.903175],[103.079261,32.90338],[103.079568,32.90369],[103.079875,32.904],[103.080182,32.90431],[103.080489,32.90462],[103.080697,32.904744],[103.080905,32.904868],[103.081211,32.904954],[103.081535,32.904975],[103.081842,32.904914],[103.082132,32.90479],[103.082483,32.904521],[103.082493,32.904506],[103.082621,32.904314],[103.082704,32.90404],[103.082824,32.903783],[103.083004,32.903464],[103.083259,32.90321],[103.083531,32.902972],[103.083685,32.90291],[103.08384,32.902848],[103.084166,32.902853],[103.084479,32.902963],[103.084793,32.903072],[103.084926,32.90313],[103.085033,32.903176],[103.08506,32.903188],[103.085272,32.903281],[103.085335,32.903308],[103.085512,32.903385],[103.085752,32.90349],[103.085992,32.903594],[103.086231,32.903699],[103.086471,32.903803],[103.086711,32.903907],[103.086878,32.904104],[103.086967,32.904262],[103.087044,32.904398],[103.087179,32.904803],[103.087315,32.905209],[103.087377,32.905413],[103.087414,32.905533],[103.087513,32.905857],[103.087634,32.906083],[103.087755,32.906309],[103.087876,32.906536],[103.087998,32.906762],[103.088119,32.906988],[103.08824,32.907214],[103.088383,32.907426],[103.088525,32.907638],[103.088667,32.90785],[103.08881,32.908063],[103.088952,32.908275],[103.089095,32.908487],[103.089365,32.908809],[103.089636,32.909131],[103.089907,32.909454],[103.090177,32.909776],[103.090446,32.910076],[103.090714,32.910376],[103.090983,32.910677],[103.091161,32.910848],[103.09134,32.911019],[103.091519,32.911191],[103.091698,32.911362],[103.091981,32.911496],[103.092285,32.91163],[103.092542,32.911721],[103.092799,32.911812],[103.093055,32.911903],[103.093312,32.911994],[103.093568,32.912085],[103.093825,32.912176],[103.094082,32.912267],[103.094338,32.912358],[103.094429,32.91239],[103.094595,32.912449],[103.094851,32.91254],[103.09502,32.912597],[103.095086,32.912619],[103.09532,32.912698],[103.095555,32.912777],[103.09579,32.912856],[103.096024,32.912935],[103.096259,32.913014],[103.096602,32.913067],[103.096794,32.913038],[103.096882,32.912988],[103.096989,32.912928],[103.097145,32.912769],[103.097175,32.912726],[103.097276,32.912585],[103.097408,32.912402],[103.097539,32.912218],[103.097671,32.912034],[103.097803,32.911851],[103.097934,32.911667],[103.09809,32.911438],[103.098246,32.911209],[103.098403,32.91098],[103.098559,32.910751],[103.098679,32.910503],[103.0988,32.910255],[103.098876,32.909812],[103.098952,32.90937],[103.09903,32.909153],[103.099108,32.908937],[103.099186,32.90872],[103.099264,32.908503],[103.099342,32.908287],[103.09942,32.90807],[103.09964,32.907679],[103.09986,32.907288],[103.10008,32.906897],[103.1003,32.906506],[103.100435,32.906286],[103.100569,32.906065],[103.100704,32.905844],[103.100839,32.905624],[103.100974,32.905403],[103.101109,32.905182],[103.101244,32.904962],[103.101378,32.904741],[103.101513,32.90452],[103.101648,32.9043],[103.101867,32.903977],[103.102085,32.903653],[103.102304,32.90333],[103.102434,32.90309],[103.102563,32.90285],[103.102626,32.902601],[103.102688,32.902352],[103.102773,32.902006],[103.102857,32.90166],[103.102904,32.901241],[103.102952,32.900822],[103.103139,32.900435],[103.103326,32.900048],[103.103513,32.899661],[103.103723,32.899273],[103.103932,32.898885],[103.104142,32.898497],[103.104351,32.898109],[103.104508,32.897933],[103.104664,32.897758],[103.104821,32.897583],[103.104977,32.897407],[103.105281,32.897121],[103.105585,32.896836],[103.105815,32.896712],[103.105824,32.896707],[103.106063,32.896579],[103.106302,32.896451],[103.106448,32.896373],[103.106541,32.896323],[103.10685,32.896199],[103.107159,32.896075],[103.107419,32.896039],[103.107679,32.896003],[103.108083,32.895912],[103.108486,32.895821],[103.108686,32.895767],[103.108852,32.895721],[103.109218,32.895622],[103.109422,32.895512],[103.109626,32.895402],[103.109867,32.895192],[103.109908,32.895156],[103.11019,32.89491],[103.110364,32.894762],[103.110537,32.894613],[103.110711,32.894464],[103.110884,32.894316],[103.111057,32.894167],[103.111231,32.894019],[103.111404,32.89387],[103.111578,32.893721],[103.111769,32.893535],[103.11196,32.893349],[103.112152,32.893163],[103.112343,32.892977],[103.112535,32.892791],[103.112726,32.892606],[103.112917,32.89242],[103.113109,32.892234],[103.113313,32.89208],[103.113517,32.891927],[103.113722,32.891773],[103.113926,32.89162],[103.11413,32.891467],[103.114335,32.891313],[103.114539,32.89116],[103.114743,32.891006],[103.114948,32.890853],[103.115152,32.8907],[103.115325,32.890555],[103.115497,32.89041],[103.11567,32.890266],[103.115843,32.890121],[103.116016,32.889976],[103.116189,32.889832],[103.116361,32.889687],[103.116534,32.889542],[103.116755,32.88941],[103.116769,32.889402],[103.117003,32.889263],[103.117237,32.889123],[103.117472,32.888983],[103.11783,32.888779],[103.118189,32.888575],[103.11839,32.888452],[103.11859,32.888328],[103.118791,32.888205],[103.118991,32.888081],[103.119192,32.887958],[103.119393,32.887834],[103.119486,32.887731],[103.119637,32.887564],[103.119882,32.887293],[103.119947,32.887222],[103.120002,32.887195],[103.120189,32.887105],[103.120226,32.887086],[103.12043,32.886987],[103.12078,32.886775],[103.121129,32.886562],[103.121275,32.886424],[103.121431,32.886276],[103.121733,32.88599],[103.121962,32.885639],[103.12199,32.885595],[103.12219,32.885287],[103.1223,32.885063],[103.122306,32.885051],[103.12241,32.884838],[103.122546,32.884469],[103.122681,32.8841],[103.122817,32.883731],[103.122832,32.883478],[103.122847,32.883226],[103.122862,32.882973],[103.122877,32.882721],[103.122882,32.882472],[103.122885,32.882312],[103.122894,32.881904],[103.122897,32.881761],[103.122902,32.881495],[103.122883,32.881413],[103.122851,32.88127],[103.12284,32.881224],[103.122809,32.881085],[103.122715,32.880676],[103.122622,32.880266],[103.122555,32.880068],[103.122495,32.879892],[103.12245,32.879756],[103.122369,32.879519],[103.122317,32.879364],[103.122243,32.879145],[103.122121,32.878929],[103.121998,32.878713],[103.121803,32.87846],[103.121607,32.878207],[103.121483,32.877991],[103.121358,32.877775],[103.121234,32.877559],[103.121109,32.877344],[103.120981,32.877027],[103.120853,32.876709],[103.12083,32.876484],[103.120806,32.876259],[103.120819,32.876012],[103.120824,32.87592],[103.120834,32.87572],[103.120841,32.875582],[103.120883,32.87535],[103.120925,32.875117],[103.120965,32.874895],[103.121005,32.874673],[103.121045,32.87445],[103.121085,32.874228],[103.121125,32.874006],[103.121165,32.873784],[103.121316,32.873415],[103.121467,32.873047],[103.121685,32.87271],[103.121911,32.872415],[103.122137,32.87212],[103.12236,32.872035],[103.12242,32.872012],[103.122582,32.87195],[103.122843,32.87184],[103.123104,32.871731],[103.123382,32.871712],[103.12366,32.871692],[103.124081,32.871633],[103.124199,32.871555],[103.12424,32.871377],[103.124254,32.871349],[103.124402,32.871044],[103.124564,32.870711],[103.124698,32.870503],[103.124831,32.870295],[103.124965,32.870087],[103.125099,32.869879],[103.12531,32.869522],[103.125521,32.869165],[103.125733,32.868808],[103.125913,32.868614],[103.126094,32.86842],[103.126187,32.868366],[103.12641,32.868239],[103.126424,32.868231],[103.126655,32.868122],[103.126736,32.868102],[103.12704,32.868031],[103.127285,32.867982],[103.12753,32.867933],[103.127776,32.867884],[103.128021,32.867835],[103.128266,32.867786],[103.128511,32.867737],[103.128608,32.867718],[103.128757,32.867689],[103.129002,32.86764],[103.129234,32.867593],[103.129466,32.867547],[103.129699,32.867501],[103.129931,32.867455],[103.130163,32.867408],[103.130395,32.867362],[103.130628,32.867316],[103.13086,32.867269],[103.131092,32.867223],[103.131151,32.867211],[103.131182,32.867205],[103.131324,32.867177],[103.131556,32.867131],[103.131789,32.867084],[103.132057,32.867072],[103.132325,32.86706],[103.132594,32.867048],[103.132862,32.867036],[103.13313,32.867023],[103.133399,32.867011],[103.13357,32.86702],[103.133817,32.867033],[103.133862,32.867036],[103.134236,32.867055],[103.134655,32.867078],[103.135073,32.8671],[103.1353,32.867089],[103.135528,32.867078],[103.135755,32.867067],[103.135983,32.867057],[103.13621,32.867046],[103.136438,32.867035],[103.136665,32.867024],[103.136892,32.867014],[103.137122,32.867019],[103.137352,32.867025],[103.137581,32.86703],[103.137811,32.867036],[103.137887,32.867037],[103.138041,32.867041],[103.13827,32.867047],[103.1385,32.867052],[103.13873,32.867057],[103.139027,32.867038],[103.139324,32.867018],[103.139655,32.866971],[103.139737,32.866959],[103.140151,32.8669],[103.140377,32.866835],[103.140603,32.86677],[103.140829,32.866705],[103.141055,32.86664],[103.141293,32.866571],[103.14153,32.866502],[103.141767,32.866432],[103.142005,32.866363],[103.142242,32.866293],[103.142479,32.866224],[103.142717,32.866154],[103.142954,32.866085],[103.14318,32.866028],[103.143407,32.86597],[103.143633,32.865913],[103.143859,32.865856],[103.144225,32.865796],[103.14459,32.865737],[103.14483,32.865676],[103.145001,32.865633],[103.145001,32.865633],[103.14507,32.865615],[103.145311,32.865554],[103.145551,32.865493],[103.145722,32.865437],[103.145956,32.865359],[103.146361,32.865225],[103.146766,32.865092],[103.147004,32.864954],[103.147241,32.864816],[103.147478,32.864679],[103.147716,32.864541],[103.147953,32.864403],[103.148191,32.864266],[103.148428,32.864128],[103.148665,32.86399],[103.148982,32.863863],[103.148993,32.863858],[103.149321,32.863726],[103.149552,32.863713],[103.149934,32.863751],[103.1503,32.863893],[103.150666,32.864034],[103.150895,32.864069],[103.151105,32.864056],[103.151318,32.864018],[103.151355,32.864012],[103.15152,32.863972],[103.151701,32.863928],[103.152047,32.863844],[103.152298,32.863727],[103.15255,32.863609],[103.152801,32.863492],[103.153052,32.863375],[103.153304,32.863258],[103.153555,32.863141],[103.153806,32.863024],[103.154058,32.862906],[103.154309,32.862789],[103.15456,32.862672],[103.154925,32.862544],[103.154936,32.86254],[103.155312,32.862408],[103.155639,32.862332],[103.156063,32.86229],[103.156326,32.862286],[103.156589,32.862282],[103.156853,32.862278],[103.157116,32.862273],[103.157187,32.862274],[103.157342,32.862274],[103.157568,32.862275],[103.157794,32.862275],[103.157998,32.862276],[103.15802,32.862276],[103.158246,32.862277],[103.158472,32.862278],[103.158699,32.862278],[103.158925,32.862279],[103.159308,32.862244],[103.159691,32.86221],[103.159937,32.86217],[103.160184,32.862131],[103.16043,32.862092],[103.160677,32.862052],[103.160923,32.862013],[103.161169,32.861973],[103.161554,32.861906],[103.161939,32.861839],[103.1622,32.861722],[103.162461,32.861605],[103.162733,32.861362],[103.16274,32.861356],[103.162756,32.861341],[103.162837,32.861165],[103.162861,32.860939],[103.162862,32.860907],[103.162864,32.860783],[103.162867,32.860617],[103.162797,32.860309],[103.162652,32.859952],[103.162449,32.859553],[103.162247,32.859155],[103.162101,32.85883],[103.162012,32.85849],[103.16198,32.858215],[103.161948,32.85794],[103.161924,32.857714],[103.161899,32.857488],[103.161875,32.857262],[103.161851,32.857035],[103.161826,32.856809],[103.161802,32.856583],[103.161809,32.856182],[103.161815,32.855781],[103.161844,32.855552],[103.161873,32.855322],[103.161902,32.855093],[103.16193,32.854863],[103.161959,32.854634],[103.161988,32.854404],[103.162017,32.854175],[103.162045,32.853945],[103.162069,32.853519],[103.162092,32.853094],[103.162115,32.852668],[103.162139,32.852242],[103.162157,32.851823],[103.162175,32.851403],[103.162193,32.850984],[103.162212,32.850564],[103.162278,32.850126],[103.162345,32.849689],[103.162411,32.849251],[103.162466,32.849023],[103.162521,32.848796],[103.162576,32.848569],[103.162631,32.848342],[103.162686,32.848115],[103.162741,32.847888],[103.162791,32.84768],[103.162795,32.847661],[103.16285,32.847433],[103.162928,32.847037],[103.162932,32.84702],[103.163007,32.84664],[103.163085,32.846243],[103.163167,32.846032],[103.163249,32.845821],[103.16333,32.84561],[103.163412,32.845399],[103.163678,32.845072],[103.163943,32.844745],[103.164138,32.844575],[103.164333,32.844404],[103.164528,32.844233],[103.164722,32.844063],[103.164992,32.843891],[103.165033,32.843866],[103.165343,32.843668],[103.16559,32.843567],[103.165836,32.843465],[103.166083,32.843364],[103.166329,32.843263],[103.16656,32.84321],[103.16679,32.843157],[103.167021,32.843104],[103.167251,32.843051],[103.167482,32.842998],[103.167713,32.842944],[103.168098,32.842885],[103.168337,32.842897],[103.168576,32.842908],[103.168851,32.842969],[103.169054,32.843013],[103.169087,32.843021],[103.169127,32.843029],[103.169491,32.843068],[103.169758,32.843063],[103.17002,32.843059],[103.170026,32.843059],[103.170257,32.842959],[103.170303,32.84294],[103.170579,32.84282],[103.170794,32.842599],[103.170872,32.842518],[103.170992,32.842293],[103.171112,32.842069],[103.17131,32.841733],[103.171508,32.841397],[103.171657,32.841001],[103.171805,32.840605],[103.171954,32.840209],[103.172074,32.83997],[103.172195,32.839732],[103.172315,32.839493],[103.172436,32.839255],[103.172652,32.838951],[103.172963,32.838714],[103.173071,32.838648],[103.173195,32.838572],[103.173618,32.838465],[103.174021,32.838471],[103.174256,32.838517],[103.17449,32.838564],[103.174725,32.83861],[103.17496,32.838657],[103.175194,32.838703],[103.175429,32.83875],[103.175667,32.83884],[103.175904,32.83893],[103.176142,32.83902],[103.17638,32.839111],[103.176617,32.839201],[103.176855,32.839291],[103.177092,32.839381],[103.17733,32.839471],[103.177524,32.839587],[103.177718,32.839703],[103.177911,32.839819],[103.178105,32.839935],[103.178247,32.840042],[103.178287,32.840072],[103.178387,32.840148],[103.178669,32.840362],[103.17903,32.840545],[103.1793,32.840629],[103.179337,32.84064],[103.179439,32.840672],[103.179849,32.840798],[103.180189,32.840846],[103.18053,32.840894],[103.180931,32.8409],[103.181211,32.840799],[103.18149,32.840698],[103.181857,32.840494],[103.181977,32.840354],[103.182014,32.84031],[103.182172,32.840127],[103.182349,32.83988],[103.182527,32.839632],[103.182684,32.839457],[103.18284,32.839282],[103.182997,32.839107],[103.183153,32.838931],[103.183494,32.838729],[103.183512,32.838719],[103.18387,32.838506],[103.184112,32.838401],[103.184354,32.838295],[103.184596,32.83819],[103.184838,32.838084],[103.18508,32.837979],[103.185322,32.837873],[103.185564,32.837768],[103.185807,32.837662],[103.186049,32.837557],[103.186291,32.837451],[103.18653,32.837336],[103.18677,32.837222],[103.18701,32.837107],[103.18725,32.836993],[103.187489,32.836878],[103.187729,32.836764],[103.187969,32.836649],[103.188208,32.836535],[103.188448,32.83642],[103.188688,32.836306],[103.188917,32.836196],[103.189145,32.836087],[103.189374,32.835978],[103.189603,32.835868],[103.189831,32.835759],[103.19006,32.83565],[103.190446,32.835482],[103.190832,32.835314],[103.191218,32.835147],[103.191604,32.834979],[103.192008,32.834871],[103.192412,32.834764],[103.192817,32.834657],[103.193221,32.83455],[103.193463,32.834502],[103.193705,32.834454],[103.193947,32.834407],[103.194189,32.834359],[103.194536,32.834189],[103.194867,32.833927],[103.194878,32.833919],[103.195198,32.833666],[103.195295,32.833537],[103.195533,32.833313],[103.195771,32.833089],[103.196009,32.832865],[103.196178,32.832611],[103.196346,32.832358],[103.196526,32.832028],[103.196568,32.83195],[103.196706,32.831697],[103.196885,32.831367],[103.197065,32.831037],[103.197182,32.830782],[103.197287,32.830497],[103.197365,32.830282],[103.197391,32.830212],[103.197467,32.830005],[103.197496,32.829928],[103.197573,32.829607],[103.19765,32.829286],[103.197727,32.828965],[103.197749,32.828835],[103.197829,32.828571],[103.197894,32.828356],[103.19796,32.82814],[103.198043,32.827921],[103.198049,32.827908],[103.198096,32.827803],[103.198178,32.827657],[103.198416,32.827419],[103.198681,32.827316],[103.198945,32.827212],[103.199241,32.827116],[103.199537,32.827019],[103.199737,32.826998],[103.199994,32.827055],[103.200251,32.827112],[103.200529,32.827184],[103.200808,32.827255],[103.200921,32.827251],[103.201029,32.827248],[103.201429,32.827155],[103.201494,32.827135],[103.2019,32.827012],[103.202092,32.826991],[103.202127,32.826987],[103.202353,32.826961],[103.202771,32.826899],[103.202871,32.826884],[103.203162,32.82683],[103.203388,32.826699],[103.203638,32.826527],[103.203811,32.826339],[103.203983,32.826152],[103.20416,32.825835],[103.204337,32.825518],[103.204369,32.825468],[103.204475,32.8253],[103.204614,32.825081],[103.204762,32.824737],[103.20491,32.824394],[103.20513,32.824015],[103.205212,32.823969],[103.20534,32.823927],[103.205725,32.823883],[103.206164,32.823907],[103.206469,32.823958],[103.206707,32.82401],[103.206944,32.824063],[103.207147,32.824133],[103.207287,32.824181],[103.207629,32.824299],[103.207968,32.824513],[103.208289,32.824775],[103.208569,32.825118],[103.20869,32.825314],[103.20881,32.82551],[103.208864,32.825728],[103.208917,32.825947],[103.208946,32.826382],[103.208938,32.826762],[103.208931,32.827141],[103.208934,32.827566],[103.208937,32.827991],[103.208987,32.828346],[103.209096,32.828573],[103.20932,32.828852],[103.209613,32.829066],[103.209906,32.82928],[103.210091,32.829412],[103.210277,32.829543],[103.210462,32.829675],[103.210648,32.829807],[103.210833,32.829939],[103.211019,32.830071],[103.211243,32.830195],[103.211468,32.830319],[103.211693,32.830443],[103.211918,32.830567],[103.212142,32.830691],[103.212367,32.830815],[103.212592,32.83094],[103.212817,32.831064],[103.213161,32.831234],[103.213506,32.831403],[103.213851,32.831573],[103.21427,32.831692],[103.214391,32.831702],[103.214708,32.831731],[103.214957,32.831742],[103.215206,32.831754],[103.215474,32.831756],[103.215742,32.831757],[103.21601,32.831759],[103.216278,32.831761],[103.216546,32.831762],[103.216814,32.831764],[103.217082,32.831766],[103.21735,32.831767],[103.21779,32.831779],[103.21823,32.831791],[103.218502,32.831799],[103.218669,32.831803],[103.218898,32.831838],[103.219126,32.831874],[103.219506,32.832025],[103.219754,32.832189],[103.219932,32.832353],[103.22011,32.832518],[103.220412,32.832828],[103.220715,32.833139],[103.221017,32.833449],[103.221258,32.833696],[103.221499,32.833943],[103.221653,32.834107],[103.221808,32.834272],[103.221963,32.834436],[103.222117,32.8346],[103.222272,32.834765],[103.222426,32.834929],[103.222581,32.835093],[103.222736,32.835258],[103.22289,32.835422],[103.223045,32.835586],[103.223355,32.835888],[103.223664,32.83619],[103.223823,32.836419],[103.223981,32.836648],[103.224167,32.836933],[103.224352,32.837218],[103.224517,32.837422],[103.224682,32.837626],[103.224847,32.83783],[103.225012,32.838034],[103.225177,32.838238],[103.225342,32.838442],[103.225483,32.838664],[103.225625,32.838887],[103.225766,32.83911],[103.225908,32.839333],[103.226049,32.839555],[103.226191,32.839778],[103.226332,32.840001],[103.226474,32.840224],[103.226615,32.840447],[103.226757,32.840669],[103.22682,32.840888],[103.226882,32.841107],[103.226945,32.841325],[103.227008,32.841544],[103.227087,32.841884],[103.227166,32.842224],[103.227219,32.842467],[103.227272,32.84271],[103.227373,32.843103],[103.227474,32.843495],[103.227575,32.843888],[103.227702,32.844261],[103.227828,32.844634],[103.228032,32.844943],[103.228237,32.845221],[103.228415,32.845426],[103.228593,32.84563],[103.228853,32.84594],[103.229021,32.846217],[103.229189,32.846493],[103.229437,32.846868],[103.229684,32.847243],[103.229932,32.847618],[103.23006,32.847902],[103.230187,32.848186],[103.230302,32.8486],[103.230416,32.849015],[103.23053,32.849429],[103.230602,32.849689],[103.230673,32.849948],[103.230745,32.850207],[103.230816,32.850466],[103.230944,32.850775],[103.231169,32.850988],[103.231416,32.851119],[103.231757,32.851222],[103.232141,32.851243],[103.232428,32.851248],[103.232715,32.851253],[103.232945,32.851207],[103.233176,32.851161],[103.233579,32.851102],[103.233982,32.851044],[103.234211,32.851079],[103.23444,32.851115],[103.234697,32.851183],[103.234954,32.851251],[103.235239,32.851368],[103.235524,32.851485],[103.235921,32.851634],[103.236318,32.851782],[103.236715,32.851931],[103.237113,32.852079],[103.237532,32.852182],[103.23777,32.852234],[103.238009,32.852286],[103.238247,32.852338],[103.238485,32.85239],[103.238731,32.852404],[103.238976,32.852418],[103.239221,32.852432],[103.239467,32.852446],[103.239712,32.85246],[103.239957,32.852474],[103.240202,32.852482],[103.240447,32.852491],[103.240692,32.852499],[103.240937,32.852507],[103.241182,32.852515],[103.241426,32.852524],[103.241671,32.852532],[103.241916,32.85254],[103.242161,32.852549],[103.242406,32.852557],[103.242664,32.852581],[103.242922,32.852605],[103.243179,32.852628],[103.243437,32.852652],[103.243695,32.852676],[103.243953,32.8527],[103.244211,32.852724],[103.244469,32.852747],[103.244828,32.852827],[103.245187,32.852906],[103.24553,32.852992],[103.245873,32.853077],[103.245913,32.853095],[103.245991,32.853129],[103.246216,32.853228],[103.246574,32.853442],[103.24679,32.853542],[103.247006,32.853642],[103.247221,32.853742],[103.247437,32.853842],[103.247653,32.853942],[103.247869,32.854041],[103.248084,32.854141],[103.2483,32.854241],[103.248306,32.854244],[103.2487,32.854408],[103.249027,32.85445],[103.249119,32.854462],[103.249339,32.854465],[103.249371,32.854466],[103.249552,32.854468],[103.249623,32.854469],[103.249875,32.854473],[103.250127,32.854476],[103.250379,32.85448],[103.250631,32.854484],[103.25091,32.854454],[103.251188,32.854424],[103.251578,32.854382],[103.251968,32.85434],[103.252358,32.854298],[103.252799,32.854229],[103.253241,32.854159],[103.253683,32.85409],[103.253934,32.854041],[103.254184,32.853992],[103.254435,32.853943],[103.254686,32.853894],[103.254937,32.853845],[103.255188,32.853796],[103.255439,32.853747],[103.25569,32.853698],[103.255941,32.853649],[103.256191,32.8536],[103.256442,32.853551],[103.256693,32.853502],[103.256923,32.853489],[103.257153,32.853476],[103.257421,32.853512],[103.257649,32.853612],[103.257877,32.85376],[103.258075,32.853916],[103.258272,32.854073],[103.25847,32.854229],[103.258668,32.854385],[103.258827,32.854565],[103.258986,32.854744],[103.259145,32.854924],[103.259304,32.855104],[103.259464,32.855283],[103.259623,32.855463],[103.259782,32.855642],[103.259941,32.855822],[103.26013,32.85597],[103.260318,32.856119],[103.260698,32.856318],[103.260923,32.856411],[103.261149,32.856505],[103.261374,32.856599],[103.2616,32.856693],[103.261822,32.856786],[103.261825,32.856787],[103.26205,32.856881],[103.262276,32.856975],[103.262501,32.857068],[103.26279,32.857256],[103.263079,32.857444],[103.263419,32.857696],[103.263759,32.857948],[103.264099,32.8582],[103.264272,32.858348],[103.264444,32.858496],[103.264617,32.858643],[103.264789,32.858791],[103.264962,32.858939],[103.265134,32.859087],[103.265456,32.859268],[103.265664,32.859368],[103.265872,32.859469],[103.266101,32.85955],[103.266329,32.859631],[103.266557,32.859712],[103.266785,32.859793],[103.267013,32.859874],[103.267241,32.859955],[103.26746,32.860023],[103.267679,32.86009],[103.267898,32.860158],[103.268117,32.860225],[103.268336,32.860293],[103.268555,32.86036],[103.268774,32.860428],[103.268993,32.860495],[103.269212,32.860562],[103.269431,32.86063],[103.269696,32.860755],[103.269961,32.860881],[103.270284,32.861046],[103.270567,32.861243],[103.270774,32.861457],[103.270999,32.861701],[103.27114,32.861885],[103.271281,32.862069],[103.271423,32.862253],[103.271564,32.862437],[103.271705,32.862621],[103.271847,32.862804],[103.2721,32.863106],[103.272353,32.863408],[103.27255,32.863596],[103.272747,32.863784],[103.272939,32.863946],[103.27313,32.864107],[103.273321,32.864268],[103.273513,32.86443],[103.273704,32.864591],[103.273896,32.864753],[103.274122,32.864965],[103.274327,32.865307],[103.274437,32.865511],[103.274548,32.865714],[103.274689,32.865953],[103.274829,32.866191],[103.27497,32.866429],[103.27511,32.866667],[103.275256,32.866992],[103.275402,32.867318],[103.275493,32.867601],[103.275584,32.867885],[103.275757,32.868299],[103.275931,32.868713],[103.276089,32.868973],[103.276247,32.869233],[103.276445,32.869421],[103.276642,32.86961],[103.276865,32.869752],[103.277088,32.869894],[103.277311,32.870036],[103.277534,32.870178],[103.277748,32.870262],[103.277962,32.870345],[103.278176,32.870429],[103.278389,32.870512],[103.27879,32.870588],[103.279191,32.870664],[103.279591,32.87074],[103.279859,32.870774],[103.280126,32.870808],[103.280393,32.870841],[103.280661,32.870875],[103.280928,32.870909],[103.281195,32.870943],[103.281463,32.870977],[103.28173,32.871011],[103.282163,32.87107],[103.282596,32.87113],[103.28303,32.87119],[103.283267,32.871266],[103.283505,32.871342],[103.283743,32.871418],[103.283981,32.871494],[103.28423,32.871611],[103.284479,32.871729],[103.284728,32.871847],[103.284978,32.871965],[103.285215,32.872065],[103.285453,32.872165],[103.285688,32.872267],[103.285923,32.872369],[103.286158,32.872471],[103.286393,32.872573],[103.286628,32.872675],[103.286863,32.872777],[103.287098,32.872879],[103.287333,32.872981],[103.287546,32.873061],[103.287759,32.873142],[103.287972,32.873222],[103.288185,32.873303],[103.288398,32.873383],[103.288611,32.873464],[103.288824,32.873544],[103.289037,32.873625],[103.28925,32.873705],[103.289463,32.873786],[103.289709,32.873894],[103.289956,32.874002],[103.290203,32.87411],[103.29045,32.874218],[103.290696,32.874326],[103.290943,32.874434],[103.291205,32.874492],[103.291468,32.87455],[103.29173,32.874609],[103.291992,32.874667],[103.292254,32.874725],[103.292516,32.874783],[103.292779,32.874841],[103.293041,32.874899],[103.293464,32.87493],[103.293887,32.874961],[103.294311,32.874992],[103.294734,32.875022],[103.295096,32.875093],[103.29514,32.875115],[103.295514,32.875307],[103.295662,32.875519],[103.295848,32.875861],[103.295994,32.876202],[103.296141,32.876542],[103.296262,32.876897],[103.296383,32.877252],[103.296503,32.877607],[103.296515,32.877995],[103.296471,32.878316],[103.296254,32.878653],[103.296135,32.878853],[103.296016,32.879053],[103.295838,32.879349],[103.29566,32.879645],[103.295554,32.879855],[103.295447,32.880065],[103.295341,32.880275],[103.295234,32.880485],[103.295128,32.880694],[103.295021,32.880904],[103.294909,32.881282],[103.294796,32.88166],[103.294764,32.881886],[103.294731,32.882112],[103.294724,32.882442],[103.294717,32.882773],[103.294691,32.88312],[103.294665,32.883467],[103.294612,32.883736],[103.294559,32.884005],[103.294506,32.884275],[103.294453,32.884544],[103.294343,32.884796],[103.294232,32.885047],[103.294121,32.885298],[103.294011,32.88555],[103.293865,32.885741],[103.29372,32.885933],[103.293575,32.886125],[103.293429,32.886316],[103.293284,32.886508],[103.293139,32.8867],[103.292993,32.886891],[103.292848,32.887083],[103.292703,32.887275],[103.292557,32.887466],[103.292438,32.88774],[103.292449,32.888095],[103.292615,32.888436],[103.292745,32.888639],[103.292876,32.888842],[103.293178,32.889054],[103.293481,32.889265],[103.29385,32.889472],[103.294219,32.88968],[103.294432,32.88984],[103.294644,32.890001],[103.294857,32.890161],[103.29507,32.890322],[103.295263,32.890473],[103.295456,32.890625],[103.29565,32.890777],[103.295843,32.890929],[103.296036,32.89108],[103.29623,32.891232],[103.296423,32.891384],[103.296616,32.891535],[103.296795,32.891724],[103.296973,32.891912],[103.297151,32.8921],[103.29733,32.892288],[103.297418,32.892579],[103.29739,32.892745],[103.297375,32.892837],[103.297357,32.892895],[103.297357,32.892896],[103.297305,32.893068],[103.297236,32.893299],[103.297166,32.893531],[103.297097,32.893762],[103.297033,32.894035],[103.29697,32.894309],[103.296888,32.894678],[103.29686,32.895082],[103.296837,32.895308],[103.296814,32.895534],[103.296822,32.895887],[103.296824,32.895953],[103.296862,32.896193],[103.296892,32.89639],[103.296961,32.896777],[103.297,32.897003],[103.297039,32.897228],[103.297077,32.897453],[103.297083,32.897488],[103.297116,32.897678],[103.297244,32.898019],[103.297371,32.898359],[103.297528,32.898644],[103.297556,32.898695],[103.297686,32.898929],[103.297843,32.89923],[103.298,32.89953],[103.2981,32.899822],[103.2982,32.900114],[103.298318,32.900446],[103.298335,32.900494],[103.298436,32.900778],[103.298486,32.901183],[103.298491,32.90142],[103.298496,32.901657],[103.298501,32.901894],[103.298506,32.902131],[103.298499,32.902368],[103.298491,32.902604],[103.298483,32.902841],[103.298475,32.903078],[103.298468,32.903314],[103.29846,32.903551],[103.298453,32.903914],[103.298446,32.904277],[103.298459,32.904616],[103.298472,32.904955],[103.298504,32.905238],[103.298537,32.905521],[103.298542,32.905769],[103.298547,32.906017],[103.298552,32.906264],[103.298556,32.906512],[103.298561,32.90676],[103.298566,32.907008],[103.298571,32.907255],[103.298576,32.907503],[103.298552,32.907777],[103.298528,32.908051],[103.298503,32.908326],[103.298479,32.9086],[103.298474,32.908852],[103.298469,32.909103],[103.298464,32.909355],[103.298459,32.909607],[103.298455,32.909859],[103.29845,32.910111],[103.298445,32.910363],[103.29844,32.910615],[103.298452,32.910877],[103.298463,32.911139],[103.298475,32.9114],[103.298487,32.911662],[103.298499,32.911924],[103.29851,32.912186],[103.298522,32.912448],[103.298534,32.912709],[103.298582,32.913151],[103.298631,32.913593],[103.29868,32.914034],[103.298702,32.914438],[103.298723,32.914842],[103.298724,32.915277],[103.298726,32.915711],[103.298625,32.916016],[103.298408,32.91632],[103.298184,32.916518],[103.29796,32.916716],[103.297858,32.916782],[103.297494,32.917017],[103.297282,32.917103],[103.29707,32.917189],[103.296858,32.917275],[103.296645,32.917361],[103.2964,32.917455],[103.296154,32.91755],[103.295909,32.917645],[103.295663,32.917739],[103.295418,32.917834],[103.295173,32.917928],[103.294927,32.918023],[103.294682,32.918118],[103.294436,32.918212],[103.294191,32.918307],[103.293945,32.918402],[103.2937,32.918496],[103.293454,32.918591],[103.293209,32.918686],[103.292841,32.918882],[103.292474,32.919078],[103.29226,32.919253],[103.291987,32.919492],[103.291847,32.919781],[103.291792,32.920011],[103.291737,32.920241],[103.291729,32.920604],[103.291722,32.920967],[103.291708,32.921201],[103.291694,32.921434],[103.29168,32.921668],[103.291666,32.921902],[103.29166,32.922209],[103.291653,32.922515],[103.29161,32.922805],[103.291566,32.923094],[103.291444,32.92348],[103.291304,32.923786],[103.291137,32.924126],[103.29097,32.924465],[103.290803,32.924805],[103.290592,32.925163],[103.29038,32.925521],[103.290169,32.925878],[103.290026,32.926082],[103.289883,32.926286],[103.28974,32.92649],[103.289597,32.926694],[103.289476,32.926886],[103.289354,32.927078],[103.289232,32.92727],[103.28911,32.927462],[103.288989,32.927654],[103.288867,32.927846],[103.288706,32.928046],[103.288546,32.928247],[103.288385,32.928448],[103.288224,32.928648],[103.288064,32.928849],[103.287903,32.929049],[103.287742,32.92925],[103.287582,32.929451],[103.287421,32.929651],[103.28726,32.929852],[103.2871,32.930052],[103.286939,32.930253],[103.286627,32.930507],[103.286506,32.930605],[103.286315,32.930761],[103.286083,32.930895],[103.285851,32.931029],[103.285542,32.931113],[103.285233,32.931197],[103.284898,32.931217],[103.284563,32.931237],[103.284299,32.931231],[103.284036,32.931226],[103.283773,32.93122],[103.283509,32.931214],[103.283246,32.931209],[103.282982,32.931203],[103.282719,32.931197],[103.282456,32.931192],[103.282321,32.931255],[103.28228,32.931383],[103.282275,32.931625],[103.282384,32.931966],[103.282554,32.932162],[103.282761,32.932213],[103.283144,32.932291],[103.283526,32.932369],[103.283767,32.932425],[103.284007,32.932481],[103.284248,32.932536],[103.284489,32.932592],[103.284729,32.932648],[103.28497,32.932704],[103.285022,32.932716],[103.285211,32.93276],[103.285451,32.932815],[103.285857,32.932952],[103.286262,32.933089],[103.286667,32.933226],[103.287073,32.933363],[103.28711,32.933375],[103.28733,32.933447],[103.28744,32.933483],[103.287587,32.933531],[103.287844,32.933615],[103.288101,32.9337],[103.288463,32.933834],[103.288701,32.933912],[103.288748,32.933927],[103.289033,32.93402],[103.289397,32.934056],[103.289628,32.934045],[103.289646,32.934044],[103.289668,32.934035],[103.289955,32.93392],[103.290172,32.93378],[103.290389,32.933639],[103.290607,32.933498],[103.290735,32.933415],[103.290824,32.933357],[103.290998,32.933244],[103.291041,32.933217],[103.291155,32.933143],[103.291259,32.933076],[103.291476,32.932935],[103.291693,32.932794],[103.291911,32.932654],[103.292128,32.932513],[103.292325,32.932379],[103.292522,32.932245],[103.292718,32.932111],[103.292915,32.931977],[103.293112,32.931844],[103.293309,32.93171],[103.293506,32.931576],[103.293702,32.931442],[103.293899,32.931308],[103.294096,32.931174],[103.294277,32.931016],[103.294458,32.930857],[103.29464,32.930698],[103.294821,32.930539],[103.295002,32.93038],[103.295183,32.930221],[103.295365,32.930062],[103.295546,32.929904],[103.295727,32.929745],[103.295908,32.929586],[103.296092,32.929383],[103.296276,32.929179],[103.296459,32.928976],[103.296643,32.928773],[103.296826,32.928569],[103.29701,32.928366],[103.297194,32.928163],[103.297377,32.927959],[103.297531,32.92778],[103.297684,32.9276],[103.297838,32.92742],[103.297991,32.92724],[103.298145,32.927061],[103.298299,32.926881],[103.298452,32.926701],[103.298606,32.926521],[103.298759,32.926342],[103.298913,32.926162],[103.299103,32.925987],[103.299294,32.925812],[103.299484,32.925637],[103.299674,32.925462],[103.299964,32.925352],[103.300308,32.925309],[103.300559,32.92524],[103.30081,32.92517],[103.301032,32.925092],[103.301253,32.925014],[103.301548,32.924836],[103.301842,32.924658],[103.30201,32.924504],[103.302178,32.92435],[103.302346,32.924195],[103.302513,32.924041],[103.302681,32.923887],[103.302849,32.923732],[103.303016,32.923578],[103.303184,32.923424],[103.303352,32.923269],[103.30352,32.923115],[103.303723,32.922977],[103.303927,32.922838],[103.304131,32.9227],[103.304335,32.922561],[103.304538,32.922423],[103.304742,32.922284],[103.304946,32.922146],[103.30515,32.922007],[103.305526,32.921851],[103.305657,32.921797],[103.305902,32.921695],[103.305997,32.921687],[103.306209,32.921667],[103.306592,32.921672],[103.306801,32.921788],[103.306952,32.921919],[103.30707,32.922155],[103.307082,32.922179],[103.307116,32.922357],[103.307101,32.922457],[103.307073,32.922647],[103.307029,32.922937],[103.306966,32.923188],[103.306966,32.92319],[103.306965,32.923192],[103.306904,32.923439],[103.306841,32.923691],[103.306779,32.923942],[103.306716,32.924193],[103.306654,32.924445],[103.306592,32.924696],[103.306529,32.924947],[103.306572,32.925244],[103.306615,32.925541],[103.306696,32.925967],[103.306777,32.926393],[103.306858,32.926819],[103.306985,32.927176],[103.307112,32.927532],[103.307233,32.927756],[103.307354,32.927979],[103.307457,32.928171],[103.307469,32.928193],[103.307474,32.928203],[103.307474,32.928203],[103.307595,32.928426],[103.307694,32.928534],[103.307763,32.92861],[103.307857,32.928712],[103.30812,32.928999],[103.308298,32.929195],[103.308476,32.929391],[103.308655,32.929587],[103.308833,32.929784],[103.309151,32.930045],[103.309235,32.930115],[103.309468,32.930306],[103.309484,32.930319],[103.309785,32.930567],[103.309992,32.930763],[103.310103,32.931024],[103.310077,32.931346],[103.309977,32.931683],[103.309884,32.931964],[103.309792,32.932246],[103.309698,32.932504],[103.309603,32.932762],[103.309508,32.93302],[103.309414,32.933278],[103.309319,32.933536],[103.309224,32.933793],[103.309129,32.934051],[103.309035,32.934309],[103.308817,32.934699],[103.3086,32.935089],[103.308581,32.935123],[103.308531,32.935212],[103.308383,32.935478],[103.308101,32.935803],[103.308098,32.935807],[103.308056,32.935855],[103.307898,32.936037],[103.30782,32.936127],[103.307539,32.936452],[103.307133,32.936625],[103.307085,32.936636],[103.306863,32.93669],[103.306861,32.93669],[103.306859,32.936691],[103.306594,32.936754],[103.306325,32.936819],[103.306056,32.936884],[103.305681,32.936943],[103.305307,32.937002],[103.305046,32.937063],[103.304786,32.937125],[103.304526,32.937186],[103.304266,32.937247],[103.304042,32.93739],[103.303819,32.937532],[103.303661,32.937772],[103.303504,32.938012],[103.303436,32.938374],[103.303487,32.938731],[103.30354,32.938957],[103.303593,32.939184],[103.303689,32.939411],[103.303785,32.939638],[103.303882,32.939866],[103.303978,32.940093],[103.304109,32.94028],[103.304239,32.940468],[103.30437,32.940655],[103.3045,32.940843],[103.304792,32.941121],[103.305084,32.941399],[103.305233,32.941689],[103.305383,32.941979],[103.305578,32.942353],[103.305772,32.942727],[103.306025,32.943021],[103.306278,32.943315],[103.306398,32.943583],[103.306517,32.943851],[103.306647,32.944087],[103.306776,32.944322],[103.307,32.944672],[103.307223,32.945022],[103.307437,32.945348],[103.307651,32.945674],[103.307867,32.945919],[103.308082,32.946164],[103.308413,32.946445],[103.308744,32.946726],[103.309075,32.947007],[103.309406,32.947289],[103.309601,32.947481],[103.309796,32.947673],[103.309992,32.947866],[103.310187,32.948058],[103.310382,32.94825],[103.310578,32.948443],[103.310773,32.948635],[103.310968,32.948827],[103.311059,32.94907],[103.311035,32.949328],[103.310876,32.949617],[103.310695,32.9498],[103.310515,32.949983],[103.310334,32.950166],[103.310153,32.950349],[103.309955,32.950691],[103.309756,32.951034],[103.309635,32.951339],[103.309515,32.951644],[103.309444,32.951865],[103.309373,32.952086],[103.309302,32.952307],[103.309231,32.952528],[103.309089,32.952919],[103.308947,32.95331],[103.308805,32.953702],[103.30879,32.953992],[103.308775,32.954282],[103.308864,32.954622],[103.308953,32.954961],[103.309045,32.955181],[103.309137,32.9554],[103.30936,32.955767],[103.309583,32.956134],[103.309807,32.956501],[103.309918,32.956712],[103.310028,32.956923],[103.310139,32.957134],[103.31025,32.957345],[103.310369,32.957662],[103.310487,32.957978],[103.310594,32.958399],[103.310607,32.958449],[103.310681,32.958732],[103.310755,32.959015],[103.31077,32.959257],[103.310785,32.9595],[103.310867,32.959722],[103.310949,32.959945],[103.311031,32.960167],[103.311113,32.96039],[103.311219,32.960627],[103.311324,32.960865],[103.31143,32.961102],[103.311536,32.96134],[103.311641,32.961577],[103.311747,32.961815],[103.311853,32.962052],[103.311958,32.96229],[103.312073,32.962498],[103.312187,32.962707],[103.312301,32.962916],[103.312416,32.963124],[103.31253,32.963333],[103.312644,32.963542],[103.31286,32.963762],[103.313076,32.963983],[103.313186,32.964242],[103.313219,32.964533],[103.313158,32.96471],[103.313002,32.964837],[103.312656,32.964962],[103.312251,32.96502],[103.311885,32.965081],[103.311625,32.965198],[103.311514,32.965248],[103.311365,32.965315],[103.311184,32.965425],[103.31117,32.965433],[103.310976,32.965551],[103.310782,32.965669],[103.310588,32.965787],[103.310394,32.965906],[103.3102,32.966024],[103.310035,32.966234],[103.310089,32.966472],[103.310252,32.966844],[103.310396,32.96706],[103.31054,32.967277],[103.310777,32.967489],[103.310962,32.967654],[103.311013,32.967701],[103.311254,32.967946],[103.311495,32.968192],[103.311622,32.968323],[103.311735,32.968438],[103.312013,32.96871],[103.312291,32.968982],[103.31252,32.969224],[103.312748,32.969465],[103.313044,32.969782],[103.313291,32.970046],[103.313539,32.970311],[103.313746,32.970548],[103.313954,32.970786],[103.314133,32.970989],[103.314162,32.971023],[103.31454,32.971243],[103.314875,32.971474],[103.31521,32.971705],[103.315225,32.971717],[103.315468,32.971905],[103.315726,32.972106],[103.315969,32.972419],[103.316044,32.972515],[103.316181,32.972756],[103.316318,32.972996],[103.31642,32.973212],[103.316522,32.973428],[103.316588,32.97365],[103.316655,32.973871],[103.316702,32.974016],[103.316735,32.974117],[103.316815,32.974362],[103.316867,32.974631],[103.316902,32.974818],[103.316918,32.9749],[103.316977,32.975158],[103.317036,32.975415],[103.317065,32.975761],[103.317093,32.976107],[103.317002,32.97653],[103.316969,32.976678],[103.316837,32.976858],[103.316708,32.977032],[103.316446,32.977387],[103.316236,32.977664],[103.316026,32.977942],[103.315815,32.978201],[103.315605,32.978461],[103.315427,32.978603],[103.315261,32.978735],[103.314939,32.979009],[103.314739,32.97918],[103.314721,32.979199],[103.314572,32.979358],[103.314525,32.979573],[103.314535,32.979612],[103.314561,32.979713],[103.314596,32.979846],[103.314725,32.98013],[103.314854,32.980414],[103.314893,32.980501],[103.314941,32.980673],[103.314989,32.980846],[103.315036,32.981244],[103.315059,32.981432],[103.315084,32.981643],[103.315159,32.982055],[103.315234,32.982468],[103.31531,32.98288],[103.315402,32.983207],[103.315494,32.983534],[103.315586,32.983862],[103.315626,32.984001],[103.315679,32.984189],[103.315687,32.984434],[103.315696,32.984679],[103.315702,32.984855],[103.315691,32.985188],[103.315798,32.985474],[103.315952,32.985795],[103.316309,32.986021],[103.316635,32.986194],[103.31696,32.986368],[103.317304,32.98658],[103.317671,32.986805],[103.31788,32.986928],[103.31809,32.987052],[103.3183,32.987175],[103.31851,32.987298],[103.318719,32.987421],[103.318929,32.987545],[103.319155,32.987765],[103.319381,32.987986],[103.319559,32.988182],[103.319738,32.988378],[103.319917,32.988574],[103.320095,32.98877],[103.320249,32.98899],[103.320403,32.98921],[103.320558,32.98943],[103.320712,32.98965],[103.320823,32.989853],[103.320934,32.990056],[103.321045,32.99026],[103.321156,32.990463],[103.321267,32.990666],[103.321378,32.990869],[103.321489,32.991073],[103.3216,32.991276],[103.321788,32.991649],[103.321975,32.992021],[103.322144,32.992209],[103.322314,32.992397],[103.322615,32.992692],[103.322965,32.992915],[103.323315,32.993138],[103.323528,32.993232],[103.32374,32.993326],[103.323952,32.99342],[103.324165,32.993514],[103.324377,32.993609],[103.324589,32.993703],[103.324629,32.993718],[103.324853,32.993801],[103.325077,32.993885],[103.325423,32.994008],[103.325768,32.994131],[103.326113,32.994254],[103.326333,32.994409],[103.326553,32.994563],[103.326553,32.994564],[103.326554,32.994564],[103.326898,32.994843],[103.327243,32.995122],[103.327512,32.995388],[103.327782,32.995654],[103.328052,32.995919],[103.32826,32.996056],[103.328468,32.996193],[103.328568,32.996236],[103.328676,32.996283],[103.329075,32.996455],[103.329392,32.996681],[103.329709,32.996907],[103.330027,32.997133],[103.330356,32.997387],[103.330685,32.997641],[103.331014,32.997894],[103.33107,32.998009],[103.331173,32.99822],[103.331276,32.99843],[103.33147,32.998609],[103.331585,32.998715],[103.331865,32.998816],[103.332014,32.99887],[103.332138,32.998956],[103.332287,32.99906],[103.332442,32.999322],[103.33254,32.999627],[103.332638,32.999932],[103.332736,33.000236],[103.332763,33.000321],[103.332942,33.000619],[103.333153,33.000798],[103.333365,33.000977],[103.333552,33.001135],[103.33366,33.001227],[103.333955,33.001476],[103.33425,33.001725],[103.334464,33.001987],[103.334487,33.002208],[103.3345,33.002332],[103.334504,33.002366],[103.33452,33.0025],[103.334565,33.002895],[103.334589,33.003105],[103.334611,33.003291],[103.334657,33.003686],[103.334702,33.004081],[103.334792,33.004343],[103.334881,33.004605],[103.334994,33.004935],[103.335107,33.005265],[103.335112,33.005279],[103.33522,33.005595],[103.335333,33.005925],[103.335505,33.006306],[103.335678,33.006687],[103.335892,33.007055],[103.335999,33.0074],[103.33601,33.007439],[103.336071,33.007656],[103.336114,33.007811],[103.336142,33.007912],[103.336201,33.008178],[103.336209,33.008215],[103.336261,33.008447],[103.336404,33.008792],[103.336635,33.009159],[103.336749,33.00934],[103.336803,33.00941],[103.336875,33.009503],[103.33703,33.009704],[103.337257,33.009997],[103.33731,33.010052],[103.337492,33.010237],[103.337728,33.010476],[103.337963,33.010716],[103.338184,33.011],[103.338406,33.011285],[103.338627,33.011569],[103.338848,33.011854],[103.339069,33.012138],[103.339239,33.012395],[103.339409,33.012651],[103.339578,33.012908],[103.339629,33.013215],[103.33968,33.013522],[103.339731,33.013828],[103.339731,33.013829],[103.339731,33.013829],[103.339751,33.01391],[103.339781,33.014316],[103.339811,33.014721],[103.339827,33.014944],[103.339841,33.015127],[103.33981,33.015519],[103.33978,33.015912],[103.33975,33.016304],[103.339678,33.016587],[103.339605,33.016871],[103.339372,33.017229],[103.339176,33.017416],[103.338981,33.017603],[103.338691,33.017866],[103.3384,33.018128],[103.338109,33.01839],[103.337772,33.018604],[103.337434,33.018818],[103.337097,33.019032],[103.336877,33.019137],[103.336657,33.019241],[103.336437,33.019346],[103.336216,33.019451],[103.335996,33.019555],[103.335776,33.01966],[103.335489,33.019941],[103.335202,33.020221],[103.335046,33.020389],[103.33489,33.020556],[103.334734,33.020723],[103.334578,33.02089],[103.334421,33.021057],[103.334265,33.021224],[103.334255,33.021601],[103.334244,33.021978],[103.334234,33.022354],[103.334375,33.022591],[103.334515,33.022827],[103.334656,33.023064],[103.334797,33.0233],[103.334938,33.023537],[103.335078,33.023773],[103.335278,33.024142],[103.335456,33.024415],[103.335726,33.024669],[103.335906,33.024846],[103.336223,33.025081],[103.336438,33.025238],[103.336652,33.025395],[103.336867,33.025553],[103.337082,33.02571],[103.337307,33.025954],[103.337533,33.026198],[103.337664,33.026388],[103.337664,33.026388],[103.337665,33.026389],[103.337778,33.026554],[103.338024,33.026909],[103.338171,33.027122],[103.33827,33.027264],[103.338355,33.027477],[103.338401,33.027593],[103.338486,33.02798],[103.33848,33.028295],[103.338498,33.028382],[103.338535,33.028736],[103.338572,33.029089],[103.338608,33.029443],[103.338616,33.029514],[103.3386,33.029828],[103.338583,33.030143],[103.338567,33.030458],[103.338561,33.030586],[103.338559,33.030621],[103.338464,33.031021],[103.338455,33.031241],[103.338454,33.031278],[103.338492,33.031478],[103.338632,33.031766],[103.338771,33.032055],[103.338911,33.032344],[103.338988,33.032472],[103.339044,33.032563],[103.339082,33.032753],[103.339025,33.033125],[103.338882,33.033515],[103.338697,33.033862],[103.338511,33.03421],[103.338473,33.034514],[103.338435,33.034819],[103.338411,33.035247],[103.338387,33.035675],[103.338356,33.036082],[103.338324,33.036488],[103.338297,33.036831],[103.338292,33.036894],[103.338378,33.037227],[103.338502,33.037431],[103.338625,33.037636],[103.338638,33.0377],[103.338673,33.037874],[103.338595,33.038213],[103.338587,33.038245],[103.3386,33.038547],[103.338602,33.038574],[103.338616,33.038902],[103.33861,33.039207],[103.338603,33.039511],[103.338597,33.039816],[103.338644,33.040139],[103.338666,33.04037],[103.338688,33.0406],[103.338692,33.04062],[103.338753,33.040944],[103.33877,33.041035],[103.338868,33.041409],[103.338965,33.041782],[103.338987,33.041868],[103.339028,33.042026],[103.339092,33.04227],[103.339156,33.042514],[103.339219,33.042758],[103.339317,33.043078],[103.339414,33.043398],[103.339477,33.043659],[103.339541,33.043919],[103.339649,33.044288],[103.339849,33.044638],[103.339937,33.044849],[103.340025,33.04506],[103.340099,33.045369],[103.340174,33.045679],[103.340225,33.046017],[103.340277,33.046356],[103.340291,33.046771],[103.340306,33.047186],[103.340325,33.047437],[103.340343,33.047688],[103.340338,33.047942],[103.340333,33.048196],[103.340329,33.04845],[103.340324,33.048704],[103.340319,33.048958],[103.340314,33.049212],[103.340297,33.049501],[103.34028,33.049791],[103.34023,33.05005],[103.340179,33.05031],[103.340034,33.050683],[103.33989,33.051057],[103.339788,33.051296],[103.339686,33.051536],[103.339585,33.051775],[103.339483,33.052014],[103.339383,33.052444],[103.339284,33.052873],[103.339184,33.053303],[103.339177,33.053593],[103.339241,33.053901],[103.339372,33.054251],[103.339483,33.054464],[103.339653,33.054663],[103.339824,33.054862],[103.339994,33.055061],[103.340165,33.05526],[103.340335,33.055459],[103.340506,33.055658],[103.340676,33.055858],[103.340847,33.056057],[103.341017,33.056256],[103.341187,33.056455],[103.341361,33.056652],[103.341534,33.056849],[103.341708,33.057045],[103.341881,33.057242],[103.342055,33.057439],[103.342228,33.057636],[103.342401,33.057833],[103.342575,33.05803],[103.342748,33.058226],[103.342922,33.058423],[103.343144,33.058802],[103.343367,33.059181],[103.34346,33.059409],[103.343553,33.059637],[103.343646,33.059865],[103.343739,33.060093],[103.343793,33.060325],[103.343846,33.060557],[103.343852,33.060828],[103.343857,33.061098],[103.343829,33.061396],[103.343801,33.061695],[103.343784,33.062004],[103.343767,33.062313],[103.343759,33.062717],[103.343774,33.063142],[103.343812,33.063586],[103.343852,33.063866],[103.343893,33.064147],[103.344004,33.064359],[103.344116,33.064572],[103.344227,33.064785],[103.344339,33.064998],[103.344427,33.065172],[103.344421,33.065481],[103.344393,33.06577],[103.344388,33.066041],[103.344309,33.066281],[103.34423,33.066521],[103.344151,33.06676],[103.344072,33.067],[103.343965,33.067385],[103.343858,33.067769],[103.343752,33.068154],[103.343642,33.06849],[103.343533,33.068826],[103.343539,33.069087],[103.343546,33.069347],[103.343631,33.069734],[103.343696,33.069967],[103.34376,33.0702],[103.343936,33.070529],[103.344239,33.070861],[103.344542,33.071192],[103.344845,33.071523],[103.345148,33.071854],[103.345304,33.072088],[103.345414,33.07234],[103.345524,33.072591],[103.345588,33.072883],[103.34558,33.073288],[103.345518,33.073519],[103.345457,33.07375],[103.345429,33.07398],[103.345402,33.074211],[103.345489,33.074463],[103.345597,33.074819],[103.345705,33.075174],[103.345813,33.07553],[103.34591,33.075811],[103.346008,33.076092],[103.346073,33.076363],[103.346137,33.076634],[103.346134,33.076673],[103.346107,33.077018],[103.345962,33.077423],[103.345793,33.077825],[103.345626,33.07819],[103.345403,33.078559],[103.345181,33.078929],[103.345062,33.079127],[103.344959,33.079298],[103.344745,33.079668],[103.344532,33.080038],[103.344424,33.080226],[103.344319,33.080407],[103.344198,33.080734],[103.344033,33.080984],[103.34387,33.081146],[103.343706,33.081307],[103.343543,33.081469],[103.34346,33.08155],[103.343379,33.08163],[103.343223,33.081808],[103.343066,33.081986],[103.34291,33.082165],[103.342754,33.082343],[103.342597,33.082521],[103.342441,33.082699],[103.342253,33.082937],[103.342065,33.083175],[103.341934,33.083449],[103.341825,33.083674],[103.341752,33.083914],[103.341678,33.084155],[103.34164,33.084395],[103.341621,33.084511],[103.341601,33.084636],[103.341585,33.084863],[103.341571,33.085065],[103.34154,33.085494],[103.341507,33.08574],[103.341473,33.085986],[103.34144,33.086231],[103.341406,33.086477],[103.341309,33.086727],[103.341279,33.086804],[103.341212,33.086977],[103.341207,33.087247],[103.341207,33.087277],[103.341202,33.087517],[103.341222,33.087729],[103.341232,33.087772],[103.341257,33.087882],[103.341307,33.088097],[103.341309,33.088115],[103.341347,33.088425],[103.341386,33.088831],[103.341358,33.089043],[103.341263,33.089196],[103.34108,33.089333],[103.340897,33.089471],[103.340713,33.089608],[103.340651,33.089655],[103.34053,33.089746],[103.340347,33.089884],[103.340163,33.090021],[103.33998,33.090159],[103.339968,33.090168],[103.339894,33.090223],[103.339891,33.090225],[103.339797,33.090296],[103.339563,33.090414],[103.339556,33.090417],[103.339337,33.090527],[103.33932,33.090536],[103.339315,33.090539],[103.339194,33.090599],[103.339074,33.09066],[103.338999,33.090698],[103.338834,33.090781],[103.338671,33.090809],[103.338466,33.090844],[103.338098,33.090907],[103.337913,33.090917],[103.337811,33.090922],[103.337524,33.090937],[103.337457,33.090941],[103.337388,33.090945],[103.337248,33.090952],[103.336856,33.091044],[103.336598,33.091272],[103.33639,33.0915],[103.336288,33.091615],[103.336236,33.091672],[103.336083,33.091845],[103.335988,33.092075],[103.335911,33.092235],[103.335881,33.092298],[103.335868,33.092323],[103.335776,33.092514],[103.335748,33.092572],[103.335561,33.092801],[103.335333,33.093024],[103.335327,33.09303],[103.334991,33.093219],[103.334916,33.093261],[103.334655,33.093407],[103.334351,33.093711],[103.33433,33.093744],[103.334184,33.09398],[103.333973,33.094219],[103.333911,33.094288],[103.333762,33.094457],[103.33346,33.094684],[103.333229,33.094778],[103.332906,33.094851],[103.332469,33.094883],[103.332158,33.094927],[103.331848,33.094971],[103.331478,33.095159],[103.331303,33.095335],[103.331273,33.095365],[103.331149,33.09549],[103.331127,33.095512],[103.330993,33.095647],[103.330993,33.095647],[103.330952,33.095688],[103.330776,33.095864],[103.33042,33.096098],[103.330064,33.096331],[103.329707,33.096564],[103.329344,33.096705],[103.329047,33.09668],[103.328726,33.096618],[103.328409,33.09646],[103.328277,33.096402],[103.328044,33.0963],[103.327745,33.096334],[103.327535,33.096507],[103.327417,33.096716],[103.327346,33.096794],[103.327232,33.096819],[103.327024,33.096866],[103.326772,33.096862],[103.326472,33.096917],[103.326264,33.09699],[103.326239,33.097018],[103.326144,33.097123],[103.326143,33.097123],[103.326143,33.097123],[103.326125,33.097144],[103.326122,33.097157],[103.326115,33.097189],[103.3261,33.097259],[103.326097,33.097317],[103.32608,33.097644],[103.326065,33.097951],[103.326061,33.09803],[103.326059,33.098048],[103.326033,33.098281],[103.325914,33.09851],[103.325705,33.098661],[103.325382,33.098774],[103.325316,33.098768],[103.325263,33.098764],[103.325106,33.098751],[103.324742,33.098649],[103.324493,33.09859],[103.324325,33.098551],[103.324307,33.098546],[103.324015,33.09856],[103.323988,33.098561],[103.323756,33.098577],[103.323724,33.09862],[103.32365,33.098717],[103.323568,33.098826],[103.323474,33.099015],[103.323473,33.099018],[103.323329,33.099306],[103.32319,33.09938],[103.323098,33.099399],[103.32296,33.099359],[103.322688,33.099239],[103.322606,33.0992],[103.322549,33.099173],[103.322393,33.0991],[103.322364,33.099103],[103.322002,33.099153],[103.321746,33.099304],[103.321675,33.099417],[103.321462,33.099782],[103.32134,33.100147],[103.321313,33.10034],[103.321377,33.10063],[103.321392,33.10066],[103.321487,33.100844],[103.321692,33.100962],[103.321994,33.101019],[103.322126,33.101044],[103.322419,33.101319],[103.322488,33.101451],[103.322492,33.101551],[103.322502,33.101818],[103.322501,33.101877],[103.322496,33.102146],[103.322462,33.102293],[103.322461,33.102295],[103.322442,33.10238],[103.322388,33.102614],[103.322336,33.102837],[103.322335,33.102844],[103.322334,33.102846],[103.322334,33.102848],[103.32232,33.102908],[103.322309,33.102953],[103.32228,33.103082],[103.322255,33.103187],[103.322226,33.103316],[103.322172,33.10355],[103.322104,33.103805],[103.322036,33.10406],[103.321968,33.104315],[103.32192,33.104493],[103.3219,33.104569],[103.32178,33.104876],[103.321709,33.105056],[103.321659,33.105183],[103.321491,33.10544],[103.321471,33.10547],[103.321209,33.105814],[103.320907,33.106041],[103.320605,33.106269],[103.320604,33.106269],[103.320415,33.106412],[103.320351,33.10646],[103.320303,33.106497],[103.320082,33.106677],[103.319861,33.106858],[103.319641,33.106977],[103.319569,33.107015],[103.319514,33.107045],[103.319119,33.107176],[103.318806,33.107279],[103.318718,33.107278],[103.318555,33.107276],[103.318554,33.107276],[103.318553,33.107276],[103.318301,33.107272],[103.318048,33.107269],[103.317796,33.107265],[103.31736,33.10724],[103.317286,33.107225],[103.31718,33.107204],[103.317097,33.107179],[103.316777,33.107079],[103.316375,33.106954],[103.316072,33.106945],[103.315768,33.106936],[103.315613,33.106998],[103.315367,33.107097],[103.314952,33.107198],[103.314536,33.107298],[103.31435,33.107441],[103.314165,33.107583],[103.313975,33.107927],[103.313972,33.108061],[103.313968,33.108222],[103.313922,33.108478],[103.313876,33.108735],[103.313819,33.108885],[103.313782,33.108945],[103.313691,33.108966],[103.313655,33.108974],[103.313313,33.109031],[103.313276,33.109037],[103.312949,33.109033],[103.312862,33.109032],[103.312623,33.109029],[103.312414,33.109151],[103.312205,33.109274],[103.312128,33.109621],[103.312192,33.10993],[103.312246,33.11004],[103.312325,33.110201],[103.312504,33.110435],[103.312706,33.110651],[103.312708,33.110655],[103.312749,33.110747],[103.312763,33.110805],[103.312813,33.111018],[103.312743,33.111191],[103.312486,33.11138],[103.312337,33.111432],[103.31222,33.111473],[103.312217,33.111474],[103.312214,33.111475],[103.311954,33.111566],[103.311654,33.111639],[103.311355,33.111712],[103.310942,33.111746],[103.310621,33.111683],[103.310392,33.111584],[103.31028,33.111543],[103.310188,33.111524],[103.309955,33.111694],[103.309904,33.111924],[103.309784,33.112193],[103.309589,33.112391],[103.309395,33.112588],[103.309231,33.112759],[103.309067,33.11293],[103.308846,33.113034],[103.308628,33.113136],[103.308626,33.113137],[103.308282,33.11319],[103.308122,33.113148],[103.307939,33.11307],[103.307827,33.112932],[103.307741,33.11268],[103.307399,33.11258],[103.307075,33.112677],[103.307029,33.112691],[103.306658,33.112859],[103.30664,33.112867],[103.306427,33.112962],[103.306195,33.113064],[103.306037,33.113228],[103.305973,33.113293],[103.305751,33.113521],[103.305627,33.113717],[103.30551,33.113901],[103.305502,33.113913],[103.305415,33.114051],[103.305378,33.114109],[103.305278,33.114268],[103.305254,33.114306],[103.305052,33.11467],[103.304963,33.11483],[103.304851,33.115032],[103.304851,33.115032],[103.30485,33.115034],[103.304798,33.115303],[103.304843,33.115401],[103.304957,33.115402],[103.305058,33.115392],[103.30521,33.115377],[103.30537,33.11536],[103.305463,33.115351],[103.305783,33.115452],[103.305821,33.115493],[103.305875,33.115552],[103.305962,33.115647],[103.306027,33.115822],[103.306024,33.115976],[103.305895,33.116134],[103.305883,33.116148],[103.305723,33.116272],[103.305534,33.11642],[103.305185,33.116692],[103.304836,33.116963],[103.304642,33.117083],[103.304448,33.117203],[103.304255,33.117322],[103.304061,33.117442],[103.303868,33.117562],[103.303813,33.117595],[103.303684,33.117675],[103.303674,33.117681],[103.303374,33.117812],[103.303121,33.117847],[103.302987,33.117652],[103.302911,33.117419],[103.302834,33.117187],[103.302831,33.117155],[103.302805,33.116935],[103.302789,33.116796],[103.302776,33.116684],[103.302757,33.116452],[103.302739,33.116221],[103.302718,33.116066],[103.302605,33.115968],[103.302442,33.115949],[103.302423,33.115946],[103.302283,33.116002],[103.302136,33.11613],[103.302108,33.116154],[103.30201,33.116239],[103.301933,33.116306],[103.301766,33.116613],[103.301748,33.116706],[103.301721,33.116838],[103.301716,33.116863],[103.30164,33.117208],[103.301635,33.117479],[103.301579,33.117568],[103.301347,33.117719],[103.300954,33.117887],[103.30063,33.118037],[103.300521,33.118087],[103.300453,33.118119],[103.300381,33.118152],[103.300306,33.118187],[103.300119,33.118349],[103.299931,33.11851],[103.299821,33.118653],[103.299754,33.11874],[103.299681,33.118835],[103.29968,33.118835],[103.29968,33.118835],[103.299429,33.119159],[103.299178,33.119484],[103.299143,33.119524],[103.299087,33.119588],[103.298943,33.11975],[103.298689,33.119921],[103.298413,33.119936],[103.298314,33.119935],[103.298251,33.119934],[103.29793,33.11991],[103.297586,33.119925],[103.297574,33.119931],[103.297527,33.119953],[103.297425,33.12],[103.297283,33.120152],[103.297116,33.120497],[103.297027,33.120698],[103.297005,33.120746],[103.296997,33.120766],[103.296955,33.120874],[103.2969,33.121015],[103.296855,33.121087],[103.296824,33.121136],[103.296733,33.121284],[103.296617,33.121398],[103.296501,33.121453],[103.29634,33.121432],[103.296248,33.121372],[103.29616,33.121314],[103.29616,33.121314],[103.296159,33.121314],[103.29612,33.121291],[103.296063,33.121258],[103.296056,33.121254],[103.296009,33.121227],[103.295819,33.121116],[103.295523,33.120996],[103.295469,33.120982],[103.295295,33.120935],[103.295291,33.120936],[103.295041,33.12098],[103.294788,33.121025],[103.294618,33.121148],[103.294578,33.121176],[103.294507,33.121374],[103.294481,33.121445],[103.294484,33.121469],[103.294494,33.121589],[103.294501,33.121658],[103.294564,33.121909],[103.294743,33.122124],[103.295085,33.122284],[103.295186,33.122362],[103.295219,33.122388],[103.295312,33.122461],[103.295331,33.122634],[103.295213,33.122767],[103.294819,33.122935],[103.29452,33.123029],[103.29429,33.123093],[103.294093,33.123148],[103.29406,33.123157],[103.293985,33.123195],[103.293803,33.123289],[103.293732,33.123442],[103.293729,33.123596],[103.29373,33.123638],[103.293733,33.123734],[103.293734,33.123766],[103.293739,33.123921],[103.293775,33.124087],[103.293824,33.124308],[103.293829,33.124367],[103.293843,33.124502],[103.293838,33.124683],[103.293838,33.124695],[103.293812,33.124848],[103.293546,33.125118],[103.293532,33.125133],[103.293321,33.125363],[103.293087,33.125572],[103.292854,33.125723],[103.292506,33.12593],[103.292275,33.126024],[103.291999,33.126019],[103.291633,33.125995],[103.291313,33.125952],[103.291037,33.125929],[103.290764,33.12589],[103.29074,33.125886],[103.290488,33.125835],[103.290446,33.125826],[103.290237,33.125783],[103.290127,33.125753],[103.28994,33.125702],[103.289734,33.125605],[103.289644,33.125562],[103.289418,33.125406],[103.289406,33.125406],[103.289339,33.125405],[103.289323,33.125404],[103.289189,33.125402],[103.289096,33.12544],[103.288934,33.125496],[103.28882,33.125693],[103.288791,33.125744],[103.288774,33.125792],[103.288694,33.126013],[103.288672,33.126114],[103.288645,33.126243],[103.288501,33.126532],[103.288406,33.126685],[103.28813,33.126776],[103.287898,33.126813],[103.287624,33.126827],[103.287544,33.126826],[103.287301,33.126823],[103.286945,33.126866],[103.286589,33.126909],[103.286488,33.12695],[103.286311,33.127021],[103.286194,33.127156],[103.286121,33.127348],[103.286003,33.1275],[103.285793,33.127651],[103.285539,33.127783],[103.285193,33.127875],[103.28493,33.12792],[103.284668,33.127965],[103.284366,33.128134],[103.284135,33.128207],[103.284119,33.128205],[103.283884,33.128185],[103.283832,33.128167],[103.283655,33.128104],[103.283635,33.128055],[103.283569,33.127892],[103.283506,33.127542],[103.283441,33.127349],[103.283374,33.127252],[103.283306,33.127213],[103.283073,33.12729],[103.283029,33.127305],[103.282959,33.127361],[103.282915,33.127367],[103.28282,33.12738],[103.282727,33.127357],[103.282569,33.127317],[103.282388,33.127219],[103.282211,33.126908],[103.282144,33.126733],[103.282078,33.126617],[103.281873,33.126538],[103.28162,33.126532],[103.281413,33.126588],[103.281181,33.126682],[103.28103,33.126753],[103.280904,33.126813],[103.280672,33.126886],[103.280488,33.126923],[103.280167,33.126938],[103.279845,33.126953],[103.279731,33.126959],[103.279592,33.126967],[103.279314,33.126979],[103.279248,33.126982],[103.279201,33.126983],[103.278938,33.126988],[103.278795,33.126991],[103.278704,33.126993],[103.278628,33.126994],[103.278588,33.126978],[103.278423,33.126913],[103.278388,33.126909],[103.278215,33.126886],[103.278102,33.126871],[103.277734,33.126943],[103.277615,33.127114],[103.277568,33.127191],[103.277541,33.127384],[103.277607,33.127519],[103.277788,33.127677],[103.277886,33.127702],[103.277948,33.127718],[103.278008,33.127726],[103.278177,33.12775],[103.278406,33.127782],[103.278655,33.127939],[103.278741,33.128249],[103.278716,33.128364],[103.278461,33.128496],[103.278116,33.128569],[103.277961,33.12858],[103.277885,33.128585],[103.277866,33.128586],[103.277471,33.128618],[103.27742,33.128638],[103.27724,33.12871],[103.277154,33.12878],[103.277123,33.128805],[103.277076,33.12886],[103.276912,33.129054],[103.276772,33.129168],[103.276655,33.129262],[103.276516,33.129317],[103.276228,33.129314],[103.276172,33.129314],[103.276036,33.129319],[103.275805,33.129327],[103.275461,33.129323],[103.275181,33.129351],[103.275145,33.129354],[103.275116,33.129357],[103.275029,33.129375],[103.27477,33.129429],[103.274563,33.129426],[103.274381,33.129385],[103.274314,33.129249],[103.274316,33.129128],[103.27432,33.128941],[103.274328,33.128855],[103.274335,33.128775],[103.27435,33.128613],[103.274367,33.128521],[103.274386,33.128411],[103.274402,33.128324],[103.274453,33.128036],[103.274467,33.127978],[103.274503,33.127823],[103.2746,33.127574],[103.274601,33.127517],[103.274533,33.127477],[103.274403,33.127476],[103.274312,33.127474],[103.274265,33.127486],[103.274093,33.127529],[103.274039,33.127542],[103.273874,33.127584],[103.27369,33.127601],[103.273552,33.127599],[103.273484,33.127598],[103.273361,33.127557],[103.273301,33.127537],[103.273168,33.127343],[103.273196,33.127015],[103.273203,33.126686],[103.273136,33.126477],[103.273116,33.126416],[103.272863,33.126412],[103.272539,33.126582],[103.272409,33.12671],[103.272375,33.126743],[103.272212,33.126905],[103.272058,33.127105],[103.271904,33.127305],[103.271741,33.127506],[103.271623,33.127649],[103.271506,33.127702],[103.271415,33.127743],[103.271277,33.12776],[103.270842,33.127696],[103.270617,33.127442],[103.270544,33.127281],[103.270515,33.127216],[103.27044,33.127054],[103.270337,33.126775],[103.270332,33.126762],[103.270284,33.126731],[103.270151,33.126644],[103.269897,33.126738],[103.269618,33.126927],[103.26936,33.127136],[103.269358,33.127137],[103.269356,33.127139],[103.269271,33.127194],[103.269151,33.127273],[103.269129,33.127287],[103.268921,33.127303],[103.26876,33.127282],[103.268534,33.127323],[103.268485,33.127332],[103.268308,33.127365],[103.268117,33.127401],[103.268081,33.127407],[103.268034,33.127416],[103.267855,33.127449],[103.267628,33.127491],[103.267402,33.127533],[103.267145,33.127593],[103.267089,33.127607],[103.266887,33.127654],[103.266842,33.127665],[103.266688,33.127701],[103.26663,33.127715],[103.266372,33.127776],[103.266114,33.127836],[103.265967,33.127871],[103.265893,33.127889],[103.265857,33.127897],[103.265834,33.127907],[103.265674,33.127975],[103.265614,33.128],[103.265371,33.128103],[103.265266,33.128181],[103.265116,33.128292],[103.264996,33.128483],[103.264992,33.128711],[103.264991,33.128734],[103.265001,33.128794],[103.265032,33.128985],[103.265043,33.129033],[103.265052,33.129074],[103.265096,33.129276],[103.265143,33.129516],[103.265166,33.129631],[103.265176,33.129684],[103.26519,33.129755],[103.265232,33.129967],[103.265182,33.130179],[103.264951,33.13033],[103.264697,33.130346],[103.264587,33.130345],[103.264506,33.130343],[103.264468,33.130343],[103.264283,33.130417],[103.264281,33.130514],[103.264321,33.130823],[103.264318,33.130946],[103.264317,33.131017],[103.264316,33.131054],[103.264289,33.131305],[103.264146,33.131534],[103.264043,33.131666],[103.264004,33.131716],[103.263981,33.131744],[103.263953,33.132014],[103.264016,33.132294],[103.26408,33.132575],[103.264213,33.132809],[103.264141,33.133001],[103.264094,33.133019],[103.264025,33.133018],[103.26366,33.132936],[103.263407,33.132952],[103.263154,33.132967],[103.262969,33.133023],[103.26283,33.133117],[103.262782,33.133232],[103.262821,33.133503],[103.262977,33.133795],[103.262984,33.133809],[103.263121,33.134067],[103.263265,33.134339],[103.263383,33.134732],[103.263393,33.134765],[103.263402,33.134819],[103.263455,33.135152],[103.263358,33.135382],[103.263243,33.135477],[103.26299,33.135493],[103.262932,33.135497],[103.262737,33.135509],[103.262484,33.135525],[103.262231,33.13554],[103.261978,33.135556],[103.261871,33.135563],[103.261726,33.135572],[103.261473,33.135587],[103.26114,33.135583],[103.260806,33.135579],[103.260629,33.135589],[103.260531,33.135594],[103.260365,33.135603],[103.260256,33.135609],[103.259956,33.135661],[103.25975,33.135732],[103.259713,33.135745],[103.25947,33.135829],[103.259283,33.136058],[103.259188,33.136231],[103.259172,33.136359],[103.259159,33.136463],[103.259213,33.136759],[103.259215,33.136769],[103.259283,33.137029],[103.259289,33.13705],[103.259363,33.137331],[103.259337,33.137562],[103.259265,33.137676],[103.259173,33.137713],[103.258943,33.137711],[103.258799,33.137684],[103.258714,33.137668],[103.258678,33.137665],[103.25837,33.137644],[103.25812,33.137674],[103.258073,33.137679],[103.257864,33.137753],[103.25777,33.137868],[103.257769,33.137929],[103.257761,33.138293],[103.257744,33.138502],[103.25773,33.138678],[103.257729,33.138758],[103.257726,33.138909],[103.257722,33.13914],[103.257651,33.139431],[103.257647,33.139449],[103.257489,33.139608],[103.257459,33.139639],[103.257136,33.139749],[103.256896,33.139803],[103.256895,33.139804],[103.256894,33.139804],[103.256824,33.13982],[103.256665,33.139855],[103.256653,33.139858],[103.256272,33.139921],[103.255892,33.139984],[103.255872,33.13999],[103.255521,33.140093],[103.255255,33.140175],[103.255221,33.140185],[103.255058,33.14032],[103.255003,33.140408],[103.254986,33.140434],[103.254984,33.140587],[103.254997,33.140678],[103.255025,33.140878],[103.255025,33.140879],[103.255025,33.14088],[103.255109,33.141168],[103.255171,33.141536],[103.255162,33.141979],[103.255091,33.142152],[103.255086,33.142169],[103.254969,33.142537],[103.254926,33.142593],[103.254837,33.142709],[103.254779,33.142785],[103.254777,33.142895],[103.254898,33.143119],[103.254922,33.143163],[103.254926,33.14317],[103.25501,33.143324],[103.25502,33.143342],[103.255174,33.143633],[103.255306,33.143886],[103.255322,33.144252],[103.255312,33.144352],[103.255295,33.144523],[103.255167,33.144795],[103.25515,33.144829],[103.255067,33.145093],[103.255028,33.145214],[103.255004,33.145288],[103.254973,33.145385],[103.254905,33.145597],[103.254821,33.145818],[103.254737,33.146039],[103.254593,33.146268],[103.25443,33.146421],[103.254316,33.146439],[103.254132,33.146435],[103.253927,33.146317],[103.253704,33.146044],[103.25367,33.145997],[103.253569,33.145859],[103.253528,33.145802],[103.253435,33.145674],[103.253425,33.145661],[103.253418,33.145653],[103.253289,33.145489],[103.253276,33.145472],[103.253158,33.145322],[103.253143,33.145303],[103.252957,33.145131],[103.252772,33.14496],[103.252658,33.144856],[103.252586,33.144789],[103.252563,33.144768],[103.2524,33.144617],[103.252289,33.144527],[103.252224,33.144475],[103.252049,33.144333],[103.251874,33.14419],[103.251699,33.144048],[103.251495,33.143939],[103.251291,33.143829],[103.251191,33.143835],[103.250991,33.143845],[103.250877,33.143862],[103.250778,33.144228],[103.25077,33.144594],[103.250796,33.144841],[103.250809,33.144961],[103.250873,33.145194],[103.250937,33.145426],[103.251003,33.145682],[103.251023,33.145756],[103.251016,33.146103],[103.251009,33.14645],[103.250798,33.146679],[103.250428,33.146828],[103.25015,33.146901],[103.249898,33.146878],[103.249647,33.146836],[103.249269,33.146715],[103.24911,33.146616],[103.248859,33.146555],[103.248608,33.146494],[103.248216,33.146585],[103.247983,33.146716],[103.247862,33.146985],[103.24786,33.147074],[103.247857,33.147224],[103.247856,33.147264],[103.24785,33.147543],[103.247779,33.147736],[103.24764,33.147792],[103.247319,33.147789],[103.247127,33.14774],[103.246908,33.147684],[103.246851,33.147673],[103.246725,33.147646],[103.246614,33.147623],[103.246519,33.147603],[103.246175,33.147617],[103.245888,33.14774],[103.245882,33.147743],[103.245827,33.147767],[103.245572,33.147936],[103.245293,33.148087],[103.245131,33.148143],[103.244993,33.148102],[103.244974,33.147947],[103.24498,33.147869],[103.244995,33.147701],[103.245003,33.147602],[103.245009,33.14733],[103.244994,33.147033],[103.244994,33.147024],[103.244992,33.147002],[103.244927,33.146828],[103.244723,33.146728],[103.244458,33.14674],[103.244402,33.146743],[103.244245,33.14678],[103.244171,33.146798],[103.244086,33.146889],[103.244029,33.14695],[103.243698,33.147213],[103.24347,33.147346],[103.243429,33.14736],[103.243124,33.147458],[103.243044,33.147471],[103.242686,33.147529],[103.242343,33.147505],[103.242068,33.147462],[103.241793,33.14742],[103.241718,33.147411],[103.241564,33.147393],[103.241515,33.147387],[103.241345,33.147367],[103.241335,33.147366],[103.241106,33.147338],[103.240877,33.147311],[103.240602,33.147269],[103.240473,33.147249],[103.240327,33.147226],[103.240278,33.147231],[103.239938,33.147259],[103.239589,33.147447],[103.239333,33.147617],[103.239207,33.147696],[103.239123,33.147749],[103.239022,33.147804],[103.238845,33.147899],[103.238614,33.147935],[103.238566,33.147939],[103.238481,33.147946],[103.238304,33.14796],[103.237995,33.147984],[103.237761,33.148008],[103.237527,33.148032],[103.237293,33.148056],[103.237059,33.148079],[103.236833,33.148148],[103.236608,33.148217],[103.236382,33.148286],[103.236157,33.148355],[103.235787,33.148472],[103.235736,33.148489],[103.235418,33.148589],[103.235048,33.148706],[103.234701,33.148843],[103.234354,33.148979],[103.234007,33.149116],[103.233599,33.149303],[103.233191,33.14949],[103.232783,33.149677],[103.232375,33.149864],[103.231968,33.150051],[103.231723,33.150128],[103.231479,33.150205],[103.231234,33.150282],[103.23099,33.150359],[103.230745,33.150436],[103.230501,33.150513],[103.230256,33.15059],[103.230012,33.150667],[103.229767,33.150744],[103.229523,33.150821],[103.229279,33.150898],[103.229034,33.150975],[103.228792,33.151042],[103.228682,33.151073],[103.228549,33.15111],[103.228539,33.151113],[103.228307,33.151178],[103.228064,33.151246],[103.227822,33.151314],[103.227579,33.151382],[103.227495,33.151406],[103.227337,33.15145],[103.227094,33.151518],[103.226852,33.151586],[103.22661,33.151654],[103.226533,33.151681],[103.226389,33.151733],[103.226168,33.151811],[103.225947,33.15189],[103.225726,33.151969],[103.225505,33.152047],[103.225284,33.152126],[103.225063,33.152205],[103.224842,33.152284],[103.224621,33.152362],[103.2244,33.152441],[103.224207,33.152507],[103.224169,33.15252],[103.223937,33.152598],[103.223821,33.152638],[103.223706,33.152677],[103.223475,33.152756],[103.223244,33.152835],[103.223013,33.152913],[103.222782,33.152992],[103.222551,33.153071],[103.222319,33.153149],[103.222088,33.153228],[103.221857,33.153307],[103.221626,33.153385],[103.221434,33.153451],[103.221395,33.153464],[103.221164,33.153543],[103.220932,33.153621],[103.220701,33.1537],[103.220463,33.153788],[103.220226,33.153875],[103.219988,33.153963],[103.21975,33.15405],[103.219512,33.154138],[103.219274,33.154226],[103.219036,33.154313],[103.218798,33.154401],[103.21856,33.154488],[103.218323,33.154576],[103.218085,33.154664],[103.217847,33.154751],[103.217609,33.154839],[103.217371,33.154926],[103.217117,33.155013],[103.216863,33.1551],[103.216609,33.155187],[103.216355,33.155274],[103.216101,33.155361],[103.215847,33.155448],[103.215593,33.155535],[103.215339,33.155622],[103.215085,33.155709],[103.214831,33.155796],[103.21478,33.155813],[103.214577,33.155883],[103.214323,33.155969],[103.214069,33.156048],[103.213815,33.156126],[103.21356,33.156205],[103.213306,33.156283],[103.212906,33.1564],[103.212505,33.156516],[103.212105,33.156633],[103.211889,33.156733],[103.211672,33.156833],[103.211456,33.156932],[103.211239,33.157032],[103.211023,33.157132],[103.210807,33.157232],[103.210436,33.15738],[103.210066,33.157528],[103.209672,33.157717],[103.209369,33.157906],[103.209229,33.158039],[103.208971,33.158331],[103.208712,33.158622],[103.208453,33.158914],[103.208265,33.159153],[103.208076,33.159391],[103.207845,33.159504],[103.207639,33.159483],[103.207388,33.159382],[103.207024,33.159202],[103.206706,33.159006],[103.206498,33.158905],[103.20629,33.158804],[103.206081,33.158703],[103.205873,33.158602],[103.205664,33.158501],[103.205456,33.158399],[103.205247,33.158298],[103.205039,33.158197],[103.204831,33.158096],[103.204622,33.157995],[103.204414,33.157894],[103.204205,33.157793],[103.203976,33.15769],[103.203747,33.157588],[103.203518,33.157485],[103.203289,33.157383],[103.20306,33.15728],[103.202831,33.157178],[103.202602,33.157075],[103.202373,33.156973],[103.202066,33.156834],[103.201758,33.156695],[103.201552,33.156671],[103.201207,33.156686],[103.200919,33.156778],[103.20063,33.15687],[103.200236,33.157019],[103.199959,33.157132],[103.199749,33.157264],[103.199539,33.157396],[103.199236,33.157674],[103.198932,33.157952],[103.198628,33.15823],[103.198435,33.158416],[103.198241,33.158602],[103.198048,33.158788],[103.197854,33.158974],[103.197726,33.15916],[103.197597,33.159347],[103.197469,33.159534],[103.19734,33.15972],[103.197212,33.159907],[103.197083,33.160094],[103.196955,33.16028],[103.196826,33.160467],[103.196697,33.160654],[103.196569,33.160841],[103.196435,33.161036],[103.196301,33.161232],[103.196166,33.161428],[103.196032,33.161624],[103.195898,33.16182],[103.195764,33.162016],[103.19563,33.162212],[103.195495,33.162408],[103.195361,33.162603],[103.195227,33.162799],[103.195093,33.162995],[103.194959,33.163191],[103.194805,33.163391],[103.194652,33.163592],[103.194418,33.163743],[103.194176,33.163846],[103.193933,33.163948],[103.193679,33.164012],[103.193425,33.164076],[103.193171,33.16414],[103.192917,33.164203],[103.192537,33.164304],[103.192156,33.164405],[103.191774,33.164553],[103.191391,33.164702],[103.191129,33.164785],[103.190868,33.164868],[103.190606,33.164951],[103.190344,33.165034],[103.190082,33.165117],[103.18982,33.1652],[103.189444,33.165333],[103.189068,33.165466],[103.188692,33.165598],[103.188664,33.165608],[103.188247,33.165766],[103.18783,33.165924],[103.187447,33.166122],[103.187064,33.166319],[103.186706,33.166553],[103.186347,33.166788],[103.186144,33.16692],[103.185919,33.167],[103.185693,33.167081],[103.185468,33.167161],[103.185242,33.167241],[103.185017,33.167321],[103.184791,33.167402],[103.184566,33.167482],[103.18434,33.167562],[103.184115,33.167643],[103.18389,33.167723],[103.183664,33.167803],[103.183439,33.167883],[103.183136,33.168032],[103.182811,33.168242],[103.182718,33.168317],[103.18262,33.168566],[103.182612,33.168952],[103.182605,33.169338],[103.18262,33.169666],[103.182643,33.170058],[103.182652,33.170215],[103.182658,33.170328],[103.182666,33.170451],[103.182688,33.170844],[103.182684,33.171076],[103.182683,33.171119],[103.18268,33.171249],[103.182672,33.171654],[103.182664,33.172059],[103.18266,33.172089],[103.182636,33.172289],[103.182608,33.172519],[103.18258,33.172749],[103.182552,33.172979],[103.182527,33.173065],[103.182484,33.173219],[103.182416,33.173459],[103.182348,33.173699],[103.18228,33.17394],[103.182206,33.174168],[103.182132,33.174397],[103.182059,33.174625],[103.181985,33.174854],[103.181912,33.175082],[103.18184,33.175305],[103.181838,33.175311],[103.181765,33.175539],[103.181691,33.175768],[103.181617,33.175996],[103.181597,33.17606],[103.181562,33.176168],[103.181544,33.176225],[103.181493,33.176452],[103.181442,33.17668],[103.181392,33.176907],[103.181341,33.177134],[103.18129,33.177362],[103.181239,33.177589],[103.181143,33.1778],[103.181046,33.17801],[103.18095,33.178221],[103.180854,33.178432],[103.180757,33.178642],[103.180661,33.178853],[103.180564,33.179063],[103.180468,33.179274],[103.180371,33.179485],[103.180275,33.179695],[103.180179,33.179906],[103.180082,33.180117],[103.180034,33.180334],[103.180033,33.180336],[103.180033,33.180338],[103.179987,33.180544],[103.179892,33.180972],[103.179797,33.181399],[103.179702,33.181827],[103.179645,33.182053],[103.179615,33.182175],[103.179589,33.182279],[103.179532,33.182505],[103.179476,33.182731],[103.179398,33.183173],[103.179392,33.183511],[103.179385,33.183849],[103.17933,33.184292],[103.17929,33.184542],[103.179251,33.184792],[103.179242,33.185236],[103.179282,33.185488],[103.179389,33.185874],[103.179565,33.186239],[103.17974,33.186604],[103.179837,33.186914],[103.179934,33.187224],[103.179926,33.18761],[103.179803,33.188032],[103.179611,33.188436],[103.179515,33.188652],[103.179419,33.188867],[103.179322,33.189083],[103.179226,33.189298],[103.179129,33.189514],[103.179033,33.189729],[103.178936,33.189945],[103.17884,33.19016],[103.178659,33.190523],[103.178478,33.190886],[103.178385,33.191315],[103.178292,33.191744],[103.178199,33.192173],[103.178147,33.192443],[103.178096,33.192712],[103.178086,33.193155],[103.178084,33.193573],[103.178082,33.193991],[103.178081,33.194409],[103.178083,33.194655],[103.178086,33.194901],[103.178088,33.195146],[103.178091,33.195392],[103.178093,33.195637],[103.178096,33.195883],[103.178098,33.196128],[103.178101,33.196374],[103.178103,33.19662],[103.178106,33.196865],[103.178108,33.197111],[103.178111,33.197356],[103.178071,33.1976],[103.178032,33.197844],[103.177992,33.198088],[103.177952,33.198332],[103.177913,33.198576],[103.177873,33.19882],[103.177822,33.199089],[103.177771,33.199358],[103.177685,33.199598],[103.177599,33.199838],[103.177513,33.200097],[103.177481,33.200193],[103.177427,33.200357],[103.177272,33.200673],[103.177116,33.200989],[103.176979,33.201214],[103.176843,33.201438],[103.176706,33.201663],[103.176569,33.201887],[103.176433,33.202112],[103.176296,33.202337],[103.176159,33.202561],[103.176155,33.202567],[103.176023,33.202786],[103.175884,33.203005],[103.175745,33.203224],[103.175606,33.203444],[103.175467,33.203663],[103.175328,33.203882],[103.175189,33.204102],[103.174969,33.20448],[103.174748,33.204857],[103.174528,33.205235],[103.174308,33.205613],[103.174164,33.20591],[103.17402,33.206207],[103.173965,33.206631],[103.173959,33.20692],[103.174021,33.20721],[103.174062,33.207451],[103.174103,33.207693],[103.174095,33.208074],[103.174087,33.208455],[103.174081,33.20875],[103.174075,33.209044],[103.174058,33.209324],[103.174041,33.209603],[103.174009,33.210027],[103.173977,33.210451],[103.173949,33.210682],[103.173921,33.210913],[103.173894,33.211144],[103.173866,33.211375],[103.173827,33.211615],[103.173788,33.211855],[103.173665,33.212163],[103.173487,33.212479],[103.173309,33.212795],[103.173235,33.213015],[103.173161,33.213235],[103.173061,33.21362],[103.173008,33.213976],[103.172975,33.21419],[103.172954,33.214332],[103.172919,33.21457],[103.172883,33.214807],[103.172848,33.215044],[103.172812,33.215282],[103.172777,33.215519],[103.172741,33.215756],[103.17271,33.215997],[103.172678,33.216238],[103.172646,33.216479],[103.172614,33.21672],[103.172582,33.216961],[103.17255,33.217201],[103.172511,33.217427],[103.172472,33.217653],[103.172433,33.217879],[103.172394,33.218105],[103.172354,33.218331],[103.172315,33.218557],[103.172276,33.218783],[103.172237,33.219008],[103.172172,33.219335],[103.172108,33.219662],[103.172031,33.220008],[103.172005,33.220139],[103.171981,33.220259],[103.17201,33.22051],[103.172039,33.220761],[103.172076,33.22099],[103.172114,33.221219],[103.172151,33.221448],[103.172189,33.221677],[103.172226,33.221906],[103.172263,33.222135],[103.172292,33.222386],[103.172322,33.222636],[103.172315,33.223003],[103.172283,33.223312],[103.172187,33.223638],[103.172123,33.223937],[103.17206,33.224235],[103.17199,33.224626],[103.17192,33.225017],[103.17185,33.225409],[103.171786,33.225736],[103.171723,33.226063],[103.171585,33.226412],[103.171447,33.226762],[103.17131,33.227112],[103.171248,33.227328],[103.171186,33.227544],[103.171124,33.22776],[103.171063,33.227977],[103.171044,33.228216],[103.171025,33.228454],[103.171006,33.228693],[103.170987,33.228932],[103.170969,33.229171],[103.17095,33.22941],[103.170931,33.229649],[103.170912,33.229888],[103.170893,33.230127],[103.170874,33.230366],[103.170834,33.230674],[103.170793,33.230983],[103.170694,33.23127],[103.170457,33.231635],[103.170315,33.231844],[103.170083,33.231974],[103.169683,33.232169],[103.169283,33.232364],[103.169072,33.232473],[103.168861,33.232582],[103.168808,33.232609],[103.168649,33.232691],[103.168441,33.232798],[103.168438,33.2328],[103.168226,33.232908],[103.168015,33.233017],[103.167804,33.233126],[103.167592,33.233235],[103.167381,33.233344],[103.167169,33.233452],[103.166962,33.233604],[103.166755,33.233755],[103.166549,33.233905],[103.166548,33.233906],[103.16634,33.234057],[103.166133,33.234208],[103.165926,33.234359],[103.165719,33.234511],[103.165512,33.234662],[103.165184,33.234933],[103.164857,33.235205],[103.16453,33.235477],[103.164352,33.235744],[103.164173,33.236011],[103.164077,33.236271],[103.16398,33.23653],[103.163833,33.236953],[103.163817,33.237184],[103.1638,33.237415],[103.163818,33.237722],[103.163835,33.238029],[103.163867,33.238286],[103.163899,33.238542],[103.163931,33.238798],[103.163963,33.239054],[103.163995,33.23931],[103.164027,33.239566],[103.164059,33.239822],[103.164091,33.240078],[103.164124,33.240326],[103.164157,33.240575],[103.16419,33.240823],[103.164224,33.241071],[103.164257,33.241319],[103.16429,33.241567],[103.164359,33.241809],[103.164429,33.242051],[103.164498,33.242293],[103.164568,33.242535],[103.164745,33.242866],[103.164922,33.243196],[103.165031,33.243507],[103.165045,33.243913],[103.165004,33.244259],[103.164962,33.244605],[103.164876,33.245033],[103.16479,33.245461],[103.164704,33.245889],[103.164676,33.24612],[103.164648,33.246351],[103.164639,33.246789],[103.16463,33.247226],[103.164622,33.247663],[103.164661,33.247915],[103.164795,33.248187],[103.164833,33.248534],[103.164826,33.248901],[103.164819,33.249267],[103.164742,33.249695],[103.164665,33.250122],[103.164661,33.250143],[103.164595,33.250396],[103.164529,33.250648],[103.164464,33.2509],[103.164398,33.251152],[103.164332,33.251405],[103.164266,33.251657],[103.164201,33.251909],[103.164135,33.252161],[103.164066,33.25243],[103.163997,33.252699],[103.163928,33.252968],[103.163859,33.253237],[103.163791,33.253506],[103.163722,33.253775],[103.163653,33.254044],[103.163584,33.254313],[103.163439,33.254678],[103.163293,33.255043],[103.163144,33.255241],[103.162995,33.255438],[103.162846,33.255636],[103.162697,33.255834],[103.162532,33.256027],[103.162368,33.256219],[103.162281,33.256321],[103.162203,33.256412],[103.162038,33.256604],[103.161873,33.256796],[103.161708,33.256989],[103.161543,33.257181],[103.161378,33.257374],[103.161214,33.257566],[103.161049,33.257758],[103.160865,33.257949],[103.16068,33.258139],[103.160496,33.25833],[103.160366,33.258464],[103.160312,33.25852],[103.160128,33.258711],[103.159944,33.258901],[103.15978,33.259032],[103.159665,33.25907],[103.159436,33.259047],[103.159184,33.258947],[103.158972,33.258805],[103.158889,33.25875],[103.158685,33.258621],[103.158481,33.258493],[103.158093,33.258313],[103.157886,33.25824],[103.157866,33.258233],[103.157498,33.258169],[103.157064,33.258125],[103.156754,33.25812],[103.156444,33.258116],[103.156144,33.25813],[103.155845,33.258145],[103.15558,33.258189],[103.155314,33.258234],[103.15508,33.258299],[103.154845,33.258365],[103.154698,33.258406],[103.154611,33.25843],[103.154376,33.258496],[103.154125,33.258538],[103.153873,33.258581],[103.153622,33.258623],[103.15337,33.258666],[103.153357,33.258668],[103.153156,33.258702],[103.153119,33.258708],[103.152867,33.25875],[103.152793,33.258763],[103.152727,33.258774],[103.152616,33.258793],[103.152443,33.258822],[103.152364,33.258835],[103.152113,33.258878],[103.151861,33.25892],[103.151434,33.259001],[103.151008,33.259081],[103.150581,33.259162],[103.150154,33.259243],[103.149923,33.259292],[103.149692,33.259342],[103.149461,33.259392],[103.14923,33.259441],[103.148907,33.259514],[103.148665,33.259539],[103.148626,33.259543],[103.148423,33.259564],[103.148181,33.259589],[103.147938,33.259615],[103.147752,33.259619],[103.147678,33.259621],[103.147418,33.259627],[103.147157,33.259633],[103.146897,33.259639],[103.146636,33.259645],[103.146376,33.259651],[103.146116,33.259657],[103.145855,33.259663],[103.145598,33.259655],[103.145341,33.259648],[103.145084,33.25964],[103.144827,33.259633],[103.14457,33.259626],[103.144313,33.259618],[103.144056,33.259611],[103.143799,33.259603],[103.143542,33.259596],[103.143285,33.259588],[103.143028,33.259581],[103.142771,33.259573],[103.142514,33.259566],[103.142257,33.259559],[103.141999,33.259551],[103.141742,33.259544],[103.141497,33.259543],[103.141252,33.259543],[103.141007,33.259542],[103.140762,33.259542],[103.140517,33.259541],[103.140272,33.259541],[103.140027,33.259541],[103.139781,33.25954],[103.139536,33.25954],[103.139291,33.259539],[103.139046,33.259539],[103.138801,33.259538],[103.138551,33.259533],[103.138302,33.259529],[103.138053,33.259524],[103.137803,33.259519],[103.137554,33.259514],[103.137304,33.259509],[103.137061,33.259504],[103.137055,33.259504],[103.136805,33.2595],[103.136556,33.259495],[103.136433,33.259492],[103.136306,33.25949],[103.136052,33.259463],[103.135797,33.259437],[103.135542,33.25941],[103.135287,33.259383],[103.135032,33.259357],[103.134778,33.25933],[103.134523,33.259303],[103.134405,33.259291],[103.134268,33.259277],[103.134013,33.25925],[103.133759,33.259224],[103.13352,33.259218],[103.133282,33.259213],[103.133044,33.259207],[103.132806,33.259202],[103.132567,33.259196],[103.132329,33.259191],[103.132091,33.259185],[103.131853,33.25918],[103.131776,33.259178],[103.131615,33.259174],[103.131376,33.259169],[103.131138,33.259163],[103.1309,33.259158],[103.130662,33.259152],[103.130423,33.259147],[103.130275,33.259149],[103.130017,33.259154],[103.12961,33.25916],[103.129346,33.259176],[103.129148,33.259188],[103.129082,33.259192],[103.12899,33.25921],[103.128849,33.259236],[103.128617,33.259279],[103.128359,33.25935],[103.128224,33.259388],[103.127831,33.259496],[103.127475,33.259602],[103.127447,33.25961],[103.127362,33.259636],[103.127118,33.259708],[103.126926,33.259766],[103.126762,33.259815],[103.126477,33.259898],[103.126193,33.259982],[103.125954,33.260052],[103.125716,33.260122],[103.125477,33.260192],[103.125239,33.260262],[103.125,33.260332],[103.124762,33.260402],[103.124667,33.26043],[103.124523,33.260472],[103.124285,33.260542],[103.124046,33.260612],[103.123808,33.260682],[103.12357,33.260752],[103.123331,33.260822],[103.122898,33.260922],[103.122465,33.261023],[103.122032,33.261123],[103.121688,33.261203],[103.121599,33.261224],[103.121206,33.261285],[103.120814,33.261346],[103.120367,33.261353],[103.120314,33.261352],[103.120314,33.261352],[103.120136,33.261349],[103.119905,33.261346],[103.119846,33.261341],[103.119489,33.261313],[103.119124,33.261281],[103.11871,33.261207],[103.118297,33.261133],[103.118267,33.261128],[103.117899,33.26106],[103.117657,33.26098],[103.117415,33.260899],[103.117174,33.260819],[103.116932,33.260738],[103.116563,33.260576],[103.116463,33.260532],[103.116291,33.260457],[103.116194,33.260415],[103.115826,33.260253],[103.115508,33.260141],[103.115191,33.260029],[103.11492,33.259998],[103.114649,33.259967],[103.114285,33.259948],[103.114246,33.259955],[103.113981,33.260003],[103.113879,33.260022],[103.113676,33.260059],[103.113339,33.260134],[103.113044,33.260162],[103.112748,33.260191],[103.112349,33.260185],[103.111976,33.26018],[103.11195,33.26018],[103.111715,33.260166],[103.111479,33.260153],[103.111244,33.260139],[103.111009,33.260126],[103.110782,33.260079],[103.110556,33.260032],[103.110329,33.259984],[103.110103,33.259937],[103.109732,33.259874],[103.109361,33.25981],[103.10899,33.259746],[103.108748,33.259692],[103.108506,33.259638],[103.108263,33.259584],[103.108021,33.25953],[103.107792,33.259467],[103.107563,33.259404],[103.107333,33.25934],[103.107104,33.259277],[103.106874,33.259214],[103.106645,33.25915],[103.106416,33.259087],[103.106186,33.259024],[103.105946,33.258961],[103.105706,33.258899],[103.105466,33.258837],[103.105225,33.258774],[103.104985,33.258712],[103.104745,33.25865],[103.104505,33.258587],[103.104265,33.258525],[103.104047,33.258462],[103.103829,33.258398],[103.103611,33.258334],[103.103393,33.258271],[103.103172,33.258195],[103.103161,33.258191],[103.103086,33.258166],[103.103074,33.258161],[103.103045,33.258151],[103.102943,33.258117],[103.10288,33.258095],[103.102696,33.258032],[103.102418,33.257934],[103.102141,33.257836],[103.101726,33.257685],[103.101312,33.257535],[103.100898,33.257384],[103.100494,33.25722],[103.100091,33.257056],[103.099688,33.256892],[103.099284,33.256728],[103.098871,33.256628],[103.098459,33.256529],[103.098046,33.256429],[103.097633,33.256329],[103.09737,33.256289],[103.097106,33.25625],[103.096787,33.256219],[103.096488,33.256259],[103.096268,33.256288],[103.096188,33.256298],[103.09613,33.256316],[103.096116,33.256321],[103.096084,33.256348],[103.096083,33.256266],[103.096067,33.256109],[103.095962,33.25579],[103.095859,33.255611],[103.095668,33.255422],[103.095583,33.255369],[103.095397,33.255293],[103.095352,33.255273],[103.095227,33.25524],[103.095123,33.255228],[103.095045,33.255226],[103.094972,33.255226],[103.094871,33.255247],[103.094766,33.255283],[103.09468,33.255315],[103.094616,33.255352],[103.0946,33.255361],[103.094524,33.255409],[103.09443,33.255476],[103.094362,33.255544],[103.094187,33.255693],[103.094098,33.255785],[103.094051,33.25584],[103.09397,33.255932],[103.093769,33.255827],[103.093842,33.255707],[103.093804,33.255707],[103.09378,33.255712],[103.093745,33.255719],[103.093717,33.255731],[103.093655,33.255764],[103.093575,33.255705],[103.093252,33.255466],[103.093182,33.255414],[103.092823,33.255148],[103.092666,33.254847],[103.092564,33.254652],[103.092421,33.254379],[103.092367,33.254264],[103.092359,33.254247],[103.092194,33.253895],[103.091881,33.253429],[103.091277,33.252985],[103.091204,33.252875],[103.091151,33.252795],[103.091058,33.252656],[103.091077,33.251787],[103.09112,33.251642],[103.091286,33.251084],[103.091336,33.25027],[103.091229,33.249624],[103.091106,33.249389],[103.090949,33.24909],[103.090882,33.24904],[103.090861,33.249024],[103.090608,33.248838],[103.090575,33.248813],[103.090329,33.248632],[103.089895,33.248544],[103.089704,33.248606],[103.089398,33.248706],[103.089358,33.248719],[103.089247,33.248829],[103.08883,33.249243],[103.088817,33.249256],[103.088816,33.249256],[103.088729,33.249343],[103.088728,33.249343],[103.088721,33.24935],[103.08859,33.249481],[103.088346,33.249678],[103.088269,33.249741],[103.088002,33.249757],[103.087786,33.249652],[103.087784,33.249646],[103.087783,33.249642],[103.087711,33.249408],[103.08767,33.249402],[103.087635,33.249395],[103.087608,33.24938],[103.087603,33.249357],[103.087619,33.249334],[103.087682,33.249314],[103.087673,33.249284],[103.087685,33.248725],[103.087685,33.248704],[103.087686,33.248673],[103.087619,33.248493],[103.087594,33.248427],[103.08738,33.248455],[103.087366,33.248406],[103.087344,33.248379],[103.087309,33.248372],[103.087267,33.248361],[103.087235,33.248413],[103.087184,33.248481],[103.087035,33.2485],[103.086823,33.24852],[103.086523,33.248548],[103.086477,33.248552],[103.086387,33.248554],[103.086052,33.248559],[103.085822,33.248563],[103.085645,33.248507],[103.085003,33.248306],[103.084261,33.247887],[103.084235,33.247868],[103.084217,33.247855],[103.083928,33.247652],[103.08376,33.247533],[103.083719,33.247186],[103.08395,33.246864],[103.084142,33.246792],[103.0845,33.246658],[103.084995,33.246483],[103.085379,33.246351],[103.085801,33.246174],[103.085975,33.246138],[103.086052,33.246147],[103.086194,33.24617],[103.0863,33.246182],[103.086428,33.246182],[103.086539,33.246182],[103.086683,33.246157],[103.086814,33.246122],[103.086943,33.246081],[103.087027,33.246056],[103.087076,33.246056],[103.087303,33.245946],[103.087356,33.245968],[103.087372,33.245959],[103.087416,33.245933],[103.087463,33.245911],[103.0875,33.245888],[103.087561,33.245853],[103.087593,33.24584],[103.087614,33.245824],[103.087607,33.245798],[103.087788,33.24571],[103.087851,33.245679],[103.08805,33.245582],[103.08834,33.245273],[103.088306,33.245224],[103.088296,33.245173],[103.088294,33.245131],[103.088296,33.24512],[103.088307,33.245079],[103.08834,33.245031],[103.088365,33.24502],[103.088406,33.245035],[103.088445,33.245086],[103.08848,33.245123],[103.088527,33.245073],[103.088561,33.245036],[103.088572,33.245025],[103.088878,33.244814],[103.08932,33.244508],[103.089328,33.244502],[103.089341,33.2445],[103.08942,33.244487],[103.08973,33.244436],[103.08974,33.244463],[103.089752,33.24448],[103.089776,33.244494],[103.089812,33.244501],[103.089852,33.2445],[103.089894,33.244499],[103.089934,33.244497],[103.089965,33.244502],[103.089991,33.244511],[103.090046,33.244537],[103.090102,33.244548],[103.090176,33.244558],[103.09025,33.244564],[103.090299,33.244561],[103.09038,33.244557],[103.090472,33.244538],[103.09053,33.244517],[103.090563,33.244491],[103.090583,33.244461],[103.0906,33.24443],[103.090912,33.244451],[103.090967,33.244466],[103.091544,33.244628],[103.091934,33.244669],[103.092233,33.2447],[103.092251,33.244694],[103.092437,33.244641],[103.092837,33.244526],[103.093037,33.244345],[103.093321,33.24409],[103.093523,33.24391],[103.093569,33.243437],[103.093453,33.242923],[103.093421,33.242783],[103.09342,33.242778],[103.093305,33.242533],[103.093301,33.242525],[103.093072,33.242039],[103.092683,33.241544],[103.092386,33.241005],[103.092327,33.240806],[103.092307,33.24074],[103.092267,33.240606],[103.092473,33.24035],[103.092486,33.240345],[103.092525,33.240332],[103.092608,33.240354],[103.092764,33.240367],[103.092893,33.240343],[103.093065,33.240286],[103.093182,33.240235],[103.093203,33.24022],[103.093265,33.240223],[103.093711,33.240246],[103.094458,33.240168],[103.094604,33.240153],[103.09465,33.240131],[103.094674,33.240119],[103.095431,33.239753],[103.095508,33.23975],[103.095525,33.239749],[103.095589,33.239747],[103.095763,33.239739],[103.095795,33.239738],[103.095986,33.239892],[103.096064,33.239941],[103.096112,33.239932],[103.096243,33.240104],[103.096892,33.24112],[103.097318,33.241479],[103.097325,33.241485],[103.097327,33.241487],[103.097363,33.241517],[103.097427,33.241571],[103.097685,33.241568],[103.097955,33.241564],[103.098125,33.241276],[103.097887,33.240527],[103.097885,33.240519],[103.097852,33.240417],[103.097794,33.240092],[103.097739,33.239789],[103.097771,33.239638],[103.097791,33.239548],[103.09788,33.239134],[103.098144,33.238772],[103.098255,33.23862],[103.098347,33.238579],[103.098348,33.238579],[103.098535,33.238496],[103.098599,33.238467],[103.098623,33.238457],[103.098626,33.238444],[103.098694,33.238166],[103.09873,33.238018],[103.099339,33.237771],[103.099892,33.237211],[103.100003,33.237054],[103.100005,33.236738],[103.099791,33.236551],[103.099157,33.236404],[103.09891,33.236552],[103.098702,33.236676],[103.098607,33.236733],[103.09831,33.23691],[103.098183,33.237006],[103.09764,33.237417],[103.09754,33.237492],[103.097479,33.237539],[103.09722,33.237749],[103.097192,33.237772],[103.097072,33.237869],[103.096977,33.237861],[103.096928,33.237856],[103.096885,33.237802],[103.096791,33.237769],[103.096656,33.23776],[103.096569,33.23777],[103.096439,33.237676],[103.09642,33.23759],[103.096373,33.237385],[103.096541,33.237126],[103.096548,33.237115],[103.09658,33.237067],[103.096642,33.23702],[103.097153,33.236633],[103.097415,33.236286],[103.097298,33.236126],[103.097256,33.236069],[103.097226,33.236057],[103.096823,33.235886],[103.09677,33.235863],[103.09656,33.235827],[103.09651,33.235776],[103.096461,33.235733],[103.096329,33.235652],[103.096252,33.235624],[103.096155,33.235592],[103.096051,33.235563],[103.095987,33.235544],[103.095945,33.235528],[103.095926,33.235521],[103.095876,33.235499],[103.095816,33.235462],[103.095766,33.235437],[103.095684,33.235412],[103.095648,33.235405],[103.095601,33.235402],[103.095446,33.235188],[103.095433,33.235172],[103.095263,33.234939],[103.095281,33.234628],[103.095291,33.234466],[103.095314,33.234396],[103.095288,33.234339],[103.095307,33.234211],[103.095327,33.234115],[103.095369,33.233996],[103.095392,33.233918],[103.095427,33.233831],[103.095446,33.233682],[103.095547,33.233553],[103.095505,33.233459],[103.095344,33.233096],[103.095287,33.232969],[103.094936,33.232413],[103.094911,33.231893],[103.095046,33.231529],[103.095121,33.231468],[103.095188,33.231414],[103.09527,33.231347],[103.095388,33.231375],[103.095468,33.231383],[103.09555,33.231379],[103.095626,33.23137],[103.095737,33.231346],[103.095799,33.231303],[103.095845,33.231263],[103.096214,33.231302],[103.096359,33.231365],[103.09642,33.231365],[103.096522,33.231383],[103.09662,33.231412],[103.096787,33.231478],[103.09715,33.231639],[103.097265,33.231699],[103.097318,33.23174],[103.097324,33.231742],[103.097881,33.231868],[103.0979,33.231872],[103.097934,33.231907],[103.098016,33.231963],[103.098153,33.232022],[103.09829,33.232067],[103.098442,33.232104],[103.098594,33.232107],[103.098728,33.232107],[103.098755,33.232122],[103.098956,33.232232],[103.099155,33.23234],[103.099344,33.232369],[103.099787,33.232437],[103.099925,33.232418],[103.100119,33.232345],[103.100277,33.232264],[103.100442,33.232165],[103.100545,33.232049],[103.100632,33.23193],[103.10069,33.231778],[103.100749,33.231626],[103.100771,33.231443],[103.100749,33.231288],[103.10072,33.231157],[103.100718,33.231151],[103.100688,33.231119],[103.100689,33.231104],[103.100689,33.231081],[103.100684,33.231063],[103.100655,33.230996],[103.100614,33.230895],[103.100579,33.230837],[103.100568,33.230821],[103.100528,33.230765],[103.100463,33.230692],[103.100409,33.230632],[103.100366,33.230599],[103.100326,33.230579],[103.100289,33.230561],[103.100202,33.23052],[103.100121,33.230493],[103.100051,33.230478],[103.099744,33.230109],[103.099552,33.229709],[103.099325,33.22928],[103.099287,33.229126],[103.099295,33.228928],[103.099287,33.228849],[103.099292,33.228707],[103.099295,33.228594],[103.098932,33.22835],[103.098532,33.228213],[103.098486,33.228197],[103.098138,33.228078],[103.098091,33.228076],[103.098058,33.228058],[103.098002,33.228044],[103.097926,33.228043],[103.097831,33.228048],[103.097757,33.228052],[103.097723,33.228063],[103.097421,33.228052],[103.097357,33.228118],[103.097287,33.228165],[103.097209,33.228193],[103.097134,33.2282],[103.097034,33.228201],[103.096794,33.228165],[103.096658,33.228128],[103.096628,33.228131],[103.096444,33.228134],[103.096436,33.228135],[103.096376,33.228103],[103.096223,33.228053],[103.096131,33.228036],[103.096073,33.228025],[103.095927,33.228014],[103.095804,33.228019],[103.095724,33.228028],[103.095649,33.228009],[103.095272,33.22782],[103.095262,33.22781],[103.095094,33.227619],[103.095555,33.22732],[103.095665,33.227304],[103.095695,33.2273],[103.095741,33.227323],[103.095831,33.227359],[103.095937,33.227377],[103.096029,33.227385],[103.096149,33.227384],[103.096229,33.227373],[103.096347,33.227339],[103.096425,33.2273],[103.096527,33.227243],[103.096586,33.227188],[103.096622,33.227148],[103.096666,33.227085],[103.096704,33.226972],[103.096784,33.226809],[103.09683,33.226647],[103.096919,33.226408],[103.096745,33.226101],[103.09669,33.226065],[103.096709,33.226027],[103.096725,33.225978],[103.096735,33.225903],[103.096734,33.225832],[103.096719,33.225773],[103.096691,33.225713],[103.096667,33.225676],[103.096638,33.225651],[103.0966,33.225634],[103.096537,33.225627],[103.096491,33.225626],[103.096384,33.22567],[103.096334,33.225706],[103.096315,33.225718],[103.096297,33.22573],[103.096264,33.225744],[103.096224,33.225756],[103.095934,33.225483],[103.095913,33.225464],[103.09578,33.225338],[103.095644,33.225207],[103.095442,33.225012],[103.095378,33.224614],[103.09537,33.224363],[103.095369,33.224345],[103.09542,33.224401],[103.095476,33.224429],[103.095539,33.224448],[103.095604,33.224454],[103.09572,33.224456],[103.095818,33.22444],[103.095875,33.224422],[103.095932,33.224394],[103.09594,33.224397],[103.096048,33.224451],[103.09609,33.224472],[103.096477,33.224672],[103.096538,33.22466],[103.096581,33.22463],[103.096611,33.224584],[103.096632,33.224553],[103.096663,33.224547],[103.096716,33.224561],[103.09679,33.224609],[103.096851,33.224655],[103.096861,33.224691],[103.096861,33.224728],[103.096842,33.224777],[103.096991,33.224807],[103.09712,33.224732],[103.097104,33.224577],[103.097097,33.224505],[103.09709,33.224442],[103.096969,33.22413],[103.096935,33.224042],[103.096815,33.223719],[103.0971,33.223158],[103.097457,33.222587],[103.097471,33.222561],[103.097342,33.221965],[103.097163,33.221866],[103.097175,33.221786],[103.09716,33.221682],[103.097135,33.221597],[103.097086,33.221531],[103.097043,33.221491],[103.096986,33.221467],[103.096929,33.221462],[103.09672,33.221477],[103.096561,33.221496],[103.096425,33.22151],[103.096285,33.221519],[103.096141,33.221538],[103.095763,33.221463],[103.094547,33.22123],[103.093765,33.221058],[103.093642,33.221031],[103.093632,33.22102],[103.093591,33.220984],[103.093548,33.220946],[103.093483,33.220904],[103.093251,33.220765],[103.093155,33.220711],[103.093087,33.220684],[103.093031,33.220665],[103.092978,33.220654],[103.092932,33.220641],[103.092636,33.220322],[103.09257,33.220251],[103.092511,33.220188],[103.092495,33.220173],[103.09249,33.219883],[103.092484,33.219656],[103.092484,33.219643],[103.092482,33.219551],[103.092929,33.219031],[103.092939,33.219019],[103.09321,33.218703],[103.093205,33.218526],[103.093201,33.218384],[103.093214,33.218354],[103.093224,33.218296],[103.093224,33.218229],[103.093223,33.218182],[103.093206,33.218121],[103.093176,33.218056],[103.093082,33.217944],[103.092979,33.217875],[103.092896,33.217811],[103.0928,33.21776],[103.092743,33.217743],[103.092713,33.217735],[103.092636,33.217668],[103.092437,33.217502],[103.092421,33.217488],[103.09238,33.217454],[103.091967,33.217109],[103.091862,33.216351],[103.091844,33.216224],[103.091756,33.215721],[103.091606,33.215711],[103.091622,33.215637],[103.091658,33.215388],[103.091641,33.215074],[103.091568,33.214682],[103.091566,33.214668],[103.091067,33.214685],[103.091044,33.214685],[103.090846,33.214692],[103.090105,33.214456],[103.090102,33.214434],[103.090071,33.214221],[103.090069,33.214208],[103.090059,33.214143],[103.090215,33.213892],[103.090501,33.213433],[103.090518,33.213398],[103.090723,33.212989],[103.090615,33.212914],[103.09061,33.21291],[103.090461,33.212806],[103.090418,33.212822],[103.089959,33.212995],[103.089609,33.213127],[103.089597,33.213132],[103.089548,33.21315],[103.08933,33.213327],[103.089287,33.213362],[103.089281,33.213397],[103.089207,33.213476],[103.089024,33.213628],[103.088898,33.213677],[103.088854,33.213688],[103.088595,33.213749],[103.088578,33.213753],[103.088473,33.213777],[103.088362,33.213803],[103.088319,33.213355],[103.088435,33.212909],[103.088515,33.212841],[103.088538,33.212821],[103.088552,33.212809],[103.088567,33.212796],[103.088595,33.212772],[103.089001,33.212424],[103.089357,33.212118],[103.089793,33.211677],[103.089768,33.211352],[103.089752,33.211139],[103.08963,33.211104],[103.089515,33.21107],[103.089505,33.211067],[103.08945,33.211051],[103.089103,33.21095],[103.0888,33.211058],[103.088718,33.211004],[103.088654,33.210987],[103.088594,33.210987],[103.088509,33.211018],[103.088428,33.211072],[103.088358,33.211118],[103.088284,33.211175],[103.088214,33.211253],[103.088166,33.211322],[103.088134,33.211368],[103.087483,33.211797],[103.087409,33.211845],[103.087138,33.212024],[103.087082,33.21206],[103.086974,33.212107],[103.086918,33.212132],[103.086863,33.212205],[103.086809,33.212274],[103.086749,33.21234],[103.086675,33.212388],[103.086579,33.212419],[103.086487,33.212438],[103.086416,33.212429],[103.08628,33.212369],[103.086132,33.212289],[103.086012,33.212196],[103.085956,33.212135],[103.085904,33.21204],[103.085868,33.211953],[103.085862,33.21189],[103.085868,33.211806],[103.085892,33.211741],[103.085923,33.211687],[103.085928,33.211682],[103.085894,33.211606],[103.085838,33.211467],[103.085768,33.21129],[103.085705,33.211133],[103.085233,33.21079],[103.084809,33.211178],[103.084655,33.211319],[103.084646,33.211327],[103.084296,33.211648],[103.084106,33.211842],[103.08384,33.212116],[103.08364,33.212147],[103.083309,33.212205],[103.082946,33.212355],[103.082484,33.212292],[103.082311,33.212262],[103.082211,33.21222],[103.082156,33.212156],[103.082149,33.212129],[103.082133,33.212066],[103.082129,33.211944],[103.082143,33.211857],[103.082168,33.211786],[103.082181,33.211758],[103.082177,33.21175],[103.082421,33.211445],[103.082548,33.211232],[103.082618,33.210733],[103.082694,33.210516],[103.082724,33.210421],[103.082793,33.210313],[103.082863,33.210232],[103.082996,33.210085],[103.083094,33.209968],[103.083195,33.209848],[103.083301,33.209763],[103.083403,33.209732],[103.08346,33.209738],[103.083535,33.209788],[103.083589,33.209832],[103.083671,33.209884],[103.083821,33.209821],[103.083986,33.209752],[103.084099,33.209766],[103.084202,33.209769],[103.084253,33.209761],[103.084287,33.209739],[103.084356,33.209695],[103.0845,33.209603],[103.084466,33.209557],[103.084403,33.209471],[103.084455,33.209414],[103.084512,33.209245],[103.084538,33.209077],[103.084523,33.208973],[103.084457,33.208862],[103.084357,33.20886],[103.084195,33.208844],[103.084071,33.208828],[103.083913,33.208796],[103.0838,33.208759],[103.083783,33.208807],[103.083445,33.208513],[103.083185,33.20825],[103.082703,33.207763],[103.082431,33.207171],[103.082283,33.20685],[103.082276,33.206795],[103.082209,33.20634],[103.082023,33.205058],[103.082133,33.204598],[103.082598,33.204817],[103.082716,33.2049],[103.083043,33.20513],[103.083251,33.205276],[103.083355,33.205349],[103.083512,33.205459],[103.083541,33.20545],[103.083534,33.205638],[103.083577,33.205667],[103.083681,33.205639],[103.083937,33.2055],[103.08418,33.20523],[103.084369,33.205068],[103.084458,33.204939],[103.084434,33.204851],[103.084471,33.20473],[103.084496,33.204653],[103.084546,33.204601],[103.084662,33.204581],[103.084751,33.204513],[103.08475,33.204377],[103.084741,33.204302],[103.084768,33.204206],[103.084809,33.204158],[103.084919,33.204119],[103.08492,33.204071],[103.084748,33.203715],[103.084665,33.203739],[103.084467,33.203797],[103.08441,33.203814],[103.084268,33.203856],[103.084175,33.203883],[103.084149,33.203898],[103.083508,33.204275],[103.083178,33.20427],[103.083152,33.204185],[103.083046,33.203846],[103.082942,33.20351],[103.082759,33.203546],[103.082527,33.203537],[103.082453,33.203514],[103.082379,33.203491],[103.082263,33.203352],[103.082164,33.203194],[103.082119,33.203097],[103.082112,33.203],[103.082111,33.202899],[103.082113,33.202857],[103.082116,33.202755],[103.082127,33.202666],[103.082153,33.202553],[103.0822,33.202403],[103.082246,33.202247],[103.082285,33.202088],[103.082302,33.201969],[103.082301,33.201884],[103.082276,33.20179],[103.082184,33.201616],[103.082138,33.201509],[103.082133,33.201491],[103.082113,33.201417],[103.082114,33.201326],[103.082127,33.201252],[103.082164,33.201173],[103.082175,33.20115],[103.08222,33.201098],[103.082332,33.201038],[103.082386,33.201009],[103.082419,33.200969],[103.082445,33.200929],[103.082465,33.200898],[103.082499,33.200811],[103.082583,33.200607],[103.082688,33.200272],[103.082741,33.20011],[103.082788,33.200041],[103.082862,33.199997],[103.082892,33.199956],[103.082907,33.199878],[103.082924,33.199781],[103.083003,33.199518],[103.083005,33.199443],[103.083008,33.199311],[103.083035,33.199121],[103.083042,33.198998],[103.083059,33.198872],[103.083084,33.198775],[103.08312,33.198664],[103.083157,33.198507],[103.083177,33.198456],[103.083068,33.198351],[103.082963,33.198341],[103.082971,33.198278],[103.082961,33.19822],[103.082945,33.19817],[103.082921,33.198124],[103.082865,33.19809],[103.082786,33.198074],[103.082699,33.198079],[103.082697,33.198082],[103.08262,33.198143],[103.082555,33.198217],[103.082489,33.198296],[103.08244,33.198291],[103.082099,33.198428],[103.081888,33.198513],[103.081715,33.198582],[103.081234,33.198676],[103.081144,33.198634],[103.081137,33.19863],[103.080895,33.198517],[103.080789,33.198467],[103.080688,33.19829],[103.080676,33.198268],[103.080587,33.198112],[103.080539,33.197582],[103.080742,33.197243],[103.080943,33.196909],[103.081085,33.196772],[103.081124,33.196732],[103.08127,33.196648],[103.081251,33.196628],[103.081241,33.1966],[103.081331,33.196609],[103.081491,33.196606],[103.081622,33.196605],[103.081785,33.196592],[103.081945,33.196573],[103.082137,33.196549],[103.08222,33.196539],[103.082357,33.196523],[103.082365,33.196522],[103.082591,33.196513],[103.082739,33.196522],[103.0831,33.196536],[103.083266,33.196556],[103.083383,33.196555],[103.083446,33.196549],[103.083663,33.196439],[103.083729,33.196406],[103.083859,33.196239],[103.083887,33.196067],[103.083875,33.195878],[103.083847,33.195835],[103.083755,33.195693],[103.083651,33.195652],[103.083626,33.195557],[103.083614,33.195485],[103.083584,33.19541],[103.083544,33.195327],[103.083501,33.195271],[103.083421,33.195206],[103.083358,33.195175],[103.08331,33.195161],[103.083254,33.195153],[103.083191,33.195164],[103.083142,33.195189],[103.083133,33.195194],[103.083076,33.195224],[103.082981,33.19525],[103.082857,33.195266],[103.082723,33.195284],[103.082217,33.195077],[103.082174,33.19506],[103.082122,33.195038],[103.08197,33.194802],[103.081953,33.194776],[103.081745,33.194453],[103.081883,33.19365],[103.082907,33.192671],[103.083553,33.19224],[103.083448,33.191924],[103.083076,33.191792],[103.083019,33.1918],[103.082976,33.191806],[103.082902,33.191816],[103.082716,33.191841],[103.082695,33.191768],[103.082677,33.191719],[103.082653,33.191658],[103.08263,33.191599],[103.082596,33.191542],[103.082555,33.191513],[103.082516,33.191495],[103.082488,33.191492],[103.082451,33.191505],[103.082398,33.191543],[103.082392,33.191547],[103.082329,33.19159],[103.082112,33.191757],[103.082066,33.19181],[103.081958,33.191902],[103.081899,33.191938],[103.081886,33.191938],[103.081721,33.191943],[103.081351,33.191955],[103.080867,33.191821],[103.08084,33.191756],[103.080836,33.191745],[103.080823,33.191713],[103.080751,33.191537],[103.080745,33.191523],[103.080725,33.191473],[103.080742,33.191309],[103.080772,33.191033],[103.081422,33.190414],[103.081577,33.190154],[103.081888,33.189634],[103.081952,33.189281],[103.081956,33.189255],[103.082014,33.188936],[103.082058,33.188692],[103.082092,33.188588],[103.082203,33.188242],[103.082383,33.187679],[103.082395,33.187642],[103.08246,33.187439],[103.082559,33.187315],[103.082806,33.187004],[103.083301,33.186533],[103.084335,33.185548],[103.084533,33.185342],[103.084871,33.18499],[103.085001,33.184174],[103.08506,33.183867],[103.08515,33.183397],[103.08519,33.183189],[103.085192,33.183183],[103.08527,33.183026],[103.085324,33.182877],[103.085289,33.182678],[103.085297,33.182636],[103.085202,33.181848],[103.085211,33.181768],[103.085214,33.181739],[103.085248,33.181439],[103.08563,33.181099],[103.086823,33.180677],[103.087252,33.180526],[103.087304,33.180507],[103.087594,33.180405],[103.087701,33.180367],[103.088874,33.179953],[103.090478,33.179431],[103.090721,33.179352],[103.091267,33.179046],[103.092198,33.178525],[103.092959,33.17797],[103.093047,33.17776],[103.093354,33.177032],[103.093441,33.175994],[103.093454,33.175837],[103.093422,33.175514],[103.093373,33.175038],[103.093362,33.174923],[103.093372,33.174438],[103.093379,33.174136],[103.093383,33.173386],[103.093385,33.172831],[103.093389,33.172164],[103.09339,33.171902],[103.09339,33.171894],[103.093337,33.170894],[103.093294,33.170724],[103.093096,33.169946],[103.092237,33.168139],[103.09211,33.167067],[103.092069,33.166813],[103.092005,33.166424],[103.091888,33.166253],[103.091808,33.166057],[103.091714,33.165909],[103.09152,33.165732],[103.091433,33.165645],[103.091443,33.165639],[103.091591,33.165584],[103.09182,33.1656],[103.091888,33.165537],[103.091883,33.165497],[103.091772,33.164486],[103.091756,33.164341],[103.091701,33.163844],[103.09157,33.162652],[103.09159,33.161708],[103.091754,33.161517],[103.09225,33.160935],[103.092612,33.160511],[103.09305,33.159999],[103.093483,33.159257],[103.093633,33.159001],[103.093905,33.158502],[103.093906,33.158476],[103.093917,33.157965],[103.093918,33.157935],[103.093868,33.157689],[103.093816,33.15743],[103.093466,33.157091],[103.093157,33.15679],[103.092615,33.155869],[103.09188,33.155292],[103.091088,33.154546],[103.090963,33.154428],[103.090573,33.153681],[103.090474,33.153492],[103.090636,33.153434],[103.091011,33.153279],[103.091137,33.153141],[103.091142,33.152998],[103.09107,33.152903],[103.091019,33.15284],[103.090998,33.152814],[103.090868,33.152624],[103.09081,33.152518],[103.090656,33.152496],[103.090263,33.152222],[103.090206,33.152182],[103.090161,33.15174],[103.090067,33.150889],[103.089882,33.150504],[103.089566,33.149843],[103.089539,33.14979],[103.089382,33.149484],[103.08933,33.149383],[103.089146,33.149024],[103.088996,33.148731],[103.088994,33.148728],[103.088571,33.147901],[103.088687,33.147881],[103.088967,33.147656],[103.089075,33.14754],[103.08918,33.147425],[103.089426,33.147278],[103.089447,33.147234],[103.089483,33.147159],[103.089233,33.147077],[103.088753,33.147005],[103.0884,33.146937],[103.08805,33.146885],[103.087456,33.145725],[103.087435,33.145684],[103.08696,33.144758],[103.086859,33.144561],[103.086857,33.144555],[103.08612,33.143117],[103.085918,33.142236],[103.08591,33.142201],[103.085881,33.142075],[103.085825,33.14194],[103.085691,33.14185],[103.085621,33.141764],[103.085523,33.141687],[103.085437,33.141634],[103.085415,33.141544],[103.085452,33.141455],[103.085472,33.141386],[103.085475,33.141297],[103.085465,33.141064],[103.085444,33.140803],[103.085421,33.140686],[103.085389,33.140536],[103.085354,33.14045],[103.085315,33.140379],[103.085224,33.140233],[103.085129,33.140151],[103.085072,33.140113],[103.084857,33.139622],[103.084226,33.138185],[103.084166,33.138143],[103.084086,33.138087],[103.084016,33.137963],[103.083958,33.137849],[103.083871,33.137692],[103.083836,33.137593],[103.083754,33.137388],[103.083655,33.137189],[103.083504,33.136861],[103.083405,33.136675],[103.083375,33.136533],[103.083459,33.136435],[103.082831,33.136079],[103.082068,33.135976],[103.082047,33.135973],[103.081307,33.135615],[103.080146,33.135692],[103.078205,33.135473],[103.075937,33.13484],[103.075345,33.134516],[103.074911,33.133848],[103.074899,33.133736],[103.07474,33.13361],[103.07465,33.13355],[103.074526,33.133497],[103.074453,33.133441],[103.074413,33.133348],[103.074404,33.133266],[103.074424,33.133219],[103.074522,33.1332],[103.074696,33.133199],[103.074849,33.133249],[103.074212,33.131571],[103.074197,33.131547],[103.074196,33.131545],[103.074176,33.131514],[103.073944,33.131144],[103.073888,33.131056],[103.073453,33.130363],[103.072174,33.12899],[103.070755,33.128874],[103.069706,33.128952],[103.067463,33.128854],[103.066639,33.128904],[103.065744,33.128796],[103.065495,33.128226],[103.064328,33.125155],[103.063434,33.124983],[103.062842,33.125031],[103.061785,33.125115],[103.06006,33.125308],[103.058862,33.125353],[103.057211,33.125579],[103.05683,33.12561],[103.0556,33.125711],[103.055351,33.125736],[103.055303,33.125741],[103.054513,33.12582],[103.053574,33.125963],[103.052377,33.125975],[103.051291,33.126053],[103.05046,33.126324],[103.049821,33.126533],[103.049737,33.126538],[103.049724,33.126539],[103.049416,33.126555],[103.048939,33.126581],[103.048922,33.126582],[103.048322,33.126667],[103.047872,33.126786],[103.047852,33.126782],[103.047826,33.12679],[103.047767,33.126806],[103.04773,33.126817],[103.047009,33.126836],[103.04653,33.126727],[103.046265,33.126666],[103.045671,33.126437],[103.045236,33.126522],[103.045221,33.126524],[103.045201,33.126527],[103.044869,33.12657],[103.044706,33.126591],[103.044652,33.126598],[103.044608,33.126639],[103.044581,33.126657],[103.044542,33.126679],[103.044487,33.126698],[103.04443,33.126712],[103.044374,33.12671],[103.044317,33.1267],[103.044264,33.126685],[103.044241,33.126667],[103.044232,33.126656],[103.044217,33.126658],[103.044159,33.126667],[103.043607,33.126751],[103.043569,33.126765],[103.043303,33.126866],[103.04289,33.127023],[103.042328,33.127077],[103.041773,33.126816],[103.041752,33.126598],[103.041742,33.126501],[103.041739,33.126492],[103.041659,33.126276],[103.041531,33.125931],[103.041236,33.125722],[103.041149,33.12566],[103.041119,33.125639],[103.041078,33.12561],[103.041059,33.125596],[103.040983,33.125552],[103.040956,33.125543],[103.040928,33.125534],[103.040899,33.125528],[103.040882,33.125522],[103.040853,33.125498],[103.040783,33.125486],[103.040679,33.125468],[103.040426,33.125425],[103.040122,33.125374],[103.039545,33.125507],[103.039482,33.125521],[103.038988,33.125489],[103.038847,33.12548],[103.038802,33.125427],[103.038596,33.125186],[103.038519,33.125097],[103.038684,33.124856],[103.038661,33.124809],[103.038656,33.124758],[103.03867,33.124712],[103.038692,33.124676],[103.0387,33.12462],[103.038688,33.124588],[103.038675,33.124583],[103.038605,33.124583],[103.038555,33.124586],[103.038513,33.124587],[103.038448,33.124571],[103.038425,33.124551],[103.038413,33.124513],[103.038411,33.124474],[103.038436,33.124434],[103.038481,33.124411],[103.038501,33.124398],[103.038518,33.124381],[103.038546,33.124362],[103.038555,33.124333],[103.038553,33.12431],[103.038539,33.124276],[103.038517,33.124245],[103.038484,33.124223],[103.038464,33.124202],[103.038444,33.124185],[103.038415,33.124173],[103.038373,33.124166],[103.038333,33.124163],[103.038306,33.124154],[103.038271,33.124135],[103.03798,33.124113],[103.037817,33.124189],[103.037527,33.124326],[103.037105,33.12476],[103.036544,33.124782],[103.036034,33.124659],[103.035986,33.124648],[103.035736,33.124615],[103.035688,33.124632],[103.0356,33.124646],[103.035524,33.124635],[103.035495,33.124618],[103.035469,33.124601],[103.03545,33.124578],[103.035457,33.124556],[103.035468,33.124537],[103.035488,33.124515],[103.035506,33.124507],[103.035521,33.124498],[103.035554,33.12448],[103.035569,33.124475],[103.035582,33.12446],[103.035585,33.124433],[103.035556,33.124417],[103.035528,33.124416],[103.03549,33.124428],[103.035468,33.124439],[103.035452,33.124452],[103.035435,33.12447],[103.035418,33.124485],[103.035388,33.124499],[103.035358,33.124509],[103.035282,33.124514],[103.035254,33.124513],[103.035224,33.124505],[103.035197,33.124492],[103.035184,33.124484],[103.035171,33.124467],[103.035161,33.124444],[103.035152,33.12442],[103.03514,33.124393],[103.035128,33.124365],[103.035114,33.124342],[103.035103,33.124328],[103.035083,33.124318],[103.03506,33.124312],[103.035036,33.124313],[103.035002,33.124321],[103.034987,33.12433],[103.034979,33.124341],[103.034983,33.124362],[103.035004,33.124382],[103.035036,33.124404],[103.035065,33.124432],[103.035076,33.124449],[103.03508,33.124475],[103.03507,33.124501],[103.035058,33.124523],[103.035045,33.124538],[103.035031,33.124554],[103.035013,33.124569],[103.034989,33.124583],[103.034955,33.1246],[103.034905,33.124603],[103.034875,33.124596],[103.034847,33.124581],[103.034813,33.124572],[103.034789,33.124577],[103.034762,33.124594],[103.034729,33.124615],[103.034692,33.124636],[103.034661,33.124638],[103.034631,33.124633],[103.034593,33.124613],[103.034536,33.124568],[103.034525,33.124553],[103.034517,33.124532],[103.034243,33.12457],[103.034095,33.12459],[103.033704,33.124643],[103.032961,33.124553],[103.032809,33.124535],[103.032726,33.124516],[103.032677,33.124505],[103.032065,33.124366],[103.031688,33.124485],[103.031265,33.125014],[103.031158,33.125069],[103.031089,33.125104],[103.030848,33.125228],[103.030514,33.125128],[103.030371,33.124811],[103.030344,33.124711],[103.030332,33.124666],[103.030311,33.124589],[103.030276,33.12446],[103.030261,33.124464],[103.030236,33.124452],[103.0302,33.124441],[103.030176,33.124426],[103.030169,33.124422],[103.03015,33.124395],[103.03015,33.12438],[103.030172,33.124341],[103.030184,33.124324],[103.030231,33.124303],[103.029903,33.124017],[103.029492,33.123979],[103.029399,33.123982],[103.028931,33.124001],[103.028743,33.123974],[103.028697,33.123947],[103.028675,33.123929],[103.028654,33.123896],[103.028641,33.123869],[103.028609,33.123843],[103.028573,33.123817],[103.028525,33.123794],[103.028481,33.123776],[103.028413,33.123757],[103.028341,33.123746],[103.02828,33.123744],[103.028191,33.123643],[103.028197,33.12361],[103.028215,33.123508],[103.028224,33.123457],[103.028233,33.123408],[103.02826,33.123263],[103.028262,33.123248],[103.028276,33.123172],[103.028294,33.122386],[103.028227,33.12225],[103.028195,33.122184],[103.028165,33.122123],[103.028157,33.122108],[103.027936,33.121656],[103.027291,33.121322],[103.027122,33.121234],[103.026047,33.121012],[103.025968,33.120996],[103.025233,33.121048],[103.025069,33.12106],[103.025068,33.12108],[103.02507,33.121097],[103.025074,33.121114],[103.025077,33.121132],[103.02508,33.121149],[103.025083,33.121166],[103.025074,33.121189],[103.025058,33.121226],[103.025046,33.121243],[103.025021,33.121267],[103.024998,33.121276],[103.024953,33.12128],[103.024913,33.12128],[103.024857,33.121269],[103.024828,33.121258],[103.024813,33.121242],[103.02481,33.12122],[103.02481,33.1212],[103.024818,33.121179],[103.024827,33.121157],[103.024832,33.121139],[103.024838,33.12112],[103.024842,33.1211],[103.024841,33.12108],[103.02483,33.121043],[103.024784,33.121002],[103.024752,33.120978],[103.024707,33.120954],[103.024668,33.120965],[103.024667,33.120986],[103.024673,33.121016],[103.024691,33.121055],[103.024694,33.121069],[103.024706,33.121106],[103.024712,33.121132],[103.024707,33.12115],[103.024697,33.121179],[103.02469,33.121208],[103.024676,33.121243],[103.024667,33.12127],[103.024656,33.121303],[103.024641,33.121332],[103.024615,33.121359],[103.024584,33.121375],[103.024533,33.121385],[103.024487,33.121386],[103.024447,33.12138],[103.024417,33.121366],[103.024412,33.121345],[103.024411,33.121327],[103.024428,33.121298],[103.024436,33.121282],[103.024437,33.121252],[103.024436,33.121242],[103.024421,33.121228],[103.024391,33.121216],[103.024347,33.121204],[103.024323,33.121202],[103.024305,33.121197],[103.024267,33.121187],[103.024118,33.121215],[103.024107,33.121217],[103.023859,33.121263],[103.023802,33.121254],[103.023699,33.121247],[103.023618,33.121256],[103.023599,33.121261],[103.023582,33.121267],[103.023567,33.121273],[103.023429,33.12127],[103.023128,33.121265],[103.023045,33.121264],[103.022891,33.121212],[103.022852,33.121206],[103.022819,33.121194],[103.022797,33.121165],[103.022764,33.121121],[103.022731,33.121077],[103.022719,33.12106],[103.022688,33.121041],[103.022644,33.121014],[103.022528,33.120941],[103.022415,33.120837],[103.021938,33.120401],[103.021818,33.120291],[103.021759,33.120236],[103.021751,33.120141],[103.02175,33.120128],[103.02175,33.120118],[103.021747,33.120079],[103.021732,33.120073],[103.021712,33.120054],[103.021712,33.120032],[103.021719,33.120008],[103.02174,33.119989],[103.021761,33.119946],[103.02177,33.119906],[103.021779,33.119871],[103.02179,33.119836],[103.021798,33.119809],[103.021803,33.119782],[103.0218,33.119749],[103.021771,33.119717],[103.021755,33.119696],[103.021709,33.119658],[103.021699,33.119563],[103.021668,33.119259],[103.021264,33.118818],[103.02123,33.11878],[103.021082,33.118727],[103.021023,33.118707],[103.020674,33.118582],[103.020461,33.118531],[103.020116,33.118448],[103.020047,33.118264],[103.020003,33.118145],[103.019985,33.118097],[103.020011,33.1181],[103.02004,33.118113],[103.020058,33.118124],[103.020078,33.118171],[103.020085,33.11819],[103.020092,33.118216],[103.020111,33.118242],[103.020138,33.11826],[103.020172,33.118265],[103.020212,33.118261],[103.020241,33.118255],[103.020264,33.11825],[103.020284,33.118238],[103.020321,33.118223],[103.020332,33.118208],[103.020298,33.118188],[103.02026,33.118182],[103.020238,33.118171],[103.020222,33.118142],[103.020226,33.118118],[103.020234,33.11808],[103.020221,33.118044],[103.020206,33.118021],[103.02019,33.117999],[103.020157,33.117976],[103.020128,33.117959],[103.020088,33.11795],[103.020043,33.117953],[103.020016,33.117962],[103.019996,33.11798],[103.019978,33.118007],[103.019958,33.118024],[103.019928,33.117944],[103.019911,33.117897],[103.01985,33.117903],[103.019803,33.117915],[103.019749,33.117945],[103.01971,33.117963],[103.019679,33.11796],[103.019655,33.117933],[103.019632,33.117883],[103.019632,33.117834],[103.019643,33.117793],[103.019664,33.117741],[103.019517,33.117658],[103.019522,33.117614],[103.019526,33.117542],[103.019513,33.1175],[103.019487,33.117487],[103.01941,33.117467],[103.01934,33.117468],[103.019271,33.117467],[103.019227,33.117455],[103.019171,33.117423],[103.019136,33.117383],[103.01909,33.117324],[103.019063,33.117257],[103.019029,33.117227],[103.018993,33.117217],[103.018922,33.117232],[103.01886,33.117251],[103.018781,33.117259],[103.018717,33.117248],[103.018644,33.117219],[103.018576,33.117134],[103.01848,33.11713],[103.018373,33.117162],[103.018339,33.117171],[103.018131,33.117111],[103.018113,33.117106],[103.018059,33.11709],[103.01791,33.117046],[103.017896,33.117014],[103.01788,33.116993],[103.01784,33.116968],[103.017807,33.116952],[103.017775,33.11694],[103.017729,33.116943],[103.017705,33.116953],[103.017663,33.116975],[103.017383,33.116893],[103.017298,33.116833],[103.017276,33.116817],[103.017179,33.116749],[103.017154,33.116731],[103.016794,33.116475],[103.01674,33.116186],[103.016736,33.116165],[103.016692,33.115932],[103.016688,33.11591],[103.016644,33.115674],[103.016642,33.11566],[103.016641,33.115655],[103.016629,33.115595],[103.016629,33.115591],[103.016625,33.115571],[103.016597,33.115423],[103.016594,33.115406],[103.016593,33.115402],[103.016582,33.115332],[103.016578,33.115309],[103.016576,33.115299],[103.016481,33.114728],[103.016462,33.114613],[103.016252,33.114387],[103.016091,33.114214],[103.016025,33.114142],[103.015987,33.114101],[103.015956,33.114065],[103.015607,33.113647],[103.015586,33.113623],[103.015586,33.113623],[103.015495,33.113537],[103.015147,33.113207],[103.015233,33.112705],[103.015171,33.112604],[103.015159,33.112584],[103.015072,33.112441],[103.015029,33.112371],[103.014983,33.11238],[103.014915,33.112368],[103.014885,33.112356],[103.01487,33.112339],[103.014869,33.112315],[103.014883,33.112291],[103.014899,33.112282],[103.0149,33.112265],[103.014891,33.112254],[103.014869,33.112235],[103.01483,33.112213],[103.014803,33.11219],[103.014799,33.112181],[103.01476,33.112128],[103.014753,33.112105],[103.01474,33.112083],[103.01473,33.112067],[103.014699,33.112052],[103.01468,33.112056],[103.014639,33.112084],[103.014631,33.112079],[103.014595,33.112058],[103.014501,33.112],[103.014627,33.111373],[103.01461,33.111045],[103.014606,33.110971],[103.014608,33.11097],[103.014623,33.11095],[103.014622,33.11093],[103.014616,33.110908],[103.014608,33.110882],[103.014606,33.110852],[103.014613,33.110827],[103.014622,33.110794],[103.014632,33.110773],[103.014637,33.110752],[103.01463,33.110731],[103.014617,33.110722],[103.014577,33.110714],[103.01456,33.110604],[103.01452,33.110348],[103.014503,33.110238],[103.014171,33.110012],[103.014019,33.11001],[103.013621,33.110004],[103.013499,33.110002],[103.013321,33.110092],[103.013263,33.110121],[103.013213,33.110147],[103.013163,33.110173],[103.013119,33.110184],[103.013076,33.11019],[103.013046,33.110188],[103.013011,33.110179],[103.012976,33.110158],[103.01294,33.110128],[103.012879,33.11008],[103.012834,33.110054],[103.012754,33.110042],[103.012711,33.110064],[103.012681,33.110114],[103.012664,33.110181],[103.012655,33.110247],[103.012651,33.110309],[103.012647,33.110383],[103.012645,33.110402],[103.012635,33.110433],[103.012624,33.110462],[103.012608,33.11049],[103.012582,33.110521],[103.012549,33.110541],[103.012514,33.110544],[103.012476,33.110539],[103.01246,33.110524],[103.012438,33.110483],[103.012417,33.110456],[103.012399,33.110411],[103.012387,33.110395],[103.012354,33.110384],[103.01233,33.110377],[103.012315,33.110363],[103.012294,33.110346],[103.012279,33.110326],[103.012249,33.110307],[103.012215,33.110292],[103.012179,33.110306],[103.01215,33.110323],[103.012119,33.110336],[103.012073,33.110335],[103.012034,33.110329],[103.011996,33.11031],[103.011949,33.110279],[103.011908,33.110262],[103.011884,33.11025],[103.011867,33.110243],[103.011854,33.110239],[103.011802,33.110238],[103.01176,33.110249],[103.011723,33.110264],[103.011663,33.110288],[103.011618,33.110295],[103.011574,33.110294],[103.011539,33.110286],[103.011517,33.110275],[103.011494,33.110262],[103.011477,33.110236],[103.011465,33.110202],[103.011465,33.110176],[103.011452,33.110135],[103.011431,33.110094],[103.011419,33.110059],[103.01139,33.11003],[103.011342,33.110021],[103.01121,33.110019],[103.011161,33.110039],[103.011166,33.110087],[103.011191,33.110137],[103.011244,33.110198],[103.011289,33.110261],[103.011326,33.110322],[103.011351,33.110362],[103.011399,33.110405],[103.011426,33.110441],[103.011445,33.110502],[103.01145,33.110589],[103.01145,33.110631],[103.011445,33.110668],[103.011415,33.110684],[103.011367,33.110686],[103.01129,33.110681],[103.011261,33.110682],[103.011244,33.110724],[103.011261,33.110768],[103.011283,33.110811],[103.011289,33.110846],[103.011294,33.110872],[103.011296,33.110948],[103.011297,33.110965],[103.011292,33.111046],[103.011289,33.111109],[103.011258,33.111167],[103.01121,33.111226],[103.011155,33.111273],[103.011101,33.111305],[103.011032,33.111365],[103.010967,33.111397],[103.010876,33.111395],[103.010801,33.111368],[103.010739,33.111335],[103.010665,33.111322],[103.010554,33.111331],[103.010445,33.111369],[103.010366,33.111375],[103.010265,33.11135],[103.010156,33.111314],[103.010083,33.111311],[103.01,33.111311],[103.009935,33.111325],[103.009893,33.111342],[103.00973,33.111263],[103.009723,33.111256],[103.009682,33.11121],[103.009659,33.111186],[103.009292,33.110784],[103.009288,33.110682],[103.009268,33.110186],[103.00936,33.109883],[103.009375,33.109836],[103.00943,33.109653],[103.009376,33.109607],[103.00918,33.109435],[103.009122,33.109384],[103.0091,33.109365],[103.008943,33.109273],[103.008904,33.10925],[103.008768,33.109171],[103.008569,33.109158],[103.00854,33.109156],[103.008298,33.10914],[103.008133,33.109129],[103.008104,33.109123],[103.008035,33.109108],[103.008034,33.10913],[103.008024,33.109151],[103.008006,33.109164],[103.007972,33.109163],[103.007941,33.109158],[103.007899,33.109136],[103.007875,33.109118],[103.007843,33.109091],[103.007805,33.109058],[103.007767,33.109031],[103.00774,33.109025],[103.007681,33.109035],[103.00765,33.109055],[103.007631,33.109081],[103.00762,33.109107],[103.0076,33.109133],[103.007569,33.109152],[103.007532,33.109172],[103.007481,33.109181],[103.007427,33.10919],[103.007389,33.109207],[103.007364,33.109229],[103.007331,33.109251],[103.007288,33.109267],[103.007251,33.109271],[103.00719,33.109263],[103.007127,33.109235],[103.007074,33.109199],[103.007032,33.109168],[103.00699,33.109143],[103.006951,33.109125],[103.006899,33.109105],[103.006872,33.109076],[103.006866,33.10903],[103.006869,33.108988],[103.006867,33.108965],[103.006861,33.108955],[103.006822,33.108886],[103.006842,33.108845],[103.006804,33.108836],[103.006768,33.10882],[103.006728,33.108793],[103.006695,33.10878],[103.006687,33.108786],[103.006632,33.108787],[103.006601,33.108786],[103.006557,33.108762],[103.006518,33.108739],[103.00641,33.108697],[103.006384,33.108684],[103.006369,33.10867],[103.006355,33.10864],[103.006348,33.108603],[103.006369,33.108576],[103.006379,33.10856],[103.00638,33.108531],[103.006357,33.108508],[103.006266,33.108524],[103.006234,33.108528],[103.00619,33.108526],[103.006168,33.108517],[103.006144,33.108498],[103.006117,33.108444],[103.006118,33.108386],[103.006129,33.108331],[103.006154,33.108294],[103.006188,33.108258],[103.006197,33.108208],[103.006175,33.108189],[103.006123,33.108138],[103.006087,33.108071],[103.006084,33.108065],[103.006044,33.107994],[103.006019,33.107956],[103.005998,33.107912],[103.005961,33.107893],[103.005915,33.107876],[103.005847,33.107851],[103.00579,33.107832],[103.005742,33.107806],[103.005706,33.107784],[103.005677,33.10776],[103.005652,33.107725],[103.005603,33.10769],[103.005559,33.107681],[103.005522,33.107672],[103.005458,33.107614],[103.005359,33.107587],[103.005246,33.107583],[103.005172,33.107558],[103.005115,33.10752],[103.005063,33.107478],[103.005021,33.107416],[103.004978,33.107358],[103.004968,33.107329],[103.004963,33.107274],[103.004992,33.107208],[103.005013,33.107163],[103.004985,33.107085],[103.004934,33.10703],[103.004904,33.106996],[103.004916,33.106908],[103.004908,33.10688],[103.004875,33.10685],[103.00483,33.106814],[103.004743,33.106819],[103.004659,33.106866],[103.004616,33.106874],[103.00455,33.106869],[103.004519,33.106844],[103.004506,33.106828],[103.004496,33.106799],[103.004482,33.106748],[103.004461,33.106699],[103.00444,33.10668],[103.004399,33.106657],[103.00437,33.106652],[103.004345,33.106648],[103.004325,33.106664],[103.004308,33.106712],[103.004233,33.106786],[103.004186,33.106848],[103.004131,33.106907],[103.004061,33.106946],[103.004004,33.106968],[103.003907,33.106978],[103.003803,33.106974],[103.003756,33.106942],[103.003722,33.106883],[103.003701,33.106825],[103.003699,33.106752],[103.003699,33.10671],[103.003729,33.106607],[103.003747,33.10657],[103.003742,33.106542],[103.003708,33.106527],[103.003558,33.10652],[103.003453,33.106491],[103.003435,33.106458],[103.003432,33.106401],[103.003438,33.106356],[103.003449,33.106364],[103.00347,33.106374],[103.003487,33.10638],[103.003516,33.106369],[103.003507,33.106343],[103.003433,33.106145],[103.003433,33.106145],[103.003428,33.106132],[103.003415,33.106097],[103.003344,33.105905],[103.003347,33.105898],[103.003386,33.105814],[103.003393,33.105798],[103.003447,33.105681],[103.003465,33.10564],[103.003495,33.105613],[103.003519,33.105584],[103.003535,33.105556],[103.003553,33.105529],[103.003584,33.105493],[103.003608,33.105478],[103.003664,33.105459],[103.003718,33.105444],[103.003751,33.105424],[103.003766,33.105404],[103.003761,33.105384],[103.003733,33.105374],[103.003688,33.105378],[103.003668,33.105385],[103.003608,33.105411],[103.003653,33.105348],[103.003661,33.105336],[103.003771,33.105182],[103.00381,33.105126],[103.003857,33.104717],[103.003675,33.104494],[103.003236,33.104542],[103.003215,33.104544],[103.003185,33.104535],[103.003157,33.104528],[103.003137,33.104528],[103.003113,33.104531],[103.003089,33.104541],[103.003063,33.104554],[103.003026,33.104565],[103.00299,33.104569],[103.002983,33.104539],[103.002962,33.104516],[103.002919,33.104494],[103.002885,33.104484],[103.002854,33.104493],[103.002842,33.104515],[103.002837,33.104544],[103.002833,33.104573],[103.002821,33.104602],[103.002788,33.104621],[103.002753,33.10463],[103.002728,33.104625],[103.002719,33.104615],[103.002712,33.104598],[103.002706,33.104574],[103.002698,33.104549],[103.002673,33.104527],[103.002658,33.104529],[103.002643,33.104541],[103.002622,33.104577],[103.002598,33.10461],[103.002573,33.104646],[103.002561,33.104674],[103.00256,33.104701],[103.002571,33.104718],[103.002523,33.104738],[103.002321,33.104818],[103.001836,33.104811],[103.00167,33.104724],[103.001466,33.104616],[103.001029,33.104074],[103.000854,33.103663],[103.000818,33.103578],[103.000745,33.103408],[103.00074,33.103394],[103.000788,33.10334],[103.000822,33.103328],[103.000853,33.103309],[103.000861,33.103282],[103.000831,33.103253],[103.000804,33.103233],[103.000763,33.103218],[103.000733,33.103183],[103.000712,33.103138],[103.000689,33.103106],[103.000655,33.103075],[103.000611,33.103062],[103.000462,33.10268],[103.000106,33.102294],[102.999784,33.101944],[102.99957,33.101757],[102.999457,33.101658],[102.999425,33.10163],[102.999525,33.101596],[102.99956,33.101582],[102.999567,33.101567],[102.99955,33.101557],[102.99948,33.101555],[102.999431,33.101555],[102.999383,33.101556],[102.999365,33.10156],[102.999332,33.101555],[102.999299,33.101548],[102.99924,33.101526],[102.999219,33.10149],[102.999211,33.101419],[102.999221,33.101345],[102.999213,33.101333],[102.999123,33.101199],[102.998839,33.100777],[102.998445,33.100478],[102.998188,33.100283],[102.998153,33.100255],[102.998117,33.100225],[102.99809,33.100244],[102.998054,33.100247],[102.997955,33.100218],[102.997911,33.100193],[102.997883,33.100164],[102.997876,33.100149],[102.997882,33.10011],[102.997913,33.10008],[102.997922,33.100064],[102.997929,33.100036],[102.997924,33.099988],[102.997886,33.099945],[102.997858,33.099933],[102.9978,33.099964],[102.997651,33.100049],[102.997607,33.100056],[102.99756,33.100042],[102.997532,33.100005],[102.997508,33.09996],[102.997499,33.099931],[102.99749,33.099873],[102.997485,33.099807],[102.997473,33.099767],[102.997437,33.099751],[102.997403,33.09975],[102.997366,33.099756],[102.997319,33.099782],[102.997281,33.099804],[102.997239,33.099837],[102.997206,33.099869],[102.997185,33.099874],[102.997156,33.099868],[102.997119,33.099837],[102.99711,33.09981],[102.997161,33.099794],[102.997232,33.099787],[102.997318,33.09976],[102.997361,33.099735],[102.997363,33.099695],[102.997341,33.099643],[102.997295,33.099615],[102.99725,33.099618],[102.997193,33.099649],[102.997132,33.099661],[102.997096,33.09965],[102.997057,33.099629],[102.997023,33.099625],[102.996991,33.099665],[102.996949,33.099732],[102.996915,33.099769],[102.99689,33.099779],[102.996854,33.099772],[102.996832,33.099749],[102.99685,33.09973],[102.996888,33.099719],[102.996923,33.099675],[102.996922,33.099634],[102.996924,33.099588],[102.996954,33.099554],[102.997027,33.099529],[102.997065,33.09949],[102.997073,33.099441],[102.9971,33.099379],[102.997122,33.099373],[102.997156,33.09938],[102.997202,33.099375],[102.997229,33.099362],[102.99724,33.099318],[102.997236,33.099284],[102.997226,33.099245],[102.997202,33.099217],[102.997137,33.099183],[102.997092,33.099162],[102.997039,33.099118],[102.997021,33.099073],[102.997038,33.099053],[102.997072,33.099044],[102.997095,33.099069],[102.99712,33.099096],[102.997172,33.099122],[102.997245,33.09913],[102.997359,33.099106],[102.997408,33.099089],[102.997437,33.099062],[102.997433,33.099035],[102.997385,33.099005],[102.997298,33.098966],[102.997243,33.098937],[102.997173,33.098898],[102.997095,33.098853],[102.997049,33.098811],[102.997051,33.098769],[102.99708,33.098754],[102.997123,33.098759],[102.997176,33.098787],[102.997206,33.098814],[102.997283,33.098875],[102.997271,33.098733],[102.997261,33.098615],[102.997256,33.098559],[102.997257,33.09855],[102.997277,33.09835],[102.997229,33.098339],[102.997209,33.098322],[102.997205,33.098296],[102.997227,33.098283],[102.997253,33.09827],[102.997264,33.098252],[102.997264,33.098226],[102.997242,33.098183],[102.997192,33.098145],[102.997135,33.098114],[102.997106,33.098094],[102.997103,33.098058],[102.997117,33.098035],[102.997137,33.098023],[102.997188,33.098032],[102.997233,33.09805],[102.997269,33.098059],[102.997308,33.098053],[102.99735,33.098004],[102.997368,33.097952],[102.997366,33.097918],[102.997343,33.097873],[102.99729,33.097841],[102.997232,33.097846],[102.997102,33.097591],[102.996909,33.097464],[102.996895,33.097455],[102.996911,33.097401],[102.996921,33.097354],[102.996913,33.097317],[102.996882,33.097285],[102.996838,33.097266],[102.996755,33.097256],[102.996695,33.097258],[102.996696,33.097265],[102.996695,33.097323],[102.99658,33.097248],[102.996102,33.09715],[102.996049,33.097139],[102.996039,33.097137],[102.995836,33.097096],[102.995789,33.097086],[102.995616,33.097212],[102.995513,33.097287],[102.995491,33.097303],[102.99534,33.097414],[102.995163,33.097344],[102.994552,33.097104],[102.993953,33.096277],[102.993551,33.09594],[102.993528,33.095921],[102.993453,33.095858],[102.993371,33.09579],[102.993266,33.095702],[102.993257,33.095624],[102.993248,33.09558],[102.993223,33.095552],[102.993191,33.09555],[102.993073,33.09554],[102.993059,33.095529],[102.993024,33.095499],[102.992987,33.095468],[102.992963,33.095448],[102.992957,33.095443],[102.992898,33.095336],[102.992893,33.095326],[102.992882,33.095307],[102.992791,33.09514],[102.992778,33.095116],[102.992724,33.095018],[102.992714,33.094999],[102.992657,33.094894],[102.992645,33.094872],[102.992569,33.094733],[102.992556,33.094709],[102.992435,33.094488],[102.992323,33.094442],[102.99226,33.094404],[102.992217,33.094338],[102.992208,33.094264],[102.992198,33.094183],[102.992209,33.094111],[102.992241,33.094058],[102.992219,33.093995],[102.992155,33.093915],[102.992094,33.093871],[102.992026,33.093815],[102.991958,33.093747],[102.991904,33.093685],[102.991864,33.093598],[102.991842,33.093494],[102.99183,33.093432],[102.991776,33.093355],[102.991725,33.093344],[102.991724,33.093342],[102.991706,33.093312],[102.99143,33.092838],[102.991287,33.092873],[102.991264,33.092873],[102.99125,33.092842],[102.991244,33.092806],[102.991255,33.092758],[102.99128,33.092725],[102.991339,33.092682],[102.99138,33.09259],[102.99138,33.092545],[102.991334,33.092519],[102.991257,33.092503],[102.991231,33.092496],[102.991003,33.092105],[102.990985,33.092048],[102.990756,33.091283],[102.990656,33.091231],[102.989491,33.090631],[102.989364,33.090465],[102.989269,33.090339],[102.989172,33.090273],[102.98911,33.090215],[102.989064,33.090145],[102.989034,33.090084],[102.988983,33.090017],[102.988927,33.089973],[102.98889,33.089939],[102.988826,33.089876],[102.988806,33.089824],[102.988813,33.08978],[102.988867,33.089752],[102.988919,33.08973],[102.988982,33.089715],[102.989027,33.089721],[102.989084,33.08971],[102.989111,33.089673],[102.989134,33.089602],[102.989139,33.089546],[102.989128,33.089493],[102.989081,33.089449],[102.988989,33.08941],[102.988992,33.089262],[102.988999,33.088951],[102.988965,33.088505],[102.988824,33.08843],[102.98871,33.08837],[102.988353,33.088182],[102.987875,33.08793],[102.987238,33.087739],[102.987181,33.087722],[102.987126,33.087706],[102.986654,33.087565],[102.98656,33.087537],[102.986387,33.087446],[102.986421,33.087408],[102.986403,33.08737],[102.986372,33.087311],[102.986326,33.087276],[102.986235,33.087244],[102.986151,33.087228],[102.986062,33.087192],[102.986004,33.08717],[102.985954,33.087109],[102.985844,33.087097],[102.985791,33.087132],[102.985688,33.087077],[102.985606,33.086943],[102.985363,33.086542],[102.985132,33.086162],[102.985049,33.086026],[102.984499,33.085014],[102.984031,33.084226],[102.983512,33.083772],[102.982649,33.082903],[102.982003,33.082224],[102.981612,33.081958],[102.980294,33.081676],[102.979567,33.080661],[102.978966,33.079908],[102.978661,33.079571],[102.978148,33.079003],[102.97755,33.078663],[102.977408,33.078583],[102.976311,33.078305],[102.975882,33.07774],[102.975916,33.077252],[102.975936,33.077246],[102.975987,33.077236],[102.976021,33.077226],[102.976067,33.077204],[102.976115,33.077176],[102.976137,33.077151],[102.976148,33.077127],[102.97615,33.077096],[102.976141,33.077065],[102.976134,33.077043],[102.976124,33.076997],[102.97611,33.076969],[102.976124,33.076942],[102.976152,33.076913],[102.976188,33.07689],[102.976207,33.076849],[102.976206,33.07682],[102.976197,33.076794],[102.976173,33.076777],[102.976139,33.076753],[102.976075,33.076731],[102.976044,33.076726],[102.976014,33.076721],[102.975994,33.076703],[102.975964,33.076668],[102.975931,33.076617],[102.9759,33.076565],[102.97587,33.076434],[102.975784,33.07606],[102.975708,33.075731],[102.975456,33.075352],[102.975403,33.075271],[102.97541,33.075255],[102.975412,33.075243],[102.975411,33.075229],[102.975409,33.075212],[102.975408,33.075202],[102.975405,33.07518],[102.975405,33.075162],[102.975409,33.075149],[102.975418,33.075143],[102.975437,33.075143],[102.975438,33.075152],[102.975432,33.075175],[102.975431,33.075194],[102.975454,33.075205],[102.975475,33.0752],[102.975497,33.075178],[102.975504,33.075149],[102.975505,33.075119],[102.975493,33.075107],[102.975479,33.075096],[102.975472,33.075075],[102.975457,33.075066],[102.975424,33.075074],[102.975412,33.075079],[102.975399,33.075081],[102.975356,33.075084],[102.975329,33.075072],[102.97529,33.075067],[102.975269,33.075069],[102.975253,33.075068],[102.975243,33.075066],[102.975234,33.07506],[102.975231,33.075048],[102.975233,33.07504],[102.975247,33.075035],[102.975268,33.075031],[102.975285,33.075026],[102.975308,33.075013],[102.975311,33.074994],[102.975302,33.074971],[102.975287,33.07496],[102.975258,33.074939],[102.97523,33.074922],[102.975209,33.074905],[102.975185,33.074894],[102.975161,33.074879],[102.975139,33.074872],[102.975127,33.074869],[102.975118,33.074861],[102.975114,33.07485],[102.975117,33.074839],[102.975132,33.074814],[102.975138,33.074808],[102.975148,33.074797],[102.975167,33.074772],[102.975155,33.07475],[102.975135,33.07474],[102.975128,33.074737],[102.97511,33.074721],[102.975101,33.074697],[102.975082,33.074672],[102.975047,33.074666],[102.97504,33.074675],[102.975037,33.074695],[102.975035,33.074711],[102.975017,33.074722],[102.974994,33.074725],[102.97498,33.074728],[102.974965,33.074727],[102.974953,33.074723],[102.974947,33.074717],[102.974947,33.074706],[102.974957,33.074692],[102.974975,33.074673],[102.974976,33.074656],[102.974963,33.074639],[102.974944,33.074623],[102.974935,33.074608],[102.974927,33.074586],[102.974915,33.074575],[102.974891,33.07456],[102.974873,33.074544],[102.974866,33.074527],[102.97486,33.074507],[102.974852,33.074486],[102.974832,33.074474],[102.974815,33.074466],[102.974774,33.074456],[102.974754,33.07446],[102.974729,33.074471],[102.974726,33.074486],[102.974725,33.0745],[102.974725,33.074528],[102.974716,33.074547],[102.974696,33.074559],[102.97468,33.074559],[102.974665,33.074558],[102.974631,33.074543],[102.974619,33.074523],[102.974618,33.0745],[102.97463,33.074478],[102.974632,33.074449],[102.974623,33.074427],[102.974592,33.074408],[102.974557,33.074417],[102.97453,33.074424],[102.974517,33.074424],[102.974503,33.074424],[102.974482,33.074409],[102.974482,33.074397],[102.9745,33.074373],[102.97453,33.074342],[102.974551,33.074329],[102.974546,33.074304],[102.974528,33.07428],[102.974485,33.07427],[102.974457,33.074265],[102.974391,33.074242],[102.974345,33.074214],[102.974299,33.074177],[102.974257,33.074135],[102.974217,33.074074],[102.974187,33.074036],[102.974151,33.074007],[102.974102,33.073961],[102.974025,33.073888],[102.973998,33.073857],[102.973967,33.07383],[102.97394,33.073796],[102.973904,33.07375],[102.973854,33.073756],[102.973849,33.07375],[102.973819,33.073704],[102.973776,33.073635],[102.97366,33.073485],[102.973636,33.073459],[102.973606,33.073428],[102.973583,33.073397],[102.973559,33.073361],[102.973529,33.073341],[102.973482,33.073314],[102.973466,33.073296],[102.973454,33.073252],[102.973442,33.07323],[102.973423,33.073214],[102.973391,33.07319],[102.97335,33.073177],[102.973322,33.073165],[102.973292,33.073146],[102.973282,33.073118],[102.973277,33.073082],[102.973267,33.073062],[102.973223,33.073032],[102.973176,33.073006],[102.973106,33.072967],[102.973059,33.072937],[102.973066,33.072893],[102.973046,33.072884],[102.972995,33.072855],[102.972978,33.072833],[102.972938,33.072801],[102.97291,33.072771],[102.972888,33.072742],[102.97286,33.072701],[102.972833,33.072668],[102.972803,33.072619],[102.972797,33.072602],[102.972789,33.072577],[102.972789,33.072563],[102.972809,33.072543],[102.972834,33.072516],[102.972837,33.072503],[102.972835,33.072484],[102.972831,33.072473],[102.972827,33.072459],[102.972803,33.072437],[102.972775,33.072413],[102.972746,33.07238],[102.972723,33.072365],[102.972705,33.072352],[102.972691,33.072337],[102.972677,33.072314],[102.972665,33.072291],[102.972648,33.072262],[102.972621,33.072223],[102.972614,33.072204],[102.972578,33.072109],[102.972195,33.071104],[102.971661,33.069933],[102.971649,33.069906],[102.971306,33.06967],[102.970433,33.069069],[102.969985,33.068838],[102.96992,33.068804],[102.969896,33.06882],[102.969864,33.068801],[102.969825,33.068783],[102.969795,33.068764],[102.969759,33.068742],[102.969749,33.068733],[102.969735,33.068709],[102.969685,33.068683],[102.969168,33.068416],[102.968553,33.067811],[102.968477,33.067736],[102.968404,33.067423],[102.968384,33.067336],[102.968363,33.067332],[102.968335,33.067312],[102.968322,33.0673],[102.968318,33.067277],[102.968324,33.06725],[102.968337,33.067232],[102.96835,33.067222],[102.968356,33.06722],[102.968398,33.067212],[102.968411,33.067212],[102.968445,33.067198],[102.968454,33.06718],[102.968447,33.067161],[102.968426,33.067137],[102.968392,33.067112],[102.968372,33.067101],[102.968356,33.067091],[102.968321,33.067071],[102.968302,33.067056],[102.96829,33.067047],[102.968278,33.067036],[102.968271,33.067024],[102.968269,33.067009],[102.96827,33.066993],[102.968281,33.066974],[102.968296,33.066961],[102.968321,33.066945],[102.96835,33.066937],[102.968403,33.066932],[102.968445,33.066929],[102.968473,33.066925],[102.968491,33.066904],[102.96849,33.066884],[102.96848,33.066872],[102.968462,33.066864],[102.968424,33.06686],[102.968404,33.066859],[102.968384,33.066858],[102.968346,33.066844],[102.96833,33.066818],[102.968323,33.066807],[102.968312,33.066798],[102.968298,33.066793],[102.968278,33.06679],[102.96828,33.06672],[102.968286,33.066451],[102.968292,33.06621],[102.968175,33.065539],[102.967934,33.065222],[102.967489,33.064636],[102.967228,33.064239],[102.96728,33.064215],[102.967297,33.064203],[102.9673,33.064167],[102.967288,33.064113],[102.967249,33.064082],[102.967212,33.06407],[102.967168,33.06407],[102.967116,33.06407],[102.966722,33.063472],[102.966028,33.06294],[102.965237,33.062816],[102.96426,33.06306],[102.96396,33.063143],[102.963865,33.06317],[102.962617,33.063516],[102.960792,33.064192],[102.959416,33.064541],[102.958356,33.064598],[102.957133,33.064058],[102.956519,33.063899],[102.955595,33.063773],[102.954944,33.063279],[102.954309,33.062117],[102.953721,33.060844],[102.953557,33.060173],[102.953439,33.059687],[102.953426,33.05914],[102.953401,33.058019],[102.953395,33.057754],[102.953401,33.057727],[102.953429,33.057599],[102.953438,33.057575],[102.953482,33.057455],[102.953515,33.057373],[102.953518,33.057226],[102.953527,33.057188],[102.953547,33.057108],[102.953601,33.057025],[102.953668,33.056932],[102.953696,33.056813],[102.953635,33.056631],[102.953616,33.056485],[102.953632,33.056324],[102.95363,33.056188],[102.95362,33.056019],[102.953639,33.05583],[102.953701,33.055665],[102.953789,33.055517],[102.953817,33.055363],[102.953828,33.055234],[102.953928,33.055083],[102.954007,33.054911],[102.954077,33.054667],[102.954105,33.054534],[102.954164,33.054391],[102.95424,33.053644],[102.954345,33.05294],[102.954577,33.052464],[102.954598,33.052421],[102.955224,33.051136],[102.954887,33.050447],[102.953077,33.049407],[102.952143,33.048753],[102.952035,33.048677],[102.951621,33.048179],[102.951643,33.048115],[102.951633,33.048022],[102.951564,33.047883],[102.951473,33.047748],[102.951336,33.04762],[102.951177,33.047521],[102.95104,33.047444],[102.950835,33.047306],[102.950715,33.047228],[102.950573,33.047075],[102.950535,33.047031],[102.950431,33.046911],[102.950379,33.046815],[102.950358,33.046662],[102.950089,33.046339],[102.947847,33.043646],[102.947433,33.043283],[102.947401,33.043255],[102.94723,33.043106],[102.947222,33.043098],[102.946879,33.042798],[102.946802,33.042783],[102.945685,33.04257],[102.944946,33.042499],[102.944704,33.042287],[102.944747,33.041931],[102.945112,33.041432],[102.945123,33.040957],[102.94475,33.040297],[102.943924,33.039421],[102.943658,33.038704],[102.943602,33.038079],[102.944185,33.037286],[102.944209,33.037241],[102.944406,33.036874],[102.944424,33.036102],[102.944123,33.035384],[102.944095,33.034921],[102.944072,33.034551],[102.943913,33.033805],[102.94418,33.032918],[102.944664,33.031827],[102.945058,33.030051],[102.945043,33.029189],[102.944982,33.028989],[102.944814,33.028442],[102.944594,33.027943],[102.944445,33.027604],[102.945072,33.026791],[102.945281,33.026518],[102.945435,33.026194],[102.945727,33.025575],[102.945566,33.024919],[102.945046,33.024524],[102.944453,33.024217],[102.943649,33.023907],[102.942559,33.02377],[102.942032,33.02392],[102.94128,33.024135],[102.941164,33.024176],[102.940879,33.024276],[102.940872,33.024278],[102.940623,33.024366],[102.940391,33.024447],[102.940279,33.024408],[102.940119,33.024354],[102.939937,33.024291],[102.939399,33.023421],[102.939121,33.02297],[102.938479,33.021746],[102.938445,33.021681],[102.938288,33.020847],[102.938525,33.019781],[102.938376,33.018899],[102.93852,33.018718],[102.938521,33.018625],[102.938446,33.018669],[102.93837,33.018701],[102.938345,33.018712],[102.938343,33.018702],[102.938339,33.018678],[102.938286,33.018599],[102.938279,33.018589],[102.938274,33.018581],[102.938174,33.01843],[102.938168,33.01842],[102.93782,33.017896],[102.937521,33.017447],[102.937508,33.017424],[102.93746,33.017342],[102.937046,33.016636],[102.936235,33.015859],[102.936191,33.015817],[102.936065,33.015696],[102.935942,33.015578],[102.935778,33.015212],[102.935742,33.01513],[102.935734,33.015114],[102.935717,33.015074],[102.93571,33.01506],[102.935674,33.01498],[102.935204,33.014003],[102.935164,33.013919],[102.935134,33.013858],[102.935069,33.013722],[102.935054,33.013682],[102.935033,33.013621],[102.934704,33.012705],[102.93449,33.011729],[102.934481,33.011691],[102.934762,33.010955],[102.934819,33.010806],[102.935438,33.009984],[102.935813,33.009039],[102.935908,33.008724],[102.935914,33.008704],[102.93608,33.008152],[102.936213,33.007952],[102.936249,33.007898],[102.936262,33.007878],[102.936373,33.007711],[102.937096,33.006951],[102.937805,33.006754],[102.938129,33.006492],[102.938197,33.006118],[102.938199,33.006109],[102.938205,33.006077],[102.93821,33.006048],[102.938167,33.006005],[102.93811,33.005948],[102.937969,33.005806],[102.937935,33.005764],[102.937918,33.005742],[102.93767,33.005428],[102.93766,33.005415],[102.937714,33.005202],[102.937741,33.005091],[102.93777,33.004977],[102.937786,33.004917],[102.937787,33.00491],[102.937788,33.004904],[102.937816,33.004794],[102.93823,33.004517],[102.938249,33.004505],[102.938262,33.004496],[102.938327,33.004453],[102.938342,33.004443],[102.938358,33.004432],[102.938425,33.004388],[102.938409,33.00436],[102.938383,33.004314],[102.938274,33.00412],[102.938272,33.004117],[102.938188,33.003968],[102.938229,33.003701],[102.938337,33.003766],[102.93889,33.004098],[102.939403,33.004286],[102.939403,33.004261],[102.939495,33.004134],[102.939537,33.004108],[102.93961,33.004071],[102.939731,33.004033],[102.939759,33.004002],[102.939919,33.003818],[102.939985,33.003684],[102.940114,33.003419],[102.940178,33.003287],[102.940541,33.002848],[102.940057,33.002453],[102.939572,33.002059],[102.939829,33.001618],[102.93931,33.001223],[102.939078,33.000571],[102.939069,33.000543],[102.939042,33.000467],[102.939024,33.000418],[102.939021,33.00041],[102.939019,33.000403],[102.938895,33.000053],[102.938875,32.999997],[102.938867,32.999974],[102.938853,32.999934],[102.938834,32.999835],[102.938751,32.999404],[102.938885,32.999137],[102.938898,32.999111],[102.938928,32.99905],[102.938944,32.999019],[102.938956,32.998995],[102.939043,32.998821],[102.939059,32.99879],[102.93907,32.998767],[102.9391,32.998709],[102.939105,32.998697],[102.93911,32.998689],[102.93883,32.998444],[102.938477,32.998497],[102.938469,32.998464],[102.938453,32.99845],[102.938434,32.998436],[102.938415,32.998425],[102.938389,32.998419],[102.938357,32.998413],[102.938331,32.998411],[102.938292,32.99841],[102.938256,32.998408],[102.938222,32.998415],[102.938193,32.998422],[102.938159,32.998434],[102.93813,32.998454],[102.938108,32.998472],[102.938081,32.998497],[102.93806,32.998523],[102.93804,32.998564],[102.938021,32.998604],[102.937807,32.99867],[102.937752,32.998662],[102.937689,32.99868],[102.937629,32.998709],[102.937586,32.998738],[102.93752,32.998759],[102.937224,32.99885],[102.936945,32.998557],[102.936956,32.998086],[102.936957,32.998075],[102.936958,32.998015],[102.936996,32.99804],[102.937052,32.998056],[102.937106,32.998043],[102.937142,32.998014],[102.937163,32.997974],[102.937139,32.997955],[102.937059,32.9979],[102.93698,32.997818],[102.936963,32.997787],[102.936954,32.99777],[102.936947,32.997751],[102.936929,32.997644],[102.936909,32.997525],[102.936905,32.997399],[102.936909,32.997338],[102.93694,32.997237],[102.93695,32.997206],[102.936943,32.997076],[102.936929,32.996827],[102.936887,32.996815],[102.936622,32.996741],[102.936612,32.996739],[102.936192,32.996622],[102.935852,32.996481],[102.935719,32.996425],[102.935324,32.99626],[102.935232,32.996222],[102.934749,32.996211],[102.933962,32.996193],[102.933285,32.996425],[102.932769,32.996601],[102.932608,32.996656],[102.932275,32.99677],[102.931714,32.997056],[102.93139,32.997147],[102.931208,32.997199],[102.931051,32.997236],[102.930902,32.997248],[102.930788,32.997263],[102.930704,32.997321],[102.930679,32.997396],[102.930684,32.997468],[102.930748,32.997514],[102.930961,32.997598],[102.930503,32.998093],[102.930204,32.998433],[102.929906,32.998774],[102.929353,32.999111],[102.928347,32.999726],[102.927557,32.999943],[102.927284,32.99991],[102.92683,32.999855],[102.926518,32.999816],[102.926467,32.99981],[102.925448,32.999592],[102.924316,32.999774],[102.923193,32.999641],[102.922543,32.999642],[102.922491,32.999642],[102.92169,32.999644],[102.920907,32.999516],[102.919982,32.999645],[102.918035,32.999698],[102.917514,32.999675],[102.917011,32.999653],[102.9162,32.999761],[102.916174,32.999764],[102.916126,32.999771],[102.916052,32.99978],[102.915434,32.999943],[102.914892,32.999732],[102.914209,32.998956],[102.914129,32.998931],[102.914031,32.998892],[102.91392,32.998843],[102.91386,32.998768],[102.913804,32.998675],[102.913747,32.998558],[102.913707,32.998406],[102.913258,32.998065],[102.912232,32.997048],[102.912156,32.996998],[102.912104,32.996916],[102.912034,32.996735],[102.911964,32.996527],[102.911844,32.996382],[102.91169,32.99629],[102.911493,32.996166],[102.911415,32.996074],[102.911393,32.996048],[102.910665,32.995057],[102.910068,32.994328],[102.908895,32.993387],[102.90796,32.99248],[102.907721,32.991037],[102.907704,32.990972],[102.907644,32.99074],[102.907786,32.990689],[102.907905,32.990584],[102.908002,32.990469],[102.907984,32.990283],[102.907883,32.990079],[102.907766,32.989945],[102.907673,32.989889],[102.907402,32.989805],[102.907377,32.989707],[102.907289,32.989367],[102.907257,32.989243],[102.907256,32.989241],[102.907229,32.989134],[102.907203,32.989031],[102.907153,32.98893],[102.907123,32.988829],[102.907112,32.988706],[102.907153,32.988593],[102.907148,32.988468],[102.907083,32.988337],[102.906997,32.988218],[102.906932,32.988087],[102.906877,32.987951],[102.90684,32.987808],[102.906836,32.987721],[102.906775,32.987602],[102.906681,32.987451],[102.906623,32.987326],[102.906576,32.987204],[102.906417,32.9869],[102.90555,32.98467],[102.905481,32.984526],[102.905163,32.983859],[102.904443,32.982349],[102.904256,32.981626],[102.904305,32.980994],[102.90433,32.98081],[102.904332,32.980799],[102.90423,32.980617],[102.904212,32.980503],[102.904233,32.980345],[102.904266,32.980259],[102.904366,32.980111],[102.904447,32.979969],[102.904561,32.979147],[102.904594,32.978913],[102.904633,32.978632],[102.904655,32.97847],[102.904675,32.978324],[102.904686,32.978259],[102.9047,32.978167],[102.904836,32.97732],[102.905155,32.976807],[102.90527,32.976262],[102.905355,32.975544],[102.90551,32.974799],[102.905513,32.974791],[102.905561,32.974561],[102.905554,32.974447],[102.905519,32.974347],[102.905462,32.974266],[102.905404,32.974157],[102.905436,32.973985],[102.905547,32.973693],[102.905686,32.973453],[102.905842,32.973237],[102.905943,32.97316],[102.906126,32.973054],[102.90621,32.972547],[102.906212,32.972537],[102.906193,32.972293],[102.906168,32.971965],[102.906163,32.971906],[102.906081,32.970837],[102.906044,32.969792],[102.906043,32.969763],[102.906011,32.968862],[102.906009,32.968813],[102.906008,32.968794],[102.906001,32.968584],[102.905999,32.968534],[102.906027,32.968355],[102.906063,32.968122],[102.906121,32.967749],[102.90613,32.967694],[102.906205,32.967212],[102.906244,32.967051],[102.90634,32.966847],[102.906439,32.966646],[102.906499,32.966255],[102.906495,32.965869],[102.906497,32.965334],[102.906522,32.965176],[102.906749,32.96423],[102.906946,32.961701],[102.907069,32.960811],[102.907099,32.959545],[102.907528,32.958718],[102.907793,32.957629],[102.908231,32.956428],[102.908971,32.955404],[102.909535,32.954665],[102.910227,32.954274],[102.910888,32.953738],[102.911482,32.953144],[102.912009,32.952887],[102.912574,32.952611],[102.912622,32.952587],[102.913242,32.952339],[102.912939,32.952161],[102.912465,32.951981],[102.911449,32.951647],[102.909909,32.950384],[102.909038,32.949679],[102.908545,32.948893],[102.907846,32.948134],[102.907391,32.947176],[102.906153,32.94612],[102.905414,32.945589],[102.904564,32.945489],[102.903707,32.945618],[102.902951,32.945864],[102.901924,32.945962],[102.900765,32.945914],[102.899676,32.945809],[102.898181,32.945496],[102.897195,32.945336],[102.89584,32.944939],[102.894722,32.944575],[102.8936,32.944383],[102.893464,32.944352],[102.893623,32.943434],[102.893751,32.942343],[102.893875,32.941453],[102.89386,32.940647],[102.893773,32.939983],[102.893542,32.939663],[102.892844,32.938845],[102.89211,32.938171],[102.891513,32.937442],[102.891224,32.93666],[102.891001,32.935994],[102.890806,32.935588],[102.89017,32.935088],[102.889218,32.934928],[102.888025,32.93485],[102.887179,32.934577],[102.886338,32.934045],[102.885266,32.933221],[102.884597,32.932663],[102.88366,32.931899],[102.882746,32.931567],[102.88147,32.930711],[102.880462,32.93006],[102.879622,32.929499],[102.878487,32.928444],[102.877686,32.927682],[102.876812,32.92715],[102.875972,32.926617],[102.874892,32.92611],[102.873804,32.925947],[102.87269,32.925439],[102.872158,32.924883],[102.871605,32.923752],[102.871284,32.922912],[102.871316,32.92156],[102.871693,32.92007],[102.871968,32.919496],[102.871981,32.91947],[102.876038,32.917017],[102.8761,32.916979],[102.876403,32.917034]]]]},"properties":{"cp":[103.14126598596769,33.03468485062284],"code":"513233208","name":"色地镇","level":"street","center":[103.14126598596769,33.03468485062284],"fullCode":"513233208000","fullName":"四川省阿坝藏族羌族自治州红原县色地镇","acreageMu":1798581.17,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.999,32.865]}}]} -`,nx={邛溪镇:"qiongxi",刷经寺镇:"shuajingsi",安曲镇:"anqu",龙日镇:"longri",江茸乡:"jiangrong",查尔玛乡:"chaerma",瓦切镇:"waqie",阿木乡:"amu",麦洼乡:"maiwa",色地镇:"sedi"},ax={色地镇:1199,瓦切镇:991,刷经寺镇:986,邛溪镇:896,阿木乡:892,安曲镇:885,查尔玛乡:729,龙日镇:645,麦洼乡:559,江茸乡:514},ix={};function rx(t){try{return JSON.parse(t)}catch(e){return{type:"FeatureCollection",features:[]}}}function ox(t={}){const e=t.properties||{},n=e.cp||e.center||e.centroid||e.sourceCenter;return Array.isArray(n)&&Number.isFinite(Number(n[0]))&&Number.isFinite(Number(n[1]))?[Number(n[0]),Number(n[1])]:[0,0]}function Xm(t={}){return t!=null&&t.coordinates?t.type==="Polygon"?[t.coordinates]:t.type==="MultiPolygon"?t.coordinates:[]:[]}function sx(t=[]){return t.reduce((e,n,a)=>{const i=t[a===0?t.length-1:a-1];return e+(Number(i==null?void 0:i[0])*Number(n==null?void 0:n[1])-Number(n==null?void 0:n[0])*Number(i==null?void 0:i[1]))},0)/2}function lx(t=[]){let e=0,n=0,a=0;return t.forEach((i,r)=>{const o=t[r===0?t.length-1:r-1],s=Number(o==null?void 0:o[0])*Number(i==null?void 0:i[1])-Number(i==null?void 0:i[0])*Number(o==null?void 0:o[1]);e+=s,n+=(Number(o==null?void 0:o[0])+Number(i==null?void 0:i[0]))*s,a+=(Number(o==null?void 0:o[1])+Number(i==null?void 0:i[1]))*s}),Math.abs(e)<1e-10?null:[n/(3*e),a/(3*e)]}function ux(t=[]){const e=t.map(n=>[Number(n==null?void 0:n[0]),Number(n==null?void 0:n[1])]).filter(([n,a])=>Number.isFinite(n)&&Number.isFinite(a));return e.length?e.reduce((n,[a,i])=>({west:Math.min(n.west,a),east:Math.max(n.east,a),south:Math.min(n.south,i),north:Math.max(n.north,i)}),{west:1/0,east:-1/0,south:1/0,north:-1/0}):null}function Tf(t=[],e=[]){const n=Number(t[0]),a=Number(t[1]);if(!Number.isFinite(n)||!Number.isFinite(a))return!1;let i=!1;for(let r=0,o=e.length-1;ra!=g>a&&n<(f-m)*(a-p)/(g-p||1e-12)+m&&(i=!i)}return i}function yl(t=[],e=[]){return!e.length||!Tf(t,e[0])?!1:!e.slice(1).some(n=>Tf(t,n))}function cx(t=[],e={}){return Xm(e).some(n=>yl(t,n))}function dx(t={}){var e;return((e=Xm(t.geometry).map(n=>({polygon:n,area:Math.abs(sx((n==null?void 0:n[0])||[]))})).filter(n=>n.area>0).sort((n,a)=>a.area-n.area)[0])==null?void 0:e.polygon)||null}function ni(t=[]){return t.map(e=>Number(Number(e).toFixed(6)))}function fx(t={}){const e=ox(t);if(cx(e,t.geometry))return ni(e);const n=dx(t),a=(n==null?void 0:n[0])||[],i=lx(a);if(i&&yl(i,n))return ni(i);const r=ux(a),o=r?[(r.west+r.east)/2,(r.south+r.north)/2]:null;return o&&yl(o,n)?ni(o):ni(i||o||e)}const hx=Zm,Ii=rx(Zm),nu=Ii.features||[],Ss=nu.reduce((t,e)=>{const n=e.properties||{},a=xr(n.name);return[n.code,n.fullCode].forEach(i=>{const r=String(i||"").replace(/\D/g,"");r&&a&&(t[r]=a)}),t},{});nu.reduce((t,e)=>{const n=e.properties||{},a=xr(n.name),i=String(n.code||"").replace(/\D/g,"");return a&&i&&(t[a]=i),t},{});const P9=nu.map(t=>{const e=t.properties||{},n=xr(e.name),a=ix[n]||fx(t);return{name:n,code:e.code,fullCode:e.fullCode,center:a,centroid:a,acreageMu:Number(e.acreageMu)||0}}),ep=P9.map(t=>t3(B2({},t),{enName:nx[t.name]||"",value:ax[t.name]||0})).sort((t,e)=>e.value-t.value),vn=P9.map(t=>t.name);function xr(t){const e=String(t||"").trim();return!e||e==="--"?"":e}function va(t){const e=String(t||"").replace(/\D/g,"");return e&&(Ss[e]||Ss[e.slice(0,12)]||Ss[e.slice(0,9)])||""}function mx(t){const e=xr(t);return!!(e&&P9.some(n=>n.name===e))}const px=17,gx=-18,yx=-50,vx=.045,Cf=-18,Af=-58,_f=4.2,xf=3.2,ws=4700,Sx=4620,wx={__name:"index",props:{active:{type:Boolean,default:!0},activeLayer:{type:Object,default:null},mapRanking:{type:Object,default:null},overlayLayer:{type:Object,default:null},overlayLayers:{type:Array,default:()=>[]},tileUrlTemplate:{type:String,default:"https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png"},referenceTileUrlTemplate:{type:String,default:"https://map.shuxitech.com/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}"},terrainUrl:{type:String,default:"/terrain"},center:{type:Array,default:()=>[102.600005,32.585593]},initialZoom:{type:Number,default:9},minimumZoomDistance:{type:Number,default:350},countyViewTargetOffset:{type:Object,default:null},autoApplyLayerMapView:{type:Boolean,default:!0},maxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},showNationalBackdrop:{type:Boolean,default:!0},enableImageryFeaturePick:{type:Boolean,default:!0},enableTownPolygonPick:{type:Boolean,default:!0},hideTownLabelStats:{type:Boolean,default:!1}},emits:["ready","scene-mounted","feature-loading","feature-info","layer-status","tile-status","map-click","draw-boundary"],setup(t,{expose:e,emit:n}){let a=[],i=null;const r=t,o=n,s=a3(null),u=a3(null),m=Nm(null),p=r2(()=>r.activeLayer?[r.activeLayer,...Array.isArray(r.activeLayer.overlayLayers)?r.activeLayer.overlayLayers:[]].filter(Boolean):r.overlayLayers.length?r.overlayLayers.filter(Boolean):r.overlayLayer?[r.overlayLayer]:[]);let f=null,g=null,C=null,F=null,z=!1,Y=0,i2=null,v2=!1,y2=[],A2=null,S2=[],Q2=[],X2=[],c3=[],p3=[],l3=[],b3=null,N3=[],_3=[],J3=[],R3=[];const Z3=new Map;jn(()=>{o("scene-mounted"),r.active&&M1()}),On(()=>e3()),ie(p,()=>G0(),{deep:!0}),ie(()=>r.mapRanking,()=>Fe(),{deep:!0}),ie(()=>r.hideTownLabelStats,()=>Fe()),ie(()=>r.active,b=>L3(this,null,function*(){if(!b){e3();return}yield ae(),M1()}));function M1(){var K3,v1,Q1,L1;if(f||!u.value)return!!f;const b=window.Cesium;if(!b)return o("layer-status",{type:"error",text:"Cesium 运行资源加载失败"}),!1;z=!1;const B=b1(b),q=a1(r.tileUrlTemplate),b2=a1(r.referenceTileUrlTemplate),C2=G1(q),m2=b2&&b2!==q?j1(b,b2,{maximumLevel:Math.min(r.maxZoom,19)}):null,T3=q?j1(b,q,{maximumLevel:C2?Math.min(r.maxZoom,px):r.maxZoom,rectangle:C2?s0(b):null}):null;if(f=new b.Viewer(u.value,{animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,navigationHelpButton:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,scene3DOnly:!0,imageryProvider:!1,terrainProvider:B,useBrowserRecommendedResolution:!1,requestRenderMode:!0,maximumRenderTimeChange:1/0,contextOptions:{webgl:{alpha:!0,antialias:!0}}}),m2){const n0=f.imageryLayers.addImageryProvider(m2);n0.alpha=1,n0.brightness=.68,n0.contrast=1.08,n0.saturation=.48,n0.gamma=.9}T3&&(A2=f.imageryLayers.addImageryProvider(T3),A2.alpha=C2?.88:1,A2.brightness=C2?.96:.9,A2.contrast=C2?1.12:1.1,A2.saturation=C2?1.08:1.05,A2.gamma=C2?.98:.96),f.scene.globe.terrainExaggeration=1.5,f.scene.globe.depthTestAgainstTerrain=!1,f.scene.globe.baseColor=b.Color.fromCssColorString("#061821"),f.scene.backgroundColor=b.Color.fromCssColorString("#020b12"),f.scene.skyAtmosphere.show=!1,f.scene.skyBox&&(f.scene.skyBox.show=!1),f.scene.fog.enabled=!0,f.scene.fog.density=18e-5,f.resolutionScale=Math.min(Math.max(window.devicePixelRatio||1,1),2),f.scene.fxaa=!1,f.scene.postProcessStages.fxaa.enabled=!1,f.scene.screenSpaceCameraController.enableCollisionDetection=!0,f.scene.screenSpaceCameraController.minimumZoomDistance=Math.max(1,Number(r.minimumZoomDistance)||1),f.scene.screenSpaceCameraController.maximumZoomDistance=56e4,(K3=f.cesiumWidget)!=null&&K3.creditContainer&&(f.cesiumWidget.creditContainer.style.display="none"),(v1=f._cesiumWidget)!=null&&v1._creditContainer&&(f._cesiumWidget._creditContainer.style.display="none"),O3(B,b),r0().then(()=>{var n0;!f||(n0=f.isDestroyed)!=null&&n0.call(f)||(g0(),N1())}).catch(n0=>{console.warn("[cesium-map] county outline load failed",n0),o("layer-status",{type:"error",text:"红原县边界加载失败"})}),$3(),We(),U1(),R1(),H3(!1),N1(),G0(),Fe();const x3={viewer:f,clearSelectedFeature:d,focusProject:O2,focusPasture:Z2,focusTownByName:f2,focusYakIndustryPoint:o2,focusVectorFeature:T,getVectorFeatureAnchorScreen:K,getVectorFeaturesAnchorScreen:E2,getVectorFeatureScreen:j,getYakIndustryPointScreen:D2,destroy:e3};return m.value=x3,(L1=(Q1=T3==null?void 0:T3.errorEvent)==null?void 0:Q1.addEventListener)==null||L1.call(Q1,()=>{o("tile-status",{type:"warning",text:"牧场影像底图部分瓦片加载失败"})}),o("tile-status",{type:"success",text:"牧场影像底图已加载"}),window.setTimeout(()=>{var n0;f&&!((n0=f.isDestroyed)!=null&&n0.call(f))&&o("ready")},0),ae(u1),!0}function b1(b){if(!r.terrainUrl)return new b.EllipsoidTerrainProvider;try{return new b.CesiumTerrainProvider({url:r.terrainUrl,requestVertexNormals:!0,requestWaterMask:!1})}catch(B){return z=!0,new b.EllipsoidTerrainProvider}}function j1(b,B,q={}){return B?new b.UrlTemplateImageryProvider({url:B,minimumLevel:q.minimumLevel||3,maximumLevel:q.maximumLevel||r.maxZoom,rectangle:q.rectangle||void 0,tilingScheme:new b.WebMercatorTilingScheme,credit:""}):null}function a1(b){return String(b||"").trim()}function G1(b){return/hy-result|qkl-map/i.test(String(b||""))}function s0(b){return b.Rectangle.fromDegrees(J1.west-.035,J1.south-.035,J1.east+.035,J1.north+.035)}function i0(b,B="feature"){const q=[];if(((b==null?void 0:b.features)||[]).forEach(b2=>{const C2=g1(b2==null?void 0:b2.geometry);P2(C2).forEach(m2=>{const T3=q1(m2);T3&&q.push(T3)})}),!q.length)return[];try{return ti.union(...q)}catch(b2){return console.warn(`[cesium-map] ${B} union boundary failed`,b2),q.map(C2=>C2)}}function r0(){return L3(this,null,function*(){return a.length?a:(i||(i=j2(gl).then(b=>{const B=i0(b,"county outline");return a=B,B}).catch(b=>{throw i=null,b})),i)})}function q1(b){if(!Array.isArray(b))return null;const B=b.map(q=>h3((q||[]).map(k1).filter(Boolean))).filter(q=>q.length>=4);return B.length?B:null}function h3(b=[]){if(!b.length)return[];const B=b[0],q=b[b.length-1];return m1(B,q)?b:[...b,B]}function O3(b,B){var b2,C2,m2,T3;const q=()=>{!f||z||(z=!0,f.terrainProvider=new B.EllipsoidTerrainProvider,f.scene.globe.terrainExaggeration=1,f.scene.requestRender(),o("layer-status",{type:"warning",text:"CXPT 地形服务暂不可用,已保留三维影像地图"}))};(C2=(b2=b==null?void 0:b.errorEvent)==null?void 0:b2.addEventListener)==null||C2.call(b2,q),(T3=(m2=b==null?void 0:b.readyPromise)==null?void 0:m2.catch)==null||T3.call(m2,q)}function V3(){return M1()}function i3(){var b;return!!(f&&!((b=f.isDestroyed)!=null&&b.call(f)))}function U2(){D3()}function D3(){if(!f){M1();return}f.useDefaultRenderLoop=!0,u1()}function F3(){e3()}function u1(){var b;!f||(b=f.isDestroyed)!=null&&b.call(f)||(f.resize(),f.scene.requestRender())}function A1(){if(!(f!=null&&f.camera)||!window.Cesium)return null;const b=window.Cesium,B=f.camera;return{position:b.Cartesian3.clone(B.positionWC||B.position),direction:b.Cartesian3.clone(B.directionWC||B.direction),up:b.Cartesian3.clone(B.upWC||B.up)}}function S3(b){var q,b2,C2,m2,T3,x3;if(!(f!=null&&f.camera)||!b||!window.Cesium)return;const B=window.Cesium;(b2=(q=f.camera).cancelFlight)==null||b2.call(q),(m2=(C2=f.camera).lookAtTransform)==null||m2.call(C2,B.Matrix4.IDENTITY),f.camera.setView({destination:B.Cartesian3.clone(b.position),orientation:{direction:B.Cartesian3.clone(b.direction),up:B.Cartesian3.clone(b.up)}}),(x3=(T3=f.scene)==null?void 0:T3.requestRender)==null||x3.call(T3)}function E(b){var B,q;!b||typeof window=="undefined"||((B=window.requestAnimationFrame)==null||B.call(window,()=>S3(b)),(q=window.setTimeout)==null||q.call(window,()=>S3(b),80))}function C3(){d(),H3(!0)}function H3(b=!0){if(!f)return;const B=window.Cesium,q=B1(),b2=s1(r.initialZoom),C2=_1(),m2=B.Cartesian3.fromDegrees(q[0]+C2.lng,q[1]+C2.lat,2200),T3=new B.HeadingPitchRange(B.Math.toRadians(gx),B.Math.toRadians(yx),b2);b?f.camera.flyToBoundingSphere(new B.BoundingSphere(m2,1),{offset:T3,duration:.9}):(f.camera.lookAt(m2,T3),f.camera.lookAtTransform(B.Matrix4.IDENTITY)),f.scene.requestRender()}function _1(){var b2,C2;const b=r.countyViewTargetOffset,B=Number((b2=b==null?void 0:b.lng)!=null?b2:b==null?void 0:b[0]),q=Number((C2=b==null?void 0:b.lat)!=null?C2:b==null?void 0:b[1]);return{lng:Number.isFinite(B)?B:0,lat:Number.isFinite(q)?q:-vx}}function s1(b){const B=Number.isFinite(Number(b))?Number(b):9;return Math.max(9e3,Math.min(58e4,365e3/Math.pow(1.62,B-9)))}function B1(){const b=k1(r.center);return b||[(J1.west+J1.east)/2,(J1.south+J1.north)/2]}function U1(){!s.value||!window.ResizeObserver||(C=new ResizeObserver(()=>u1()),C.observe(s.value))}function R1(){!f||F||(F=f.camera.moveEnd.addEventListener(N1))}function N1(){var b2,C2;if(!f||(b2=f.isDestroyed)!=null&&b2.call(f))return;const b=Number((C2=f.camera.positionCartographic)==null?void 0:C2.height)||32e4,B=Math.max(0,Math.min(1,(36e4-b)/3e5)),q={township:1.1+B*.35,countyOutline:1.9+B*.35,countyHalo:4.2+B*.65};Q2.forEach(m2=>{m2!=null&&m2.polyline&&m2.__hyBoundaryRole==="township"&&(m2.polyline.width=q.township)}),J3.forEach(m2=>{m2!=null&&m2.polyline&&m2.__hyBoundaryRole==="county-outline"&&(m2.polyline.width=q.countyOutline),m2!=null&&m2.polyline&&m2.__hyBoundaryRole==="county-halo"&&(m2.polyline.width=q.countyHalo)}),f.scene.requestRender()}function G0(){return L3(this,null,function*(){var q,b2;if(!f)return;const b=++Y;W();const B=p.value;if(!B.length){o("layer-status",{type:"idle",text:"未选择专题图层"}),f.scene.requestRender();return}o("layer-status",{type:"loading",text:"正在加载三维专题图层"});try{if(yield r0(),b!==Y||!f)return;for(const C2 of B){if(b!==Y)return;yield T0(C2,b)}if(b!==Y)return;r.autoApplyLayerMapView&&E0(B.find(C2=>(C2==null?void 0:C2.mapView)||(C2==null?void 0:C2.cameraPosition))),o("layer-status",{type:"success",text:`${B.map(C2=>C2.name).filter(Boolean).join("、")}已加载`})}catch(C2){if(b!==Y)return;console.warn("[cesium-map] topic layer failed",C2),o("layer-status",{type:"error",text:"三维专题图层加载失败"})}finally{(b2=(q=f==null?void 0:f.scene)==null?void 0:q.requestRender)==null||b2.call(q)}})}function T0(b,B){return L3(this,null,function*(){const q=String((b==null?void 0:b.sourceType)||"wms").toLowerCase();if(["geojson","wkt-api","wfs"].includes(q)){const b2=yield x2(b);if(B!==Y||!b2)return;V1(b2,b,X2);return}if(q==="wmts"){S0(b);return}z0(b)})}function S0(b){const B=window.Cesium,q=b.tileMatrixSetID||b.tileMatrixSet||"EPSG:900913",b2=Number.isFinite(Number(b.maximumLevel))?Number(b.maximumLevel):21,C2=new B.WebMapTileServiceImageryProvider({url:b.url||"/geoserver/gwc/service/wmts",layer:b.layerName,style:b.style||b.styles||"",format:b.format||"image/png",tileMatrixSetID:q,tileMatrixLabels:b.tileMatrixLabels||oe(q,b2),tilingScheme:/4326/i.test(q)?new B.GeographicTilingScheme:new B.WebMercatorTilingScheme,maximumLevel:b2,credit:b.credit||""}),m2=f.imageryLayers.addImageryProvider(C2),T3=String(b.layerName||"").includes("daping_yak_marks");m2.alpha=T3?r1(b.opacity,.94):r1(b.opacity,.86),T3&&P0(m2,b),m2.__hyLayer=b,S2.push(m2)}function oe(b,B=21){return Array.from({length:B+1},(q,b2)=>`${b}:${b2}`)}function z0(b){const B=window.Cesium,q={service:"WMS",transparent:!0,format:"image/png",version:"1.1.1",styles:b.styles||""};b.cqlFilter&&(q.cql_filter=b.cqlFilter),b.sldBody&&(q.sld_body=b.sldBody);const b2=new B.WebMapServiceImageryProvider({url:b.url||"/geoserver/ne/wms",layers:b.layerName,parameters:q,getFeatureInfoParameters:t3(B2({},q),{info_format:"application/json",feature_count:10})}),C2=f.imageryLayers.addImageryProvider(b2),m2=String(b.layerName||"").includes("daping_yak_marks");C2.alpha=m2?r1(b.opacity,.94):r1(b.opacity,.86),m2&&P0(C2,b),C2.__hyLayer=b,S2.push(C2)}function P0(b,B={}){b.brightness=Number.isFinite(Number(B.brightness))?Number(B.brightness):1.08,b.contrast=Number.isFinite(Number(B.contrast))?Number(B.contrast):1.18,b.saturation=Number.isFinite(Number(B.saturation))?Number(B.saturation):1.42,b.gamma=Number.isFinite(Number(B.gamma))?Number(B.gamma):.95}function x2(b){return L3(this,null,function*(){if(b.sourceType==="wkt-api")try{const B=yield fetch(b.apiUrl,{credentials:"same-origin"});if(!B.ok)throw new Error(`HTTP ${B.status}`);return d1(yield B.json())}catch(B){if(!b.fallbackPath)throw B;return j2(b.fallbackPath)}if(b.sourceType==="wfs"){const B=H2(b);return j2(B)}return j2(b.dataPath||b.fallbackPath)})}function j2(b){return L3(this,null,function*(){if(!b)return null;const B=/^(https?:)?\/\//.test(b)||b.startsWith("/")?b:K4(b),q=yield fetch(B,{credentials:"same-origin"});if(!q.ok)throw new Error(`HTTP ${q.status}`);return q.json()})}function H2(b){const B=new URLSearchParams({service:"WFS",version:"1.1.0",request:"GetFeature",typeName:b.layerName,outputFormat:"application/json",srsName:"EPSG:4326"});return b.cqlFilter&&B.set("cql_filter",b.cqlFilter),b.maxFeatures&&B.set("maxFeatures",String(b.maxFeatures)),Array.isArray(b.propertyName)&&b.propertyName.length?B.set("propertyName",b.propertyName.join(",")):b.propertyName&&B.set("propertyName",b.propertyName),`${b.url||"/geoserver/ne/wfs"}?${B.toString()}`}function w3(b,B={},q=null,b2=null){var K3,v1,Q1;const C2=((K3=b==null?void 0:b.data)==null?void 0:K3.type)==="Feature"?b.data:((Q1=(v1=b==null?void 0:b.data)==null?void 0:v1.features)==null?void 0:Q1[0])||(b==null?void 0:b.feature)||null,m2=(C2==null?void 0:C2.properties)||B||{},T3=g1((C2==null?void 0:C2.geometry)||m2.geometry||m2.geom||m2.the_geom||m2.theGeom||m2.wkt||m2.shape),x3=(C2==null?void 0:C2.id)||m2.id||m2.gid||m2.objectid||m2.OBJECTID||(b==null?void 0:b.name);return{type:"Feature",id:x3,properties:m2,feature:{type:"Feature",id:x3,properties:m2,geometry:T3},geometry:T3,layer:q,lngLat:b2}}function d1(b){var b2;const B=(b2=b==null?void 0:b.data)!=null?b2:b;return{type:"FeatureCollection",features:(Array.isArray(B)?B:(B==null?void 0:B.rows)||(B==null?void 0:B.list)||(B==null?void 0:B.records)||(B==null?void 0:B.data)||[]).map((C2,m2)=>{var T3;return{type:"Feature",id:(T3=C2==null?void 0:C2.id)!=null?T3:m2,properties:B2({},C2),geometry:g1(C2==null?void 0:C2.geometry)||D(O1(C2))}}).filter(C2=>C2.geometry)}}function O1(b={}){return b.wkt||b.WKT||b.geom||b.the_geom||b.theGeom||b.shape||b.Shape}function V1(b,B,q){((b==null?void 0:b.type)==="FeatureCollection"?b.features:(b==null?void 0:b.type)==="Feature"?[b]:[]).filter(C2=>C2==null?void 0:C2.geometry).filter(C2=>$2(C2.properties||{},B)).map(C2=>I0(C2,B)).filter(Boolean).forEach(C2=>Z1(C2,B,q))}function I0(b,B){const q=g1(b==null?void 0:b.geometry),b2=(B==null?void 0:B.clipToHongyuanBoundary)===!0,C2=F0(B);if(!q||!["Polygon","MultiPolygon"].includes(q.type)||!b2&&!C2)return b;let m2=q.type==="Polygon"?[q.coordinates]:q.coordinates;try{b2&&a.length&&(m2=ti.intersection(m2,a)),C2&&m2.length&&(m2=ti.intersection(m2,[O0(C2)]))}catch(T3){return console.warn("[cesium-map] vector layer clipping failed",B==null?void 0:B.key,T3),b}return m2.length?t3(B2({},b),{geometry:{type:"MultiPolygon",coordinates:m2}}):null}function F0(b){if(!(b!=null&&b.clipBounds)||b.clipToLayerBounds===!1)return null;const B=b.clipBounds,q=Math.max(Number(B.west),J1.west),b2=Math.max(Number(B.south),J1.south),C2=Math.min(Number(B.east),J1.east),m2=Math.min(Number(B.north),J1.north);return![q,b2,C2,m2].every(Number.isFinite)||q>=C2||b2>=m2?null:{west:q,south:b2,east:C2,north:m2}}function O0(b){return[[[b.west,b.south],[b.east,b.south],[b.east,b.north],[b.west,b.north],[b.west,b.south]]]}function Z1(b,B,q,b2={}){const C2=g1(b.geometry);if(!C2)return[];const m2=H1(B,b.properties||{},b2),T3=Y0(C2,b,B,m2);return q.push(...T3),T3}function Y0(b,B,q,b2){const C2=window.Cesium,m2=[],T3=x3=>{const K3=f.entities.add(x3);return K3.__hyFeature=B,K3.__hyLayer=q,m2.push(K3),K3};if(b.type==="Point"){const x3=k1(b.coordinates);return!x3||q.hidePointFeatures||q.hidePointMarkers||T3({position:C2.Cartesian3.fromDegrees(x3[0],x3[1],8),point:{pixelSize:b2.pointSize,color:b2.fill,outlineColor:b2.stroke,outlineWidth:2,heightReference:C2.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:q.showPointLabels?Re(B):void 0}),m2}if(b.type==="MultiPoint")return b.coordinates.forEach(x3=>m2.push(...Y0({type:"Point",coordinates:x3},B,q,b2))),m2;if(b.type==="LineString"){const x3=B3(b.coordinates);return x3.length<2||T3({polyline:{positions:x3,width:b2.lineWidth,material:new C2.PolylineGlowMaterialProperty({glowPower:.16,color:b2.stroke}),clampToGround:!0}}),m2}if(b.type==="MultiLineString")return b.coordinates.forEach(x3=>m2.push(...Y0({type:"LineString",coordinates:x3},B,q,b2))),m2;if(b.type==="Polygon"){const x3=de(b.coordinates);return x3&&(T3({polygon:{hierarchy:x3,height:0,heightReference:C2.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,material:b2.fill,outline:!1,classificationType:C2.ClassificationType.BOTH}}),d0(b.coordinates,B,q,b2,m2)),m2}return b.type==="MultiPolygon"&&b.coordinates.forEach(x3=>m2.push(...Y0({type:"Polygon",coordinates:x3},B,q,b2))),m2}function d0(b,B,q,b2,C2){b.forEach(m2=>{const T3=B3(m2);if(T3.length<2)return;const x3=f.entities.add({polyline:{positions:T3,width:b2.lineWidth,material:b2.stroke,depthFailMaterial:b2.stroke,clampToGround:!0}});x3.__hyFeature=B,x3.__hyLayer=q,C2.push(x3)})}function de(b=[]){const B=window.Cesium,q=B3(b[0]||[]);if(q.length<3)return null;const b2=b.slice(1).map(C2=>{const m2=B3(C2);return m2.length>=3?new B.PolygonHierarchy(m2):null}).filter(Boolean);return new B.PolygonHierarchy(q,b2)}function Re(b,B){const q=window.Cesium,b2=b.properties||{},C2=b2.name||b2.project_name||b2.title||"";if(C2)return{text:String(C2),font:"600 14px PingFang SC, Microsoft YaHei, sans-serif",fillColor:q.Color.WHITE,outlineColor:q.Color.fromCssColorString("#03121e"),outlineWidth:3,style:q.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new q.Cartesian2(0,-22),heightReference:q.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,distanceDisplayCondition:new q.DistanceDisplayCondition(0,15e4)}}function H1(b,B,q={}){var L1,n0,K0,U,t2,N2,Y2,g3,W3;const b2=window.Cesium,C2=d2(b,B),m2=r1(b.opacity,.84),T3=q.fillColor||(C2==null?void 0:C2.fillColor)||b.fillColor||b.color||"#24F6C4",x3=q.strokeColor||(C2==null?void 0:C2.strokeColor)||b.strokeColor||b.color||"#B7FFF2",K3=(K0=(n0=(L1=q.fillAlpha)!=null?L1:C2==null?void 0:C2.fillAlpha)!=null?n0:b.fillAlpha)!=null?K0:Math.min(.34,m2*.34),v1=(N2=(t2=(U=q.strokeAlpha)!=null?U:C2==null?void 0:C2.strokeAlpha)!=null?t2:b.strokeAlpha)!=null?N2:Math.max(.72,m2),Q1=(W3=(g3=(Y2=q.lineWidth)!=null?Y2:C2==null?void 0:C2.lineWidth)!=null?g3:b.lineWidth)!=null?W3:Math.max(1.6,1.8*Number(r.adminBoundaryLineScale||1));return{fill:M3(b2,T3,K3),stroke:M3(b2,x3,v1),lineWidth:Q1,pointSize:q.pointSize||12}}function M3(b,B,q){try{return b.Color.fromCssColorString(String(B||"#24F6C4")).withAlpha(r1(q,1))}catch(b2){return b.Color.CYAN.withAlpha(r1(q,1))}}function d2(b,B){var q;return b!=null&&b.activeLegend?b.activeLegend:((b==null?void 0:b.legends)||[]).find(b2=>z3(B,b2))||((q=b==null?void 0:b.legends)==null?void 0:q[0])}function $2(b,B){const q=B==null?void 0:B.activeLegend;return q?z3(b,q):!0}function z3(b,B={}){return B.match?d3(b,B.match):Array.isArray(B.matches)?B.matches.some(q=>d3(b,q)):!0}function d3(b,B={}){var q,b2;return String((q=b==null?void 0:b[B.field])!=null?q:"")===String((b2=B.value)!=null?b2:"")}function $3(){if(!f)return;V2(Q2);const b=window.Cesium,B={stroke:b.Color.fromCssColorString("#B8FFF8").withAlpha(.82),fill:b.Color.TRANSPARENT,lineWidth:1.2,pointSize:0};X3(Ii.features||[]).forEach(q=>{var m2;const b2=y1(q.points,Sx);if(b2.length<2)return;const C2=f.entities.add({polyline:{positions:b2,width:B.lineWidth,material:B.stroke,depthFailMaterial:B.stroke,clampToGround:!1}});C2.__hyBoundaryRole="township",C2.__hyTownName=((m2=q.townNames)==null?void 0:m2[0])||"",Q2.push(C2)}),f.scene.requestRender()}function X3(b=[]){const B=new Map;b.forEach(b2=>{var T3;const C2=String(((T3=b2==null?void 0:b2.properties)==null?void 0:T3.name)||"").trim(),m2=g1(b2==null?void 0:b2.geometry);P2(m2).forEach(x3=>{const K3=((x3==null?void 0:x3[0])||[]).map(k1).filter(Boolean);for(let v1=0;v1t3(B2({},b2),{townNames:Array.from(b2.townNames)})).filter(b2=>b2.count>1&&b2.townNames.length>1);return w1(q)}function P2(b){return b!=null&&b.coordinates?b.type==="Polygon"?[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}function n3(b,B){const q=s3(b),b2=s3(B);return q{C2.points.forEach(T3=>{const x3=s3(T3),K3=B.get(x3)||[];K3.push(m2),B.set(x3,K3)})});const q=new Set,b2=[];return b.forEach((C2,m2)=>{if(q.has(m2))return;q.add(m2);const T3=[C2.points[0],C2.points[1]];f0(T3,B,b,q,!0),f0(T3,B,b,q,!1),b2.push({points:T3,townNames:C2.townNames})}),b2}function f0(b,B,q,b2,C2){for(;b.length;){const m2=C2?b[0]:b[b.length-1],T3=s3(m2),x3=(B.get(T3)||[]).filter(K0=>!b2.has(K0));if(x3.length!==1)return;const K3=x3[0],v1=q[K3];b2.add(K3);const[Q1,L1]=v1.points,n0=s3(Q1)===T3?L1:Q1;C2?b.unshift(n0):b.push(n0)}}function g0(){if(!f||!a.length)return;V2(J3);const b=window.Cesium;B0(b),a.forEach(B=>{const b2=(Array.isArray(B==null?void 0:B[0])?B[0]:[]).map(k1).filter(Boolean);if(b2.length<3)return;const C2=de(B);if(C2){const x3=f.entities.add({polygon:{hierarchy:C2,material:b.Color.fromCssColorString("#20EAF2").withAlpha(.026),outline:!1,classificationType:b.ClassificationType.BOTH}});J3.push(x3)}const m2=f.entities.add({polyline:{positions:y1(b2,ws),width:4.8,material:new b.PolylineGlowMaterialProperty({glowPower:.16,color:b.Color.fromCssColorString("#78FFF7").withAlpha(.48)}),depthFailMaterial:b.Color.fromCssColorString("#78FFF7").withAlpha(.32),clampToGround:!1,zIndex:8}});m2.__hyBoundaryRole="county-halo";const T3=f.entities.add({polyline:{positions:y1(b2,ws+80),width:1.9,material:b.Color.fromCssColorString("#F2FFFB").withAlpha(.98),depthFailMaterial:b.Color.fromCssColorString("#F2FFFB").withAlpha(.9),clampToGround:!1,zIndex:9}});T3.__hyBoundaryRole="county-outline",J3.push(m2,T3)}),f.scene.requestRender()}function B0(b){const B=p0();let q=[];try{q=ti.difference([B],a)}catch(b2){console.warn("[cesium-map] county outside mask failed",b2),q=[B]}q.forEach(b2=>{const C2=de(b2);if(!C2)return;const m2=f.entities.add({polygon:{hierarchy:C2,material:b.Color.fromCssColorString("#020A10").withAlpha(.52),outline:!1,perPositionHeight:!1,heightReference:b.HeightReference.CLAMP_TO_GROUND,classificationType:b.ClassificationType.BOTH,zIndex:1}});J3.push(m2)})}function p0(){const b=J1.west-_f,B=J1.south-xf,q=J1.east+_f,b2=J1.north+xf;return[[[b,B],[q,B],[q,b2],[b,b2],[b,B]]]}function ve(b,B=!1){const q=(Array.isArray(b)?b:[b]).map(Z0=>String(Z0||"").trim()).filter(Boolean).slice(0,2),b2=`v15-centered-map-badge:${B?"h":"n"}:${q.join("|")}`;if(Z3.has(b2))return Z3.get(b2);const C2=document.createElement("canvas"),m2=C2.getContext("2d");if(!m2)return{image:"",width:1,height:1};const T3=Math.min(4,Math.max(3,window.devicePixelRatio||2)),x3="700 14px Microsoft YaHei, PingFang SC, sans-serif",K3="700 9px Microsoft YaHei, PingFang SC, sans-serif",v1="800 14px Microsoft YaHei, PingFang SC, sans-serif",Q1="600 9px Microsoft YaHei, PingFang SC, sans-serif",L1=xe(q[1]);m2.font=x3;const n0=Math.ceil(m2.measureText(q[0]||"").width);let K0=0;L1&&(m2.font=K3,K0+=Math.ceil(m2.measureText(L1.metric).width),m2.font=v1,K0+=Math.ceil(m2.measureText(L1.value).width),m2.font=Q1,K0+=Math.ceil(m2.measureText(L1.unit).width),K0+=L1.metric?5:0,K0+=L1.unit?4:0);const U=Math.min(118,Math.max(L1?96:62,n0+20,K0+20)),t2=L1?40:25,N2=L1?5:0,Y2=6,g3=U+Y2*2,W3=t2+N2+Y2*2;C2.width=Math.ceil(g3*T3),C2.height=Math.ceil(W3*T3),C2.style.width=`${g3}px`,C2.style.height=`${W3}px`,m2.scale(T3,T3),m2.clearRect(0,0,g3,W3);const l1=Y2,c1=Y2,z1=c1+t2,w0=m2.createLinearGradient(l1,c1,l1,z1);w0.addColorStop(0,B?"rgba(8, 58, 70, 0.9)":"rgba(6, 45, 57, 0.78)"),w0.addColorStop(.55,B?"rgba(4, 34, 46, 0.88)":"rgba(3, 29, 41, 0.76)"),w0.addColorStop(1,B?"rgba(2, 22, 32, 0.88)":"rgba(2, 18, 29, 0.78)"),m2.save(),m2.shadowColor="rgba(48, 220, 255, 0.13)",m2.shadowBlur=6,m2.fillStyle=w0,Te(m2,l1,c1,U,t2),m2.fill(),m2.restore(),m2.save(),m2.globalCompositeOperation="lighter";const A0=m2.createLinearGradient(l1,c1,l1+U,c1);A0.addColorStop(0,"rgba(42, 210, 255, 0)"),A0.addColorStop(.5,B?"rgba(98, 246, 255, 0.34)":"rgba(98, 246, 255, 0.26)"),A0.addColorStop(1,"rgba(42, 210, 255, 0)"),m2.strokeStyle=A0,m2.lineWidth=1,m2.beginPath(),m2.moveTo(l1+10,c1+2),m2.lineTo(l1+U-10,c1+2),m2.stroke(),m2.restore(),m2.save(),m2.strokeStyle=B?"rgba(126, 251, 246, 0.58)":"rgba(126, 251, 246, 0.46)",m2.lineWidth=.9,Te(m2,l1+.5,c1+.5,U-1,t2-1),m2.stroke(),m2.restore();const K1=l1+U/2;N2>0&&(m2.save(),m2.shadowColor="rgba(48, 220, 255, 0.2)",m2.shadowBlur=5,m2.beginPath(),m2.moveTo(K1-5,z1-1),m2.lineTo(K1+5,z1-1),m2.lineTo(K1,z1+N2),m2.closePath(),m2.fillStyle=B?"rgba(4, 42, 52, 0.98)":"rgba(3, 31, 43, 0.96)",m2.fill(),m2.strokeStyle=B?"rgba(126, 251, 246, 0.48)":"rgba(126, 251, 246, 0.34)",m2.lineWidth=.8,m2.stroke(),m2.restore()),m2.save(),m2.textAlign="center",m2.textBaseline="alphabetic",m2.fillStyle="rgba(255, 255, 255, 0.98)",m2.strokeStyle="rgba(0, 8, 14, 0.98)",m2.lineJoin="round",m2.shadowColor="rgba(0, 8, 14, 0.72)",m2.shadowBlur=0,m2.font=x3,m2.lineWidth=1.6;const $0=c1+(L1?12.5:t2/2);if(u0(m2,q[0]||"",K1,$0),L1){const Z0=c1+29.5;let St=K1-K0/2;m2.textAlign="left",m2.shadowBlur=0,m2.font=K3,m2.lineWidth=1.2,m2.fillStyle="rgba(126, 251, 246, 0.9)",L1.metric&&(u0(m2,L1.metric,St,Z0,{stroke:!1}),m2.font=K3,St+=Math.ceil(m2.measureText(L1.metric).width)+5),m2.font=v1,m2.lineWidth=1.4,m2.fillStyle="#FFFFFF",m2.shadowColor="rgba(0, 8, 14, 0.72)",m2.shadowBlur=0,u0(m2,L1.value,St,Z0),m2.shadowBlur=0,St+=Math.ceil(m2.measureText(L1.value).width)+(L1.unit?4:0),L1.unit&&(m2.font=Q1,m2.fillStyle="rgba(232, 252, 255, 0.76)",u0(m2,L1.unit,St,Z0+1,{stroke:!1}))}m2.restore();const j0={image:C2.toDataURL("image/png"),width:g3,height:W3};return Z3.set(b2,j0),j0}function u0(b,B,q,b2,C2={}){const m2=b.measureText(B),T3=be(b.font),x3=Number(m2.actualBoundingBoxAscent)||T3*.74,K3=Number(m2.actualBoundingBoxDescent)||T3*.18,v1=b2+(x3-K3)/2;C2.stroke!==!1&&b.lineWidth>0&&b.strokeText(B,q,v1),b.fillText(B,q,v1)}function be(b){const B=String(b||"").match(/(\d+(?:\.\d+)?)px/);return B?Number(B[1]):14}function xe(b){const B=String(b||"").trim();if(!B)return null;const q=B.match(/^(.+?)\s+([+-]?\d[\d,.]*)(.*)$/u);if(q)return{metric:q[1].trim(),value:q[2].trim(),unit:q[3].trim()};const b2=B.match(/^(.*?)([+-]?\d[\d,.]*)([\u4e00-\u9fa5A-Za-z/%]+)?$/u);return b2?{metric:b2[1].trim(),value:b2[2].trim(),unit:(b2[3]||"").trim()}:{metric:"",value:B,unit:""}}function Te(b,B,q,b2,C2){const m2=Math.min(7,b2*.12,C2*.34);b.beginPath(),b.moveTo(B+m2,q),b.lineTo(B+b2-m2,q),b.lineTo(B+b2,q+m2),b.lineTo(B+b2,q+C2-m2),b.lineTo(B+b2-m2,q+C2),b.lineTo(B+m2,q+C2),b.lineTo(B,q+C2-m2),b.lineTo(B,q+m2),b.closePath()}function Fe(){var T3;if(!f)return;V2(c3);const b=window.Cesium,B=r.mapRanking||{},q=Array.isArray(B.rows)?B.rows:[],b2=new Map(q.map(x3=>[c0(x3.name),x3])),C2=B.showTownNames!==!1&&B.hideTownNames!==!0,m2=(T3=B.hideTownLabelStats)!=null?T3:r.hideTownLabelStats;C2&&P9.forEach(x3=>{const K3=b2.get(c0(x3.name)),v1=[x3.name];if(!m2&&K3&&B.showMapLabels!==!1){const U=B.metricLabel?`${B.metricLabel} `:"";v1.push(`${U}${t0(K3.value)}${K3.unit||B.unit||""}`)}const Q1=k1(x3.center);if(!Q1)return;const L1=ve(v1,!!K3),n0=!!(m2||v1.length===1),K0=f.entities.add({position:b.Cartesian3.fromDegrees(Q1[0],Q1[1],18),billboard:{image:L1.image,width:L1.width,height:L1.height,scale:1,verticalOrigin:n0?b.VerticalOrigin.CENTER:b.VerticalOrigin.BOTTOM,horizontalOrigin:b.HorizontalOrigin.CENTER,pixelOffset:n0?new b.Cartesian2(0,0):new b.Cartesian2(0,-4),heightReference:b.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new b.NearFarScalar(2e4,.94,36e4,.8),distanceDisplayCondition:new b.DistanceDisplayCondition(0,42e4)}});K0.__hyTownName=x3.name,K0.__hyRankingRow=K3||null,c3.push(K0)}),q.filter(x3=>Z(x3)).forEach(x3=>{const K3=Z(x3),v1=f.entities.add({position:b.Cartesian3.fromDegrees(K3[0],K3[1],16),point:{pixelSize:9,color:b.Color.fromCssColorString("#35F3FF"),outlineColor:b.Color.WHITE,outlineWidth:2,heightReference:b.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:B.showPointMarkers===!1?void 0:{text:String(x3.name||""),font:"600 12px PingFang SC, Microsoft YaHei, sans-serif",fillColor:b.Color.WHITE,outlineColor:b.Color.fromCssColorString("#03121e"),outlineWidth:3,style:b.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new b.Cartesian2(0,-18),heightReference:b.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}});v1.__hyTownName=x3.name,v1.__hyRankingRow=x3,c3.push(v1)}),f.scene.requestRender()}function We(){if(!f)return;const b=window.Cesium;g=new b.ScreenSpaceEventHandler(f.scene.canvas),g.setInputAction(B=>L3(this,null,function*(){var Q1,L1,n0;const q=Ze(B.position),b2=N(q);if(!b2)return;const C2=b.Cartographic.fromCartesian(b2),m2={lng:b.Math.toDegrees(C2.longitude),lat:b.Math.toDegrees(C2.latitude),height:C2.height},T3=F2(q);if(v2){j3(m2);return}o("map-click",{lngLat:m2,screen:T3,overlayLayer:p.value[0]||null});const x3=f.scene.pick(q),K3=x3==null?void 0:x3.id;if(r.enableTownPolygonPick&&(K3!=null&&K3.__hyTownName)&&c2(K3.__hyTownName))return;if(r.enableTownPolygonPick){const K0=p2(m2);if(K0&&c2((Q1=K0.properties)==null?void 0:Q1.name))return}const v1=T1(m2,T3)||K3;if(v1!=null&&v1.__hyFeature){_(v1),o("feature-info",{feature:{id:v1.__hyFeature.id,properties:v1.__hyFeature.properties||{},feature:v1.__hyFeature,geometry:v1.__hyFeature.geometry||null,layer:v1.__hyLayer,lngLat:m2},screen:T3});return}if(r.enableImageryFeaturePick&&S2.length){o("feature-loading",!0);try{const K0=f.camera.getPickRay(q),U=yield f.imageryLayers.pickImageryLayerFeatures(K0,f.scene),t2=U==null?void 0:U[0];if(t2){const N2=S2.find(z1=>{var w0;return z1.imageryProvider===((w0=t2.imageryLayer)==null?void 0:w0.imageryProvider)})||S2[S2.length-1],Y2=(N2==null?void 0:N2.__hyLayer)||p.value[0],g3=t2.properties||((L1=t2.data)==null?void 0:L1.properties)||t2.data||{},l1=w3(t2,g3,Y2,m2);s2(l1)||d(),o("feature-info",{feature:{id:l1.id||g3.id||g3.fid||t2.name,properties:l1.properties||g3,feature:l1.feature||t2,geometry:l1.geometry||((n0=l1.feature)==null?void 0:n0.geometry)||null,layer:Y2,lngLat:m2},screen:T3})}else d(),o("feature-info",{feature:null,screen:T3})}catch(K0){d(),o("feature-info",{feature:null,screen:T3})}finally{o("feature-loading",!1)}}}),b.ScreenSpaceEventType.LEFT_CLICK)}function Ze(b){var n0,K0,U,t2;if(!b||!((n0=f==null?void 0:f.scene)!=null&&n0.canvas))return b;const B=window.Cesium,q=f.scene.canvas,b2=(K0=q.getBoundingClientRect)==null?void 0:K0.call(q),C2=Number(b2==null?void 0:b2.width)||0,m2=Number(b2==null?void 0:b2.height)||0,T3=Number(q.clientWidth||((U=s.value)==null?void 0:U.clientWidth))||C2||1,x3=Number(q.clientHeight||((t2=s.value)==null?void 0:t2.clientHeight))||m2||1,K3=Number(b.x),v1=Number(b.y);if(!Number.isFinite(K3)||!Number.isFinite(v1)||!C2||!m2)return b;const Q1=T3/C2,L1=x3/m2;return Math.abs(Q1-1)<.001&&Math.abs(L1-1)<.001?b:new B.Cartesian2(K3*Q1,v1*L1)}function F2(b){var v1,Q1,L1,n0;if(!b||!((v1=f==null?void 0:f.scene)!=null&&v1.canvas))return null;const B=f.scene.canvas,q=(Q1=B.getBoundingClientRect)==null?void 0:Q1.call(B),b2=Number(q==null?void 0:q.width)||0,C2=Number(q==null?void 0:q.height)||0,m2=Number(B.clientWidth||((L1=s.value)==null?void 0:L1.clientWidth))||b2||1,T3=Number(B.clientHeight||((n0=s.value)==null?void 0:n0.clientHeight))||C2||1,x3=Number(b.x),K3=Number(b.y);return!Number.isFinite(x3)||!Number.isFinite(K3)||!q?null:{x:(Number(q.left)||0)+x3*(b2/m2),y:(Number(q.top)||0)+K3*(C2/T3)}}function N(b){if(!f)return null;const B=f.camera.getPickRay(b);return B?f.scene.globe.pick(B,f.scene):null}function _(b){var B,q,b2,C2,m2;d(),i2=b,b.point&&(b.__hyOriginalPointSize=b.point.pixelSize,b.point.pixelSize=18),(B=b.__hyFeature)!=null&&B.geometry&&["Polygon","MultiPolygon","LineString","MultiLineString"].includes(b.__hyFeature.geometry.type)&&h(b.__hyFeature,{townName:b.__hyTownName||((b2=(q=b.__hyFeature)==null?void 0:q.properties)==null?void 0:b2.name),mode:"feature"}),(m2=(C2=f==null?void 0:f.scene)==null?void 0:C2.requestRender)==null||m2.call(C2)}function d(){var b,B;i2!=null&&i2.point&&i2.__hyOriginalPointSize&&(i2.point.pixelSize=i2.__hyOriginalPointSize),i2=null,V2(l3),w(),(B=(b=f==null?void 0:f.scene)==null?void 0:b.requestRender)==null||B.call(b)}function h(b,B={}){var Q1,L1,n0,K0;if(!f||!(b!=null&&b.geometry))return[];const q=y({append:B.append===!0});if(!q)return[];const b2=window.Cesium,C2=B.mode==="town",m2=B.highlightTone==="white"||B.mode==="white",T3=C2?"#30DCFF":m2?"#FFFFFF":"#FF2D2D",x3=C2?"#F2FFFF":m2?"#FFFFFF":"#FF2D2D",K3={fill:b2.Color.fromCssColorString(T3).withAlpha((Q1=B.fillAlpha)!=null?Q1:C2?.16:m2?.035:.16),stroke:b2.Color.fromCssColorString(x3).withAlpha((L1=B.strokeAlpha)!=null?L1:m2?.9:.98),lineWidth:(n0=B.lineWidth)!=null?n0:C2?4.2:m2?3.8:5.2,pointSize:C2?0:(K0=B.pointSize)!=null?K0:14},v1=k(b.geometry,b,q.entities,K3);return v1.forEach(U=>{var t2;U.__hyFeature=null,U.__hyLayer=null,U.__hyTownName=B.townName||((t2=b.properties)==null?void 0:t2.name)||"",U.__hySelectedOverlay=!0}),l3.push(...v1),x(q),v1}function y(b={}){return!f||!window.Cesium?null:(b.append&&b3||(w(),b3=new window.Cesium.CustomDataSource("selected-feature-overlay"),f.dataSources.add(b3),x(b3)),b3)}function w(){var B,q;if(!(f!=null&&f.dataSources)){b3=null;return}Array.from(new Set([b3,...((q=(B=f.dataSources).getByName)==null?void 0:q.call(B,"selected-feature-overlay"))||[]].filter(Boolean))).forEach(b2=>{try{f.dataSources.remove(b2,!0)}catch(C2){console.warn("[cesium-map] remove selected overlay failed",C2)}}),b3=null,l3=[]}function x(b){var B,q;if(!(!(f!=null&&f.dataSources)||!b))try{if(f.dataSources.raiseToTop){f.dataSources.raiseToTop(b);return}for(;((q=(B=f.dataSources).indexOf)==null?void 0:q.call(B,b)){const K3=q.add(x3);return K3.__hyFeature=B,m2.push(K3),K3};if(b.type==="Point"){const x3=k1(b.coordinates);return!x3||b2.pointSize<=0||T3({position:C2.Cartesian3.fromDegrees(x3[0],x3[1]),point:{show:!0,color:b2.fill,pixelSize:b2.pointSize,outlineColor:b2.stroke,outlineWidth:3,heightReference:C2.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),m2}return b.type==="MultiPoint"?(b.coordinates.forEach(x3=>{m2.push(...k({type:"Point",coordinates:x3},B,q,b2))}),m2):b.type==="LineString"?(e2(b.coordinates,B,q,b2,m2),m2):b.type==="MultiLineString"?(b.coordinates.forEach(x3=>{e2(x3,B,q,b2,m2)}),m2):b.type==="Polygon"?(a2(b.coordinates,B,q,b2,m2),m2):(b.type==="MultiPolygon"&&b.coordinates.forEach(x3=>{a2(x3,B,q,b2,m2)}),m2)}function a2(b,B,q,b2,C2){const m2=window.Cesium,T3=de(b);if(!T3)return;const x3=q.add({polygon:{hierarchy:T3,height:0,heightReference:m2.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,clampToGround:!0,material:b2.fill,outline:!1,classificationType:m2.ClassificationType.BOTH,zIndex:999}});x3.__hyFeature=B,C2.push(x3),b.forEach(K3=>e2(K3,B,q,b2,C2))}function e2(b,B,q,b2,C2){const m2=window.Cesium,T3=B3(b);if(T3.length<2)return;const x3=q.add({polyline:{positions:T3,width:b2.lineWidth,material:b2.stroke,depthFailMaterial:b2.stroke,heightReference:m2.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,classificationType:m2.ClassificationType.BOTH,zIndex:1e3}});x3.__hyFeature=B,C2.push(x3)}function s2(b,B={}){var m2,T3,x3,K3,v1;if(!f||!b)return!1;const q=b.properties||((m2=b.feature)==null?void 0:m2.properties)||(typeof b=="object"?b:{}),b2=g1(b.geometry||((T3=b.feature)==null?void 0:T3.geometry)||q.geometry||q.geom||q.wkt||b);if(!b2)return!1;d();const C2={type:"Feature",id:b.id||((x3=b.feature)==null?void 0:x3.id)||q.id,properties:q,geometry:b2};return h(C2,B2({mode:"feature"},B)),(v1=(K3=f==null?void 0:f.scene)==null?void 0:K3.requestRender)==null||v1.call(K3),l3.length>0}function J(b){const B=c0(b);return B&&(Ii.features||[]).find(q=>{var b2;return c0((b2=q==null?void 0:q.properties)==null?void 0:b2.name)===B})||null}function H(){var b,B;return((b=r.mapRanking)==null?void 0:b.scope)==="town"&&Array.isArray((B=r.mapRanking)==null?void 0:B.rows)&&r.mapRanking.rows.length>0}function R2(b){var q;if(!H())return!1;const B=c0(b);return(((q=r.mapRanking)==null?void 0:q.rows)||[]).some(b2=>c0(b2.name)===B)}function p2(b){return H()&&(Ii.features||[]).find(B=>{var b2;const q=(b2=B==null?void 0:B.properties)==null?void 0:b2.name;return R2(q)&&_2(b,g1(B==null?void 0:B.geometry))})||null}function c2(b,B={}){var b2,C2,m2,T3;if(!H()||!R2(b))return!1;const q=J(b);return q?(d(),h(q,{mode:"town",townName:((b2=q.properties)==null?void 0:b2.name)||b}),B.emitFeatureInfo!==!1&&o("feature-info",{feature:null}),B.emitStatus!==!1&&o("layer-status",{type:"success",text:`已选中${((C2=q.properties)==null?void 0:C2.name)||b}`}),(T3=(m2=f==null?void 0:f.scene)==null?void 0:m2.requestRender)==null||T3.call(m2),!0):!1}function f2(b,B={}){const q=P9.find(C2=>c0(C2.name)===c0(b)),b2=k1(q==null?void 0:q.center);return b2?(B.select&&c2(b,{emitFeatureInfo:!1,emitStatus:!1}),$1(b2,42e3),{screen:v3(b2)}):null}function O2(b={}){var T3,x3;const B=X1(b),q=q3(K3=>h0(K3,B));if(!q.length)return null;const b2=Ve(q),C2=se(b2);d(),i2=q[0],i2!=null&&i2.point&&(i2.__hyOriginalPointSize=i2.point.pixelSize,i2.point.pixelSize=18),C2.forEach((K3,v1)=>{h(K3,{mode:"feature",highlightTone:B.highlightTone,append:v1>0})});const m2=u3(b2);return m2?W1(m2,.9):f.flyTo(q[0],{duration:.9,offset:L2(18e3)}),(x3=(T3=f==null?void 0:f.scene)==null?void 0:T3.requestRender)==null||x3.call(T3),{entity:q[0],entities:q,feature:b2[0]||q[0].__hyFeature,features:b2,highlightFeatures:C2,screen:E2(C2.length?C2:b2)}}function o2(b={}){const B=Z(b);let q=A3(b2=>l0(b2,b));return q?(_(q),f.flyTo(q,{duration:.9,offset:L2(16e3)})):B&&$1(B,16e3),{feature:(q==null?void 0:q.__hyFeature)||null,screen:D2(b)}}function T(b={}){const B=A3(q=>l0(q,b));return B?(_(B),f.flyTo(B,{duration:.9,offset:L2(18e3)}),{feature:B.__hyFeature,screen:j(B.__hyFeature)}):null}function j(b){var q;const B=G(g1((b==null?void 0:b.geometry)||((q=b==null?void 0:b.feature)==null?void 0:q.geometry)));return B?v3(B):null}function K(b){return E2([b])||j(b)}function E2(b=[]){const B=[];if((Array.isArray(b)?b:[b]).forEach(C2=>{var K3,v1;const m2=(C2==null?void 0:C2.properties)||((K3=C2==null?void 0:C2.feature)==null?void 0:K3.properties)||{},T3=g1((C2==null?void 0:C2.geometry)||((v1=C2==null?void 0:C2.feature)==null?void 0:v1.geometry)||m2.geometry||m2.geom||m2.wkt||m2.geo||m2.the_geom||m2.geometryWkt||m2.geometry_wkt||m2.shape);if(!T3){const Q1=j(C2);Q1&&B.push(Q1);return}const x3=[];T2(T3.coordinates,x3),B.push(...x3.map(v3).filter(Boolean))}),!B.length)return null;const q=B.map(C2=>Number(C2.x)).filter(Number.isFinite),b2=B.map(C2=>Number(C2.y)).filter(Number.isFinite);return!q.length||!b2.length?null:{x:(Math.min(...q)+Math.max(...q))/2,y:Math.min(...b2)}}function D2(b={}){var C2,m2;const B=Z(b);if(B)return v3(B);const q=A3(T3=>l0(T3,b)),b2=(m2=(C2=q==null?void 0:q.position)==null?void 0:C2.getValue)==null?void 0:m2.call(C2,window.Cesium.JulianDate.now());return b2?toLogicalScreen(window.Cesium.SceneTransforms.wgs84ToWindowCoordinates(f.scene,b2)):null}function Z2(b={}){var T3,x3;q2();const B=Le(b.grasslands||b),q=b.highlightTone==="white",b2=q?null:{fillColor:"#FF3B30",strokeColor:"#FF3B30",fillAlpha:.1,strokeAlpha:.68,lineWidth:12},C2=q?{fillColor:"#F7FFFF",strokeColor:"#F7FFFF",fillAlpha:.025,strokeAlpha:.9,lineWidth:3.8}:{fillColor:"#FF2D2D",strokeColor:"#FFE1E1",fillAlpha:.3,strokeAlpha:1,lineWidth:6.2};b.locateOnly||(B.forEach(K3=>{b2&&Z1(K3,{key:"pasture-focus-glow",name:b.name||"牧场高亮"},p3,b2),Z1(K3,{key:"pasture-focus",name:b.name||"牧场高亮"},p3,C2)}),(Array.isArray(b.yakMarks)?b.yakMarks:[]).forEach((K3,v1)=>{const Q1=Z(K3);Q1&&Z1({type:"Feature",id:K3.id||v1,properties:B2({},K3),geometry:{type:"Point",coordinates:Q1}},{key:"pasture-focus-yak",name:"牦牛识别"},p3,{fillColor:"#FFCB45",strokeColor:"#FFF4B8",pointSize:11})}));const m2=u3(B);return m2&&W1(m2,.9),(x3=(T3=f==null?void 0:f.scene)==null?void 0:T3.requestRender)==null||x3.call(T3),!!B.length}function q2(){var b,B;V2(p3),(B=(b=f==null?void 0:f.scene)==null?void 0:b.requestRender)==null||B.call(b)}function f3(){d()}function P3(b){v2=!!b,v2||(y2=[]),x1(),o("draw-boundary",{status:v2?"drawing":"clear",pointCount:y2.length,points:y2})}function j3(b){y2.push([b.lng,b.lat]),x1(),o("draw-boundary",{status:"drawing",pointCount:y2.length,points:y2})}function E3(){y2.pop(),x1(),o("draw-boundary",{status:"drawing",pointCount:y2.length,points:y2})}function C1(){if(y2.length<3)return null;const b=A1(),B=[...y2,y2[0]],q={type:"Feature",properties:{source:"drawn"},geometry:{type:"Polygon",coordinates:[B]}};return v2=!1,y2=[],V2(N3),Z1(q,{key:"analysis-boundary",name:"分析边界"},N3,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.12,strokeAlpha:1,lineWidth:3}),o("draw-boundary",{status:"complete",pointCount:0,points:[],feature:q}),S3(b),E(b),q}function P1(){var b,B;v2=!1,y2=[],V2(N3),V2(_3),o("draw-boundary",{status:"clear",pointCount:0,points:[]}),(B=(b=f==null?void 0:f.scene)==null?void 0:b.requestRender)==null||B.call(b)}function x1(){if(!f)return;const b=window.Cesium;V2(N3),y2.forEach(B=>{N3.push(f.entities.add({position:b.Cartesian3.fromDegrees(B[0],B[1],12),point:{pixelSize:10,color:b.Color.fromCssColorString("#24F6C4"),outlineColor:b.Color.WHITE,outlineWidth:2,heightReference:b.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}),y2.length>1&&N3.push(f.entities.add({polyline:{positions:B3(y2),width:3,material:b.Color.fromCssColorString("#24F6C4"),clampToGround:!0}})),f.scene.requestRender()}function I1(b={}){var C2,m2,T3,x3,K3,v1,Q1;const B=((C2=b.boundary)==null?void 0:C2.type)==="Feature"||(m2=b.boundary)!=null&&m2.geometry?b.boundary:null,q=b.preserveView===!0||((T3=B==null?void 0:B.properties)==null?void 0:T3.source)==="drawn",b2=q?A1():null;if(q&&((K3=(x3=f==null?void 0:f.camera)==null?void 0:x3.cancelFlight)==null||K3.call(x3)),V2(_3),B&&Z1(B,{key:"analysis-result-boundary"},_3,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.1,lineWidth:3}),(Array.isArray(b.matches)?b.matches:[]).forEach(L1=>{const n0=(L1==null?void 0:L1.type)==="Feature"?L1:(L1==null?void 0:L1.feature)||null;n0&&Z1(n0,{key:"analysis-result-feature"},_3,{fillColor:"#30DCFF",strokeColor:"#C9FBFF",fillAlpha:.1,lineWidth:2.6})}),q)S3(b2),E(b2);else{const L1=[B,...b.matches||[]].filter(Boolean),n0=u3(L1);n0&&W1(n0,.9)}(Q1=(v1=f==null?void 0:f.scene)==null?void 0:v1.requestRender)==null||Q1.call(v1)}function $1(b,B=22e3,q=.9){if(!f||!b)return;const b2=window.Cesium,C2=b2.Cartesian3.fromDegrees(b[0],b[1],3600);f.camera.flyToBoundingSphere(new b2.BoundingSphere(C2,1),{offset:L2(B),duration:q})}function W1(b,B=.9){if(!f||!b)return;const q=window.Cesium,b2=[(Number(b.west)+Number(b.east))/2,(Number(b.south)+Number(b.north))/2];if(!b2.every(Number.isFinite))return;const C2=Math.max(Math.abs(Number(b.east)-Number(b.west)),Math.abs(Number(b.north)-Number(b.south))),m2=Math.max(18e3,Math.min(16e4,C2*135e3)),T3=q.Cartesian3.fromDegrees(b2[0],b2[1],2600);f.camera.flyToBoundingSphere(new q.BoundingSphere(T3,1),{offset:L2(m2),duration:B})}function E0(b){if(!f||!b)return;const B=b.mapView||(b.cameraPosition?{cameraPosition:b.cameraPosition}:null);if(!B)return;const q=window.Cesium,b2=Number.isFinite(Number(B.duration))?Number(B.duration):.9,C2=k1(B.targetLngLat);if(C2){const m2=s1(r.initialZoom),T3=Number.isFinite(Number(B.distanceScale))?Number(B.distanceScale):1,x3=Math.max(18e3,Math.min(56e4,m2*T3)),K3=Number.isFinite(Number(B.targetHeight))?Number(B.targetHeight):2600,v1=Number.isFinite(Number(B.heading))?Number(B.heading):Cf,Q1=Number.isFinite(Number(B.pitch))?Number(B.pitch):Af,L1=q.Cartesian3.fromDegrees(C2[0],C2[1],K3);f.camera.flyToBoundingSphere(new q.BoundingSphere(L1,1),{offset:new q.HeadingPitchRange(q.Math.toRadians(v1),q.Math.toRadians(Q1),x3),duration:b2});return}B.bounds&&W1(B.bounds,b2)}function L2(b){const B=window.Cesium;return new B.HeadingPitchRange(B.Math.toRadians(Cf),B.Math.toRadians(Af),b)}function v3(b){if(!f||!b)return null;const B=window.Cesium,q=B.Cartesian3.fromDegrees(b[0],b[1],16);return F2(B.SceneTransforms.wgs84ToWindowCoordinates(f.scene,q))}function A3(b){return[...X2,...p3].find(B=>B.__hyFeature&&b(B.__hyFeature))||null}function q3(b){return[...X2,...p3].filter(B=>B.__hyFeature&&b(B.__hyFeature))}function T1(b,B){if(!Number.isFinite(b==null?void 0:b.lng)||!Number.isFinite(b==null?void 0:b.lat))return null;const q=je(X2),b2=q.map(m2=>{var T3;return{entity:m2,geometry:g1((T3=m2.__hyFeature)==null?void 0:T3.geometry)}}).filter(m2=>m2.geometry&&_2(b,m2.geometry)).sort((m2,T3)=>G2(m2.geometry)-G2(T3.geometry));if(b2.length)return b2[0].entity;const C2=q.map(m2=>{var T3;return{entity:m2,distance:h2(g1((T3=m2.__hyFeature)==null?void 0:T3.geometry),B)}}).filter(m2=>Number.isFinite(m2.distance)).sort((m2,T3)=>m2.distance-T3.distance)[0];return(C2==null?void 0:C2.distance)<=18?C2.entity:null}function l0(b,B={}){const q=(b==null?void 0:b.properties)||{},b2=[B.id,B.key,B.featureId,B.projectId].filter(v1=>v1!=null&&v1!=="").map(String),C2=[b.id,q.id,q.key,q.feature_id,q.project_id].filter(v1=>v1!=null&&v1!=="").map(String);if(b2.some(v1=>C2.includes(v1)))return!0;const m2=[B.name,B.fullName,B.projectName].filter(Boolean).map(String),T3=[q.name,q.fullName,q.project_name,q.projectName].filter(Boolean).map(String);if(m2.some(v1=>T3.includes(v1)))return!0;const x3=Z(B),K3=Z(t3(B2({},q),{geometry:b.geometry}));return!!(x3&&K3&&Math.abs(x3[0]-K3[0])<2e-5&&Math.abs(x3[1]-K3[1])<2e-5)}function X1(b={}){return b&&typeof b=="object"?b:{name:b,projectName:b,project_name:b}}function h0(b,B={}){if(l0(b,B))return!0;const q=(b==null?void 0:b.properties)||{},b2=y0([B.id,B.key,B.featureId,B.projectId,B.project_id]),C2=y0([b==null?void 0:b.id,q.id,q.key,q.feature_id,q.project_id,q.gid]);if(b2.some(x3=>C2.includes(x3)))return!0;const m2=y0([B.name,B.fullName,B.projectName,B.project_name,B.title]),T3=y0([q.name,q.fullName,q.project_name,q.projectName,q.title]);return m2.some(x3=>T3.includes(x3))}function y0(b=[]){const B=[];return b.forEach(q=>{if(q==null||q==="")return;const b2=String(q).trim();if(!b2)return;B.push(b2);const C2=b2.replace(/\s+/g,"");C2&&C2!==b2&&B.push(C2)}),Array.from(new Set(B))}function je(b=[]){const B=new Set;return b.filter(q=>{const b2=q==null?void 0:q.__hyFeature;return!b2||B.has(b2)?!1:(B.add(b2),!0)})}function Ve(b=[]){return je(b).map(B=>B.__hyFeature).filter(Boolean)}function se(b=[]){const B=b.filter(b2=>{var m2;const C2=String(((m2=g1(b2==null?void 0:b2.geometry))==null?void 0:m2.type)||"");return C2.includes("Polygon")||C2.includes("LineString")}),q=B.filter(b2=>{var C2;return((C2=b2==null?void 0:b2.properties)==null?void 0:C2.feature_role)==="工程范围"});return q.length?q:B}function Le(b){return(Array.isArray(b)?b:(b==null?void 0:b.grasslands)||(b==null?void 0:b.features)||(b==null?void 0:b.rows)||(b==null?void 0:b.list)||(b?[b]:[])).map((q,b2)=>{var m2,T3;if((q==null?void 0:q.type)==="Feature")return q;const C2=g1(q==null?void 0:q.geometry)||D(O1(q));return C2?{type:"Feature",id:(T3=(m2=q==null?void 0:q.id)!=null?m2:q==null?void 0:q.grasslandId)!=null?T3:b2,properties:B2({},q),geometry:C2}:null}).filter(Boolean)}function g1(b){if(!b)return null;if(b.type==="Feature")return g1(b.geometry);if(b.type&&Array.isArray(b.coordinates))return b;if(typeof b=="string"){const B=b.trim();if(!B)return null;if(B.startsWith("{")||B.startsWith("["))try{return g1(JSON.parse(B))}catch(q){return null}return D(B)}return null}function D(b){const q=String(b||"").trim().replace(/^SRID=\d+;/i,"").match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*(\(.+\))$/i);if(!q)return null;const b2=q[1].toUpperCase(),C2=q[2];return b2==="POINT"?{type:"Point",coordinates:u2(C2)}:b2==="MULTIPOINT"?{type:"MultiPoint",coordinates:G3(C2).map(u2).filter(Boolean)}:b2==="LINESTRING"?{type:"LineString",coordinates:K2(C2)}:b2==="MULTILINESTRING"?{type:"MultiLineString",coordinates:G3(C2).map(K2).filter(m2=>m2.length)}:b2==="POLYGON"?{type:"Polygon",coordinates:i1(C2)}:b2==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:G3(C2).map(i1).filter(m2=>m2.length)}:null}function u2(b){const B=String(b||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return B.length===2&&B.every(Number.isFinite)?B:null}function K2(b){return String(b||"").replace(/^\(+|\)+$/g,"").split(",").map(u2).filter(Boolean)}function i1(b){return G3(b).map(K2).filter(B=>B.length>=3)}function G3(b){const B=String(b||"").trim(),q=B.startsWith("(")&&B.endsWith(")")?B.slice(1,-1):B,b2=[];let C2=0,m2=-1;return Array.from(q).forEach((T3,x3)=>{T3==="("?(C2===0&&(m2=x3),C2+=1):T3===")"&&(C2-=1,C2===0&&m2>=0&&(b2.push(q.slice(m2,x3+1)),m2=-1))}),b2.length?b2:[q]}function B3(b=[]){const B=window.Cesium;return b.map(k1).filter(Boolean).map(q=>B.Cartesian3.fromDegrees(q[0],q[1],8))}function y1(b=[],B=ws){const q=window.Cesium;return b.map(k1).filter(Boolean).map(b2=>q.Cartesian3.fromDegrees(b2[0],b2[1],B))}function k1(b){if(!Array.isArray(b)||b.length<2)return null;const B=Number(b[0]),q=Number(b[1]);return Number.isFinite(B)&&Number.isFinite(q)?[B,q]:null}function Z(b={}){const B=g1(b.geometry);return(B==null?void 0:B.type)==="Point"?k1(B.coordinates):[[b.longitude,b.latitude],[b.lng,b.lat],[b.lon,b.lat],[b.x,b.y],b.point,b.center,b.centroid,b.coordinates].map(k1).find(Boolean)||null}function _2(b,B){return!b||!(B!=null&&B.coordinates)?!1:B.type==="Polygon"?k3(b,B.coordinates):B.type==="MultiPolygon"?B.coordinates.some(q=>k3(b,q)):!1}function G2(b){return b!=null&&b.coordinates?b.type==="Polygon"?z2(b.coordinates):b.type==="MultiPolygon"?b.coordinates.reduce((B,q)=>B+z2(q),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}function z2(b=[]){const B=b[0]||[];if(B.length<3)return Number.POSITIVE_INFINITY;let q=0;for(let b2=0;b2o3(q,B))):b.type==="LineString"?J2(b.coordinates,B):b.type==="MultiLineString"?Math.min(...b.coordinates.map(q=>J2(q,B))):Number.POSITIVE_INFINITY}function o3(b,B){const q=v3(k1(b));return q?Math.hypot(Number(q.x)-Number(B.x),Number(q.y)-Number(B.y)):Number.POSITIVE_INFINITY}function J2(b=[],B){if(!Array.isArray(b)||b.length<2)return Number.POSITIVE_INFINITY;let q=Number.POSITIVE_INFINITY;for(let b2=1;b2P(b,q))}function P(b,B=[]){if(B.length<3)return!1;const q=Number(b.lng),b2=Number(b.lat);if(!Number.isFinite(q)||!Number.isFinite(b2))return!1;let C2=!1;for(let m2=0,T3=B.length-1;m2b2!=n0>b2&&q<(L1-v1)*(b2-Q1)/(n0-Q1)+v1&&(C2=!C2)}return C2}function I(b,B,q,b2,C2,m2){const T3=(b-q)*(m2-b2)-(B-b2)*(C2-q);return Math.abs(T3)>1e-10?!1:(b-q)*(b-C2)+(B-b2)*(B-m2)<=1e-10}function G(b){if(!b)return null;if(b.type==="Point")return k1(b.coordinates);const B=[];return T2(b.coordinates,B),B.length?[B.reduce((q,b2)=>q+b2[0],0)/B.length,B.reduce((q,b2)=>q+b2[1],0)/B.length]:null}function T2(b,B){const q=k1(b);if(q&&!Array.isArray(b[0])){B.push(q);return}Array.isArray(b)&&b.forEach(b2=>T2(b2,B))}function u3(b=[]){const B=[];if(b.forEach(T3=>{var K3;const x3=g1((T3==null?void 0:T3.geometry)||((K3=T3==null?void 0:T3.feature)==null?void 0:K3.geometry)||T3);x3&&T2(x3.coordinates,B)}),!B.length)return null;const q=B.map(T3=>T3[0]),b2=B.map(T3=>T3[1]),C2=Math.max(.006,(Math.max(...q)-Math.min(...q))*.18),m2=Math.max(.006,(Math.max(...b2)-Math.min(...b2))*.18);return{west:Math.max(J1.west,Math.min(...q)-C2),south:Math.max(J1.south,Math.min(...b2)-m2),east:Math.min(J1.east,Math.max(...q)+C2),north:Math.min(J1.north,Math.max(...b2)+m2)}}function V2(b){if(!f){b.length=0;return}b.splice(0).forEach(B=>f.entities.remove(B))}function W(){S2.splice(0).forEach(b=>{var B,q;return(q=(B=f==null?void 0:f.imageryLayers)==null?void 0:B.remove)==null?void 0:q.call(B,b,!0)}),V2(X2),d()}function e3(){var b,B,q;Y+=1,(b=C==null?void 0:C.disconnect)==null||b.call(C),C=null,F==null||F(),F=null,(B=g==null?void 0:g.destroy)==null||B.call(g),g=null,W(),V2(R3),V2(J3),V2(Q2),V2(c3),V2(p3),V2(N3),V2(_3),f&&!((q=f.isDestroyed)!=null&&q.call(f))&&f.destroy(),f=null,A2=null,m.value=null,u.value&&u.value.replaceChildren()}function r1(b,B=1){const q=Number(b);return Number.isFinite(q)?Math.max(0,Math.min(1,q)):B}function c0(b){return String(b||"").trim().replace(/(镇|乡)$/,"")}function t0(b){const B=Number(b);return Number.isFinite(B)?Number.isInteger(B)?String(B):String(Number(B.toFixed(2))):"--"}return e({loadMap:V3,hasMap:i3,play:U2,resume:D3,pause:F3,refreshView:u1,resetView:C3,destroyMap:e3,highlightFeature:s2,clearSelectedFeature:d,clearFloatingOverlays:f3,focusProject:O2,focusPasture:Z2,clearPastureFocus:q2,focusTown:f2,focusYakIndustryPoint:o2,focusVectorFeature:T,getVectorFeatureAnchorScreen:K,getVectorFeaturesAnchorScreen:E2,getVectorFeatureScreen:j,getYakIndustryPointScreen:D2,setBoundaryDrawing:P3,finishBoundaryDrawing:C1,undoBoundaryPoint:E3,clearAnalysisBoundary:P1,showAnalysisResult:I1,canvasMap:m}),(b,B)=>(O(),V("div",{ref_key:"containerRef",ref:s,class:"cesium-map"},[S("div",{ref_key:"viewerRef",ref:u,class:"cesium-map__viewer"},null,512)],512))}},z8=Na(wx,[["__scopeId","data-v-ce0e6cf5"]]);const bx={key:0,class:"business-stat-empty"},Tx=["data-chart-tooltip"],Cx={class:"business-stat-rank"},Ax={class:"business-stat-main"},_x={class:"business-stat-name"},xx={class:"business-stat-bar"},Mx={class:"business-stat-value"},Px={key:0},Mf={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(t){const e=t,n=r2(()=>{const r=e.rows.map(o=>Number(o.value)).filter(o=>!Number.isNaN(o));return Math.max(...r,1)});function a(r){const o=Number(r.value);return Number.isNaN(o)?36:Math.max(8,Math.round(o/n.value*100))}function i(r){const o=(r==null?void 0:r.value)===void 0||(r==null?void 0:r.value)===null||(r==null?void 0:r.value)===""?"--":r.value,s=(r==null?void 0:r.unit)||"",u=[`数值:${o}${s}`];return r!=null&&r.extra&&u.push(String(r.extra)),[(r==null?void 0:r.name)||"数据",...u].join(` -`)}return(r,o)=>(O(),V("div",{class:o1(["business-stat-list",{"is-compact":t.compact,"is-dense":t.rows.length>10}])},[t.rows.length?U3("",!0):(O(),V("div",bx,"暂无业务统计数据")),(O(!0),V(Y3,null,e1(t.rows,(s,u)=>(O(),V("div",{key:s.key||s.name,class:"business-stat-row","data-chart-tooltip":i(s)},[S("div",Cx,l2(u+1),1),S("div",Ax,[S("div",_x,l2(s.name),1),S("div",xx,[S("span",{style:o0({width:`${a(s)}%`})},null,4)])]),S("div",Mx,[S("strong",null,l2(s.value),1),S("em",null,l2(s.unit),1),s.extra?(O(),V("span",Px,l2(s.extra),1)):U3("",!0)])],8,Tx))),128))],2))}};function kx(t){let e=null,n=!1,a=!1;function i(){!n||a||(t(),e=requestAnimationFrame(i))}function r(){n||(n=!0,i())}function o(){n&&(n=!1,a=!0,cancelAnimationFrame(e))}function s(){!n&&a&&(n=!0,a=!1,i())}return{start:r,pause:o,resume:s,isActive:()=>n}}class Mr{constructor(){this.events=new Map}on(e,n){let a=this.events.get(e);a||(a=new Set,this.events.set(e,a)),a.add(n)}off(e,n){const a=this.events.get(e);a&&(n?a.delete(n):this.events.delete(e))}emit(e,...n){const a=this.events.get(e);a&&a.forEach(i=>{i(...n)})}once(e,n){const a=(...i)=>{n(...i),this.off(e,a)};this.on(e,a)}}class Ex extends Mr{constructor({canvas:e}){super(),this.canvas=e,this.maxPixelRatio=2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var n;const e=((n=this.canvas)==null?void 0:n.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1,this.pixelRatio=Math.min(window.devicePixelRatio||1,this.maxPixelRatio)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Nx extends Mr{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new qC,this.raf=kx(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),a=this.clock.getElapsedTime();this.emit("tick",n,a)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function tp(t,e=!1){const n=t[0].index!==null,a=new Set(Object.keys(t[0].attributes)),i=new Set(Object.keys(t[0].morphAttributes)),r={},o={},s=t[0].morphTargetsRelative,u=new g6;let m=0;for(let p=0;p=2.0 are supported."));return}const m=new cM(r,{path:n||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});m.fileLoader.setRequestHeader(this.requestHeader);for(let p=0;p=0&&s[f]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+f+'".')}}m.setExtensions(o),m.setPlugins(s),m.parse(a,i)}parseAsync(e,n){const a=this;return new Promise(function(i,r){a.parse(e,n,i,r)})}}function Lx(){let t={};return{get:function(e){return t[e]},add:function(e,n){t[e]=n},remove:function(e){delete t[e]},removeAll:function(){t={}}}}const ce={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_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Ix{constructor(e){this.parser=e,this.name=ce.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,n=this.parser.json.nodes||[];for(let a=0,i=n.length;a=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return n.loadTextureImage(e,r.source,o)}}class Hx{constructor(e){this.parser=e,this.name=ce.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const n=this.name,a=this.parser,i=a.json,r=i.textures[e];if(!r.extensions||!r.extensions[n])return null;const o=r.extensions[n],s=i.images[o.source];let u=a.textureLoader;if(s.uri){const m=a.options.manager.getHandler(s.uri);m!==null&&(u=m)}return this.detectSupport().then(function(m){if(m)return a.loadTextureImage(e,o.source,u);if(i.extensionsRequired&&i.extensionsRequired.indexOf(n)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return a.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const n=new Image;n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",n.onload=n.onerror=function(){e(n.height===1)}})),this.isSupported}}class Kx{constructor(e){this.parser=e,this.name=ce.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const n=this.name,a=this.parser,i=a.json,r=i.textures[e];if(!r.extensions||!r.extensions[n])return null;const o=r.extensions[n],s=i.images[o.source];let u=a.textureLoader;if(s.uri){const m=a.options.manager.getHandler(s.uri);m!==null&&(u=m)}return this.detectSupport().then(function(m){if(m)return a.loadTextureImage(e,o.source,u);if(i.extensionsRequired&&i.extensionsRequired.indexOf(n)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return a.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const n=new Image;n.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",n.onload=n.onerror=function(){e(n.height===1)}})),this.isSupported}}class qx{constructor(e){this.name=ce.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const n=this.parser.json,a=n.bufferViews[e];if(a.extensions&&a.extensions[this.name]){const i=a.extensions[this.name],r=this.parser.getDependency("buffer",i.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(s){const u=i.byteOffset||0,m=i.byteLength||0,p=i.count,f=i.byteStride,g=new Uint8Array(s,u,m);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(p,f,g,i.mode,i.filter).then(function(C){return C.buffer}):o.ready.then(function(){const C=new ArrayBuffer(p*f);return o.decodeGltfBuffer(new Uint8Array(C),p,f,g,i.mode,i.filter),C})})}else return null}}class Jx{constructor(e){this.name=ce.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const n=this.parser.json,a=n.nodes[e];if(!a.extensions||!a.extensions[this.name]||a.mesh===void 0)return null;const i=n.meshes[a.mesh];for(const m of i.primitives)if(m.mode!==Zn.TRIANGLES&&m.mode!==Zn.TRIANGLE_STRIP&&m.mode!==Zn.TRIANGLE_FAN&&m.mode!==void 0)return null;const o=a.extensions[this.name].attributes,s=[],u={};for(const m in o)s.push(this.parser.getDependency("accessor",o[m]).then(p=>(u[m]=p,u[m])));return s.length<1?null:(s.push(this.parser.createNodeMesh(e)),Promise.all(s).then(m=>{const p=m.pop(),f=p.isGroup?p.children:[p],g=m[0].count,C=[];for(const F of f){const z=new x9,Y=new _0,i2=new Zl,v2=new _0(1,1,1),y2=new ZC(F.geometry,F.material,g);for(let A2=0;A20||t.search(/^data\:image\/jpeg/)===0?"image/jpeg":t.search(/\.webp($|\?)/i)>0||t.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const uM=new x9;class cM{constructor(e={},n={}){this.json=e,this.extensions={},this.plugins={},this.options=n,this.cache=new Lx,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let a=!1,i=!1,r=-1;typeof navigator!="undefined"&&(a=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||a||i&&r<98?this.textureLoader=new Bm(this.options.manager):this.textureLoader=new eA(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new ha(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,n){const a=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([a.getDependencies("scene"),a.getDependencies("animation"),a.getDependencies("camera")])}).then(function(o){const s={scene:o[0][i.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:i.asset,parser:a,userData:{}};return p9(r,s,i),R5(s,i),Promise.all(a._invokeAll(function(u){return u.afterRoot&&u.afterRoot(s)})).then(function(){e(s)})}).catch(n)}_markDefs(){const e=this.json.nodes||[],n=this.json.skins||[],a=this.json.meshes||[];for(let i=0,r=n.length;i{const u=this.associations.get(o);u!=null&&this.associations.set(s,u);for(const[m,p]of o.children.entries())r(p,s.children[m])};return r(a,i),i.name+="_instance_"+e.uses[n]++,i}_invokeOne(e){const n=Object.values(this.plugins);n.push(this);for(let a=0;a=2&&Y.setY(p3,Q2[X2*u+1]),u>=3&&Y.setZ(p3,Q2[X2*u+2]),u>=4&&Y.setW(p3,Q2[X2*u+3]),u>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return Y})}loadTexture(e){const n=this.json,a=this.options,r=n.textures[e].source,o=n.images[r];let s=this.textureLoader;if(o.uri){const u=a.manager.getHandler(o.uri);u!==null&&(s=u)}return this.loadTextureImage(e,r,s)}loadTextureImage(e,n,a){const i=this,r=this.json,o=r.textures[e],s=r.images[n],u=(s.uri||s.bufferView)+":"+o.sampler;if(this.textureCache[u])return this.textureCache[u];const m=this.loadImageSource(n,a).then(function(p){p.flipY=!1,p.name=o.name||s.name||"",p.name===""&&typeof s.uri=="string"&&s.uri.startsWith("data:image/")===!1&&(p.name=s.uri);const g=(r.samplers||{})[o.sampler]||{};return p.magFilter=Nf[g.magFilter]||A9,p.minFilter=Nf[g.minFilter]||Dm,p.wrapS=Rf[g.wrapS]||pn,p.wrapT=Rf[g.wrapT]||pn,i.associations.set(p,{textures:e}),p}).catch(function(){return null});return this.textureCache[u]=m,m}loadImageSource(e,n){const a=this,i=this.json,r=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(f=>f.clone());const o=i.images[e],s=self.URL||self.webkitURL;let u=o.uri||"",m=!1;if(o.bufferView!==void 0)u=a.getDependency("bufferView",o.bufferView).then(function(f){m=!0;const g=new Blob([f],{type:o.mimeType});return u=s.createObjectURL(g),u});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const p=Promise.resolve(u).then(function(f){return new Promise(function(g,C){let F=g;n.isImageBitmapLoader===!0&&(F=function(z){const Y=new Kd(z);Y.needsUpdate=!0,g(Y)}),n.load(ta.resolveURL(f,r.path),F,void 0,C)})}).then(function(f){return m===!0&&s.revokeObjectURL(u),f.userData.mimeType=o.mimeType||lM(o.uri),f}).catch(function(f){throw console.error("THREE.GLTFLoader: Couldn't load texture",u),f});return this.sourceCache[e]=p,p}assignTexture(e,n,a,i){const r=this;return this.getDependency("texture",a.index).then(function(o){if(!o)return null;if(a.texCoord!==void 0&&a.texCoord>0&&(o=o.clone(),o.channel=a.texCoord),r.extensions[ce.KHR_TEXTURE_TRANSFORM]){const s=a.extensions!==void 0?a.extensions[ce.KHR_TEXTURE_TRANSFORM]:void 0;if(s){const u=r.associations.get(o);o=r.extensions[ce.KHR_TEXTURE_TRANSFORM].extendTexture(o,s),r.associations.set(o,u)}}return i!==void 0&&(o.colorSpace=i),e[n]=o,o})}assignFinalMaterial(e){const n=e.geometry;let a=e.material;const i=n.attributes.tangent===void 0,r=n.attributes.color!==void 0,o=n.attributes.normal===void 0;if(e.isPoints){const s="PointsMaterial:"+a.uuid;let u=this.cache.get(s);u||(u=new Tr,us.prototype.copy.call(u,a),u.color.copy(a.color),u.map=a.map,u.sizeAttenuation=!1,this.cache.add(s,u)),a=u}else if(e.isLine){const s="LineBasicMaterial:"+a.uuid;let u=this.cache.get(s);u||(u=new N5,us.prototype.copy.call(u,a),u.color.copy(a.color),u.map=a.map,this.cache.add(s,u)),a=u}if(i||r||o){let s="ClonedMaterial:"+a.uuid+":";i&&(s+="derivative-tangents:"),r&&(s+="vertex-colors:"),o&&(s+="flat-shading:");let u=this.cache.get(s);u||(u=a.clone(),r&&(u.vertexColors=!0),o&&(u.flatShading=!0),i&&(u.normalScale&&(u.normalScale.y*=-1),u.clearcoatNormalScale&&(u.clearcoatNormalScale.y*=-1)),this.cache.add(s,u),this.associations.set(u,this.associations.get(a))),a=u}e.material=a}getMaterialType(){return f8}loadMaterial(e){const n=this,a=this.json,i=this.extensions,r=a.materials[e];let o;const s={},u=r.extensions||{},m=[];if(u[ce.KHR_MATERIALS_UNLIT]){const f=i[ce.KHR_MATERIALS_UNLIT];o=f.getMaterialType(),m.push(f.extendParams(s,r,n))}else{const f=r.pbrMetallicRoughness||{};if(s.color=new ct(1,1,1),s.opacity=1,Array.isArray(f.baseColorFactor)){const g=f.baseColorFactor;s.color.setRGB(g[0],g[1],g[2],Y6),s.opacity=g[3]}f.baseColorTexture!==void 0&&m.push(n.assignTexture(s,"map",f.baseColorTexture,bn)),s.metalness=f.metallicFactor!==void 0?f.metallicFactor:1,s.roughness=f.roughnessFactor!==void 0?f.roughnessFactor:1,f.metallicRoughnessTexture!==void 0&&(m.push(n.assignTexture(s,"metalnessMap",f.metallicRoughnessTexture)),m.push(n.assignTexture(s,"roughnessMap",f.metallicRoughnessTexture))),o=this._invokeOne(function(g){return g.getMaterialType&&g.getMaterialType(e)}),m.push(Promise.all(this._invokeAll(function(g){return g.extendMaterialParams&&g.extendMaterialParams(e,s)})))}r.doubleSided===!0&&(s.side=xt);const p=r.alphaMode||Ts.OPAQUE;if(p===Ts.BLEND?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,p===Ts.MASK&&(s.alphaTest=r.alphaCutoff!==void 0?r.alphaCutoff:.5)),r.normalTexture!==void 0&&o!==Pe&&(m.push(n.assignTexture(s,"normalMap",r.normalTexture)),s.normalScale=new gt(1,1),r.normalTexture.scale!==void 0)){const f=r.normalTexture.scale;s.normalScale.set(f,f)}if(r.occlusionTexture!==void 0&&o!==Pe&&(m.push(n.assignTexture(s,"aoMap",r.occlusionTexture)),r.occlusionTexture.strength!==void 0&&(s.aoMapIntensity=r.occlusionTexture.strength)),r.emissiveFactor!==void 0&&o!==Pe){const f=r.emissiveFactor;s.emissive=new ct().setRGB(f[0],f[1],f[2],Y6)}return r.emissiveTexture!==void 0&&o!==Pe&&m.push(n.assignTexture(s,"emissiveMap",r.emissiveTexture,bn)),Promise.all(m).then(function(){const f=new o(s);return r.name&&(f.name=r.name),R5(f,r),n.associations.set(f,{materials:e}),r.extensions&&p9(i,f,r),f})}createUniqueName(e){const n=nA.sanitizeNodeName(e||"");return n in this.nodeNamesUsed?n+"_"+ ++this.nodeNamesUsed[n]:(this.nodeNamesUsed[n]=0,n)}loadGeometries(e){const n=this,a=this.extensions,i=this.primitiveCache;function r(s){return a[ce.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(s,n).then(function(u){return Lf(u,s,n)})}const o=[];for(let s=0,u=e.length;s0&&oM(i2,r),i2.name=n.createUniqueName(r.name||"mesh_"+e),R5(i2,r),Y.extensions&&p9(i,i2,Y),n.assignFinalMaterial(i2),f.push(i2)}for(let C=0,F=f.length;C1?p=new Ge:m.length===1?p=m[0]:p=new Ra,p!==m[0])for(let f=0,g=m.length;f{const f=new Map;for(const[g,C]of i.associations)(g instanceof us||g instanceof Kd)&&f.set(g,C);return p.traverse(g=>{const C=i.associations.get(g);C!=null&&f.set(g,C)}),f};return i.associations=m(r),r})}_createAnimationTracks(e,n,a,i,r){const o=[],s=e.name?e.name:e.uuid,u=[];E5[r.path]===E5.weights?e.traverse(function(g){g.morphTargetInfluences&&u.push(g.name?g.name:g.uuid)}):u.push(s);let m;switch(E5[r.path]){case E5.weights:m=Jd;break;case E5.rotation:m=Qd;break;case E5.position:case E5.scale:m=qd;break;default:switch(a.itemSize){case 1:m=Jd;break;case 2:case 3:default:m=qd;break}break}const p=i.interpolation!==void 0?aM[i.interpolation]:jm,f=this._getArrayFromAccessor(a);for(let g=0,C=u.length;g{this.parse(o,n,i)},a,i)}parse(e,n,a=()=>{}){this.decodeDracoFile(e,n,null,null,bn).catch(a)}decodeDracoFile(e,n,a,i,r=Y6,o=()=>{}){const s={attributeIDs:a||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!a,vertexColorSpace:r};return this.decodeGeometry(e,s).then(n).catch(o)}decodeGeometry(e,n){const a=JSON.stringify(n);if(As.has(e)){const u=As.get(e);if(u.key===a)return u.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const r=this.workerNextTaskID++,o=e.byteLength,s=this._getWorker(r,o).then(u=>(i=u,new Promise((m,p)=>{i._callbacks[r]={resolve:m,reject:p},i.postMessage({type:"decode",id:r,taskConfig:n,buffer:e},[e])}))).then(u=>this._createGeometry(u.geometry));return s.catch(()=>!0).then(()=>{i&&r&&this._releaseTask(i,r)}),As.set(e,{key:a,promise:s}),s}_createGeometry(e){const n=new g6;e.index&&n.setIndex(new v6(e.index.array,1));for(let a=0;a{a.load(e,i,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",n=[];return e?n.push(this._loadLibrary("draco_decoder.js","text")):(n.push(this._loadLibrary("draco_wasm_wrapper.js","text")),n.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(n).then(a=>{const i=a[0];e||(this.decoderConfig.wasmBinary=a[1]);const r=hM.toString(),o=["/* draco decoder */",i,"","/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,n){return this._initDecoder().then(()=>{if(this.workerPool.lengthr._taskLoad?-1:1});const a=this.workerPool[this.workerPool.length-1];return a._taskCosts[e]=n,a._taskLoad+=n,a})}_releaseTask(e,n){e._taskLoad-=e._taskCosts[n],delete e._callbacks[n],delete e._taskCosts[n]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{const f=p.draco,g=new f.Decoder;try{const C=n(f,g,new Int8Array(u),m),F=C.attributes.map(z=>z.array.buffer);C.index&&F.push(C.index.array.buffer),self.postMessage({type:"decode",id:s.id,geometry:C},F)}catch(C){console.error(C),self.postMessage({type:"error",id:s.id,error:C.message})}finally{f.destroy(g)}});break}};function n(o,s,u,m){const p=m.attributeIDs,f=m.attributeTypes;let g,C;const F=s.GetEncodedGeometryType(u);if(F===o.TRIANGULAR_MESH)g=new o.Mesh,C=s.DecodeArrayToMesh(u,u.byteLength,g);else if(F===o.POINT_CLOUD)g=new o.PointCloud,C=s.DecodeArrayToPointCloud(u,u.byteLength,g);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!C.ok()||g.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+C.error_msg());const z={index:null,attributes:[]};for(const Y in p){const i2=self[f[Y]];let v2,y2;if(m.useUniqueIDs)y2=p[Y],v2=s.GetAttributeByUniqueId(g,y2);else{if(y2=s.GetAttributeId(g,o[p[Y]]),y2===-1)continue;v2=s.GetAttribute(g,y2)}const A2=i(o,s,g,Y,i2,v2);Y==="color"&&(A2.vertexColorSpace=m.vertexColorSpace),z.attributes.push(A2)}return F===o.TRIANGULAR_MESH&&(z.index=a(o,s,g)),o.destroy(g),z}function a(o,s,u){const p=u.num_faces()*3,f=p*4,g=o._malloc(f);s.GetTrianglesUInt32Array(u,f,g);const C=new Uint32Array(o.HEAPF32.buffer,g,p).slice();return o._free(g),{array:C,itemSize:1}}function i(o,s,u,m,p,f){const g=f.num_components(),F=u.num_points()*g,z=F*p.BYTES_PER_ELEMENT,Y=r(o,p),i2=o._malloc(z);s.GetAttributeDataArrayForAllPoints(u,f,Y,z,i2);const v2=new p(o.HEAPF32.buffer,i2,F).slice();return o._free(i2),{name:m,array:v2,itemSize:g}}function r(o,s){switch(s){case Float32Array:return o.DT_FLOAT32;case Int8Array:return o.DT_INT8;case Int16Array:return o.DT_INT16;case Int32Array:return o.DT_INT32;case Uint8Array:return o.DT_UINT8;case Uint16Array:return o.DT_UINT16;case Uint32Array:return o.DT_UINT32}}}let Fi={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const mM=Object.values(Fi);class pM extends Mr{constructor({dracoPath:e,cloneTextures:n=!1}={}){super(),this.dracoPath=e||"./draco/gltf/",this.cloneTextures=n,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const e=new pA;return e.onProgress=(n,a,i)=>{this.itemsLoaded=a,this.itemsTotal=i,this.emit("onProgress",n,a,i)},e.onError=n=>{this.emit("onError",n)},e}initDefaultLoader(){[{loader:Rx,name:"GLTFLoader"},{loader:Bm,name:"TextureLoader"}].map(e=>this.addLoader(e.loader,e.name))}initDraco(e){const n=new fM;n.setDecoderPath(this.dracoPath),n.preload(),e.setDRACOLoader(n)}addLoader(e,n=""){if(e.name&&Fi[n]){if(!this.loaders[n]){let i=new e(this.manager),r=n;i instanceof Jl&&(r==="GLTFLoader"&&this.initDraco(i),this.loaders[Fi[r]]=i)}}else throw new Error("请配置正确的加载器")}loadItem(e){return new Promise((n,a)=>{if(!this.loaders[e.type])throw new Error(`资源${e.path}没有配置加载器`);this.loaders[e.type].load(e.path,i=>{this.itemsLoaded++,this.emit("onProgress",e.path,this.itemsLoaded,this.itemsTotal),n(t3(B2({},e),{data:i}))},null,i=>{this.emit("onError",i),a(i)})})}loadAll(e){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((n,a)=>{let i=this.matchType(e),r=[];this.itemsTotal=i.length,i.map(o=>{let s=this.loadItem(o);r.push(s)}),Promise.all(r).then(o=>{this.assets=o,this.loaded=!0,this.emit("onLoad"),n(o)}).catch(o=>{this.emit("onError",o),a(o)})})}matchType(e){return this.assets=e.map(n=>({type:mM.includes(n.type)?n.type:"",path:n.path,name:n.name,data:null})).filter(n=>{if(!n.type)throw new Error(`资源${n.path},type不正确`);return n.type}),this.assets}getResource(e){var a;let n=this.assets.find(i=>i.name===e);if(!n)throw new Error(`资源${e}不存在`);return this.cloneTextures&&n.type===Fi.TextureLoader&&((a=n.data)!=null&&a.isTexture)?n.data.clone():n.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}function gM(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),a=[],i;if(e=e||n.length,t)for(i=0;iyM(typeof t=="string"?JSON.parse(t):t);function yM(t){var n,a,i,r;let e=(t==null?void 0:t.features)||[];for(let o=0;o{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,a,i;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(i=(a=this.canvas)==null?void 0:a.removeEventListener)==null||i.call(a,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class wM{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let a=0;for(let i=0;i0){for(o=e[--n];n>0&&(a=o,i=e[--n],o=a+i,r=i-(o-a),!r););n>0&&(r<0&&e[n-1]<0||r>0&&e[n-1]>0)&&(i=r*2,a=o+i,i==a-o&&(o=a))}return o}}function*bM(t){for(const e of t)yield*Yd(e)}function ip(t){return Array.from(bM(t))}var Ye=1e-6,TM=1e-12,ge=Math.PI,_n=ge/2,If=ge/4,a6=ge*2,Dn=180/ge,yt=ge/180,it=Math.abs,rp=Math.atan,Sa=Math.atan2,ft=Math.cos,CM=Math.exp,AM=Math.log,ht=Math.sin,_M=Math.sign||function(t){return t>0?1:t<0?-1:0},Pr=Math.sqrt,xM=Math.tan;function MM(t){return t>1?0:t<-1?ge:Math.acos(t)}function wa(t){return t>1?_n:t<-1?-_n:Math.asin(t)}function q4(){}function Qi(t,e){t&&Bf.hasOwnProperty(t.type)&&Bf[t.type](t,e)}var Ff={Feature:function(t,e){Qi(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,a=-1,i=n.length;++age&&(t-=Math.round(t/a6)*a6),[t,e]}Al.invert=Al;function op(t,e,n){return(t%=a6)?e||n?Cl(Uf(t),Of(e,n)):Uf(t):e||n?Of(e,n):Al}function Gf(t){return function(e,n){return e+=t,it(e)>ge&&(e-=Math.round(e/a6)*a6),[e,n]}}function Uf(t){var e=Gf(t);return e.invert=Gf(-t),e}function Of(t,e){var n=ft(t),a=ht(t),i=ft(e),r=ht(e);function o(s,u){var m=ft(u),p=ft(s)*m,f=ht(s)*m,g=ht(u),C=g*n+p*a;return[Sa(f*i-C*r,p*n-g*a),wa(C*i+f*r)]}return o.invert=function(s,u){var m=ft(u),p=ft(s)*m,f=ht(s)*m,g=ht(u),C=g*i-f*r;return[Sa(f*i+g*r,p*n+C*a),wa(C*n-p*a)]},o}function kM(t){t=op(t[0]*yt,t[1]*yt,t.length>2?t[2]*yt:0);function e(n){return n=t(n[0]*yt,n[1]*yt),n[0]*=Dn,n[1]*=Dn,n}return e.invert=function(n){return n=t.invert(n[0]*yt,n[1]*yt),n[0]*=Dn,n[1]*=Dn,n},e}function EM(t,e,n,a,i,r){if(n){var o=ft(e),s=ht(e),u=a*n;i==null?(i=e+a*a6,r=e-u/2):(i=jf(o,i),r=jf(o,r),(a>0?ir)&&(i+=a*a6));for(var m,p=i;a>0?p>r:p1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Bi(t,e){return it(t[0]-e[0])=0;--s)i.point((f=p[s])[0],f[1]);else a(g.x,g.p.x,-1,i);g=g.p}g=g.o,p=g.z,C=!C}while(!g.v);i.lineEnd()}}}function zf(t){if(e=t.length){for(var e,n=0,a=t[0],i;++n=0?1:-1,l3=p3*c3,b3=l3>ge,N3=Y*Q2;if(u.add(Sa(N3*p3*ht(l3),i2*X2+N3*ft(l3))),o+=b3?c3+p3*a6:c3,b3^F>=n^A2>=n){var _3=Zi(R8(C),R8(y2));Tl(_3);var J3=Zi(r,_3);Tl(J3);var R3=(b3^c3>=0?-1:1)*wa(J3[2]);(a>R3||a===R3&&(_3[0]||_3[1]))&&(s+=b3^c3>=0?1:-1)}}return(o<-Ye||o0){for(u||(i.polygonStart(),u=!0),i.lineStart(),Q2=0;Q21&&A2&2&&S2.push(S2.pop().concat(S2.shift())),p.push(S2.filter(RM))}}return g}}function RM(t){return t.length>1}function LM(t,e){return((t=t.x)[0]<0?t[1]-_n-Ye:_n-t[1])-((e=e.x)[0]<0?e[1]-_n-Ye:_n-e[1])}const Yf=up(function(){return!0},IM,BM,[-ge,-_n]);function IM(t){var e=NaN,n=NaN,a=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(r,o){var s=r>0?ge:-ge,u=it(r-e);it(u-ge)0?_n:-_n),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(r,n),i=0):a!==s&&u>=ge&&(it(e-a)Ye?rp((ht(e)*(r=ft(a))*ht(n)-ht(a)*(i=ft(e))*ht(t))/(i*r*o)):(e+a)/2}function BM(t,e,n,a){var i;if(t==null)i=n*_n,a.point(-ge,i),a.point(0,i),a.point(ge,i),a.point(ge,0),a.point(ge,-i),a.point(0,-i),a.point(-ge,-i),a.point(-ge,0),a.point(-ge,i);else if(it(t[0]-e[0])>Ye){var r=t[0]0,i=it(e)>Ye;function r(p,f,g,C){EM(C,t,n,g,p,f)}function o(p,f){return ft(p)*ft(f)>e}function s(p){var f,g,C,F,z;return{lineStart:function(){F=C=!1,z=1},point:function(Y,i2){var v2=[Y,i2],y2,A2=o(Y,i2),S2=a?A2?0:m(Y,i2):A2?m(Y+(Y<0?ge:-ge),i2):0;if(!f&&(F=C=A2)&&p.lineStart(),A2!==C&&(y2=u(f,v2),(!y2||Bi(f,y2)||Bi(v2,y2))&&(v2[2]=1)),A2!==C)z=0,A2?(p.lineStart(),y2=u(v2,f),p.point(y2[0],y2[1])):(y2=u(f,v2),p.point(y2[0],y2[1],2),p.lineEnd()),f=y2;else if(i&&f&&a^A2){var Q2;!(S2&g)&&(Q2=u(v2,f,!0))&&(z=0,a?(p.lineStart(),p.point(Q2[0][0],Q2[0][1]),p.point(Q2[1][0],Q2[1][1]),p.lineEnd()):(p.point(Q2[1][0],Q2[1][1]),p.lineEnd(),p.lineStart(),p.point(Q2[0][0],Q2[0][1],3)))}A2&&(!f||!Bi(f,v2))&&p.point(v2[0],v2[1]),f=v2,C=A2,g=S2},lineEnd:function(){C&&p.lineEnd(),f=null},clean:function(){return z|(F&&C)<<1}}}function u(p,f,g){var C=R8(p),F=R8(f),z=[1,0,0],Y=Zi(C,F),i2=ai(Y,Y),v2=Y[0],y2=i2-v2*v2;if(!y2)return!g&&p;var A2=e*i2/y2,S2=-e*v2/y2,Q2=Zi(z,Y),X2=ii(z,A2),c3=ii(Y,S2);_s(X2,c3);var p3=Q2,l3=ai(X2,p3),b3=ai(p3,p3),N3=l3*l3-b3*(ai(X2,X2)-1);if(!(N3<0)){var _3=Pr(N3),J3=ii(p3,(-l3-_3)/b3);if(_s(J3,X2),J3=bl(J3),!g)return J3;var R3=p[0],Z3=f[0],M1=p[1],b1=f[1],j1;Z30^J3[1]<(it(J3[0]-R3)ge^(R3<=J3[0]&&J3[0]<=Z3)){var i0=ii(p3,(-l3+_3)/b3);return _s(i0,X2),[J3,bl(i0)]}}}function m(p,f){var g=a?t:ge-t,C=0;return p<-g?C|=1:p>g&&(C|=2),f<-g?C|=4:f>g&&(C|=8),C}return up(o,s,r,a?[0,-t]:[-ge,t-ge])}function GM(t,e,n,a,i,r){var o=t[0],s=t[1],u=e[0],m=e[1],p=0,f=1,g=u-o,C=m-s,F;if(F=n-o,!(!g&&F>0)){if(F/=g,g<0){if(F0){if(F>f)return;F>p&&(p=F)}if(F=i-o,!(!g&&F<0)){if(F/=g,g<0){if(F>f)return;F>p&&(p=F)}else if(g>0){if(F0)){if(F/=C,C<0){if(F0){if(F>f)return;F>p&&(p=F)}if(F=r-s,!(!C&&F<0)){if(F/=C,C<0){if(F>f)return;F>p&&(p=F)}else if(C>0){if(F0&&(t[0]=o+p*g,t[1]=s+p*C),f<1&&(e[0]=o+f*g,e[1]=s+f*C),!0}}}}}var J4=1e9,oi=-J4;function UM(t,e,n,a){function i(m,p){return t<=m&&m<=n&&e<=p&&p<=a}function r(m,p,f,g){var C=0,F=0;if(m==null||(C=o(m,f))!==(F=o(p,f))||u(m,p)<0^f>0)do g.point(C===0||C===3?t:n,C>1?a:e);while((C=(C+f+4)%4)!==F);else g.point(p[0],p[1])}function o(m,p){return it(m[0]-t)0?0:3:it(m[0]-n)0?2:1:it(m[1]-e)0?1:0:p>0?3:2}function s(m,p){return u(m.x,p.x)}function u(m,p){var f=o(m,1),g=o(p,1);return f!==g?f-g:f===0?p[1]-m[1]:f===1?m[0]-p[0]:f===2?m[1]-p[1]:p[0]-m[0]}return function(m){var p=m,f=sp(),g,C,F,z,Y,i2,v2,y2,A2,S2,Q2,X2={point:c3,lineStart:N3,lineEnd:_3,polygonStart:l3,polygonEnd:b3};function c3(R3,Z3){i(R3,Z3)&&p.point(R3,Z3)}function p3(){for(var R3=0,Z3=0,M1=C.length;Z3a&&(r0-s0)*(a-i0)>(q1-i0)*(t-s0)&&++R3:q1<=a&&(r0-s0)*(a-i0)<(q1-i0)*(t-s0)&&--R3;return R3}function l3(){p=f,g=[],C=[],Q2=!0}function b3(){var R3=p3(),Z3=Q2&&R3,M1=(g=ip(g)).length;(Z3||M1)&&(m.polygonStart(),Z3&&(m.lineStart(),r(null,null,1,m),m.lineEnd()),M1&&lp(g,s,R3,r,m),m.polygonEnd()),p=m,g=C=F=null}function N3(){X2.point=J3,C&&C.push(F=[]),S2=!0,A2=!1,v2=y2=NaN}function _3(){g&&(J3(z,Y),i2&&A2&&f.rejoin(),g.push(f.result())),X2.point=c3,A2&&p.lineEnd()}function J3(R3,Z3){var M1=i(R3,Z3);if(C&&F.push([R3,Z3]),S2)z=R3,Y=Z3,i2=M1,S2=!1,M1&&(p.lineStart(),p.point(R3,Z3));else if(M1&&A2)p.point(R3,Z3);else{var b1=[v2=Math.max(oi,Math.min(J4,v2)),y2=Math.max(oi,Math.min(J4,y2))],j1=[R3=Math.max(oi,Math.min(J4,R3)),Z3=Math.max(oi,Math.min(J4,Z3))];GM(b1,j1,t,e,n,a)?(A2||(p.lineStart(),p.point(b1[0],b1[1])),p.point(j1[0],j1[1]),M1||p.lineEnd(),Q2=!1):M1&&(p.lineStart(),p.point(R3,Z3),Q2=!1)}v2=R3,y2=Z3,A2=M1}return X2}}const $f=t=>t;var L8=1/0,Xi=L8,ba=-L8,er=ba,OM={point:jM,lineStart:q4,lineEnd:q4,polygonStart:q4,polygonEnd:q4,result:function(){var t=[[L8,Xi],[ba,er]];return ba=er=-(Xi=L8=1/0),t}};function jM(t,e){tba&&(ba=t),eer&&(er=e)}const Wf=OM;function iu(t){return function(e){var n=new _l;for(var a in t)n[a]=t[a];return n.stream=e,n}}function _l(){}_l.prototype={constructor:_l,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ru(t,e,n){var a=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),a!=null&&t.clipExtent(null),PM(n,t.stream(Wf)),e(Wf.result()),a!=null&&t.clipExtent(a),t}function cp(t,e,n){return ru(t,function(a){var i=e[1][0]-e[0][0],r=e[1][1]-e[0][1],o=Math.min(i/(a[1][0]-a[0][0]),r/(a[1][1]-a[0][1])),s=+e[0][0]+(i-o*(a[1][0]+a[0][0]))/2,u=+e[0][1]+(r-o*(a[1][1]+a[0][1]))/2;t.scale(150*o).translate([s,u])},n)}function zM(t,e,n){return cp(t,[[0,0],e],n)}function YM(t,e,n){return ru(t,function(a){var i=+e,r=i/(a[1][0]-a[0][0]),o=(i-r*(a[1][0]+a[0][0]))/2,s=-r*a[0][1];t.scale(150*r).translate([o,s])},n)}function $M(t,e,n){return ru(t,function(a){var i=+e,r=i/(a[1][1]-a[0][1]),o=-r*a[0][0],s=(i-r*(a[1][1]+a[0][1]))/2;t.scale(150*r).translate([o,s])},n)}var Vf=16,WM=ft(30*yt);function Hf(t,e){return+e?HM(t,e):VM(t)}function VM(t){return iu({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function HM(t,e){function n(a,i,r,o,s,u,m,p,f,g,C,F,z,Y){var i2=m-a,v2=p-i,y2=i2*i2+v2*v2;if(y2>4*e&&z--){var A2=o+g,S2=s+C,Q2=u+F,X2=Pr(A2*A2+S2*S2+Q2*Q2),c3=wa(Q2/=X2),p3=it(it(Q2)-1)e||it((i2*_3+v2*J3)/y2-.5)>.3||o*g+s*C+u*F2?R3[2]%360*yt:0,_3()):[s*Dn,u*Dn,m*Dn]},b3.angle=function(R3){return arguments.length?(f=R3%360*yt,_3()):f*Dn},b3.reflectX=function(R3){return arguments.length?(g=R3?-1:1,_3()):g<0},b3.reflectY=function(R3){return arguments.length?(C=R3?-1:1,_3()):C<0},b3.precision=function(R3){return arguments.length?(Q2=Hf(X2,S2=R3*R3),J3()):Pr(S2)},b3.fitExtent=function(R3,Z3){return cp(b3,R3,Z3)},b3.fitSize=function(R3,Z3){return zM(b3,R3,Z3)},b3.fitWidth=function(R3,Z3){return YM(b3,R3,Z3)},b3.fitHeight=function(R3,Z3){return $M(b3,R3,Z3)};function _3(){var R3=Kf(n,0,0,g,C,f).apply(null,e(r,o)),Z3=Kf(n,a-R3[0],i-R3[1],g,C,f);return p=op(s,u,m),X2=Cl(e,Z3),c3=Cl(p,X2),Q2=Hf(X2,S2),J3()}function J3(){return p3=l3=null,b3}return function(){return e=t.apply(this,arguments),b3.invert=e.invert&&N3,_3()}}function ou(t,e){return[t,AM(xM((_n+e)/2))]}ou.invert=function(t,e){return[t,2*rp(CM(e))-_n]};function G6(){return XM(ou).scale(961/a6)}function XM(t){var e=QM(t),n=e.center,a=e.scale,i=e.translate,r=e.clipExtent,o=null,s,u,m;e.scale=function(f){return arguments.length?(a(f),p()):a()},e.translate=function(f){return arguments.length?(i(f),p()):i()},e.center=function(f){return arguments.length?(n(f),p()):n()},e.clipExtent=function(f){return arguments.length?(f==null?o=s=u=m=null:(o=+f[0][0],s=+f[0][1],u=+f[1][0],m=+f[1][1]),p()):o==null?null:[[o,s],[u,m]]};function p(){var f=ge*a(),g=e(kM(e.rotate()).invert([0,0]));return r(o==null?[[g[0]-f,g[1]-f],[g[0]+f,g[1]+f]]:t===ou?[[Math.max(g[0]-f,o),s],[Math.min(g[0]+f,u),m]]:[[o,Math.max(g[1]-f,s)],[u,Math.min(g[1]+f,m)]])}return p()}class eP extends Mr{constructor(e,n={}){var i,r;super();let a={isOrthographic:!1};this.config=Object.assign({},a,n),this.canvas=e,this.scene=new vA,this.sizes=new Ex(this),this.time=new Nx(this),this.camera=new SM(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new vM(this),this.handleControlsChange=()=>{var o,s,u;this.renderer.update(),(s=(o=this.label3d)==null?void 0:o.update)==null||s.call(o),(u=this.updateTownLabelScale)==null||u.call(this)},(r=(i=this.camera.controls)==null?void 0:i.addEventListener)==null||r.call(i,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",o=>{this.update(o)})}setAxesHelper(e=250){if(!e)return!1;let n=new SA(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,a,i;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(r=>{if(r instanceof nt){r.geometry.dispose();for(const o in r.material){const s=r.material[o];s&&typeof s.dispose=="function"&&s.dispose()}}}),(i=(a=this.canvas)==null?void 0:a.parentNode)==null||i.removeChild(this.canvas)}}class tP{constructor({material:e,time:n,size:a,diffuseColor:i,diffuseSpeed:r,diffuseWidth:o,callback:s=()=>{}}){this.time=n,this.pointShader=null,this.callback=s;let u={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},u,{material:e,size:a,diffuseColor:i,diffuseSpeed:r,diffuseWidth:o}),this.init()}init(){let{material:e,size:n,diffuseColor:a,diffuseSpeed:i,diffuseWidth:r}=this.options,o=n/i;e.onBeforeCompile=s=>{this.pointShader=s,this.callback(s,o),s.uniforms=t3(B2({},s.uniforms),{uTime:{value:0},uSpeed:{value:i},uWidth:{value:r},uColor:{value:new ct(a)}}),s.vertexShader=s.vertexShader.replace("void main() {",` - varying vec3 vPosition; - void main(){ - vPosition = position; - `),s.fragmentShader=s.fragmentShader.replace("void main() {",` - uniform float uTime; - uniform float uSpeed; - uniform float uWidth; - uniform vec3 uColor; - varying vec3 vPosition; - void main(){ - `),s.fragmentShader=s.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - - #ifdef USE_TRANSMISSION - diffuseColor.a *= material.transmissionAlpha; - #endif - - float r = uTime * uSpeed; - - float w = uWidth; - // if(w>uWidth){ - // w = uWidth; - // }else{ - // w = uTime * 1.5; - // } - - vec2 center = vec2(0.0, 0.0); - - float rDistance = distance(vPosition.xy, center); - - if(rDistance > r && rDistance < r + 2.0 * w) { - float per = 0.0; - if(rDistance < r + w) { - float p = smoothstep(0.0,1.0,(rDistance - r) / w); - p*=p; - outgoingLight = mix(outgoingLight, uColor, p); - } else { - - float p = smoothstep(0.0,1.0,(rDistance - r - w) / w); - - outgoingLight = mix(uColor, outgoingLight, p); - } - gl_FragColor = vec4(outgoingLight, diffuseColor.a); - } else { - gl_FragColor = vec4(outgoingLight, 0.0); - } - `)}}}class nP{constructor({scene:e,time:n},a){this.scene=e,this.time=n,this.instance=null;let i={position:new _0(0,0,0),gridSize:100,gridDivision:20,gridColor:2635578,shapeSize:1,shapeColor:9345950,pointSize:.2,pointColor:2635578,pointLayout:{row:200,col:200},pointBlending:wA};this.options=Object.assign({},i,a),this.init()}init(){let e=new Ge;e.name="Grid";let n=this.createGridHelp(),a=this.createShapes(),i=this.createPoint();e.add(n,a,i),e.position.copy(this.options.position),this.instance=e,this.scene.add(e)}createShapes(){let{gridSize:e,gridDivision:n,shapeSize:a,shapeColor:i}=this.options,r=e/n,o=e/2,s=new Pe({color:i,side:xt}),u=[];for(let f=0;f{this.update()}),this.sizes.on("resize",()=>{this.resize()})}create(e="",n="",a=!1){let i=document.createElement("div");i.innerHTML=e,i.className=n,i.style.visibility="hidden",i.style.position="absolute",n||(i.style.padding="10px",i.style.color="#fff",i.style.fontSize="12px",i.style.textAlign="center",i.style.background="rgba(0,0,0,0.6)",i.style.borderRadius="4px");let r=null;return a?r=new iP(i):r=new dp(i),r.init=(o,s)=>{r.element.innerHTML=o,r.element.style.visibility="visible",r.position.copy(s)},r.hide=()=>{r.element.style.visibility="hidden"},r.scaleHide=()=>{r.element.classList.add("scale-hidden")},r.show=()=>{r.element.style.visibility="visible",r.element.classList.remove("scale-hidden")},r.setParent=o=>{this.parent=o,o.add(r)},r.remove=()=>{this.parent.remove(r)},r}setLabelStyle(e,n=.1,a="x",i=Math.PI/2,r="none"){e.element.style.pointerEvents=r,e.scale.set(n,n,n),e.rotation[a]=i}setRenderLevel(e){this.css3dRender.domElement.style.zIndex=e}update(){this.css3dRender.render(this.scene,this.camera.instance)}destroy(){if(this.css3dRender){let e=this.css3dRender.domElement;e.parentNode.removeChild(e)}}resize(){let{width:e,height:n}=this.sizes;this.css3dRender.setSize(e,n)}}class Qf{constructor({time:e},n){this.time=e,this.options=Object.assign({},{width:10,scale:1,position:new _0(0,0,0),needRotate:!1,rotateSpeed:.001,material:new Pe({transparent:!0,opacity:1,depthTest:!0})},n);let a=new o5(this.options.width,this.options.width),i=new nt(a,this.options.material);i.position.copy(this.options.position),i.scale.set(this.options.scale,this.options.scale,this.options.scale),this.instance=i}setParent(e){e.add(this.instance),this.time.on("tick",()=>{this.update()})}update(){this.options.needRotate&&(this.instance.rotation.z+=this.options.rotateSpeed)}}class tr{constructor({time:e},n={}){this.instance=null,this.time=e,this.enable=!0,this.config=Object.assign({num:100,range:500,speed:.01,renderOrder:99,dir:"up",material:new Tr({map:tr.createTexture(),size:20,color:16777215,transparent:!0,opacity:1,depthTest:!1,vertexColors:!0,blending:Rt,sizeAttenuation:!0})},n),this.create()}create(){const{range:e,speed:n,dir:a,material:i,num:r,renderOrder:o}=this.config,s=[],u=[],m=[];for(let f=0;fa/2&&o===1&&(g=-a/2),g<-a/2&&o==-1&&(g=a/2),s.setX(p,f),s.setZ(p,g),u.setX(p,C),u.setY(p,F)}s.needsUpdate=!0,u.needsUpdate=!0}setParent(e){e.add(this.instance),this.time.on("tick",(n,a)=>{this.enable&&this.update(n,a)})}}class B4{constructor({},e={}){this.mapGroup=new Ge,this.coordinates=[],this.config=Object.assign({position:new _0(0,0,0),geoProjectionCenter:new gt(0,0),geoProjectionScale:120,data:"",renderOrder:1,merge:!1,material:new Pe({color:1582651,transparent:!0,opacity:1})},e),this.mapGroup.position.copy(this.config.position);let n=au(this.config.data);this.create(n)}geoProjection(e){return G6().center(this.config.geoProjectionCenter).scale(this.config.geoProjectionScale).translate([0,0])(e)}create(e){let{merge:n}=this.config,a=[];if(e.features.forEach(i=>{const r=new Ra;let{name:o,center:s=[],centroid:u=[]}=i.properties;this.coordinates.push({name:o,center:s,centroid:u}),r.userData.name=o,i.geometry.coordinates.forEach(m=>{m.forEach(p=>{const f=new pa;for(let C=0;C{var m,p,f;const a=new Ra;let{name:i,center:r=[],centroid:o=[]}=n.properties;this.coordinates.push({name:i,center:r,centroid:o});const s={depth:this.config.depth,bevelEnabled:(m=this.config.bevelEnabled)!=null?m:!0,bevelSegments:(p=this.config.bevelSegments)!=null?p:1,bevelThickness:(f=this.config.bevelThickness)!=null?f:.1};let u=[this.config.topFaceMaterial,this.config.sideMaterial];n.geometry.coordinates.forEach(g=>{g.forEach((C,F)=>{const z=new pa;for(let v2=0;v2 - #include - #include - #include - #include - - uniform float linewidth; - uniform vec2 resolution; - - attribute vec3 instanceStart; - attribute vec3 instanceEnd; - - attribute vec3 instanceColorStart; - attribute vec3 instanceColorEnd; - - #ifdef WORLD_UNITS - - varying vec4 worldPos; - varying vec3 worldStart; - varying vec3 worldEnd; - - #ifdef USE_DASH - - varying vec2 vUv; - - #endif - - #else - - varying vec2 vUv; - - #endif - - #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; - vUv = uv; - - #endif - - float aspect = resolution.x / resolution.y; - - // camera space - vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); - vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); - - #ifdef WORLD_UNITS - - worldStart = start.xyz; - worldEnd = end.xyz; - - #else - - vUv = uv; - - #endif - - // 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 - vec3 ndcStart = clipStart.xyz / clipStart.w; - vec3 ndcEnd = clipEnd.xyz / clipEnd.w; - - // direction - vec2 dir = ndcEnd.xy - ndcStart.xy; - - // account for clip-space aspect ratio - dir.x *= aspect; - dir = normalize( dir ); - - #ifdef WORLD_UNITS - - vec3 worldDir = normalize( end.xyz - start.xyz ); - vec3 tmpFwd = normalize( mix( start.xyz, end.xyz, 0.5 ) ); - vec3 worldUp = normalize( cross( worldDir, tmpFwd ) ); - vec3 worldFwd = cross( worldDir, worldUp ); - worldPos = position.y < 0.5 ? start: end; - - // height offset - float hw = linewidth * 0.5; - worldPos.xyz += position.x < 0.0 ? hw * worldUp : - hw * worldUp; - - // don't extend the line if we're rendering dashes because we - // won't be rendering the endcaps - #ifndef USE_DASH - - // cap extension - worldPos.xyz += position.y < 0.5 ? - hw * worldDir : hw * worldDir; - - // add width to the box - worldPos.xyz += worldFwd * hw; - - // endcaps - if ( position.y > 1.0 || position.y < 0.0 ) { - - worldPos.xyz -= worldFwd * 2.0 * hw; - - } - - #endif - - // project the worldpos - vec4 clip = projectionMatrix * worldPos; - - // shift the depth of the projected points so the line - // segments overlap neatly - vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; - clip.z = clipPose.z * clip.w; - - #else - - 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; - - #endif - - 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; - uniform float linewidth; - - #ifdef USE_DASH - - uniform float dashOffset; - uniform float dashSize; - uniform float gapSize; - - #endif - - varying float vLineDistance; - - #ifdef WORLD_UNITS - - varying vec4 worldPos; - varying vec3 worldStart; - varying vec3 worldEnd; - - #ifdef USE_DASH - - varying vec2 vUv; - - #endif - - #else - - varying vec2 vUv; - - #endif - - #include - #include - #include - #include - #include - - vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { - - float mua; - float mub; - - vec3 p13 = p1 - p3; - vec3 p43 = p4 - p3; - - vec3 p21 = p2 - p1; - - float d1343 = dot( p13, p43 ); - float d4321 = dot( p43, p21 ); - float d1321 = dot( p13, p21 ); - float d4343 = dot( p43, p43 ); - float d2121 = dot( p21, p21 ); - - float denom = d2121 * d4343 - d4321 * d4321; - - float numer = d1343 * d4321 - d1321 * d4343; - - mua = numer / denom; - mua = clamp( mua, 0.0, 1.0 ); - mub = ( d1343 + d4321 * ( mua ) ) / d4343; - mub = clamp( mub, 0.0, 1.0 ); - - return vec2( mua, mub ); - - } - - void main() { - - #include - - #ifdef USE_DASH - - if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps - - if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX - - #endif - - float alpha = opacity; - - #ifdef WORLD_UNITS - - // Find the closest points on the view ray and the line segment - vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; - vec3 lineDir = worldEnd - worldStart; - vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); - - vec3 p1 = worldStart + lineDir * params.x; - vec3 p2 = rayEnd * params.y; - vec3 delta = p1 - p2; - float len = length( delta ); - float norm = len / linewidth; - - #ifndef USE_DASH - - #ifdef USE_ALPHA_TO_COVERAGE - - float dnorm = fwidth( norm ); - alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); - - #else - - if ( norm > 0.5 ) { - - discard; - - } - - #endif - - #endif - - #else - - #ifdef USE_ALPHA_TO_COVERAGE - - // artifacts appear on some hardware if a derivative is taken within a conditional - float a = vUv.x; - float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; - float len2 = a * a + b * b; - float dlen = fwidth( len2 ); - - if ( abs( vUv.y ) > 1.0 ) { - - alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); - - } - - #else - - 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; - - } - - #endif - - #endif - - vec4 diffuseColor = vec4( diffuse, alpha ); - - #include - #include - - gl_FragColor = vec4( diffuseColor.rgb, alpha ); - - #include - #include - #include - #include - - } - `};class hp extends _A{constructor(e){super({type:"LineMaterial",uniforms:zm.clone(ki.line.uniforms),vertexShader:ki.line.vertexShader,fragmentShader:ki.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1))}}const eh=new _0,th=new _0,Et=new Ar,Nt=new Ar,R6=new Ar,Ms=new _0,Ps=new x9,It=new xA,nh=new _0,li=new Cr,ui=new Xl,L6=new Ar;let U6,_9;function ah(t,e,n){return L6.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),L6.multiplyScalar(1/L6.w),L6.x=_9/n.width,L6.y=_9/n.height,L6.applyMatrix4(t.projectionMatrixInverse),L6.multiplyScalar(1/L6.w),Math.abs(Math.max(L6.x,L6.y))}function lP(t,e){const n=t.matrixWorld,a=t.geometry,i=a.attributes.instanceStart,r=a.attributes.instanceEnd,o=Math.min(a.instanceCount,i.count);for(let s=0,u=o;sf&&Nt.z>f)continue;if(Et.z>f){const y2=Et.z-Nt.z,A2=(Et.z-f)/y2;Et.lerp(Nt,A2)}else if(Nt.z>f){const y2=Nt.z-Et.z,A2=(Nt.z-f)/y2;Nt.lerp(Et,A2)}Et.applyMatrix4(a),Nt.applyMatrix4(a),Et.multiplyScalar(1/Et.w),Nt.multiplyScalar(1/Nt.w),Et.x*=r.x/2,Et.y*=r.y/2,Nt.x*=r.x/2,Nt.y*=r.y/2,It.start.copy(Et),It.start.z=0,It.end.copy(Nt),It.end.z=0;const z=It.closestPointToPointParameter(Ms,!0);It.at(z,nh);const Y=Um.lerp(Et.z,Nt.z,z),i2=Y>=-1&&Y<=1,v2=Ms.distanceTo(nh)<_9*.5;if(i2&&v2){It.start.fromBufferAttribute(u,g),It.end.fromBufferAttribute(m,g),It.start.applyMatrix4(o),It.end.applyMatrix4(o);const y2=new _0,A2=new _0;U6.distanceSqToSegment(It.start,It.end,A2,y2),n.push({point:A2,pointOnLine:y2,distance:U6.origin.distanceTo(A2),object:t,face:null,faceIndex:g,uv:null,uv1:null})}}}class cP extends nt{constructor(e=new fp,n=new hp({color:Math.random()*16777215})){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,a=e.attributes.instanceEnd,i=new Float32Array(2*n.count);for(let o=0,s=0,u=n.count;o{const p=[];let f=null;n==="Line2"?(m[0].forEach(g=>{const[C,F]=this.geoProjection(g);p.push(C,-F,0)}),f=this.createLine2(p)):n==="Line3"?(m[0].forEach(g=>{const[C,F]=this.geoProjection(g);p.push(new _0(C,-F,0))}),f=this.createLine3(p)):m[0].forEach(g=>{const[C,F]=this.geoProjection(g);p.push(new _0(C,-F,0)),f=this.createLine(p)}),u.add(f)}),r.add(u))}return r}createLine3(e){const n=this.config.tubeRadius,a=256*10,i=4,r=!1,{material:o,renderOrder:s}=this.config,u=new Ym(e),m=new $m(u,a,n,i,r),p=new nt(m,o);return p.name="mapLine3",p.renderOrder=s,p}createLine2(e){const{material:n,renderOrder:a}=this.config,i=new mp;i.setPositions(e);let r=new dP(i,n);return r.name="mapLine2",r.renderOrder=a,r.computeLineDistances(),r}createLine(e){const{material:n,renderOrder:a,type:i}=this.config,r=new g6;r.setFromPoints(e);let o=new Yi(r,n);return o.renderOrder=a,o.name="mapLine",o}setParent(e){e.add(this.lineGroup)}}class ci{constructor(e,n){this.shader=null,this.config=Object.assign({uColor1:2781042,uColor2:860197,size:15,dir:"x"},n),this.init(e)}init(e){let{uColor1:n,uColor2:a,dir:i,size:r}=this.config,o={x:1,y:2,z:3};e.onBeforeCompile=s=>{this.shader=s,s.uniforms=t3(B2({},s.uniforms),{uColor1:{value:new ct(n)},uColor2:{value:new ct(a)},uDir:{value:o[i]},uSize:{value:r}}),s.vertexShader=s.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),s.fragmentShader=s.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - uniform float uDir; - uniform float uSize; - - void main() { - `),s.fragmentShader=s.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - - // https://github.com/mrdoob/three.js/pull/22425 - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - // vec3 gradient = mix(uColor1, uColor2, vPosition.x / 15.0); - vec3 gradient = vec3(0.0,0.0,0.0); - if(uDir==1.0){ - gradient = mix(uColor1, uColor2, vPosition.x/ uSize); - }else if(uDir==2.0){ - gradient = mix(uColor1, uColor2, vPosition.z/ uSize); - }else if(uDir==3.0){ - gradient = mix(uColor1, uColor2, vPosition.y/ uSize); - } - outgoingLight = outgoingLight * gradient; - - - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)}}}const fP={key:0,class:"business-panel-empty"},hP={key:2,class:"business-metrics"},mP=["data-chart-tooltip"],pP={key:3,class:"business-icon-metrics"},gP=["data-chart-tooltip"],yP={class:"business-icon-metric-copy"},vP={key:0},SP={key:4,class:"business-spotlight"},wP=["data-chart-tooltip"],bP={class:"business-spotlight-side"},TP=["data-chart-tooltip"],CP={key:0},AP={key:1,class:"business-panel-empty"},_P={key:0,class:"business-ring-visual"},xP={class:"business-ring-chart",viewBox:"0 0 160 160",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},MP=["stroke","stroke-dasharray","stroke-dashoffset","data-chart-tooltip"],PP={class:"business-ring-inner"},kP={key:1,class:"business-donut-visual"},EP={class:"business-three-pie-center"},NP={class:"business-donut-legend"},RP=["data-chart-tooltip"],LP={key:1,class:"business-panel-empty"},IP={class:"business-rose-visual"},FP={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},BP={class:"business-rose-guides"},DP=["x1","y1","x2","y2","stroke"],GP={class:"business-rose-segments"},UP=["d","fill","stroke","data-chart-tooltip"],OP={class:"business-rose-labels"},jP=["x","y","text-anchor"],zP={class:"business-donut-legend business-rose-legend"},YP=["data-chart-tooltip"],$P={key:1,class:"business-panel-empty"},WP={key:7,class:"business-structure"},VP={class:"business-structure-overview"},HP={class:"business-structure-band"},KP=["title","data-chart-tooltip"],qP={class:"business-structure-list"},JP=["data-chart-tooltip"],QP={key:1,class:"business-panel-empty"},ZP={key:8,class:"business-capacity"},XP=["data-chart-tooltip"],ek={class:"business-capacity-band"},tk=["title","data-chart-tooltip"],nk={class:"business-capacity-list"},ak=["data-chart-tooltip"],ik=["data-chart-tooltip"],rk={key:1,class:"business-panel-empty"},ok=["data-chart-tooltip"],sk={key:0,class:"business-bar-rank"},lk={class:"business-bar-name"},uk={class:"business-bar-track"},ck={key:0},dk={key:1},fk={key:0,class:"business-column-trend",viewBox:"0 0 320 90",preserveAspectRatio:"none","aria-hidden":"true"},hk=["points"],mk=["points"],pk=["cx","cy"],gk={key:1,class:"business-column-unit"},yk=["data-hover-value","title","data-chart-tooltip"],vk={class:"business-column-value"},Sk={key:0},wk={key:0,class:"business-project-search"},bk=["placeholder"],Tk={class:"business-project-frame"},Ck=["tabindex","onClick","onKeydown"],Ak=["title"],_k={key:0},xk={key:0},Mk=["onClick","onKeydown"],Pk={key:2},kk=["aria-label"],Ek={key:4},Nk={key:0,class:"business-project-empty"},Rk={key:12,class:"business-project-ledger"},Lk={class:"business-project-search"},Ik=["placeholder"],Fk={class:"business-project-ledger__summary"},Bk={class:"business-project-ledger__summary-main"},Dk={key:0,class:"business-project-ledger__pager"},Gk=["disabled"],Uk=["disabled"],Ok=["tabindex","onClick","onKeydown"],jk={class:"business-project-ledger__info"},zk=["title"],Yk=["title"],$k=["onClick","onKeydown"],Wk={key:1,class:"business-project-ledger__unlocated"},Vk={key:0,class:"business-project-empty"},Hk={key:13,class:"business-spec-grid"},Kk={class:"business-spec-grid__index"},qk=["title"],Jk={class:"business-spec-grid__count"},Qk={key:0},Zk={class:"business-spec-grid__specs"},Xk=["title"],eE={key:0},tE={key:0,class:"business-support-matrix__note"},nE={class:"business-support-matrix__head"},aE={key:0},iE={class:"business-support-matrix__body"},rE=["title"],oE=["title"],sE={class:"business-table-head"},lE={class:"business-table-body"},uE=["data-chart-tooltip"],cE={class:"business-table-name"},dE={class:"business-table-value"},fE={key:0},hE={class:"business-stack-legend"},mE={key:0,class:"business-stack-unit"},pE={class:"business-stack-chart"},gE=["data-hover-value","title","data-chart-tooltip"],yE={key:0,class:"business-stack-total"},vE={key:0},SE={class:"business-stack-track"},wE=["data-chart-tooltip"],bE={key:0,class:"business-column-unit business-peak-unit"},TE=["data-hover-value","title","data-chart-tooltip"],CE={key:0},AE={key:18,class:"business-line"},_E={viewBox:"0 0 320 86",preserveAspectRatio:"none","aria-hidden":"true"},xE=["points"],ME=["points"],PE=["cx","cy"],kE=["cx","cy","onMouseenter"],EE=["onMouseenter"],NE={key:0},RE=["data-chart-tooltip"],LE={class:"business-balance-gauge-head"},IE={class:"business-balance-gauge-ring"},FE={class:"business-balance-gauge-value"},BE={key:0},DE={class:"business-balance-gauge-name"},GE={key:0,class:"business-balance-gauge-extra"},UE=["data-chart-tooltip"],OE={class:"business-gauge-visual"},jE={viewBox:"0 0 152 96",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},zE=["stroke-dasharray"],YE={class:"business-gauge-value"},$E={key:0},WE={class:"business-gauge-name"},VE={key:0,class:"business-gauge-extra"},HE=["data-chart-tooltip"],KE={key:0},qE={class:"business-split-band"},JE=["data-chart-tooltip"],QE={class:"business-split-list"},ZE=["data-chart-tooltip"],ih=3e3,wn={__name:"BusinessPanelRenderer",props:{panel:{type:Object,default:()=>({rows:[]})},compact:{type:Boolean,default:!1},columnLabelStandard:{type:Boolean,default:!1}},emits:["row-select"],setup(t,{emit:e}){const n=t,a=e,i=[l5.accentCyan,l5.accentMint,l5.accentWater,l5.accentOrange,"#16b6e8","#a8fbff"],r=r2(()=>{var D;return((D=n.panel)==null?void 0:D.type)||"rank"}),o=r2(()=>{var D;return(((D=n.panel)==null?void 0:D.rows)||[]).filter(u2=>u2==null?void 0:u2.name)}),s=r2(()=>o.value.map(D=>t3(B2({},D),{value:d0(D)})).filter(D=>D.value>0)),u=r2(()=>o.value.map(D=>d0(D)).filter(D=>D>0)),m=r2(()=>Math.max(...u.value,1)),p=r2(()=>u.value.reduce((D,u2)=>D+u2,0)),f=r2(()=>o.value.filter(D=>d0(D)>0)),g=r2(()=>{var D;return["raceBar","raceBarNoWrap","raceBarRelaxed","degradation"].includes((D=n.panel)==null?void 0:D.variant)}),C=r2(()=>r.value==="line"?o.value.filter(D=>(D==null?void 0:D.value)!==void 0&&(D==null?void 0:D.value)!==null&&(D==null?void 0:D.value)!==""):o.value.filter(D=>d0(D)>0)),F=r2(()=>C.value),z=r2(()=>r.value!=="column"?"":z3()),Y=r2(()=>r.value!=="peak"?"":z3()),i2=r2(()=>o.value.filter(D=>d0(D)>0)),v2=r2(()=>{var D;return C.value.slice(0,((D=n.panel)==null?void 0:D.limit)||8)}),y2=r2(()=>{var D;return o.value.filter(u2=>(u2==null?void 0:u2.value)!==void 0&&(u2==null?void 0:u2.value)!==null&&(u2==null?void 0:u2.value)!=="").slice(0,((D=n.panel)==null?void 0:D.limit)||6)}),A2=r2(()=>{var D;return o.value.filter(u2=>(u2==null?void 0:u2.value)!==void 0&&(u2==null?void 0:u2.value)!==null&&(u2==null?void 0:u2.value)!=="").slice(0,((D=n.panel)==null?void 0:D.limit)||3)}),S2=r2(()=>{var D;return((D=n.panel)==null?void 0:D.segments)||[]}),Q2=r2(()=>o.value.filter(D=>{var u2;return de(D)>0||((u2=n.panel)==null?void 0:u2.showZero)===!0})),X2=r2(()=>Math.max(...Q2.value.map(D=>de(D)),1)),c3=a3(""),p3=a3(null),l3=[{key:"name",label:"项目名称",field:"name",width:"45%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"13%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"20%",className:"business-project-col-category"},{key:"scale",label:"规模",field:"value",width:"22%",align:"right",strong:!0,unitField:"unit",className:"business-project-col-scale"}],b3=r2(()=>{var u2;return(Array.isArray((u2=n.panel)==null?void 0:u2.columns)&&n.panel.columns.length?n.panel.columns:l3).map((K2,i1)=>({key:K2.key||K2.field||`column-${i1}`,label:K2.label||K2.title||K2.name||"",field:K2.field||K2.dataIndex||K2.key,fields:K2.fields||[],width:K2.width,align:K2.align,strong:!!K2.strong,unit:K2.unit,unitField:K2.unitField,fallback:K2.fallback,format:K2.format,icon:K2.icon,action:K2.action,className:K2.className}))}),N3=r2(()=>{var D;return((D=n.panel)==null?void 0:D.rowSelectOnClick)!==!1}),_3=r2(()=>{var D;return((D=n.panel)==null?void 0:D.searchPlaceholder)||"搜索项目"}),J3=r2(()=>{var D;return((D=n.panel)==null?void 0:D.emptyText)||"无匹配项目"}),R3=r2(()=>{var u2;const D=Array.isArray((u2=n.panel)==null?void 0:u2.searchKeys)?n.panel.searchKeys:[];return D.length?D:[...b3.value.flatMap(K2=>[K2.field,...K2.fields||[]]),"projectName","category","year","measure","townships","metric"].filter(Boolean)}),Z3=r2(()=>{const D=N(c3.value);return D?o.value.filter(u2=>N(_(u2)).includes(D)):d(o.value)}),M1=a3(1),b1=r2(()=>{var D;return Math.max(1,Number((D=n.panel)==null?void 0:D.pageSize)||15)}),j1=r2(()=>Z3.value),a1=r2(()=>Math.max(1,Math.ceil(j1.value.length/b1.value))),G1=r2(()=>{const D=Math.min(M1.value,a1.value),u2=Math.max(0,D-1)*b1.value;return j1.value.slice(u2,u2+b1.value)}),s0=r2(()=>Math.max(1,G1.value.length)),i0=r2(()=>{var D;return((D=n.panel)==null?void 0:D.summaryValue)||M3(o.value.length)}),r0=r2(()=>{var D;return((D=n.panel)==null?void 0:D.summaryLabel)||"条建设台账"}),q1=r2(()=>o.value.filter(D=>D==null?void 0:D.canLocate).length),h3=r2(()=>o.value.filter(D=>D==null?void 0:D.name)),O3=r2(()=>o.value.filter(D=>D==null?void 0:D.name)),V3=r2(()=>{var D;return!!((D=n.panel)!=null&&D.showTotal)}),i3=r2(()=>o.value.find(D=>["forage-total","wetland-yield-total"].includes(D.key))||o.value[0]),U2=r2(()=>o.value.filter(D=>["forage-edible","forage-unavailable","wetland-yield-edible","wetland-yield-unavailable"].includes(D.key))),D3=r2(()=>o.value.find(D=>["forage-top-town","wetland-yield-top-town"].includes(D.key))),F3=a3(0),u1=a3(null),A1=a3(null),S3=a3(!0),E=a3({visible:!1,x:0,y:0,title:"",lines:[]});let C3=null,H3=null;const _1=r2(()=>{var D,u2;return`${((D=n.panel)==null?void 0:D.key)||((u2=n.panel)==null?void 0:u2.title)||"pie"}-${s.value.map(K2=>`${K2.name}:${K2.value}`).join("|")}`}),s1=r2(()=>{const i1=typeof window=="undefined"?1920:window.innerWidth,G3=typeof window=="undefined"?1080:window.innerHeight,B3=Math.min(i1-190-8,E.value.x+14),y1=Math.min(G3-82-8,E.value.y+14);return{left:`${Math.max(8,B3)}px`,top:`${Math.max(8,y1)}px`}}),B1=r2(()=>{const D=U1.value;return D?F3.value%D:0}),U1=r2(()=>{var D;return r.value==="structure"?i2.value.length:r.value==="donut"||r.value==="rose"?s.value.length:r.value==="bar"&&((D=n.panel)==null?void 0:D.variant)==="capacity"?U2.value.length:r.value==="bar"||r.value==="column"?C.value.length:r.value==="table"?F.value.length:r.value==="line"?C.value.length:r.value==="balanceGaugeGrid"?A2.value.length:r.value==="gauge"?y2.value.length:r.value==="stackColumn"?Q2.value.length:r.value==="split"?f.value.length:0}),R1=r2(()=>s.value[B1.value]||s.value[0]);r2(()=>i2.value[B1.value]||i2.value[0]);const N1=r2(()=>o.value[0]),G0=r2(()=>o.value.slice(0,4).map((D,u2)=>t3(B2({},D),{icon:T1(D,u2)}))),T0=r2(()=>i2.value.map((D,u2)=>t3(B2({},D),{displayIndex:u2}))),S0=r2(()=>{var D;return r.value!=="donut"?"standard":((D=n.panel)==null?void 0:D.variant)==="ring"?"ring":"three"}),oe=r2(()=>{const D=s.value,u2=D.length;if(!u2)return[];const K2=52,i1=2*Math.PI*K2,G3=D.reduce((k1,Z)=>k1+d0(Z),0)||1,B3=u2>1?Math.min(12,Math.max(7,i1*.028)):0;let y1=0;return D.map((k1,Z)=>{const G2=d0(k1)/G3*i1,z2=u2>1?Math.max(5,G2-B3):i1,h2=y1+(u2>1?B3/2:0);return y1+=G2,{key:k1.key||k1.name||Z,index:Z,item:k1,color:A3(Z),dasharray:`${z2.toFixed(2)} ${i1.toFixed(2)}`,dashoffset:`${(-h2).toFixed(2)}`}})}),z0=r2(()=>{const D=s.value,u2=D.length;if(!u2)return[];const K2=Math.max(...D.map(B3=>d0(B3)),1),i1=360/u2,G3=Math.min(8,i1*.16);return D.map((B3,y1)=>{const k1=d0(B3),Z=y1===B1.value,_2=36+Math.sqrt(k1/K2)*31+(Z?5:0),G2=17,z2=-90+y1*i1+G3/2,h2=-90+(y1+1)*i1-G3/2,o3=(z2+h2)/2,J2=L2(75,75,_2+3,o3),m3=L2(75,75,_2+15,o3),k3=L2(75,75,_2+20,o3);return{key:B3.key||B3.name||y1,index:y1,item:B3,color:A3(y1),path:v3(75,75,G2,_2,z2,h2),lineStart:J2,lineEnd:m3,label:k3,anchor:Math.cos(o3*Math.PI/180)>=0?"start":"end"}})});jn(()=>{y0(),X1()}),On(()=>{je(),h0()}),ie(()=>{var D;return[(D=n.panel)==null?void 0:D.key,o.value.length]},()=>{F3.value=0,u1.value=null,c3.value="",M1.value=1,p3.value=null,Te(),X1()}),ie(c3,()=>{M1.value=1}),ie(S3,()=>{X1()});const P0=r2(()=>{const D=C.value,u2=320,K2=66,i1=10,G3=D.length>1?u2/(D.length-1):u2,B3=D.map(_2=>d0(_2)).filter(_2=>Number.isFinite(_2)&&_2>=0),y1=B3.length?Math.min(...B3):0,k1=B3.length?Math.max(...B3):1,Z=Math.max(k1-y1,k1*.08,1);return D.map((_2,G2)=>{const z2=d0(_2);return{x:Math.round(G2*G3),y:Math.round(i1+K2-(z2-y1)/Z*K2),item:_2}})}),x2=r2(()=>P0.value.map(D=>`${D.x},${D.y}`).join(" ")),j2=r2(()=>P0.value.length?`0,86 ${x2.value} 320,86`:""),H2=r2(()=>{var D,u2;return r.value==="column"&&(((D=n.panel)==null?void 0:D.lineOverlay)===!0||((u2=n.panel)==null?void 0:u2.variant)==="trendColumn")&&C.value.length>1}),w3=r2(()=>{if(!H2.value)return[];const D=C.value,u2=D.map(_2=>d0(_2)).filter(_2=>Number.isFinite(_2)&&_2>=0),K2=Math.max(...u2,1),i1=Math.min(...u2,0),G3=Math.max(K2-i1,K2*.08,1),B3=320,y1=9,k1=67,Z=D.length>1?B3/(D.length-1):0;return D.map((_2,G2)=>{const z2=d0(_2);return{key:_2.key||_2.name||G2,x:Number((G2*Z).toFixed(2)),y:Number((y1+k1-(z2-i1)/G3*k1).toFixed(2))}})}),d1=r2(()=>w3.value.map(D=>`${D.x},${D.y}`).join(" ")),O1=r2(()=>w3.value.length?`0,82 ${d1.value} 320,82`:""),V1=r2(()=>C.value),I0=r2(()=>({gridTemplateColumns:`repeat(${Math.max(V1.value.length,1)}, minmax(0, 1fr))`})),F0=r2(()=>Number.isInteger(u1.value)?P0.value[u1.value]:null),O0=r2(()=>P0.value.length?Number.isInteger(u1.value)?u1.value:B1.value:0),Z1=r2(()=>F0.value?F0.value:P0.value[O0.value]||P0.value[0]),Y0=r2(()=>{const D=Z1.value;if(!D)return{};const u2=D.x/320*100;return{left:`${Math.min(84,Math.max(16,u2))}%`,top:"6px",transform:"translateX(-50%)"}});function d0(D){const u2=Number(D==null?void 0:D.value);if(!Number.isNaN(u2)&&u2>0)return u2;const K2=Number(D==null?void 0:D.percent);return Number.isNaN(K2)?0:K2}function de(D){const u2=(D==null?void 0:D.segments)||(D==null?void 0:D.values)||{};return S2.value.reduce((K2,i1)=>K2+(Number(u2[i1.key])||0),0)}function Re(D){const u2=de(D),K2=(D==null?void 0:D.segments)||(D==null?void 0:D.values)||{};return u2?S2.value.map((i1,G3)=>{var k1,Z,_2;const B3=Number(K2[i1.key])||0,y1=((k1=n.panel)==null?void 0:k1.variant)==="dual"||((Z=n.panel)==null?void 0:Z.variant)==="parkSlim"||((_2=n.panel)==null?void 0:_2.sharedScale)===!0?X2.value:u2;return t3(B2({},i1),{value:B3,percent:Math.max(B3>0?3:0,B3/Math.max(y1,1)*100),color:H1(i1,G3)})}):[]}function H1(D,u2){var K2;return(K2=n.panel)!=null&&K2.preserveColors&&(D!=null&&D.color||D!=null&&D.fillColor)?D.color||D.fillColor:A3(u2)}function M3(D){const u2=Number(D);return Number.isNaN(u2)?"--":Number.isInteger(u2)?`${u2}`:`${Number(u2.toFixed(2))}`}function d2(D){return(D==null?void 0:D.displayValue)!==void 0&&(D==null?void 0:D.displayValue)!==null&&(D==null?void 0:D.displayValue)!==""?D.displayValue:(D==null?void 0:D.value)===void 0||(D==null?void 0:D.value)===null||(D==null?void 0:D.value)===""?"--":M3(D.value)}function $2(D){var i1;const u2=(D==null?void 0:D.displayUnit)||(D==null?void 0:D.unit)||"";if(!u2)return"";const K2=String((i1=d2(D))!=null?i1:"");return K2&&K2.endsWith(String(u2))?"":u2}function z3(){const D=[...new Set(C.value.map(u2=>(u2==null?void 0:u2.displayUnit)||(u2==null?void 0:u2.unit)).filter(Boolean))];return D.length===1?D[0]:""}function d3(D){const u2=$2(D);return u2?z.value===u2?"":u2:""}function $3(D){const u2=$2(D);return u2?Y.value===u2?"":u2:""}function X3(D){return String(D||"").trim().replace(/\s+/g,"").replace(/[乡镇]$/u,"")}function P2(D){return Array.from(X3(D)).slice(0,3).join("")}function n3(D){var u2;return((u2=n.panel)==null?void 0:u2.labelMode)==="horizontal"?X3(D):n.columnLabelStandard?P2(D):X3(D)}function s3(D){const u2=X3(D==null?void 0:D.name)||"数据",K2=$2(D);return`${u2}:${d2(D)}${K2}`}function m1(D,u2=[]){return[X3(D)||"数据",...u2.filter(K2=>K2!=null&&String(K2).trim()!=="").map(K2=>String(K2))].join(` -`)}function w1(D,u2=[]){if(!D)return"";const K2=$2(D),i1=d2(D),G3=[];return i1!=="--"&&G3.push(`数值:${i1}${K2}`),D.extra&&G3.push(String(D.extra)),m1(D.name,[...G3,...u2])}function f0(D){return w1(D,[`占比:${W1(D)}`])}function g0(D){return w1(D,[`占比:${C1(D)}`])}function B0(D){return w1(D,[`占比:${I1(D)}`])}function p0(D){var G3;const u2=We(D),K2=Re(D).filter(B3=>B3.value>0).map(B3=>`${B3.name}:${B3.valuePrefix||""}${M3(B3.value)}${u2}`),i1=((G3=n.panel)==null?void 0:G3.totalLabel)||"合计";return m1(D==null?void 0:D.name,[`${i1}:${Ze(D)}${M3(de(D))}${u2}`,...K2])}function ve(D,u2){const K2=We(D);return m1(`${X3(D==null?void 0:D.name)} ${(u2==null?void 0:u2.name)||""}`,[`数值:${(u2==null?void 0:u2.valuePrefix)||""}${M3((u2==null?void 0:u2.value)||0)}${K2}`])}function u0(D){return w1(D,[`状态:${q2(D)}`])}function be(D){const u2=p.value?`${M3(d0(D)/p.value*100)}%`:"--";return w1(D,[`占比:${u2}`])}function xe(D){var G3,B3,y1;const u2=(B3=(G3=D.target)==null?void 0:G3.closest)==null?void 0:B3.call(G3,"[data-chart-tooltip], [data-hover-value]");if(!u2||!((y1=A1.value)!=null&&y1.contains(u2))){Te();return}const K2=u2.getAttribute("data-chart-tooltip")||u2.getAttribute("data-hover-value")||"",i1=String(K2).split(/\n+/).map(k1=>k1.trim()).filter(Boolean);if(!i1.length){Te();return}E.value={visible:!0,x:D.clientX,y:D.clientY,title:i1[0],lines:i1.slice(1)}}function Te(){E.value.visible&&(E.value={visible:!1,x:0,y:0,title:"",lines:[]})}function Fe(D){const u2=X3(D==null?void 0:D.name)||"数据",K2=We(D);return`${u2}:${Ze(D)}${M3(de(D))}${K2}`}function We(D){var u2;return(D==null?void 0:D.displayUnit)||(D==null?void 0:D.unit)||((u2=n.panel)==null?void 0:u2.unit)||""}function Ze(D){const u2=(D==null?void 0:D.segments)||(D==null?void 0:D.values)||{};return S2.value.some(K2=>(K2==null?void 0:K2.valuePrefix)&&Number(u2[K2.key])>0)?"≥":""}function F2(){var D,u2,K2;return((D=n.panel)==null?void 0:D.showValue)===!0||((u2=n.panel)==null?void 0:u2.variant)==="dual"||((K2=n.panel)==null?void 0:K2.variant)==="parkSlim"}function N(D){return String(D||"").trim().toLowerCase()}function _(D){const u2=R3.value.map(K2=>h(D,{field:K2})).filter(K2=>K2!=null);return[D==null?void 0:D.searchText,...u2].filter(Boolean).join(" ")}function d(D=[]){var K2;const u2=Number((K2=n.panel)==null?void 0:K2.maxRows);return!Number.isFinite(u2)||u2<=0?D:D.slice(0,u2)}function h(D,u2){const K2=[u2==null?void 0:u2.field,...(u2==null?void 0:u2.fields)||[]].filter(Boolean);for(const i1 of K2){const G3=String(i1).split(".").reduce((B3,y1)=>B3==null?void 0:B3[y1],D);if(G3!=null&&G3!=="")return G3}}function y(D,u2){const K2=h(D,u2);if((u2==null?void 0:u2.format)==="townVillage"){const i1=String((D==null?void 0:D.town)||"").trim(),G3=String((D==null?void 0:D.village)||"").trim();return[i1,G3].filter(Boolean).join(" / ")||(u2==null?void 0:u2.fallback)||"--"}return K2==null||K2===""?(u2==null?void 0:u2.fallback)||"--":(u2==null?void 0:u2.format)==="number"?M3(K2):(u2==null?void 0:u2.format)==="displayValue"?d2({value:K2}):String(K2)}function w(D,u2){return u2!=null&&u2.unitField&&(D!=null&&D[u2.unitField])?D[u2.unitField]:(u2==null?void 0:u2.unit)||""}function x(D){return{"business-project-name":(D==null?void 0:D.key)==="name","business-project-locate":(D==null?void 0:D.key)==="locate","is-right":(D==null?void 0:D.align)==="right","is-center":(D==null?void 0:D.align)==="center","is-strong":D==null?void 0:D.strong}}function k(D,u2={}){(u2==null?void 0:u2.action)==="locate"&&a2(D,!0)}function a2(D,u2=!1){!u2&&!N3.value||(D==null?void 0:D.canLocate)!==!1&&(p3.value=(D==null?void 0:D.key)||(D==null?void 0:D.name)||null,a("row-select",D))}function e2(D=0){const u2=M1.value+Number(D||0);M1.value=Math.max(1,Math.min(a1.value,u2))}function s2(D={}){return D.ledgerName||D.name||"--"}function J(D={}){return D.ledgerLocation||[D.town,D.village].filter(Boolean).join(" · ")||"--"}function H(D={},u2={}){var i1,G3,B3,y1;const K2=Number((y1=(B3=(i1=D==null?void 0:D.segments)==null?void 0:i1[u2.key])!=null?B3:(G3=D==null?void 0:D.values)==null?void 0:G3[u2.key])!=null?y1:0);return!Number.isFinite(K2)||K2<=0?"—":`${(u2==null?void 0:u2.valuePrefix)||""}${M3(K2)}`}function R2(D={}){const u2=S2.value.map(G3=>{var B3,y1,k1,Z;return Number((Z=(k1=(B3=D==null?void 0:D.segments)==null?void 0:B3[G3.key])!=null?k1:(y1=D==null?void 0:D.values)==null?void 0:y1[G3.key])!=null?Z:0)}),K2=u2.reduce((G3,B3)=>G3+(Number.isFinite(B3)&&B3>0?B3:0),0);return K2?`${S2.value.some((G3,B3)=>(G3==null?void 0:G3.valuePrefix)&&u2[B3]>0)?"≥":""}${M3(K2)}`:"—"}function p2(D){const u2=D==null?void 0:D.currentTarget;if(!u2||u2.scrollWidth<=u2.clientWidth)return;D.preventDefault();const K2=Math.abs(D.deltaX)>Math.abs(D.deltaY)?D.deltaX:D.deltaY;u2.scrollLeft+=K2}function c2(D){var B3,y1;const u2=Number(D==null?void 0:D.scaleValue);if(!(r.value==="column"&&((B3=n.panel)==null?void 0:B3.variant)==="plain")&&!Number.isNaN(u2)&&u2>0)return Math.max(8,Math.min(100,Math.round(u2)));const i1=d0(D);if(!i1)return 8;const G3=r.value==="column"&&((y1=n.panel)==null?void 0:y1.variant)==="plain"?Math.max(...u.value,i1):m.value;return Math.max(8,Math.round(i1/G3*100))}function f2(D,u2){const K2=c2(D),i1=Math.max(.04,Math.min(.1,K2/360));return{"--heat-color":A3(u2),"--heat-bg":f3(A3(u2),i1)}}function O2(D){const u2=Number(D==null?void 0:D.value);return Number.isFinite(u2)?u2:0}function o2(){var K2;const D=Number((K2=n.panel)==null?void 0:K2.max);if(Number.isFinite(D)&&D>0)return D;const u2=Math.max(...y2.value.map(i1=>O2(i1)),100);return Math.max(u2,100)}function T(D){const u2=O2(D),K2=o2();return!K2||u2<=0?0:Number(Math.min(100,u2/K2*100).toFixed(1))}function j(D){return Number((-180+T(D)*1.8).toFixed(1))}function K(D,u2){var K2;return(K2=n.panel)!=null&&K2.preserveColors&&(D!=null&&D.color||D!=null&&D.fillColor)?D.color||D.fillColor:A3(u2)}function E2(D){const u2=Math.max(0,O2(D)),K2=Math.max(5,...A2.value.map(i1=>Math.max(0,O2(i1))));return Math.max(6,Math.min(100,Number((u2/K2*100).toFixed(1))))}function D2(D){const u2=O2(D),K2=String((D==null?void 0:D.status)||(D==null?void 0:D.level)||"");return u2>20||/严重|重度|高超载/.test(K2)?"#8bf7ff":u2>10||/中度|预警/.test(K2)?"#48cfff":u2>5||/轻度/.test(K2)?"#b9fbff":u2<=0||/总体可控|合理|正常|达标|无超载/.test(K2)?"#24f6c4":"#30dcff"}function Z2(D){return{"--balance-color":D2(D),"--balance-progress":`${E2(D)}%`}}function q2(D){if(D!=null&&D.status||D!=null&&D.level)return D.status||D.level;const u2=O2(D);return u2<0?"合理":u2<=5?"基本实现草畜平衡":u2<=10?"轻度超载":u2>100?"高超载":"超载预警"}function f3(D,u2=.2){const K2=String(D||"").replace("#","");if(K2.length!==6)return`rgba(48, 220, 255, ${u2})`;const i1=parseInt(K2,16),G3=i1>>16&255,B3=i1>>8&255,y1=i1&255;return`rgba(${G3}, ${B3}, ${y1}, ${u2})`}function P3(D){const u2=P0.value.length;if(!u2)return;const K2=D.currentTarget.getBoundingClientRect(),i1=K2.width?(D.clientX-K2.left)/K2.width:0,G3=Math.min(u2-1,Math.max(0,Math.round(i1*(u2-1))));u1.value=G3}function j3(D){const u2=d0(D);return!p.value||!u2?0:Math.max(6,u2/p.value*100)}function E3(D){const u2=d0(D);return!p.value||!u2?0:Math.max(2,u2/p.value*100)}function C1(D){if(!D)return"--";if(D.extra)return D.extra;const u2=d0(D);return!p.value||!u2?"--":`${M3(u2/p.value*100)}%`}function P1(){const D=d0(i3.value);return D>0?D:U2.value.reduce((u2,K2)=>u2+d0(K2),0)}function x1(D){const u2=P1(),K2=d0(D);return!u2||!K2?0:Math.max(6,K2/u2*100)}function I1(D){const u2=P1(),K2=d0(D);return!u2||!K2?"--":`${M3(K2/u2*100)}%`}function $1(D,u2){return["forage-edible","wetland-yield-edible"].includes(D==null?void 0:D.key)?"#24f6c4":["forage-unavailable","wetland-yield-unavailable"].includes(D==null?void 0:D.key)?"#8bf7ff":A3(u2)}function W1(D){const u2=d0(D),K2=Number(D==null?void 0:D.count)||p.value;return!u2||!K2?"0%":`${M3(u2/K2*100)}%`}function E0(D){const u2=d0(D),K2=Number(D==null?void 0:D.count)||p.value;return!u2||!K2?0:u2/K2*100}function L2(D,u2,K2,i1){const G3=i1*Math.PI/180;return{x:Number((D+K2*Math.cos(G3)).toFixed(2)),y:Number((u2+K2*Math.sin(G3)).toFixed(2))}}function v3(D,u2,K2,i1,G3,B3){const y1=L2(D,u2,i1,G3),k1=L2(D,u2,i1,B3),Z=L2(D,u2,K2,B3),_2=L2(D,u2,K2,G3),G2=B3-G3>180?1:0;return[`M ${y1.x} ${y1.y}`,`A ${i1} ${i1} 0 ${G2} 1 ${k1.x} ${k1.y}`,`L ${Z.x} ${Z.y}`,`A ${K2} ${K2} 0 ${G2} 0 ${_2.x} ${_2.y}`,"Z"].join(" ")}function A3(D){return i[D%i.length]}function q3(D,u2={}){var K2;return(K2=n.panel)!=null&&K2.preserveColors&&(u2!=null&&u2.color||u2!=null&&u2.fillColor)?u2.color||u2.fillColor:A3(D)}function T1(D,u2){if(D!=null&&D.icon)return String(D.icon).replace(/[^a-z0-9-]/gi,"");const K2=String((D==null?void 0:D.name)||"");return K2.includes("利用率")||K2.includes("占比")?"rate":K2.includes("重度")||K2.includes("退化")?"risk":K2.includes("可食")||K2.includes("供给")?"leaf":K2.includes("不可")?"stack":K2.includes("产量")||K2.includes("鲜草")?"yield":K2.includes("乡镇")?"town":K2.includes("面积")?"area":["yield","leaf","rate","risk"][u2%4]}function l0(){h0();const D=U1.value;S3.value&&(D<2||(C3=window.setInterval(()=>{F3.value=(F3.value+1)%D},ih)))}function X1(){S3.value?l0():h0()}function h0(){C3&&(window.clearInterval(C3),C3=null)}function y0(){Ve(),!(!A1.value||typeof window.IntersectionObserver!="function")&&(H3=new IntersectionObserver(D=>{const u2=D[0];S3.value=!!(u2!=null&&u2.isIntersecting)&&se()}),H3.observe(A1.value),window.requestAnimationFrame(Ve))}function je(){var D;(D=H3==null?void 0:H3.disconnect)==null||D.call(H3),H3=null}function Ve(){S3.value=se()}function se(){const D=A1.value;return D?!!(D.offsetParent||D.getClientRects().length):!0}function Le(D,u2={}){const K2=q3(D,u2);return`linear-gradient(90deg, ${f3(K2,.08)} 0%, ${f3(K2,.58)} 48%, ${K2} 82%, rgba(248,255,255,0.86) 100%)`}function g1(D,u2={}){var i1,G3;if(((i1=n.panel)==null?void 0:i1.variant)==="water"){const B3=q3(D,u2);return`linear-gradient(180deg, rgba(248,255,255,0.92) 0%, ${f3(B3,.88)} 18%, ${f3(B3,.68)} 58%, rgba(47, 151, 255, 0.18) 100%)`}if(((G3=n.panel)==null?void 0:G3.variant)==="plain"){const B3=q3(D,u2);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${f3(B3,.84)} 18%, ${f3(B3,.64)} 74%, ${f3(B3,.1)} 100%)`}const K2=q3(D,u2);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${K2} 18%, ${f3(K2,.62)} 72%, rgba(50, 220, 255, 0.08) 100%)`}return(D,u2)=>{var K2,i1,G3,B3,y1,k1,Z,_2,G2,z2,h2,o3,J2,m3,k3,P,I,G,T2,u3,V2;return O(),V("div",{ref_key:"panelRef",ref:A1,class:o1(["business-panel",[`is-${r.value}`,`is-${S0.value}`,{"is-compact":t.compact,"is-column-label-standard":t.columnLabelStandard,"is-column-label-horizontal":((K2=n.panel)==null?void 0:K2.labelMode)==="horizontal"}]]),onMousemove:xe,onMouseleave:Te},[o.value.length?r.value==="rank"?(O(),_e(Mf,{key:1,rows:o.value,compact:""},null,8,["rows"])):r.value==="metric"?(O(),V("div",hP,[(O(!0),V(Y3,null,e1(o.value.slice(0,4),W=>(O(),V("div",{key:W.key||W.name,class:"business-metric-item","data-chart-tooltip":w1(W)},[S("span",null,l2(W.name),1),S("strong",null,l2(d2(W)),1),S("em",null,l2(W.unit),1)],8,mP))),128))])):r.value==="iconMetric"?(O(),V("div",pP,[(O(!0),V(Y3,null,e1(G0.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-icon-metric-item",`is-tone-${e3%i.length}`]),"data-chart-tooltip":w1(W)},[S("i",{class:o1(["business-icon-metric-mark",`is-${W.icon}`])},[...u2[6]||(u2[6]=[S("span",null,null,-1)])],2),S("div",yP,[S("span",null,l2(W.name),1),S("strong",null,[Ae(l2(d2(W)),1),W.unit?(O(),V("em",vP,l2(W.unit),1)):U3("",!0)])])],10,gP))),128))])):r.value==="spotlight"?(O(),V("div",SP,[N1.value?(O(),V(Y3,{key:0},[S("div",{class:"business-spotlight-main","data-chart-tooltip":w1(N1.value)},[S("span",null,l2(N1.value.name),1),S("strong",null,[Ae(l2(d2(N1.value)),1),S("em",null,l2(N1.value.unit),1)]),S("small",null,l2(N1.value.extra||((i1=t.panel)==null?void 0:i1.note)||"核心业务指标"),1)],8,wP),S("div",bP,[(O(!0),V(Y3,null,e1(o.value.slice(1,4),(W,e3)=>(O(),V("div",{key:W.key||W.name,class:"business-spotlight-chip","data-chart-tooltip":w1(W)},[S("i",{style:o0({borderColor:A3(e3+1)})},null,4),S("span",null,l2(W.name),1),S("strong",null,[Ae(l2(d2(W)),1),S("em",null,l2(W.unit),1)]),W.extra?(O(),V("small",CP,l2(W.extra),1)):U3("",!0)],8,TP))),128))])],64)):(O(),V("div",AP,"暂无业务统计数据"))])):r.value==="donut"?(O(),V("div",{key:5,class:o1(["business-donut",[`is-variant-${S0.value}`,{"is-dense":s.value.length>5}]])},[s.value.length?(O(),V(Y3,{key:0},[S0.value==="ring"?(O(),V("div",_P,[(O(),V("svg",xP,[u2[7]||(u2[7]=S("circle",{class:"business-ring-halo",cx:"80",cy:"80",r:"39"},null,-1)),u2[8]||(u2[8]=S("circle",{class:"business-ring-track",cx:"80",cy:"80",r:"52"},null,-1)),(O(!0),V(Y3,null,e1(oe.value,W=>(O(),V("circle",{key:W.key,class:o1(["business-ring-segment",{"is-active":W.index===B1.value}]),cx:"80",cy:"80",r:"52",stroke:W.color,"stroke-dasharray":W.dasharray,"stroke-dashoffset":W.dashoffset,style:o0({color:W.color}),"data-chart-tooltip":f0(W.item)},null,14,MP))),128))])),S("div",PP,[S("strong",null,l2(W1(R1.value)),1),S("span",null,l2(((G3=R1.value)==null?void 0:G3.name)||"结构占比"),1)])])):(O(),V("div",kP,[(O(),_e(Wm,{key:_1.value,data:s.value,delay:ih,colors:i,opacity:.62,class:"business-three-pie"},{default:M0(({data:W})=>[S("div",EP,[S("strong",null,l2(W1(W)),1),S("span",null,l2((W==null?void 0:W.name)||"结构占比"),1)])]),_:1},8,["data"]))])),S("div",NP,[(O(!0),V(Y3,null,e1(s.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-donut-row",{"is-active":e3===B1.value}]),style:o0({"--row-color":A3(e3),"--row-percent":`${Math.max(4,E0(W))}%`}),"data-chart-tooltip":f0(W)},[S("i",{style:o0({borderColor:A3(e3)})},null,4),S("span",null,l2(W.name),1),S("strong",null,l2(d2(W)),1),S("em",null,l2(W.unit),1)],14,RP))),128))])],64)):(O(),V("div",LP,"暂无业务统计数据"))],2)):r.value==="rose"?(O(),V("div",{key:6,class:o1(["business-rose",{"is-dense":s.value.length>5}])},[s.value.length?(O(),V(Y3,{key:0},[S("div",IP,[(O(),V("svg",FP,[S("g",BP,[(O(!0),V(Y3,null,e1(z0.value,W=>(O(),V("line",{key:`guide-${W.key}`,x1:W.lineStart.x,y1:W.lineStart.y,x2:W.lineEnd.x,y2:W.lineEnd.y,stroke:W.color},null,8,DP))),128))]),S("g",GP,[(O(!0),V(Y3,null,e1(z0.value,W=>(O(),V("path",{key:W.key,class:o1(["business-rose-segment",{"is-active":W.index===B1.value}]),d:W.path,fill:W.color,stroke:W.color,"data-chart-tooltip":f0(W.item)},null,10,UP))),128))]),u2[9]||(u2[9]=S("circle",{class:"business-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),u2[10]||(u2[10]=S("circle",{class:"business-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),S("g",OP,[(O(!0),V(Y3,null,e1(z0.value,W=>(O(),V("text",{key:`label-${W.key}`,x:W.label.x,y:W.label.y,"text-anchor":W.anchor},l2(W.item.name),9,jP))),128))])]))]),S("div",zP,[(O(!0),V(Y3,null,e1(s.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-donut-row business-rose-row",{"is-active":e3===B1.value}]),"data-chart-tooltip":f0(W)},[S("i",{style:o0({borderColor:A3(e3),background:A3(e3),color:A3(e3)})},null,4),S("span",null,l2(W.name),1),S("strong",null,l2(d2(W)),1),S("em",null,l2(W.unit),1)],10,YP))),128))])],64)):(O(),V("div",$P,"暂无业务统计数据"))],2)):r.value==="structure"?(O(),V("div",WP,[i2.value.length?(O(),V(Y3,{key:0},[S("div",VP,[S("div",HP,[(O(!0),V(Y3,null,e1(i2.value,(W,e3)=>(O(),V("i",{key:W.key||W.name,class:o1({"is-active":e3===B1.value}),style:o0({width:`${E3(W)}%`,background:A3(e3),color:A3(e3)}),title:`${W.name}:${d2(W)}${W.unit||""} ${C1(W)}`,"data-chart-tooltip":g0(W)},null,14,KP))),128))])]),S("div",qP,[(O(!0),V(Y3,null,e1(T0.value,W=>(O(),V("div",{key:W.key||W.name,class:o1(["business-structure-row",{"is-active":W.displayIndex===B1.value}]),style:o0({"--row-color":A3(W.displayIndex),"--row-percent":`${Math.max(4,E3(W))}%`}),"data-chart-tooltip":g0(W)},[S("i",{style:o0({background:A3(W.displayIndex),color:A3(W.displayIndex)})},null,4),S("span",null,l2(W.name),1),S("strong",null,[Ae(l2(d2(W)),1),S("em",null,l2(W.unit),1)]),S("small",null,l2(C1(W)),1)],14,JP))),128))])],64)):(O(),V("div",QP,"暂无业务统计数据"))])):r.value==="bar"&&((B3=t.panel)==null?void 0:B3.variant)==="capacity"?(O(),V("div",ZP,[i3.value?(O(),V(Y3,{key:0},[S("div",{class:"business-capacity-head","data-chart-tooltip":w1(i3.value)},[S("span",null,l2(i3.value.name),1),S("strong",null,[Ae(l2(d2(i3.value)),1),S("em",null,l2(i3.value.unit),1)])],8,XP),S("div",ek,[(O(!0),V(Y3,null,e1(U2.value,(W,e3)=>(O(),V("i",{key:W.key||W.name,class:o1({"is-active":e3===B1.value}),style:o0({width:`${x1(W)}%`,background:$1(W,e3),color:$1(W,e3)}),title:`${W.name}:${d2(W)}${W.unit||""} ${I1(W)}`,"data-chart-tooltip":B0(W)},null,14,tk))),128))]),S("div",nk,[(O(!0),V(Y3,null,e1(U2.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-capacity-row",{"is-active":e3===B1.value}]),"data-chart-tooltip":B0(W)},[S("i",{style:o0({background:$1(W,e3),color:$1(W,e3)})},null,4),S("span",null,l2(W.name),1),S("strong",null,[Ae(l2(d2(W)),1),S("em",null,l2(W.unit),1)]),S("small",null,l2(I1(W)),1)],10,ak))),128))]),D3.value?(O(),V("div",{key:0,class:"business-capacity-town","data-chart-tooltip":w1(D3.value)},[S("span",null,l2(D3.value.name),1),S("strong",null,[Ae(l2(d2(D3.value)),1),S("em",null,l2(D3.value.unit),1)])],8,ik)):U3("",!0)],64)):(O(),V("div",rk,"暂无业务统计数据"))])):r.value==="bar"?(O(),V("div",{key:9,class:o1(["business-bars",{"is-dense":C.value.length>=5,"is-long":C.value.length>10,"is-scrollable":C.value.length>10,"is-single":((y1=t.panel)==null?void 0:y1.span)===1,"is-distribution":((k1=t.panel)==null?void 0:k1.variant)==="distribution","is-capacity":((Z=t.panel)==null?void 0:Z.variant)==="capacity","is-rank-bar":((_2=t.panel)==null?void 0:_2.variant)==="rankBar","is-park-bar":((G2=t.panel)==null?void 0:G2.variant)==="parkBar","is-race-bar":g.value,"is-few-rows":g.value&&C.value.length<=3,"is-degradation":((z2=t.panel)==null?void 0:z2.variant)==="degradation","is-race-nowrap":((h2=t.panel)==null?void 0:h2.variant)==="raceBarNoWrap","is-race-relaxed":((o3=t.panel)==null?void 0:o3.variant)==="raceBarRelaxed"}]),style:o0({"--bar-row-count":Math.max(C.value.length,1)}),onWheel:u2[0]||(u2[0]=ue(()=>{},["stop"]))},[(O(!0),V(Y3,null,e1(C.value,(W,e3)=>{var r1;return O(),V("div",{key:W.key||W.name,class:o1(["business-bar-row",{"is-active":e3===B1.value}]),style:o0({"--bar-color":q3(e3,W)}),"data-chart-tooltip":w1(W)},[((r1=t.panel)==null?void 0:r1.variant)==="rankBar"?(O(),V("span",sk,l2(e3+1),1)):U3("",!0),S("span",lk,l2(W.name),1),S("div",uk,[S("i",{style:o0({width:`${c2(W)}%`,background:Le(e3,W)})},null,4)]),S("strong",null,[Ae(l2(d2(W))+" ",1),W.unit?(O(),V("em",ck,l2(W.unit),1)):U3("",!0),W.extra?(O(),V("small",dk,l2(W.extra),1)):U3("",!0)])],14,ok)}),128))],38)):r.value==="column"?(O(),V("div",{key:10,class:o1(["business-columns",[`is-variant-${((J2=t.panel)==null?void 0:J2.variant)||"solid"}`,{"is-dense":C.value.length>6,"is-scrollable":C.value.length>6&&((m3=t.panel)==null?void 0:m3.scrollable)!==!1,"has-unit-label":!!z.value}]]),onWheel:ue(p2,["stop"])},[H2.value?(O(),V("svg",fk,[S("polyline",{class:"business-column-trend-area",points:O1.value},null,8,hk),S("polyline",{class:"business-column-trend-line",points:d1.value},null,8,mk),(O(!0),V(Y3,null,e1(w3.value,W=>(O(),V("circle",{key:W.key,class:"business-column-trend-dot",cx:W.x,cy:W.y,r:"2.3"},null,8,pk))),128))])):U3("",!0),z.value?(O(),V("small",gk,"单位:"+l2(z.value),1)):U3("",!0),(O(!0),V(Y3,null,e1(C.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-column-item",{"is-active":e3===B1.value,"is-zero":(W==null?void 0:W.zero)===!0||(W==null?void 0:W.isZero)===!0}]),"data-hover-value":s3(W),title:s3(W),"data-chart-tooltip":w1(W)},[S("div",{class:"business-column-track",style:o0({"--column-percent":`${c2(W)}%`})},[S("i",{style:o0({height:`${c2(W)}%`,background:g1(e3,W),"--column-load-delay":`${e3*.075}s`})},null,4),S("strong",vk,[Ae(l2(d2(W)),1),d3(W)?(O(),V("em",Sk,l2(d3(W)),1)):U3("",!0)])],4),S("span",null,l2(n3(W.name)),1)],10,yk))),128))],34)):r.value==="projectTable"?(O(),V("div",{key:11,class:o1(["business-project-table",{"is-without-search":((k3=t.panel)==null?void 0:k3.showSearch)===!1,"is-fill-rows":((P=t.panel)==null?void 0:P.fillRows)===!0}])},[((I=t.panel)==null?void 0:I.showSearch)!==!1?(O(),V("div",wk,[qe(S("input",{"onUpdate:modelValue":u2[1]||(u2[1]=W=>c3.value=W),type:"search",placeholder:_3.value},null,8,bk),[[s5,c3.value]])])):U3("",!0),S("div",Tk,[S("table",null,[S("colgroup",null,[(O(!0),V(Y3,null,e1(b3.value,W=>(O(),V("col",{key:W.key,class:o1(W.className),style:o0({width:W.width||void 0})},null,6))),128))]),S("thead",null,[S("tr",null,[(O(!0),V(Y3,null,e1(b3.value,W=>(O(),V("th",{key:W.key,class:o1(x(W))},l2(W.label),3))),128))])]),S("tbody",null,[(O(!0),V(Y3,null,e1(Z3.value,W=>(O(),V("tr",{key:W.key||W.name,class:o1({"is-active":p3.value===(W.key||W.name)}),tabindex:N3.value?0:-1,onClick:e3=>a2(W),onKeydown:[Bt(ue(e3=>a2(W),["prevent"]),["enter"]),Bt(ue(e3=>a2(W),["prevent"]),["space"])]},[(O(!0),V(Y3,null,e1(b3.value,e3=>(O(),V("td",{key:e3.key,class:o1(x(e3)),title:y(W,e3)},[e3.strong?(O(),V("strong",_k,[Ae(l2(y(W,e3)),1),w(W,e3)?(O(),V("em",xk,l2(w(W,e3)),1)):U3("",!0)])):e3.action==="locate"&&W.canLocate?(O(),V("button",{key:1,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:ue(r1=>k(W,e3),["stop"]),onKeydown:[Bt(ue(r1=>k(W,e3),["stop","prevent"]),["enter"]),Bt(ue(r1=>k(W,e3),["stop","prevent"]),["space"])]},[...u2[11]||(u2[11]=[S("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,Mk)):e3.action==="locate"?(O(),V("span",Pk,"--")):e3.icon&&y(W,e3)!=="--"?(O(),V("span",{key:3,class:o1(["business-project-cell-icon",`business-project-cell-icon--${e3.icon}`]),role:"img","aria-label":y(W,e3)},null,10,kk)):(O(),V("span",Ek,l2(y(W,e3)),1))],10,Ak))),128))],42,Ck))),128))])]),Z3.value.length?U3("",!0):(O(),V("div",Nk,l2(J3.value),1))])],2)):r.value==="projectLedger"?(O(),V("div",Rk,[S("div",Lk,[qe(S("input",{"onUpdate:modelValue":u2[2]||(u2[2]=W=>c3.value=W),type:"search",placeholder:_3.value},null,8,Ik),[[s5,c3.value]])]),S("div",Fk,[S("div",Bk,[S("strong",null,l2(i0.value),1),S("span",null,l2(r0.value),1)]),S("small",null,"已定位 "+l2(q1.value)+" 处",1),a1.value>1?(O(),V("div",Dk,[S("button",{type:"button",class:"business-project-ledger__page-button is-previous",title:"上一页","aria-label":"上一页",disabled:M1.value<=1,onClick:u2[3]||(u2[3]=W=>e2(-1))},[...u2[12]||(u2[12]=[S("i",{"aria-hidden":"true"},null,-1)])],8,Gk),S("span",null,l2(M1.value)+" / "+l2(a1.value),1),S("button",{type:"button",class:"business-project-ledger__page-button is-next",title:"下一页","aria-label":"下一页",disabled:M1.value>=a1.value,onClick:u2[4]||(u2[4]=W=>e2(1))},[...u2[13]||(u2[13]=[S("i",{"aria-hidden":"true"},null,-1)])],8,Uk)])):U3("",!0)]),S("div",{class:"business-project-ledger__list business-project-frame",style:o0({"--ledger-row-count":s0.value})},[(O(!0),V(Y3,null,e1(G1.value,W=>(O(),V("div",{key:W.key||W.name,class:o1(["business-project-ledger__row",{"is-active":p3.value===(W.key||W.name),"is-locatable":W.canLocate,"is-unlocated":W.canLocate===!1}]),tabindex:W.canLocate?0:-1,onClick:e3=>a2(W),onKeydown:[Bt(ue(e3=>a2(W),["prevent"]),["enter"]),Bt(ue(e3=>a2(W),["prevent"]),["space"])]},[S("div",jk,[S("strong",{title:s2(W)},l2(s2(W)),9,zk),S("div",null,[S("span",{title:J(W)},l2(J(W)),9,Yk)])]),W.canLocate?(O(),V("button",{key:0,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:ue(e3=>a2(W,!0),["stop"]),onKeydown:[Bt(ue(e3=>a2(W,!0),["stop","prevent"]),["enter"]),Bt(ue(e3=>a2(W,!0),["stop","prevent"]),["space"])]},[...u2[14]||(u2[14]=[S("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,$k)):(O(),V("span",Wk,"暂无坐标"))],42,Ok))),128)),G1.value.length?U3("",!0):(O(),V("div",Vk,l2(J3.value),1))],4)])):r.value==="specGrid"?(O(),V("div",Hk,[(O(!0),V(Y3,null,e1(h3.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:"business-spec-grid__row"},[S("span",Kk,l2(String(e3+1).padStart(2,"0")),1),S("span",{class:"business-spec-grid__name",title:W.name},l2(W.name),9,qk),S("strong",Jk,[Ae(l2(d2(W)),1),W.unit?(O(),V("em",Qk,l2(W.unit),1)):U3("",!0)]),S("div",Zk,[(O(!0),V(Y3,null,e1(W.specs||[],r1=>(O(),V("span",{key:r1.label,title:`${r1.label} ${M3(r1.value)}${r1.unit||""}`},[S("small",null,l2(r1.label),1),S("strong",null,[Ae(l2(M3(r1.value)),1),r1.unit?(O(),V("em",eE,l2(r1.unit),1)):U3("",!0)])],8,Xk))),128))])]))),128))])):r.value==="supportMatrix"?(O(),V("div",{key:14,class:o1(["business-support-matrix",{"is-with-total":V3.value}])},[(G=t.panel)!=null&&G.note?(O(),V("small",tE,l2(t.panel.note),1)):U3("",!0),S("div",nE,[u2[15]||(u2[15]=S("span",null,"乡镇",-1)),V3.value?(O(),V("span",aE,l2(((T2=t.panel)==null?void 0:T2.totalLabel)||"合计"),1)):U3("",!0),(O(!0),V(Y3,null,e1(S2.value,W=>(O(),V("span",{key:W.key},l2(W.headerName||W.name),1))),128))]),S("div",iE,[(O(!0),V(Y3,null,e1(O3.value,W=>(O(),V("div",{key:W.key||W.name},[S("span",null,l2(X3(W.name)),1),V3.value?(O(),V("strong",{key:0,class:"business-support-matrix__total",title:R2(W)},l2(R2(W)),9,rE)):U3("",!0),(O(!0),V(Y3,null,e1(S2.value,e3=>(O(),V("strong",{key:e3.key,title:H(W,e3)},l2(H(W,e3)),9,oE))),128))]))),128))])],2)):r.value==="table"?(O(),V("div",{key:15,class:o1(["business-table",{"is-dense":F.value.length>8}])},[S("div",sE,[(O(),V(Y3,null,e1(2,W=>S("div",{key:W,class:"business-table-head-group"},[...u2[16]||(u2[16]=[S("span",null,"乡镇",-1),S("span",null,"亩产",-1)])])),64))]),S("div",lE,[(O(!0),V(Y3,null,e1(F.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-table-row",{"is-active":e3===B1.value}]),"data-chart-tooltip":w1(W)},[S("span",cE,l2(W.name),1),S("div",dE,[S("strong",null,[Ae(l2(d2(W)),1),W.unit?(O(),V("em",fE,l2(W.unit),1)):U3("",!0)]),S("i",null,[S("b",{style:o0({width:`${c2(W)}%`,background:Le(e3)})},null,4)])])],10,uE))),128))])],2)):r.value==="stackColumn"?(O(),V("div",{key:16,class:o1(["business-stack-columns",[`is-variant-${((u3=t.panel)==null?void 0:u3.variant)||"standard"}`,{"is-dense":Q2.value.length>6,"is-with-values":F2()}]])},[S("div",hE,[(O(!0),V(Y3,null,e1(S2.value,(W,e3)=>(O(),V("span",{key:W.key||W.name},[S("i",{style:o0({background:H1(W,e3)})},null,4),Ae(l2(W.name),1)]))),128)),We(Q2.value[0])?(O(),V("small",mE,"单位:"+l2(We(Q2.value[0])),1)):U3("",!0)]),S("div",pE,[(O(!0),V(Y3,null,e1(Q2.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-stack-item",{"is-active":e3===B1.value}]),"data-hover-value":Fe(W),title:Fe(W),"data-chart-tooltip":p0(W)},[F2()&&de(W)>0?(O(),V("strong",yE,[Ae(l2(Ze(W))+l2(M3(de(W))),1),We(W)?(O(),V("em",vE,l2(We(W)),1)):U3("",!0)])):U3("",!0),S("div",SE,[(O(!0),V(Y3,null,e1(Re(W),(r1,c0)=>(O(),V("i",{key:r1.key||r1.name,style:o0({height:`${r1.percent}%`,background:r1.color,color:r1.color}),"data-chart-tooltip":ve(W,r1)},null,12,wE))),128))]),S("span",null,l2(n3(W.name)),1)],10,gE))),128))])],2)):r.value==="peak"?(O(),V("div",{key:17,class:o1(["business-peaks",{"is-dense":C.value.length>5}])},[Y.value?(O(),V("small",bE,"单位:"+l2(Y.value),1)):U3("",!0),(O(!0),V(Y3,null,e1(C.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:"business-peak-item",style:o0({"--peak-height":`${c2(W)}%`,"--peak-color":A3(e3)}),"data-hover-value":s3(W),title:s3(W),"data-chart-tooltip":w1(W)},[S("strong",null,[Ae(l2(d2(W)),1),$3(W)?(O(),V("em",CE,l2($3(W)),1)):U3("",!0)]),u2[17]||(u2[17]=S("div",{class:"business-peak-stage"},[S("i")],-1)),S("span",null,l2(n3(W.name)),1)],12,TE))),128))],2)):r.value==="line"?(O(),V("div",AE,[S("div",{class:"business-line-chart",onMousemove:P3,onMouseleave:u2[5]||(u2[5]=W=>u1.value=null)},[(O(),V("svg",_E,[u2[18]||(u2[18]=S("path",{class:"business-line-grid",d:"M0 18H320M0 44H320M0 70H320"},null,-1)),S("polyline",{class:"business-line-area",points:j2.value},null,8,xE),S("polyline",{class:"business-line-stroke",points:x2.value},null,8,ME),(O(!0),V(Y3,null,e1(P0.value,(W,e3)=>(O(),V("circle",{key:e3,cx:W.x,cy:W.y,r:"3",class:o1(["business-line-dot",{"is-active":e3===O0.value}])},null,10,PE))),128)),(O(!0),V(Y3,null,e1(P0.value,(W,e3)=>(O(),V("circle",{key:`hit-${e3}`,cx:W.x,cy:W.y,r:"13",class:"business-line-hit",onMouseenter:r1=>u1.value=e3},null,40,kE))),128))])),S("div",{class:"business-line-hover-zones",style:o0(I0.value)},[(O(!0),V(Y3,null,e1(P0.value,(W,e3)=>(O(),V("i",{key:`zone-${e3}`,onMouseenter:r1=>u1.value=e3},null,40,EE))),128))],4),Z1.value?(O(),V("div",{key:0,class:"business-line-tooltip",style:o0(Y0.value)},[S("span",null,l2(Z1.value.item.name),1),S("strong",null,[Ae(l2(d2(Z1.value.item)),1),Z1.value.item.unit?(O(),V("em",NE,l2(Z1.value.item.unit),1)):U3("",!0)])],4)):U3("",!0)],32),S("div",{class:"business-line-labels",style:o0(I0.value)},[(O(!0),V(Y3,null,e1(V1.value,W=>(O(),V("span",{key:W.key||W.name},l2(n3(W.name)),1))),128))],4)])):r.value==="balanceGaugeGrid"?(O(),V("div",{key:19,class:o1(["business-balance-gauge-grid",{"is-single":A2.value.length===1}])},[(O(!0),V(Y3,null,e1(A2.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-balance-gauge-card",{"is-active":e3===B1.value}]),style:o0(Z2(W)),"data-chart-tooltip":u0(W)},[S("div",LE,[S("strong",null,l2(q2(W)),1)]),S("div",IE,[S("div",FE,[S("strong",null,l2(d2(W)),1),$2(W)?(O(),V("em",BE,l2($2(W)),1)):U3("",!0)])]),S("div",DE,l2(W.name),1),W.extra?(O(),V("div",GE,l2(W.extra),1)):U3("",!0)],14,RE))),128))],2)):r.value==="gauge"?(O(),V("div",{key:20,class:o1(["business-gauges",{"is-dense":y2.value.length>3}])},[(O(!0),V(Y3,null,e1(y2.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:o1(["business-gauge-item",{"is-active":e3===B1.value,"is-safe":O2(W)<=0,"is-low-rate":O2(W)>0&&O2(W)<5,"is-alert":O2(W)>100}]),style:o0({"--gauge-color":K(W,e3),"--needle-rotate":`${j(W)}deg`}),"data-chart-tooltip":u0(W)},[S("div",OE,[(O(),V("svg",jE,[u2[19]||(u2[19]=S("path",{class:"business-gauge-track",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100"},null,-1)),S("path",{class:"business-gauge-progress",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100","stroke-dasharray":`${T(W)} 100`},null,8,zE),u2[20]||(u2[20]=S("path",{class:"business-gauge-glow",d:"M38 76 A38 38 0 0 1 114 76"},null,-1))])),u2[21]||(u2[21]=S("i",{class:"business-gauge-needle"},null,-1)),u2[22]||(u2[22]=S("b",{class:"business-gauge-pivot"},null,-1)),S("div",YE,[S("strong",null,[Ae(l2(d2(W)),1),$2(W)?(O(),V("em",$E,l2($2(W)),1)):U3("",!0)]),S("small",null,l2(q2(W)),1)])]),S("span",WE,l2(W.name),1),W.extra?(O(),V("small",VE,l2(W.extra),1)):U3("",!0)],14,UE))),128))],2)):r.value==="heat"?(O(),V("div",{key:21,class:o1(["business-heat",{"is-dense":v2.value.length>6}])},[(O(!0),V(Y3,null,e1(v2.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:"business-heat-cell",style:o0(f2(W,e3)),"data-chart-tooltip":w1(W)},[u2[23]||(u2[23]=S("i",null,null,-1)),S("span",null,l2(W.name),1),S("strong",null,[Ae(l2(d2(W)),1),W.unit?(O(),V("em",KE,l2(W.unit),1)):U3("",!0)])],12,HE))),128))],2)):r.value==="split"?(O(),V("div",{key:22,class:o1(["business-split",{"is-dense":f.value.length>8||((V2=t.panel)==null?void 0:V2.variant)==="compact"}])},[S("div",qE,[(O(!0),V(Y3,null,e1(f.value,(W,e3)=>(O(),V("i",{key:W.key||W.name,style:o0({width:`${j3(W)}%`,background:A3(e3)}),"data-chart-tooltip":be(W)},null,12,JE))),128))]),S("div",QE,[(O(!0),V(Y3,null,e1(f.value,(W,e3)=>(O(),V("div",{key:W.key||W.name,class:"business-split-row","data-chart-tooltip":be(W)},[S("span",null,[S("i",{style:o0({background:A3(e3)})},null,4),Ae(l2(W.name),1)]),S("strong",null,l2(d2(W))+l2(W.unit),1)],8,ZE))),128))])],2)):(O(),_e(Mf,{key:23,rows:o.value,compact:""},null,8,["rows"])):(O(),V("div",fP,"暂无业务统计数据")),(O(),_e(Rm,{to:"body"},[E.value.visible?(O(),V("div",{key:0,class:"business-chart-tooltip",style:o0(s1.value)},[S("strong",null,l2(E.value.title),1),(O(!0),V(Y3,null,e1(E.value.lines,W=>(O(),V("span",{key:W},l2(W),1))),128))],4)):U3("",!0)]))],34)}}};const XE={class:"feature-info"},eN={key:0,class:"feature-info-state"},tN={key:1,class:"feature-info-state"},nN={key:2,class:"feature-info-state"},aN={key:0,class:"feature-table"},iN=["title"],rN={key:1,class:"feature-info-state is-inline"},Ia={__name:"FeatureInfoPanel",props:{feature:{type:Object,default:null},empty:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},height:{type:Number,default:380},width:{type:Number,default:430},compactGrassland:{type:Boolean,default:!1}},setup(t){const e=t,n=[[["townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在乡镇"],[["village_name","cunName","cun_name","cun","c_name","cmc"],"所在村"],[["full_name"],"所在区域"],[["land_number","patch_no"],"图斑编号"],[["areaWanMu","area_wan_mu","area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area"],"图斑面积"]],a=[[["investigator"],"调查人"],[["survey_time","dc_rq","sjnf","delimitation_year"],"调查时间"],[["adjust_opinion_name"],"调整意见"],[["adjust_reason"],"调整原因"]],i=[[["pastureName","pasture_name"],"所属牧场"],[["recognizedYakCount","recognized_yak_count","yakCount","yak_count"],"牦牛数量"],[["acreage","area_mu","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"草场面积"],[["grasslandAreaMu","grassland_area_mu"],"草地面积"],[["wetlandAreaMu","wetland_area_mu"],"湿地面积"],[["otherAreaMu","other_area_mu"],"其他面积"],[["resourceFreshMuYield","resource_fresh_mu_yield"],"综合鲜草亩产"],[["resourceDryMuYield","resource_dry_mu_yield"],"综合干草亩产"],[["grasslandVegetationCover","grassland_vegetation_cover"],"草地植被盖度"],[["fullName","full_name","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在区域"]],o={"artificial-grassland":[[["plot_name","name"],"图斑名称"],[["plot_code"],"图斑编号"],[["town","town_name"],"所在乡镇"],[["plot_category"],"图斑类别"],[["data_status"],"数据状态"],[["source_type"],"资料类型"],[["data_source"],"数据来源"]],woodland:[[["dlmc","layer_class_name"],"地类名称"],...n,[["qsdwmc"],"权属单位"],[["zldwmc"],"坐落单位"],[["lin_ban"],"林班"],[["xiao_ban"],"小班"],[["ld_qs","tdsyqs","qsxz","ownership_name","ownership"],"土地权属"],[["gjgyl_bhdj","bh_dj","protection_level_name","protection_level"],"保护等级"],[["sen_lin_lb","forest_type"],"森林类别"],[["lin_zhong","forest_category"],"林种"],[["zl_dj","quality_level_name","quality_level"],"质量等级"],[["you_shi_sz","tree_species","dominant_tree_species"],"优势树种"],[["qi_yuan","origin"],"起源"],[["ling_zu"],"龄组"],[["yu_bi_du"],"郁闭度"],[["pingjun_sg"],"平均树高"],[["mei_gq_zs"],"每公顷株数"],[["mei_gq_xj"],"每公顷蓄积"],[["huo_lm_xj"],"活立木蓄积"],[["sheng_wu_l"],"生物量"],[["tan_chu_l"],"碳储量"],[["stqwmc"],"生态区位"],[["po_du","slope"],"坡度"],[["po_wei"],"坡位"],[["tu_ceng_hd","soil_depth"],"土层厚度"],...a],grassland:[...i,[["pastureName","pasture_name"],"所属牧场"],...n,[["land_class_name","landUseName","land_use_name","landUse","land_use"],"地类名称"],[["landType","land_type"],"资源大类"],[["resourceType","resource_type"],"资源类别"],[["grasslandCategory","grassland_category_name","grassland category","base_grass"],"草原类别"],[["basic_type_name"],"基本草原类型"],[["grassTypeName","grass_type_name","grassland_type_name","grassType","grass_type"],"草原类"],[["grassMinType","grass_min_type"],"草原型"],[["grasslandLevelName","grassland_level_name","grasslandLevel","grassland_level","level_name","level"],"草原级别"],[["degradationLevelName","degradation_level_name","degradationLevel","degradation_level"],"退化等级"],[["vegetationStructureName","vegetation_structure_name","vegetationStructure","vegetation_structure"],"植被结构"],[["vegetationCover","vegetation_cover"],"植被盖度"],[["lbmjbl"],"裸斑面积比例"],[["dominanceLevel","dominance_level"],"优势度"],[["dominantGrassSpecies","dominant_grass_species"],"优势草种"],[["functionalCategory","functional_category"],"功能类别"],[["xcYield","xc_yield"],"鲜草产量"],[["xcMuYield","xc_mu_yield","xbXcMuYield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["xbXcYield","xb_xc_yield"],"小班鲜草产量"],[["xbXcMuYield","xb_xc_mu_yield"],"小班鲜草亩产"],[["gcYield","gc_yield"],"干草产量"],[["gcMuYield","gc_mu_yield","xbGcMuYield","xb_gc_mu_yield"],"干草亩产"],[["xbGcYield","xb_gc_yield"],"小班干草产量"],[["xbGcMuYield","xb_gc_mu_yield"],"小班干草亩产"],[["elevation"],"海拔"],[["landformName","landform_name","landform"],"地貌"],[["slope"],"坡度"],[["aspect"],"坡向"],[["soilDepth","soil_depth","tu_ceng_hd"],"土层厚度"],[["soil texture"],"土壤质地"],[["sddl"],"三调地类"],[["hqlm"],"划区轮牧"],[["cdsyq"],"草地所有权"],[["cdsyq2"],"草地使用权"],[["cdjjq"],"草地经营权"],...a],wetland:[[["grass_min_type","grassland_category_name","grassland_type_name","land_class_name","land_use_name"],"湿地类型"],...n,[["grass_type_name","grass_type"],"湿地草地型"],[["grassland_level_name","grassland_level","level_name","level"],"湿地级别"],[["vegetation_structure_name","vegetation_structure"],"植被结构"],[["vegetation_cover"],"植被盖度"],[["dominant_grass_species"],"优势草种"],[["functional_category"],"功能类别"],[["xc_yield","xb_xc_yield"],"鲜草产量"],[["xc_mu_yield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["edible_xc_yield"],"可食鲜草产量"],[["edible_xc_mu_yield"],"可食鲜草亩产"],[["gc_yield","xb_gc_yield"],"干草产量"],[["elevation"],"海拔"],[["landform_name","landform"],"地貌"],[["soil_depth","tu_ceng_hd"],"土层厚度"],...a],ecological:[[["type"],"管控分区"],[["project_name","projectName","name"],"项目名称"],[["project_category","projectCategory"],"项目类型"],[["company"],"实施单位"],[["leader"],"负责人"],[["project_status","projectStatus","status"],"项目状态"],[["full_name","fullName"],"所在区域"],[["address"],"项目地址"],[["measure_type"],"措施类型"],[["feature_role"],"要素类型"],[["township"],"涉及乡镇"],[["year"],"建设年份"],[["progress_count","progressCount"],"进度记录"],[["totalAcreage"],"总面积"],[["cdAcreage"],"草地面积"],[["sdAcreage"],"湿地面积"],[["area_mu"],"治理面积"],[["length_meter"],"工程长度"],[["cdScl"],"草地生产力"],[["sdScl"],"湿地生产力"],[["geometry_type"],"几何类型"]]},s={land_type:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},landType:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},vegetation_structure:{1:"草本型"},landform:{2:"平原",5:"中山",6:"高山"},land_use:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},sddl:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},ld_qs:{10:"集体林地",20:"国有或其他"},qsxz:{10:"集体林地",20:"国有或其他"},tdsyqs:{10:"集体林地",20:"国有或其他"},gjgyl_bhdj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},bh_dj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},zl_dj:{2:"二级质量",3:"三级质量",4:"四级质量",5:"五级质量"},po_wei:{1:"脊部",2:"上坡",3:"中坡",4:"下坡",5:"谷地",6:"平地"}},u=new Set(["lin_zhong","sen_lin_lb","you_shi_sz","qi_yuan","ling_zu","po_xiang","tu_rang_lx","ownership","ownership_name","protection_level","forest_category","forest_type","quality_level","origin","tree_species","dominant_tree_species","base_grass","degradation_level","land_class","grass_type"]),m={xiang:"所在乡镇",xzqdm:"所在乡镇",xzqmc:"所在乡镇",town_code:"所在乡镇",area_code:"所在乡镇",areaCode:"所在乡镇",cun:"所在村",cmc:"所在村",c_name:"所在村",acreage:"图斑面积",mj:"图斑面积",xbmj:"小班面积",tbdlmj:"图斑地类面积",geomj:"图斑面积",tbmj:"图斑面积",shape_area:"图斑面积",area_mu:"图斑面积",pastureName:"所属牧场",pasture_name:"所属牧场",pastureAcreage:"牧场面积",pasture_acreage:"牧场面积",relationAcreage:"关系面积",relation_acreage:"关系面积",pastureOverlapAcreage:"重叠面积",pasture_overlap_acreage:"重叠面积",relatedPastureCount:"关联牧场数",related_pasture_count:"关联牧场数",relatedPastureNames:"关联牧场",related_pasture_names:"关联牧场",yakCount:"牦牛数量",yak_count:"牦牛数量",recognizedYakCount:"牦牛数量",recognized_yak_count:"牦牛数量",grasslandAreaMu:"草地面积",grassland_area_mu:"草地面积",wetlandAreaMu:"湿地面积",wetland_area_mu:"湿地面积",otherAreaMu:"其他面积",other_area_mu:"其他面积",grasslandAreaPercent:"草地占比",grassland_area_percent:"草地占比",wetlandAreaPercent:"湿地占比",wetland_area_percent:"湿地占比",otherAreaPercent:"其他占比",other_area_percent:"其他占比",resourceFreshMuYield:"综合鲜草亩产",resource_fresh_mu_yield:"综合鲜草亩产",resourceDryMuYield:"综合干草亩产",resource_dry_mu_yield:"综合干草亩产",resourceFreshYieldJin:"鲜草产量",resource_fresh_yield_jin:"鲜草产量",resourceDryYieldJin:"干草产量",resource_dry_yield_jin:"干草产量",grasslandVegetationCover:"草地植被盖度",grassland_vegetation_cover:"草地植被盖度",grass_min_type:"草原型",grassMinType:"草原型",grass_type:"草原类",grassType:"草原类",grass_type_name:"草原类",grassTypeName:"草原类",grassland_type_name:"草原类",patch_no:"图斑编号",land_number:"图斑编号",grassland_level:"草原级别",grasslandLevel:"草原级别",grassland_level_name:"草原级别",grasslandLevelName:"草原级别",level:"等级",level_name:"等级",land_class_name:"地类名称",land_use_name:"地类名称",landUseName:"地类名称",landUse:"地类名称",basic_type_name:"草原类型",grassland_category_name:"草原类别",grasslandCategory:"草原类别",degradation_level:"退化等级",degradationLevel:"退化等级",degradation_level_name:"退化等级",degradationLevelName:"退化等级",vegetation_structure:"植被结构",vegetationStructure:"植被结构",vegetation_structure_name:"植被结构",vegetationStructureName:"植被结构",xc_yield:"鲜草产量",xcYield:"鲜草产量",gc_yield:"干草产量",gcYield:"干草产量",xc_mu_yield:"鲜草亩产",xcMuYield:"鲜草亩产",gc_mu_yield:"干草亩产",gcMuYield:"干草亩产",mu_yield:"亩产",edible_xc_yield:"可食鲜草产量",edible_xc_mu_yield:"可食鲜草亩产",dlmc:"地类名称",qsdwmc:"权属单位",zldwmc:"坐落单位",lin_ban:"林班",xiao_ban:"小班",ld_qs:"土地权属",tdsyqs:"土地权属",qsxz:"土地权属",gjgyl_bhdj:"保护等级",bh_dj:"保护等级",sen_lin_lb:"森林类别",lin_zhong:"林种",zl_dj:"质量等级",you_shi_sz:"优势树种",qi_yuan:"起源",cdsyq:"草地所有权",cdsyq2:"草地使用权",cdjjq:"草地经营权",resource_type:"资源类型","grassland category":"草原类别",dominant_grass_species:"优势草种",functional_category:"功能类别",functionalCategory:"功能类别",vegetation_cover:"植被盖度",vegetationCover:"植被盖度",xb_xc_yield:"小班鲜草产量",xbXcYield:"小班鲜草产量",xb_gc_yield:"小班干草产量",xbGcYield:"小班干草产量",base_grass:"基本草原",hqlm:"划区轮牧",elevation:"海拔",soil_depth:"土层厚度","soil texture":"土壤质地",aspect:"坡向",slope:"坡度",landform:"地貌",landform_name:"地貌",sddl:"三调地类",dominance_level:"优势度",investigator:"调查人",survey_time:"调查时间",land_type:"土地类型",landType:"土地类型",status:"状态",type:"类型",xb_gc_mu_yield:"干草亩产",xbGcMuYield:"干草亩产",xb_xc_mu_yield:"鲜草亩产",xbXcMuYield:"鲜草亩产",grass_yield:"草地产量",grassYield:"草地产量",full_name:"所在区域",fullName:"所在区域",gyl_bhlx:"公益林保护类型",ling_zu:"龄组",yu_bi_du:"郁闭度",pingjun_xj:"平均胸径",mei_gq_zs:"每公顷株数",mei_gq_xj:"每公顷蓄积",stqwmc:"生态区位",lyfq:"林业分区",qykz:"区域控制",po_wei:"坡位",tu_rang_zd:"土壤质地",zzsxmc:"主导属性",lin_chang:"林场",di_mao:"地貌",jt_qw:"交通区位",zbfglx:"植被覆盖类型",disaster_c:"灾害类型",dispe:"病虫害",pingjun_sg:"平均树高",huo_lm_xj:"活立木蓄积",sheng_wu_l:"生物量",tan_chu_l:"碳储量",g_cheng_lb:"工程类别",shi_quan_d:"事权等级",sf_tbq:"是否特别区",td_th_lx:"土地退化类型",project_name:"项目名称",projectName:"项目名称",project_category:"项目类型",projectCategory:"项目类型",company:"实施单位",leader:"负责人",project_status:"项目状态",projectStatus:"项目状态",address:"项目地址",conclusion:"工程结论",progress_count:"进度记录",progressCount:"进度记录",measure_type:"措施类型",measureType:"措施类型",feature_role:"要素类型",featureRole:"要素类型",township:"涉及乡镇",year:"建设年份",length_meter:"工程长度",lengthMeter:"工程长度",geometry_type:"几何类型",geometryType:"几何类型",totalAcreage:"总面积",cdAcreage:"草地面积",sdAcreage:"湿地面积",cdScl:"草地生产力",sdScl:"湿地生产力"},p=new Set(Object.keys(m)),f=new Set(["pingjun_sg","pingjun_xj","mei_gq_zs","mei_gq_xj","huo_lm_xj","sheng_wu_l","tan_chu_l","yu_bi_du","grass_yield","xb_xc_yield","xb_xc_mu_yield","xc_mu_yield","xb_gc_yield","xb_gc_mu_yield","gc_mu_yield"]),g=new Set(["xb_xc_yield","xb_gc_yield","grass_yield","gc_yield","xc_yield","yield","output","remark1","remark2","remark3","remark4","remark5","remarks"]),C=new Set(["full_name","fullName","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town","town_code","areaCode","area_code"]),F=[...vn].sort((h3,O3)=>O3.length-h3.length),z=r2(()=>{var h3;return((h3=e.feature)==null?void 0:h3.properties)||{}}),Y=r2(()=>{var h3,O3,V3;return((O3=(h3=e.feature)==null?void 0:h3.feature)==null?void 0:O3.geometry)||((V3=e.feature)==null?void 0:V3.geometry)||null}),i2=r2(()=>{var V3,i3;const h3=String(((i3=(V3=e.feature)==null?void 0:V3.layer)==null?void 0:i3.key)||"").toLowerCase(),O3=z.value;return h3.includes("artificial-grassland")||String(O3.stageKey||"")==="artificial-grassland"}),v2=r2(()=>{var D3,F3,u1,A1,S3;const h3=String(((D3=e.feature)==null?void 0:D3.id)||"").toLowerCase(),O3=String(((u1=(F3=e.feature)==null?void 0:F3.layer)==null?void 0:u1.key)||"").toLowerCase(),V3=String(((S3=(A1=e.feature)==null?void 0:A1.layer)==null?void 0:S3.layerName)||"").toLowerCase(),i3=`${O3} ${V3}`,U2=z.value;return i2.value?"artificial-grassland":i3.includes("national-park")||i3.includes("restoration")||U2.project_name||U2.project_category||U2.totalAcreage?"ecological":U2.dlmc||h3.includes("woodland")||h3.includes("t_woodland")||i3.includes("woodland")?"woodland":i3.includes("wetland")||i3.includes("shidi")||h3.includes("shidi")||U2.land_type==="shidi"||U2.landType==="shidi"||U2.land_type==="湿地"||U2.landType==="湿地"||U2.land_type===2||U2.landType===2||U2.landType==="2"?"wetland":i3.includes("grassland")||i3.includes("caodi")||U2.grassland_category_name||U2.grasslandCategory||U2.basic_type_name||h3.includes("caodi")||U2.land_type==="caodi"||U2.landType==="caodi"||U2.land_type===1||U2.landType===1||U2.landType==="1"?"grassland":"woodland"}),y2=r2(()=>{const h3=[],O3=new Set,V3=v2.value==="grassland",i3=(V3||v2.value==="wetland")&&e.compactGrassland;(i3?i:o[v2.value]||o.woodland).forEach(([F3,u1])=>{const A1=X2(z.value,F3,u1,O3);A1&&!h3.some(S3=>S3.label===A1.label)&&(h3.push(A1),O3.add(A1.sourceKey))});const D3=V3?"草场面积":"图斑面积";return!i2.value&&!h3.some(F3=>F3.label===D3||F3.label==="图斑面积")&&Q2(h3,O3,D3,G1(Y.value),"geometry-area"),i3?h3.slice(0,10):(Object.entries(z.value).forEach(([F3,u1])=>{if(O3.has(F3)||j1(F3,u1))return;const A1=p3(F3,u1);c3(A1)&&(h3.some(S3=>S3.value===A1||S3.label===(m[F3]||q1(F3)))||(h3.push({key:`fallback-${F3}`,sourceKey:F3,label:m[F3]||q1(F3),value:A1}),O3.add(F3)))}),h3)}),A2=r2(()=>y2.value.map((h3,O3)=>t3(B2({},h3),{displayOrder:S2(h3,O3)})).sort((h3,O3)=>h3.displayOrder-O3.displayOrder));function S2(h3,O3){const V3=(h3==null?void 0:h3.label)||"",i3=String((h3==null?void 0:h3.sourceKey)||"").toLowerCase();return["所属牧场","牦牛数量","草场面积","草地面积","湿地面积","其他面积","综合鲜草亩产","综合干草亩产","草地植被盖度","所在区域","牧场面积","关系面积","重叠面积","关联牧场数","关联牧场"].includes(V3)||["图斑名称","所在乡镇","所在村","所在区域","图斑编号","图斑类别","数据状态","资料类型","数据来源","图斑面积","小班面积","图斑地类面积","地类名称","湿地类型"].includes(V3)?O3:["基本草原类型","草原类型","草原类","草原型","湿地草地型","草原级别","湿地级别","退化等级","功能类别","保护等级","森林类别","林种","质量等级","优势树种","起源","龄组"].includes(V3)?100+O3:V3.includes("产量")||V3.includes("亩产")||V3.includes("植被")||V3.includes("优势草种")||V3.includes("优势度")||V3.includes("海拔")||V3.includes("地貌")||V3.includes("坡")||V3.includes("土壤")||V3.includes("郁闭度")||V3.includes("树高")||V3.includes("蓄积")||V3.includes("生物量")||V3.includes("碳储量")?200+O3:V3.includes("权属")||V3.includes("所有权")||V3.includes("使用权")||V3.includes("经营权")||V3.includes("调查")||V3.includes("调整")||V3.includes("划区")||V3.includes("单位")||i3.includes("owner")||i3.includes("qsdw")||i3.includes("zldw")?300+O3:150+O3}function Q2(h3,O3,V3,i3,U2){!c3(i3)||h3.some(D3=>D3.label===V3||D3.value===i3)||(h3.push({key:`static-${U2}`,sourceKey:U2,label:V3,value:i3}),O3.add(U2))}function X2(h3,O3,V3,i3=new Set){for(const U2 of O3)if(!(i3.has(U2)||b1(U2))&&c3(h3==null?void 0:h3[U2])){const D3=p3(U2,h3[U2]);if(!c3(D3))continue;return{key:`${V3}-${U2}`,sourceKey:U2,label:V3,value:D3}}return null}function c3(h3){return h3!=null&&h3!==""&&h3!==" "&&h3!=="null"&&h3!=="undefined"}function p3(h3,O3){var U2;if(!c3(O3))return"";if((U2=s[h3])!=null&&U2[String(O3)])return s[h3][String(O3)];if(C.has(h3))return l3(h3,O3);if(["cun","village_code"].includes(h3)&&_3(O3))return"";if(["grassland_level","grasslandLevel","level"].includes(h3)&&J3(O3))return v2.value==="wetland"?`${Number(O3)}级湿地`:`${Number(O3)}级草原`;if(u.has(h3)&&_3(O3)||a1(h3,O3))return"";if(Z3(h3))return M1(O3);if(typeof O3=="number"||/^-?\d+(\.\d+)?$/.test(String(O3))){const D3=Number(O3);if(D3===0&&f.has(h3))return"";const F3=Number.isInteger(D3)?`${D3}`:`${Number(D3.toFixed(2))}`;if(["xbmj","tbdlmj","geomj","area_square_meter"].includes(h3))return`${R3(D3/666.6667)} 亩`;if(["grasslandAreaMu","grassland_area_mu","wetlandAreaMu","wetland_area_mu","otherAreaMu","other_area_mu"].includes(h3)){const A1=(h3.startsWith("grassland")?["grasslandAreaPercent","grassland_area_percent"]:h3.startsWith("wetland")?["wetlandAreaPercent","wetland_area_percent"]:["otherAreaPercent","other_area_percent"]).map(E=>{var C3;return(C3=z.value)==null?void 0:C3[E]}).find(c3),S3=c3(A1)&&Number.isFinite(Number(A1))?`(${Number(Number(A1).toFixed(2))}%)`:"";return`${F3} 亩${S3}`}return["acreage","mj","area_mu","pastureAcreage","pasture_acreage","relationAcreage","relation_acreage","pastureOverlapAcreage","pasture_overlap_acreage"].includes(h3)?`${F3} 亩`:["recognizedYakCount","recognized_yak_count","yakCount","yak_count"].includes(h3)?`${F3} 头`:["relatedPastureCount","related_pasture_count"].includes(h3)?`${F3} 个`:["length_meter"].includes(h3)?`${F3} 米`:["totalAcreage","cdAcreage","sdAcreage"].includes(h3)?`${F3} 万亩`:["cdScl","sdScl"].includes(h3)?`${F3} 万吨`:["areaWanMu","area_wan_mu"].includes(h3)?`${F3} 万亩`:["xc_yield","xcYield","xb_xc_yield","xbXcYield","gc_yield","gcYield","xb_gc_yield","xbGcYield","edible_xc_yield","grass_yield","grassYield","resourceFreshYieldJin","resource_fresh_yield_jin","resourceDryYieldJin","resource_dry_yield_jin"].includes(h3)?`${F3} 斤`:["mu_yield","xc_mu_yield","xcMuYield","gc_mu_yield","gcMuYield","xb_xc_mu_yield","xbXcMuYield","xb_gc_mu_yield","xbGcMuYield","edible_xc_mu_yield","resourceFreshMuYield","resource_fresh_mu_yield","resourceDryMuYield","resource_dry_mu_yield"].includes(h3)?`${F3} 斤/亩`:["vegetation_cover","vegetationCover","grasslandVegetationCover","grassland_vegetation_cover","lbmjbl","yu_bi_du"].includes(h3)?`${F3}%`:["elevation","tu_ceng_hd","soilDepth","soil_depth","pingjun_sg"].includes(h3)?`${F3} 米`:["po_du","slope"].includes(h3)?`${F3}°`:F3}const i3=String(O3);return v2.value==="wetland"&&["grassland_level","grasslandLevel","level"].includes(h3)?i3.replace(/草原/g,"湿地"):i3}function l3(h3,O3){if(["xiang","xzqdm","town_code","area_code","areaCode"].includes(h3)){const V3=N3(O3);if(V3)return V3}return b3(O3)}function b3(h3){const O3=String(h3||"").trim();if(!O3)return"";const V3=O3.replace(/\s+/g,""),i3=va(V3);if(i3)return i3;const U2=F.find(u1=>V3.includes(u1));if(U2)return V3.slice(V3.indexOf(U2));const D3=V3.indexOf("红原县");if(D3>=0)return V3.slice(D3+3)||V3;const F3=V3.match(/县(.+)$/);return(F3==null?void 0:F3[1])||O3}function N3(h3){const O3=String(h3||"").trim();if(!O3)return"";const V3=O3.replace(/\D/g,""),i3=va(V3||O3);return i3||(_3(O3)?"":O3)}function _3(h3){return/^[0-9A-Za-z_-]{1,12}$/.test(String(h3).trim())}function J3(h3){return/^-?\d+(\.\d+)?$/.test(String(h3).trim())}function R3(h3){return Number.isInteger(h3)?`${h3}`:`${Number(h3.toFixed(2))}`}function Z3(h3){return["survey_time","dc_rq","create_time","update_time"].includes(String(h3))}function M1(h3){const O3=String(h3);return/^\d{4}-\d{2}-\d{2}/.test(O3)?O3.slice(0,10):O3}function b1(h3){const O3=String(h3).toLowerCase();return["geom","wkt","geometry","the_geom","raw_properties"].includes(O3)||["bsm","ysdm","gid","id","objectid","object_id","fid","key_uid"].includes(O3)||["shape_leng","shape_length","length","perimeter"].includes(O3)?!0:["xzqdm","area_code","town_code","patch_no","land_number","plot_code"].includes(O3)?!1:["di_lei","qykz","stqw","lyfq","tbybh","patch_code"].includes(O3)||O3.endsWith("_code")||O3.endsWith("dm")||O3.endsWith("_id")||["create_by","create_time","update_by","update_time"].includes(O3)?!0:O3.includes("geom")||O3.includes("boundary")||O3.includes("wkb")}function j1(h3,O3){var i3;if(b1(h3)||!c3(O3))return!0;const V3=String(h3).toLowerCase();return!!(g.has(V3)||V3.includes("number")||V3.includes("patch_no")||!p.has(h3)||_3(O3)&&!((i3=s[h3])!=null&&i3[String(O3)])&&!["xiang","xzqdm","town_code","area_code","cun","land_type","grassland_level","level","gjgyl_bhdj","bh_dj","ld_qs","qsxz","tdsyqs","zl_dj"].includes(h3))}function a1(h3,O3){var V3;return!_3(O3)||(V3=s[h3])!=null&&V3[String(O3)]?!1:["resource_type","grassland category","functional_category","aspect","soil_depth","soil texture","cdsyq","cdsyq2","cdjjq"].includes(h3)}function G1(h3){const O3=s0(h3);if(!O3)return"";const V3=O3/666.6667;return V3>=1e4?`${R3(V3/1e4)} 万亩`:`${R3(V3)} 亩`}function s0(h3){return h3!=null&&h3.coordinates?h3.type==="Polygon"?i0(h3.coordinates):h3.type==="MultiPolygon"?h3.coordinates.reduce((O3,V3)=>O3+i0(V3),0):0:0}function i0(h3=[]){if(!h3.length)return 0;const[O3,...V3]=h3,i3=Math.abs(r0(O3)),U2=V3.reduce((D3,F3)=>D3+Math.abs(r0(F3)),0);return Math.max(0,i3-U2)}function r0(h3=[]){if(h3.length<3)return 0;const O3=h3.reduce((D3,F3)=>D3+Number((F3==null?void 0:F3[1])||0),0)/h3.length,V3=111320,i3=V3*Math.cos(O3*Math.PI/180);let U2=0;for(let D3=0;D3O3.toUpperCase())}return(h3,O3)=>(O(),_e(U0,{title:"图斑详情",width:t.width,height:t.height},{default:M0(()=>[S("div",XE,[t.loading?(O(),V("div",eN,"正在查询图斑信息")):t.empty?(O(),V("div",tN,"当前点击位置未查询到图斑")):t.feature?(O(),V(Y3,{key:3},[A2.value.length?(O(),V("div",aN,[(O(!0),V(Y3,null,e1(A2.value,V3=>(O(),V("div",{key:V3.key,class:"feature-row"},[S("span",null,l2(V3.label),1),S("strong",{title:V3.value},l2(V3.value),9,iN)]))),128))])):(O(),V("div",rN,"当前图斑暂无可展示的业务字段"))],64)):(O(),V("div",nN,"点击地图图层查看图斑/要素信息"))])]),_:1},8,["width","height"]))}};const oN={class:"topic-switcher"},sN={class:"topic-switcher-menu"},lN=["onPointerup","onClick"],uN={class:"topic-title"},cN={key:0},Fa={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>E8}},emits:["update:modelValue"],setup(t,{emit:e}){const n=t,a=e;let i="",r=0;const o=r2(()=>{var u;return(u=n.topics)!=null&&u.length?n.topics:E8});function s(u,m){var f,g;if((g=(f=u.currentTarget)==null?void 0:f.blur)==null||g.call(f),m===n.modelValue)return;const p=Date.now();u.type==="click"&&i===m&&p-r<450||(u.type==="pointerup"&&(i=m,r=p),a("update:modelValue",m))}return(u,m)=>(O(),V("div",oN,[m[0]||(m[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:Wi,alt:""}),S("img",{src:Vi,alt:""})],-1)),S("div",sN,[(O(!0),V(Y3,null,e1(o.value,p=>(O(),V("button",{key:p.key,class:o1(["topic-switcher-item",{"is-active":p.key===t.modelValue}]),style:o0({"--topic-color":p.color,"--topic-item-width":p.width?`${p.width}px`:void 0}),type:"button",onPointerup:f=>s(f,p.key),onClick:f=>s(f,p.key)},[S("span",{class:o1(["topic-name",{"has-sub-name":p.subName}])},[S("span",uN,l2(p.name),1),p.subName?(O(),V("small",cN,l2(p.subName),1)):U3("",!0)],2)],46,lN))),128))]),m[1]||(m[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:Wi,alt:""}),S("img",{src:Vi,alt:""})],-1))]))}},dN=12e3;function fN(t,e={}){const n=new URLSearchParams;Object.entries(e).forEach(([i,r])=>{r!=null&&r!==""&&n.append(i,r)});const a=n.toString();return a?`${t}${t.includes("?")?"&":"?"}${a}`:t}function zn(n){return L3(this,arguments,function*(t,e={}){const m=e,{params:a,timeout:i=dN}=m,r=Q9(m,["params","timeout"]),o=new AbortController;let s=!1;const u=window.setTimeout(()=>{s=!0,o.abort()},i);try{const p=yield fetch(fN(t,a),t3(B2({credentials:"include"},r),{signal:o.signal,headers:B2({Accept:"application/json"},r.headers||{})}));if(!p.ok){const g=new Error(p.status===401?"用户未登录或授权已过期。":`HTTP ${p.status}`);throw g.code=`HTTP_${p.status}`,g.status=p.status,p.status===401&&Vd(),g}const f=yield p.json();if((f==null?void 0:f.code)===401||(f==null?void 0:f.code)==="401"){const g=new Error((f==null?void 0:f.msg)||"用户未登录或授权已过期。");throw g.code="HTTP_401",g.status=401,Vd(),g}return f}catch(p){if(o.signal.aborted||(p==null?void 0:p.name)==="AbortError"||/aborted/i.test((p==null?void 0:p.message)||"")){const g=new Error(s?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw g.code=s?"REQUEST_TIMEOUT":"REQUEST_ABORTED",g}throw p}finally{window.clearTimeout(u)}})}function D0(t){return(t==null?void 0:t.data)!==void 0?t.data:(t==null?void 0:t.result)!==void 0?t.result:t}const hN="/jsyApi",mN=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function pN(t){return/^https?:\/\//.test(t)?t:`${hN}${t.startsWith("/")?t:`/${t}`}`}function gN(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"视频监控接口请求失败");throw n.code=t==null?void 0:t.code,n}return D0(t)}function O6(t,e,n=""){for(const a of e)if((t==null?void 0:t[a])!==void 0&&(t==null?void 0:t[a])!==null&&(t==null?void 0:t[a])!=="")return t[a];return n}function yN(t,e){for(const n of e)if((t==null?void 0:t[n])!==void 0&&(t==null?void 0:t[n])!==null&&(t==null?void 0:t[n])!=="")return{key:n,value:t[n]};return null}function pp(t){return O6(t,["token","accessToken","access_token"])}function vN(t){return O6(t,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function su(t){return!!(pp(t)&&vN(t))}function SN(t){return yN(t,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function gp(t){const e=su(t),n=SN(t);if(!n)return{online:e,raw:"",reason:e?"后台未返回设备状态":"缺少播放地址或令牌"};const a=n.value;if(typeof a=="boolean")return{online:a,raw:a?"在线":"离线",reason:`后台状态:${a?"在线":"离线"}`};const i=String(a!=null?a:"").trim().toLowerCase();return i?typeof a=="number"||/^-?\d+(\.\d+)?$/.test(i)?{online:Number(a)!==0,raw:String(a),reason:`后台状态:${a}`}:["true","online","on","open","running","active","enabled"].includes(i)?{online:!0,raw:String(a),reason:`后台状态:${a}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(i)?{online:!1,raw:String(a),reason:`后台状态:${a}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(i)?{online:!1,raw:String(a),reason:`后台状态:${a}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(i)?{online:!0,raw:String(a),reason:`后台状态:${a}`}:{online:e,raw:String(a),reason:`后台状态:${a}`}:{online:e,raw:"",reason:e?"后台状态为空":"缺少播放地址或令牌"}}function wN(t){return gp(t).online}function bN(t){return O6(t,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function TN(t){return O6(t,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function CN(t){return!!(su(t)&&wN(t))}function AN(t=""){const e=String(t);return mN.find(a=>e.includes(a.replace(/[镇乡]$/,"")))||"红原县"}function _N(t=""){const e=String(t);return e.includes("养殖")?"养殖基地":e.includes("饲草")?"饲草基地":e.includes("种草")||e.includes("牧草")?"牧草基地":e.includes("虫情")?"虫情监测":e.includes("机场")?"机场周边":"重点点位"}function xN(t,e){const n=O6(t,["hdPlayUrl","playUrl","url"]),a=String(n).match(/\/(\d+)(?:\.hd)?\.live/i);return a?a[1].padStart(2,"0"):String(e+1).padStart(2,"0")}function MN(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function PN(t,e,n,a){const i=O6(t,["name","title","deviceName"],`视频监控${e+1}`),r=O6(t,["hdPlayUrl","hd_play_url","url"]),o=O6(t,["playUrl","play_url"],r),s=pp(t),u=gp(t),m=!!(su(t)&&u.online),p=n?Math.round(a/n*100):0;return{key:O6(t,["id","number","deviceSerial"],`${i}-${e}`),title:i,town:AN(i),scene:_N(i),device:O6(t,["number","deviceSerial","serialNumber"],`CAM-${String(e+1).padStart(3,"0")}`),channel:xN(t,e),cameraCount:n,status:m?"直播中":"离线",rawStatus:u.raw,statusReason:u.reason,onlineRate:p,updateTime:MN(),operator:m?"萤石云 · 在线预览":u.reason,progress:m?100:0,image:bN(t),lastCaptureTime:TN(t),playUrl:o,hdPlayUrl:r,token:s,source:t}}function yp(){return L3(this,arguments,function*(t={}){const s=t,{includeOffline:e=!1}=s,n=Q9(s,["includeOffline"]),a=yield zn(pN("/api/home/monitorings"),{params:n,timeout:18e3}).then(gN),i=Array.isArray(a)?a:(a==null?void 0:a.rows)||(a==null?void 0:a.list)||[],r=i.filter(CN),o=i.map((u,m)=>PN(u,m,i.length,r.length));return e?o.sort((u,m)=>+(m.status==="直播中")-+(u.status==="直播中")):o.filter(u=>u.status==="直播中")})}const lu="/geoserver/ne/wms",kN={}.VITE_GEOSERVER_WFS_URL||lu.replace(/\/wms$/i,"/wfs"),EN={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function kr(t,e){const n=new URLSearchParams;return Object.entries(e).forEach(([a,i])=>{i!=null&&i!==""&&n.append(a,i)}),`${t}${t.includes("?")?"&":"?"}${n.toString()}`}function NN(t,e={}){const n=e.bounds||J1,a=e.size||F6;return kr(e.url||lu,{service:"WMS",version:"1.1.1",request:"GetMap",layers:t.layerName,styles:t.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[n.west,n.south,n.east,n.north].join(","),width:a.width,height:a.height,CQL_FILTER:e.cqlFilter||t.cqlFilter,SLD_BODY:e.sldBody||t.sldBody,_:Date.now()})}function RN(t,e={}){var r,o,s,u,m;const n=t.tileMatrixSetID||t.tileMatrixSet||"EPSG:900913",a=Number((u=(s=(o=(r=e.z)!=null?r:e.zoom)!=null?o:t.wmtsZoom)!=null?s:t.homeWmtsZoom)!=null?u:0),i=e.tileMatrix||((m=t.tileMatrixLabels)==null?void 0:m[a])||`${n}:${a}`;return kr(e.url||t.url||EN,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:t.layerName,style:t.style||t.styles||"",format:t.format||"image/png",tileMatrixSet:n,tileMatrix:i,tileRow:e.y,tileCol:e.x})}function LN(t,e,n={}){var r,o;const a=n.bounds||J1,i=n.size||F6;return kr(n.url||lu,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:t.layerName,query_layers:t.layerName,styles:t.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[a.west,a.south,a.east,a.north].join(","),width:i.width,height:i.height,x:Math.round(e.x),y:Math.round(e.y),buffer:(o=(r=n.buffer)!=null?r:t.queryBuffer)!=null?o:8,CQL_FILTER:n.cqlFilter||t.cqlFilter,SLD_BODY:n.sldBody||t.sldBody})}function rh(a,i){return L3(this,arguments,function*(t,e,n={}){const r=LN(t,e,n);return zn(r,{credentials:"include"})})}function IN(t,e={}){return kr(e.url||kN,{service:"WFS",version:e.version||"1.0.0",request:"GetFeature",typeName:t,outputFormat:"json",propertyName:Array.isArray(e.propertyName)?e.propertyName.join(","):e.propertyName,CQL_FILTER:e.cqlFilter,maxFeatures:e.maxFeatures||2e5})}function nr(n){return L3(this,arguments,function*(t,e={}){const a=IN(t,e);return zn(a,{credentials:"include",timeout:e.timeout||2e4})})}const FN="/openApi",Y5=756.37,xl=297.29,Sn=291.82,BN=16.47,DN=177.92,GN=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],UN=vn.map(I8),di=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],g9=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function vp(t){return/^https?:\/\//.test(t)?t:`${FN}${t.startsWith("/")?t:`/${t}`}`}function F5(t,e){return zn(vp(t),{method:"POST",body:e?JSON.stringify(e):void 0,headers:{"Content-Type":"application/json"}})}function we(t,e){return zn(vp(t),{params:e})}function Sp(t,e=[]){const n=[...e.map(a=>t==null?void 0:t[a]),...e.map(a=>{var i;return(i=t==null?void 0:t.data)==null?void 0:i[a]}),...e.map(a=>{var i;return(i=t==null?void 0:t.result)==null?void 0:i[a]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const a of n)if(Array.isArray(a)){const i=a.find(r=>r&&typeof r=="object");if(i)return i}else if(a&&typeof a=="object")return a;return null}function wp(t){return L3(this,null,function*(){if(!t)return null;const e=D0(yield we("/woodland/detail",{wkt:t}));return Sp(e,["woodland"])})}function ON(t){return L3(this,null,function*(){if(!t)return null;const e=D0(yield we("/basic_grassland/detail",{wkt:t}));return Sp(e,["basicGrassland"])})}function v0(t,e){for(const n of e)if((t==null?void 0:t[n])!==void 0&&(t==null?void 0:t[n])!==null&&(t==null?void 0:t[n])!=="")return t[n]}function vt(t){if(t==null||t==="")return;const e=Number(t);return Number.isNaN(e)?void 0:e}function x0(t){const e=vt(t);if(e!==void 0)return Number.isInteger(e)?e:Number(e.toFixed(2))}function uu(t,e,n){const a=vt(t),i=vt(e),r=vt(n);if(a===void 0||i===void 0||r===void 0)return[x0(e),x0(n)];const o=i+r;if(!o)return[0,0];const s=x0(i/o*a);return[s,x0(Math.max(a-s,0))]}function e6(t,e){const n=vt(t),a=vt(e);if(!(n===void 0||a===void 0||a===0))return n/a*100}function fi(t,e,n="占比"){var i;const a=x0((i=v0(t,["areaPercent","area_percent","percent"]))!=null?i:e6(v0(t,["areaWanMu","value"]),e));return a===void 0?"":`${n} ${a}%`}function I6(t,e=""){const n=x0(v0(t,["areaPercent","area_percent","percent"]));return n===void 0?"":`${e}${n}%`}function jN(t,e=0){const n=v0(t,["name","title","label","zh","itemName","item_name"])||`指标${e+1}`,a=x0(v0(t,["value","num","count","area","acreage","total"])),i=v0(t,["unit","unitName","unit_name"])||"";return{key:v0(t,["id","key","code"])||`${n}-${e}`,name:n,value:a,unit:i,source:t}}function zN(t){return(Array.isArray(t)?t:(t==null?void 0:t.rows)||(t==null?void 0:t.list)||[]).map(jN).filter(n=>n.name)}function YN(t){const e=(t==null?void 0:t.core)||(t==null?void 0:t.summary)||t||{},n=((t==null?void 0:t.typeDistribution)||(t==null?void 0:t.typeStats)||[])[0]||{},a=((t==null?void 0:t.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:x0(v0(e,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${v0(n,["name"])||"主导类型"}占比`,value:x0(v0(n,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:x0(v0(a,["areaWanMu","value"])),unit:"万亩"}]}function $N(t){const e=(t==null?void 0:t.overview)||(t==null?void 0:t.summary)||t||{},n=v0(e,["areaUnit","area_unit"])||"万亩",[a,i]=uu(Y5,v0(e,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),v0(e,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Y5,unit:n},{key:"basic-grassland-area",name:"基本草原",value:a,unit:n},{key:"general-grassland-area",name:"一般草原",value:i,unit:n}]}function C9(t,e){const i=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[e]||[]).map((r,o)=>{var s,u;return t3(B2(B2({},r),t[o]||{}),{name:((s=t[o])==null?void 0:s.name)||r.name,unit:((u=t[o])==null?void 0:u.unit)||r.unit})});return e==="wetland"&&i[0]&&(i[0]=t3(B2({},i[0]),{key:i[0].key||"wetland-area",name:"湿地面积",value:Sn,unit:i[0].unit||"万亩"})),i.length?i:t}function WN(t){return L3(this,null,function*(){let e;for(const n of t)try{return yield n()}catch(a){e=a}throw e||new Error("No request configured")})}function Ue(t=[],e={}){const{nameKeys:n=["name","townName","typeName"],valueKeys:a=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:i="万亩",max:r=Number.POSITIVE_INFINITY,extra:o}=e,s=t.map((u,m)=>{const p=x0(v0(u,a)),f={key:v0(u,["key","code","townCode"])||`${v0(u,n)||m}-${m}`,name:v0(u,n)||`第${m+1}项`,value:p,unit:i,percent:x0(v0(u,["percent","areaPercent","basicRatio","generalRatio"])),source:u};return o?t3(B2({},f),{extra:o(u)}):f}).sort((u,m)=>(Number(m.value)||0)-(Number(u.value)||0));return Number.isFinite(r)?s.slice(0,r):s}function hi(t=[],e={}){const{nameKeys:n=["name"],valueKeys:a=["value"],unit:i,max:r=Number.POSITIVE_INFINITY,extra:o}=e;return Ue(t,{nameKeys:n,valueKeys:a,unit:i,max:r,extra:o})}function VN(t=[],e={}){const{nameKeys:n=["grassMinType","name"],valueKeys:a=["acreage"],unit:i="万亩",max:r=Number.POSITIVE_INFINITY}=e,o=t.map((s,u)=>{const m=v0(s,a),p=x0(i==="万亩"?vt(m)/1e4:m),f=v0(s,n)||`第${u+1}项`;return{key:v0(s,["key","code"])||`${f}-${u}`,name:f,value:p,unit:i,source:s}}).filter(s=>Number(s.value)>0).sort((s,u)=>(Number(u.value)||0)-(Number(s.value)||0));return Number.isFinite(r)?o.slice(0,r):o}function ee(t,e,n,a="rank",i={}){return B2({key:t,title:e,type:a,rows:n||[]},i)}function ar(t=[],e=[],n={}){const{unit:a="万吨",max:i=Number.POSITIVE_INFINITY,showMuYieldExtra:r=!0}=n,o=new Map(e.map(s=>[s.areaName,s]));return Ue(t,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:a,max:i,extra:s=>{const u=o.get(s.areaName),m=x0(v0(u,["yield","value"])),p=v0(u,["unit"])||"斤";return r&&m!==void 0?`亩产 ${m} ${p}`:""}})}function I8(t){return String(t||"").replace(/\s+/g,"").trim()}function Ta(t=[]){const e=new Map(UN.map((n,a)=>[n,a]));return[...t].sort((n,a)=>{const i=e.get(I8(n==null?void 0:n.name)),r=e.get(I8(a==null?void 0:a.name));return i!==void 0&&r!==void 0?i-r:i!==void 0?-1:r!==void 0?1:0})}function bp(t){const e=String(t||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[e]||e}function ir(t){return bp(t).replace(/\s+/g,"").replace(/类$/,"")}function rr(t){const e=String(t||""),n=e.match(/level-([1-8])/);if(n)return n[1];const a=e.match(/([1-8])\s*级/);if(a)return a[1];if(/^[1-8]$/.test(e.trim()))return e.trim();const r=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([o])=>e.includes(`${o}级`));return(r==null?void 0:r[1])||""}function Tp(t){return rr(t==null?void 0:t.key)||rr(t==null?void 0:t.name)}function Er(t=[],e={}){const{nameKeys:n=["name","townName","areaName"],valueKeys:a=["areaWanMu","value","totalAreaWanMu","yield"],unit:i="万亩"}=e;return t.map((r,o)=>{const s=I8(v0(r,n)),u=x0(v0(r,a));return!s||u===void 0?null:{key:v0(r,["key","code","townCode"])||`${s}-${o}`,name:s,value:u,unit:v0(r,["unit"])||i,source:r}}).filter(Boolean).sort((r,o)=>(Number(o.value)||0)-(Number(r.value)||0))}function Ml(t=[],e={}){const{nameKeys:n=["townName","name","areaName"],valueKeys:a=["areaWanMu","value","totalAreaWanMu","yield"],unit:i="万亩"}=e,r=new Map;return t.forEach(o=>{const s=I8(v0(o,n)),u=vt(v0(o,a));if(!s||u===void 0)return;const m=r.get(s)||{key:v0(o,["townCode","code"])||s,name:s,value:0,unit:v0(o,["unit"])||i,source:[]};m.value+=u,m.source.push(o),r.set(s,m)}),Array.from(r.values()).map(o=>t3(B2({},o),{value:x0(o.value)})).sort((o,s)=>(Number(s.value)||0)-(Number(o.value)||0))}function j6({topicKey:t,layerKey:e,title:n,unit:a="万亩",rows:i=[],note:r="",metricLabel:o=""}){const s=i.filter(u=>(u==null?void 0:u.name)&&u.value!==void 0).sort((u,m)=>(Number(m.value)||0)-(Number(u.value)||0)).map((u,m)=>t3(B2({},u),{unit:u.unit||a,rank:m+1}));return{status:s.length?"success":"empty",topicKey:t,layerKey:e,title:n,unit:a,metricLabel:o,note:r,rows:s}}function mi(o){return L3(this,arguments,function*({topicKey:t,layerKey:e,layerName:n,title:a,cqlFilter:i="",unit:r="万亩"}){const s=yield nr(n,{propertyName:["xiang","acreage"],cqlFilter:i,maxFeatures:2e5}),u=new Map;return((s==null?void 0:s.features)||[]).forEach(m=>{const p=m.properties||{},f=String(p.xiang||""),g=va(f),C=vt(p.acreage);if(!g||C===void 0)return;const F=u.get(g)||{key:f,name:g,value:0,unit:r};F.value+=C/1e4,u.set(g,F)}),j6({topicKey:t,layerKey:e,title:a,unit:r,rows:Array.from(u.values()).map(m=>t3(B2({},m),{value:x0(m.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function HN(t,e,n="林地面积排行"){return L3(this,null,function*(){const a=D0(yield F5("/woodland/distribution"));return j6({topicKey:t,layerKey:e,title:n,unit:"万亩",rows:Er((a==null?void 0:a.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function oh(t,e,n,a){return L3(this,null,function*(){const i=D0(yield we("/basic_grassland/overview"));return j6({topicKey:t,layerKey:e,title:a,unit:"万亩",rows:Er((i==null?void 0:i.townStats)||[],{nameKeys:["name"],valueKeys:[n],unit:"万亩"})})})}function KN(t={},e=[],n=[]){const a=v0(t,n);if(a)return I8(a);const i=e.map(o=>v0(t,[o])).find(o=>o!==void 0),r=String(i||"").slice(0,9);return va(r)}function qN(t,e,n,a){return L3(this,null,function*(){const i=(a==null?void 0:a.rankingTownCodeKeys)||(n==null?void 0:n.rankingTownCodeKeys)||["area_code","xiang","town_code"],r=(a==null?void 0:a.rankingTownNameKeys)||(n==null?void 0:n.rankingTownNameKeys)||["town_name","area_name","xiang_name"],o=(a==null?void 0:a.rankingAreaKeys)||(n==null?void 0:n.rankingAreaKeys)||["acreage","area_mu","area"],s=(a==null?void 0:a.rankingPropertyName)||[...i,...r,...o],u=yield nr(n.layerName,{propertyName:s,cqlFilter:a.cqlFilter,maxFeatures:2e5,timeout:25e3}),m=new Map;return((u==null?void 0:u.features)||[]).forEach(p=>{const f=p.properties||{},g=KN(f,i,r),C=vt(v0(f,o));if(!g||C===void 0)return;const F=m.get(g)||{key:g,name:g,value:0,unit:"万亩"};F.value+=C/1e4,m.set(g,F)}),j6({topicKey:t,layerKey:e,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Array.from(m.values()).map(p=>t3(B2({},p),{value:x0(p.value),metricLabel:a.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function JN(t,e,n){return L3(this,null,function*(){const a=D0(yield we("/basic_grassland/overview"));return j6({topicKey:t,layerKey:e,title:`${n.name}面积排行`,unit:"万亩",metricLabel:n.name,rows:Er((a==null?void 0:a.townStats)||[],{nameKeys:["name"],valueKeys:[n.rankingValueKey],unit:"万亩"}).map(i=>t3(B2({},i),{metricLabel:n.name}))})})}function Nr(t,e,n,a,i={}){const r=u8(a||[],i).map(o=>t3(B2({},o),{metricLabel:n.name}));return j6({topicKey:t,layerKey:e,title:`${n.name}面积排行`,unit:"万亩",metricLabel:n.name,rows:r})}function QN(t,e,n){return L3(this,null,function*(){const a=Tp(n);if(!a)return null;const i=D0(yield we("/grassland_grassland_level/distribution"));return Nr(t,e,n,i,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:r=>rr(v0(r,["level","name"]))===a})})}function ZN(t,e,n){return L3(this,null,function*(){const a=ir(n.name);if(!a)return null;const[i,r]=yield Promise.all([De(()=>L3(this,null,function*(){return D0(yield we("/grassland_grass_type/distribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Nr(t,e,n,[...i||[],...r||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:o=>{const s=v0(o,["grassMinType","grass_min_type","grassType","grass_type","name"]);return ir(s)===a}})})}function XN(t,e,n){return L3(this,null,function*(){const a=Tp(n);if(!a)return null;const i=D0(yield we("/wetland_grassland_level/distribution"));return Nr(t,e,n,i,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:r=>rr(v0(r,["level","name"]))===a})})}function eR(t,e,n){return L3(this,null,function*(){const a=ir(n.name);if(!a)return null;const[i,r]=yield Promise.all([De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grass_type_copy/distribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Nr(t,e,n,[...i||[],...r||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:o=>{const s=v0(o,["grassMinType","grass_min_type","grassType","grass_type","name"]);return ir(s)===a}})})}function tR(t,e,n){return L3(this,null,function*(){if(!(n!=null&&n.key))return null;const a=j5(t,e);return a?t==="grassland"&&e==="basic-grassland"&&n.rankingValueKey?JN(t,e,n):t==="grassland"&&e==="grassland-level"?QN(t,e,n):t==="grassland"&&e==="grassland-type"?ZN(t,e,n):t==="wetland"&&e==="wetland-level"?XN(t,e,n):t==="wetland"&&e==="wetland-type"?eR(t,e,n):n.cqlFilter&&a.layerName?qN(t,e,a,n):null:null})}function pi(t,e,n,a,i="万吨"){return L3(this,null,function*(){const r=D0(yield we(n)),o=v0(r==null?void 0:r[0],["unit"])||i;return j6({topicKey:t,layerKey:e,title:a,unit:o,rows:Er(r||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:o})})})}function $t(t=[],e=5){return t.slice(0,e)}function T8(t=[],e={}){var p,f;const{limit:n=5,minPercent:a=1,otherName:i="其他类型"}=e,r=t.filter(g=>(g==null?void 0:g.name)&&Number(g.value)>0).sort((g,C)=>(Number(C.value)||0)-(Number(g.value)||0)),o=r.reduce((g,C)=>g+(Number(C.value)||0),0);if(!o||r.length<=n)return r;const s=[],u=[];if(r.forEach((g,C)=>{const F=e6(g.value,o);C=a)?s.push(g):u.push(g)}),!u.length)return s;const m=u.reduce((g,C)=>g+(Number(C.value)||0),0);return[...s,{key:`${i}-${u.length}`,name:i,value:x0(m),unit:((p=u[0])==null?void 0:p.unit)||((f=r[0])==null?void 0:f.unit)||"万亩",extra:`${x0(e6(m,o))}%`}]}function b6(t=[]){return t.reduce((e,n)=>e+(Number(n.value)||0),0)}function Un(t=[],e=b6(t),n=""){return t.map(a=>{const i=x0(e6(a.value,e));return t3(B2({},a),{extra:i===void 0?a.extra:`${n}${i}%`})})}function C8(t=[],e,n={}){const{key:a="unclassified",name:i="未分类",unit:r="万亩",sort:o=!0}=n,s=vt(e);if(s===void 0)return t;const u=b6(t),m=x0(s-u);if(m===void 0||m<=.01)return t;const p=[...t,{key:a,name:i,value:m,unit:r}];return o?p.sort((f,g)=>(Number(g.value)||0)-(Number(f.value)||0)):p}function Q4(t=[],e){const n=vt(e),a=b6(t);if(n===void 0||!a)return t;let i=0;return t.map((r,o)=>{const s=o===t.length-1,u=x0(s?Math.max(n-i,0):(Number(r.value)||0)/a*n);return i+=Number(u)||0,t3(B2({},r),{value:u})})}function m6(t=[],e=[]){return e.length?t.map((n,a)=>t3(B2({},n),{color:(n==null?void 0:n.color)||(n==null?void 0:n.fillColor)||e[a%e.length]})):t}function sh(t){return Array.isArray(t==null?void 0:t.rows)&&t.rows.length>0}function Kn(t=[],e=[],n=4){const a=[],i=new Set,r=s=>{!s||i.has(s.key)||(i.add(s.key),a.push(s))},o=[...t,...e];return o.filter(sh).forEach(r),o.filter(s=>s&&!sh(s)).forEach(r),a.slice(0,n)}function nR(t,e,n={}){return t&&B2(t3(B2({},t),{type:e}),n)}function ze(t=[]){const e=["bar","line","donut","column","structure","heat","peak","split"],n={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},a=new Set;return t.map(i=>{if(!(i!=null&&i.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(i.type))return i;const r=i.type==="donut"&&i.variant==="ring"?"donut-ring":i.type;if(i.fixedType||!a.has(r))return a.add(r),i;const o=(n[i.type]||e).find(s=>!a.has(s))||i.type;return a.add(o),nR(i,o,{variant:o===i.type?i.variant:void 0})})}function lh(t=[],e={}){const{headCount:n=4,headName:a="重点区域",tailName:i="其他区域"}=e,r=t.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0);if(!r.length)return[];const o=r.slice(0,n),s=r.slice(n),u=(m,p)=>{var f,g;return{key:m,name:m,value:x0(p.reduce((C,F)=>C+(Number(F.value)||0),0)),unit:((f=p[0])==null?void 0:f.unit)||((g=r[0])==null?void 0:g.unit)||"万亩",extra:`${p.length}项`}};return[u(a,o),s.length?u(i,s):null].filter(m=>m&&Number(m.value)>0)}function A8(t,e,n){var s,u,m,p;if(e==="woodland"||!n)return t;const a={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[e],i=((s=t==null?void 0:t.layerPanels)==null?void 0:s[n])||((u=t==null?void 0:t.layerPanels)==null?void 0:u[a]);if(!i)return t;const r=(m=i.leftPanels)!=null&&m.length?i.leftPanels:t.leftPanels,o=(p=i.rightPanels)!=null&&p.length?i.rightPanels:t.rightPanels;return t3(B2({},t),{activeLayerKey:n||a,leftPanels:r,rightPanels:o,left:(r==null?void 0:r[0])||t.left,right:(o==null?void 0:o[0])||t.right})}function Cp(t,e=["areaWanMu","value","acreage","areaMu"]){for(const n of e){const a=v0(t,[n]),i=vt(a);if(i===void 0)continue;const r=String(n).toLowerCase(),o=String(v0(t,["unit","areaUnit","area_unit"])||"");return r.includes("wanmu")||o==="万亩"?i:r.includes("mu")||o==="亩"?i/1e4:i}}function u8(t=[],e={}){const{nameKeys:n=["name","areaName","townName"],valueKeys:a=["areaWanMu","value","acreage","areaMu"],nameTransform:i=u=>u,filter:r,extra:o}=e,s=new Map;return t.forEach(u=>{if(r&&!r(u))return;const m=v0(u,n),p=i(m,u),f=Cp(u,a);if(!p||f===void 0)return;const g=s.get(p)||{key:v0(u,["key","code","townCode"])||p,name:p,value:0,unit:"万亩",source:[]};g.value+=f,g.source.push(u),s.set(p,g)}),Array.from(s.values()).map(u=>{const m=t3(B2({},u),{value:x0(u.value)});return o?t3(B2({},m),{extra:o(m)}):m}).filter(u=>Number(u.value)>0).sort((u,m)=>(Number(m.value)||0)-(Number(u.value)||0))}function uh(t){return String(t||"").replace(/草原/g,"湿地")}function aR(t={},e=[]){var o;const n=(t==null?void 0:t.unit)||v0(e==null?void 0:e[0],["unit"])||"万吨",a=(o=vt(t==null?void 0:t.xc))!=null?o:b6(e),i=vt(t==null?void 0:t.edibleXc),r=a!==void 0&&i!==void 0?Math.max(a-i,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:x0(i),unit:n,extra:`${x0(e6(i,a))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:x0(r),unit:n,extra:`${x0(e6(r,a))}%`}].filter(s=>s.value!==void 0)}function iR(t={},e=[],n=[]){var u;const a=(t==null?void 0:t.unit)||v0(e==null?void 0:e[0],["unit"])||v0(n==null?void 0:n[0],["unit"])||"万吨",i=(u=vt(t==null?void 0:t.xc))!=null?u:b6(n),r=vt(t==null?void 0:t.edibleXc),o=b6(e),s=r!==void 0||o>0?Math.max(r||0,o||0):void 0;return t3(B2({},t),{xc:x0(i),edibleXc:x0(s),unit:a})}function Ap({yieldSummary:t,townAreaRows:e,typeRows:n,levelRows:a,yieldRows:i,minTypeRows:r,muYieldRows:o,edibleYieldRows:s,edibleMuRows:u,typeTownRows:m,levelTownRows:p,minTownRows:f}){const g=ee("wetland-town-area","湿地面积分布",m6(Ta(e),di),"column",{span:1,variant:"plain"}),C=ee("wetland-type","湿地类型结构",m6(n,di),"donut",{span:1}),F=ee("wetland-level-proportion","湿地级占比",m6(Un(a),di),"donut",{span:1,variant:"ring"}),z=ee("wetland-min-type","湿地优势小类",m6($t(r,6),di),"bar",{span:1,variant:"raceBarNoWrap"}),Y=ee("wetland-yield-capacity","湿地产能结构",aR(t,i),"structure",{span:1}),i2=ee("wetland-yield","湿地生产力分布",Ta(i),"line",{span:1,fixedType:!0}),v2=ee("wetland-edible-yield","可食鲜草产量",$t(s,vn.length),"column",{span:1,variant:"slim"}),y2=ee("wetland-mu-yield","湿地亩产效率",$t(o,vn.length),"heat",{span:1,limit:vn.length}),A2=ee("wetland-level","湿地级别面积",a,"column",{span:1}),S2=ee("wetland-level-town","1级湿地分布",$t(p,vn.length),"bar",{span:1,variant:"distribution"}),Q2=ee("wetland-type-town","湿地类型乡镇分布",$t(m,vn.length),"bar",{span:1,variant:"distribution"}),X2=ee("wetland-edible-mu","可食鲜草亩产",$t(u,vn.length),"bar",{span:1}),c3=ee("wetland-min-town","优势小类乡镇分布",$t(f,vn.length),"bar",{span:1,variant:"distribution"}),p3=ze([g,C,F,z]),l3=ze([v2,i2,y2,Y]);return{leftPanels:p3,rightPanels:l3,left:p3[0],right:l3[0],layerPanels:rR({townAreaPanel:g,typePanel:C,yieldCapacityPanel:Y,yieldPanel:i2,levelPanel:A2,levelTownPanel:S2,muYieldPanel:y2,levelStructurePanel:F,typeTownPanel:Q2,minTypePanel:z,edibleYieldPanel:v2,edibleMuPanel:X2,minTownPanel:c3})}}function rR(t={}){const{townAreaPanel:e,typePanel:n,yieldCapacityPanel:a,yieldPanel:i,levelPanel:r,levelTownPanel:o,muYieldPanel:s,levelStructurePanel:u,typeTownPanel:m,minTypePanel:p,edibleYieldPanel:f,edibleMuPanel:g,minTownPanel:C}=t;return{"wetland-distribution":{leftPanels:ze([e,n,u,p].filter(Boolean)),rightPanels:ze([f,i,s,a].filter(Boolean))},"wetland-level":{leftPanels:ze([u,r,o,n].filter(Boolean)),rightPanels:ze([f,i,s,a].filter(Boolean))},"wetland-type":{leftPanels:ze([n,m,p,C].filter(Boolean)),rightPanels:ze([f,i,g,a].filter(Boolean))},"wetland-yield":{leftPanels:ze([e,n,u,p].filter(Boolean)),rightPanels:ze([f,i,s,a].filter(Boolean))}}}function oR(t={}){const{leftPanels:e=[],rightPanels:n=[]}=t,a={leftPanels:ze(e.filter(Boolean)),rightPanels:ze(n.filter(Boolean))};return{"grassland-distribution":a,"basic-grassland":a,"grassland-level":a,"grassland-type":a,"grassland-yield":a,"grassland-health":a}}function _p({townRows:t=[],typeRows:e=[],scaleRows:n=[],protectionRows:a=[],ownershipRows:i=[],qualityRows:r=[],originRows:o=[],ageRows:s=[],canopyRows:u=[],forestTypeRows:m=[],manageLevelRows:p=[],regionRows:f=[],ownerRows:g=[],typeTownRows:C=[],qualityLevelRows:F=[],townConcentrationRows:z=lh(t,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:Y=lh(e,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const i2=ee("woodland-town","林地面积分布",m6(Ta(t),g9),"column",{span:1,variant:"plain",lineOverlay:!0}),v2=ee("woodland-type","林地类型结构",m6(e,g9),"donut",{span:1,variant:"ring"}),y2=ee("woodland-protection","公益林保护等级",m6(Un(a),g9),"bar",{span:1,variant:"raceBarRelaxed"}),A2=ee("woodland-ownership","林地权属结构",m6(Un(i),g9),"structure",{span:1}),S2=ee("woodland-quality","优势树种面积",$t(r,6),"bar",{span:1,variant:"raceBarNoWrap"}),Q2=ee("woodland-origin","林地起源结构",Un(o),"structure",{span:1}),X2=ee("woodland-age","林龄组结构",$t(s,6),"column",{span:1}),c3=ee("woodland-canopy","郁闭度结构",m6($t(u,6),g9),"donut",{span:1,fixedType:!0}),p3=ee("woodland-area-scale","林地图斑规模",n,"column",{span:1}),l3=ee("woodland-forest-type","森林类别结构",$t(m,6),"bar",{span:1}),b3=ee("woodland-manage-level","管护等级分布",$t(p,6),"bar",{span:1}),N3=ee("woodland-public-rank","公益林面积排行",$t(f,6),"bar",{span:1,variant:"distribution"}),_3=ee("woodland-owner-rank","权属单位排行",$t(g,6),"bar",{span:1}),J3=ee("woodland-type-town","乡镇类型构成",$t(C,6),"bar",{span:1,variant:"distribution"}),R3=ee("woodland-quality-level","林地质量等级",Un(F),"donut",{span:1}),Z3=ee("woodland-town-concentration","林地集中度",m6(Un(z),g9),"structure",{span:1}),M1=ee("woodland-type-concentration","类型集中度",m6(Un(Y),g9),"rose",{span:1}),b1=ze(Kn([i2,v2,y2,A2],[p3,_3,l3,S2])),j1=ze(Kn([S2,Q2,X2,c3],[p3,_3,l3,N3,Z3,M1]));return{leftPanels:b1,rightPanels:j1,left:b1[0],right:j1[0],layerPanels:sR({townPanel:i2,typePanel:v2,scalePanel:p3,protectionPanel:y2,ownershipPanel:A2,qualityPanel:S2,originPanel:Q2,agePanel:X2,canopyPanel:c3,forestTypePanel:l3,manageLevelPanel:b3,regionPanel:N3,ownerPanel:_3,typeTownPanel:J3,qualityLevelPanel:R3,townConcentrationPanel:Z3,typeConcentrationPanel:M1})}}function sR(t={}){const{townPanel:e,typePanel:n,scalePanel:a,protectionPanel:i,ownershipPanel:r,qualityPanel:o,originPanel:s,agePanel:u,canopyPanel:m,forestTypePanel:p,manageLevelPanel:f,regionPanel:g,ownerPanel:C,typeTownPanel:F,qualityLevelPanel:z,townConcentrationPanel:Y,typeConcentrationPanel:i2}=t;return{"woodland-distribution":{leftPanels:ze(Kn([e,n,i,r],[a,p,C])),rightPanels:ze(Kn([o,s,u,m],[a,C,g,Y,i2,z]))},"woodland-protection":{leftPanels:ze(Kn([i,p,f,e],[n,r,a])),rightPanels:ze(Kn([g,o,s,r],[C,n,a]))},"woodland-type":{leftPanels:ze(Kn([n,e,F,a],[i,r,p])),rightPanels:ze(Kn([o,s,i,r],[u,m,C,i2]))},"woodland-quality":{leftPanels:ze(Kn([o,s,u,m],[z,a,n])),rightPanels:ze(Kn([e,n,i,r],[p,C,a]))},"woodland-ownership":{leftPanels:ze(Kn([r,C,e,n],[a,i,o])),rightPanels:ze(Kn([i,o,s,a],[p,u,m]))}}}function lR(t=GN){const e=t.map(r=>t3(B2({},r),{value:x0(r.value),unit:r.unit||"万亩"})),n=x0(Y5-b6(e)),a=e.find(r=>r.name==="未退化");a&&n!==void 0&&Math.abs(n)>.01&&(a.value=x0(Math.max((Number(a.value)||0)+n,0)));const i=["未退化","轻度退化","中度退化","重度退化"];return Un(e.sort((r,o)=>{const s=i.indexOf(r.name),u=i.indexOf(o.name);return(s===-1?99:s)-(u===-1?99:u)}),Y5)}function uR(){return L3(this,null,function*(){return cu()})}function xp(t=[],e={},n=[]){var i;const a=(i=vt(e==null?void 0:e.xc))!=null?i:b6(n);return[t[0],t[1],t[2],{key:"grassland-yield-total",name:"鲜草产量",value:x0(a),unit:(e==null?void 0:e.unit)||"万吨"}].filter(r=>(r==null?void 0:r.value)!==void 0)}function cR(t={},e=[]){return t3(B2({},t),{xc:xl,unit:(t==null?void 0:t.unit)||v0(e==null?void 0:e[0],["unit"])||"万吨"})}function dR(t=[]){const e=b6(t);return t.filter(n=>n.name&&Number(n.value)>0).map(n=>t3(B2({},n),{color:fR(n.name),extra:x0(e6(n.value,e))?`${x0(e6(n.value,e))}%`:""})).sort((n,a)=>Number(a.value)-Number(n.value))}function fR(t=""){const e=String(t);return e.includes("未退化")?"#32DCFF":e.includes("重度")?"#FFE06B":e.includes("中度")?"#6EA8FF":"#24F6C4"}function Mp(t={},e=[]){var s;const n=(t==null?void 0:t.unit)||v0(e==null?void 0:e[0],["unit"])||"万吨",a=(s=vt(t==null?void 0:t.xc))!=null?s:b6(e),i=vt(t==null?void 0:t.edibleXc),r=a!==void 0&&i!==void 0?Math.max(a-i,0):void 0,o=e.find(u=>Number(u.value)>0);return[{key:"forage-total",name:"鲜草总产",value:x0(a),unit:n,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:x0(i),unit:n,scaleValue:x0(e6(i,a))},{key:"forage-unavailable",name:"不可食鲜草",value:x0(r),unit:n,scaleValue:x0(e6(r,a))},{key:"forage-top-town",name:o!=null&&o.name?`最高乡镇:${o.name}`:"最高乡镇产量",value:o==null?void 0:o.value,unit:(o==null?void 0:o.unit)||n,scaleValue:x0(e6(o==null?void 0:o.value,a))}].filter(u=>u.value!==void 0)}function cu(){return{levelRows:lR(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function ch(t,e){if(t==="grassland"){const[n,a]=uu(Y5,637.13,119.31),i=C9([{key:"grassland-area",name:"草地面积",value:Y5,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:n,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:a,unit:"万亩"}],t),r=Ue([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),o=Ue([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),s=T8([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:a,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),u=Ue([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),p=cu().levelRows,f=Un([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),g=Un([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),C=Mp({xc:xl,edibleXc:192.26,unit:"万吨"},o),F=Ue([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),z=kp({core:i,townRows:r,grassTypeRows:s,grassLevelRows:f,healthRows:g,productivityRows:u,edibleYieldRows:F,forageRows:C,degradationRows:p}),Y=t3(B2({status:"fallback"},z),{top:xp(i,{xc:xl,unit:"万吨"},o)});return A8(Y,t,e)}if(t==="wetland"){const n=C9([{key:"wetland-area",name:"湿地面积",value:Sn,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],t),a=C8(T8([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),Sn,{key:"wetland-type-unclassified",name:"未分类湿地"}),i=C8([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],Sn,{key:"wetland-level-unclassified",name:"未分级湿地"}),r=Ue([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),o=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],s=Q4([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((C,F)=>F.value-C.value),Sn),u=C8([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],Sn,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),m=Ue([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),p=Ue([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),f=Ap({core:n,yieldSummary:{xc:108.84,edibleXc:BN,unit:"万吨"},townAreaRows:s,typeRows:a,levelRows:i,yieldRows:r,minTypeRows:u,muYieldRows:o,edibleYieldRows:m,edibleMuRows:p,typeTownRows:s,levelTownRows:s,minTownRows:s}),g=B2({status:"fallback",core:n,top:[n[0],n[1],n[2]]},f);return A8(g,t,e)}if(t==="woodland"){const n=C9([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],t),a=Ue([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:f=>`占比 ${x0(f.percent)}%`}),i=T8([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),m=_p({townRows:a,typeRows:i,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),p=B2({status:"fallback",core:n,top:[n[0],n[1],n[2]]},m);return A8(p,t,e)}return{status:"empty",core:C9([],t),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Pp(t=[],e=["name"]){const n=new Map;return t.forEach(a=>{const i=v0(a,e);!i||n.has(i)||n.set(i,a)}),Array.from(n.values())}function De(t,e=[]){return t().catch(()=>e)}function ks(t=[],e={}){const{nameKeys:n=["name","health","level"],valueKeys:a=["value","acreage","areaWanMu"],unit:i="万亩",nameTransform:r=u=>u,max:o=Number.POSITIVE_INFINITY}=e,s=Ue(t||[],{nameKeys:n,valueKeys:a,unit:i}).map(u=>t3(B2({},u),{name:r(u.name)}));return Un(s).filter(u=>Number(u.value)>0).slice(0,o)}function hR(t){const e=String(t||"");return/^\d+$/.test(e)?`${e}级草原`:e.includes("级")?e.replace(/草地/g,"草原"):e}function mR(t){const e=String(t||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[e]||e}function kp({core:t,townRows:e,grassTypeRows:n,grassLevelRows:a,healthRows:i,productivityRows:r,edibleYieldRows:o,forageRows:s,degradationRows:u}){const m=ee("grassland-town","草地面积分布",Ta(e),"column",{span:1,variant:"plain"}),p=ee("grassland-productivity-town","草地生产力分布",Ta(r),"line",{span:1,fixedType:!0}),f=ee("grassland-type-proportion","草原类占比",n,"donut",{span:1}),g=ee("grassland-edible-yield","可食鲜草产量分布",$t(o,10),"column",{span:1,variant:"slim"}),C=ee("grassland-degradation","草地退化统计",dR(u),"bar",{span:1,variant:"degradation"}),F=ee("grassland-health-proportion","草地健康占比",i,"rose",{span:1}),z=ee("grassland-level-proportion","草原级占比",a,"donut",{span:1,variant:"ring"}),Y=ee("grassland-forage-capacity","饲草供给",s,"bar",{span:1,variant:"capacity"}),i2=ze([m,f,C,z]),v2=ze([g,p,F,Y]);return{core:t,leftPanels:i2,rightPanels:v2,left:i2[0],right:v2[0],layerPanels:oR({leftPanels:i2,rightPanels:v2})}}function pR(t,e={}){const n=zN(t),a=Pp(e.typeRows||[],["name"]),i=e.yieldRows||[],r=e.levelRows||[],o=e.minTypeRows||[],s=e.edibleRows||[],u=e.edibleMuRows||[],m=e.typeDistributionRows||[],p=e.levelDistributionRows||[],f=e.minTypeDistributionRows||[],g=e.yieldSummary||{},C=C8(T8(hi(a,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),Sn,{key:"wetland-type-unclassified",name:"未分类湿地"}),F=ar(i,e.muYieldRows||[],{showMuYieldExtra:!1}),z=hi(e.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:vn.length}),Y=C8(hi(r,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(_3=>t3(B2({},_3),{name:uh(_3.name)})),Sn,{key:"wetland-level-unclassified",name:"未分级湿地"}),i2=T8(C8(VN(o),Sn,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),v2=ar(s,u,{showMuYieldExtra:!1}),y2=hi(u,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:v0(u==null?void 0:u[0],["unit"])||"斤",max:vn.length}),A2=Q4(u8(m,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),Sn),S2=Q4(u8(m,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:_3=>{var J3;return`${((J3=_3.source)==null?void 0:J3.length)||0}类`}}),Sn),Q2=Q4(u8(p,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),Sn),X2=u8(p,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:_3=>uh(v0(_3,["level","name"])).startsWith("1级")}),c3=Q4(u8(f,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:_3=>{var J3;return`${((J3=_3.source)==null?void 0:J3.filter(R3=>Cp(R3,["acreage","areaWanMu","value"])>0).length)||0}型`}}),Sn),p3=iR(g,v2,F),l3=C9(n,"wetland"),b3=Y.find(_3=>/^1级/.test(_3.name))||Y[0],N3=Ap({yieldSummary:p3,townAreaRows:A2,typeRows:C,levelRows:Y,yieldRows:F,minTypeRows:i2,muYieldRows:z,edibleYieldRows:v2,edibleMuRows:y2,typeTownRows:S2,levelTownRows:X2.length?X2:Q2,minTownRows:c3});return B2({core:l3,top:[l3[0],l3[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:b3==null?void 0:b3.value,unit:(b3==null?void 0:b3.unit)||"万亩"}].filter(Boolean)},N3)}function gR(t={}){const e=Object.values(t.layerPanels||{}).flatMap(n=>[...(n==null?void 0:n.leftPanels)||[],...(n==null?void 0:n.rightPanels)||[]]);return[...t.leftPanels||[],...t.rightPanels||[],...e]}function yR(t,e=[]){const n=new Set(e);return gR(t).find(a=>n.has(a==null?void 0:a.key))||null}function n8(t,e,n,a,i,r={}){const o=yR(t,e);return B2(t3(B2({},o||{}),{key:n,title:a,type:i||(o==null?void 0:o.type)||"rank",rows:(o==null?void 0:o.rows)||[],span:1}),r)}function D4(t,e=[]){return[...(t==null?void 0:t.top)||[],...(t==null?void 0:t.core)||[]].find(a=>e.some(i=>(a==null?void 0:a.key)===i||String((a==null?void 0:a.name)||"").includes(i)))||null}function vR(t,e,n){var Y,i2,v2,y2,A2;const a=D4(t,["grassland-area","grassland-total-area","草地面积"]),i=D4(e,["wetland-area","湿地面积"]),r=D4(n,["woodland-area","林地总面积"]),[o,s]=uu(Y5,637.13,119.31),u=D4(t,["basic-grassland","basic-grassland-area","基本草原"]),m=D4(t,["general-grassland","general-grassland-area","一般草原"]),p=Un([{key:"overview-basic-grassland",name:"基本草原",value:x0((Y=u==null?void 0:u.value)!=null?Y:o),unit:(u==null?void 0:u.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:x0((i2=m==null?void 0:m.value)!=null?i2:s),unit:(m==null?void 0:m.unit)||"万亩",color:"#FFE06B"}]),f=Un([{key:"overview-grassland-area",name:"草地资源",value:x0((v2=a==null?void 0:a.value)!=null?v2:Y5),unit:(a==null?void 0:a.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:x0((y2=i==null?void 0:i.value)!=null?y2:Sn),unit:(i==null?void 0:i.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:x0((A2=r==null?void 0:r.value)!=null?A2:DN),unit:(r==null?void 0:r.unit)||"万亩",color:"#2BD17E"}]),g=[n8(t,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),n8(e,["wetland-town-area"],"overview-wetland-distribution","湿地分布","column",{variant:"water"}),n8(n,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"plain",lineOverlay:!0}),n8(t,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],C=[ee("overview-basic-general","基本/一般草原",p,"donut",{span:1,variant:"ring"}),n8(n,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),n8(e,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),ee("overview-resource-area","林草湿面积构成",f,"structure",{span:1})],z=[{key:"overview-resource-area-total",name:"林草湿面积",value:x0(b6(f)),unit:"万亩"},t3(B2({},f[0]),{name:"草地面积"}),t3(B2({},f[1]),{name:"湿地面积"}),t3(B2({},f[2]),{name:"林地面积"})];return{status:[t,e,n].some(S2=>(S2==null?void 0:S2.status)==="error")?"fallback":"success",core:z,top:z,leftPanels:g,rightPanels:C,left:g[0],right:C[0]}}function _8(t,e){return L3(this,null,function*(){var n;try{if(t==="overview"){const[a,i,r]=yield Promise.all([_8("grassland",""),_8("wetland",""),_8("woodland","")]);return vR(a,i,r)}if(t==="woodland"){const[a,i,r,o,s]=yield Promise.all([F5("/woodland/distribution").then(D0),De(()=>L3(this,null,function*(){return D0(yield F5("/woodland/types"))}),{}),De(()=>L3(this,null,function*(){return D0(yield F5("/woodland/protection"))}),{}),De(()=>L3(this,null,function*(){return D0(yield F5("/woodland/quality"))}),{}),De(()=>L3(this,null,function*(){return D0(yield F5("/woodland/ownership"))}),{})]),u=C9(YN(a),t),m=v0((a==null?void 0:a.core)||(a==null?void 0:a.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),p=v0((r==null?void 0:r.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),f=[u[0],{key:"woodland-public-area",name:"公益林面积",value:x0(p),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:x0((n=v0((r==null?void 0:r.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?n:e6(p,m)),unit:"%"}].filter(Boolean),g=Ue((a==null?void 0:a.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:_3=>fi(_3,m)}),C=T8(Ue((i==null?void 0:i.typeStats)||(a==null?void 0:a.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:I6}),{limit:4,minPercent:1,otherName:"其他林地"}),F=Ue((a==null?void 0:a.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:_3=>fi(_3,m)}),z=Ue((r==null?void 0:r.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:I6}),Y=Ue((o==null?void 0:o.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:I6}),i2=Ue((s==null?void 0:s.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:_3=>fi(_3,m)}),v2=Ue((s==null?void 0:s.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:I6}),y2=Ue((r==null?void 0:r.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:I6}),A2=Ue((r==null?void 0:r.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:I6}),S2=Ue((r==null?void 0:r.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:_3=>fi(_3,p)}),Q2=Ue((o==null?void 0:o.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:I6}),X2=Ue((o==null?void 0:o.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:I6}),c3=Ue((o==null?void 0:o.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:_3=>{const J3=x0(v0(_3,["avgCanopy","avg_canopy"]));return J3!==void 0?`均值 ${J3}`:I6(_3)}}),p3=Ue((o==null?void 0:o.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:I6}),l3=Ml((i==null?void 0:i.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),b3=_p({townRows:g,typeRows:C,scaleRows:F,protectionRows:z,ownershipRows:v2,qualityRows:Y,originRows:Q2,ageRows:X2,canopyRows:c3,forestTypeRows:y2,manageLevelRows:A2,regionRows:S2,ownerRows:i2,typeTownRows:l3,qualityLevelRows:p3}),N3=B2({status:"success",core:u,top:f},b3);return A8(N3,t,e)}if(t==="grassland"){const[a,i,r,o,s,u,m,p,f]=yield Promise.all([we("/basic_grassland/overview").then(D0),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_yield/yieldProportion"))}),{}),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_yield/distribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_yield/muYieldDistribution"))})),De(()=>L3(this,null,function*(){return uR()}),cu()),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_grass_type/areaProportion"))})),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_grassland_level/areaProportion"))})),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_health/proportion"))})),De(()=>L3(this,null,function*(){return D0(yield we("/grassland_yield/edibleXcDistribution"))}))]),g=s.levelRows||[],C=C9($N(a),t),F=ar(r||[],o||[],{showMuYieldExtra:!1}),z=cR(i,F),Y=Ue(o||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:v0(o==null?void 0:o[0],["unit"])||"斤"}),i2=Ue((a==null?void 0:a.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),v2=ks(Pp(u||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:bp}),y2=ks(m||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:hR}),A2=ks(p||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:mR}),S2=ar(f||[],[],{showMuYieldExtra:!1}),Q2=kp({core:C,townRows:i2,grassTypeRows:v2,grassLevelRows:y2,healthRows:A2,productivityRows:Y,edibleYieldRows:S2,forageRows:Mp(z,F),degradationRows:g}),X2=t3(B2({status:"success"},Q2),{top:xp(C,z,F)});return A8(X2,t,e)}if(t==="wetland"){const[a,i,r,o,s,u,m,p,f,g,C,F]=yield Promise.all([WN([()=>L3(this,null,function*(){return D0(yield we("/index/dataItem",{group:"wetland"}))}),()=>L3(this,null,function*(){return D0(yield we("/index/dataItem",{group:"wetland_grassland_level"}))})]),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grass_type_copy/areaProportion"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_yield/distribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_yield/muYieldDistribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grassland_level/areaProportion"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grass_type_copy/minTypeAreaProportion"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_yield/edibleXcDistribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_yield/edibleXcMuDistribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grass_type_copy/distribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grassland_level/distribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_grass_type_copy/minTypeAreaDistribution"))})),De(()=>L3(this,null,function*(){return D0(yield we("/wetland_yield/yieldProportion"))}),{})]),z=pR(a,{typeRows:i,yieldRows:r,muYieldRows:o,levelRows:s,minTypeRows:u,edibleRows:m,edibleMuRows:p,typeDistributionRows:f,levelDistributionRows:g,minTypeDistributionRows:C,yieldSummary:F}),Y=t3(B2({status:"success"},z),{left:z.leftPanels[0],right:z.rightPanels[0]});return A8(Y,t,e)}return ch(t,e)}catch(a){return t3(B2({},ch(t,e)),{status:"error",error:a})}})}function SR(t,e,n=null){return L3(this,null,function*(){try{const a=yield tR(t,e,n);return a||(t==="woodland"?e==="woodland-protection"?yield mi({topicKey:t,layerKey:e,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>L3(this,null,function*(){const i=D0(yield F5("/woodland/protection")),r=Ml((i==null?void 0:i.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return j6({topicKey:t,layerKey:e,title:"公益林面积排行",unit:"万亩",rows:r,note:"按公益林村级榜单汇总到乡镇"})})):e==="woodland-type"?yield mi({topicKey:t,layerKey:e,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>L3(this,null,function*(){const i=D0(yield F5("/woodland/types")),r=Ml((i==null?void 0:i.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return j6({topicKey:t,layerKey:e,title:"林地类型面积排行",unit:"万亩",rows:r,note:"按林地类型组成汇总到乡镇"})})):e==="woodland-quality"?yield mi({topicKey:t,layerKey:e,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):e==="woodland-ownership"?yield mi({topicKey:t,layerKey:e,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield HN(t,e,"林地面积排行"):t==="grassland"?e==="basic-grassland"?yield oh(t,e,"basicAreaWanMu","基本草原面积排行"):e==="grassland-level"?yield pi(t,e,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield oh(t,e,"totalAreaWanMu","草地面积排行"):t==="wetland"?e==="wetland-level"?yield pi(t,e,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):e==="wetland-type"?yield pi(t,e,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield pi(t,e,"/wetland_yield/distribution","湿地生产力排行","万吨"):j6({topicKey:t,layerKey:e,title:"乡镇统计排行",rows:[]}))}catch(a){return{status:"error",topicKey:t,layerKey:e,title:"乡镇统计排行",unit:"",rows:[],error:a}}})}const Ep="/jsyApi";function Np(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function Rp(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return D0(t)}function p5(t,e,n={}){return zn(Np(Ep,t),{params:e,timeout:n.timeout||12e3}).then(Rp)}function Rr(t,e,n={}){return zn(Np(Ep,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(Rp)}function wR(){return Rr("/api/dataItem?group=pastures").then(h5)}function bR(){return Rr("/api/muhu/distribution").then(h5)}function TR(){return Rr("/api/muhu/age").then(h5)}function CR(){return Rr("/api/muhu/upline_rate").then(h5)}function h5(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?h5(t.data):t!=null&&t.result?h5(t.result):[]}function AR(t="",e=1,n=80){return p5("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(h5)}function _R(t){return t==null||t===""?Promise.resolve([]):p5("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(h5)}function xR(t){return t?p5("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function Lp(t,e=[]){const n=[...e.map(a=>t==null?void 0:t[a]),...e.map(a=>{var i;return(i=t==null?void 0:t.data)==null?void 0:i[a]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const a of n)if(Array.isArray(a)){const i=a.find(r=>r&&typeof r=="object");if(i)return i}else if(a&&typeof a=="object")return a;return null}function Ip(t={}){return p5("/api/grasslandDetails",t,{timeout:2e4}).then(e=>Lp(e,["grassland"]))}function Fp(t={}){return p5("/api/wetlandDetails",t,{timeout:2e4}).then(e=>Lp(e,["wetland"]))}function MR(t){return t?p5("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function PR(t){return p5("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function kR(t){return p5("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function ER(){return p5("/api/pasturesList").then(h5)}function NR(){return L3(this,null,function*(){const[t,e,n,a,i,r]=yield Promise.allSettled([wR(),bR(),TR(),CR(),ER(),AR("",1,20)]),o=i.status==="fulfilled"?i.value:[],s=r.status==="fulfilled"?r.value:[],u=hh(s)?s:hh(o)?o:s.length?s:o,m=RR(u,o,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:a.status==="fulfilled"?a.value:[],list:m}})}function RR(t=[],...e){const n=new Map;return e.flat().forEach(a=>{fh(a).forEach(i=>{const r=n.get(i)||{};n.set(i,dh(r,a))})}),(Array.isArray(t)?t:[]).map(a=>{const i=fh(a).map(r=>n.get(r)).find(Boolean);return i?dh(a,i):a})}function dh(t={},e={}){const n=B2({},t);return Object.entries(e||{}).forEach(([a,i])=>{(n[a]===void 0||n[a]===null||n[a]==="")&&(n[a]=i)}),n}function fh(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function hh(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var i,r,o,s,u,m;const n=(u=(s=(o=(r=(i=e==null?void 0:e.grasslandArea)!=null?i:e==null?void 0:e.grassland_area)!=null?r:e==null?void 0:e.acreage)!=null?o:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?u:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const a=Number((m=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:m[0]);return Number.isFinite(a)&&a>0})}const du="/jsyApi",H5="/openApi",LR=new Date().getFullYear();function IR(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function FR(t){if((t==null?void 0:t.success)===!1&&(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code))throw new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");return D0(t)}function A6(t,e,n,a={}){return zn(IR(t,e),{params:n,timeout:a.timeout||18e3}).then(FR)}function BR(){return A6(du,"/api/yak/distribution").then(t=>Ca(t))}function DR(){return A6(du,"/api/yak/structure").then(t=>Ca(t))}function GR(){return A6(du,"/api/yak/forecast").then(t=>Ca(t))}function or(t=LR){return A6(H5,"/yak/trade/overview",typeof t=="object"?t:{year:t}).then(n=>n||{})}function UR(){return A6(H5,"/yak/trade/options").then(t=>t||{})}function mh(t={}){return A6(H5,"/yak/trade/records",t).then(e=>e||{})}function OR(t={}){return A6(H5,"/yak/epidemic/analysis",t).then(e=>e||{})}function Es(t={}){return A6(H5,"/yak/epidemic/records",t).then(e=>e||{})}function jR(t={}){return A6(H5,"/yak/epidemic/stats",t).then(e=>e||{})}function zR(t={}){return A6(H5,"/yak/epidemic/village-stats",t).then(e=>e||{})}function YR(t){return A6(H5,"/yak/epidemic/detail",{earTag:t}).then(e=>e||null)}function Bp(){return L3(this,null,function*(){return(yield BR()).map((e,n)=>({key:xn(e,["areaCode","area_code","code","id"],`yak-town-${n}`),name:xn(e,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:Ba(xn(e,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(e=>e.name&&Number.isFinite(e.value)).sort((e,n)=>n.value-e.value)})}function Dp(){return L3(this,null,function*(){const e=(yield DR()).map((n,a)=>{const i=xn(n,["sex","gender"],""),r=VR(i),o=xn(n,["ageRange","age_range","age","name","type"],""),s=[r,o].filter(Boolean).join(" ")||`结构${a+1}`;return{key:xn(n,["id","key"],`${s}-${a}`),name:s,value:Ba(xn(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return WR(e)})}function Gp(){return L3(this,null,function*(){return(yield GR()).map((e,n)=>{const a=xn(e,["month","date","name","time"],`预测${n+1}`);return{key:`${a}-${n}`,name:HR(a),value:Ba(xn(e,["number","count","yakCount","value"])),unit:"头",extra:Up("增速",xn(e,["speed","growth","growthRate","rate"]))}}).filter(e=>e.name&&Number.isFinite(e.value))})}function $R(){return L3(this,null,function*(){const t=yield or(),e=Ca(t.usageCounts||t.usage_counts);return(e.length?e:Ca(t.startTownCounts||t.start_town_counts)).map((a,i)=>({key:xn(a,["name","label"],`trade-${i}`),name:xn(a,["name","label"],`类型${i+1}`),value:Ba(xn(a,["headCount","head_count","amount","value","count"])),unit:"头",extra:Up("记录",xn(a,["recordCount","record_count"]))})).filter(a=>a.name&&Number.isFinite(a.value)).sort((a,i)=>i.value-a.value)})}function Ca(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.records)?t.records:Array.isArray(t==null?void 0:t.data)?t.data:[]}function WR(t=[]){const e=new Map;return t.forEach(n=>{const a=e.get(n.name)||t3(B2({},n),{value:0});a.value+=n.value,e.set(n.name,a)}),[...e.values()].sort((n,a)=>a.value-n.value)}function xn(t,e,n=""){for(const a of e){const i=t==null?void 0:t[a];if(i!=null&&i!=="")return i}return n}function VR(t){return["boy","male","公","公牛"].includes(t)?"公牛":["girl","female","母","母牛"].includes(t)?"母牛":t||""}function HR(t){const e=String(t||""),n=e.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:e}function Up(t,e){const n=Ba(e);return Number.isFinite(n)?`${t}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function Ba(t){if(t==null||t==="")return NaN;const e=Number(String(t).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(e)?e:NaN}const Y8=458230,fu=450817,KR=Y8-fu;function Op(t,e,n="count"){const a=t.reduce((o,s)=>o+(Number(s[n])||0),0);if(!a||!e)return t.map(o=>t3(B2({},o),{[n]:0}));const i=t.map(o=>t3(B2({},o),{[n]:Math.round((Number(o[n])||0)/a*e)})),r=e-i.reduce((o,s)=>o+(Number(s[n])||0),0);return r&&i[0]&&(i[0][n]+=r),i}const k9={herdsmanCount:129,grasslandArea:7563700,wetArea:2918200,yakCount:Y8,projectCount:17,baseCount:12},qR=[{zoneName:"色地镇",grasslandArea:1463044,yakCount:11704},{zoneName:"麦洼乡",grasslandArea:660352,yakCount:5283},{zoneName:"阿木乡",grasslandArea:1115947,yakCount:8928},{zoneName:"瓦切镇",grasslandArea:1111492,yakCount:8892},{zoneName:"查尔玛乡",grasslandArea:858500,yakCount:6868},{zoneName:"江茸乡",grasslandArea:644761,yakCount:5158},{zoneName:"龙日镇",grasslandArea:874234,yakCount:6994},{zoneName:"安曲镇",grasslandArea:1165634,yakCount:9325},{zoneName:"刷经寺镇",grasslandArea:62465,yakCount:500},{zoneName:"邛溪镇",grasslandArea:1166721,yakCount:9334}],JR=[{zoneName:"色地镇",grasslandArea:350788,wetArea:166983},{zoneName:"麦洼乡",grasslandArea:162198,wetArea:71501},{zoneName:"阿木乡",grasslandArea:305522,wetArea:89411},{zoneName:"瓦切镇",grasslandArea:264640,wetArea:128717},{zoneName:"查尔玛乡",grasslandArea:286159,wetArea:17664},{zoneName:"江茸乡",grasslandArea:175840,wetArea:52341},{zoneName:"龙日镇",grasslandArea:222346,wetArea:87046},{zoneName:"安曲镇",grasslandArea:304970,wetArea:107548},{zoneName:"刷经寺镇",grasslandArea:22107,wetArea:7002},{zoneName:"邛溪镇",grasslandArea:318316,wetArea:94587}],QR=[{month:"1月",count:458230,speed:0},{month:"2月",count:458860,speed:630},{month:"3月",count:459520,speed:660},{month:"4月",count:460180,speed:660},{month:"5月",count:461260,speed:1080},{month:"6月",count:462050,speed:790},{month:"7月",count:462850,speed:800},{month:"8月",count:463160,speed:310},{month:"9月",count:463520,speed:360},{month:"10月",count:463940,speed:420},{month:"11月",count:464350,speed:410},{month:"12月",count:464760,speed:410}],jp=[{name:"色地镇",count:131983,devices:25},{name:"瓦切镇",count:126611,devices:24},{name:"安曲镇",count:99331,devices:20},{name:"邛溪镇",count:81727,devices:18},{name:"麦洼乡",count:78489,devices:16},{name:"龙日镇",count:66846,devices:15},{name:"阿木乡",count:64176,devices:14},{name:"查尔玛乡",count:47958,devices:11},{name:"江茸乡",count:34576,devices:9},{name:"刷经寺镇",count:30407,devices:8}],S6=Op(jp,fu),ZR=new Map(Op(jp,Y8).map(t=>[t.name,t.count])),Da=qR.map(t=>t3(B2({},t),{yakCount:ZR.get(t.zoneName)||t.yakCount}));S6.reduce((t,e)=>t+e.count,0);const hu=Y8;k9.yakCount=hu;function XR(t,e){const n=t.map((i,r)=>{const o=e*i.ratio/100;return t3(B2({},i),{index:r,exact:o,count:Math.floor(o),remainder:o-Math.floor(o)})});let a=e-n.reduce((i,r)=>i+r.count,0);return n.slice().sort((i,r)=>r.remainder-i.remainder||i.index-r.index).forEach(i=>{a<=0||(i.count+=1,a-=1)}),n.map(u=>{var m=u,{index:i,exact:r,remainder:o}=m,s=Q9(m,["index","exact","remainder"]);return t3(B2({},s),{count:Math.round(s.count)})})}XR([{key:"fertileCow",name:"适龄能繁母牛",ratio:44.8},{key:"meatBull",name:"麦洼公牦牛",ratio:15.2},{key:"breedingBull",name:"种公牛",ratio:3.1},{key:"femaleCalf",name:"母犊牛",ratio:14.9},{key:"maleCalf",name:"公犊牛",ratio:15.1},{key:"overageCow",name:"过龄能繁母牛",ratio:6.9}],hu);const mu=[{label:"屠宰出栏",value:1706,yoy:6},{label:"活畜交易",value:1043,yoy:-3},{label:"外运销售",value:624,yoy:12},{label:"其他出栏",value:299,yoy:-9}],zp=[{name:"饲草储备库",value:7,capacity:10500,unit:"座"},{name:"加工企业",value:7,capacity:13e3,unit:"家"},{name:"工程数量",value:k9.projectCount,capacity:17,unit:"个"},{name:"基地数量",value:k9.baseCount,capacity:12,unit:"个"}],eL=fu,tL=KR,nL=0,Mt=Y8;function Yp(t=[],e=Y8){const n=t.map(o=>{var s,u,m;return t3(B2({},o),{name:o.name||o.label||o.town||"",count:Number((m=(u=(s=o.count)!=null?s:o.value)!=null?u:o.total)!=null?m:0)})}).filter(o=>o.name&&Number.isFinite(o.count)&&o.count>=0),a=n.reduce((o,s)=>o+s.count,0);if(!a||!e)return n.map(o=>t3(B2({},o),{count:0}));const i=n.map(o=>t3(B2({},o),{count:Math.round(o.count/a*e)})),r=e-i.reduce((o,s)=>o+s.count,0);return r&&i[0]&&(i[0].count+=r),i}const Pl=Yp(S6,Mt).sort((t,e)=>e.count-t.count),aL=[{key:"fertileCow",name:"适龄能繁母牛",ratio:45,source:"畜群结构比例表"},{key:"meatBull",name:"麦洼公牦牛",ratio:15,source:"畜群结构比例表"},{key:"breedingBull",name:"种公牛",ratio:3,source:"畜群结构比例表"},{key:"femaleCalf",name:"母犊牛",ratio:15,source:"畜群结构比例表"},{key:"maleCalf",name:"公犊牛",ratio:15,source:"畜群结构比例表"},{key:"overageCow",name:"过龄能繁母牛",ratio:7,source:"畜群结构比例表"}],iL=[{key:"fertileCow",name:"适龄能繁母牛",ratio:44.8,source:"畜群结构比例表"},{key:"meatBull",name:"麦洼公牦牛",ratio:15.2,source:"畜群结构比例表"},{key:"breedingBull",name:"种公牛",ratio:3.1,source:"畜群结构比例表"},{key:"femaleCalf",name:"母犊牛",ratio:14.9,source:"畜群结构比例表"},{key:"maleCalf",name:"公犊牛",ratio:15.1,source:"畜群结构比例表"},{key:"overageCow",name:"过龄能繁母牛",ratio:6.9,source:"畜群结构比例表"}],B5=qp(iL,Mt),ph=mu.map((t,e)=>t3(B2({},t),{color:["#48cfff","#30dcff","#8bf7ff","#48cfff"][e%4]})),Ns=[{age:"≤1岁",cow:38586,bull:40861},{age:"1-2岁",cow:27124,bull:27549},{age:"2-4岁",cow:93355,bull:49265},{age:"4-8岁",cow:106679,bull:32655},{age:"8岁以上",cow:28671,bull:13485}],gn=[{key:"2026",label:"2026年底",shortLabel:"2026",months:7,stock:462850,births:24680,outflow:19020,correction:-1040,structure:{fertileCow:45.1,meatBull:15,breedingBull:3,femaleCalf:15.2,maleCalf:14.9,overageCow:6.8}},{key:"2027",label:"2027年底",shortLabel:"2027",months:19,stock:468920,births:67420,outflow:55180,correction:-1550,structure:{fertileCow:45.5,meatBull:14.8,breedingBull:3.1,femaleCalf:15.1,maleCalf:14.8,overageCow:6.7}},{key:"2028",label:"2028年底",shortLabel:"2028",months:31,stock:475360,births:109680,outflow:90140,correction:-2410,structure:{fertileCow:45.9,meatBull:14.5,breedingBull:3.1,femaleCalf:15.3,maleCalf:14.7,overageCow:6.5}}],gh=[{name:"新生牛犊",value:86},{name:"出栏周转",value:62},{name:"死亡淘汰",value:48},{name:"母牛基础",value:91},{name:"幼畜存活",value:73}],$p=2026,Wp=6;function Vp(t){return gn.find(e=>e.key===t)||gn[1]}function rL(t){const e=(t==null?void 0:t.structure)||{};return qp(aL.map(n=>{var a;return t3(B2({},n),{ratio:(a=e[n.key])!=null?a:n.ratio,source:"预测模型"})}),t.stock)}function oL(t){const e=t.stock/Mt,n=Pl.map((i,r)=>t3(B2({},i),{forecast:Math.round(i.count*e+(r%3-1)*t.months*18)})),a=t.stock-n.reduce((i,r)=>i+r.forecast,0);if(a){const i=n.reduce((r,o)=>o.count>r.count?o:r,n[0]);i.forecast+=a}return n.map(i=>t3(B2({},i),{change:i.forecast-i.count})).sort((i,r)=>r.forecast-i.forecast)}function Hp(t){const e=pu(t),n=Array.from({length:e},(o,s)=>sL(s)),a=n.map((o,s)=>{const u=Rs(s,e),m=Math.sin(s/2.6)*Math.sin(Math.PI*u)*Math.min(360,t.months*18);return Math.round(Mt+(t.stock-Mt)*u+m)}),i=n.map((o,s)=>Math.round(t.births*Rs(s,e))),r=n.map((o,s)=>Math.round(t.outflow*Rs(s,e)));return{labels:n,stock:a,births:i,outflow:r}}function pu(t={}){return Math.max(1,Math.round(Number(t.months||1)))}function Rs(t,e){return e<=1?1:Math.min(1,Math.max(0,t/(e-1)))}function sL(t=0){const e=new Date(Date.UTC($p,Wp-1+t,1));return`${String(e.getUTCFullYear()).slice(-2)}-${String(e.getUTCMonth()+1).padStart(2,"0")}`}function Kp(t=0){const e=new Date(Date.UTC($p,Wp-1,1+t));return[String(e.getUTCFullYear()).slice(-2),String(e.getUTCMonth()+1).padStart(2,"0"),String(e.getUTCDate()).padStart(2,"0")].join("-")}function qp(t,e){const n=t.map((i,r)=>{const o=e*i.ratio/100;return t3(B2({},i),{index:r,exact:o,count:Math.floor(o),remainder:o-Math.floor(o)})});let a=e-n.reduce((i,r)=>i+r.count,0);return n.slice().sort((i,r)=>r.remainder-i.remainder||i.index-r.index).forEach(i=>{a<=0||(i.count+=1,a-=1)}),n.map(u=>{var m=u,{index:i,exact:r,remainder:o}=m,s=Q9(m,["index","exact","remainder"]);return t3(B2({},s),{count:Math.round(s.count)})})}function lL(t){const e=new Map;return t.forEach(n=>{const a=n.name,i=e.get(a)||{name:a,count:0};i.count+=Number(n.count||0),e.set(a,i)}),[...e.values()].sort((n,a)=>a.count-n.count)}const Lr={grasslandCapacityPerMu:.06229833103624831,muPerYak:16.051794379822947,yakToSheepUnit:1},uL={key:"county-513233",type:"county",name:"红原县",areaCode:"513233"},G4=[{key:"healthy",label:"合理",shortLabel:"合理",range:"< 0%",description:"承载力覆盖实际载畜量,当前放牧压力处于合理区间。",actions:["保持当前载畜水平与轮牧节奏","定期复测草地生产力和载畜量","关注极端天气对牧草生长的影响"]},{key:"watch",label:"基本实现草畜平衡",shortLabel:"基本平衡",range:"0% - 5%",description:"实际载畜量与草地承载力基本匹配,草畜平衡总体实现。",actions:["保持当前载畜规模基本稳定","持续核查草地生产力和牲畜存栏","结合季节变化做好补饲和轮牧安排"]},{key:"light",label:"轻度超载",shortLabel:"关注",range:"5% - 10%",description:"已出现轻度超载迹象,建议提前介入调控。",actions:["适度压减超载畜群规模","延长冬春舍饲补饲周期","增加人工草场补饲供应"]},{key:"warning",label:"中度超载",shortLabel:"预警",range:"10% - 20%",description:"超载较明显,草地退化风险上升,应启动主动调控。",actions:["压减载畜量至理论承载力以内","推行划区轮牧与阶段性休牧","扩大优质人工饲草供给"]},{key:"danger",label:"严重超载",shortLabel:"高压",range:"> 20%",description:"超载压力较高,建议纳入重点管控和生态修复范围。",actions:["强制压减载畜量并实施禁牧休牧","对退化草地实施生态修复","建立重点区域长效监测与考核机制"]}],a5={areaRange:["areaRange","area_range","arearange","acreage","grasslandArea","grasslandarea","area"],yakNumber:["yakNumber","yak_number","yaknumber","number","yakCount","yakcount","livestockCount","livestockcount"],bearingCapacity:["bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","theorycapacity"],livestockCapacity:["livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","carryingcapacity","actualCapacity","actualcapacity"],overloadRate:["overloadRate","overload_rate","overloadrate","rate"],level:["level","conclusion"],advice:["advice","balanceAdvice","balance_advice","balanceadvice","balanceAdivce","balance_adivce","balanceadivce"],year:["year"],areaName:["areaName","area_name","areaname","name"]},L5=(t,e=2)=>{const n=n5(10,e);return Math.round((Number(t)||0)*n)/n},h6="加强人工饲草饲料基地建设;购买饲草饲料,增加饲草饲料供应量;实行舍饲圈养,减轻草原放牧压力;加快牲畜出栏,优化畜群结构。";function Je(t,e=null){if(t==null||t==="")return e;const n=typeof t=="string"?t.replace(/,/g,"").replace(/%/g,"").trim():t,a=Number(n);return Number.isFinite(a)?a:e}function qn(t={},e=[],n=void 0){for(const a of e){const i=t==null?void 0:t[a];if(i!=null&&i!=="")return i}return n}function Di(t,e={}){var a;const n=Je(t);return n===null?"--":n.toLocaleString("zh-CN",{maximumFractionDigits:(a=e.maximumFractionDigits)!=null?a:Number.isInteger(n)?0:2})}function gi(t){const e=Je(t);return e===null?"--":`${Di(e)}%`}function Ga(t){const e=Je(t);return e===null||e<0?G4[0]:e<=5?G4[1]:e<=10?G4[2]:e<=20?G4[3]:G4[4]}function yh(t){return Math.round(Number(t)||0)}function vh(t){return Math.round((Number(t)||0)*Lr.grasslandCapacityPerMu)}const Ir=t3(B2({},uL),{areaRange:756851506e-2,yakNumber:458230,bearingCapacity:454864,livestockCapacity:458230,overloadRate:.74,level:"基本实现草畜平衡",advice:h6,year:"2026"}),Ua=[{key:"town-邛溪镇",type:"town",name:"邛溪镇",areaCode:"513233100",areaRange:930604.2,yakNumber:49140,bearingCapacity:47723,livestockCapacity:49140,overloadRate:2.97,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-刷经寺镇",type:"town",name:"刷经寺镇",areaCode:"513233101",areaRange:743557.5,yakNumber:18283,bearingCapacity:18002,livestockCapacity:18283,overloadRate:1.56,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-安曲镇",type:"town",name:"安曲镇",areaCode:"513233103",areaRange:900696.75,yakNumber:59725,bearingCapacity:58479,livestockCapacity:59725,overloadRate:2.13,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-龙日镇",type:"town",name:"龙日镇",areaCode:"513233105",areaRange:628303.8,yakNumber:40192,bearingCapacity:39462,livestockCapacity:40192,overloadRate:1.85,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-江茸乡",type:"town",name:"江茸乡",areaCode:"513233202",areaRange:496888.95,yakNumber:20789,bearingCapacity:20563,livestockCapacity:20789,overloadRate:1.1,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-查尔玛乡",type:"town",name:"查尔玛乡",areaCode:"513233203",areaRange:808628.4,yakNumber:28836,bearingCapacity:28312,livestockCapacity:28836,overloadRate:1.85,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-瓦切镇",type:"town",name:"瓦切镇",areaCode:"513233204",areaRange:747837.6,yakNumber:76127,bearingCapacity:74598,livestockCapacity:76127,overloadRate:2.05,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-阿木乡",type:"town",name:"阿木乡",areaCode:"513233205",areaRange:863346,yakNumber:38587,bearingCapacity:37554,livestockCapacity:38587,overloadRate:2.75,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-麦洼乡",type:"town",name:"麦洼乡",areaCode:"513233207",areaRange:458338.35,yakNumber:47193,bearingCapacity:46643,livestockCapacity:47193,overloadRate:1.18,level:"基本实现草畜平衡",advice:h6,year:"2026"},{key:"town-色地镇",type:"town",name:"色地镇",areaCode:"513233208",areaRange:991265.25,yakNumber:79358,bearingCapacity:77695,livestockCapacity:79358,overloadRate:2.14,level:"基本实现草畜平衡",advice:h6,year:"2026"}],Jp=[Ir,...Ua];function cL(t={},e={}){var c3,p3,l3,b3,N3,_3,J3,R3,Z3,M1;const n=t&&typeof t=="object"&&Object.keys(t).length>0,a=qn(t,a5.areaRange,e.areaRange),i=qn(t,a5.yakNumber,e.yakNumber),r=qn(t,a5.bearingCapacity,e.bearingCapacity),o=qn(t,a5.livestockCapacity,e.livestockCapacity),s=Je(qn(t,a5.overloadRate,e.overloadRate)),u=Je(e.yakNumber),m=dL(t,o,u),p=Je(a,(c3=e.areaRange)!=null?c3:0),f=m!==null&&i===(t==null?void 0:t.yak_number)?Je(qn(t,["number","yakCount","yak_count","livestockCount","livestock_count"]),u!=null?u:Math.round(m/Lr.yakToSheepUnit)):Je(i,(p3=e.yakNumber)!=null?p3:0),g=Je(e.bearingCapacity),C=Je(e.livestockCapacity),F=a!=null&&a!=="",z=i!=null&&i!=="",Y=(l3=Je(o))!=null?l3:m,i2=Je(r),v2=Ls(Y,s),y2=fL(i2,v2),A2=n?(_3=(N3=(b3=Y!=null?Y:Is(y2,s))!=null?b3:C)!=null?N3:Is(g,s))!=null?_3:z?yh(f):null:(J3=C!=null?C:Is(g,s))!=null?J3:z?yh(f):null,S2=n?(Z3=(R3=y2!=null?y2:Ls(A2,s))!=null?R3:g)!=null?Z3:F?vh(p):null:(M1=g!=null?g:Ls(A2,s))!=null?M1:F?vh(p):null,Q2=s!==null?L5(s,2):S2&&A2!==null?L5((A2-S2)/S2*100,1):null,X2=Ga(Q2);return t3(B2(B2({},e),t),{key:e.key||t.key||t.id||t.areaCode||e.name,type:e.type||t.type||"town",name:qn(t,a5.areaName,e.name||"核算对象"),areaCode:t.areaCode||t.area_code||t.areacode||e.areaCode,areaRange:p,yakNumber:f,bearingCapacity:S2,livestockCapacity:A2,overloadRate:Q2,level:Q2===null?qn(t,a5.level,X2.label):X2.label,advice:qn(t,a5.advice,e.advice||X2.actions.join(";")),year:qn(t,a5.year,e.year||"当前年度"),source:t.raw||t.source||e.source})}function dL(t={},e,n=null){if(!t||typeof t!="object"||e!=null&&e!=="")return null;const a=Object.prototype.hasOwnProperty.call(t,"yak_number"),i=["overload_rate","overloadRate","overloadrate","advice","balanceAdvice","balanceadvice","level","conclusion"].some(s=>t[s]!==void 0&&t[s]!==null&&t[s]!==""),r=Je(t.yak_number);if(!a||!i||r===null)return null;const o=Je(n);return o!==null&&o>0?r>o*1.5?r:null:r}function Ls(t,e){const n=Je(t),a=Je(e);return n===null||a===null||a<=-100?null:Math.round(n/(1+a/100))}function fL(t,e){return t===null?e:e===null?t:Math.abs(t-e)/Math.max(Math.abs(e),1)>.25?e:t}function Is(t,e){const n=Je(t),a=Je(e);return n===null||a===null||a<=-100?null:Math.round(n*(1+a/100))}function hL(t={}){const e=Je(t.bearingCapacity),n=Je(t.livestockCapacity),a=Je(t.areaRange,0),i=Je(t.yakNumber,0),r=Je(t.overloadRate,e&&n!==null?(n-e)/e*100:null),o=e!==null&&n!==null?n-e:null,s=e&&n!==null?L5(n/e*100,1):null,u=Ga(r),m=Math.round(i*Lr.yakToSheepUnit),p=m&&n!==null?L5(n/m,2):null,f=a&&e!==null?L5(e/a,4):null,g=Math.max(e||0,n||0,1);return{bearing:e,livestock:n,areaRange:a,yakNumber:i,yakSheepUnit:m,pressureFactor:p,bearingCoefficient:f,overloadRate:r===null?null:L5(r,2),delta:o,usageRate:s,risk:u,bearingPercent:e===null?4:Math.max(4,Math.min(100,L5(e/g*100,1))),livestockPercent:n===null?4:Math.max(4,Math.min(100,L5(n/g*100,1)))}}function mL(t={},e=Ga(t.overloadRate)){const n=String(t.advice||"").trim(),a=n?n.split(/[。;;\n]/).map(u=>u.trim()).filter(Boolean):[],i=["提高放牧畜禽的密度","增加草地的利用率","密度不能过高"],r=["轻度超载","已出现超载","超载迹象","压减超载畜群规模"],o=["healthy","watch"].includes(e.key),s=a.filter(u=>i.some(m=>u.includes(m))||o&&r.some(m=>u.includes(m))?!1:o?!0:!i.some(m=>u.includes(m)));return[...e.actions||[],...s].filter((u,m,p)=>p.indexOf(u)===m).slice(0,4)}const Vt=(t,e=2)=>{const n=n5(10,e);return Math.round((Number(t)||0)*n)/n},Qp=(t,e)=>t.reduce((n,a)=>n+(Number(a[e])||0),0),Sh=t=>Vt((Number(t)||0)/1e4,2),Zp=Qp(mu,"value"),pL=Qp(Da,"yakCount"),Fr=hu,K5=Vt(k9.grasslandArea/1e4,2),$8=Vt(k9.wetArea/1e4,2),Oa=177.92,gL=Vt(K5+$8+Oa,2),Xp=Vt(Fr/Math.max(K5,1),1),wh=Vt($8/Math.max(gL,1)*100,1),bh=637.07,aa=108.84,eg=297.29,kl=159.33,tg=Vt(K5+$8,2),yL=Vt((eg+aa)*2e3/Math.max(tg,1),2),ng=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:tg,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:yL,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:Fr,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:Ir.overloadRate,unit:"%",decimals:2,icon:"rate"}],vL=[{key:"grassland",name:"草地面积",value:K5,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:$8,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:Oa,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:Xp,unit:"头/万亩",tone:"gold"}],ag=[{key:"grassland",name:"草地",value:K5,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:$8,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:Oa,unit:"万亩",color:"#8bf7ff"}],SL=[{key:"basic-grassland",name:"基本草原",value:bh,unit:"万亩",percent:Vt(bh/Math.max(K5,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:aa,unit:"万吨",percent:Vt(aa/Math.max(eg+aa,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:kl,unit:"万亩",percent:Vt(kl/Math.max(Oa,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:wh,unit:"%",percent:wh,note:"林草湿结构"}],ig=JR.map(t=>{const e=Da.find(i=>i.zoneName===t.zoneName)||{},n=Sh(t.grasslandArea),a=Sh(t.wetArea);return{key:t.zoneName,name:t.zoneName,grasslandArea:n,wetlandArea:a,yakCount:e.yakCount||0,resourceTotal:Vt(n+a,2),density:Vt((e.yakCount||0)/Math.max(n+a,1),1)}}).sort((t,e)=>e.yakCount-t.yakCount),rg=Da.map(t=>({key:t.zoneName,name:t.zoneName,value:t.yakCount,unit:"头",percent:Vt(t.yakCount/Math.max(pL,1)*100,1)})).sort((t,e)=>e.value-t.value),El=mu.map(t=>({key:t.label,name:t.label,value:t.value,unit:"头",yoy:t.yoy,percent:Vt(t.value/Math.max(Zp,1)*100,1)})),wL=Math.max(...zp.map(t=>Number(t.value)||0),1),bL=zp.map(t=>{const e=t.name.includes("储备")||t.name.includes("加工")?`${Number(t.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:t.name,name:t.name,value:t.value,unit:t.unit,capacity:t.capacity,capacityNote:e,percent:Vt((Number(t.value)||0)/wL*100,1)}});var xm,Mm;const TL=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:K5,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:aa,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:kl,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:Fr,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:Xp,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((xm=El[0])==null?void 0:xm.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((Mm=El[1])==null?void 0:Mm.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:k9.baseCount+k9.projectCount,unit:"个",trend:"在线"}],CL=[{key:"grassland",label:"草地",value:K5,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:$8,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:Zp,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:Fr,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:Oa,unit:"万亩",x:16,y:35,color:"#8bf7ff"}],sr=""+new URL("live-scene-1-786cdd0a-balabala-1783995319167.png",import.meta.url).href;const AL={class:"home-dashboard"},_L={class:"home-bottom-switcher"},xL=["title","aria-label","aria-pressed"],ML={class:"home-left"},PL={class:"home-side-stack is-left"},kL={class:"home-right"},EL={class:"home-side-stack is-right"},NL=["aria-label","onClick"],RL={key:0,class:"home-video-monitor"},LL=["disabled"],IL=["data-video-index","onClick","onKeydown"],FL={key:0,class:"home-video-loading"},BL={key:1,class:"home-video-error"},DL=["onClick"],GL={class:"home-video-point-name"},UL=["disabled"],OL={key:1,class:"home-forecast-trend-card"},jL={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},zL=["onClick"],YL={key:3,class:"home-balance-gauge-grid"},$L={class:"home-balance-gauge-head"},WL={class:"home-balance-gauge-ring"},VL={class:"home-balance-gauge-value"},HL={class:"home-balance-gauge-name"},KL={class:"home-balance-gauge-extra"},qL={class:"home-more-dialog home-video-dialog"},JL={class:"home-more-dialog-head"},QL={key:0,class:"home-video-modal-grid"},ZL=["data-video-index","onClick","onKeydown"],XL={key:0,class:"home-video-loading"},eI={key:1,class:"home-video-error"},tI=["onClick"],nI={class:"home-video-point-name"},aI={key:1,class:"home-more-empty"},iI={key:2,class:"home-more-pager"},rI=["disabled"],oI=["disabled"],sI={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},lI={class:"home-more-dialog home-balance-dialog"},uI={class:"home-more-dialog-head"},cI={class:"home-balance-modal-grid"},dI={class:"home-balance-modal-title"},fI={class:"home-balance-modal-value"},hI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",mI="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",pI=4,Th="#ffffff",U4="#ffffff",O4="rgba(246, 253, 255, 0.92)",a8="rgba(242, 253, 255, 0.9)",yi="rgba(218, 250, 255, 0.28)",gI=12e3,yI=9.35,j4=9,vI={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(t,{expose:e,emit:n}){const a={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},i=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(U=>U.toLowerCase())),r=t,o=n,s=a3(null),u=a3(null),m=a3(null),p=new Map,f=a3({}),g=new Map;let C=!1,F=!1,z=null,Y=null;const i2=new Map,v2=new Map,y2=new Set,A2=new Map;let S2=null,Q2="",X2=!1,c3=null,p3=0;const l3=new Map,b3=a3(0),N3=a3([]),_3=a3(0),J3=a3(0),R3=a3(!1),Z3=a3(1),M1=a3(!1),b1=a3(null),j1=a3(!1),a1=a3("month"),G1=a3(!1),s0=a3(!1),i0=a3(""),r0=`home-video-player-${Math.random().toString(36).slice(2)}`,q1=YC({}),h3=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],O3=Tn.sideCardWidth,V3=a3(typeof window=="undefined"?1080:window.innerHeight);Tn.sideCardGap;const i3=r2(()=>j8(V3.value)),U2=r2(()=>i3.value),D3=U2,F3=Vp("2028"),u1=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],A1=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92}],S3={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},E={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},C3=a3("grassland"),H3=a3(!0),_1=r2(()=>H3.value?"暂停自动轮动":"继续自动轮动"),s1=a3(null),B1=a3(!1),U1=a3(!1),R1=a3(null),N1=r2(()=>{var c1,z1,w0;const U=C3.value,t2=E[U];if(!t2)return null;const N2=E8.find(A0=>A0.key===t2.topicKey),Y2=o3(t2);if(!(Y2!=null&&Y2.layerName)&&!(Y2!=null&&Y2.dataPath))return null;const g3=S3[U],W3=t2.legendKey?(Y2.legends||[]).find(A0=>A0.key===t2.legendKey):null,l1=Array.isArray(t2.legendKeys)?t2.legendKeys.map(A0=>(Y2.legends||[]).find(K1=>K1.key===A0)).filter(Boolean):[];return t2.type==="vector"?t3(B2({},Y2),{activeLegend:W3||Y2.activeLegend,activeLegends:l1.length?l1:Y2.activeLegends,name:`${((c1=A1.find(A0=>A0.key===U))==null?void 0:c1.name)||Y2.name}图层`,opacity:(z1=t2.opacity)!=null?z1:Y2.opacity,homePresentationMaxOpacity:(w0=t2.opacity)!=null?w0:.96,showPointLabels:!1,hidePointFeatures:!1}):g3?t3(B2({},Y2),{name:`${(N2==null?void 0:N2.name)||Y2.name}分布`,styles:"",opacity:g3.opacity,homePresentationMaxOpacity:g3.maxOpacity,softMask:!1,homeGlowColor:g3.glowColor,homeGlowBlur:g3.glowBlur,homeGlowOpacity:g3.glowOpacity,sldBody:J2(Y2.layerName,g3)}):null}),G0=r2(()=>!!R1.value),T0=r2(()=>{if(U1.value||B1.value||!s1.value)return 186;const U=e3(s1.value);return Math.min(480,Math.max(300,86+Math.min(U,12)*34))}),S0=r2(()=>{if(!R1.value)return{};const U=460,t2=T0.value,N2=24,Y2=V2(R1.value),g3=104,W3=36,l1=Math.min(Math.max(Y2.x-U/2,N2),1920-U-N2),c1=Math.min(Math.max(Y2.y-t2-W3,g3),1080-t2-N2);return{left:`${l1}px`,top:`${c1}px`,right:"auto",bottom:"auto"}}),oe=r2(()=>X1(B5.length)),z0=r2(()=>X1(gn.length)),P0=r2(()=>i1(a1.value)),x2=r2(()=>G3(F3,P0.value.key)),j2=r2(()=>X1(x2.value.labels.length)),H2=r2(()=>Ua.filter(t2=>t2==null?void 0:t2.name).map((t2,N2)=>({key:`home-balance-${t2.areaCode||t2.key||t2.name}`,sourceIndex:N2,name:t2.name,value:t2.overloadRate,unit:"%",status:t2.level||"总体可控",extra:`载畜 ${Z(t2.livestockCapacity)}头`}))),w3=r2(()=>{const U=H2.value,t2=3,N2=U.length?Math.floor(b3.value/2)*t2%U.length:0;return Array.from({length:Math.min(t2,U.length)},(Y2,g3)=>U[(N2+g3)%U.length])}),d1=r2(()=>{const U=w3.value.length;return U?b3.value%U:0}),O1={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:sr,playUrl:"",hdPlayUrl:"",token:""},V1=r2(()=>{const U=N3.value.length;return U?M1.value||G1.value||R3.value?J3.value%U:(Math.floor(b3.value/pI)+J3.value)%U:0}),I0=r2(()=>N3.value[V1.value]||O1),F0=r2(()=>w1(N3.value,V1.value,O1)),O0=r2(()=>N3.value.filter(U=>U.status==="直播中").length),Z1=r2(()=>Math.max(1,Math.ceil(N3.value.length/j4))),Y0=r2(()=>{const U=(Z3.value-1)*j4;return N3.value.slice(U,U+j4).map((t2,N2)=>({key:`home-video-modal-${t2.key||t2.title}-${U+N2}`,index:U+N2,live:t2}))}),d0=r2(()=>ng.map(U=>U.key==="today-outflow"?t3(B2({},U),{value:_3.value}):U)),de=r2(()=>{const U=Ve();return U.length?{key:"home-pasture-productivity",title:"草地生产力",rows:U,option:D(U,"生产力"),height:i3.value}:null}),Re=r2(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:U2.value,option:g1({key:"yak-stock-distribution",rows:rg},"牦牛存栏",{showTrendLine:!0})})),H1=r2(()=>[je(y0("grassland","grassland-town"),"草地面积"),je(y0("wetland","wetland-town-area"),"湿地面积"),je(y0("grassland","grassland-type-proportion"),"草原类别"),de.value].filter(Boolean).map((U,t2)=>Le(U,`forest-grass-wet-${t2}`))),M3=r2(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:D3.value,live:I0.value},Re.value,{key:"yak-structure",title:"畜群结构",height:U2.value,option:d2.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:U2.value,max:100,rows:w3.value}]),d2=r2(()=>s8({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:h3,tooltip:Ni(U=>`${U.name}
占比:${U.percent}%
估算数量:${Z(U.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(U){const t2=B5.find(N2=>N2.name===U);return t2?`${U} ${G2(t2.count)}头`:U},textStyle:{color:O4,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:U4,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:B5.map((U,t2)=>({name:U.name,value:U.count,selected:t2===oe.value}))}]}));r2(()=>s8({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:t3(B2({},Ni()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(U){const t2=gn[U[0].dataIndex];return`${t2.label}
预测存栏:${Z(t2.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:gn.map(U=>U.shortLabel),axisLabel:{color:a8,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(U){return Math.max(0,Math.floor(U.min/1e4)*1e4)},axisLabel:{color:a8,fontSize:10,margin:4,formatter:U=>z2(U,1)},splitLine:{lineStyle:{color:yi,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:gn.map((U,t2)=>({value:U.stock,itemStyle:{borderRadius:[9,9,1,1],color:new ut(0,0,0,1,[{offset:0,color:t2===z0.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t2===z0.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t2===z0.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t2===z0.value?16:8,shadowColor:t2===z0.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new ut(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:U4,fontSize:10,formatter:({value:U})=>z2(U)}}]})),r2(()=>{const U=P0.value,t2=x2.value,N2=k1(t2),Y2=B3(N2.length,U.key);return s8({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:t3(B2({},Ni()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(g3){var w0,A0,K1;const W3=Array.isArray(g3)?g3:[g3],l1=W3.find($0=>$0.seriesType==="candlestick"),c1=(l1==null?void 0:l1.data)||N2[(K1=(A0=l1==null?void 0:l1.dataIndex)!=null?A0:(w0=W3[0])==null?void 0:w0.dataIndex)!=null?K1:0];if(!c1)return"";const z1=c1.close-c1.open;return[`${c1.label}|${U.unit}度预测`,`预测存栏:${Z(c1.close)}头`,`较上期:${_2(z1)}头`,`繁殖补充:${Z(c1.birth)}头`,`出栏扣减:${Z(c1.outflow)}头`].join("
")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:O4,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t2.labels,axisLabel:{color:a8,fontSize:10,interval:Y2},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:a8,fontSize:10,formatter:G2},splitLine:{lineStyle:{color:yi,type:"dashed"}}},{type:"value",axisLabel:{color:O4,fontSize:10,formatter:G2},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:y1(N2.length,U.key),data:N2,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:N2.map((g3,W3)=>({value:g3.close,symbolSize:W3===j2.value?7:3,itemStyle:{color:W3===j2.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},K2("繁殖补充",t2.births,"#8bf7ff",1,!1,j2.value),K2("出栏扣减",t2.outflow,"#48cfff",1,!1,j2.value)]})}),jn(()=>{u3(),window.addEventListener("resize",u3),window.addEventListener("keydown",T2),document.addEventListener("pointerdown",K0,!0),document.addEventListener("click",c2,!0),p0(),I(),$2()}),On(()=>{var U,t2;C=!0,window.removeEventListener("resize",u3),window.removeEventListener("keydown",T2),document.removeEventListener("pointerdown",K0,!0),document.removeEventListener("click",c2,!0),f3(),x1(),n3(),g0(),G(),g.clear(),(t2=(U=s.value)==null?void 0:U.destroyMap)==null||t2.call(U)}),ie(V1,()=>{if(!R3.value){if(!G1.value&&!s0.value&&!i2.size){i0.value="";return}x1({resetError:!0})}}),ie(C3,()=>{p3+=1,n0()}),ie(()=>r.active,U=>{var t2,N2;U?($2(),$3(),f0(),I(),X2||P2()):(F=!1,(N2=(t2=s.value)==null?void 0:t2.pause)==null||N2.call(t2),n3(),g0(),G(),x1({resetError:!0}),a2(),J())});function $2(){F=!1,o("loading-progress",{progress:0}),ae(()=>{var U,t2;(t2=(U=s.value)==null?void 0:U.hasMap)!=null&&t2.call(U)&&z3()})}function z3(){C||F||(F=!0,o("loading-progress",{progress:100}),o("map-ready"),P2())}function d3(U={}){var t2,N2,Y2,g3,W3,l1,c1,z1,w0;if((N2=(t2=s.value)==null?void 0:t2.resume)==null||N2.call(t2),U.reset){(g3=(Y2=s.value)==null?void 0:Y2.resetView)==null||g3.call(Y2),(W3=s.value)!=null&&W3.resetView||(c1=(l1=s.value)==null?void 0:l1.refreshView)==null||c1.call(l1);return}(w0=(z1=s.value)==null?void 0:z1.refreshView)==null||w0.call(z1)}function $3(){E[C3.value]||(C3.value="grassland");const U=()=>{C||!r.active||d3({reset:!0})};ae(()=>{U(),window.setTimeout(U,180)})}function X3(){var U,t2;if(n0(),(t2=(U=s.value)==null?void 0:U.hasMap)!=null&&t2.call(U)){d3({reset:!0});return}$2(),ae(()=>{var N2,Y2;(Y2=(N2=s.value)==null?void 0:N2.resume)==null||Y2.call(N2)})}e({refreshMapView:d3,resetMap:X3});function P2(){n3();const U=()=>{S2=null,Q2="",!(C||!r.active)&&(X2=!0,h0(),be(),ve(),r.active&&f0())};if(typeof window.requestIdleCallback=="function"){Q2="idle",S2=window.requestIdleCallback(U,{timeout:1800});return}Q2="timeout",S2=window.setTimeout(U,650)}function n3(){S2&&(Q2==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(S2):window.clearTimeout(S2),S2=null,Q2="")}function s3(U,t2){U&&(t2?g.set(U,t2):g.delete(U))}function m1(U,t2){const N2=Number(t2==null?void 0:t2.index);Number.isFinite(N2)&&(U?p.set(N2,U):p.delete(N2)),t2!=null&&t2.isActive&&(u.value=U||null)}function w1(U=[],t2=0,N2=O1){const Y2=Array.isArray(U)?U:[];if(!Y2.length)return[{key:`empty-${N2.key||"video"}`,index:0,live:N2,isActive:!0}];const g3=(t2+Y2.length)%Y2.length,W3=Y2[g3]||N2;return[{key:`${W3.key||W3.title||"video"}-${g3}`,index:g3,live:W3,isActive:!0}]}function f0(){!r.active||C||(g0(),z=window.setInterval(B0,2600),Y=window.setTimeout(B0,800))}function g0(){z&&(window.clearInterval(z),z=null),Y&&(window.clearTimeout(Y),Y=null)}function B0(){C||!r.active||(Y=null,b3.value+=1,A3(),q3(),T1())}function p0(){o("module-stats",{moduleKey:"home",items:d0.value})}function ve(){return L3(this,null,function*(){var t2,N2;const U=u0(new Date);try{const Y2=yield or({year:Number(U.slice(0,4)),startDate:U,endDate:U}),g3=(Y2==null?void 0:Y2.metrics)||{},W3=Number((N2=(t2=g3.headCount)!=null?t2:g3.head_count)!=null?N2:0);_3.value=Number.isFinite(W3)?W3:0}catch(Y2){_3.value=0}C||p0()})}function u0(U){const t2=U.getFullYear(),N2=String(U.getMonth()+1).padStart(2,"0"),Y2=String(U.getDate()).padStart(2,"0");return`${t2}-${N2}-${Y2}`}function be(){return L3(this,null,function*(){try{const U=yield yp({includeOffline:!0,includeHidden:!0});if(C)return;N3.value=U,J3.value=0,Z3.value=1,M1.value=!1,i0.value=U.length?"":"暂无在线可播放摄像头"}catch(U){if(C)return;N3.value=[],i0.value="监控接口暂不可用",window.setTimeout(()=>{C||i0.value==="监控接口暂不可用"&&(i0.value="")},2400)}})}function xe(U){const t2=N3.value.length;return t2?((Number(U)||0)+t2)%t2:0}function Te(U){return String(xe(U))}function Fe(U){const t2=Te(U);return q1[t2]||(q1[t2]={playing:!1,loading:!1,ready:!1,error:""}),q1[t2]}function We(U){return q1[Te(U)]||{}}function Ze(U){return`${r0}-${Te(U)}`}function F2(U){return!!We(U).playing}function N(U){return!!We(U).loading}function _(U){const t2=We(U).error;return t2||(xe(U)===V1.value?i0.value:"")}function d(U){const t2=We(U);return!!(t2.playing||t2.loading)}function h(){const U=Object.values(q1);G1.value=U.some(t2=>t2.playing),s0.value=U.some(t2=>t2.loading)}function y(U,t2=!0,N2=V1.value){const Y2=(U==null?void 0:U.image)||sr;return F2(N2)&&t2?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${Y2})`}}function w(){H(-1)}function x(){H(1)}function k(){const U=V1.value;x1({resetError:!0}),J3.value=U,M1.value=!0,b3.value=0,Z3.value=Math.floor(U/j4)+1,R3.value=!0,ae(()=>P3())}function a2(){R3.value&&(x1({resetError:!0}),R3.value=!1)}function e2(U){const t2=Math.max(1,Math.min(Z1.value,Number(U)||1));t2!==Z3.value&&(x1({resetError:!0}),Z3.value=t2,J3.value=Math.min((t2-1)*j4,Math.max(0,N3.value.length-1)),ae(()=>P3()))}function s2(){j1.value=!0}function J(){j1.value=!1}function H(U){const t2=N3.value.length;if(!t2)return;x1({resetError:!0});const N2=V1.value;J3.value=(N2+U+t2)%t2,M1.value=!0,b3.value=0}function R2(U){if(!N3.value.length){E2();return}const N2=xe(U),Y2=Te(N2),g3=We(N2);if(J3.value=N2,M1.value=!0,b3.value=0,y2.has(Y2)||i2.has(Y2)||(g3.playing||g3.loading)&&!g3.error){P1(N2);return}y2.add(Y2),ae(()=>L3(this,null,function*(){try{yield D2(N2,{stopOthers:!R3.value})}finally{y2.delete(Y2)}}))}function p2(U,t2){o2(t2==null?void 0:t2.target)||R2(U)}function c2(U){var g3,W3,l1,c1,z1,w0,A0,K1,$0,j0;const t2=((W3=(g3=U==null?void 0:U.target)==null?void 0:g3.closest)==null?void 0:W3.call(g3,'[id$="-webExpend-content"]'))||((l1=U==null?void 0:U.composedPath)==null?void 0:l1.call(U).find(Z0=>String((Z0==null?void 0:Z0.id)||"").endsWith("-webExpend-content")));if(!t2)return;const N2=Number((w0=(z1=(c1=t2.closest)==null?void 0:c1.call(t2,"[data-video-index]"))==null?void 0:z1.dataset)==null?void 0:w0.videoIndex),Y2=(A0=b1.value)!=null?A0:Number.isFinite(N2)?N2:V1.value;(K1=U.preventDefault)==null||K1.call(U),($0=U.stopPropagation)==null||$0.call(U),(j0=U.stopImmediatePropagation)==null||j0.call(U),f2(Y2)}function f2(U){return L3(this,null,function*(){var g3,W3;const t2=xe(U);if(b1.value===t2){O2();return}b1.value!==null&&O2();const N2=document.getElementById(`${Ze(t2)}-wrap`);if(!N2)return;b1.value=t2,yield ae();const Y2=(W3=(g3=m.value)==null?void 0:g3.querySelector)==null?void 0:W3.call(g3,".home-video-web-player-slot");if(!Y2){b1.value=null;return}Y2.appendChild(N2),P1(t2),q2(t2)})}function O2(U={}){var g3;const{restore:t2=!0}=U,N2=b1.value;if(N2===null)return;const Y2=document.getElementById(`${Ze(N2)}-wrap`);if(t2&&Y2){const W3=E3(N2)||u.value,l1=(g3=W3==null?void 0:W3.querySelector)==null?void 0:g3.call(W3,".home-video-player-host");l1&&l1.appendChild(Y2)}b1.value=null,t2&&ae(()=>{P1(N2),q2(N2)})}function o2(U){var t2;return!!((t2=U==null?void 0:U.closest)!=null&&t2.call(U,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function T(U){const t2=Math.max(0,Number((U==null?void 0:U.value)||0)),N2=Math.max(5,...H2.value.map(Y2=>Math.max(0,Number(Y2.value||0))));return Math.max(6,Math.min(100,t2/N2*100))}function j(U){const t2=Number(U==null?void 0:U.value),N2=String((U==null?void 0:U.status)||(U==null?void 0:U.level)||"");return Number.isFinite(t2)?t2>20||/严重|重度|高超载/.test(N2)?"#8bf7ff":t2>10||/中度|预警/.test(N2)?"#48cfff":t2>5||/轻度/.test(N2)?"#8bf7ff":t2<=0||/总体可控|合理|正常|达标|无超载/.test(N2)?"#24f6c4":"#30dcff":"#30dcff"}function K(U){return{"--balance-color":j(U),"--balance-progress":`${T(U)}%`}}function E2(){return L3(this,null,function*(){return D2(V1.value,{stopOthers:!R3.value})})}function D2(N2){return L3(this,arguments,function*(U,t2={}){const{stopOthers:Y2=!0}=t2,g3=xe(U),W3=N3.value[g3]||O1,l1=Te(g3);let c1=Fe(g3);if((W3==null?void 0:W3.status)!=="直播中"||!(W3!=null&&W3.hdPlayUrl)||!(W3!=null&&W3.token)){c1.error=(W3==null?void 0:W3.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",c1.loading=!1,c1.playing=!1,c1.ready=!1,g3===V1.value&&(i0.value=c1.error),h();return}if(i2.has(l1)||(c1.playing||c1.loading)&&!c1.error)return;J3.value=g3,b3.value=0,Y2?x1({resetError:!0}):(i2.has(l1)||c1.loading)&&I1(g3,{resetError:!0}),c1=Fe(g3),c1.error="",c1.loading=!0,c1.playing=!1,c1.ready=!1,g3===V1.value&&(i0.value=""),h(),yield ae();const z1=(v2.get(l1)||0)+1;v2.set(l1,z1);let w0=null;$1(g3,z1);try{const A0=E3(g3)||u.value,K1=Ze(g3);if(!C1(A0,K1))throw new Error("视频容器未就绪");const{width:$0,height:j0}=j3(A0,340,92);if(w0=new Km.EZUIKitPlayer({id:K1,accessToken:W3.token,url:W3.hdPlayUrl,audio:0,width:$0,height:j0,themeData:v3(),handleError(Z0){z1===v2.get(l1)&&(W1(g3),console.warn("EZUIKit player error",Z0),E0(w0),c1.error="视频加载失败",c1.loading=!1,c1.playing=!1,c1.ready=!1,v2.set(l1,z1+1),i2.delete(l1),L2(g3),g3===V1.value&&(i0.value=c1.error),h())},handleSuccess(){z1===v2.get(l1)&&(W1(g3),c1.error="",c1.ready=!0,c1.loading=!1,g3===V1.value&&(i0.value=""),P1(g3),q2(g3),Z2(K1),h())},fullScreenChangeCallBack(){}}),z1!==v2.get(l1)){E0(w0),L2(g3);return}i2.set(l1,w0),c1.playing=!0,h(),ae(()=>{P1(g3),q2(g3),Z2(K1)})}catch(A0){W1(g3),console.warn("EZUIKit init error",A0),c1.error="视频加载失败",g3===V1.value&&(i0.value=c1.error),I1(g3,{resetError:!1})}})}function Z2(U){if(typeof document=="undefined"||!U)return;const t2=document.getElementById(`${U}-ez-iframe-footer-container`),N2=document.getElementById(`${U}-audioControls`);t2&&Object.assign(t2.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),N2&&Object.assign(N2.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function q2(U=V1.value,t2=0){if(typeof window=="undefined")return;const N2=xe(U),Y2=Te(N2),g3=l3.get(Y2);t2===0&&g3&&window.cancelAnimationFrame(g3);const W3=window.requestAnimationFrame(()=>{P1(N2),t2<8?q2(N2,t2+1):l3.delete(Y2)});l3.set(Y2,W3)}function f3(U){if(typeof window!="undefined"){if(U!==void 0){const t2=Te(U),N2=l3.get(t2);N2&&window.cancelAnimationFrame(N2),l3.delete(t2);return}l3.forEach(t2=>window.cancelAnimationFrame(t2)),l3.clear()}}function P3(){Array.from(i2.keys()).forEach(U=>{const t2=Number(U);Number.isFinite(t2)&&q2(t2)})}function j3(U,t2=1,N2=1){var l1;if(!U)return{width:Math.max(1,Math.floor(t2||1)),height:Math.max(1,Math.floor(N2||1))};const Y2=(l1=U.getBoundingClientRect)==null?void 0:l1.call(U),g3=U.clientWidth||U.offsetWidth||(Y2==null?void 0:Y2.width)||t2,W3=U.clientHeight||U.offsetHeight||(Y2==null?void 0:Y2.height)||N2;return{width:Math.max(1,Math.floor(g3||1)),height:Math.max(1,Math.floor(W3||1))}}function E3(U=V1.value){if(typeof document=="undefined")return null;const t2=xe(U),N2=R3.value?".home-video-modal-item":".home-video-card .home-video-screen",Y2=document.querySelector(`${N2}[data-video-index="${t2}"]`);if(Y2)return Y2;const g3=p.get(t2);return g3!=null&&g3.isConnected?g3:null}function C1(U,t2){var g3;const N2=(g3=U==null?void 0:U.querySelector)==null?void 0:g3.call(U,".home-video-player-host");if(!N2)return null;N2.replaceChildren();const Y2=document.createElement("div");return Y2.id=t2,Y2.className="home-video-player",N2.appendChild(Y2),Y2}function P1(U=V1.value){var En,et;if(typeof document=="undefined")return;const t2=xe(U),N2=Te(t2),Y2=Ze(t2),g3=b1.value===t2&&m.value?m.value:E3(t2)||u.value,W3=document.getElementById(`${Y2}-wrap`),l1=document.getElementById(Y2),c1=W3||l1;if(!g3||!c1)return;const{width:z1,height:w0}=j3(g3),A0=i2.get(N2);try{W3&&l1&&A0&&typeof A0.reSize=="function"?A0.reSize(z1,w0):W3&&l1&&A0&&typeof A0.autoResize=="function"&&A0.autoResize()}catch(rt){console.warn("EZUIKit resize failed",rt)}const K1={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${z1}px`,height:`${w0}px`};Object.assign(c1.style,K1,{display:"block",verticalAlign:"top"}),W3&&l1&&Object.assign(l1.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const $0=document.getElementById(`EZUIKitPlayer-${Y2}`);$0&&($0.setAttribute("width",String(z1)),$0.setAttribute("height",String(w0)));const j0=document.getElementById(`${Y2}-player`),Z0=document.getElementById(`${Y2}canvas0`),Xe=document.getElementById(`${Y2}canvas_draw0`),St=[c1,l1,j0,Z0==null?void 0:Z0.parentElement,Z0,Xe==null?void 0:Xe.parentElement,Xe,...Array.from((l1==null?void 0:l1.children)||[]),...Array.from(((En=c1==null?void 0:c1.querySelectorAll)==null?void 0:En.call(c1,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((et=l1==null?void 0:l1.querySelectorAll)==null?void 0:et.call(l1,".play-window, video, canvas, iframe, object, embed"))||[]),$0].filter(Boolean);Array.from(new Set(St)).forEach(rt=>{var r6,o6;(r6=rt.setAttribute)==null||r6.call(rt,"width",String(z1)),(o6=rt.setAttribute)==null||o6.call(rt,"height",String(w0)),Object.assign(rt.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),Z2(Y2)}function x1(U={}){Array.from(i2.keys()).forEach(t2=>{I1(Number(t2),U)}),Object.keys(q1).forEach(t2=>{i2.has(t2)||I1(Number(t2),U)}),h()}function I1(U,t2={}){const{clearElement:N2=!0,resetError:Y2=!1}=t2,g3=xe(U),W3=Te(g3);f3(g3),W1(g3);const l1=i2.get(W3);i2.delete(W3),v2.set(W3,(v2.get(W3)||0)+1),l1&&E0(l1),N2&&L2(g3);const c1=q1[W3];c1&&(c1.playing=!1,c1.loading=!1,c1.ready=!1,Y2&&(c1.error=""),c1.error||delete q1[W3]),g3===V1.value&&Y2&&(i0.value=""),h()}function $1(U,t2){const N2=xe(U),Y2=Te(N2);W1(N2);const g3=window.setTimeout(()=>{const W3=q1[Y2];t2!==v2.get(Y2)||!(W3!=null&&W3.loading)||(W3.error="视频加载超时",N2===V1.value&&(i0.value=W3.error),I1(N2,{resetError:!1}))},gI);A2.set(Y2,g3)}function W1(U){const t2=Te(U),N2=A2.get(t2);N2&&(window.clearTimeout(N2),A2.delete(t2))}function E0(U){if(!(!U||typeof U.stop!="function"))try{const t2=U.stop();t2&&typeof t2.catch=="function"&&t2.catch(()=>{})}catch(t2){console.warn("EZUIKit stop error",t2)}}function L2(U=V1.value){var c1;if(typeof document=="undefined")return;const t2=xe(U),N2=Ze(t2),Y2=document.getElementById(`${N2}-wrap`),g3=document.getElementById(N2),W3=E3(t2)||u.value,l1=(c1=W3==null?void 0:W3.querySelector)==null?void 0:c1.call(W3,".home-video-player-host");b1.value===t2&&O2({restore:!1}),l1&&l1.replaceChildren(),Y2!=null&&Y2.isConnected&&Y2.remove(),g3!=null&&g3.isConnected&&g3.remove()}function v3(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function A3(){const U=g.get("yak-structure");l0(U,"畜群结构",oe.value)}function q3(){const U=g.get("yak-three-year-forecast");l0(U,"预测存栏",z0.value)}function T1(){const U=g.get("yak-forecast-trend");l0(U,"预测存栏",j2.value)}function l0(U,t2,N2){const Y2=typeof(U==null?void 0:U.dispatchAction)=="function"?U:U==null?void 0:U.chart;!Y2||N2<0||(Y2.dispatchAction({type:"downplay",seriesName:t2}),Y2.dispatchAction({type:"hideTip"}),Y2.dispatchAction({type:"highlight",seriesName:t2,dataIndex:N2}),Y2.dispatchAction({type:"showTip",seriesName:t2,dataIndex:N2}))}function X1(U){return U?b3.value%U:0}function h0(){return L3(this,null,function*(){const[U,t2]=yield Promise.all([_8("grassland","grassland-distribution"),_8("wetland","wetland-distribution")]);C||(f.value={grassland:U,wetland:t2})})}function y0(U,t2){const N2=f.value[U];return[...(N2==null?void 0:N2.leftPanels)||[],...(N2==null?void 0:N2.rightPanels)||[]].find(g3=>(g3==null?void 0:g3.key)===t2)}function je(U,t2){return U?t3(B2({},U),{title:t2}):null}function Ve(){var w0,A0,K1,$0;const U=((w0=y0("grassland","grassland-town"))==null?void 0:w0.rows)||[],t2=((A0=y0("wetland","wetland-town-area"))==null?void 0:A0.rows)||[],N2=((K1=y0("grassland","grassland-productivity-town"))==null?void 0:K1.rows)||[],Y2=(($0=y0("wetland","wetland-mu-yield"))==null?void 0:$0.rows)||[],g3=se(U),W3=se(t2),l1=se(N2),c1=se(Y2);return[...new Set([...U,...t2,...N2,...Y2].map(j0=>j0==null?void 0:j0.name).filter(Boolean))].map((j0,Z0)=>{const Xe=g3.get(j0)||0,St=W3.get(j0)||0,w5=l1.get(j0)||0,En=c1.get(j0)||0;let et=0,rt=0;Xe>0&&w5>0&&(et+=Xe*w5,rt+=Xe),St>0&&En>0&&(et+=St*En,rt+=St);const r6=[w5,En].filter(Ht=>Ht>0),o6=rt>0?et/rt:r6.reduce((Ht,L9)=>Ht+L9,0)/Math.max(r6.length,1);return{key:`home-pasture-productivity-${j0}`,name:j0,value:Number(o6.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:Z0}}).filter(j0=>j0.value>0)}function se(U=[]){return new Map(U.map(t2=>[t2.name,Number(t2.value)||0]))}function Le(U,t2){const N2=String((U==null?void 0:U.key)||"");return N2.includes("grassland-town")?t3(B2({},U),{key:`home-${t2}-${U.key}`,height:i3.value,option:g1(U,U.title)}):N2.includes("wetland-town-area")?t3(B2({},U),{key:`home-${t2}-${U.key}`,height:i3.value,option:g1(U,U.title,{variant:"water"})}):t3(B2({},U),{key:`home-${t2}-${U.key}`,height:i3.value})}function g1(U,t2,N2={}){var A0;const Y2=(U.rows||[]).filter(K1=>Number.isFinite(Number(K1.value))).slice(0,10),g3=((A0=Y2.find(K1=>K1.unit))==null?void 0:A0.unit)||"万亩",W3=Y2.map(K1=>Number(K1.value)||0),l1=Math.max(...W3,1),c1=Math.ceil(l1*1.14),z1=N2.showTrendLine===!0,w0=N2.variant==="water";return s8({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${g3}`,left:"5%",top:"8%",textStyle:{color:O4,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(K1){var Xe;const $0=Array.isArray(K1)?K1:[K1],j0=$0.find(St=>St.seriesName===t2)||$0[0],Z0=Y2[(Xe=j0==null?void 0:j0.dataIndex)!=null?Xe:0];return Z0?`${Z0.name}
${t2}:${Z(Z0.value)}${Z0.unit||g3}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:Y2.map(K1=>K1.name),axisLabel:{interval:0,hideOverlap:!1,color:Th,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:h2},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:Y2.map(K1=>K1.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:c1,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:yi,opacity:1,width:.3}},axisLabel:{color:a8,fontSize:10,formatter:G2}},series:[{name:t2,type:"bar",barWidth:w0?10:6,stack:"b",z:3,data:Y2.map(K1=>Number(K1.value)||0),label:{show:!0,position:"top",distance:9,color:U4,fontSize:10,fontWeight:700,formatter:({value:K1})=>G2(K1)},itemStyle:{borderRadius:w0?[7,7,3,3]:2,color:new ut(0,0,0,1,[...w0?[{offset:0,color:"#a8fbff"},{offset:.42,color:"#31dcff"},{offset:1,color:"#2b8fff"}]:[{offset:0,color:"#19FFC6"},{offset:1,color:"#33AAFF"}]])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:w0?"rgba(49, 220, 255, 0.18)":"rgba(25, 255, 198, 0.16)"}}},...z1?[{name:`${t2}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:W3,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:U4,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],...w0?[{name:"水柱顶",type:"pictorialBar",symbol:"circle",symbolSize:[18,7],symbolOffset:[0,-2],symbolPosition:"end",data:W3,itemStyle:{color:"#a8fbff",opacity:.92,shadowBlur:3,shadowColor:"rgba(168, 251, 255, 0.18)"},tooltip:{show:!1},z:4}]:[{type:"custom",renderItem(K1,$0){const j0=$0.value(0),Z0=$0.value(1),Xe=$0.coord([j0,Z0]);return{type:"image",style:{x:Xe[0]-4.5,y:Xe[1]-9,width:10,height:10,image:hI},silent:!0}},data:Y2.map((K1,$0)=>[$0,Number(K1.value)||0]),tooltip:{show:!1},z:4}],{type:"bar",barWidth:w0?20:30,xAxisIndex:1,barGap:"-220%",data:Y2.map(()=>c1),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:w0?"rgba(58, 164, 215, 0.75)":"rgba(122, 140, 153, 0.6)",opacity:w0?.12:.075},tooltip:{show:!1},z:0}]})}function D(U=[],t2="数值"){var c1;const N2=U.filter(z1=>Number.isFinite(Number(z1.value))).slice(0,10),Y2=((c1=N2.find(z1=>z1.unit))==null?void 0:c1.unit)||"",g3=N2.map(z1=>Number(z1.value)||0),W3=Math.max(...g3,1),l1=Math.ceil(W3*1.12);return s8({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:Y2?`单位:${Y2}`:"",left:"5%",top:"8%",textStyle:{color:O4,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(z1){var $0;const A0=(Array.isArray(z1)?z1:[z1])[0],K1=N2[($0=A0==null?void 0:A0.dataIndex)!=null?$0:0];return K1?`${K1.name}
${t2}:${Z(K1.value)}${K1.unit||Y2}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:N2.map(z1=>z1.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Th,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:h2}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:l1,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:yi,opacity:1,width:.3}},axisLabel:{color:a8,fontSize:10,formatter:G2}},series:[{name:t2,data:g3,type:"line",smooth:!0,symbol:mI,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:U4,fontSize:10,fontWeight:700,formatter:({value:z1})=>G2(z1)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new ut(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new ut(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function u2(U){const t2=String((U==null?void 0:U.key)||"");return t2.includes("grassland-town")||t2.includes("wetland-town-area")}function K2(U,t2,N2,Y2=0,g3=!1,W3=-1){return{name:U,type:"line",yAxisIndex:Y2,smooth:!0,symbolSize:5,data:t2.map((l1,c1)=>({value:l1,symbolSize:c1===W3?10:5,itemStyle:{color:c1===W3?"#ffffff":N2},label:{show:c1===W3,position:"top",color:N2,fontSize:10,formatter:({value:z1})=>G2(z1)}})),lineStyle:{width:2.4,color:N2},itemStyle:{color:N2},areaStyle:g3?{color:new ut(0,0,0,1,[{offset:0,color:`${N2}44`},{offset:1,color:`${N2}05`}])}:void 0}}function i1(U){return u1.find(t2=>t2.key===U)||u1[2]}function G3(U,t2="month"){if(t2==="month")return Hp(U);const N2=pu(U),Y2=Math.max(1,Math.round(Math.max(1,N2-1)*30)),g3=t2==="week"?7:1,W3=Math.ceil(Y2/g3)+1,l1=Array.from({length:W3},(A0,K1)=>{const $0=Math.min(Y2,K1*g3);return Kp($0)}),c1=l1.map((A0,K1)=>{const j0=Math.min(Y2,K1*g3)/Y2,Z0=Math.sin(K1/(t2==="week"?1.8:8.5))*Math.sin(Math.PI*j0)*Math.min(360,U.months*18);return Math.round(Mt+(U.stock-Mt)*j0+Z0)}),z1=l1.map((A0,K1)=>Math.round(U.births*(Math.min(Y2,K1*g3)/Y2))),w0=l1.map((A0,K1)=>Math.round(U.outflow*(Math.min(Y2,K1*g3)/Y2)));return{labels:l1,stock:c1,births:z1,outflow:w0}}function B3(U,t2){return t2==="day"?Math.max(10,Math.ceil(U/6)):t2==="week"?Math.max(2,Math.ceil(U/7)):U>24?4:U>14?2:1}function y1(U,t2){return t2==="day"?U>700?2:U>360?3:4:t2==="week"?U>110?4:6:U>24?7:10}function k1(U){return(U.labels||[]).map((t2,N2)=>{var A0,K1,$0,j0,Z0,Xe;const Y2=Number(((A0=U.stock)==null?void 0:A0[Math.max(N2-1,0)])||0),g3=Number(((K1=U.stock)==null?void 0:K1[N2])||Y2),W3=Math.max(0,Number((($0=U.births)==null?void 0:$0[N2])||0)-Number(((j0=U.births)==null?void 0:j0[Math.max(N2-1,0)])||0)),l1=Math.max(0,Number(((Z0=U.outflow)==null?void 0:Z0[N2])||0)-Number(((Xe=U.outflow)==null?void 0:Xe[Math.max(N2-1,0)])||0)),c1=Math.max(120,Math.round((W3+l1)*.18)),z1=Math.max(Y2,g3)+Math.max(c1,Math.round(W3*.32)),w0=Math.max(0,Math.min(Y2,g3)-Math.max(c1,Math.round(l1*.32)));return{label:t2,open:Y2,close:g3,low:w0,high:z1,birth:W3,outflow:l1,value:[Y2,g3,w0,z1]}})}function Z(U){const t2=Number(U);return Number.isFinite(t2)?t2.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t2)?0:2}):"--"}function _2(U){const t2=Number(U);return Number.isFinite(t2)?`${t2>0?"+":""}${Z(t2)}`:"--"}function G2(U){const t2=Number(U);return Number.isFinite(t2)?Math.abs(t2)>=1e4?`${(t2/1e4).toFixed(Math.abs(t2)>=1e5?0:1)}万`:Math.round(t2).toLocaleString("zh-CN"):"--"}function z2(U,t2=2){const N2=Number(U);return Number.isFinite(N2)?Math.abs(N2)>=1e4?`${(N2/1e4).toFixed(t2)}万`:Math.round(N2).toLocaleString("zh-CN"):"--"}function h2(U){return String(U||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function o3(U){if(!U)return null;const t2=j5(U.topicKey,U.layerKey);if(t2)return t2;const N2=N8(U.topicKey);return N2.find(Y2=>Y2.key===U.layerKey)||N2[0]||null}function J2(U,t2){const N2=Number.isFinite(Number(t2.fillOpacity))?Number(t2.fillOpacity):.46,Y2=t2.stroke||t2.strokeColor||"#E5FCFF",g3=Number.isFinite(Number(t2.strokeOpacity))?Number(t2.strokeOpacity):.86,W3=Number.isFinite(Number(t2.strokeWidth))?Number(t2.strokeWidth):1.1;return`${U}${t2.fill}${N2}${Y2}${g3}${W3}round`}function m3(U){A1.some(t2=>t2.key===U)&&(C3.value=U,P(!1))}function k3(){P(!H3.value)}function P(U){H3.value=!!U,H3.value?I():G()}function I(){G(),!(!r.active||C||!H3.value)&&(c3=window.setInterval(()=>{const U=A1.findIndex(N2=>N2.key===C3.value),t2=(Math.max(0,U)+1)%A1.length;C3.value=A1[t2].key},1e4))}function G(){c3&&(window.clearInterval(c3),c3=null)}function T2(U){if(U.key==="Escape"){if(b1.value!==null){O2();return}a2(),J()}}function u3(){V3.value=typeof window=="undefined"?1080:window.innerHeight,P3()}function V2(U){const t2=document.querySelector(".home-dashboard"),N2=t2==null?void 0:t2.getBoundingClientRect();if(!(N2!=null&&N2.width)||!(N2!=null&&N2.height))return U;const Y2=Number(U==null?void 0:U.x),g3=Number(U==null?void 0:U.y);return!Number.isFinite(Y2)||!Number.isFinite(g3)?{x:960,y:540}:Y2>=0&&Y2<=1920&&g3>=0&&g3<=1080&&(Y2>N2.width||g3>N2.height)?{x:Y2,y:g3}:{x:(Y2-N2.left)/N2.width*1920,y:(g3-N2.top)/N2.height*1080}}function W(U,t2){var N2,Y2,g3,W3;return((Y2=(N2=s.value)==null?void 0:N2.getVectorFeatureAnchorScreen)==null?void 0:Y2.call(N2,U))||((W3=(g3=s.value)==null?void 0:g3.getVectorFeatureScreen)==null?void 0:W3.call(g3,U))||t2}function e3(U){const t2=(U==null?void 0:U.properties)||{};return Object.keys(t2).filter(Y2=>r1(Y2,t2[Y2])).length}function r1(U,t2){return t2==null||t2===""||Array.isArray(t2)||typeof t2=="object"?!1:!i.has(String(U||"").toLowerCase())}function c0(U={}){const t2=String(C3.value||"").toLowerCase(),N2=`${U.key||""} ${U.layerName||""} ${t2}`.toLowerCase();return t2==="woodland"||N2.includes("woodland")||N2.includes("t_woodland")?"woodland":t2==="wetland"||N2.includes("wetland")||N2.includes("shidi")?"wetland":t2==="grassland"||N2.includes("grassland")||N2.includes("caodi")?"grassland":""}function t0(U={}){const t2=b(U.lng),N2=b(U.lat);return t2===""||N2===""?"":`POINT(${t2} ${N2})`}function b(U){const t2=Number(U);return Number.isFinite(t2)?t2.toFixed(8).replace(/\.?0+$/,""):""}function B(){return L3(this,arguments,function*(U={}){var c1,z1,w0,A0,K1,$0;const t2=Number((c1=U==null?void 0:U.lngLat)==null?void 0:c1.lng),N2=Number((z1=U==null?void 0:U.lngLat)==null?void 0:z1.lat),Y2=N1.value,g3=c0(Y2);if(!Number.isFinite(t2)||!Number.isFinite(N2)||!g3){n0();return}const W3=++p3,l1=U.screen||{x:960,y:540};R1.value=null,s1.value=null,B1.value=!1,U1.value=!0,(A0=(w0=s.value)==null?void 0:w0.clearSelectedFeature)==null||A0.call(w0);try{const j0=yield q(Y2,{lng:t2,lat:N2},g3);if(W3!==p3||C)return;if(!j0){n0();return}s1.value=j0,B1.value=!1,($0=(K1=s.value)==null?void 0:K1.highlightFeature)==null||$0.call(K1,j0),R1.value=W(j0,l1)}catch(j0){W3===p3&&n0()}finally{W3===p3&&(U1.value=!1)}})}function q(Y2,g3){return L3(this,arguments,function*(U,t2,N2=c0(U)){const W3=t0(t2);if(!W3)return null;let l1=null;N2==="grassland"?l1=yield Ip({wkt:W3}):N2==="wetland"?l1=yield Fp({wkt:W3}):N2==="woodland"&&(l1=yield wp(W3));const c1=b2(l1,N2);if(!m2(c1))return null;const z1=x3(c1,U,t2,N2);return e3(z1)>0?z1:null})}function b2(U,t2){var Y2,g3,W3,l1;const N2=[U==null?void 0:U[t2],U==null?void 0:U.grassland,U==null?void 0:U.wetland,U==null?void 0:U.woodland,(Y2=U==null?void 0:U.data)==null?void 0:Y2[t2],(g3=U==null?void 0:U.data)==null?void 0:g3.grassland,(W3=U==null?void 0:U.data)==null?void 0:W3.wetland,(l1=U==null?void 0:U.data)==null?void 0:l1.woodland,U==null?void 0:U.data,U==null?void 0:U.result,U];for(const c1 of N2){const z1=C2(c1);if(z1)return z1}return null}function C2(U){return Array.isArray(U)?U.find(t2=>t2&&typeof t2=="object")||null:U&&typeof U=="object"?U:null}function m2(U){return!U||typeof U!="object"?!1:Array.isArray(U.dyColumn)&&U.dyColumn.some(T3)?!0:Object.keys(U).some(t2=>r1(t2,U[t2]))}function T3(U={}){const t2=U==null?void 0:U.value;return t2==null||t2===""?!1:!!String((U==null?void 0:U.field)||(U==null?void 0:U.title)||"").trim()}function x3(U,t2,N2,Y2){const g3=v1(U),W3=K3(U);return{id:U.id||U.patchNo||U.patch_no||U.landNumber||U.land_number||`${Y2}-${N2.lng}-${N2.lat}`,properties:g3,feature:{type:"Feature",properties:g3,geometry:W3},geometry:W3,layer:t2,lngLat:N2}}function K3(U={}){return U.geometry||U.geom||U.wkt||U.the_geom||U.theGeom||U.geo||U.geometryWkt||U.geometry_wkt||U.shape||null}function v1(U={}){const t2=B2({},U);return(Array.isArray(U.dyColumn)?U.dyColumn:[]).forEach(Y2=>{const g3=Y2==null?void 0:Y2.value;if(g3==null||g3==="")return;const W3=a[String((Y2==null?void 0:Y2.title)||"").trim()],l1=String((Y2==null?void 0:Y2.field)||"").trim();[l1,Q1(l1),W3].filter(Boolean).forEach(z1=>{(t2[z1]===void 0||t2[z1]===null||t2[z1]==="")&&(t2[z1]=g3)})}),t2}function Q1(U){const t2=String(U||"").trim();return t2?t2.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function L1(U){var N2,Y2;const t2=(Y2=(N2=U==null?void 0:U.feature)!=null?N2:U)!=null?Y2:null;if(!t2||e3(t2)<=0){n0();return}s1.value=t2,B1.value=!1,U!=null&&U.screen&&(R1.value=W(t2,U.screen))}function n0(){var U,t2;p3+=1,s1.value=null,B1.value=!1,U1.value=!1,R1.value=null,(t2=(U=s.value)==null?void 0:U.clearSelectedFeature)==null||t2.call(U)}function K0(U){if(!G0.value)return;const t2=document.querySelector(".home-map-feature-info"),N2=U.target;t2&&N2 instanceof Node&&t2.contains(N2)||n0()}return(U,t2)=>(O(),V("div",AL,[S1(z8,{ref_key:"mapSceneRef",ref:s,class:"home-map-scene",active:r.active,"active-layer":N1.value,"admin-boundary-line-scale":2.4,"initial-zoom":yI,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:z3,onFeatureLoading:t2[0]||(t2[0]=N2=>U1.value=N2),onFeatureInfo:L1,onMapClick:B},null,8,["active","active-layer"]),t2[12]||(t2[12]=S("div",{class:"home-map-scrim"},null,-1)),S("div",_L,[S1(Fa,{"model-value":C3.value,topics:A1,"onUpdate:modelValue":m3},null,8,["model-value"]),S("button",{class:o1(["home-toolbar-rotation-toggle",{"is-paused":!H3.value}]),type:"button",title:_1.value,"aria-label":_1.value,"aria-pressed":!H3.value,onClick:k3},[S("span",{class:o1(["home-toolbar-rotation-icon",H3.value?"is-pause":"is-play"]),"aria-hidden":"true"},null,2)],10,xL)]),G0.value?(O(),V("div",{key:0,class:"home-map-feature-info",style:o0(S0.value)},[S1(Ia,{feature:s1.value,empty:B1.value,loading:U1.value,width:460,height:T0.value},null,8,["feature","empty","loading","height"])],4)):U3("",!0),S("div",ML,[S("div",PL,[(O(!0),V(Y3,null,e1(H1.value,N2=>(O(),_e(U0,{key:N2.key,class:"home-card left-card",title:N2.title,width:D1(O3),height:N2.height},{default:M0(()=>[N2.option?(O(),_e(D1(Ke),{key:0,ref_for:!0,ref:Y2=>s3(N2.key,Y2),class:"home-chart home-town-column-chart",option:N2.option,autoresize:!0},null,8,["option"])):(O(),_e(wn,{key:1,panel:N2,compact:"","column-label-standard":u2(N2)},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),S("div",kL,[S("div",EL,[(O(!0),V(Y3,null,e1(M3.value,N2=>(O(),_e(U0,{key:N2.key,class:o1(["home-card","right-card",{"home-video-card":N2.type==="video"}]),title:N2.title,width:D1(O3),height:N2.height},{extra:M0(()=>[N2.type==="video"||N2.key==="home-town-balance-gauge"?(O(),V("button",{key:0,class:"home-card-more",type:"button","aria-label":N2.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:Y2=>N2.type==="video"?k():s2()},[...t2[3]||(t2[3]=[Ae(" 更多 ",-1),S("span",{"aria-hidden":"true"},"›",-1)])],8,NL)):U3("",!0)]),default:M0(()=>[N2.type==="video"?(O(),V("div",RL,[S("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:N3.value.length<=1,onClick:w},"‹",8,LL),S("div",{class:o1(["home-video-grid",{"is-single":F0.value.length<=1}])},[(O(!0),V(Y3,null,e1(F0.value,Y2=>(O(),V("div",{key:Y2.key,ref_for:!0,ref:g3=>m1(g3,Y2),"data-video-index":Y2.index,class:o1(["home-video-screen",{"is-active":Y2.isActive,"is-playing":F2(Y2.index),"is-loading":N(Y2.index)}]),style:o0(y(Y2.live,Y2.isActive,Y2.index)),role:"button",tabindex:"0",onClick:g3=>p2(Y2.index,g3),onKeydown:[Bt(ue(g3=>R2(Y2.index),["prevent"]),["enter"]),Bt(ue(g3=>R2(Y2.index),["prevent"]),["space"])]},[t2[4]||(t2[4]=S("div",{class:"home-video-player-host"},null,-1)),N(Y2.index)?(O(),V("div",FL,"加载中")):U3("",!0),_(Y2.index)?(O(),V("div",BL,l2(_(Y2.index)),1)):U3("",!0),Y2.live.hdPlayUrl&&(!d(Y2.index)||_(Y2.index))?(O(),V("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:ue(g3=>R2(Y2.index),["stop"])},null,8,DL)):U3("",!0),S("div",GL,l2(Y2.live.title),1)],46,IL))),128))],2),S("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:N3.value.length<=1,onClick:x},"›",8,UL)])):N2.key==="yak-forecast-trend"?(O(),V("div",OL,[S("div",jL,[(O(),V(Y3,null,e1(u1,Y2=>S("button",{key:Y2.key,type:"button",class:o1({active:Y2.key===a1.value}),onClick:g3=>a1.value=Y2.key},l2(Y2.label),11,zL)),64))]),S1(D1(Ke),{ref_for:!0,ref:Y2=>s3(N2.key,Y2),class:"home-chart home-forecast-kline-chart",option:N2.option,autoresize:!0},null,8,["option"])])):N2.option?(O(),_e(D1(Ke),{key:2,ref_for:!0,ref:Y2=>s3(N2.key,Y2),class:"home-chart",option:N2.option,autoresize:!0},null,8,["option"])):N2.key==="home-town-balance-gauge"?(O(),V("div",YL,[(O(!0),V(Y3,null,e1(w3.value,(Y2,g3)=>(O(),V("div",{key:Y2.key,class:o1(["home-balance-gauge-card",{"is-active":g3===d1.value}]),style:o0(K(Y2))},[S("div",$L,[S("strong",null,l2(Y2.status),1)]),S("div",WL,[S("div",VL,[S("strong",null,l2(Z(Y2.value)),1),t2[5]||(t2[5]=S("em",null,"%",-1))])]),S("div",HL,l2(Y2.name),1),S("div",KL,l2(Y2.extra),1)],6))),128))])):(O(),_e(wn,{key:4,panel:N2,compact:"","column-label-standard":u2(N2)},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),R3.value?(O(),V("div",{key:1,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:ue(a2,["self"])},[S("section",qL,[S("header",JL,[S("div",null,[t2[6]||(t2[6]=S("h2",null,"基地监控",-1)),S("p",null,"共 "+l2(N3.value.length)+" 路,在线 "+l2(O0.value)+" 路",1)]),S("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:a2},"×")]),Y0.value.length?(O(),V("div",QL,[(O(!0),V(Y3,null,e1(Y0.value,N2=>(O(),V("div",{key:N2.key,ref_for:!0,ref:Y2=>m1(Y2,N2),"data-video-index":N2.index,class:o1(["home-video-modal-item home-video-screen",{"is-active":N2.index===V1.value,"is-playing":F2(N2.index),"is-loading":N(N2.index),"is-offline":N2.live.status!=="直播中"}]),style:o0(y(N2.live,N2.index===V1.value,N2.index)),role:"button",tabindex:"0",onClick:Y2=>p2(N2.index,Y2),onKeydown:[Bt(ue(Y2=>R2(N2.index),["prevent"]),["enter"]),Bt(ue(Y2=>R2(N2.index),["prevent"]),["space"])]},[t2[7]||(t2[7]=S("div",{class:"home-video-player-host"},null,-1)),N(N2.index)?(O(),V("div",XL,"加载中")):U3("",!0),_(N2.index)?(O(),V("div",eI,l2(_(N2.index)),1)):U3("",!0),N2.live.hdPlayUrl&&(!d(N2.index)||_(N2.index))?(O(),V("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:ue(Y2=>R2(N2.index),["stop"])},null,8,tI)):U3("",!0),S("span",nI,l2(N2.live.title),1)],46,ZL))),128))])):(O(),V("div",aI,"暂无监控数据")),Z1.value>1?(O(),V("footer",iI,[S("button",{type:"button",disabled:Z3.value<=1,onClick:t2[1]||(t2[1]=N2=>e2(Z3.value-1))},"上一页",8,rI),S("span",null,l2(Z3.value)+" / "+l2(Z1.value),1),S("button",{type:"button",disabled:Z3.value>=Z1.value,onClick:t2[2]||(t2[2]=N2=>e2(Z3.value+1))},"下一页",8,oI)])):U3("",!0)])])):U3("",!0),(O(),_e(Rm,{to:"body"},[b1.value!==null?(O(),V("div",sI,[S("div",{ref_key:"homeVideoWebStageRef",ref:m,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t2[8]||(t2[8]=[S("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):U3("",!0)])),j1.value?(O(),V("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:ue(J,["self"])},[S("section",lI,[S("header",uI,[S("div",null,[t2[9]||(t2[9]=S("h2",null,"全县乡镇草畜平衡",-1)),S("p",null,"全部 "+l2(H2.value.length)+" 个乡镇,超载率沿用草畜平衡结果库口径",1)]),S("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:J},"×")]),S("div",cI,[(O(!0),V(Y3,null,e1(H2.value,N2=>(O(),V("article",{key:N2.key,class:"home-balance-modal-item",style:o0(K(N2))},[S("div",dI,[S("strong",null,l2(N2.name),1),S("span",null,l2(N2.status),1)]),S("div",fI,[S("strong",null,l2(Z(N2.value)),1),t2[10]||(t2[10]=S("em",null,"%",-1))]),t2[11]||(t2[11]=S("div",{class:"home-balance-modal-track"},[S("i")],-1)),S("p",null,l2(N2.extra),1)],4))),128))])])])):U3("",!0)]))}},Ch="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",SI=""+new URL("pathLine2-d4134d4b-balabala-1783995319167.png",import.meta.url).href,wI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",bI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",TI=""+new URL("ocean-bg-8c848b8f-balabala-1783995319167.png",import.meta.url).href,CI=""+new URL("rotationBorder1-2ce8e0ef-balabala-1783995319167.png",import.meta.url).href,AI=""+new URL("rotationBorder2-7496b968-balabala-1783995319167.png",import.meta.url).href,_I=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1783995319167.png",import.meta.url).href,xI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",MI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",PI=""+new URL("huiguang-3c5dfda5-balabala-1783995319167.png",import.meta.url).href,kI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",EI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",NI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",RI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",LI=""+new URL("focus_bg-b6803e2d-balabala-1783995319167.png",import.meta.url).href,II="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",FI=""+new URL("focus_move_bg-cf41417a-balabala-1783995319167.png",import.meta.url).href,Fs=new Map;class Br{constructor(e={}){this.options=B2({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),n=BI(e,()=>this.createAssetList());this.instance=n.instance,this.ready=n.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:Ch},{type:"Texture",name:"pathLine",path:Ch},{type:"Texture",name:"pathLine2",path:wI},{type:"Texture",name:"pathLine3",path:SI},{type:"File",name:"china",path:K4(gl)},{type:"File",name:"mapJson",path:K4(ex)},{type:"File",name:"mapStroke",path:K4(gl)},{type:"Texture",name:"huiguang",path:PI},{type:"Texture",name:"rotationBorder1",path:CI},{type:"Texture",name:"rotationBorder2",path:AI},{type:"Texture",name:"guangquan1",path:xI},{type:"Texture",name:"guangquan2",path:MI},{type:"Texture",name:"chinaBlurLine",path:_I},{type:"Texture",name:"ocean",path:TI},{type:"Texture",name:"side",path:bI},{type:"Texture",name:"arrow",path:kI},{type:"Texture",name:"point",path:EI},{type:"Texture",name:"focusArrows",path:NI},{type:"Texture",name:"focusBar",path:RI},{type:"Texture",name:"focusBg",path:LI},{type:"Texture",name:"focusMidQuan",path:II},{type:"Texture",name:"focusMoveBg",path:FI}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:K4(tx)}),e}}function BI(t,e){if(Fs.has(t))return Fs.get(t);const n=new pM({cloneTextures:!0});n.addLoader(ha,"FileLoader");const a=n.loadAll(e()),i={instance:n,ready:a};return Fs.set(t,i),i}const DI="/jsyApi/api/map/ndvi_timeline";function GI(){return L3(this,null,function*(){const t=yield fetch(DI,{credentials:"include",headers:{Accept:"application/json"}});if(!t.ok){const a=new Error(`HTTP ${t.status}`);throw a.status=t.status,a}const e=yield t.json().catch(()=>({}));if((e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"){const a=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"NDVI 时间轴未授权");throw a.status=401,a}const n=Array.isArray(e==null?void 0:e.data)?e.data:Array.isArray(e)?e:[];return UI(n)})}function UI(t=[]){const e=new Set;return t.map((n,a)=>{const i=OI(Ah(n,["url","layerName","layer_name","layer","name"]));if(!i)return null;const r=Ah(n,["date","month","time","label"])||i,o=jI(r);return{key:`${i}-${r||a}`,label:o,date:String(r),layerName:i,source:n}}).filter(Boolean).filter(n=>e.has(n.key)?!1:(e.add(n.key),!0))}function Ah(t,e){for(const n of e)if((t==null?void 0:t[n])!==void 0&&(t==null?void 0:t[n])!==null&&(t==null?void 0:t[n])!=="")return t[n]}function OI(t){const e=String(t||"").trim();return e?e.includes(":")||/^https?:\/\//i.test(e)?e:`ne:${e}`:""}function jI(t){const e=String(t||"").trim();if(!e)return"";const n=e.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return n?`${n[1]}.${String(Number(n[2])).padStart(2,"0")}`:e}const zI={key:0,class:"layer-panel-list"},YI=["onClick"],$I=["onClick"],WI={key:0,class:"layer-panel-empty"},VI={class:"layer-panel-legend"},HI=["disabled","title","onClick"],KI={class:"legend-name"},qI={key:0,class:"legend-check"},JI={key:1,class:"layer-panel-empty is-legend"},Dr={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:232},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(t,{emit:e}){const n=t,a=e,i=r2(()=>Array.isArray(n.layers)?n.layers:N8(n.topicKey)),r=r2(()=>Array.isArray(n.overlayLayers)?n.overlayLayers:[]),o=r2(()=>Array.isArray(n.legends)?n.legends:[]),s=r2(()=>Array.isArray(n.modelValue)?n.modelValue.map(String).filter(Boolean):n.modelValue?[String(n.modelValue)]:[]),u=r2(()=>Array.isArray(n.overlayKeys)?n.overlayKeys.map(String).filter(Boolean):[]),m=r2(()=>o.value.filter(y2).length>1),p=r2(()=>o.value.length===1),f=r2(()=>n.legendOnly?"图例":n.compact?"图层":"图层控制"),g=r2(()=>{const S2=n.legendOnly?0:i.value.length+r.value.length,Q2=Math.ceil(o.value.length/2),X2=S2?S2*32:30,c3=o.value.length?24+Math.max(28,Q2*28):28;return Math.max(132,Math.min(224,48+X2+c3))}),C=r2(()=>n.compact?n.height||g.value:n.height?n.height:430);function F(S2,Q2){var X2,c3;if((c3=(X2=S2.currentTarget)==null?void 0:X2.blur)==null||c3.call(X2),n.multiple){const p3=new Set(s.value);p3.has(Q2)?p3.delete(Q2):p3.add(Q2),a("update:modelValue",Array.from(p3));return}a("update:modelValue",n.modelValue===Q2?"":Q2)}function z(S2){return s.value.includes(String(S2))}function Y(S2,Q2){var c3,p3;(p3=(c3=S2.currentTarget)==null?void 0:c3.blur)==null||p3.call(c3);const X2=new Set(u.value);X2.has(Q2)?X2.delete(Q2):X2.add(Q2),a("update:overlayKeys",Array.from(X2))}function i2(S2){return u.value.includes(String(S2))}function v2(S2,Q2){var X2,c3;(c3=(X2=S2.currentTarget)==null?void 0:X2.blur)==null||c3.call(X2),A2(Q2)&&a("update:selectedLegendKey",n.selectedLegendKey===Q2.key?"":Q2.key)}function y2(S2){return(S2==null?void 0:S2.selectable)===!1?!1:!!(S2!=null&&S2.key&&(S2.cqlFilter||S2.rankingValueKey))}function A2(S2){return m.value&&y2(S2)}return(S2,Q2)=>(O(),_e(U0,{title:f.value,width:t.width,height:C.value},{default:M0(()=>[S("div",{class:o1(["layer-panel",{"is-legend-only":t.legendOnly,"is-compact":t.compact}])},[t.legendOnly?U3("",!0):(O(),V("div",zI,[(O(!0),V(Y3,null,e1(i.value,X2=>(O(),V("button",{key:X2.key,class:o1(["layer-panel-item",{"is-active":z(X2.key),"is-checked":z(X2.key)}]),type:"button",onMousedown:Q2[0]||(Q2[0]=ue(()=>{},["prevent"])),onClick:c3=>F(c3,X2.key)},[S("span",null,l2(X2.name),1),Q2[3]||(Q2[3]=S("i",null,null,-1))],42,YI))),128)),(O(!0),V(Y3,null,e1(r.value,X2=>(O(),V("button",{key:X2.key,class:o1(["layer-panel-item is-overlay",{"is-active":i2(X2.key),"is-checked":i2(X2.key)}]),type:"button",onMousedown:Q2[1]||(Q2[1]=ue(()=>{},["prevent"])),onClick:c3=>Y(c3,X2.key)},[S("span",null,l2(X2.name),1),Q2[4]||(Q2[4]=S("i",null,null,-1))],42,$I))),128)),!i.value.length&&!r.value.length?(O(),V("div",WI,"暂无图层配置")):U3("",!0)])),S("div",VI,[Q2[5]||(Q2[5]=S("div",{class:"layer-panel-section-title"},"图例",-1)),o.value.length?(O(),V("div",{key:0,class:o1(["layer-panel-legend-grid",{"is-single":p.value}])},[(O(!0),V(Y3,null,e1(o.value,X2=>(O(),V("button",{key:X2.key||X2.name,class:o1(["layer-panel-legend-row",{"is-selected":A2(X2)&&X2.key===t.selectedLegendKey,"is-checkable":A2(X2),"is-disabled":!A2(X2)}]),type:"button",disabled:!A2(X2),title:X2.name,onMousedown:Q2[2]||(Q2[2]=ue(()=>{},["prevent"])),onClick:c3=>v2(c3,X2)},[S("span",{class:"legend-swatch",style:o0({backgroundColor:X2.fillColor,borderColor:X2.strokeColor||X2.fillColor})},null,4),S("span",KI,l2(X2.name),1),A2(X2)?(O(),V("i",qI)):U3("",!0)],42,HI))),128))],2)):(O(),V("div",JI,"暂无图例"))])],2)]),_:1},8,["title","width","height"]))}};const QI={class:"grassland-ndvi-timeline-head"},ZI={key:0,class:"grassland-ndvi-timeline-state"},XI={key:1,class:"grassland-ndvi-timeline-state"},eF={key:2,class:"grassland-ndvi-timeline-body"},tF=["aria-checked","title","onClick"],nF={class:"grassland-ndvi-timeline-label"},aF=42,iF=28,rF={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:e}){const n=t,a=e,i=r2(()=>n.items.findIndex(v2=>v2.key===n.modelValue)),r=r2(()=>i.value===-1?Math.max(0,n.items.length-1):i.value),o=r2(()=>n.items[r.value]||null),s=r2(()=>n.loading?"加载中":"未选择"),u=r2(()=>n.items.length>7),m=r2(()=>u.value?iF:aF),p=r2(()=>z(r.value)),f=r2(()=>Y(r.value));function g(v2){if(!n.items.length)return;const y2=Math.min(n.items.length-1,Math.max(0,r.value+v2));a("update:modelValue",n.items[y2].key)}function C(v2){!v2||v2.key===n.modelValue||a("update:modelValue",v2.key)}function F(v2){return!n.items.length||v2<0?0:n.items.length===1?.5:v2/(n.items.length-1)}function z(v2){const y2=F(v2),A2=i2(y2*100),S2=m.value*(1-y2*2);return`calc(${A2}% ${S2<0?"-":"+"} ${i2(Math.abs(S2))}px)`}function Y(v2){const y2=F(v2);return y2<=0?"0px":`calc(${i2(y2*100)}% - ${i2(m.value*2*y2)}px)`}function i2(v2){return Number(v2.toFixed(4)).toString()}return(v2,y2)=>{var A2;return O(),V("div",{class:o1(["grassland-ndvi-timeline",{"is-dense":u.value}])},[S("div",QI,[y2[2]||(y2[2]=S("span",null,"草地健康/退化",-1)),S("strong",null,l2(((A2=o.value)==null?void 0:A2.label)||s.value),1)]),t.loading?(O(),V("div",ZI,"加载月份数据")):t.items.length?(O(),V("div",eF,[S("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:y2[0]||(y2[0]=S2=>g(-1))},"‹"),S("div",{class:"grassland-ndvi-timeline-track",style:o0({"--timeline-active-left":p.value,"--timeline-fill-width":f.value,"--timeline-edge-offset":`${m.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[y2[4]||(y2[4]=S("div",{class:"grassland-ndvi-timeline-line"},null,-1)),y2[5]||(y2[5]=S("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),y2[6]||(y2[6]=S("div",{class:"grassland-ndvi-timeline-thumb"},[S("i")],-1)),(O(!0),V(Y3,null,e1(t.items,(S2,Q2)=>{var X2,c3;return O(),V("button",{key:S2.key,class:o1(["grassland-ndvi-timeline-mark",{"is-active":S2.key===((X2=o.value)==null?void 0:X2.key),"is-past":Q2<=r.value,"is-staggered":u.value&&Q2%2===1}]),type:"button",role:"radio","aria-checked":S2.key===((c3=o.value)==null?void 0:c3.key),style:o0({left:z(Q2)}),title:S2.date,onClick:p3=>C(S2)},[y2[3]||(y2[3]=S("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),S("span",nF,l2(S2.label),1)],14,tF)}),128))],4),S("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:y2[1]||(y2[1]=S2=>g(1))},"›")])):(O(),V("div",XI,"暂无月份数据"))],2)}}},oF=Na(rF,[["__scopeId","data-v-86212a95"]]);const sF={class:"forest-grass-wet"},lF={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},uF={class:"fgw-left"},cF={class:"fgw-side-stack is-left"},dF={class:"fgw-right"},fF={class:"fgw-side-stack is-right"},hF={key:1,class:"fgw-ndvi-timeline"},mF={class:"fgw-bottom-topic"},pF={key:0,class:"loading"},gF={class:"loading-progress"},yF={class:"value"},vF={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=a3(null),o=a3(E8[0].key),s=a3(""),u=a3([]),m=a3([]),p=a3("idle"),f=a3(!1),g=a3({title:"业务统计",rows:[]}),C=a3({title:"业务统计",rows:[]}),F=a3([]),z=a3([]),Y=a3(null),i2=a3(""),v2=a3(null),y2=a3(!1),A2=a3(!1),S2=a3(null),Q2=a3(0),X2=a3(a.showLoading),c3=a3([]),p3=a3("idle"),l3=a3(""),b3=a3({type:"idle",text:"等待 GeoServer 图层加载"});let N3=null,_3=!1,J3=!1,R3=!1,Z3=null,M1=0,b1=0,j1=0,a1=0,G1=!1,s0=!1;const i0={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},r0=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),q1=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],h3=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(F2=>F2.toLowerCase()));r2(()=>bf(o.value));const O3=r2(()=>N8(o.value)),V3=r2(()=>q1.map(F2=>x2(F2)).filter(Boolean)),i3=r2(()=>o.value==="overview"?V3.value:O3.value),U2=r2({get(){return o.value==="overview"?u.value:s.value},set(F2){if(o.value==="overview"){u.value=Array.isArray(F2)?F2.map(String).filter(Boolean):[];return}s.value=String(F2||"")}}),D3=r2(()=>s.value?j5(o.value,s.value):null),F3=r2(()=>o.value==="grassland"&&s.value==="grassland-health"),u1=r2(()=>F3.value),A1=r2(()=>c3.value.find(F2=>F2.key===l3.value)||null),S3=r2(()=>{var F2;return(((F2=D3.value)==null?void 0:F2.legends)||[]).find(N=>N.key===i2.value)||null}),E=r2(()=>V3.value.flatMap(F2=>F2.legends||[])),C3=r2(()=>{var F2;return o.value==="overview"?E.value:((F2=D3.value)==null?void 0:F2.legends)||[]}),H3=r2(()=>i3.value.length>0),_1=r2(()=>i3.value.length<=6&&C3.value.length<=8),s1=r2(()=>{if(!_1.value)return 430;const F2=Math.max(1,i3.value.length),N=Math.max(1,Math.ceil(C3.value.length/2)),_=F2*32,d=24+N*28;return Math.max(228,Math.min(390,48+_+d))}),B1=r2(()=>{var d;if(o.value==="overview"){const h=new Set(u.value),y=V3.value.filter(w=>h.has(w.key));return j2(y)}const F2=D3.value;if(!F2)return null;let N=(d=S3.value)!=null&&d.cqlFilter?t3(B2({},F2),{cqlFilter:S3.value.cqlFilter,activeLegend:S3.value,name:S3.value.name||F2.name}):F2;const _=A1.value;return F3.value&&(_!=null&&_.layerName)&&(N=t3(B2({},N),{layerName:_.layerName,name:`${F2.name} ${_.label}`,timelineDate:_.label,timelineItem:_})),N}),U1=a3(typeof window=="undefined"?1080:window.innerHeight),R1=Tn.sideCardWidth;r2(()=>Tn.sideCardGap);const N1=r2(()=>j8(U1.value)),G0=r2(()=>M9(N1.value,2)),T0=r2(()=>!!S2.value),S0=r2(()=>{if(A2.value||y2.value||!v2.value)return 186;const F2=M3(v2.value);return Math.min(480,Math.max(300,86+Math.min(F2,12)*34))}),oe=r2(()=>{if(!S2.value)return{};const F2=460,N=S0.value,_=24,d=z0(S2.value),h=104,y=36,w=Math.min(Math.max(d.x-F2/2,_),1920-F2-_),x=Math.min(Math.max(d.y-N-y,h),1080-N-_);return{left:`${w}px`,top:`${x}px`,right:"auto",bottom:"auto"}});function z0(F2){const N=document.querySelector(".forest-grass-wet"),_=N==null?void 0:N.getBoundingClientRect();return!(_!=null&&_.width)||!(_!=null&&_.height)?F2:{x:(F2.x-_.left)/_.width*1920,y:(F2.y-_.top)/_.height*1080}}function P0(){U1.value=typeof window=="undefined"?1080:window.innerHeight}function x2({topicKey:F2,layerKey:N,name:_,legendName:d}){var w;const h=j5(F2,N);if(!h||h.key!==N)return null;const y=((w=h.legends)==null?void 0:w[0])||{};return t3(B2({},h),{name:_,overviewTopicKey:F2,legends:[t3(B2({},y),{key:`overview-${N}`,name:d,selectable:!1})]})}function j2(F2=[]){const N=F2.filter(Boolean);if(!N.length)return null;const[_,...d]=N;return t3(B2({},_),{overlayLayers:d})}jn(()=>{P0(),window.addEventListener("resize",P0),document.addEventListener("pointerdown",We,!0),H2(),F0(o.value,""),ve(o.value,"")}),On(()=>{_3=!0,Z3&&window.clearTimeout(Z3),window.removeEventListener("resize",P0),document.removeEventListener("pointerdown",We,!0)}),ie(o,F2=>{G1=!0,i2.value="",s.value="",F2==="overview"&&(u.value=[]),Fe(),b3.value={type:"idle",text:"等待 GeoServer 图层加载"},F0(F2,""),ve(F2,"",null),ae(()=>{G1=!1})}),ie(s,()=>{G1||(s0=!0,i2.value="",Fe(),b3.value={type:s.value?"loading":"idle",text:s.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},o.value!=="woodland"&&F0(o.value,s.value),ve(o.value,s.value,null),ae(()=>{s0=!1}))}),ie(u,()=>{o.value==="overview"&&(i2.value="",Fe(),b3.value={type:u.value.length?"loading":"idle",text:u.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},Y.value=be("overview",u.value.join(",")))},{deep:!0}),ie(i2,()=>{G1||s0||(Fe(),ve(o.value,s.value,S3.value))}),ie(F3,F2=>{if(F2){O0();return}l3.value=""}),ie(l3,()=>{F3.value&&Fe()}),ie(()=>a.active,F2=>{var N,_,d,h;r.value&&(F2?(w3(),(_=(N=r.value).resume)==null||_.call(N)):(h=(d=r.value).pause)==null||h.call(d))});function H2(){var _;N3=new Br;const F2={progress:0};N3.instance.on("onProgress",(d,h,y)=>{const w=Math.floor(h/y*100);nn.to(F2,{progress:w,onUpdate:()=>{Q2.value=Math.floor(F2.progress)}})});const N=()=>{_3||J3||(J3=!0,w3())};N3.instance.on("onLoad",N),(_=N3.ready)==null||_.then(N).catch(()=>{_3||(b3.value={type:"error",text:"地图资源加载失败"})})}function w3(){_3||!a.active||!J3||R3||(R3=!0,Z3&&window.clearTimeout(Z3),Z3=window.setTimeout(()=>{Z3=null,d1()},600))}function d1(F2=0){return L3(this,null,function*(){var _,d,h,y,w;if(_3)return;if(!a.active){R3=!1;return}if(yield ae(),!a.active){R3=!1;return}if(!!((d=(_=r.value)==null?void 0:_.loadMap)!=null&&d.call(_,N3)||(y=(h=r.value)==null?void 0:h.hasMap)!=null&&y.call(h))){yield Ze(),yield ae(),(w=r.value)==null||w.play();return}if(F2<24){window.setTimeout(()=>d1(F2+1),120);return}R3=!1})}function O1(){Z3&&(window.clearTimeout(Z3),Z3=null)}function V1(){var F2,N,_,d;(N=(F2=r.value)==null?void 0:F2.resume)==null||N.call(F2),(d=(_=r.value)==null?void 0:_.refreshView)==null||d.call(_)}function I0(){var F2,N;if(Fe(),b3.value={type:"loading",text:"地图正在复位"},(N=(F2=r.value)==null?void 0:F2.hasMap)!=null&&N.call(F2)){V1(),b3.value={type:"success",text:"地图已复位"};return}O1(),R3=!1,ae(()=>{w3()})}e({refreshMapView:V1,resetMap:I0});function F0(_){return L3(this,arguments,function*(F2,N=s.value){const d=F2==="woodland"?"":N,h=++b1;f.value=!0,p.value="loading";const y=yield _8(F2,d);_3||h!==b1||F2===o.value&&(F2!=="woodland"&&(d||"")!==(s.value||"")||Y0(y,F2))})}function O0(F2=!1){return L3(this,null,function*(){if(!F3.value)return;if(!F2&&c3.value.length){Z1();return}const N=++j1;p3.value="loading";try{const _=yield GI();if(_3||N!==j1)return;c3.value=_,p3.value=_.length?"success":"empty",Z1()}catch(_){if(_3||N!==j1)return;c3.value=[],l3.value="",p3.value="error"}})}function Z1(){if(!c3.value.length){l3.value="";return}c3.value.some(N=>N.key===l3.value)||(l3.value=c3.value[c3.value.length-1].key)}function Y0(F2,N){var d,h,y;const _=d0(F2);m.value=_.core||[],g.value=_.left||{title:"业务统计",rows:[]},C.value=_.right||{title:"业务统计",rows:[]},F.value=(d=_.leftPanels)!=null&&d.length?_.leftPanels:[g.value],z.value=(h=_.rightPanels)!=null&&h.length?_.rightPanels:[C.value],p.value=_.status,f.value=!1,i("topic-stats",{topicKey:N,topicName:bf(N).name,items:((y=_.top)!=null&&y.length?_.top:_.core||[]).slice(0,4)})}function d0(F2){return F2||{}}function de(F2,N){return`${o.value}-${N}-${(F2==null?void 0:F2.key)||(F2==null?void 0:F2.title)||"panel"}`}function Re(F2){var _;const N=((_=F2==null?void 0:F2.rows)==null?void 0:_.length)||0;return(F2==null?void 0:F2.span)===1?!1:(F2==null?void 0:F2.span)===2?!0:(F2==null?void 0:F2.type)==="spotlight"||(F2==null?void 0:F2.type)==="metric"||(F2==null?void 0:F2.type)==="column"&&N<=5?!1:(F2==null?void 0:F2.type)==="rank"&&N>4||(F2==null?void 0:F2.type)==="split"&&N>4||(F2==null?void 0:F2.type)==="donut"&&N>5||(F2==null?void 0:F2.type)==="structure"&&N>4||(F2==null?void 0:F2.type)==="bar"&&N>4||(F2==null?void 0:F2.type)==="line"&&N>6}function H1(F2){return Re(F2)?G0.value:N1.value}function M3(F2){const N=(F2==null?void 0:F2.properties)||{};return Object.keys(N).filter(d=>d2(d,N[d])).length}function d2(F2,N){return N==null||N===""||Array.isArray(N)||typeof N=="object"?!1:!h3.has(String(F2||"").toLowerCase())}function $2(){if(o.value==="overview"){const F2=new Set(u.value);return V3.value.filter(N=>F2.has(N.key)).slice().reverse()}return D3.value?[D3.value]:[]}function z3(F2={}){const N=String(F2.overviewTopicKey||o.value||"").toLowerCase(),_=`${F2.key||""} ${F2.layerName||""} ${N}`.toLowerCase();return _.includes("basic-grassland")||_.includes("t_basic_grassland")?"basicGrassland":N==="woodland"||_.includes("woodland")||_.includes("t_woodland")?"woodland":N==="wetland"||_.includes("wetland")||_.includes("shidi")?"wetland":N==="grassland"||_.includes("grassland")||_.includes("caodi")?"grassland":""}function d3(F2={}){const N=$3(F2.lng),_=$3(F2.lat);return N===""||_===""?"":`POINT(${N} ${_})`}function $3(F2){const N=Number(F2);return Number.isFinite(N)?N.toFixed(8).replace(/\.?0+$/,""):""}function X3(){return L3(this,arguments,function*(F2={}){var w,x,k,a2,e2,s2;const N=Number((w=F2==null?void 0:F2.lngLat)==null?void 0:w.lng),_=Number((x=F2==null?void 0:F2.lngLat)==null?void 0:x.lat),d=$2();if(!Number.isFinite(N)||!Number.isFinite(_)||!d.length){Fe();return}const h=++a1,y=F2.screen||{x:960,y:540};S2.value=null,v2.value=null,y2.value=!1,A2.value=!0,(a2=(k=r.value)==null?void 0:k.clearSelectedFeature)==null||a2.call(k);try{for(const J of d){const H=yield P2(J,{lng:N,lat:_});if(h!==a1||_3)return;if(H){v2.value=H,S2.value=y,y2.value=!1,(s2=(e2=r.value)==null?void 0:e2.highlightFeature)==null||s2.call(e2,H);return}}h===a1&&Fe()}catch(J){h===a1&&Fe()}finally{h===a1&&(A2.value=!1)}})}function P2(F2,N){return L3(this,null,function*(){const _=z3(F2);if(!_)return null;const d=d3(N);let h=null;_==="grassland"?h=yield Ip({wkt:d}):_==="wetland"?h=yield Fp({wkt:d}):_==="woodland"?h=yield wp(d):_==="basicGrassland"&&(h=yield ON(d));const y=n3(h,_);if(!m1(y))return null;const w=f0(y,F2,N,_);return M3(w)>0?w:null})}function n3(F2,N){var d,h,y,w,x;const _=[F2==null?void 0:F2[N],F2==null?void 0:F2.grassland,F2==null?void 0:F2.wetland,F2==null?void 0:F2.woodland,F2==null?void 0:F2.basicGrassland,(d=F2==null?void 0:F2.data)==null?void 0:d[N],(h=F2==null?void 0:F2.data)==null?void 0:h.grassland,(y=F2==null?void 0:F2.data)==null?void 0:y.wetland,(w=F2==null?void 0:F2.data)==null?void 0:w.woodland,(x=F2==null?void 0:F2.data)==null?void 0:x.basicGrassland,F2==null?void 0:F2.data,F2==null?void 0:F2.result,F2];for(const k of _){const a2=s3(k);if(a2)return a2}return null}function s3(F2){return Array.isArray(F2)?F2.find(N=>N&&typeof N=="object")||null:F2&&typeof F2=="object"?F2:null}function m1(F2){return!F2||typeof F2!="object"?!1:Array.isArray(F2.dyColumn)&&F2.dyColumn.some(w1)?!0:Object.keys(F2).some(N=>d2(N,F2[N]))}function w1(F2={}){const N=F2==null?void 0:F2.value;return N==null||N===""?!1:!!String((F2==null?void 0:F2.field)||(F2==null?void 0:F2.title)||"").trim()}function f0(F2,N,_,d){const h=B0(F2),y=g0(F2);return{id:F2.id||F2.patchNo||F2.patch_no||F2.landNumber||F2.land_number||`${d}-${_.lng}-${_.lat}`,properties:h,feature:{type:"Feature",properties:h,geometry:y},geometry:y,layer:N,lngLat:_}}function g0(F2={}){return F2.geometry||F2.geom||F2.wkt||F2.the_geom||F2.theGeom||F2.geo||F2.geometryWkt||F2.geometry_wkt||F2.shape||null}function B0(F2={}){const N=B2({},F2);return(Array.isArray(F2.dyColumn)?F2.dyColumn:[]).forEach(d=>{const h=d==null?void 0:d.value;if(h==null||h==="")return;const y=i0[String((d==null?void 0:d.title)||"").trim()],w=String((d==null?void 0:d.field)||"").trim();[w,p0(w),y].filter(Boolean).forEach(k=>{(N[k]===void 0||N[k]===null||N[k]==="")&&(N[k]=h)})}),N}function p0(F2){return String(F2||"").replace(/[A-Z]/g,N=>`_${N.toLowerCase()}`)}function ve(d,h){return L3(this,arguments,function*(F2,N,_=S3.value){const y=++M1;if(!N||!u0(N,_)){Y.value=be(F2,N);return}const w=yield SR(F2,N,_);_3||y!==M1||F2!==o.value||N!==s.value||((_==null?void 0:_.key)||"")===i2.value&&(Y.value=t3(B2({},w),{hideTownLabelStats:!0}))})}function u0(F2,N=null){return!!(N!=null&&N.key)||r0.has(F2)}function be(F2,N){return{status:"disabled",topicKey:F2,layerKey:N,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function xe(F2){var _,d;const N=(d=(_=F2==null?void 0:F2.feature)!=null?_:F2)!=null?d:null;if(!N||M3(N)<=0){Fe();return}v2.value=N,y2.value=!1,F2!=null&&F2.screen&&(S2.value=F2.screen)}function Te(F2){b3.value=F2}function Fe(){var F2,N;a1+=1,v2.value=null,y2.value=!1,A2.value=!1,S2.value=null,(N=(F2=r.value)==null?void 0:F2.clearSelectedFeature)==null||N.call(F2)}function We(F2){if(!T0.value)return;const N=document.querySelector(".fgw-map-feature-info"),_=F2.target;N&&_ instanceof Node&&N.contains(_)||Fe()}function Ze(){return X2.value?new Promise(F2=>{nn.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{X2.value=!1,F2()}})}):Promise.resolve()}return(F2,N)=>(O(),V("div",sF,[S1(z8,{ref_key:"mapSceneRef",ref:r,"active-layer":B1.value,"map-ranking":Y.value,"admin-boundary-line-scale":2.4,"initial-zoom":9.55,"hide-town-label-stats":"","enable-imagery-feature-pick":!1,"enable-town-polygon-pick":!1,onFeatureLoading:N[0]||(N[0]=_=>A2.value=_),onFeatureInfo:xe,onMapClick:X3,onLayerStatus:Te},null,8,["active-layer","map-ranking"]),S("div",lF,[S("div",uF,[S("div",cF,[(O(!0),V(Y3,null,e1(F.value,_=>(O(),_e(U0,{key:de(_,"left"),class:o1(["fgw-side-card left-card",{"is-double":Re(_)}]),title:_.title,width:D1(R1),height:H1(_)},{default:M0(()=>[S1(wn,{panel:_,compact:"","column-label-standard":""},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),S("div",dF,[S("div",fF,[(O(!0),V(Y3,null,e1(z.value,_=>(O(),_e(U0,{key:de(_,"right"),class:o1(["fgw-side-card right-card",{"is-double":Re(_)}]),title:_.title,width:D1(R1),height:H1(_)},{default:M0(()=>[S1(wn,{panel:_,compact:"","column-label-standard":""},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),H3.value?(O(),V("div",{key:0,class:"fgw-map-layer-tools",style:o0({height:`${s1.value}px`})},[S1(Dr,{modelValue:U2.value,"onUpdate:modelValue":N[1]||(N[1]=_=>U2.value=_),"selected-legend-key":i2.value,"onUpdate:selectedLegendKey":N[2]||(N[2]=_=>i2.value=_),"topic-key":o.value,layers:i3.value,legends:C3.value,multiple:o.value==="overview",width:248,height:s1.value,compact:_1.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):U3("",!0),u1.value?(O(),V("div",hF,[S1(oF,{modelValue:l3.value,"onUpdate:modelValue":N[3]||(N[3]=_=>l3.value=_),items:c3.value,loading:p3.value==="loading"},null,8,["modelValue","items","loading"])])):U3("",!0),T0.value?(O(),V("div",{key:2,class:"fgw-map-feature-info",style:o0(oe.value)},[S1(Ia,{feature:v2.value,empty:y2.value,loading:A2.value,width:460,height:S0.value},null,8,["feature","empty","loading","height"])],4)):U3("",!0),S("div",mF,[S1(Fa,{modelValue:o.value,"onUpdate:modelValue":N[4]||(N[4]=_=>o.value=_)},null,8,["modelValue"])])]),X2.value?(O(),V("div",pF,[N[6]||(N[6]=fa('
LOADING
',1)),S("div",gF,[S("span",yF,l2(Q2.value),1),N[5]||(N[5]=S("span",{class:"unit"},"%",-1))])])):U3("",!0)]))}},SF="/openApi";function wF(t){return L3(this,null,function*(){const e=yield zn(`${SF}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:t},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:t})}),n=D0(e);return TF(Array.isArray(n)?n[0]||{}:n||{})})}const bF={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function TF(t={}){return!t||typeof t!="object"?{}:Object.entries(t).reduce((e,[n,a])=>{e[n]=a;const i=bF[n];return i&&e[i]===void 0&&(e[i]=a),e},{})}function CF(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var e=1;e<=60;++e)t("EPSG:"+(32600+e),"+proj=utm +zone="+e+" +datum=WGS84 +units=m"),t("EPSG:"+(32700+e),"+proj=utm +zone="+e+" +south +datum=WGS84 +units=m");t("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}var E9=1,N9=2,x8=3,AF=4,Nl=5,_h=6378137,_F=6356752314e-3,xh=.0066943799901413165,ia=484813681109536e-20,p1=Math.PI/2,xF=.16666666666666666,MF=.04722222222222222,PF=.022156084656084655,E1=1e-10,at=.017453292519943295,Mn=57.29577951308232,ke=Math.PI/4,Aa=Math.PI*2,dt=3.14159265359,kn={};kn.greenwich=0;kn.lisbon=-9.131906111111;kn.paris=2.337229166667;kn.bogota=-74.080916666667;kn.madrid=-3.687938888889;kn.rome=12.452333333333;kn.bern=7.439583333333;kn.jakarta=106.807719444444;kn.ferro=-17.666666666667;kn.brussels=4.367975;kn.stockholm=18.058277777778;kn.athens=23.7163375;kn.oslo=10.722916666667;const kF={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var Mh=/[\s_\-\/\(\)]/g;function $5(t,e){if(t[e])return t[e];for(var n=Object.keys(t),a=e.toLowerCase().replace(Mh,""),i=-1,r,o;++iArray.isArray(a)&&a[0]==="ID");return n&&n.length>=3?{authority:n[1],code:parseInt(n[2],10)}:null}static convertUnit(e,n="unit"){if(!e||e.length<3)return{type:n,name:"unknown",conversion_factor:null};const a=e[1],i=parseFloat(e[2])||null,r=e.find(s=>Array.isArray(s)&&s[0]==="ID"),o=r?{authority:r[1],code:parseInt(r[2],10)}:null;return{type:n,name:a,conversion_factor:i,id:o}}static convertAxis(e){const n=e[1]||"Unknown";let a;const i=n.match(/^\((.)\)$/);if(i){const m=i[1].toUpperCase();if(m==="E")a="east";else if(m==="N")a="north";else if(m==="U")a="up";else if(e[2])a=e[2];else throw new Error(`Unknown axis abbreviation: ${m}`)}else a=e[2]||"unknown";const r=e.find(m=>Array.isArray(m)&&m[0]==="ORDER"),o=r?parseInt(r[1],10):null,s=e.find(m=>Array.isArray(m)&&(m[0]==="LENGTHUNIT"||m[0]==="ANGLEUNIT"||m[0]==="SCALEUNIT")),u=this.convertUnit(s);return{name:n,direction:a,unit:u,order:o}}static extractAxes(e){return e.filter(n=>Array.isArray(n)&&n[0]==="AXIS").map(n=>this.convertAxis(n)).sort((n,a)=>(n.order||0)-(a.order||0))}static convert(e,n={}){switch(e[0]){case"PROJCRS":n.type="ProjectedCRS",n.name=e[1],n.base_crs=e.find(g=>Array.isArray(g)&&g[0]==="BASEGEOGCRS")?this.convert(e.find(g=>Array.isArray(g)&&g[0]==="BASEGEOGCRS")):null,n.conversion=e.find(g=>Array.isArray(g)&&g[0]==="CONVERSION")?this.convert(e.find(g=>Array.isArray(g)&&g[0]==="CONVERSION")):null;const a=e.find(g=>Array.isArray(g)&&g[0]==="CS");a&&(n.coordinate_system={type:a[1],axis:this.extractAxes(e)});const i=e.find(g=>Array.isArray(g)&&g[0]==="LENGTHUNIT");if(i){const g=this.convertUnit(i);n.coordinate_system.unit=g}n.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":n.type=e[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",n.name=e[1];const r=e.find(g=>Array.isArray(g)&&(g[0]==="DATUM"||g[0]==="ENSEMBLE"));if(r){const g=this.convert(r);r[0]==="ENSEMBLE"?n.datum_ensemble=g:n.datum=g;const C=e.find(F=>Array.isArray(F)&&F[0]==="PRIMEM");C&&C[1]!=="Greenwich"&&(g.prime_meridian={name:C[1],longitude:parseFloat(C[2])})}n.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},n.id=this.getId(e);break;case"DATUM":n.type="GeodeticReferenceFrame",n.name=e[1],n.ellipsoid=e.find(g=>Array.isArray(g)&&g[0]==="ELLIPSOID")?this.convert(e.find(g=>Array.isArray(g)&&g[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":n.type="DatumEnsemble",n.name=e[1],n.members=e.filter(g=>Array.isArray(g)&&g[0]==="MEMBER").map(g=>({type:"DatumEnsembleMember",name:g[1],id:this.getId(g)}));const o=e.find(g=>Array.isArray(g)&&g[0]==="ENSEMBLEACCURACY");o&&(n.accuracy=parseFloat(o[1]));const s=e.find(g=>Array.isArray(g)&&g[0]==="ELLIPSOID");s&&(n.ellipsoid=this.convert(s)),n.id=this.getId(e);break;case"ELLIPSOID":n.type="Ellipsoid",n.name=e[1],n.semi_major_axis=parseFloat(e[2]),n.inverse_flattening=parseFloat(e[3]),e.find(g=>Array.isArray(g)&&g[0]==="LENGTHUNIT")&&this.convert(e.find(g=>Array.isArray(g)&&g[0]==="LENGTHUNIT"),n);break;case"CONVERSION":n.type="Conversion",n.name=e[1],n.method=e.find(g=>Array.isArray(g)&&g[0]==="METHOD")?this.convert(e.find(g=>Array.isArray(g)&&g[0]==="METHOD")):null,n.parameters=e.filter(g=>Array.isArray(g)&&g[0]==="PARAMETER").map(g=>this.convert(g));break;case"METHOD":n.type="Method",n.name=e[1],n.id=this.getId(e);break;case"PARAMETER":n.type="Parameter",n.name=e[1],n.value=parseFloat(e[2]),n.unit=this.convertUnit(e.find(g=>Array.isArray(g)&&(g[0]==="LENGTHUNIT"||g[0]==="ANGLEUNIT"||g[0]==="SCALEUNIT"))),n.id=this.getId(e);break;case"BOUNDCRS":n.type="BoundCRS";const u=e.find(g=>Array.isArray(g)&&g[0]==="SOURCECRS");if(u){const g=u.find(C=>Array.isArray(C));n.source_crs=g?this.convert(g):null}const m=e.find(g=>Array.isArray(g)&&g[0]==="TARGETCRS");if(m){const g=m.find(C=>Array.isArray(C));n.target_crs=g?this.convert(g):null}const p=e.find(g=>Array.isArray(g)&&g[0]==="ABRIDGEDTRANSFORMATION");p?n.transformation=this.convert(p):n.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(n.type="Transformation",n.name=e[1],n.method=e.find(g=>Array.isArray(g)&&g[0]==="METHOD")?this.convert(e.find(g=>Array.isArray(g)&&g[0]==="METHOD")):null,n.parameters=e.filter(g=>Array.isArray(g)&&(g[0]==="PARAMETER"||g[0]==="PARAMETERFILE")).map(g=>{if(g[0]==="PARAMETER")return this.convert(g);if(g[0]==="PARAMETERFILE")return{name:g[1],value:g[2],id:{authority:"EPSG",code:8656}}}),n.parameters.length===7){const g=n.parameters[6];g.name==="Scale difference"&&(g.value=Math.round((g.value-1)*1e12)/1e6)}n.id=this.getId(e);break;case"AXIS":n.coordinate_system||(n.coordinate_system={type:"unspecified",axis:[]}),n.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":const f=this.convertUnit(e,"LinearUnit");n.coordinate_system&&n.coordinate_system.axis&&n.coordinate_system.axis.forEach(g=>{g.unit||(g.unit=f)}),f.conversion_factor&&f.conversion_factor!==1&&n.semi_major_axis&&(n.semi_major_axis={value:n.semi_major_axis,unit:f});break;default:n.keyword=e[0];break}return n}}class EF extends og{static convert(e,n={}){return super.convert(e,n),n.coordinate_system&&n.coordinate_system.subtype==="Cartesian"&&delete n.coordinate_system,n.usage&&delete n.usage,n}}class NF extends og{static convert(e,n={}){super.convert(e,n);const a=e.find(r=>Array.isArray(r)&&r[0]==="CS");a&&(n.coordinate_system={subtype:a[1],axis:this.extractAxes(e)});const i=e.find(r=>Array.isArray(r)&&r[0]==="USAGE");if(i){const r=i.find(u=>Array.isArray(u)&&u[0]==="SCOPE"),o=i.find(u=>Array.isArray(u)&&u[0]==="AREA"),s=i.find(u=>Array.isArray(u)&&u[0]==="BBOX");n.usage={},r&&(n.usage.scope=r[1]),o&&(n.usage.area=o[1]),s&&(n.usage.bbox=s.slice(1))}return n}}function RF(t){return t.find(e=>Array.isArray(e)&&e[0]==="USAGE")?"2019":(t.find(e=>Array.isArray(e)&&e[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function LF(t){return(RF(t)==="2019"?NF:EF).convert(t)}function IF(t){const e=t.toUpperCase();return e.includes("PROJCRS")||e.includes("GEOGCRS")||e.includes("BOUNDCRS")||e.includes("VERTCRS")||e.includes("LENGTHUNIT")||e.includes("ANGLEUNIT")||e.includes("SCALEUNIT")?"WKT2":(e.includes("PROJCS")||e.includes("GEOGCS")||e.includes("LOCAL_CS")||e.includes("VERT_CS")||e.includes("UNIT"),"WKT1")}var _a=1,sg=2,lg=3,lr=4,ug=5,gu=-1,FF=/\s/,BF=/[A-Za-z]/,DF=/[A-Za-z84_]/,Gr=/[,\]]/,cg=/[\d\.E\-\+]/;function g5(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=_a}g5.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==lr)for(;FF.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case _a:return this.neutral(t);case sg:return this.keyword(t);case lr:return this.quoted(t);case ug:return this.afterquote(t);case lg:return this.number(t);case gu:return}};g5.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=lr;return}if(Gr.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};g5.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=_a;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=_a,this.currentObject=this.stack.pop(),this.currentObject||(this.state=gu);return}};g5.prototype.number=function(t){if(cg.test(t)){this.word+=t;return}if(Gr.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};g5.prototype.quoted=function(t){if(t==='"'){this.state=ug;return}this.word+=t};g5.prototype.keyword=function(t){if(DF.test(t)){this.word+=t;return}if(t==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=_a;return}if(Gr.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};g5.prototype.neutral=function(t){if(BF.test(t)){this.word=t,this.state=sg;return}if(t==='"'){this.word="",this.state=lr;return}if(cg.test(t)){this.word=t,this.state=lg;return}if(Gr.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};g5.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(e==="polar stereographic"||e==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=Jn(t.lat0>0?90:-90),delete t.lat1)}function Ph(t){let e={units:null,to_meter:void 0};return typeof t=="string"?(e.units=t.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.units==="meter"&&(e.to_meter=1)):t&&t.name&&(e.units=t.name.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.to_meter=t.conversion_factor),e}function kh(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Eh(t,e){t.ellipsoid.radius?(e.a=t.ellipsoid.radius,e.rf=0):(e.a=kh(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?e.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(e.rf=e.a/(e.a-kh(t.ellipsoid.semi_minor_axis))))}function ur(t,e={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(ur(t.source_crs,e),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?e.nadgrids=t.transformation.parameters[0].value:e.datum_params=t.transformation.parameters.map(n=>n.value)),e):(Object.keys(t).forEach(n=>{const a=t[n];if(a!==null)switch(n){case"name":if(e.srsCode)break;e.name=a,e.srsCode=a;break;case"type":a==="GeographicCRS"?e.projName="longlat":a==="GeodeticCRS"?t.coordinate_system&&t.coordinate_system.subtype==="Cartesian"?e.projName="geocent":e.projName="longlat":a==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(e.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":a.ellipsoid&&(e.ellps=a.ellipsoid.name,Eh(a,e)),a.prime_meridian&&(e.from_greenwich=a.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":e.ellps=a.name,Eh(a,e);break;case"prime_meridian":e.long0=(a.longitude||0)*Math.PI/180;break;case"coordinate_system":if(a.axis){const i={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},r=a.axis.map(o=>i[o.direction.toLowerCase()]);if(r.every(Boolean)&&(e.axis=r.join(""),e.axis.length===2&&(e.axis+="u")),a.unit){const{units:o,to_meter:s}=Ph(a.unit);e.units=o,e.to_meter=s}else if(a.axis[0]&&a.axis[0].unit){const{units:o,to_meter:s}=Ph(a.axis[0].unit);e.units=o,e.to_meter=s}}break;case"id":a.authority&&a.code&&(e.title=a.authority+":"+a.code);break;case"conversion":a.method&&a.method.name&&(e.projName=a.method.name),a.parameters&&a.parameters.forEach(i=>{const r=i.name.toLowerCase().replace(/\s+/g,"_"),o=i.value;i.unit&&i.unit.conversion_factor?e[r]=o*i.unit.conversion_factor:i.unit==="degree"?e[r]=o*Math.PI/180:e[r]=o});break;case"unit":a.name&&(e.units=a.name.toLowerCase(),e.units==="metre"&&(e.units="meter")),a.conversion_factor&&(e.to_meter=a.conversion_factor);break;case"base_crs":ur(a,e),e.datumCode=a.id?a.id.authority+"_"+a.id.code:a.name;break}}),e.latitude_of_false_origin!==void 0&&(e.lat0=e.latitude_of_false_origin),e.longitude_of_false_origin!==void 0&&(e.long0=e.longitude_of_false_origin),e.latitude_of_standard_parallel!==void 0&&(e.lat0=e.latitude_of_standard_parallel,e.lat1=e.latitude_of_standard_parallel),e.latitude_of_1st_standard_parallel!==void 0&&(e.lat1=e.latitude_of_1st_standard_parallel),e.latitude_of_2nd_standard_parallel!==void 0&&(e.lat2=e.latitude_of_2nd_standard_parallel),e.latitude_of_projection_centre!==void 0&&(e.lat0=e.latitude_of_projection_centre),e.longitude_of_projection_centre!==void 0&&(e.longc=e.longitude_of_projection_centre),e.easting_at_false_origin!==void 0&&(e.x0=e.easting_at_false_origin),e.northing_at_false_origin!==void 0&&(e.y0=e.northing_at_false_origin),e.latitude_of_natural_origin!==void 0&&(e.lat0=e.latitude_of_natural_origin),e.longitude_of_natural_origin!==void 0&&(e.long0=e.longitude_of_natural_origin),e.longitude_of_origin!==void 0&&(e.long0=e.longitude_of_origin),e.false_easting!==void 0&&(e.x0=e.false_easting),e.easting_at_projection_centre&&(e.x0=e.easting_at_projection_centre),e.false_northing!==void 0&&(e.y0=e.false_northing),e.northing_at_projection_centre&&(e.y0=e.northing_at_projection_centre),e.standard_parallel_1!==void 0&&(e.lat1=e.standard_parallel_1),e.standard_parallel_2!==void 0&&(e.lat2=e.standard_parallel_2),e.scale_factor_at_natural_origin!==void 0&&(e.k0=e.scale_factor_at_natural_origin),e.scale_factor_at_projection_centre!==void 0&&(e.k0=e.scale_factor_at_projection_centre),e.scale_factor_on_pseudo_standard_parallel!==void 0&&(e.k0=e.scale_factor_on_pseudo_standard_parallel),e.azimuth!==void 0&&(e.alpha=e.azimuth),e.azimuth_at_projection_centre!==void 0&&(e.alpha=e.azimuth_at_projection_centre),e.angle_from_rectified_to_skew_grid&&(e.rectified_grid_angle=e.angle_from_rectified_to_skew_grid),dg(e),e)}var OF=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function jF(t,e){var n=e[0],a=e[1];!(n in t)&&a in t&&(t[n]=t[a],e.length===3&&(t[n]=e[2](t[n])))}function fg(t){for(var e=Object.keys(t),n=0,a=e.length;n-1;var e=$5(t,"authority");if(e){var n=$5(e,"epsg");return n&&Nh.indexOf(n)>-1}}function HF(t){var e=$5(t,"extension");if(e)return $5(e,"proj4")}function KF(t){return t[0]==="+"}function qF(t){let e;if(YF(t))if($F(t))e=Ft[t];else if(WF(t)){e=cr(t);var n=HF(e);n&&(e=Rl(n))}else KF(t)&&(e=Rl(t));else"projName"in t?e=t:e=cr(t);return e&&VF(e)?Ft["EPSG:3857"]:e}function Rh(t,e){t=t||{};var n,a;if(!e)return t;for(a in e)n=e[a],n!==void 0&&(t[a]=n);return t}function $6(t,e,n){var a=t*e;return n/Math.sqrt(1-a*a)}function ja(t){return t<0?-1:1}function F1(t,e){return e||Math.abs(t)<=dt?t:t-ja(t)*Aa}function w6(t,e,n){var a=t*n,i=.5*t;return a=Math.pow((1-a)/(1+a),i),Math.tan(.5*(p1-e))/a}function xa(t,e){for(var n=.5*t,a,i,r=p1-2*Math.atan(e),o=0;o<=15;o++)if(a=t*Math.sin(r),i=p1-2*Math.atan(e*Math.pow((1-a)/(1+a),n))-r,r+=i,Math.abs(i)<=1e-10)return r;return-9999}function JF(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=$6(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function QF(t){var e=t.x,n=t.y;if(n*Mn>90&&n*Mn<-90&&e*Mn>180&&e*Mn<-180)return null;var a,i;if(Math.abs(Math.abs(n)-p1)<=E1)return null;if(this.sphere)a=this.x0+this.a*this.k0*F1(e-this.long0,this.over),i=this.y0+this.a*this.k0*Math.log(Math.tan(ke+.5*n));else{var r=Math.sin(n),o=w6(this.e,n,r);a=this.x0+this.a*this.k0*F1(e-this.long0,this.over),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=a,t.y=i,t}function ZF(t){var e=t.x-this.x0,n=t.y-this.y0,a,i;if(this.sphere)i=p1-2*Math.atan(Math.exp(-n/(this.a*this.k0)));else{var r=Math.exp(-n/(this.a*this.k0));if(i=xa(this.e,r),i===-9999)return null}return a=F1(this.long0+e/(this.a*this.k0),this.over),t.x=a,t.y=i,t}var XF=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const eB={init:JF,forward:QF,inverse:ZF,names:XF};function tB(){}function Lh(t){return t}var hg=["longlat","identity"];const nB={init:tB,forward:Lh,inverse:Lh,names:hg};var aB=[eB,nB],v9={},p8=[];function mg(t,e){var n=p8.length;return t.names?(p8[n]=t,t.names.forEach(function(a){v9[a.toLowerCase()]=n}),this):(console.log(e),!0)}function pg(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function iB(t){if(!t)return!1;var e=t.toLowerCase();if(typeof v9[e]!="undefined"&&p8[v9[e]]||(e=pg(e),e in v9&&p8[v9[e]]))return p8[v9[e]]}function rB(){aB.forEach(mg)}const oB={start:rB,add:mg,get:iB};var gg={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const sB=gg.WGS84;function lB(t,e,n,a){var i=t*t,r=e*e,o=(i-r)/i,s=0;a?(t*=1-o*(xF+o*(MF+o*PF)),i=t*t,o=0):s=Math.sqrt(o);var u=(i-r)/r;return{es:o,e:s,ep2:u}}function uB(t,e,n,a,i){if(!t){var r=$5(gg,a);r||(r=sB),t=r.a,e=r.b,n=r.rf}return n&&!e&&(e=(1-1/n)*t),(n===0||Math.abs(t-e)3&&(s.datum_params[3]!==0||s.datum_params[4]!==0||s.datum_params[5]!==0||s.datum_params[6]!==0)&&(s.datum_type=N9,s.datum_params[3]*=ia,s.datum_params[4]*=ia,s.datum_params[5]*=ia,s.datum_params[6]=s.datum_params[6]/1e6+1)),o&&(s.datum_type=x8,s.grids=o),s.a=n,s.b=a,s.es=i,s.ep2=r,s}var yu={};function fB(t,e,n){return e instanceof ArrayBuffer?hB(t,e,n):{ready:mB(t,e)}}function hB(t,e,n){var a=!0;n!==void 0&&n.includeErrorFields===!1&&(a=!1);var i=new DataView(e),r=yB(i),o=vB(i,r),s=SB(i,o,r,a),u={header:o,subgrids:s};return yu[t]=u,u}function mB(t,e){return L3(this,null,function*(){for(var n=[],a=yield e.getImageCount(),i=a-1;i>=0;i--){var r=yield e.getImage(i),o=yield r.readRasters(),s=o,u=[r.getWidth(),r.getHeight()],m=r.getBoundingBox().map(Ih),p=typeof r.fileDirectory.getValue=="function"?r.fileDirectory.getValue("ModelPixelScale"):r.fileDirectory.ModelPixelScale,f=[p[0],p[1]].map(Ih),g=m[0]+(u[0]-1)*f[0],C=m[3]-(u[1]-1)*f[1],F=s[0],z=s[1],Y=[];for(let y2=u[1]-1;y2>=0;y2--)for(let A2=u[0]-1;A2>=0;A2--){var i2=y2*u[0]+A2;Y.push([-G5(z[i2]),G5(F[i2])])}n.push({del:f,lim:u,ll:[-g,C],cvs:Y})}var v2={header:{nSubgrids:a},subgrids:n};return yu[t]=v2,v2})}function pB(t){if(t===void 0)return null;var e=t.split(",");return e.map(gB)}function gB(t){if(t.length===0)return null;var e=t[0]==="@";return e&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:yu[t]||null,isNull:!1}}function Ih(t){return t*Math.PI/180}function G5(t){return t/3600*Math.PI/180}function yB(t){var e=t.getInt32(8,!1);return e===11?!1:(e=t.getInt32(8,!0),e!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function vB(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Ll(t,56,56+8).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Ll(t,e,n){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,n)))}function SB(t,e,n,a){for(var i=176,r=[],o=0;o5e-11?!1:t.datum_type===E9?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type===N9?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]:!0}function yg(t,e,n){var a=t.x,i=t.y,r=t.z?t.z:0,o,s,u,m;if(i<-p1&&i>-1.001*p1)i=-p1;else if(i>p1&&i<1.001*p1)i=p1;else{if(i<-p1)return{x:-1/0,y:-1/0,z:t.z};if(i>p1)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),s=Math.sin(i),m=Math.cos(i),u=s*s,o=n/Math.sqrt(1-e*u),{x:(o+r)*m*Math.cos(a),y:(o+r)*m*Math.sin(a),z:(o*(1-e)+r)*s}}function vg(t,e,n,a){var i=1e-12,r=i*i,o=30,s,u,m,p,f,g,C,F,z,Y,i2,v2,y2,A2=t.x,S2=t.y,Q2=t.z?t.z:0,X2,c3,p3;if(s=Math.sqrt(A2*A2+S2*S2),u=Math.sqrt(A2*A2+S2*S2+Q2*Q2),s/nr&&y2a.y||C>a.x||Ys&&Math.abs(u.y)>s);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=F1(r.x+n.ll[0]),a.y=r.y+n.ll[1]}else isNaN(r.x)||(a.x=t.x+r.x,a.y=t.y+r.y);return a}function Bh(t,e){var n={x:t.x/e.del[0],y:t.y/e.del[1]},a={x:Math.floor(n.x),y:Math.floor(n.y)},i={x:n.x-1*a.x,y:n.y-1*a.y},r={x:Number.NaN,y:Number.NaN},o;if(a.x<0||a.x>=e.lim[0]||a.y<0||a.y>=e.lim[1])return r;o=a.y*e.lim[0]+a.x;var s={x:e.cvs[o][0],y:e.cvs[o][1]};o++;var u={x:e.cvs[o][0],y:e.cvs[o][1]};o+=e.lim[0];var m={x:e.cvs[o][0],y:e.cvs[o][1]};o--;var p={x:e.cvs[o][0],y:e.cvs[o][1]},f=i.x*i.y,g=i.x*(1-i.y),C=(1-i.x)*(1-i.y),F=(1-i.x)*i.y;return r.x=C*s.x+g*u.x+F*p.x+f*m.x,r.y=C*s.y+g*u.y+F*p.y+f*m.y,r}var S9=["x","y","z"];function PB(t,e){const n={};for(let a=0,i=t.axis.length;a2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function EB(t){Dh(t.x),Dh(t.y)}function Dh(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function NB(t,e){return(t.datum.datum_type===E9||t.datum.datum_type===N9||t.datum.datum_type===x8)&&e.datumCode!=="WGS84"||(e.datum.datum_type===E9||e.datum.datum_type===N9||e.datum.datum_type===x8)&&t.datumCode!=="WGS84"}function dr(t,e,n,a){var i,r=n.z!==void 0;if(EB(n),t.datum&&e.datum&&NB(t,e)&&(i=new t6("WGS84"),n=dr(t,i,n,a),t=i),a&&t.axis!=="enu"&&(n=PB(t,n)),t.projName==="longlat")n={x:n.x*at,y:n.y*at,z:n.z||0};else if(t.to_meter&&(n={x:n.x*t.to_meter,y:n.y*t.to_meter,z:n.z||0}),n=t.inverse(n),!n)return;if(t.from_greenwich&&(n.x+=t.from_greenwich),n=xB(t.datum,e.datum,n),!!n)return n=n,e.from_greenwich&&(n={x:n.x-e.from_greenwich,y:n.y,z:n.z||0}),e.projName==="longlat"?n={x:n.x*Mn,y:n.y*Mn,z:n.z||0}:(n=e.forward(n),e.to_meter&&(n={x:n.x/e.to_meter,y:n.y/e.to_meter,z:n.z||0})),a&&e.axis!=="enu"?kB(e,n):(n&&!r&&e.projName!=="geocent"&&delete n.z,n)}function RB(t,e,n,a){var i;return Array.isArray(n)?i=vu(n):i={x:n.x,y:n.y,z:n.z,m:n.m},dr(t,e,i,a)}var Gh=t6("WGS84");function Gs(t,e,n,a){var i,r,o;return Array.isArray(n)?(i=dr(t,e,vu(n),a)||{x:NaN,y:NaN},n.length>2?(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",r?typeof i.z=="number"?[i.x,i.y,i.z].concat(n.slice(3)):[i.x,i.y,n[2]].concat(n.slice(3)):a&&typeof i.z=="number"?[i.x,i.y,i.z].concat(n.slice(3)):[i.x,i.y].concat(n.slice(2))):[i.x,i.y]):(i=dr(t,e,{x:n.x,y:n.y,z:n.z,m:n.m},a)||{x:NaN,y:NaN},o=Object.keys(n),o.length===2||(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",o.forEach(function(s){s==="x"||s==="y"||s==="z"&&(r||a)||(i[s]=n[s])})),i)}function Si(t){return t instanceof t6?t:typeof t=="object"&&"oProj"in t?t.oProj:t6(t)}function LB(t,e,n){var a,i,r=!1,o;return typeof e=="undefined"?(i=Si(t),a=Gh,r=!0):(typeof e.x!="undefined"||Array.isArray(e))&&(n=e,i=Si(t),a=Gh,r=!0),a||(a=Si(t)),i||(i=Si(e)),n?Gs(a,i,n):(o={forward:function(s,u){return Gs(a,i,s,u)},inverse:function(s,u){return Gs(i,a,s,u)}},r&&(o.oProj=i),o)}var Uh=6,Sg="AJSAJS",wg="AFAFAF",g8=65,mn=73,Qn=79,Z4=86,X4=90;const IB={forward:bg,inverse:FB,toPoint:Tg};function bg(t,e){return e=e||5,GB(BB({lat:t[1],lon:t[0]}),e)}function FB(t){var e=Su(Ag(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function Tg(t){var e=Su(Ag(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function Us(t){return t*(Math.PI/180)}function Oh(t){return 180*(t/Math.PI)}function BB(t){var e=t.lat,n=t.lon,a=6378137,i=.00669438,r=.9996,o,s,u,m,p,f,g,C=Us(e),F=Us(n),z,Y;Y=Math.floor((n+180)/6)+1,n===180&&(Y=60),e>=56&&e<64&&n>=3&&n<12&&(Y=32),e>=72&&e<84&&(n>=0&&n<9?Y=31:n>=9&&n<21?Y=33:n>=21&&n<33?Y=35:n>=33&&n<42&&(Y=37)),o=(Y-1)*6-180+3,z=Us(o),s=i/(1-i),u=a/Math.sqrt(1-i*Math.sin(C)*Math.sin(C)),m=Math.tan(C)*Math.tan(C),p=s*Math.cos(C)*Math.cos(C),f=Math.cos(C)*(F-z),g=a*((1-i/4-3*i*i/64-5*i*i*i/256)*C-(3*i/8+3*i*i/32+45*i*i*i/1024)*Math.sin(2*C)+(15*i*i/256+45*i*i*i/1024)*Math.sin(4*C)-35*i*i*i/3072*Math.sin(6*C));var i2=r*u*(f+(1-m+p)*f*f*f/6+(5-18*m+m*m+72*p-58*s)*f*f*f*f*f/120)+5e5,v2=r*(g+u*Math.tan(C)*(f*f/2+(5-m+9*p+4*p*p)*f*f*f*f/24+(61-58*m+m*m+600*p-330*s)*f*f*f*f*f*f/720));return e<0&&(v2+=1e7),{northing:Math.round(v2),easting:Math.round(i2),zoneNumber:Y,zoneLetter:DB(e)}}function Su(t){var e=t.northing,n=t.easting,a=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var r=.9996,o=6378137,s=.00669438,u,m=(1-Math.sqrt(1-s))/(1+Math.sqrt(1-s)),p,f,g,C,F,z,Y,i2,v2,y2=n-5e5,A2=e;a<"N"&&(A2-=1e7),Y=(i-1)*6-180+3,u=s/(1-s),z=A2/r,i2=z/(o*(1-s/4-3*s*s/64-5*s*s*s/256)),v2=i2+(3*m/2-27*m*m*m/32)*Math.sin(2*i2)+(21*m*m/16-55*m*m*m*m/32)*Math.sin(4*i2)+151*m*m*m/96*Math.sin(6*i2),p=o/Math.sqrt(1-s*Math.sin(v2)*Math.sin(v2)),f=Math.tan(v2)*Math.tan(v2),g=u*Math.cos(v2)*Math.cos(v2),C=o*(1-s)/Math.pow(1-s*Math.sin(v2)*Math.sin(v2),1.5),F=y2/(p*r);var S2=v2-p*Math.tan(v2)/C*(F*F/2-(5+3*f+10*g-4*g*g-9*u)*F*F*F*F/24+(61+90*f+298*g+45*f*f-252*u-3*g*g)*F*F*F*F*F*F/720);S2=Oh(S2);var Q2=(F-(1+2*f+g)*F*F*F/6+(5-2*g+28*f-3*g*g+8*u+24*f*f)*F*F*F*F*F/120)/Math.cos(v2);Q2=Y+Oh(Q2);var X2;if(t.accuracy){var c3=Su({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});X2={top:c3.lat,right:c3.lon,bottom:S2,left:Q2}}else X2={lat:S2,lon:Q2};return X2}function DB(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function GB(t,e){var n="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+UB(t.easting,t.northing,t.zoneNumber)+n.substr(n.length-5,e)+a.substr(a.length-5,e)}function UB(t,e,n){var a=Cg(n),i=Math.floor(t/1e5),r=Math.floor(e/1e5)%20;return OB(i,r,a)}function Cg(t){var e=t%Uh;return e===0&&(e=Uh),e}function OB(t,e,n){var a=n-1,i=Sg.charCodeAt(a),r=wg.charCodeAt(a),o=i+t-1,s=r+e,u=!1;o>X4&&(o=o-X4+g8-1,u=!0),(o===mn||imn||(o>mn||iQn||(o>Qn||iX4&&(o=o-X4+g8-1),s>Z4?(s=s-Z4+g8-1,u=!0):u=!1,(s===mn||rmn||(s>mn||rQn||(s>Qn||rZ4&&(s=s-Z4+g8-1);var m=String.fromCharCode(o)+String.fromCharCode(s);return m}function Ag(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var e=t.length,n=null,a="",i,r=0;!/[A-Z]/.test(i=t.charAt(r));){if(r>=2)throw"MGRSPoint bad conversion from: "+t;a+=i,r++}var o=parseInt(a,10);if(r===0||r+3>e)throw"MGRSPoint bad conversion from: "+t;var s=t.charAt(r++);if(s<="A"||s==="B"||s==="Y"||s>="Z"||s==="I"||s==="O")throw"MGRSPoint zone letter "+s+" not handled: "+t;n=t.substring(r,r+=2);for(var u=Cg(o),m=jB(n.charAt(0),u),p=zB(n.charAt(1),u);p0&&(z=1e5/Math.pow(10,g),Y=t.substring(r,r+g),C=parseFloat(Y)*z,i2=t.substring(r+g),F=parseFloat(i2)*z),v2=C+m,y2=F+p,{easting:v2,northing:y2,zoneLetter:s,zoneNumber:o,accuracy:z}}function jB(t,e){for(var n=Sg.charCodeAt(e-1),a=1e5,i=!1;n!==t.charCodeAt(0);){if(n++,n===mn&&n++,n===Qn&&n++,n>X4){if(i)throw"Bad character: "+t;n=g8,i=!0}a+=1e5}return a}function zB(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var n=wg.charCodeAt(e-1),a=0,i=!1;n!==t.charCodeAt(0);){if(n++,n===mn&&n++,n===Qn&&n++,n>Z4){if(i)throw"Bad character: "+t;n=g8,i=!0}a+=1e5}return a}function YB(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function F8(t,e,n){if(!(this instanceof F8))return new F8(t,e,n);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if(typeof t=="object")this.x=t.x,this.y=t.y,this.z=t.z||0;else if(typeof t=="string"&&typeof e=="undefined"){var a=t.split(",");this.x=parseFloat(a[0]),this.y=parseFloat(a[1]),this.z=parseFloat(a[2])||0}else this.x=t,this.y=e,this.z=n||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}F8.fromMGRS=function(t){return new F8(Tg(t))};F8.prototype.toMGRS=function(t){return bg([this.x,this.y],t)};var $B=1,WB=.25,jh=.046875,zh=.01953125,Yh=.01068115234375,VB=.75,HB=.46875,KB=.013020833333333334,qB=.007120768229166667,JB=.3645833333333333,QB=.005696614583333333,ZB=.3076171875;function wu(t){var e=[];e[0]=$B-t*(WB+t*(jh+t*(zh+t*Yh))),e[1]=t*(VB-t*(jh+t*(zh+t*Yh)));var n=t*t;return e[2]=n*(HB-t*(KB+t*qB)),n*=t,e[3]=n*(JB-t*QB),e[4]=n*t*ZB,e}function W8(t,e,n,a){return n*=e,e*=e,a[0]*t-n*(a[1]+e*(a[2]+e*(a[3]+e*a[4])))}var XB=20;function bu(t,e,n){for(var a=1/(1-e),i=t,r=XB;r;--r){var o=Math.sin(i),s=1-e*o*o;if(s=(W8(i,o,Math.cos(i),n)-t)*(s*Math.sqrt(s))*a,i-=s,Math.abs(s)E1?Math.tan(n):0,z=Math.pow(F,2),Y=Math.pow(z,2);i=1-this.es*Math.pow(s,2),p=p/Math.sqrt(i);var i2=W8(n,s,u,this.en);r=this.a*(this.k0*p*(1+f/6*(1-z+g+f/20*(5-18*z+Y+14*g-58*z*g+f/42*(61+179*Y-Y*z-479*z)))))+this.x0,o=this.a*(this.k0*(i2-this.ml0+s*a*p/2*(1+f/12*(5-z+9*g+4*C+f/30*(61+Y-58*z+270*g-330*z*g+f/56*(1385+543*Y-Y*z-3111*z))))))+this.y0}else{var m=u*Math.sin(a);if(Math.abs(Math.abs(m)-1)=1){if(m-1>E1)return 93;o=0}else o=Math.acos(o);n<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return t.x=r,t.y=o,t}function nD(t){var e,n,a,i,r=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+o/this.k0,n=bu(e,this.es,this.en),Math.abs(n)E1?Math.tan(n):0,F=this.ep2*Math.pow(g,2),z=Math.pow(F,2),Y=Math.pow(C,2),i2=Math.pow(Y,2);e=1-this.es*Math.pow(f,2);var v2=r*Math.sqrt(e)/this.k0,y2=Math.pow(v2,2);e=e*C,a=n-e*y2/(1-this.es)*.5*(1-y2/12*(5+3*Y-9*F*Y+F-4*z-y2/30*(61+90*Y-252*F*Y+45*i2+46*F-y2/56*(1385+3633*Y+4095*i2+1574*i2*Y)))),i=F1(this.long0+v2*(1-y2/6*(1+2*Y+F-y2/20*(5+28*Y+24*i2+8*F*Y+6*F-y2/42*(61+662*Y+1320*i2+720*i2*Y))))/g,this.over)}else a=p1*ja(o),i=0;else{var s=Math.exp(r/this.k0),u=.5*(s-1/s),m=this.lat0+o/this.k0,p=Math.cos(m);e=Math.sqrt((1-Math.pow(p,2))/(1+Math.pow(u,2))),a=Math.asin(e),o<0&&(a=-a),u===0&&p===0?i=0:i=F1(Math.atan2(u,p)+this.long0,this.over)}return t.x=i,t.y=a,t}var aD=["Fast_Transverse_Mercator","Fast Transverse Mercator"];const Ui={init:eD,forward:tD,inverse:nD,names:aD};function _g(t){var e=Math.exp(t);return e=(e-1/e)/2,e}function Cn(t,e){t=Math.abs(t),e=Math.abs(e);var n=Math.max(t,e),a=Math.min(t,e)/(n||1);return n*Math.sqrt(1+Math.pow(a,2))}function iD(t){var e=1+t,n=e-1;return n===0?t:t*Math.log(e)/n}function rD(t){var e=Math.abs(t);return e=iD(e*(1+e/(Cn(1,e)+1))),t<0?-e:e}function Tu(t,e){for(var n=2*Math.cos(2*e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+n*i+t[a],r=i,i=o;return e+o*Math.sin(2*e)}function oD(t,e){for(var n=2*Math.cos(e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+n*i+t[a],r=i,i=o;return Math.sin(e)*o}function sD(t){var e=Math.exp(t);return e=(e+1/e)/2,e}function xg(t,e,n){for(var a=Math.sin(e),i=Math.cos(e),r=_g(n),o=sD(n),s=2*i*o,u=-2*a*r,m=t.length-1,p=t[m],f=0,g=0,C=0,F,z;--m>=0;)F=g,z=f,g=p,f=C,p=-F+s*g-u*f+t[m],C=-z+u*g+s*f;return s=a*o,u=i*r,[s*p-u*C,s*C+u*p]}function lD(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(Ui.init.apply(this),this.forward=Ui.forward,this.inverse=Ui.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),n=e;this.cgb[0]=e*(2+e*(-2/3+e*(-2+e*(116/45+e*(26/45+e*(-2854/675)))))),this.cbg[0]=e*(-2+e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))),n=n*e,this.cgb[1]=n*(7/3+e*(-8/5+e*(-227/45+e*(2704/315+e*(2323/945))))),this.cbg[1]=n*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),n=n*e,this.cgb[2]=n*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=n*(-26/15+e*(34/21+e*(8/5+e*(-12686/2835)))),n=n*e,this.cgb[3]=n*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=n*(1237/630+e*(-12/5+e*(-24832/14175))),n=n*e,this.cgb[4]=n*(4174/315+e*(-144838/6237)),this.cbg[4]=n*(-734/315+e*(109598/31185)),n=n*e,this.cgb[5]=n*(601676/22275),this.cbg[5]=n*(444337/155925),n=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+n*(1/4+n*(1/64+n/256))),this.utg[0]=e*(-.5+e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=n*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=n*(13/48+e*(-3/5+e*(557/1440+e*(281/630+e*(-1983433/1935360))))),n=n*e,this.utg[2]=n*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=n*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),n=n*e,this.utg[3]=n*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=n*(49561/161280+e*(-179/168+e*(6601661/7257600))),n=n*e,this.utg[4]=n*(-4583/161280+e*(108847/3991680)),this.gtu[4]=n*(34729/80640+e*(-3418889/1995840)),n=n*e,this.utg[5]=n*(-20648693/638668800),this.gtu[5]=n*(212378941/319334400);var a=Tu(this.cbg,this.lat0);this.Zb=-this.Qn*(a+oD(this.gtu,2*a))}function uD(t){var e=F1(t.x-this.long0,this.over),n=t.y;n=Tu(this.cbg,n);var a=Math.sin(n),i=Math.cos(n),r=Math.sin(e),o=Math.cos(e);n=Math.atan2(a,o*i),e=Math.atan2(r*i,Cn(a,i*o)),e=rD(Math.tan(e));var s=xg(this.gtu,2*n,2*e);n=n+s[0],e=e+s[1];var u,m;return Math.abs(e)<=2.623395162778?(u=this.a*(this.Qn*e)+this.x0,m=this.a*(this.Qn*n+this.Zb)+this.y0):(u=1/0,m=1/0),t.x=u,t.y=m,t}function cD(t){var e=(t.x-this.x0)*(1/this.a),n=(t.y-this.y0)*(1/this.a);n=(n-this.Zb)/this.Qn,e=e/this.Qn;var a,i;if(Math.abs(e)<=2.623395162778){var r=xg(this.utg,2*n,2*e);n=n+r[0],e=e+r[1],e=Math.atan(_g(e));var o=Math.sin(n),s=Math.cos(n),u=Math.sin(e),m=Math.cos(e);n=Math.atan2(o*m,Cn(u,m*s)),e=Math.atan2(u,m*s),a=F1(e+this.long0,this.over),i=Tu(this.cgb,n)}else a=1/0,i=1/0;return t.x=a,t.y=i,t}var dD=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"];const Oi={init:lD,forward:uD,inverse:cD,names:dD};function fD(t,e){if(t===void 0){if(t=Math.floor((F1(e)+Math.PI)*30/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var hD="etmerc";function mD(){var t=fD(this.zone,this.long0);if(t===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*at,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Oi.init.apply(this),this.forward=Oi.forward,this.inverse=Oi.inverse}var pD=["Universal Transverse Mercator System","utm"];const gD={init:mD,names:pD,dependsOn:hD};function Cu(t,e){return Math.pow((1-t)/(1+t),e)}var yD=20;function vD(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+ke)/(Math.pow(Math.tan(.5*this.lat0+ke),this.C)*Cu(this.e*t,this.ratexp))}function SD(t){var e=t.x,n=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*n+ke),this.C)*Cu(this.e*Math.sin(n),this.ratexp))-p1,t.x=this.C*e,t}function wD(t){for(var e=1e-14,n=t.x/this.C,a=t.y,i=Math.pow(Math.tan(.5*a+ke)/this.K,1/this.C),r=yD;r>0&&(a=2*Math.atan(i*Cu(this.e*Math.sin(t.y),-.5*this.e))-p1,!(Math.abs(a-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=E1&&Math.abs(Math.cos(this.lat_ts))>E1&&(this.k0=.5*this.cons*$6(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/w6(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=$6(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(_u(this.lat0,this.sinlat0,this.e))-p1,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function PD(t){var e=t.x,n=t.y,a=Math.sin(n),i=Math.cos(n),r,o,s,u,m,p,f=F1(e-this.long0,this.over);return Math.abs(Math.abs(e-this.long0)-Math.PI)<=E1&&Math.abs(n+this.lat0)<=E1?(t.x=NaN,t.y=NaN,t):this.sphere?(r=2*this.k0/(1+this.sinlat0*a+this.coslat0*i*Math.cos(f)),t.x=this.a*r*i*Math.sin(f)+this.x0,t.y=this.a*r*(this.coslat0*a-this.sinlat0*i*Math.cos(f))+this.y0,t):(o=2*Math.atan(_u(n,a,this.e))-p1,u=Math.cos(o),s=Math.sin(o),Math.abs(this.coslat0)<=E1?(m=w6(this.e,n*this.con,this.con*a),p=2*this.a*this.k0*m/this.cons,t.x=this.x0+p*Math.sin(e-this.long0),t.y=this.y0-this.con*p*Math.cos(e-this.long0),t):(Math.abs(this.sinlat0)0?e=F1(this.long0+Math.atan2(t.x,-1*t.y),this.over):e=F1(this.long0+Math.atan2(t.x,t.y),this.over):e=F1(this.long0+Math.atan2(t.x*Math.sin(s),o*this.coslat0*Math.cos(s)-t.y*this.sinlat0*Math.sin(s)),this.over),t.x=e,t.y=n,t)}else if(Math.abs(this.coslat0)<=E1){if(o<=E1)return n=this.lat0,e=this.long0,t.x=e,t.y=n,t;t.x*=this.con,t.y*=this.con,a=o*this.cons/(2*this.a*this.k0),n=this.con*xa(this.e,a),e=this.con*F1(this.con*this.long0+Math.atan2(t.x,-1*t.y),this.over)}else i=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=E1?r=this.X0:(r=Math.asin(Math.cos(i)*this.sinX0+t.y*Math.sin(i)*this.cosX0/o),e=F1(this.long0+Math.atan2(t.x*Math.sin(i),o*this.cosX0*Math.cos(i)-t.y*this.sinX0*Math.sin(i)),this.over)),n=-1*xa(this.e,Math.tan(.5*(p1+r)));return t.x=e,t.y=n,t}var ED=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"];const ND={init:MD,forward:PD,inverse:kD,names:ED,ssfn_:_u};function RD(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),n=this.a,a=this.rf,i=1/a,r=2*i-Math.pow(i,2),o=this.e=Math.sqrt(r);this.R=this.k0*n*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var s=Math.log(Math.tan(Math.PI/4+this.b0/2)),u=Math.log(Math.tan(Math.PI/4+t/2)),m=Math.log((1+o*e)/(1-o*e));this.K=s-this.alpha*u+this.alpha*o/2*m}function LD(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),n=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),a=-this.alpha*(e+n)+this.K,i=2*(Math.atan(Math.exp(a))-Math.PI/4),r=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(r)/(Math.sin(this.b0)*Math.tan(i)+Math.cos(this.b0)*Math.cos(r))),s=Math.asin(Math.cos(this.b0)*Math.sin(i)-Math.sin(this.b0)*Math.cos(i)*Math.cos(r));return t.y=this.R/2*Math.log((1+Math.sin(s))/(1-Math.sin(s)))+this.y0,t.x=this.R*o+this.x0,t}function ID(t){for(var e=t.x-this.x0,n=t.y-this.y0,a=e/this.R,i=2*(Math.atan(Math.exp(n/this.R))-Math.PI/4),r=Math.asin(Math.cos(this.b0)*Math.sin(i)+Math.sin(this.b0)*Math.cos(i)*Math.cos(a)),o=Math.atan(Math.sin(a)/(Math.cos(this.b0)*Math.cos(a)-Math.sin(this.b0)*Math.tan(i))),s=this.lambda0+o/this.alpha,u=0,m=r,p=-1e3,f=0;Math.abs(m-p)>1e-7;){if(++f>20)return;u=1/this.alpha*(Math.log(Math.tan(Math.PI/4+r/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(m))/2)),p=m,m=2*Math.atan(Math.exp(u))-Math.PI/2}return t.x=s,t.y=m,t}var FD=["somerc"];const BD={init:RD,forward:LD,inverse:ID,names:FD};var c8=1e-7;function DD(t){var e=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],n=typeof t.projName=="object"?Object.keys(t.projName)[0]:t.projName;return"no_uoff"in t||"no_off"in t||e.indexOf(n)!==-1||e.indexOf(pg(n))!==-1}function GD(){var t,e,n,a,i,r,o,s,u,m,p=0,f,g=0,C=0,F=0,z=0,Y=0,i2=0;this.no_off=DD(this),this.no_rot="no_rot"in this;var v2=!1;"alpha"in this&&(v2=!0);var y2=!1;if("rectified_grid_angle"in this&&(y2=!0),v2&&(i2=this.alpha),y2&&(p=this.rectified_grid_angle,v2||(i2=0,v2=!0)),v2||y2)g=this.longc;else if(C=this.long1,z=this.lat1,F=this.long2,Y=this.lat2,Math.abs(z-Y)<=c8||(t=Math.abs(z))<=c8||Math.abs(t-p1)<=c8||Math.abs(Math.abs(this.lat0)-p1)<=c8||Math.abs(Math.abs(Y)-p1)<=c8)throw new Error;var A2=1-this.es;e=Math.sqrt(A2),Math.abs(this.lat0)>E1?(s=Math.sin(this.lat0),n=Math.cos(this.lat0),t=1-this.es*s*s,this.B=n*n,this.B=Math.sqrt(1+this.es*this.B*this.B/A2),this.A=this.B*this.k0*e/t,a=this.B*e/(n*Math.sqrt(t)),i=a*a-1,i<=0?i=0:(i=Math.sqrt(i),this.lat0<0&&(i=-i)),this.E=i+=a,this.E*=Math.pow(w6(this.e,this.lat0,s),this.B)):(this.B=1/e,this.A=this.k0,this.E=a=i=1),v2||y2?(v2?(f=Math.asin(Math.sin(i2)/a),y2||(p=i2)):(f=p,i2=Math.asin(a*Math.sin(f))),this.lam0=g-Math.asin(.5*(i-1/i)*Math.tan(f))/this.B):(r=Math.pow(w6(this.e,z,Math.sin(z)),this.B),o=Math.pow(w6(this.e,Y,Math.sin(Y)),this.B),i=this.E/r,u=(o-r)/(o+r),m=this.E*this.E,m=(m-o*r)/(m+o*r),t=C-F,t<-Math.PI?F-=Aa:t>Math.PI&&(F+=Aa),this.lam0=F1(.5*(C+F)-Math.atan(m*Math.tan(.5*this.B*(C-F))/u)/this.B,this.over),f=Math.atan(2*Math.sin(this.B*F1(C-this.lam0,this.over))/(i-1/i)),p=i2=Math.asin(a*Math.sin(f))),this.singam=Math.sin(f),this.cosgam=Math.cos(f),this.sinrot=Math.sin(p),this.cosrot=Math.cos(p),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(a*a-1)/Math.cos(i2))),this.lat0<0&&(this.u_0=-this.u_0)),i=.5*f,this.v_pole_n=this.ArB*Math.log(Math.tan(ke-i)),this.v_pole_s=this.ArB*Math.log(Math.tan(ke+i))}function UD(t){var e={},n,a,i,r,o,s,u,m;if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-p1)>E1){if(o=this.E/Math.pow(w6(this.e,t.y,Math.sin(t.y)),this.B),s=1/o,n=.5*(o-s),a=.5*(o+s),r=Math.sin(this.B*t.x),i=(n*this.singam-r*this.cosgam)/a,Math.abs(Math.abs(i)-1)0?this.v_pole_n:this.v_pole_s,u=this.ArB*t.y;return this.no_rot?(e.x=u,e.y=m):(u-=this.u_0,e.x=m*this.cosrot+u*this.sinrot,e.y=u*this.cosrot-m*this.sinrot),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e}function OD(t){var e,n,a,i,r,o,s,u={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(n=t.y,e=t.x):(n=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),a=Math.exp(-this.BrA*n),i=.5*(a-1/a),r=.5*(a+1/a),o=Math.sin(this.BrA*e),s=(o*this.cosgam+i*this.singam)/r,Math.abs(Math.abs(s)-1)E1?this.ns=Math.log(a/s)/Math.log(i/u):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=a/(this.ns*Math.pow(i,this.ns)),this.rh=this.a*this.f0*Math.pow(m,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function $D(t){var e=t.x,n=t.y;Math.abs(2*Math.abs(n)-Math.PI)<=E1&&(n=ja(n)*(p1-2*E1));var a=Math.abs(Math.abs(n)-p1),i,r;if(a>E1)i=w6(this.e,n,Math.sin(n)),r=this.a*this.f0*Math.pow(i,this.ns);else{if(a=n*this.ns,a<=0)return null;r=0}var o=this.ns*F1(e-this.long0,this.over);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t}function WD(t){var e,n,a,i,r,o=(t.x-this.x0)/this.k0,s=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+s*s),n=1):(e=-Math.sqrt(o*o+s*s),n=-1);var u=0;if(e!==0&&(u=Math.atan2(n*o,n*s)),e!==0||this.ns>0){if(n=1/this.ns,a=Math.pow(e/(this.a*this.f0),n),i=xa(this.e,a),i===-9999)return null}else i=-p1;return r=F1(u/this.ns+this.long0,this.over),t.x=r,t.y=i,t}var VD=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"];const HD={init:YD,forward:$D,inverse:WD,names:VD};function KD(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function qD(t){var e,n,a,i,r,o,s,u=t.x,m=t.y,p=F1(u-this.long0,this.over);return e=Math.pow((1+this.e*Math.sin(m))/(1-this.e*Math.sin(m)),this.alfa*this.e/2),n=2*(Math.atan(this.k*Math.pow(Math.tan(m/2+this.s45),this.alfa)/e)-this.s45),a=-p*this.alfa,i=Math.asin(Math.cos(this.ad)*Math.sin(n)+Math.sin(this.ad)*Math.cos(n)*Math.cos(a)),r=Math.asin(Math.cos(n)*Math.sin(a)/Math.cos(i)),o=this.n*r,s=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(i/2+this.s45),this.n),t.y=s*Math.cos(o)/1,t.x=s*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t}function JD(t){var e,n,a,i,r,o,s,u,m=t.x;t.x=t.y,t.y=m,this.czech||(t.y*=-1,t.x*=-1),o=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x),i=r/Math.sin(this.s0),a=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(a)-Math.sin(this.ad)*Math.cos(a)*Math.cos(i)),n=Math.asin(Math.cos(a)*Math.sin(i)/Math.cos(e)),t.x=this.long0-n/this.alfa,s=e,u=0;var p=0;do t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(s))/(1-this.e*Math.sin(s)),this.e/2))-this.s45),Math.abs(s-t.y)<1e-10&&(u=1),s=t.y,p+=1;while(u===0&&p<15);return p>=15?null:t}var QD=["Krovak","Krovak Modified","Krovak (North Orientated)","Krovak Modified (North Orientated)","krovak"];const ZD={init:KD,forward:qD,inverse:JD,names:QD};function an(t,e,n,a,i){return t*i-e*Math.sin(2*i)+n*Math.sin(4*i)-a*Math.sin(6*i)}function za(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function Ya(t){return .375*t*(1+.25*t*(1+.46875*t))}function $a(t){return .05859375*t*t*(1+.75*t)}function Wa(t){return t*t*t*(35/3072)}function xu(t,e,n){var a=e*n;return t/Math.sqrt(1-a*a)}function q5(t){return Math.abs(t)1e-7?(n=t*e,(1-t*t)*(e/(1-n*n)-.5/t*Math.log((1-n)/(1+n)))):2*e}var iG=.3333333333333333,rG=.17222222222222222,oG=.10257936507936508,sG=.06388888888888888,lG=.0664021164021164,uG=.016415012942191543;function Mg(t){var e,n=[];return n[0]=t*iG,e=t*t,n[0]+=e*rG,n[1]=e*sG,e*=t,n[0]+=e*oG,n[1]+=e*lG,n[2]=e*uG,n}function Pg(t,e){var n=t+t;return t+e[0]*Math.sin(n)+e[1]*Math.sin(n+n)+e[2]*Math.sin(n+n+n)}var Il=1,Fl=2,Bl=3,ji=4;function cG(){var t=Math.abs(this.lat0);if(Math.abs(t-p1)0){var e;switch(this.qp=z6(this.e,1),this.mmf=.5/(1-this.es),this.apa=Mg(this.es),this.mode){case Fl:this.dd=1;break;case Il:this.dd=1;break;case Bl:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case ji:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=z6(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===ji&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function dG(t){var e,n,a,i,r,o,s,u,m,p,f=t.x,g=t.y;if(f=F1(f-this.long0,this.over),this.sphere){if(r=Math.sin(g),p=Math.cos(g),a=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(n=this.mode===this.EQUIT?1+p*a:1+this.sinph0*r+this.cosph0*p*a,n<=E1)return null;n=Math.sqrt(2/n),e=n*p*Math.sin(f),n*=this.mode===this.EQUIT?r:this.cosph0*r-this.sinph0*p*a}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(a=-a),Math.abs(g+this.lat0)=0?(e=(m=Math.sqrt(o))*i,n=a*(this.mode===this.S_POLE?m:-m)):e=n=0;break}}return t.x=this.a*e+this.x0,t.y=this.a*n+this.y0,t}function fG(t){t.x-=this.x0,t.y-=this.y0;var e=t.x/this.a,n=t.y/this.a,a,i,r,o,s,u,m;if(this.sphere){var p=0,f,g=0;if(f=Math.sqrt(e*e+n*n),i=f*.5,i>1)return null;switch(i=2*Math.asin(i),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(g=Math.sin(i),p=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(f)<=E1?0:Math.asin(n*g/f),e*=g,n=p*f;break;case this.OBLIQ:i=Math.abs(f)<=E1?this.lat0:Math.asin(p*this.sinph0+n*g*this.cosph0/f),e*=g*this.cosph0,n=(p-Math.sin(i)*this.sinph0)*f;break;case this.N_POLE:n=-n,i=p1-i;break;case this.S_POLE:i-=p1;break}a=n===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(e,n)}else{if(m=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e/=this.dd,n*=this.dd,u=Math.sqrt(e*e+n*n),u1&&(t=t>1?1:-1),Math.asin(t)}function pG(){Math.abs(this.lat1+this.lat2)E1?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function gG(t){var e=t.x,n=t.y;this.sin_phi=Math.sin(n),this.cos_phi=Math.cos(n);var a=z6(this.e3,this.sin_phi),i=this.a*Math.sqrt(this.c-this.ns0*a)/this.ns0,r=this.ns0*F1(e-this.long0,this.over),o=i*Math.sin(r)+this.x0,s=this.rh-i*Math.cos(r)+this.y0;return t.x=o,t.y=s,t}function yG(t){var e,n,a,i,r,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),a=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),a=-1),i=0,e!==0&&(i=Math.atan2(a*t.x,a*t.y)),a=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-a*a)/(2*this.ns0)):(n=(this.c-a*a)/this.ns0,o=this.phi1z(this.e3,n)),r=F1(i/this.ns0+this.long0,this.over),t.x=r,t.y=o,t}function vG(t,e){var n,a,i,r,o,s=W5(.5*e);if(t0||Math.abs(o)<=E1?(s=this.x0+this.a*r*n*Math.sin(a)/o,u=this.y0+this.a*r*(this.cos_p14*e-this.sin_p14*n*i)/o):(s=this.x0+this.infinity_dist*n*Math.sin(a),u=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*n*i)),t.x=s,t.y=u,t}function CG(t){var e,n,a,i,r,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(i=Math.atan2(e,this.rc),n=Math.sin(i),a=Math.cos(i),o=W5(a*this.sin_p14+t.y*n*this.cos_p14/e),r=Math.atan2(t.x*n,e*this.cos_p14*a-t.y*this.sin_p14*n),r=F1(this.long0+r,this.over)):(o=this.phic0,r=0),t.x=r,t.y=o,t}var AG=["gnom"];const _G={init:bG,forward:TG,inverse:CG,names:AG};function xG(t,e){var n=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-n)<1e-6)return e<0?-1*p1:p1;for(var a=Math.asin(.5*e),i,r,o,s,u=0;u<30;u++)if(r=Math.sin(a),o=Math.cos(a),s=t*r,i=Math.pow(1-s*s,2)/(2*o)*(e/(1-t*t)-r/(1-s*s)+.5/t*Math.log((1-s)/(1+s))),a+=i,Math.abs(i)<=1e-10)return a;return NaN}function MG(){this.sphere||(this.k0=$6(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function PG(t){var e=t.x,n=t.y,a,i,r=F1(e-this.long0,this.over);if(this.sphere)a=this.x0+this.a*r*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(n)/Math.cos(this.lat_ts);else{var o=z6(this.e,Math.sin(n));a=this.x0+this.a*this.k0*r,i=this.y0+this.a*o*.5/this.k0}return t.x=a,t.y=i,t}function kG(t){t.x-=this.x0,t.y-=this.y0;var e,n;return this.sphere?(e=F1(this.long0+t.x/this.a/Math.cos(this.lat_ts),this.over),n=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(n=xG(this.e,2*t.y*this.k0/this.a),e=F1(this.long0+t.x/(this.a*this.k0),this.over)),t.x=e,t.y=n,t}var EG=["cea"];const NG={init:MG,forward:PG,inverse:kG,names:EG};function RG(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function LG(t){var e=t.x,n=t.y,a=F1(e-this.long0,this.over),i=q5(n-this.lat0);return t.x=this.x0+this.a*a*this.rc,t.y=this.y0+this.a*i,t}function IG(t){var e=t.x,n=t.y;return t.x=F1(this.long0+(e-this.x0)/(this.a*this.rc),this.over),t.y=q5(this.lat0+(n-this.y0)/this.a),t}var FG=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"];const BG={init:RG,forward:LG,inverse:IG,names:FG};var $h=20;function DG(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=za(this.es),this.e1=Ya(this.es),this.e2=$a(this.es),this.e3=Wa(this.es),this.ml0=this.a*an(this.e0,this.e1,this.e2,this.e3,this.lat0)}function GG(t){var e=t.x,n=t.y,a,i,r,o=F1(e-this.long0,this.over);if(r=o*Math.sin(n),this.sphere)Math.abs(n)<=E1?(a=this.a*o,i=-1*this.a*this.lat0):(a=this.a*Math.sin(r)/Math.tan(n),i=this.a*(q5(n-this.lat0)+(1-Math.cos(r))/Math.tan(n)));else if(Math.abs(n)<=E1)a=this.a*o,i=-1*this.ml0;else{var s=xu(this.a,this.e,Math.sin(n))/Math.tan(n);a=s*Math.sin(r),i=this.a*an(this.e0,this.e1,this.e2,this.e3,n)-this.ml0+s*(1-Math.cos(r))}return t.x=a+this.x0,t.y=i+this.y0,t}function UG(t){var e,n,a,i,r,o,s,u,m;if(a=t.x-this.x0,i=t.y-this.y0,this.sphere)if(Math.abs(i+this.a*this.lat0)<=E1)e=F1(a/this.a+this.long0,this.over),n=0;else{o=this.lat0+i/this.a,s=a*a/this.a/this.a+o*o,u=o;var p;for(r=$h;r;--r)if(p=Math.tan(u),m=-1*(o*(u*p+1)-u-.5*(u*u+s)*p)/((u-o)/p-1),u+=m,Math.abs(m)<=E1){n=u;break}e=F1(this.long0+Math.asin(a*Math.tan(u)/this.a)/Math.sin(n),this.over)}else if(Math.abs(i+this.ml0)<=E1)n=0,e=F1(this.long0+a/this.a,this.over);else{o=(this.ml0+i)/this.a,s=a*a/this.a/this.a+o*o,u=o;var f,g,C,F,z;for(r=$h;r;--r)if(z=this.e*Math.sin(u),f=Math.sqrt(1-z*z)*Math.tan(u),g=this.a*an(this.e0,this.e1,this.e2,this.e3,u),C=this.e0-2*this.e1*Math.cos(2*u)+4*this.e2*Math.cos(4*u)-6*this.e3*Math.cos(6*u),F=g/this.a,m=(o*(f*F+1)-F-.5*f*(F*F+s))/(this.es*Math.sin(2*u)*(F*F+s-2*o*F)/(4*f)+(o-F)*(f*C-2/Math.sin(2*u))-C),u-=m,Math.abs(m)<=E1){n=u;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(n),2))*Math.tan(n),e=F1(this.long0+Math.asin(a*f/this.a)/Math.sin(n),this.over)}return t.x=e,t.y=n,t}var OG=["Polyconic","American_Polyconic","poly"];const jG={init:DG,forward:GG,inverse:UG,names:OG};function zG(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function YG(t){var e,n=t.x,a=t.y,i=a-this.lat0,r=n-this.long0,o=i/ia*1e-5,s=r,u=1,m=0;for(e=1;e<=10;e++)u=u*o,m=m+this.A[e]*u;var p=m,f=s,g=1,C=0,F,z,Y=0,i2=0;for(e=1;e<=6;e++)F=g*p-C*f,z=C*p+g*f,g=F,C=z,Y=Y+this.B_re[e]*g-this.B_im[e]*C,i2=i2+this.B_im[e]*g+this.B_re[e]*C;return t.x=i2*this.a+this.x0,t.y=Y*this.a+this.y0,t}function $G(t){var e,n=t.x,a=t.y,i=n-this.x0,r=a-this.y0,o=r/this.a,s=i/this.a,u=1,m=0,p,f,g=0,C=0;for(e=1;e<=6;e++)p=u*o-m*s,f=m*o+u*s,u=p,m=f,g=g+this.C_re[e]*u-this.C_im[e]*m,C=C+this.C_im[e]*u+this.C_re[e]*m;for(var F=0;F.999999999999&&(n=.999999999999),e=Math.asin(n);var a=F1(this.long0+t.x/(.900316316158*this.a*Math.cos(e)),this.over);a<-Math.PI&&(a=-Math.PI),a>Math.PI&&(a=Math.PI),n=(2*e+Math.sin(2*e))/Math.PI,Math.abs(n)>1&&(n=1);var i=Math.asin(n);return t.x=a,t.y=i,t}var cU=["Mollweide","moll"];const dU={init:sU,forward:lU,inverse:uU,names:cU};function fU(){Math.abs(this.lat1+this.lat2)=0?(n=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(n=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var r=0;if(n!==0&&(r=Math.atan2(e*t.x,e*t.y)),this.sphere)return i=F1(this.long0+r/this.ns,this.over),a=q5(this.g-n/this.a),t.x=i,t.y=a,t;var o=this.g-n/this.a;return a=fr(o,this.e0,this.e1,this.e2,this.e3),i=F1(this.long0+r/this.ns,this.over),t.x=i,t.y=a,t}var pU=["Equidistant_Conic","eqdc"];const gU={init:fU,forward:hU,inverse:mU,names:pU};function yU(){this.R=this.a}function vU(t){var e=t.x,n=t.y,a=F1(e-this.long0,this.over),i,r;Math.abs(n)<=E1&&(i=this.x0+this.R*a,r=this.y0);var o=W5(2*Math.abs(n/Math.PI));(Math.abs(a)<=E1||Math.abs(Math.abs(n)-p1)<=E1)&&(i=this.x0,n>=0?r=this.y0+Math.PI*this.R*Math.tan(.5*o):r=this.y0+Math.PI*this.R*-Math.tan(.5*o));var s=.5*Math.abs(Math.PI/a-a/Math.PI),u=s*s,m=Math.sin(o),p=Math.cos(o),f=p/(m+p-1),g=f*f,C=f*(2/m-1),F=C*C,z=Math.PI*this.R*(s*(f-F)+Math.sqrt(u*(f-F)*(f-F)-(F+u)*(g-F)))/(F+u);a<0&&(z=-z),i=this.x0+z;var Y=u+f;return z=Math.PI*this.R*(C*Y-s*Math.sqrt((F+u)*(u+1)-Y*Y))/(F+u),n>=0?r=this.y0+z:r=this.y0-z,t.x=i,t.y=r,t}function SU(t){var e,n,a,i,r,o,s,u,m,p,f,g,C;return t.x-=this.x0,t.y-=this.y0,f=Math.PI*this.R,a=t.x/f,i=t.y/f,r=a*a+i*i,o=-Math.abs(i)*(1+r),s=o-2*i*i+a*a,u=-2*o+1+2*i*i+r*r,C=i*i/u+(2*s*s*s/u/u/u-9*o*s/u/u)/27,m=(o-s*s/3/u)/u,p=2*Math.sqrt(-m/3),f=3*C/m/p,Math.abs(f)>1&&(f>=0?f=1:f=-1),g=Math.acos(f)/3,t.y>=0?n=(-p*Math.cos(g+Math.PI/3)-s/3/u)*Math.PI:n=-(-p*Math.cos(g+Math.PI/3)-s/3/u)*Math.PI,Math.abs(a)1e-12&&--z>0);return z===0?{azi1:NaN,s12:NaN}:(p3=Q2*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),l3=1+p3/16384*(4096+p3*(-768+p3*(320-175*p3))),b3=p3/1024*(256+p3*(-128+p3*(74-47*p3))),N3=b3*v2*(X2+b3/4*(y2*(-1+2*X2*X2)-b3/6*X2*(-3+4*v2*v2)*(-3+4*X2*X2))),_3=i*(1-r)*l3*(A2-N3),{azi1:Math.atan2(g*Y,p*f-m*g*i2),s12:_3})}function CU(t,e,n,a,i,r){const o=Math.atan((1-r)*Math.tan(t)),s=Math.sin(o),u=Math.cos(o),m=Math.sin(n),p=Math.cos(n),f=Math.atan2(s,u*p),g=u*m,C=1-g*g,F=C*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),z=1+F/16384*(4096+F*(-768+F*(320-175*F))),Y=F/1024*(256+F*(-128+F*(74-47*F)));let i2=a/(i*(1-r)*z),v2,y2=100,A2,S2,Q2,X2;do A2=Math.cos(2*f+i2),S2=Math.sin(i2),Q2=Math.cos(i2),X2=Y*S2*(A2+Y/4*(Q2*(-1+2*A2*A2)-Y/6*A2*(-3+4*S2*S2)*(-3+4*A2*A2))),v2=i2,i2=a/(i*(1-r)*z)+X2;while(Math.abs(i2-v2)>1e-12&&--y2>0);if(y2===0)return{lat2:NaN,lon2:NaN};const c3=s*S2-u*Q2*p,p3=Math.atan2(s*Q2+u*S2*p,(1-r)*Math.sqrt(g*g+c3*c3)),l3=Math.atan2(S2*m,u*Q2-s*S2*p),b3=r/16*C*(4+r*(4-3*C)),N3=l3-(1-b3)*r*g*(i2+b3*S2*(A2+b3*Q2*(-1+2*A2*A2))),_3=e+N3;return{lat2:p3,lon2:_3}}function AU(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function _U(t){var e=t.x,n=t.y,a=Math.sin(t.y),i=Math.cos(t.y),r=F1(e-this.long0,this.over),o,s,u,m,p,f,g,C,F,z,Y;return this.sphere?Math.abs(this.sin_p12-1)<=E1?(t.x=this.x0+this.a*(p1-n)*Math.sin(r),t.y=this.y0-this.a*(p1-n)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=E1?(t.x=this.x0+this.a*(p1+n)*Math.sin(r),t.y=this.y0+this.a*(p1+n)*Math.cos(r),t):(F=this.sin_p12*a+this.cos_p12*i*Math.cos(r),g=Math.acos(F),C=g?g/Math.sin(g):1,t.x=this.x0+this.a*C*i*Math.sin(r),t.y=this.y0+this.a*C*(this.cos_p12*a-this.sin_p12*i*Math.cos(r)),t):(o=za(this.es),s=Ya(this.es),u=$a(this.es),m=Wa(this.es),Math.abs(this.sin_p12-1)<=E1?(p=this.a*an(o,s,u,m,p1),f=this.a*an(o,s,u,m,n),t.x=this.x0+(p-f)*Math.sin(r),t.y=this.y0-(p-f)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=E1?(p=this.a*an(o,s,u,m,p1),f=this.a*an(o,s,u,m,n),t.x=this.x0+(p+f)*Math.sin(r),t.y=this.y0+(p+f)*Math.cos(r),t):Math.abs(e)2*p1*this.a?void 0:(n=e/this.a,a=Math.sin(n),i=Math.cos(n),r=this.long0,Math.abs(e)<=E1?o=this.lat0:(o=W5(i*this.sin_p12+t.y*a*this.cos_p12/e),s=Math.abs(this.lat0)-p1,Math.abs(s)<=E1?this.lat0>=0?r=F1(this.long0+Math.atan2(t.x,-t.y),this.over):r=F1(this.long0-Math.atan2(-t.x,t.y),this.over):r=F1(this.long0+Math.atan2(t.x*a,e*this.cos_p12*i-t.y*this.sin_p12*a),this.over)),t.x=r,t.y=o,t)):(u=za(this.es),m=Ya(this.es),p=$a(this.es),f=Wa(this.es),Math.abs(this.sin_p12-1)<=E1?(g=this.a*an(u,m,p,f,p1),e=Math.sqrt(t.x*t.x+t.y*t.y),C=g-e,o=fr(C/this.a,u,m,p,f),r=F1(this.long0+Math.atan2(t.x,-1*t.y),this.over),t.x=r,t.y=o,t):Math.abs(this.sin_p12+1)<=E1?(g=this.a*an(u,m,p,f,p1),e=Math.sqrt(t.x*t.x+t.y*t.y),C=e-g,o=fr(C/this.a,u,m,p,f),r=F1(this.long0+Math.atan2(t.x,t.y),this.over),t.x=r,t.y=o,t):(F=Math.atan2(t.x,t.y),z=Math.sqrt(t.x*t.x+t.y*t.y),Y=CU(this.lat0,this.long0,F,z,this.a,this.f),t.x=Y.lon2,t.y=Y.lat2,t))}var MU=["Azimuthal_Equidistant","aeqd"];const PU={init:AU,forward:_U,inverse:xU,names:MU};function kU(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function EU(t){var e,n,a,i,r,o,s,u,m=t.x,p=t.y;return a=F1(m-(this.long0||0),this.over),e=Math.sin(p),n=Math.cos(p),i=Math.cos(a),o=this.sin_p14*e+this.cos_p14*n*i,r=1,(o>0||Math.abs(o)<=E1)&&(s=this.a*r*n*Math.sin(a),u=(this.y0||0)+this.a*r*(this.cos_p14*e-this.sin_p14*n*i)),t.x=s,t.y=u,t}function NU(t){var e,n,a,i,r,o,s,u,m;return t.x-=this.x0||0,t.y-=this.y0||0,e=Math.sqrt(t.x*t.x+t.y*t.y),n=W5(e/this.a),a=Math.sin(n),i=Math.cos(n),u=this.long0||0,m=this.lat0||0,o=u,Math.abs(e)<=E1?(s=m,t.x=o,t.y=s,t):(s=W5(i*this.sin_p14+t.y*a*this.cos_p14/e),r=Math.abs(m)-p1,Math.abs(r)<=E1?(m>=0?o=F1(u+Math.atan2(t.x,-t.y),this.over):o=F1(u-Math.atan2(-t.x,t.y),this.over),t.x=o,t.y=s,t):(o=F1(u+Math.atan2(t.x*a,e*this.cos_p14*i-t.y*this.sin_p14*a),this.over),t.x=o,t.y=s,t))}var RU=["ortho"];const LU={init:kU,forward:EU,inverse:NU,names:RU};var Qe={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},Ee={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function IU(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=p1-ke/2?this.face=Qe.TOP:this.lat0<=-(p1-ke/2)?this.face=Qe.BOTTOM:Math.abs(this.long0)<=ke?this.face=Qe.FRONT:Math.abs(this.long0)<=p1+ke?this.face=this.long0>0?Qe.RIGHT:Qe.LEFT:this.face=Qe.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function FU(t){var e={x:0,y:0},n,a,i,r,o,s,u={value:0};if(t.x-=this.long0,this.es!==0?n=Math.atan(this.one_minus_f_squared*Math.tan(t.y)):n=t.y,a=t.x,this.face===Qe.TOP)r=p1-n,a>=ke&&a<=p1+ke?(u.value=Ee.AREA_0,i=a-p1):a>p1+ke||a<=-(p1+ke)?(u.value=Ee.AREA_1,i=a>0?a-dt:a+dt):a>-(p1+ke)&&a<=-ke?(u.value=Ee.AREA_2,i=a+p1):(u.value=Ee.AREA_3,i=a);else if(this.face===Qe.BOTTOM)r=p1+n,a>=ke&&a<=p1+ke?(u.value=Ee.AREA_0,i=-a+p1):a=-ke?(u.value=Ee.AREA_1,i=-a):a<-ke&&a>=-(p1+ke)?(u.value=Ee.AREA_2,i=-a-p1):(u.value=Ee.AREA_3,i=a>0?-a+dt:-a-dt);else{var m,p,f,g,C,F,z;this.face===Qe.RIGHT?a=M8(a,+p1):this.face===Qe.BACK?a=M8(a,+dt):this.face===Qe.LEFT&&(a=M8(a,-p1)),g=Math.sin(n),C=Math.cos(n),F=Math.sin(a),z=Math.cos(a),m=C*z,p=C*F,f=g,this.face===Qe.FRONT?(r=Math.acos(m),i=wi(r,f,p,u)):this.face===Qe.RIGHT?(r=Math.acos(p),i=wi(r,f,-m,u)):this.face===Qe.BACK?(r=Math.acos(-m),i=wi(r,f,-p,u)):this.face===Qe.LEFT?(r=Math.acos(-p),i=wi(r,f,m,u)):(r=i=0,u.value=Ee.AREA_0)}return s=Math.atan(12/dt*(i+Math.acos(Math.sin(i)*Math.cos(ke))-p1)),o=Math.sqrt((1-Math.cos(r))/(Math.cos(s)*Math.cos(s))/(1-Math.cos(Math.atan(1/Math.cos(i))))),u.value===Ee.AREA_1?s+=p1:u.value===Ee.AREA_2?s+=dt:u.value===Ee.AREA_3&&(s+=1.5*dt),e.x=o*Math.cos(s),e.y=o*Math.sin(s),e.x=e.x*this.a+this.x0,e.y=e.y*this.a+this.y0,t.x=e.x,t.y=e.y,t}function BU(t){var e={lam:0,phi:0},n,a,i,r,o,s,u,m,p,f={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,a=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),n=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?f.value=Ee.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(f.value=Ee.AREA_1,n-=p1):t.x<0&&-t.x>=Math.abs(t.y)?(f.value=Ee.AREA_2,n=n<0?n+dt:n-dt):(f.value=Ee.AREA_3,n+=p1),p=dt/12*Math.tan(n),o=Math.sin(p)/(Math.cos(p)-1/Math.sqrt(2)),s=Math.atan(o),i=Math.cos(n),r=Math.tan(a),u=1-i*i*r*r*(1-Math.cos(Math.atan(1/Math.cos(s)))),u<-1?u=-1:u>1&&(u=1),this.face===Qe.TOP)m=Math.acos(u),e.phi=p1-m,f.value===Ee.AREA_0?e.lam=s+p1:f.value===Ee.AREA_1?e.lam=s<0?s+dt:s-dt:f.value===Ee.AREA_2?e.lam=s-p1:e.lam=s;else if(this.face===Qe.BOTTOM)m=Math.acos(u),e.phi=m-p1,f.value===Ee.AREA_0?e.lam=-s+p1:f.value===Ee.AREA_1?e.lam=-s:f.value===Ee.AREA_2?e.lam=-s-p1:e.lam=s<0?-s-dt:-s+dt;else{var g,C,F;g=u,p=g*g,p>=1?F=0:F=Math.sqrt(1-p)*Math.sin(s),p+=F*F,p>=1?C=0:C=Math.sqrt(1-p),f.value===Ee.AREA_1?(p=C,C=-F,F=p):f.value===Ee.AREA_2?(C=-C,F=-F):f.value===Ee.AREA_3&&(p=C,C=F,F=-p),this.face===Qe.RIGHT?(p=g,g=-C,C=p):this.face===Qe.BACK?(g=-g,C=-C):this.face===Qe.LEFT&&(p=g,g=C,C=-p),e.phi=Math.acos(-F)-p1,e.lam=Math.atan2(C,g),this.face===Qe.RIGHT?e.lam=M8(e.lam,-p1):this.face===Qe.BACK?e.lam=M8(e.lam,-dt):this.face===Qe.LEFT&&(e.lam=M8(e.lam,+p1))}if(this.es!==0){var z,Y,i2;z=e.phi<0?1:0,Y=Math.tan(e.phi),i2=this.b/Math.sqrt(Y*Y+this.one_minus_f_squared),e.phi=Math.atan(Math.sqrt(this.a*this.a-i2*i2)/(this.one_minus_f*i2)),z&&(e.phi=-e.phi)}return e.lam+=this.long0,t.x=e.lam,t.y=e.phi,t}function wi(t,e,n,a){var i;return tke&&i<=p1+ke?(a.value=Ee.AREA_1,i-=p1):i>p1+ke||i<=-(p1+ke)?(a.value=Ee.AREA_2,i=i>=0?i-dt:i+dt):(a.value=Ee.AREA_3,i+=p1)),i}function M8(t,e){var n=t+e;return n<-dt?n+=Aa:n>+dt&&(n-=Aa),n}var DU=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"];const GU={init:IU,forward:FU,inverse:BU,names:DU};var Dl=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],ea=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],Ng=.8487,Rg=1.3523,Lg=Mn/5,UU=1/Lg,y8=18,hr=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))},OU=function(t,e){return t[1]+e*(2*t[2]+e*3*t[3])};function jU(t,e,n,a){for(var i=e;a;--a){var r=t(i);if(i-=r,Math.abs(r)=y8&&(a=y8-1),n=Mn*(n-UU*a);var i={x:hr(Dl[a],n)*e,y:hr(ea[a],n)};return t.y<0&&(i.y=-i.y),i.x=i.x*this.a*Ng+this.x0,i.y=i.y*this.a*Rg+this.y0,i}function $U(t){var e={x:(t.x-this.x0)/(this.a*Ng),y:Math.abs(t.y-this.y0)/(this.a*Rg)};if(e.y>=1)e.x/=Dl[y8][0],e.y=t.y<0?-p1:p1;else{var n=Math.floor(e.y*y8);for(n<0?n=0:n>=y8&&(n=y8-1);;)if(ea[n][0]>e.y)--n;else if(ea[n+1][0]<=e.y)++n;else break;var a=ea[n],i=5*(e.y-a[0])/(ea[n+1][0]-a[0]);i=jU(function(r){return(hr(a,r)-e.y)/OU(a,r)},i,E1,100),e.x/=hr(Dl[n],i),e.y=(5*n+i)*at,t.y<0&&(e.y=-e.y)}return e.x=F1(e.x+this.long0,this.over),e}var WU=["Robinson","robin"];const VU={init:zU,forward:YU,inverse:$U,names:WU};function HU(){this.name="geocent"}function KU(t){var e=yg(t,this.es,this.a);return e}function qU(t){var e=vg(t,this.es,this.a,this.b);return e}var JU=["Geocentric","geocentric","geocent","Geocent"];const QU={init:HU,forward:KU,inverse:qU,names:JU};var Wt={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},z4={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function ZU(){if(Object.keys(z4).forEach(function(n){if(typeof this[n]=="undefined")this[n]=z4[n].def;else{if(z4[n].num&&isNaN(this[n]))throw new Error("Invalid parameter value, must be numeric "+n+" = "+this[n]);z4[n].num&&(this[n]=parseFloat(this[n]))}z4[n].degrees&&(this[n]=this[n]*at)}.bind(this)),Math.abs(Math.abs(this.lat0)-p1)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,e=this.azi;this.cg=Math.cos(e),this.sg=Math.sin(e),this.cw=Math.cos(t),this.sw=Math.sin(t)}function XU(t){t.x-=this.long0;var e=Math.sin(t.y),n=Math.cos(t.y),a=Math.cos(t.x),i,r;switch(this.mode){case Wt.OBLIQ:r=this.sinph0*e+this.cosph0*n*a;break;case Wt.EQUIT:r=n*a;break;case Wt.S_POLE:r=-e;break;case Wt.N_POLE:r=e;break}switch(r=this.pn1/(this.p-r),i=r*n*Math.sin(t.x),this.mode){case Wt.OBLIQ:r*=this.cosph0*e-this.sinph0*n*a;break;case Wt.EQUIT:r*=e;break;case Wt.N_POLE:r*=-(n*a);break;case Wt.S_POLE:r*=n*a;break}var o,s;return o=r*this.cg+i*this.sg,s=1/(o*this.sw*this.h1+this.cw),i=(i*this.cg-r*this.sg)*this.cw*s,r=o*s,t.x=i*this.a,t.y=r*this.a,t}function eO(t){t.x/=this.a,t.y/=this.a;var e={x:t.x,y:t.y},n,a,i;i=1/(this.pn1-t.y*this.sw),n=this.pn1*t.x*i,a=this.pn1*t.y*this.cw*i,t.x=n*this.cg+a*this.sg,t.y=a*this.cg-n*this.sg;var r=Cn(t.x,t.y);if(Math.abs(r)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function iO(t){var e=t.x,n=t.y,a,i,r,o;if(e=e-this.long0,this.shape==="ellipse"){n=Math.atan(this.radius_p2*Math.tan(n));var s=this.radius_p/Cn(this.radius_p*Math.cos(n),Math.sin(n));if(i=s*Math.cos(e)*Math.cos(n),r=s*Math.sin(e)*Math.cos(n),o=s*Math.sin(n),(this.radius_g-i)*i-r*r-o*o*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/Cn(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/Cn(r,a)))}else this.shape==="sphere"&&(a=Math.cos(n),i=Math.cos(e)*a,r=Math.sin(e)*a,o=Math.sin(n),a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/Cn(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/Cn(r,a))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function rO(t){var e=-1,n=0,a=0,i,r,o,s;if(t.x=t.x/this.a,t.y=t.y/this.a,this.shape==="ellipse"){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),n=Math.tan(t.x/this.radius_g_1)*Cn(1,a)):(n=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Cn(1,n));var u=a/this.radius_p;if(i=n*n+u*u+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;s=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+s*e,n*=s,a*=s,t.x=Math.atan2(n,e),t.y=Math.atan(a*Math.cos(t.x)/e),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if(this.shape==="sphere"){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),n=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(n=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+n*n)),i=n*n+a*a+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;s=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+s*e,n*=s,a*=s,t.x=Math.atan2(n,e),t.y=Math.atan(a*Math.cos(t.x)/e)}return t.x=t.x+this.long0,t}var oO=["Geostationary Satellite View","Geostationary_Satellite","geos"];const sO={init:aO,forward:iO,inverse:rO,names:oO};var ra=1.340264,oa=-.081106,sa=893e-6,la=.003796,mr=Math.sqrt(3)/2;function lO(){this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.es!==0&&(this.apa=Mg(this.es),this.qp=z6(this.e,1),this.rqda=Math.sqrt(.5*this.qp))}function uO(t){var e=F1(t.x-this.long0,this.over),n=t.y,a=Math.sin(n);this.es!==0&&(a=z6(this.e,a)/this.qp);var i=Math.asin(mr*a),r=i*i,o=r*r*r;return t.x=e*Math.cos(i)/(mr*(ra+3*oa*r+o*(7*sa+9*la*r))),t.y=i*(ra+oa*r+o*(sa+la*r)),this.es!==0&&(t.x*=this.rqda,t.y*=this.rqda),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function cO(t){t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,this.es!==0&&(t.x/=this.rqda,t.y/=this.rqda);var e=1e-9,n=12,a=t.y,i,r,o,s,u,m;for(m=0;m=p1?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=yO,this.forward=gO)}function mO(t){var e=F1(t.x-(this.long0||0),this.over),n=t.y,a,i,r;return a=this.am1+this.m1-W8(n,i=Math.sin(n),r=Math.cos(n),this.en),i=r*e/(a*Math.sqrt(1-this.es*i*i)),t.x=a*Math.sin(i),t.y=this.am1-a*Math.cos(i),t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function pO(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,n,a,i;if(n=Cn(t.x,t.y=this.am1-t.y),i=bu(this.am1+this.m1-n,this.es,this.en),(e=Math.abs(i))Ma?(t.x=i*Math.sin(a=e*Math.cos(n)/i),t.y=this.cphi1-i*Math.cos(a)):t.x=t.y=0,t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function yO(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,n,a=Cn(t.x,t.y=this.cphi1-t.y);if(n=this.cphi1+this.phi1-a,Math.abs(n)>p1)throw new Error;return Math.abs(Math.abs(n)-p1)<=Ma?e=0:e=a*Math.atan2(t.x,t.y)/Math.cos(n),t.x=F1(e+(this.long0||0),this.over),t.y=q5(n),t}var vO=["bonne","Bonne (Werner lat_1=90)"];const SO={init:hO,names:vO},Wh={OBLIQUE:{forward:AO,inverse:xO},TRANSVERSE:{forward:_O,inverse:MO}},pr={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function wO(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=hg.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);const t=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),e=t6(t);if(!e)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);e.long0=0,this.obliqueProjection=e;let n;const a=Object.keys(pr),i=s=>{if(typeof this[s]=="undefined")return;const u=parseFloat(this[s])*at;if(isNaN(u))throw new Error("Invalid value for "+s+": "+this[s]);return u};for(let s=0;stypeof this[g]!="undefined")){n=m;for(let g=0;gE1?(this.cphip=Math.cos(o),this.sphip=Math.sin(o),this.projectionType=Wh.OBLIQUE):this.projectionType=Wh.TRANSVERSE}function bO(t){return this.projectionType.forward(this,t)}function TO(t){return this.projectionType.inverse(this,t)}function CO(t,e){let n,a;if(e===pr.ROTATE){let i=t.oLongC,r=t.oLatC,o=t.oAlpha;if(Math.abs(Math.abs(r)-p1)<=E1)throw new Error("Invalid value for o_lat_c: "+t.o_lat_c+" should be < 90°");a=i+Math.atan2(-1*Math.cos(o),-1*Math.sin(o)*Math.sin(r)),n=Math.asin(Math.cos(r)*Math.sin(o))}else if(e===pr.NEW_POLE)a=t.oLongP,n=t.oLatP;else{let i=t.oLong1,r=t.oLat1,o=t.oLong2,s=t.oLat2,u=Math.abs(r);if(Math.abs(r)>p1-E1)throw new Error("Invalid value for o_lat_1: "+t.o_lat_1+" should be < 90°");if(Math.abs(s)>p1-E1)throw new Error("Invalid value for o_lat_2: "+t.o_lat_2+" should be < 90°");if(Math.abs(r-s)new DecompressionStream("deflate-raw"),e=n=>new Response(n);t(),Ig=n=>e(e(n).body.pipeThrough(t())).arrayBuffer().then(a=>new Uint8Array(a))}catch(t){}var Ig,Vh=new TextDecoder,Os=t=>{throw Error("but-unzip~"+t)};function*NO(t,e=Ig){let n=t.length-21,a=n-65536,i=new DataView(t.buffer,t.byteOffset),r=u=>i.getUint16(u+n,1),o=u=>i.getUint32(u+n,1),s=(u,m)=>t.subarray(n+=u,n+=m);for(;n>a&&(n=t.lastIndexOf(80,n-1))+1&&(t[n+1]-75||t[n+2]-5||t[n+3]-6););for(n<0&&Os(2),a=r(10),a-r(8)&&Os(3),n=o(16);a--;){let u=r(10),m=r(28),p=r(30),f=r(32),g=o(20),C=o(42),F=Vh.decode(s(46,m)),z=Vh.decode(s(p,f)),Y=n,i2;n=C,i2=s(30+r(26)+r(28),g),yield{filename:F,comment:z,read:()=>u-8?u?Os(1):i2:e(i2)},n=Y}}const RO=/.+\.(shp|dbf|json|prj|cpg)$/i,LO=t=>L3(void 0,null,function*(){const e={},n=[];for(const r of NO(t))RO.test(r.filename)&&n.push(Promise.resolve(r.read()).then(o=>e[r.filename]=o));yield Promise.all(n);const a={},i=new TextDecoder;for(const[r,o]of Object.entries(e))r.slice(-3).toLowerCase()==="shp"||r.slice(-3).toLowerCase()==="dbf"?a[r]=new DataView(o.buffer,o.byteOffset,o.byteLength):a[r]=i.decode(o);return a}),IO=globalThis.URL,FO=(t,e)=>{if(!e)return t;const n=new IO(t);return n.pathname=`${n.pathname}.${e}`,n.href};function Pa(t,e){return L3(this,null,function*(){const n=FO(t,e),a=e==="prj"||e==="cpg";try{const i=yield fetch(n);if(i.status>399)throw new Error(i.statusText);if(a)return i.text();const r=yield i.arrayBuffer();return new DataView(r)}catch(i){if(a||e==="dbf")return!1;throw i}})}function BO(t){let e=0,n=1;const a=t.length;let i,r;const o=[t[0][0],t[0][1],t[0][0],t[0][1]];for(;no[2]&&(o[2]=r[0]),r[1]>o[3]&&(o[3]=r[1]);return{ring:t,clockWise:e>0,bbox:o,children:[]}}function Hh(t,e){return!(t.bbox[0]>e.bbox[0]||t.bbox[1]>e.bbox[1]||t.bbox[2]m.toReversed())));return s}}const r=[];for(const o of n)r.push([o.ring].concat(o.children));return r}pt.prototype.parsePoint=function(t){return{type:"Point",coordinates:this.parseCoord(t,0)}};pt.prototype.parseZPoint=function(t){const e=this.parsePoint(t);return e.coordinates.push(t.getFloat64(16,!0)),e};pt.prototype.parsePointArray=function(t,e,n){const a=[];let i=0;for(;i20&&(e-=20),!(e in Kh))throw new Error(`I don't know shp type "${e}"`);this.parseFunc=this[Kh[e]],this.parseCoord=DO(t)};pt.prototype.getShpCode=function(){return this.parseHeader().shpCode};pt.prototype.parseHeader=function(){const t=this.buffer;return{length:t.getInt32(24)<<1,version:t.getInt32(28,!0),shpCode:t.getInt32(32,!0),bbox:[t.getFloat64(36,!0),t.getFloat64(44,!0),t.getFloat64(52,!0),t.getFloat64(60,!0)]}};pt.prototype.getRows=function(){let t=100;const e=this.buffer.byteLength-8,n=[];let a;for(;t<=e&&(a=this.getRow(t),!!a);)t+=8,t+=a.len,a.type?n.push(this.parseFunc(a.data)):n.push(null);return n};pt.prototype.getRow=function(t){const e=this.buffer.getInt32(t),n=this.buffer.getInt32(t+4)<<1;if(n===0)return{id:e,len:n,type:0};if(!(t+n+8>this.buffer.byteLength))return{id:e,len:n,data:new DataView(this.buffer.buffer,this.buffer.byteOffset+t+12,n-4),type:this.buffer.getInt32(t+8,!0)}};function Mu(t,e){return new pt(t,e).rows}var GO=/^(?:ANSI\s)?(\d+)$/m;function Bg(t,e){if(!t)return a;try{new TextDecoder(t.trim())}catch(i){var n=GO.exec(t);return n&&!e?Bg("windows-"+n[1],!0):(t=void 0,a)}return a;function a(i){var r=new TextDecoder(t||void 0),o=r.decode(i,{stream:!0})+r.decode();return o.replace(/\0/g,"").trim()}}function UO(t){var e={};return e.lastUpdated=new Date(t.getUint8(1)+1900,t.getUint8(2),t.getUint8(3)),e.records=t.getUint32(4,!0),e.headerLen=t.getUint16(8,!0),e.recLen=t.getUint16(10,!0),e}function OO(t,e,n){for(var a=[],i=32;i{if(!t)throw new Error("forgot to pass buffer");if(B8(t))return new Uint8Array(t);if(B8(t.buffer))return t.BYTES_PER_ELEMENT===1?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")},WO=new TextDecoder,Dg=t=>{if(t){if(typeof t=="string")return t;if(B8(t)||ArrayBuffer.isView(t)||ku(t))return WO.decode(t)}},Gg=t=>{if(!t)throw new Error("forgot to pass buffer");if(ku(t))return t;if(B8(t))return new DataView(t);if(B8(t.buffer))return new DataView(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")};function B8(t){return t instanceof globalThis.ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]"}function ku(t){return t instanceof globalThis.DataView||Object.prototype.toString.call(t)==="[object DataView]"}const Eu=function([t,e]){const n={};n.type="FeatureCollection",n.features=[];let a=0;const i=t.length;for(e||(e=[]);a-1?i.push(n.slice(0,-3)+n.slice(-3).toLowerCase()):(n.slice(-4).toLowerCase()===".dbf"||n.slice(-4).toLowerCase()===".cpg")&&(a[n.slice(0,-3)+n.slice(-3).toLowerCase()]=a[n]));if(!i.length)throw new Error("no layers founds");const r=i.map(function(o){let s,u;const m=o.lastIndexOf(".");return m>-1&&o.slice(m).indexOf("json")>-1?(s=JSON.parse(a[o]),s.fileName=o.slice(0,m)):e.indexOf(o.slice(m+1))>-1?(s=a[o],s.fileName=o):(a[o+".dbf"]&&(u=Pu(a[o+".dbf"],a[o+".cpg"])),s=Eu([Mu(a[o+".shp"],a[o+".prj"]),u]),s.fileName=o),s});return r.length===1?r[0]:r})};function VO(t,e){return L3(this,null,function*(){const n=yield Pa(t);return Ug(n,e)})}const HO=t=>L3(void 0,null,function*(){const e=yield Promise.all([Pa(t,"shp"),Pa(t,"prj")]);let n=!1;try{e[1]&&(n=Ur(e[1]))}catch(a){n=!1}return Mu(e[0],n)}),KO=t=>L3(void 0,null,function*(){const[e,n]=yield Promise.all([Pa(t,"dbf"),Pa(t,"cpg")]);if(e)return Pu(e,n)}),qh=(t,e)=>{var a;return new YO(t,(a=globalThis==null?void 0:globalThis.document)==null?void 0:a.location).pathname.slice(-4).toLowerCase()===e},qO=({shp:t,dbf:e,cpg:n,prj:a})=>{const i=[QO(t,a)];return e&&i.push(ZO(e,n)),Eu(i)},JO=function(t,e){return L3(this,null,function*(){if(typeof t!="string"){if(B8(t)||ArrayBuffer.isView(t)||ku(t))return Ug(t);if(t.shp)return qO(t);throw new TypeError("must be a string, some sort of Buffer, or an object with at least a .shp property")}if(qh(t,".zip"))return VO(t,e);qh(t,".shp")&&(t=t.slice(0,-4));const n=yield Promise.all([HO(t),KO(t)]);return Eu(n)})},QO=function(t,e){if(t=Gg(t),e=Dg(e),typeof e=="string")try{e=Ur(e)}catch(n){e=!1}return Mu(t,e)},ZO=function(t,e){return t=Gg(t),e=Dg(e),Pu(t,e)};const XO={class:"engineering-analysis-panel"},ej={class:"analysis-card-head"},tj={key:0},nj=["disabled"],aj=["disabled"],ij={key:1,class:"analysis-drawing-stage"},rj={class:"analysis-point-count"},oj=["disabled"],sj=["disabled"],lj={key:2,class:"analysis-boundary-bar"},uj={class:"analysis-card-head"},cj={key:0,class:"analysis-running"},dj={class:"analysis-conclusion-head"},fj={class:"analysis-conclusion-tags"},hj={key:2,class:"analysis-empty is-success"},mj={key:3,class:"analysis-project-list"},pj=["onPointerup"],gj={class:"analysis-project-name"},yj={class:"analysis-project-meta"},vj={__name:"EngineeringAnalysisPanel",props:{drawingPointCount:{type:Number,default:0}},emits:["drawing-change","finish-drawing","undo-point","clear-boundary","analysis-result","focus-project"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=a3(!1),o=a3(null),s=a3([]),u=a3([]),m=a3(""),p=a3("idle"),f=a3([]),g=a3("idle"),C=a3("");let F=null,z=0;const Y=r2(()=>{var w3;const x2=u.value.length,j2=s.value.length,H2=s.value.reduce((d1,O1)=>d1+Number(O1.overlapAreaWanMu||0),0);return{boundaryAreaWanMu:U1((w3=o.value)==null?void 0:w3.geometry),featureCount:x2,projectCount:j2,overlapAreaWanMu:H2}}),i2=r2(()=>m.value?m.value:y2.value?"自动分析中":p.value==="loading"?"项目库加载中":p.value==="error"?"项目库加载失败":""),v2=r2(()=>o.value?y2.value?"正在分析":g.value==="error"?"分析异常":s.value.length?"已发现建设记录":"未发现建设记录":"未分析"),y2=r2(()=>g.value==="running"),A2=r2(()=>!!o.value&&g.value==="done"),S2=r2(()=>y2.value?"正在自动分析":g.value==="error"?"分析失败":s.value.length?`命中 ${s.value.length} 项`:v2.value),Q2=r2(()=>r.value&&a.drawingPointCount>=3),X2=r2(()=>{if(!o.value)return{levelClass:"",verdict:"",summary:"",tags:[],advice:""};if(!s.value.length)return{levelClass:"is-clear",verdict:"未发现建设记录",summary:"该边界范围暂未与项目库中的已建设工程形成空间叠加。",tags:[`分析范围 ${T0(Y.value.boundaryAreaWanMu)} 万亩`,"项目库未命中"],advice:"可进入新增工程选址论证,仍需结合保护红线、审批台账和现场踏勘复核。"};const x2=oe(s.value),j2=z0(s.value),H2=[...s.value].sort((O1,V1)=>Number(V1.overlapAreaWanMu||0)-Number(O1.overlapAreaWanMu||0))[0],w3=S0(Y.value.overlapAreaWanMu),d1=s.value.length>=6||Y.value.overlapAreaWanMu>=1?"存在建设叠加":"存在局部叠加";return{levelClass:s.value.length>=6?"is-heavy":"is-hit",verdict:d1,summary:`该边界命中 ${s.value.length} 个历史项目,叠加约 ${w3} 亩,项目类型以${x2.name}为主,年份集中在 ${j2}。`,tags:[`主类型 ${x2.name}`,`年份 ${j2}`,`最大叠加 ${S0(H2==null?void 0:H2.overlapAreaWanMu)} 亩`],advice:`重点复核“${P0(H2==null?void 0:H2.projectName)}”(${(H2==null?void 0:H2.year)||"未知"},${(H2==null?void 0:H2.category)||"未知类型"})与拟建范围的重合边界。`}});jn(()=>{j1().catch(()=>{})});function c3(x2){return L3(this,null,function*(){var H2;const j2=(H2=x2.target.files)==null?void 0:H2[0];if(x2.target.value="",!!j2){m.value="";try{const w3=yield p3(j2);r.value&&(r.value=!1,i("drawing-change",!1)),i("clear-boundary"),yield M1(w3)}catch(w3){m.value="边界文件解析失败"}}})}function p3(x2){return L3(this,null,function*(){const j2=String(x2.name||"").toLowerCase();if(j2.endsWith(".json")||j2.endsWith(".geojson"))return l3(JSON.parse(yield x2.text()));if(j2.endsWith(".zip")){const H2=yield JO(yield x2.arrayBuffer());return l3(H2)}throw new Error("unsupported file")})}function l3(x2){const j2=G1(x2).filter(H2=>D3(H2==null?void 0:H2.geometry));if(j2.length)return s0(j2);throw new Error("no polygon")}function b3(){r.value||(z+=1,m.value="",g.value="idle",C.value="",r.value=!0,o.value=null,s.value=[],u.value=[],i("analysis-result",{boundary:null,matches:[],rows:[],summary:Y.value}),i("drawing-change",!0))}function N3(){r.value&&(z+=1,r.value=!1,g.value="idle",C.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:Y.value}))}function _3(){Q2.value&&i("finish-drawing")}function J3(){i("undo-point")}function R3(){z+=1,r.value=!1,o.value=null,s.value=[],u.value=[],m.value="",g.value="idle",C.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:Y.value})}function Z3(x2){x2!=null&&x2.geometry&&(r.value=!1,M1(x2))}function M1(x2){return L3(this,null,function*(){const j2=++z;o.value=x2,u.value=[],s.value=[],C.value="",m.value="",g.value="running";let H2=[];i("analysis-result",{boundary:x2,matches:[],rows:[],summary:Y.value});try{const w3=yield j1();if(j2!==z)return;H2=i0(x2,w3),u.value=H2,s.value=r0(H2),g.value="done"}catch(w3){if(j2!==z)return;m.value="项目库加载失败",g.value="error"}j2===z&&i("analysis-result",{boundary:x2,matches:H2,rows:s.value,summary:Y.value})})}function b1(x2){C.value=(x2==null?void 0:x2.key)||"",i("focus-project",t3(B2({},x2),{boundary:o.value}))}function j1(){return L3(this,null,function*(){return f.value.length?f.value:F||(p.value="loading",F=fetch(a1("datas/ecological-protection/ecological_restoration_projects.geojson"),{credentials:"include"}).then(j2=>{if(!j2.ok)throw new Error(`HTTP ${j2.status}`);return j2.json()}).then(j2=>{const H2=G1(j2).filter(w3=>{var d1;return(d1=w3==null?void 0:w3.geometry)==null?void 0:d1.coordinates}).map((w3,d1)=>t3(B2({},w3),{properties:t3(B2({},w3.properties||{}),{source_index:d1})}));return f.value=H2,p.value="success",H2}).catch(j2=>{throw p.value="error",F=null,j2}),F)})}function a1(x2){return x2?/^https?:\/\//.test(x2)||x2.startsWith("/")?x2:`./${x2}`:""}function G1(x2){return x2?Array.isArray(x2)?x2.flatMap(j2=>G1(j2)):x2.type==="FeatureCollection"?(x2.features||[]).filter(Boolean):x2.type==="Feature"?x2.geometry?[x2]:[]:F3(x2)?[{type:"Feature",properties:{},geometry:x2}]:typeof x2=="object"?Object.values(x2).flatMap(j2=>G1(j2)):[]:[]}function s0(x2){const j2=x2.flatMap(H2=>H2.geometry.type==="Polygon"?[H2.geometry.coordinates]:H2.geometry.coordinates);return j2.length===1?{type:"Feature",properties:x2[0].properties||{},geometry:{type:"Polygon",coordinates:j2[0]}}:{type:"Feature",properties:{sourceFeatureCount:x2.length},geometry:{type:"MultiPolygon",coordinates:j2}}}function i0(x2,j2=f.value){const H2=_1(x2.geometry);return j2.filter(w3=>q1(w3.geometry,x2.geometry,H2)).map(w3=>({feature:w3,properties:w3.properties||{},overlapAreaWanMu:i3(w3,x2.geometry)}))}function r0(x2){const j2=new Map;return x2.forEach(H2=>{const w3=H2.properties||{},d1=w3.project_name||w3.projectName||"未命名项目",O1=j2.get(d1)||{key:d1,projectName:d1,category:w3.project_category||"未知类型",year:w3.year||"未知",featureCount:0,overlapAreaWanMu:0,features:[],sourceIndex:Number(w3.source_index||0)};O1.featureCount+=1,O1.overlapAreaWanMu+=Number(H2.overlapAreaWanMu||0),O1.features.push(H2.feature),j2.set(d1,O1)}),[...j2.values()].map(H2=>t3(B2({},H2),{overlapAreaWanMu:Number(H2.overlapAreaWanMu.toFixed(4))}))}function q1(x2,j2,H2){if(!s1(_1(x2),H2))return!1;const w3=U2(j2);return w3.length?D3(x2)?h3(x2,w3):(x2==null?void 0:x2.type)==="Point"?u1(x2.coordinates,w3):(x2==null?void 0:x2.type)==="MultiPoint"?x2.coordinates.some(d1=>u1(d1,w3)):(x2==null?void 0:x2.type)==="LineString"?O3(x2.coordinates,w3):(x2==null?void 0:x2.type)==="MultiLineString"?x2.coordinates.some(d1=>O3(d1,w3)):!1:!1}function h3(x2,j2){const H2=U2(x2);return H2.length?H2.some(w3=>w3.some(d1=>u1(d1,j2)))||j2.some(w3=>w3.some(d1=>u1(d1,H2)))||H2.some(w3=>j2.some(d1=>S3(w3,d1))):!1}function O3(x2=[],j2){return!Array.isArray(x2)||!x2.length?!1:x2.some(H2=>u1(H2,j2))?!0:j2.some(H2=>V3(x2,H2))}function V3(x2,j2){for(let H2=1;H2Z1+Y0.filter(d0=>u1(d0,d1)).length,0),F0=w3.reduce((Z1,Y0)=>Z1+Y0.length,0);return I0?Number((O1*Math.max(.08,Math.min(1,I0/Math.max(F0,1)))).toFixed(4)):d1.reduce((Z1,Y0)=>Z1+Y0.filter(d0=>u1(d0,w3)).length,0)?Number(Math.min(O1,V1).toFixed(4)):w3.some(Z1=>d1.some(Y0=>S3(Z1,Y0)))?Number((Math.min(O1,V1)*.12).toFixed(4)):0}function U2(x2){var j2;return(x2==null?void 0:x2.type)==="Polygon"?[((j2=x2.coordinates)==null?void 0:j2[0])||[]]:(x2==null?void 0:x2.type)==="MultiPolygon"?x2.coordinates.map(H2=>(H2==null?void 0:H2[0])||[]).filter(H2=>H2.length):[]}function D3(x2){return(x2==null?void 0:x2.type)==="Polygon"||(x2==null?void 0:x2.type)==="MultiPolygon"}function F3(x2){return["Polygon","MultiPolygon","LineString","MultiLineString","Point","MultiPoint"].includes(x2==null?void 0:x2.type)}function u1(x2,j2){return j2.some(H2=>A1(x2,H2))}function A1(x2,j2){var O1,V1,I0,F0;let H2=!1;const w3=Number(x2==null?void 0:x2[0]),d1=Number(x2==null?void 0:x2[1]);for(let O0=0,Z1=j2.length-1;O0d1!=Re>d1&&w3<(de-Y0)*(d1-d0)/(Re-d0)+Y0&&(H2=!H2)}return H2}function S3(x2,j2){for(let H2=1;H2(Number(Z1[0])-Number(O0[0]))*(Number(Y0[1])-Number(O0[1]))-(Number(Z1[1])-Number(O0[1]))*(Number(Y0[0])-Number(O0[0])),O1=d1(x2,j2,H2),V1=d1(x2,j2,w3),I0=d1(H2,w3,x2),F0=d1(H2,w3,j2);return O1===0&&H3(H2,x2,j2)||V1===0&&H3(w3,x2,j2)||I0===0&&H3(x2,H2,w3)||F0===0&&H3(j2,H2,w3)?!0:(O1>0&&V1<0||O1<0&&V1>0)&&(I0>0&&F0<0||I0<0&&F0>0)}function C3(x2,j2,H2,w3){const d1=G0([x2,j2]),O1=G0([H2,w3]);return s1(d1,O1)}function H3(x2,j2,H2){const w3=Number(x2==null?void 0:x2[0]),d1=Number(x2==null?void 0:x2[1]),O1=Number(j2==null?void 0:j2[0]),V1=Number(j2==null?void 0:j2[1]),I0=Number(H2==null?void 0:H2[0]),F0=Number(H2==null?void 0:H2[1]),O0=(w3-O1)*(F0-V1)-(d1-V1)*(I0-O1);return Math.abs(O0)>1e-10?!1:w3>=Math.min(O1,I0)-1e-10&&w3<=Math.max(O1,I0)+1e-10&&d1>=Math.min(V1,F0)-1e-10&&d1<=Math.max(V1,F0)+1e-10}function _1(x2){const j2=[];return N1(x2==null?void 0:x2.coordinates,j2),j2.length?j2.reduce((H2,w3)=>({minLng:Math.min(H2.minLng,Number(w3[0])),minLat:Math.min(H2.minLat,Number(w3[1])),maxLng:Math.max(H2.maxLng,Number(w3[0])),maxLat:Math.max(H2.maxLat,Number(w3[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}function s1(x2,j2){return!x2||!j2?!1:!(x2.maxLngj2.maxLng||x2.maxLatj2.maxLat)}function B1(x2){return U1(x2==null?void 0:x2.geometry)}function U1(x2){return(x2==null?void 0:x2.type)==="Polygon"?R1(x2.coordinates):(x2==null?void 0:x2.type)==="MultiPolygon"?x2.coordinates.reduce((j2,H2)=>j2+R1(H2),0):0}function R1(x2=[]){const j2=x2[0]||[];if(j2.length<3)return 0;const H2=j2.reduce((V1,I0)=>V1+Number(I0[1]||0),0)/j2.length,w3=111320*Math.cos(H2*Math.PI/180),d1=110540;let O1=0;for(let V1=0;V1N1(H2,j2))}}function G0(x2){return x2.reduce((j2,H2)=>({minLng:Math.min(j2.minLng,Number(H2==null?void 0:H2[0])),minLat:Math.min(j2.minLat,Number(H2==null?void 0:H2[1])),maxLng:Math.max(j2.maxLng,Number(H2==null?void 0:H2[0])),maxLat:Math.max(j2.maxLat,Number(H2==null?void 0:H2[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY})}function T0(x2){const j2=Number(x2||0);return Number.isFinite(j2)?Number(j2.toFixed(j2>=10?2:4)).toString():"0"}function S0(x2){const j2=Number(x2||0)*1e4;return Number.isFinite(j2)?j2>=1e3?Number(j2.toFixed(0)).toLocaleString("zh-CN"):j2>=10?Number(j2.toFixed(1)).toLocaleString("zh-CN"):Number(j2.toFixed(2)).toString():"0"}function oe(x2=[]){const j2=new Map;return x2.forEach(H2=>{const w3=H2.category||"未知类型",d1=j2.get(w3)||{name:w3,count:0,area:0};d1.count+=1,d1.area+=Number(H2.overlapAreaWanMu||0),j2.set(w3,d1)}),[...j2.values()].sort((H2,w3)=>w3.area-H2.area||w3.count-H2.count)[0]||{name:"未知类型",count:0,area:0}}function z0(x2=[]){const j2=x2.map(d1=>Number(d1.year)).filter(d1=>Number.isFinite(d1));if(!j2.length)return"未知年份";const H2=Math.min(...j2),w3=Math.max(...j2);return H2===w3?`${H2} 年`:`${H2}-${w3} 年`}function P0(x2,j2=18){const H2=String(x2||"未命名项目");return H2.length>j2?`${H2.slice(0,j2)}...`:H2}return e({applyDrawnBoundary:Z3}),(x2,j2)=>(O(),V("div",XO,[S("div",{class:o1(["analysis-card analysis-workbench",{"is-running":y2.value,"is-complete":A2.value}])},[S("div",ej,[j2[0]||(j2[0]=S("span",null,"生态工程分析",-1)),i2.value?(O(),V("strong",tj,l2(i2.value),1)):U3("",!0)]),r.value?U3("",!0):(O(),V("div",{key:0,class:o1(["analysis-operation",{"has-boundary":o.value}])},[S("label",{class:o1(["analysis-entry is-upload",{"is-disabled":r.value||y2.value}])},[S("input",{type:"file",accept:".zip,.json,.geojson",disabled:r.value||y2.value,onChange:c3},null,40,nj),S("span",null,l2(o.value?"更换边界":"上传边界"),1),j2[1]||(j2[1]=S("strong",null,"SHP / GeoJSON",-1))],2),S("button",{type:"button",class:"analysis-entry is-draw",disabled:r.value||y2.value,onPointerup:ue(b3,["stop","prevent"])},[S("span",null,l2(o.value?"重新绘制":"在线绘制"),1),j2[2]||(j2[2]=S("strong",null,"地图圈定",-1))],40,aj)],2)),r.value?(O(),V("div",ij,[S("div",rj,[j2[3]||(j2[3]=S("span",null,"已落点",-1)),S("strong",null,l2(t.drawingPointCount),1),j2[4]||(j2[4]=S("em",null,"点",-1)),j2[5]||(j2[5]=S("small",null,"至少 3 点",-1))]),S("button",{type:"button",class:"analysis-control is-primary",disabled:!Q2.value||y2.value,onPointerup:ue(_3,["stop","prevent"])}," 完成绘制 ",40,oj),S("button",{type:"button",class:"analysis-control",disabled:!t.drawingPointCount,onPointerup:ue(J3,["stop","prevent"])},"撤销",40,sj),S("button",{type:"button",class:"analysis-control is-danger",onPointerup:ue(N3,["stop","prevent"])},"删除图形",32)])):o.value?(O(),V("div",lj,[j2[6]||(j2[6]=S("span",null,"边界已加载",-1)),S("strong",null,l2(S2.value),1),S("button",{type:"button",onPointerup:ue(R3,["stop","prevent"])},"删除图形",32)])):U3("",!0)],2),o.value?(O(),V("div",{key:0,class:o1(["analysis-card analysis-result",{"is-running":y2.value,"is-empty":A2.value&&!s.value.length}])},[S("div",uj,[j2[7]||(j2[7]=S("span",null,"建设记录核查",-1)),S("strong",null,l2(v2.value),1)]),y2.value?(O(),V("div",cj,[...j2[8]||(j2[8]=[S("div",{class:"analysis-running-orbit","aria-hidden":"true"},null,-1),S("div",null,[S("strong",null,"空间叠加分析中"),S("span",null,"正在核对边界与建设项目库")],-1)])])):(O(),V("div",{key:1,class:o1(["analysis-conclusion",X2.value.levelClass])},[S("div",dj,[j2[9]||(j2[9]=S("span",null,"分析结论",-1)),S("strong",null,l2(X2.value.verdict),1)]),S("p",null,l2(X2.value.summary),1),S("div",fj,[(O(!0),V(Y3,null,e1(X2.value.tags,H2=>(O(),V("span",{key:H2},l2(H2),1))),128))]),S("small",null,l2(X2.value.advice),1)],2)),A2.value&&!s.value.length?(O(),V("div",hj,"该边界范围内暂未匹配到已建设项目")):A2.value?(O(),V("div",mj,[(O(!0),V(Y3,null,e1(s.value,H2=>(O(),V("button",{key:H2.key,type:"button",class:o1(["analysis-project-row",{"is-active":H2.key===C.value}]),onPointerup:ue(w3=>b1(H2),["stop","prevent"])},[S("span",gj,l2(H2.projectName),1),S("div",yj,[S("strong",null,l2(H2.year),1),S("em",null,l2(H2.category),1),S("small",null,"叠加 "+l2(S0(H2.overlapAreaWanMu))+" 亩",1)]),S("b",null,l2(H2.featureCount)+" 个要素",1)],42,pj))),128))])):U3("",!0)],2)):U3("",!0)]))}},Sj=Na(vj,[["__scopeId","data-v-96bdd213"]]),p6=(t,e)=>t.reduce((n,a)=>n+Number(a[e]||0),0),Q0=(t,e=2)=>Number(Number(t||0).toFixed(e)),An={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},js=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],ua=["ecological-redline","natural-protected-area"];function Nu(t=[]){let e=t;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(n){e=[]}return(Array.isArray(e)?e:[]).map((n,a)=>({key:n.key||`${n.name||"统计项"}-${a}`,name:n.name||`统计项${a+1}`,value:Q0(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function Og(t,e,n,a,i=""){return{key:t,name:e,value:Q0(n,a==="%"?1:2),unit:a,extra:i}}function Ru(t=[],e=p6(t,"value")){return t.map(n=>t3(B2({},n),{extra:n.extra||`占比 ${Q0(Number(n.value||0)/Math.max(e,1)*100,1)}%`}))}function wj(t=[],e=!1){const n=new Map(vn.map((a,i)=>[a,i]));return[...t].sort((a,i)=>{if(e)return Number(i.value||0)-Number(a.value||0);const r=n.has(a.name)?n.get(a.name):999,o=n.has(i.name)?n.get(i.name):999;return r-o||Number(i.value||0)-Number(a.value||0)})}function bi(t={},e,n,a="万亩",i={}){const r=wj(Nu(t[e]),i.sortByValue===!0).filter(s=>Number(s.value)>0).map(s=>t3(B2({},s),{unit:s.unit||a}));if(r.length)return i.withPercent===!1?r:Ru(r);const o=Number(t[n]||0);return o>0?[Og(`${e}-total`,"全县合计",o,a)]:[]}function zs(t={},e,n,a,i="万亩",r=6){const o=Nu(t[e]).filter(u=>Number(u.value)>0).slice(0,r).map(u=>t3(B2({},u),{unit:u.unit||i}));if(o.length)return Ru(o);const s=Number(t[n]||0);return s>0?[Og(`${e}-total`,a,s,i)]:[]}function Jh(t){return((t==null?void 0:t.rows)||[]).some(e=>Number(e.value)>0)}const bj=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function Tj(t="ecological-redline"){const e=t==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(bj[e])}function jg(t={},e="ecological-redline"){const n=Tj(e),i=Number(t.scopeAreaWanMu)>0||Number(t.grasslandAreaWanMu)>0||Number(t.wetlandAreaWanMu)>0||Number(t.woodlandAreaWanMu)>0?B2(B2({},n),t):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(r=>{Nu(i[r]).length||(i[r]=n[r])}),i}function Ti(t={},e="ecological-redline"){t=jg(t,e);const n=bi(t,"grasslandDistribution","grasslandAreaWanMu","万亩"),a=bi(t,"wetlandDistribution","wetlandAreaWanMu","万亩"),i=bi(t,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),r=bi(t,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),o=zs(t,"grasslandTypes","grasslandAreaWanMu","草地面积"),s=zs(t,"grasslandLevels","grasslandAreaWanMu","草地面积"),u=zs(t,"woodlandQuality","woodlandAreaWanMu","林地面积"),m=Ru([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(t.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(t.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(t.woodlandAreaWanMu||0),unit:"万亩"}].filter(p=>Number(p.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,span:1,rows:a},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:i},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:r}].filter(Jh),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:o},{key:`${e}-grassland-level`,title:"草原级占比",type:"bar",variant:"rankBar",span:1,rows:s},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:u},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:m}].filter(Jh)}}function Ys(t={},e="ecological-redline"){return t=jg(t,e),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:Q0(t.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:Q0(t.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:Q0(t.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:Q0(t.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const Gn=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],Oe={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:Q0(p6(Gn,"cover")/Gn.length,1),townCount:Gn.length,villageCount:Gn.reduce((t,e)=>t+String(e.villages||"").split("、").filter(Boolean).length,0),householdCount:p6(Gn,"householdCount"),peopleCount:p6(Gn,"peopleCount"),ecologyJobCount:p6(Gn,"ecologyJobs"),yakCount:p6(Gn,"yakCount"),livestockCount:p6(Gn,"livestockCount")};Oe.otherProtectedAreaWanMu=Q0(Oe.totalAreaWanMu-Oe.grasslandAreaWanMu-Oe.wetlandAreaWanMu,2);const Cj=[{key:"park-national-area",name:"四川片区面积",value:Oe.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:Oe.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:Oe.yakCount,unit:"头",icon:"stack"}];Gn.map(t=>({key:t.name,name:t.name,value:Q0(t.grasslandAreaWanMu+t.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${t.grasslandAreaWanMu} / 湿地 ${t.wetlandAreaWanMu}`}));Gn.map(t=>({key:`${t.name}-town`,name:t.name,value:Q0(t.grasslandAreaWanMu+t.wetlandAreaWanMu,2),unit:"万亩",extra:t.villages}));const Aj=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:h8.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:h8.general.fillColor}],Gl=43.66,Qh=12.48,_j=Q0(Gl*(192.26/297.29),2),xj=.06229833103624831,Mj=new Map([["瓦切镇",{areaRange:750120,yakNumber:43459,bearingCapacity:44927.54,livestockCapacity:45260,overloadRate:.74,year:"2026"}],["麦洼乡",{areaRange:666075,yakNumber:35773,bearingCapacity:36505.86,livestockCapacity:36776,overloadRate:.74,year:"2026"}],["色地镇",{areaRange:209805,yakNumber:25947,bearingCapacity:26534.58,livestockCapacity:26731,overloadRate:.74,year:"2026"}]]),Pj={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},mt=Gn.map(t=>t3(B2({},t),{value:t.protectedAreaWanMu,unit:"万亩",segments:{core:t.coreProtectionAreaWanMu,general:t.generalControlAreaWanMu},householdCount:Number(t.householdCount||0),edibleGrasslandWanTon:Q0(Number(t.grasslandAreaWanMu||0)/Math.max(Oe.grasslandAreaWanMu,1)*_j,2)})),Zh=Oe.householdCount-p6(mt,"householdCount");Zh&&mt[0]&&(mt[0].householdCount+=Zh);mt.forEach(t=>{const e=Mj.get(t.name),n=Number(e==null?void 0:e.bearingCapacity)||Q0(Number(t.grasslandAreaWanMu||0)*1e4*xj,0),a=Number(e==null?void 0:e.livestockCapacity)||Number(t.livestockCount||t.yakCount||0),i=Number.isFinite(Number(e==null?void 0:e.overloadRate))?Number(e.overloadRate):n?Q0((a-n)/n*100,1):0,r=Ga(i);t.bearingCapacity=n,t.livestockCapacity=a,t.overloadRate=Q0(i,2),t.balanceLevel=r.label,t.searchText=[t.name,`划定面积${t.protectedAreaWanMu}万亩`,`牦牛${t.yakCount}头`,`牧户${t.householdCount}户`,`超载率${t.overloadRate}%`].join(" ")});const ca=p6(mt,"bearingCapacity"),Lu=p6(mt,"livestockCapacity"),$s=Lu-ca,Ws=mt.map(t=>Number(t.overloadRate)).filter(t=>Number.isFinite(t));Oe.balanceOverloadRate=Ws.length?Q0(Ws.reduce((t,e)=>t+e,0)/Ws.length,2):ca?Q0((Lu-ca)/ca*100,2):0;const i5=[...mt].sort((t,e)=>Number(e.overloadRate||0)-Number(t.overloadRate||0))[0],Iu=(t,e=p6(t,"value"))=>t.map(n=>t3(B2({},n),{extra:n.extra||`占比 ${Q0(Number(n.value||0)/Math.max(e,1)*100,1)}%`}));Iu([{key:"park-scope-grassland",name:"草地",value:Oe.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:Oe.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:Oe.otherProtectedAreaWanMu,unit:"万亩"}]);const V8=({sourceKey:t,weightKey:e,unit:n="万亩",decimals:a=2,sortByValue:i=!0})=>{const r=mt.flatMap(s=>(Pj[s.name]||[]).map(m=>({key:`${s.name}-${m.name}-${t}`,name:m.name,town:s.name,value:Q0(Number(s[t]||0)*Number(m[e]||0),a),unit:n}))).filter(s=>Number(s.value)>0),o=i?r.sort((s,u)=>Number(u.value||0)-Number(s.value||0)):r;return Iu(o)};V8({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});V8({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});V8({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});V8({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});V8({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});V8({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const kj=["瓦切镇","麦洼乡","色地镇"],y5=t=>kj.map(e=>t.find(n=>n.name===e)).filter(Boolean),Ej=y5(mt).map(t=>({key:`${t.name}-area`,name:t.name,value:t.protectedAreaWanMu,unit:"万亩",extra:`核心 ${t.coreProtectionAreaWanMu} / 一般 ${t.generalControlAreaWanMu}`}));y5(mt).map(t=>({key:`${t.name}-zoning`,name:t.name,value:t.protectedAreaWanMu,unit:"万亩",segments:{core:t.coreProtectionAreaWanMu,general:t.generalControlAreaWanMu}}));const Nj=y5(mt).map(t=>({key:`${t.name}-grass-wet-area`,name:t.name,value:Q0(t.grasslandAreaWanMu+t.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:t.grasslandAreaWanMu,wetland:t.wetlandAreaWanMu}})),Rj=y5(mt).map(t=>({key:`${t.name}-grass-wet-productivity`,name:t.name,value:Q0(t.grasslandAreaWanMu/Math.max(Oe.grasslandAreaWanMu,1)*Gl+t.wetlandAreaWanMu/Math.max(Oe.wetlandAreaWanMu,1)*Qh,2),unit:"万吨",segments:{grassland:Q0(t.grasslandAreaWanMu/Math.max(Oe.grasslandAreaWanMu,1)*Gl,2),wetland:Q0(t.wetlandAreaWanMu/Math.max(Oe.wetlandAreaWanMu,1)*Qh,2)}})),Lj=y5(mt).map(t=>({key:`${t.name}-yak`,name:t.name,value:t.yakCount,unit:"头",extra:`${Q0(t.yakCount/Math.max(Oe.yakCount,1)*100,1)}%`})),Ij=y5(mt).map(t=>({key:`${t.name}-household`,name:t.name,value:t.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:t.ecologyJobs,peopleCount:t.peopleCount,extra:`公益岗位 ${t.ecologyJobs}户`}));y5(mt).map(t=>({key:`${t.name}-balance`,name:t.name,value:t.overloadRate,unit:"%",status:t.balanceLevel,extra:`载畜 ${t.livestockCapacity}头`}));const Fj=[{key:"park-balance-overload-rate",name:"超载率",value:Oe.balanceOverloadRate,unit:"%",status:Ga(Oe.balanceOverloadRate).label,color:"#24f6c4"}];Q0(ca/1e4,2),Q0(Lu/1e4,2),$s>=0,Q0(Math.abs($s)/1e4,2),$s>=0,`${(i5==null?void 0:i5.name)||"重点乡镇"}`,Q0((i5==null?void 0:i5.overloadRate)||0,2),i5!=null&&i5.balanceLevel;const Bj=y5(mt).map(t=>({key:`${t.name}-job`,name:t.name,value:t.ecologyJobs,unit:"户",color:t.name==="麦洼乡"?"#24f6c4":t.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${t.householdCount}户`}));y5(mt).map(t=>t3(B2({},t),{key:`${t.name}-ledger`,name:t.name,value:t.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var Pm,km,Em;const zg=[{zh:"四川片区面积",value:Oe.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:Oe.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:Oe.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:Oe.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:Oe.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((Pm=mt.find(t=>t.name==="瓦切镇"))==null?void 0:Pm.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((km=mt.find(t=>t.name==="麦洼乡"))==null?void 0:km.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((Em=mt.find(t=>t.name==="色地镇"))==null?void 0:Em.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:Oe.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:Oe.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],Yg=[{zh:"修复项目",value:An.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:An.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:An.kpi.lengthKm,unit:"公里",decimals:2}],Dj=[{zh:"项目库工程",value:An.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:An.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:An.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:An.kpi.lengthKm,unit:"公里",decimals:2}];function Gj(t){return ua.includes(t)?[]:t==="engineering-analysis"?[]:(t==="restoration"?Yg:zg.slice(0,5)).map((n,a)=>B2({icon:n.icon||(a%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const $g={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:Nj},{key:"park-town-productivity",title:"草地湿地生产力",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万吨",segments:[{key:"grassland",name:"草地生产力",color:"#32dcff"},{key:"wetland",name:"湿地生产力",color:"#8bf7ff"}],rows:Rj},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:Lj},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:Fj}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:Iu(Aj)},{key:"park-town-household",title:"牧户分布",type:"split",rows:Ij},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:Bj}]},Vs=new Map((An.townships||[]).filter(t=>/[乡镇]$/.test(String(t.name||""))).map(t=>[t.name,t])),Wg=vn.map(t=>{var e,n,a;return{name:t,areaWanMu:((e=Vs.get(t))==null?void 0:e.areaWanMu)||0,lengthKm:((n=Vs.get(t))==null?void 0:n.lengthKm)||0,projectCount:((a=Vs.get(t))==null?void 0:a.projectCount)||0}}),Vg=(An.projects||[]).map((t,e)=>{const n=Number(t.areaWanMu)>0,a=Number(t.lengthKm)>0,i=n?{value:Q0(t.areaWanMu,2),unit:"万亩",metric:"治理面积"}:a?{value:Q0(t.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:t.subjectFeatureCount||0,unit:"个",metric:"主体要素"},r=(t.measureTypes||[]).join("、"),o=(t.townships||[]).join("、");return{key:t.id||t.projectName,index:e+1,name:t.projectName,projectName:t.projectName,category:t.projectCategory,year:t.year||"未知",areaWanMu:Q0(t.areaWanMu,4),lengthKm:Q0(t.lengthKm,2),measure:r,townships:o,subjectFeatureCount:t.subjectFeatureCount||0,value:i.value,unit:i.unit,metric:i.metric,extra:[t.year||"未知",r].filter(Boolean).join(" / "),searchText:[t.projectName,t.projectCategory,t.year,r,o].filter(Boolean).join(" ")}}),Uj=Vg.map((t,e)=>{const n=e%6,a=Math.floor(e/6),i=102.42+n*.045,r=32.55+a*.035,o=.018+Math.min(.024,Number(t.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:t.projectName,project_category:t.category,year:t.year,areaWanMu:t.areaWanMu,lengthKm:t.lengthKm,townships:t.townships,measure:t.measure},geometry:{type:"Polygon",coordinates:[[[i,r],[i+o,r+o*.22],[i+o*.82,r+o],[i-o*.16,r+o*.72],[i,r]]]}}}),Hg={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(An.years||[]).map(t=>({key:t.name,name:`${t.name}`,value:Q0(t.areaWanMu,2),unit:"万亩",extra:`${t.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,rows:Wg.map(t=>({key:t.name,name:t.name,value:Q0(t.areaWanMu,2),unit:"万亩",extra:`${Q0(t.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(An.categories||[]).map(t=>({key:t.name,name:t.name,value:Q0(t.areaWanMu||t.lengthKm||t.subjectFeatureCount,2),unit:t.areaWanMu?"万亩":t.lengthKm?"公里":"个",extra:`${t.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"column",variant:"slim",labelMode:"horizontal",rows:(An.years||[]).filter(t=>Number(t.lengthKm)>0).map(t=>({key:t.name,name:`${t.name}`,value:Q0(t.lengthKm,2),unit:"公里",extra:`${t.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(An.measures||[]).slice(0,8).map(t=>({key:t.name,name:t.name,value:Q0(t.areaWanMu||t.lengthKm||t.subjectFeatureCount,2),unit:t.areaWanMu?"万亩":t.lengthKm?"公里":"个",extra:`${t.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"column",variant:"projectYear",labelMode:"horizontal",rows:(An.years||[]).filter(t=>t.name!=="未知").map(t=>({key:t.name,name:`${t.name}`,value:t.projectCount,unit:"个",extra:`${Q0(t.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:Vg}]},Kg={left:[],right:[]};function Oj(t){return ua.includes(t)?{status:"success",title:t==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:t==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:Wg.map(e=>({name:e.name,value:Q0(e.areaWanMu,2),unit:"万亩"}))}:t==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:Ej.map(e=>({name:e.name,value:e.value,unit:e.unit,metricLabel:"划定面积"}))}}const jj={class:"forest-grass-wet ecological-protection"},zj={class:"forest-grass-wet-ui ecological-protection-ui"},Yj={key:0,class:"fgw-left"},$j={class:"fgw-side-stack is-left"},Wj={key:1,class:"fgw-right"},Vj={class:"fgw-side-stack is-right"},Hj={class:"fgw-bottom-topic ecological-bottom-topic"},Kj={key:0,class:"loading"},qj={class:"loading-progress"},Jj={class:"value"},Qj={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=a3(null),o=a3(null),s=a3(""),u=a3(""),m=a3(Ti({},"ecological-redline")),p=a3(null),f=a3(!1),g=a3(!1),C=a3(null),F=a3(0),z=a3(a.showLoading),Y=a3(null),i2=a3(0),v2=a3({type:"idle",text:"等待生态保护图层加载"});let y2=null,A2=!1,S2=!1,Q2=!1,X2=null,c3=0,p3=0;const l3=new Map,b3=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),N3=r2(()=>l8.some(P2=>P2.key===a.activeView)?a.activeView:"ecological-redline"),_3=r2(()=>N3.value==="engineering-analysis"),J3=r2(()=>["restoration","engineering-analysis"].includes(N3.value)),R3=r2(()=>ua.includes(N3.value)),Z3=r2(()=>s.value?j5(N3.value,s.value):null),M1=r2(()=>{var P2;return(((P2=Z3.value)==null?void 0:P2.legends)||[]).find(n3=>n3.key===u.value)||null}),b1=r2(()=>{var P2;return((P2=Z3.value)==null?void 0:P2.legends)||[]}),j1=r2(()=>N8(N3.value)),a1=r2(()=>!_3.value&&j1.value.length<=2&&b1.value.length<=6),G1=r2(()=>{if(!a1.value)return 430;const P2=Math.max(1,j1.value.length),n3=Math.ceil(b1.value.length/2),s3=b1.value.length?24+Math.max(28,n3*28):28;return Math.max(132,Math.min(224,48+P2*32+s3))}),s0=r2(()=>{const P2=Z3.value;return P2?M1.value?t3(B2({},P2),{cqlFilter:M1.value.cqlFilter||P2.cqlFilter,activeLegend:M1.value,name:M1.value.name||P2.name}):P2:null}),i0=r2(()=>R3.value?m.value:N3.value==="restoration"?Hg:N3.value==="engineering-analysis"?Kg:$g),r0=r2(()=>i0.value.left||[]),q1=r2(()=>i0.value.right||[]),h3=a3(typeof window=="undefined"?1080:window.innerHeight),O3=Tn.sideCardWidth,V3=r2(()=>j8(h3.value)),i3=r2(()=>M9(V3.value,2)),U2=r2(()=>!!C.value),D3=r2(()=>{if(g.value||f.value||!p.value)return 186;const P2=S0(p.value);return Math.min(480,Math.max(300,86+Math.min(P2,12)*34))}),F3=r2(()=>{if(!C.value)return{};const P2=460,n3=D3.value,s3=24,m1=U1(C.value),w1=104,f0=36,g0=Math.min(Math.max(m1.x-P2/2,s3),1920-P2-s3),B0=Math.min(Math.max(m1.y-n3-f0,w1),1080-n3-s3);return{left:`${g0}px`,top:`${B0}px`,right:"auto",bottom:"auto"}});jn(()=>{R1(),window.addEventListener("resize",R1),document.addEventListener("pointerdown",$3,!0),E(),u1(N3.value)}),On(()=>{A2=!0,X2&&window.clearTimeout(X2),window.removeEventListener("resize",R1),document.removeEventListener("pointerdown",$3,!0)}),ie(N3,P2=>{u1(P2)}),ie(s,()=>{u.value="",d3()}),ie(u,()=>{d3()}),ie(()=>a.active,P2=>{var n3,s3,m1,w1;r.value&&(P2?(C3(),(s3=(n3=r.value).resume)==null||s3.call(n3)):(w1=(m1=r.value).pause)==null||w1.call(m1))});function u1(P2){var m1,w1,f0,g0,B0;const n3=l8.find(p0=>p0.key===P2)||l8[0],s3=N8(P2);u.value="",s.value=n3.defaultLayerKey||((m1=s3[0])==null?void 0:m1.key)||"",Y.value=Oj(P2),i2.value=0,(f0=(w1=r.value)==null?void 0:w1.setBoundaryDrawing)==null||f0.call(w1,!1),P2!=="engineering-analysis"&&((B0=(g0=r.value)==null?void 0:g0.clearAnalysisBoundary)==null||B0.call(g0)),d3(),ua.includes(P2)&&(m.value=Ti({},P2),S3(P2)),i("module-stats",{moduleKey:"ecological-protection",viewKey:P2,items:ua.includes(P2)?Ys({},P2):Gj(P2)})}function A1(P2){const n3=l8.some(s3=>s3.key===P2)?P2:"ecological-redline";n3!==N3.value&&i("view-change",n3)}function S3(P2){return L3(this,null,function*(){const n3=++c3;try{const m1=l3.get(P2)||(yield wF(P2));if(n3!==c3||N3.value!==P2)return;l3.set(P2,m1),m.value=Ti(m1,P2),i("module-stats",{moduleKey:"ecological-protection",viewKey:P2,items:Ys(m1,P2)})}catch(s3){if(n3!==c3||N3.value!==P2)return;m.value=Ti({},P2),i("module-stats",{moduleKey:"ecological-protection",viewKey:P2,items:Ys({},P2)}),v2.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",s3)}})}function E(){var s3;y2=new Br;const P2={progress:0};y2.instance.on("onProgress",(m1,w1,f0)=>{const g0=Math.floor(w1/f0*100);nn.to(P2,{progress:g0,onUpdate:()=>{F.value=Math.floor(P2.progress)}})});const n3=()=>{A2||S2||(S2=!0,C3())};y2.instance.on("onLoad",n3),(s3=y2.ready)==null||s3.then(n3).catch(()=>{A2||(v2.value={type:"error",text:"地图资源加载失败"})})}function C3(){A2||!a.active||!S2||Q2||(Q2=!0,X2&&window.clearTimeout(X2),X2=window.setTimeout(()=>{X2=null,H3()},600))}function H3(P2=0){return L3(this,null,function*(){var s3,m1,w1,f0,g0;if(A2)return;if(!a.active){Q2=!1;return}if(yield ae(),!a.active){Q2=!1;return}if(!!((m1=(s3=r.value)==null?void 0:s3.loadMap)!=null&&m1.call(s3,y2)||(f0=(w1=r.value)==null?void 0:w1.hasMap)!=null&&f0.call(w1))){yield X3(),yield ae(),(g0=r.value)==null||g0.play();return}if(P2<24){window.setTimeout(()=>H3(P2+1),120);return}Q2=!1})}function _1(){X2&&(window.clearTimeout(X2),X2=null)}function s1(){var P2,n3,s3,m1;(n3=(P2=r.value)==null?void 0:P2.resume)==null||n3.call(P2),(m1=(s3=r.value)==null?void 0:s3.refreshView)==null||m1.call(s3)}function B1(){var P2,n3,s3,m1,w1,f0;if(d3(),(n3=(P2=r.value)==null?void 0:P2.setBoundaryDrawing)==null||n3.call(P2,!1),(m1=(s3=r.value)==null?void 0:s3.clearAnalysisBoundary)==null||m1.call(s3),(f0=(w1=r.value)==null?void 0:w1.hasMap)!=null&&f0.call(w1)){s1();return}_1(),Q2=!1,ae(()=>{C3()})}e({refreshMapView:s1,resetMap:B1});function U1(P2){const n3=document.querySelector(".ecological-protection"),s3=n3==null?void 0:n3.getBoundingClientRect();return!(s3!=null&&s3.width)||!(s3!=null&&s3.height)?P2:{x:(P2.x-s3.left)/s3.width*1920,y:(P2.y-s3.top)/s3.height*1080}}function R1(){h3.value=typeof window=="undefined"?1080:window.innerHeight}function N1(P2,n3){return`${N3.value}-${n3}-${(P2==null?void 0:P2.key)||(P2==null?void 0:P2.title)||"panel"}`}function G0(P2){return(P2==null?void 0:P2.span)===2}function T0(P2){return G0(P2)?i3.value:V3.value}function S0(P2){const n3=(P2==null?void 0:P2.properties)||{};return Object.keys(n3).filter(s3=>oe(s3,n3[s3])).length}function oe(P2,n3){return n3==null||n3===""||Array.isArray(n3)||typeof n3=="object"?!1:!b3.has(String(P2||"").toLowerCase())}function z0(P2={}){const n3=P0(P2.lng),s3=P0(P2.lat);return n3===""||s3===""?"":`POINT(${n3} ${s3})`}function P0(P2){const n3=Number(P2);return Number.isFinite(n3)?n3.toFixed(8).replace(/\.?0+$/,""):""}function x2(){return L3(this,arguments,function*(P2={}){var f0,g0,B0,p0,ve,u0;if(!J3.value)return;if(j2(P2.overlayLayer||s0.value||Z3.value)){d3();return}const n3=Number((f0=P2==null?void 0:P2.lngLat)==null?void 0:f0.lng),s3=Number((g0=P2==null?void 0:P2.lngLat)==null?void 0:g0.lat);if(!Number.isFinite(n3)||!Number.isFinite(s3)){d3();return}const m1=++p3,w1=P2.screen||{x:960,y:540};C.value=null,p.value=null,f.value=!1,g.value=!0;try{const be=yield MR(z0({lng:n3,lat:s3}));if(m1!==p3||A2)return;const xe=H2(be,P2);if(!xe||S0(xe)<=0){d3();return}p.value=xe,C.value=((p0=(B0=r.value)==null?void 0:B0.getVectorFeatureAnchorScreen)==null?void 0:p0.call(B0,xe))||w1,f.value=!1,(u0=(ve=r.value)==null?void 0:ve.highlightFeature)==null||u0.call(ve,xe)}catch(be){if(m1!==p3)return;d3()}finally{m1===p3&&(g.value=!1)}})}function j2(P2=s0.value){const n3=String((P2==null?void 0:P2.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(n3)||String((P2==null?void 0:P2.dataPath)||"").includes("ecological_restoration_projects")}function H2(P2,n3={}){var f0,g0,B0;const s3=d1((P2==null?void 0:P2.project)||((f0=P2==null?void 0:P2.data)==null?void 0:f0.project)||(P2==null?void 0:P2.data)||P2);if(!O1(s3))return null;const m1=I0(s3,P2),w1=s3.geom||s3.geometry||s3.wkt||null;return{id:s3.id||m1.id||m1.project_name||`project-${(g0=n3==null?void 0:n3.lngLat)==null?void 0:g0.lng}-${(B0=n3==null?void 0:n3.lngLat)==null?void 0:B0.lat}`,properties:m1,feature:{type:"Feature",properties:m1,geometry:w1},geometry:w1,layer:n3.overlayLayer||s0.value||Z3.value,lngLat:n3.lngLat}}function w3(P2,n3={}){var p0,ve,u0;const s3=P2!=null&&P2.feature&&P2.feature.type==="Feature"?t3(B2({},P2.feature),{id:P2.id||P2.feature.id,layer:P2.layer,lngLat:P2.lngLat}):P2,m1=(s3==null?void 0:s3.type)==="Feature"?s3:((p0=s3==null?void 0:s3.feature)==null?void 0:p0.type)==="Feature"?s3.feature:null,w1=(s3==null?void 0:s3.properties)||(m1==null?void 0:m1.properties)||{},f0=(s3==null?void 0:s3.geometry)||(m1==null?void 0:m1.geometry)||w1.geometry||w1.geom||w1.wkt||null,g0=I0(w1,n3),B0=(s3==null?void 0:s3.id)||(m1==null?void 0:m1.id)||g0.id||g0.gid||g0.project_id||g0.project_name||`project-${((ve=n3==null?void 0:n3.lngLat)==null?void 0:ve.lng)||""}-${((u0=n3==null?void 0:n3.lngLat)==null?void 0:u0.lat)||""}`;return{id:B0,properties:g0,feature:{type:"Feature",id:B0,properties:g0,geometry:f0},geometry:f0,layer:(s3==null?void 0:s3.layer)||n3.overlayLayer||s0.value||Z3.value,lngLat:(s3==null?void 0:s3.lngLat)||n3.lngLat}}function d1(P2){return Array.isArray(P2)?P2.find(n3=>n3&&typeof n3=="object")||null:P2&&typeof P2=="object"?P2:null}function O1(P2){return!P2||typeof P2!="object"?!1:Array.isArray(P2.dyColumn)&&P2.dyColumn.some(V1)?!0:Object.keys(P2).some(n3=>oe(n3,P2[n3]))}function V1(P2={}){const n3=P2==null?void 0:P2.value;return n3==null||n3===""?!1:!!String((P2==null?void 0:P2.field)||(P2==null?void 0:P2.title)||"").trim()}function I0(P2={},n3={}){const s3=B2({},P2);(Array.isArray(P2.dyColumn)?P2.dyColumn:[]).forEach(B0=>{const p0=B0==null?void 0:B0.value;if(p0==null||p0==="")return;const ve=String((B0==null?void 0:B0.field)||"").trim();[ve,F0(ve)].filter(Boolean).forEach(be=>{(s3[be]===void 0||s3[be]===null||s3[be]==="")&&(s3[be]=p0)})});const w1=s3.project_name||s3.projectName||s3.name,f0=s3.area_mu||s3.areaMu||s3.acreage,g0=s3.project_status||s3.projectStatus;return t3(B2({},s3),{project_name:w1,name:w1||s3.name,area_mu:f0,project_status:g0,progress_count:Array.isArray(n3==null?void 0:n3.progress)?n3.progress.length:void 0})}function F0(P2){return String(P2||"").replace(/[A-Z]/g,n3=>`_${n3.toLowerCase()}`)}function O0(P2){var s3,m1,w1,f0;const n3=(m1=(s3=P2==null?void 0:P2.feature)!=null?s3:P2)!=null?m1:null;if(!n3||S0(n3)<=0){d3();return}if(J3.value){p3+=1;const g0=w3(n3,P2);if(!g0||S0(g0)<=0){d3();return}p.value=g0,f.value=!1,g.value=!1,C.value=((f0=(w1=r.value)==null?void 0:w1.getVectorFeatureAnchorScreen)==null?void 0:f0.call(w1,g0))||(P2==null?void 0:P2.screen)||null;return}p.value=n3,f.value=!1,P2!=null&&P2.screen&&(C.value=P2.screen)}function Z1(P2){v2.value=P2}function Y0(P2,n3){var w1,f0;if(N3.value==="national-park"&&(n3!=null&&n3.name)){d3(),(f0=(w1=r.value)==null?void 0:w1.focusTown)==null||f0.call(w1,n3.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(N3.value!=="restoration"||(P2==null?void 0:P2.key)!=="restoration-projects"||!((n3==null?void 0:n3.projectName)||(n3==null?void 0:n3.name)))return;d3();const m1=()=>d0(n3);if(u.value){u.value="",ae(()=>window.setTimeout(m1,80));return}m1()}function d0(P2,n3=0){var f0,g0,B0,p0,ve,u0,be;if(N3.value!=="restoration")return;const s3=(P2==null?void 0:P2.projectName)||(P2==null?void 0:P2.name);if(!s3)return;const m1=(g0=(f0=r.value)==null?void 0:f0.focusProject)==null?void 0:g0.call(f0,{id:P2==null?void 0:P2.id,key:P2==null?void 0:P2.key,name:s3,projectName:s3,project_name:s3,highlightTone:"white"});if(!(m1!=null&&m1.feature)){if(n3<10){window.setTimeout(()=>d0(P2,n3+1),120);return}v2.value={type:"warning",text:"当前项目图斑尚未加载"};return}const w1=w3({id:m1.feature.id,properties:m1.feature.properties||{},geometry:m1.feature.geometry,feature:m1.feature,layer:s0.value||Z3.value},{});p.value=w1,f.value=!1,g.value=!1,C.value=m1.screen||((ve=(B0=r.value)==null?void 0:B0.getVectorFeaturesAnchorScreen)==null?void 0:ve.call(B0,(p0=m1.highlightFeatures)!=null&&p0.length?m1.highlightFeatures:m1.features))||((be=(u0=r.value)==null?void 0:u0.getVectorFeatureAnchorScreen)==null?void 0:be.call(u0,w1))}function de(P2){var n3,s3;d3(),i2.value=0,(s3=(n3=r.value)==null?void 0:n3.setBoundaryDrawing)==null||s3.call(n3,P2)}function Re(){var P2,n3;(n3=(P2=r.value)==null?void 0:P2.finishBoundaryDrawing)==null||n3.call(P2)}function H1(){var P2,n3;(n3=(P2=r.value)==null?void 0:P2.undoBoundaryPoint)==null||n3.call(P2)}function M3(){var P2,n3;i2.value=0,(n3=(P2=r.value)==null?void 0:P2.clearAnalysisBoundary)==null||n3.call(P2)}function d2(P2={}){var n3,s3,m1;i2.value=P2.pointCount||((n3=P2.points)==null?void 0:n3.length)||0,P2.status==="complete"&&P2.feature&&(i2.value=0,(m1=(s3=o.value)==null?void 0:s3.applyDrawnBoundary)==null||m1.call(s3,P2.feature)),P2.status==="clear"&&(i2.value=0)}function $2(P2={}){var n3,s3;(s3=(n3=r.value)==null?void 0:n3.showAnalysisResult)==null||s3.call(n3,{boundary:P2.boundary,matches:P2.matches,preserveView:N3.value==="engineering-analysis"}),N3.value}function z3(P2){var s3,m1;const n3=((P2==null?void 0:P2.features)||[]).filter(Boolean);(m1=(s3=r.value)==null?void 0:s3.showAnalysisResult)==null||m1.call(s3,{boundary:P2==null?void 0:P2.boundary,matches:n3})}function d3(){var P2,n3;p3+=1,p.value=null,f.value=!1,g.value=!1,C.value=null,(n3=(P2=r.value)==null?void 0:P2.clearSelectedFeature)==null||n3.call(P2)}function $3(P2){if(!U2.value)return;const n3=document.querySelector(".fgw-map-feature-info"),s3=P2.target;n3&&s3 instanceof Node&&n3.contains(s3)||d3()}function X3(){return z.value?new Promise(P2=>{nn.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{z.value=!1,P2()}})}):Promise.resolve()}return(P2,n3)=>(O(),V("div",jj,[S1(z8,{ref_key:"mapSceneRef",ref:r,"active-layer":s0.value,"map-ranking":Y.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,onFeatureLoading:n3[0]||(n3[0]=s3=>g.value=s3),onFeatureInfo:O0,onMapClick:x2,onLayerStatus:Z1,onDrawBoundary:d2},null,8,["active-layer","map-ranking"]),S("div",zj,[_3.value?U3("",!0):(O(),V("div",Yj,[S("div",$j,[(O(!0),V(Y3,null,e1(r0.value,s3=>(O(),_e(U0,{key:N1(s3,"left"),class:o1(["fgw-side-card left-card",{"is-double":G0(s3)}]),title:s3.title,width:D1(O3),height:T0(s3)},{default:M0(()=>[S1(wn,{panel:s3,compact:"","column-label-standard":"",onRowSelect:m1=>Y0(s3,m1)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_3.value?U3("",!0):(O(),V("div",Wj,[S("div",Vj,[(O(!0),V(Y3,null,e1(q1.value,s3=>(O(),_e(U0,{key:N1(s3,"right"),class:o1(["fgw-side-card right-card",{"is-double":G0(s3)}]),title:s3.title,width:D1(O3),height:T0(s3)},{default:M0(()=>[S1(wn,{panel:s3,compact:"","column-label-standard":"",onRowSelect:m1=>Y0(s3,m1)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_3.value?(O(),_e(Sj,{key:2,ref_key:"engineeringAnalysisRef",ref:o,"drawing-point-count":i2.value,onDrawingChange:de,onFinishDrawing:Re,onUndoPoint:H1,onClearBoundary:M3,onAnalysisResult:$2,onFocusProject:z3},null,8,["drawing-point-count"])):U3("",!0),S("div",{class:o1(["fgw-map-layer-tools",{"is-analysis":_3.value,"is-compact":a1.value}]),style:o0({height:`${G1.value}px`})},[S1(Dr,{modelValue:s.value,"onUpdate:modelValue":n3[1]||(n3[1]=s3=>s.value=s3),"selected-legend-key":u.value,"onUpdate:selectedLegendKey":n3[2]||(n3[2]=s3=>u.value=s3),"topic-key":N3.value,legends:b1.value,width:248,height:G1.value,compact:a1.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact"])],6),U2.value?(O(),V("div",{key:3,class:"fgw-map-feature-info",style:o0(F3.value)},[S1(Ia,{feature:p.value,empty:f.value,loading:g.value,width:460,height:D3.value},null,8,["feature","empty","loading","height"])],4)):U3("",!0),S("div",Hj,[S1(Fa,{"model-value":N3.value,topics:D1(l8),"onUpdate:modelValue":A1},null,8,["model-value","topics"])])]),z.value?(O(),V("div",Kj,[n3[4]||(n3[4]=fa('
LOADING
',1)),S("div",qj,[S("span",Jj,l2(F.value),1),n3[3]||(n3[3]=S("span",{class:"unit"},"%",-1))])])):U3("",!0)]))}},Ul=ez("/jsyApi"),Zj="/openApi";function Xj(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function ez(t){const e=String(t||"/jsyApi").replace(/\/+$/,"");return e.endsWith("/api")?e:`${e}/api`}function tz(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return D0(t)}function gr(t,e,n,a={}){return zn(Xj(t,e),{params:n,timeout:a.timeout||16e3}).then(tz)}function nz(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:[]}function az(t){return Array.isArray(t)?t.length>0:!t||typeof t!="object"?t!=null&&t!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(n=>t[n]!==void 0&&t[n]!==null&&t[n]!=="")}function iz(){return L3(this,arguments,function*({areaCode:t}={}){const e={areaCode:t},n=[()=>gr(Ul,"/ai/livestockBalance",e,{timeout:18e3}),()=>gr(Zj,"/ai/balance/advice",e,{timeout:18e3})];let a;for(const i of n)try{const r=yield i();if(az(r))return r}catch(r){a=r}throw a||new Error("草畜平衡接口不可用")})}function rz(t){return L3(this,null,function*(){const e=[()=>gr(Ul,"/area/children",{areaCode:t},{timeout:12e3}),()=>gr(Ul,"/map/areaCode",{areaCode:t},{timeout:12e3})];let n,a=!1;for(const i of e)try{const r=nz(yield i());if(r.length)return r;a=!0}catch(r){n=r}if(a)return[];throw n||new Error("区划接口不可用")})}const oz={class:"grass-livestock-balance"},sz={class:"balance-selector"},lz={class:"balance-scope-tabs"},uz=["onClick"],cz={class:"balance-target-list"},dz=["title","onClick"],fz={class:"balance-action-box"},hz=["disabled"],mz={key:0,class:"balance-running"},pz={class:"balance-running-head"},gz={class:"balance-core-inner"},yz={class:"balance-running-title"},vz={class:"balance-progress-line"},Sz={class:"balance-live-process"},wz={key:1,class:"balance-waiting"},bz={class:"balance-wait-core"},Tz={class:"balance-core-ring is-empty"},Cz={class:"balance-core-inner"},Az={class:"balance-preflight"},_z={key:2,class:"balance-analysis"},xz={class:"balance-dashboard"},Mz={class:"balance-object-block"},Pz={class:"balance-core"},kz={class:"balance-core-inner"},Ez={class:"balance-compare"},Nz={class:"balance-bar-row"},Rz={class:"balance-bar-row is-livestock"},Lz={class:"balance-detail"},Iz={class:"balance-process"},Fz={class:"balance-section-title"},Bz={class:"balance-process-track"},Dz={class:"balance-decision"},Gz={class:"balance-section-title"},Uz={class:"balance-conclusion"},Oz={class:"balance-advice-list"},jz={class:"balance-overload-ranking"},zz={class:"balance-rank-list"},Yz=326,$z=1310,Wz=128,Vz=8,Hz=6200,Kz={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(t,{emit:e}){const n=t,a=e,i=a3(typeof window=="undefined"?1080:window.innerHeight),r=r2(()=>{const x2=Math.max(1080,Number(i.value)||1080);return Math.max(944,x2-Wz-Vz)}),o=r2(()=>r.value),s=a3("county"),u=a3(""),m=a3("idle"),p=a3(0),f=a3(0),g=a3(""),C=a3({}),F=a3([]);let z=!1,Y=0,i2=null,v2=0,y2=null;const A2=r2(()=>[...Jp,...F.value].map(x2=>cL(C.value[x2.key],x2))),S2=r2(()=>A2.value.filter(x2=>x2.type==="county")),Q2=r2(()=>A2.value.filter(x2=>x2.type==="town")),X2=r2(()=>A2.value.filter(x2=>x2.type==="village")),c3=r2(()=>s.value==="town"?Q2.value:s.value==="village"?X2.value:S2.value),p3=r2(()=>A2.value.find(x2=>x2.key===u.value)||null),l3=r2(()=>!!p3.value),b3=r2(()=>m.value==="running"),N3=r2(()=>l3.value&&m.value==="done"),_3=r2(()=>hL(p3.value||{})),J3=r2(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),R3=r2(()=>{var x2;return((x2=J3.value.find(j2=>j2.key===s.value))==null?void 0:x2.name)||"县"}),Z3=r2(()=>p3.value?p3.value.areaCode?`行政区划 ${p3.value.areaCode}`:p3.value.township||"核算对象":"等待选择核算对象"),M1=r2(()=>g.value?g.value:l3.value?N3.value?"分析已完成":b3.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),b1=r2(()=>N3.value?"草畜平衡分析舱":"草畜平衡分析"),j1=r2(()=>l3.value?b3.value?"分析中":"待开始":"待选择"),a1=r2(()=>l3.value?b3.value?`${p3.value.name} 正在分析`:`${p3.value.name} 待开始分析`:"先选择一个核算对象"),G1=r2(()=>g.value?g.value:l3.value?b3.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),s0=r2(()=>{const x2=_3.value;return x2.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${x2.delta>0?"超载量":"承载余量"} ${Di(Math.abs(x2.delta))},承载利用率 ${gi(x2.usageRate)}。`}),i0=r2(()=>_3.value.risk.key==="healthy"?"保持监测":_3.value.risk.key==="watch"?"基本平衡":_3.value.risk.key==="light"?"关注调控":_3.value.delta===null?"按结果表判定":_3.value.delta>0?"需调控载畜量":"承载能力可覆盖"),r0=r2(()=>_3.value.risk.key==="healthy"||_3.value.risk.key==="watch"?"保持监测":_3.value.risk.key==="light"?"关注调控":_3.value.delta===null?"结果表口径":_3.value.delta>0?"需要调控":"保持监测"),q1=r2(()=>{const x2=Math.max(0,Math.min(130,Number(_3.value.usageRate)||0));return`${Math.round(x2/130*360)}deg`}),h3=r2(()=>[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核定草地范围、面积和产草量等级,形成生产力基础口径。"},{key:"forage",index:"02",name:"可利用草量折算",desc:"扣除不可食草量、生态保留量和利用限制,折算可供放牧利用草量。"},{key:"livestock",index:"03",name:"载畜量折算",desc:"依据实际存栏和草畜平衡标准,统一形成载畜压力口径。"},{key:"balance",index:"04",name:"平衡判定",desc:"对比草地承载能力与载畜压力,输出平衡状态和调控方案。"}]),O3=r2(()=>{const x2=_3.value;return[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核算草地面积与产草能力",pending:"等待草地参数",plan:"核定草地范围、面积和产草量等级"},{key:"forage",index:"02",name:"可利用草量折算",desc:"折算可供放牧利用草量",pending:"等待草量折算",plan:"扣除不可食草量、生态保留量和利用限制"},{key:"livestock",index:"03",name:"载畜量折算",desc:"形成实际载畜压力口径",pending:"等待载畜折算",plan:"依据实际存栏和草畜平衡标准进行折算"},{key:"balance",index:"04",name:"平衡判定",desc:"生成结论与调控方向",pending:"等待平衡判定",plan:["healthy","watch"].includes(x2.risk.key)?"判定平衡状态并生成监测方案":"判定超载风险并生成调控方案"}]}),V3=r2(()=>O3.value[Math.min(f.value,O3.value.length-1)]||O3.value[0]),i3=r2(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:N3.value?"草地生产力核算":l3.value?"等待核算":"等待选择",state:l3.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:N3.value?"可利用草量折算":"分析后折算",state:b3.value?"active":N3.value?"done":l3.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:N3.value?"载畜压力折算":"等待折算",state:b3.value?"active":N3.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:N3.value?_3.value.risk.label:"等待判定",state:N3.value?"done":"disabled"}]),U2=r2(()=>N3.value?mL(p3.value,_3.value.risk):[]),D3=r2(()=>Q2.value.filter(x2=>Number.isFinite(Number(x2.overloadRate))).slice().sort((x2,j2)=>Number(j2.overloadRate)-Number(x2.overloadRate)).slice(0,10)),F3=r2(()=>Math.max(1,...D3.value.map(x2=>Math.max(0,Number(x2.overloadRate)||0)))),u1=r2(()=>D3.value.map((x2,j2)=>t3(B2({},x2),{rank:j2+1})));function A1(x2){const j2=Math.max(0,Number(x2==null?void 0:x2.overloadRate)||0);return Math.max(6,Math.min(100,j2/F3.value*100))}function S3(x2){const j2=Number(x2==null?void 0:x2.overloadRate);return Number.isFinite(j2)?j2>=2.5?"is-alert":j2>=2?"is-warning":"is-stable":"is-empty"}function E(){i.value=typeof window=="undefined"?1080:window.innerHeight}jn(()=>{E(),window.addEventListener("resize",E),a("loading-progress",{progress:100}),a("map-ready"),B1()}),On(()=>{z=!0,window.removeEventListener("resize",E),Y+=1,v2+=1,oe()}),ie(()=>{var x2;return(x2=p3.value)==null?void 0:x2.key},()=>{m.value="idle",p.value=0,f.value=0,g.value="",y2=null,oe()}),ie(()=>n.active,x2=>{x2||!b3.value||(m.value="idle",p.value=0,f.value=0,g.value="",y2=null,oe())});function C3(x2){s.value=x2,u.value="",m.value="idle",g.value=""}function H3(x2){x2&&(s.value=["county","town","village"].includes(x2.type)?x2.type:"county",u.value=x2.key,m.value="idle",g.value="")}function _1(){if(!n.active||!p3.value||b3.value)return;m.value="running",p.value=0,f.value=0,g.value="",oe();const x2=Date.now();let j2=!1;const H2=s1().catch(w3=>(j2=!0,console.warn("[grassLivestockBalance] fallback balance row used",w3),g.value="接口暂不可用,已使用本地兜底口径",p3.value));y2=H2,i2=window.setInterval(()=>{if(z)return;const w3=y2===H2?92:100;p.value=Math.min(w3,p.value+2),f.value=Math.min(O3.value.length-1,Math.floor(p.value/25))},140),H2.finally(()=>L3(this,null,function*(){var d1;const w3=Hz-(Date.now()-x2);if(w3>0&&(yield new Promise(O1=>window.setTimeout(O1,w3))),!(z||m.value!=="running"||y2!==H2)){if(y2=null,oe(),!p3.value){p.value=0,f.value=0,m.value="idle";return}!j2&&!C.value[(d1=p3.value)==null?void 0:d1.key]&&(g.value="未查询到接口结果,已使用本地兜底口径"),p.value=100,f.value=O3.value.length-1,m.value="done"}}))}function s1(){return L3(this,null,function*(){const x2=p3.value;if(!x2)throw new Error("请先选择具体核算对象");if(C.value[x2.key])return C.value[x2.key];const j2=++Y,H2=yield iz({areaCode:x2.areaCode});if(z||j2!==Y)return null;if(!H2||typeof H2!="object"||!Object.keys(H2).length)throw new Error("未查询到该对象的草畜平衡结果");return C.value=t3(B2({},C.value),{[x2.key]:H2}),H2})}function B1(){return L3(this,null,function*(){const x2=++v2,j2=Q2.value.filter(H2=>H2==null?void 0:H2.areaCode).map(H2=>B2({},H2));if(j2.length)try{const H2=yield Promise.all(j2.map(w3=>L3(this,null,function*(){try{const d1=yield rz(w3.areaCode);return z||x2!==v2?[]:U1(d1,w3)}catch(d1){return[]}})));if(z||x2!==v2)return;F.value=H2.flat()}catch(H2){if(z||x2!==v2)return;F.value=[]}})}function U1(x2=[],j2={}){const w3=(Array.isArray(x2)?x2:[]).filter(d1=>{const O1=T0(d1),V1=S0(d1);return!!(O1||V1)}).map((d1,O1)=>G0(d1,O1,j2)).filter(Boolean);return R1(w3,j2)}function R1(x2=[],j2={}){const H2=new Map;return x2.forEach(w3=>{const d1=N1(w3,j2),O1=H2.get(d1);if(!O1){H2.set(d1,t3(B2({},w3),{duplicateSources:[w3.source].filter(Boolean)}));return}const I0=!O1.areaCode&&w3.areaCode?B2(B2({},O1),w3):O1;H2.set(d1,t3(B2({},I0),{duplicateSources:[...O1.duplicateSources||[],w3.source].filter(Boolean)}))}),[...H2.values()]}function N1(x2={},j2={}){const H2=String(x2.name||"").replace(/\s+/g,"").trim();return`${String(x2.township||j2.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${H2||x2.areaCode||"unknown-village"}`}function G0(x2={},j2=0,H2={}){const w3=T0(x2),d1=S0(x2)||(w3?`村级区划${w3}`:"");return!w3&&!d1?null:{key:`village-${w3||`${H2.key||H2.name}-${d1}-${j2}`}`,type:"village",name:d1,areaCode:w3,township:H2.name,source:x2,year:"2026"}}function T0(x2={}){return String(qn(x2,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function S0(x2={}){return String(qn(x2,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function oe(){i2&&(window.clearInterval(i2),i2=null)}function z0(x2){return N3.value||b3.value&&x2<=f.value}function P0(x2){return x2(O(),V("div",oz,[j2[15]||(j2[15]=S("div",{class:"balance-backdrop","aria-hidden":"true"},[S("div",{class:"balance-orbit is-left"}),S("div",{class:"balance-orbit is-right"}),S("div",{class:"balance-energy-band"})],-1)),S("div",{class:"balance-screen",style:o0({"--balance-card-height":`${r.value}px`})},[S1(U0,{class:"balance-card balance-target-card",title:"核算对象",width:Yz,height:o.value},{default:M0(()=>{var H2;return[S("div",sz,[S("div",lz,[(O(!0),V(Y3,null,e1(J3.value,w3=>(O(),V("button",{key:w3.key,type:"button",class:o1({active:s.value===w3.key}),onClick:d1=>C3(w3.key)},l2(w3.name),11,uz))),128))]),S("div",cz,[(O(!0),V(Y3,null,e1(c3.value,w3=>{var d1;return O(),V("button",{key:w3.key,type:"button",class:o1({active:w3.key===((d1=p3.value)==null?void 0:d1.key)}),title:w3.name,onClick:O1=>H3(w3)},[S("span",null,l2(w3.name),1)],10,dz)}),128))]),S("div",fz,[j2[0]||(j2[0]=S("span",null,"当前对象",-1)),S("strong",null,l2(((H2=p3.value)==null?void 0:H2.name)||"未选择"),1),S("small",null,l2(M1.value),1),S("button",{type:"button",disabled:!l3.value||b3.value,onClick:_1},l2(b3.value?"分析中...":N3.value?"重新分析":"开始分析"),9,hz)])])]}),_:1},8,["height"]),S1(U0,{class:"balance-card balance-sheet-card",title:b1.value,width:$z,height:r.value},{default:M0(()=>[S("div",{class:o1(["balance-sheet",{"is-ready":N3.value,"is-running":b3.value}])},[j2[14]||(j2[14]=S("div",{class:"balance-field-lines","aria-hidden":"true"},[S("i"),S("i"),S("i")],-1)),b3.value?(O(),V("section",mz,[S("div",pz,[S("div",{class:"balance-core-ring is-running",style:o0({"--usage-angle":`${p.value*3.6}deg`})},[S("div",gz,[j2[1]||(j2[1]=S("span",null,"分析进度",-1)),S("strong",null,l2(p.value)+"%",1),S("small",null,l2(V3.value.name),1)])],4),S("div",yz,[S("span",null,l2(p3.value.name),1),S("strong",null,l2(V3.value.desc),1),S("small",null,l2(V3.value.plan),1),S("div",vz,[S("i",{style:o0({width:`${p.value}%`})},null,4)])])]),S("div",Sz,[(O(!0),V(Y3,null,e1(O3.value,(H2,w3)=>(O(),V("div",{key:H2.key,class:o1(["balance-live-step",`is-${P0(w3)}`])},[S("span",null,l2(H2.index),1),S("div",null,[S("strong",null,l2(H2.name),1),S("p",null,l2(z0(w3)?H2.plan:H2.pending),1)])],2))),128))])])):N3.value?(O(),V("section",_z,[S("div",xz,[S("div",Mz,[S("span",null,l2(R3.value)+"核算对象",1),S("strong",null,l2(p3.value.name),1),S("small",null,l2(Z3.value),1)]),S("div",Pz,[S("div",{class:"balance-core-ring",style:o0({"--usage-angle":q1.value})},[S("div",kz,[j2[5]||(j2[5]=S("span",null,"承载利用率",-1)),S("strong",null,l2(D1(gi)(_3.value.usageRate)),1),S("small",null,"超载率 "+l2(D1(gi)(_3.value.overloadRate)),1)])],4),j2[6]||(j2[6]=S("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),S("div",{class:o1(["balance-verdict-card",`is-${_3.value.risk.key}`])},[j2[7]||(j2[7]=S("span",null,"分析结论",-1)),S("strong",null,l2(_3.value.risk.label),1),S("small",null,l2(i0.value),1)],2)]),S("div",Ez,[S("div",Nz,[j2[8]||(j2[8]=S("span",null,"理论承载力",-1)),S("div",null,[S("i",{style:o0({width:`${_3.value.bearingPercent}%`})},null,4)]),S("strong",null,l2(D1(Di)(_3.value.bearing)),1)]),S("div",Rz,[j2[9]||(j2[9]=S("span",null,"实际载畜量",-1)),S("div",null,[S("i",{style:o0({width:`${_3.value.livestockPercent}%`})},null,4)]),S("strong",null,l2(D1(Di)(_3.value.livestock)),1)])]),S("div",Lz,[S("div",Iz,[S("div",Fz,[j2[10]||(j2[10]=S("span",null,"分析过程",-1)),S("small",null,l2(p3.value.year||"当前年度"),1)]),S("div",Bz,[(O(!0),V(Y3,null,e1(i3.value,H2=>(O(),V("span",{key:`track-${H2.key}`,class:o1(`is-${H2.state}`)},l2(H2.name),3))),128))]),(O(!0),V(Y3,null,e1(h3.value,H2=>(O(),V("div",{key:H2.key,class:"balance-formula-row"},[S("span",null,l2(H2.index),1),S("div",null,[S("strong",null,l2(H2.name),1),S("p",null,l2(H2.desc),1)])]))),128))]),S("div",Dz,[S("div",Gz,[j2[11]||(j2[11]=S("span",null,"结论与建议",-1)),S("small",null,l2(r0.value),1)]),S("div",Uz,[S("strong",null,l2(_3.value.risk.description),1),S("p",null,l2(s0.value),1)]),S("div",Oz,[(O(!0),V(Y3,null,e1(U2.value,(H2,w3)=>(O(),V("div",{key:`${H2}-${w3}`,class:"balance-advice-item"},[S("span",null,l2(w3+1),1),S("p",null,l2(H2),1)]))),128))])]),S("div",jz,[j2[13]||(j2[13]=S("div",{class:"balance-section-title"},[S("span",null,"超载率排行"),S("small",null,"乡镇 Top10")],-1)),S("div",zz,[(O(!0),V(Y3,null,e1(u1.value,H2=>(O(),V("div",{key:`overload-${H2.key||H2.name}`,class:o1(["balance-rank-row",S3(H2)]),style:o0({"--rank-progress":`${A1(H2)}%`})},[S("span",null,l2(H2.rank),1),S("strong",null,l2(H2.name),1),j2[12]||(j2[12]=S("div",null,[S("i")],-1)),S("em",null,l2(D1(gi)(H2.overloadRate)),1)],6))),128))])])])])):(O(),V("section",wz,[S("div",bz,[S("div",Tz,[S("div",Cz,[S("span",null,l2(j1.value),1),S("strong",null,l2(l3.value?p3.value.name:"草畜平衡"),1),S("small",null,l2(l3.value?"待执行模型分析":"等待核算对象"),1)])]),S("h2",null,l2(a1.value),1),S("p",null,l2(G1.value),1)]),S("div",Az,[S("span",{class:o1({active:l3.value})},"对象锁定",2),j2[2]||(j2[2]=S("i",null,null,-1)),S("span",{class:o1({active:l3.value})},"等待启动分析",2),j2[3]||(j2[3]=S("i",null,null,-1)),j2[4]||(j2[4]=S("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}},qz="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAK+SURBVHgB7dzNbdswGIdxSugCRtGBuklWSO17nXs/J0hHywA11AEMu3wDsLFT5WCJ5PtI/D8nQ5cA/FmxJJLqtofhHBSmPihUAoElEFgCgfVu7ODX95suqOKNXVDpDIElEFgCgSUQWAKBJRBYAoE1G2Q3DJ/j9fRjUGE7DI+f4niEGc0CMYzzKezjx7vWUQwjnMJdF8djDsq8M+QYLu/om0VJGP8OXI/LTc0C+fJhs4/fiIeLQ82hvMaI/zEevsVxCROb/RvSMkpuDCvLVVaLKCUwrGyXvS2hlMKwst6HtIBSEsPKfmO4ZpTSGFaRO/U1otTAsIo9OlkTSi0Mq+izrDWg1MSwij9cXDJKbQyrytPeJaJ4YFjVHr8vCcULw6o6H7IEFE8Mq/oEFRnFG8NymTEkohAwLLcpXBIKBcNynVMnoJAwLPdFDp4oNAwLserEA4WIYXVjK7C9Vr+fY8Gh7e8/Lhha/f5GhDMjJRBYAoElEFgCgSUQWAKBJRBYAoElEFgCgSUQWAKBJRBYAoElEFgCgSUQWAKBJRBYAoElEFgCgSUQWAKBJZDwvIIQs2kIA/K81tYvzKYhBMh/75vyCYHiDgLBSLmjuIK8xrBV6J1HoO11biCk/Rmk7XUuIMTNMhSU6iDUnUsWAaUqCBkj5Y1SDWQJGClPlCogS8JIeaEUB1kiRsoDpSjIkjFStVGKgawBI1UTpQjImjBStVCyg6wRI1UDJSvImjFSpVGygbSAkSqJkgWkJYxUKZTZIC1ipEqgzAJpGSOVG2UyiDBeyokyCWR3OOyFcd0Yyu4wfA83Ngnk2Pe/ziE82WdhvHSJYuNz7MPPcGOTQH5sNk+nPnyMf/xeGNcZSvyS3tv42DiFG0O94q+19Iq/BSQQWAKBJRBYAoElEFgCgSUQWKM3hsovnSGwBAJLILAEAusvLK6Na4P/Au0AAAAASUVORK5CYII=",Jz=P9.map(t=>B2({},t)),Xh=ep.map(t=>B2({},t)),Qz=ep.map(t=>{var e,n;return{name:t.name,value:t.value,lng:(e=t.center)==null?void 0:e[0],lat:(n=t.center)==null?void 0:n[1]}}),Zz=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];var em=class{constructor(t,e){H0(this,"target");H0(this,"name");H0(this,"intersected");H0(this,"wasIntersected",!1);H0(this,"wasIntersectedOnMouseDown",!1);H0(this,"distance");this.target=t,this.name=e,this.intersected=!1,this.distance=0}},hn=class{constructor(t,e=null){H0(this,"type");H0(this,"cancelBubble");H0(this,"originalEvent");H0(this,"coords",new gt(0,0));H0(this,"distance",0);H0(this,"intersected",!1);H0(this,"wasIntersected",!1);H0(this,"wasIntersectedOnMouseDown",!1);this.cancelBubble=!1,this.type=t,this.originalEvent=e}stopPropagation(){this.cancelBubble=!0}},Xz=class{constructor(t,e,n,a){H0(this,"renderer");H0(this,"camera");H0(this,"domElement");H0(this,"bindEventsOnBodyElement");H0(this,"autoAdd");H0(this,"scene");H0(this,"mouse");H0(this,"supportsPointerEvents");H0(this,"interactiveObjects");H0(this,"closestObject");H0(this,"raycaster");H0(this,"treatTouchEventsAsMouseEvents");H0(this,"dispose",()=>{this.domElement.removeEventListener("click",this.onMouseClick),this.supportsPointerEvents&&(this.bindEventsOnBodyElement?this.domElement.ownerDocument.removeEventListener("pointermove",this.onDocumentPointerMove):this.domElement.removeEventListener("pointermove",this.onDocumentPointerMove),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointerup",this.onPointerUp)),this.bindEventsOnBodyElement?this.domElement.ownerDocument.removeEventListener("mousemove",this.onDocumentMouseMove):this.domElement.removeEventListener("mousemove",this.onDocumentMouseMove),this.domElement.removeEventListener("mousedown",this.onMouseDown),this.domElement.removeEventListener("mouseup",this.onMouseUp),this.domElement.removeEventListener("touchstart",this.onTouchStart),this.domElement.removeEventListener("touchmove",this.onTouchMove),this.domElement.removeEventListener("touchend",this.onTouchEnd)});H0(this,"add",(t,e=[])=>{if(t&&!this.interactiveObjects.find(n=>n.target===t))if(e.length>0)e.forEach(n=>{let a=t.getObjectByName(n);if(a){let i=new em(a,n);this.interactiveObjects.push(i)}});else{let n=new em(t,t.name);this.interactiveObjects.push(n)}});H0(this,"remove",(t,e=[])=>{!t||(e.length>0?e.forEach(n=>{let a=t.getObjectByName(n);a&&(this.interactiveObjects=this.interactiveObjects.filter(i=>i.target!==a))}):this.interactiveObjects=this.interactiveObjects.filter(n=>n.target!==t))});H0(this,"update",()=>{var a;this.raycaster.setFromCamera(this.mouse,this.camera),this.interactiveObjects.forEach(i=>{i.target&&this.checkIntersection(i)}),this.interactiveObjects.sort(function(i,r){return i.distance-r.distance});let t=(a=this.interactiveObjects.find(i=>i.intersected))!=null?a:null;if(t!=this.closestObject){if(this.closestObject){let i=new hn("mouseout");this.dispatch(this.closestObject,i)}if(t){let i=new hn("mouseover");this.dispatch(t,i)}this.closestObject=t}let e;this.interactiveObjects.forEach(i=>{!i.intersected&&i.wasIntersected&&(e||(e=new hn("mouseleave")),this.dispatch(i,e))});let n;this.interactiveObjects.forEach(i=>{i.intersected&&!i.wasIntersected&&(n||(n=new hn("mouseenter")),this.dispatch(i,n))})});H0(this,"checkIntersection",t=>{let e=this.raycaster.intersectObjects([t.target],!0);if(t.wasIntersected=t.intersected,e.length>0){let n=e[0].distance;e.forEach(a=>{a.distance{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY);let e=new hn("mousemove",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});H0(this,"onDocumentPointerMove",t=>{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY);let e=new hn("pointermove",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});H0(this,"onTouchMove",t=>{t.touches.length>0&&this.mapPositionToPoint(this.mouse,t.touches[0].clientX,t.touches[0].clientY);let e=new hn(this.treatTouchEventsAsMouseEvents?"mousemove":"touchmove",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});H0(this,"onMouseClick",t=>{this.update();let e=new hn("click",t);this.interactiveObjects.forEach(n=>{n.intersected&&this.dispatch(n,e)})});H0(this,"onMouseDown",t=>{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY),this.update();let e=new hn("mousedown",t);this.interactiveObjects.forEach(n=>{n.intersected?(n.wasIntersectedOnMouseDown=!0,this.dispatch(n,e)):n.wasIntersectedOnMouseDown=!1})});H0(this,"onPointerDown",t=>{this.mapPositionToPoint(this.mouse,t.clientX,t.clientY),this.update();let e=new hn("pointerdown",t);this.interactiveObjects.forEach(n=>{n.intersected&&this.dispatch(n,e)})});H0(this,"onTouchStart",t=>{t.touches.length>0&&this.mapPositionToPoint(this.mouse,t.touches[0].clientX,t.touches[0].clientY),this.update();let e=new hn(this.treatTouchEventsAsMouseEvents?"mousedown":"touchstart",t);this.interactiveObjects.forEach(n=>{n.intersected&&this.dispatch(n,e)})});H0(this,"onMouseUp",t=>{let e=new hn("mouseup",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});H0(this,"onPointerUp",t=>{let e=new hn("pointerup",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});H0(this,"onTouchEnd",t=>{t.touches.length>0&&this.mapPositionToPoint(this.mouse,t.touches[0].clientX,t.touches[0].clientY),this.update();let e=new hn(this.treatTouchEventsAsMouseEvents?"mouseup":"touchend",t);this.interactiveObjects.forEach(n=>{this.dispatch(n,e)})});H0(this,"dispatch",(t,e)=>{t.target&&!e.cancelBubble&&(e.coords=this.mouse,e.distance=t.distance,e.intersected=t.intersected,e.wasIntersected=t.wasIntersected,e.wasIntersectedOnMouseDown=t.wasIntersectedOnMouseDown,t.target.dispatchEvent(e))});H0(this,"mapPositionToPoint",(t,e,n)=>{let a=this.renderer.domElement.getBoundingClientRect();t.x=(e-a.left)/a.width*2-1,t.y=-((n-a.top)/a.height)*2+1});this.renderer=t,this.camera=e,this.domElement=n,this.bindEventsOnBodyElement=a&&typeof a.bindEventsOnBodyElement<"u"?a.bindEventsOnBodyElement:!0,this.scene=a&&typeof a.scene<"u"?a.scene:null,this.scene&&(this.scene.onBeforeRender=()=>{this.autoAdd&&this.scene!==null&&this.scene.traverse(i=>{this.add(i),i.addEventListener("removed",r=>{this.remove(r.target)})}),this.update()}),this.autoAdd=a&&typeof a.autoAdd<"u"?a.autoAdd:!1,this.autoAdd&&this.scene===null&&console.error("Attention: Options.scene needs to be set when using options.autoAdd"),this.mouse=new gt(-1,1),this.supportsPointerEvents=!!window.PointerEvent,this.interactiveObjects=[],this.closestObject=null,this.raycaster=new MA,n.addEventListener("click",this.onMouseClick),this.supportsPointerEvents&&(this.bindEventsOnBodyElement?n.ownerDocument.addEventListener("pointermove",this.onDocumentPointerMove):n.addEventListener("pointermove",this.onDocumentPointerMove),n.addEventListener("pointerdown",this.onPointerDown),n.addEventListener("pointerup",this.onPointerUp)),this.bindEventsOnBodyElement?n.ownerDocument.addEventListener("mousemove",this.onDocumentMouseMove):n.addEventListener("mousemove",this.onDocumentMouseMove),n.addEventListener("mousedown",this.onMouseDown),n.addEventListener("mouseup",this.onMouseUp),n.addEventListener("touchstart",this.onTouchStart,{passive:!0}),n.addEventListener("touchmove",this.onTouchMove,{passive:!0}),n.addEventListener("touchend",this.onTouchEnd,{passive:!0}),this.treatTouchEventsAsMouseEvents=!0}};const v8=256,Ol="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",eY=900,tY=10,w9=new Map,S8={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function Hs(t,e,n){const a=n5(2,n),i=Math.sin(e*Math.PI/180);return{x:(t+180)/360*a,y:(.5-Math.log((1+i)/(1-i))/(4*Math.PI))*a}}function tm(t,e,n){const a=n5(2,n),i=t/a*360-180,r=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(r)-Math.exp(-r)));return[i,o]}function Ci(t,e,n){return Math.max(e,Math.min(n,t))}function qg(t,e,{centerLngLat:n,maxCols:a,maxRows:i}={}){const r=Hs(t.west,t.north,e),o=Hs(t.east,t.south,e),s=Math.floor(r.x),u=Math.floor(o.x),m=Math.floor(r.y),p=Math.floor(o.y);let f=s,g=u,C=m,F=p,z=Math.floor((s+u)/2),Y=Math.floor((m+p)/2);if(n&&Number.isFinite(a)&&Number.isFinite(i)){const i2=Ci(Number(n[0]),t.west,t.east),v2=Ci(Number(n[1]),t.south,t.north),y2=Hs(i2,v2,e);z=Math.floor(y2.x),Y=Math.floor(y2.y);const A2=Math.max(1,Math.min(Math.floor(a),u-s+1)),S2=Math.max(1,Math.min(Math.floor(i),p-m+1));f=Ci(z-Math.floor(A2/2),s,u-A2+1),C=Ci(Y-Math.floor(S2/2),m,p-S2+1),g=f+A2-1,F=C+S2-1}return{zoom:e,minX:f,maxX:g,minY:C,maxY:F,centerX:z,centerY:Y,cols:g-f+1,rows:F-C+1}}function nY({zoom:t=11,centerLngLat:e,maxCols:n,maxRows:a,bounds:i=S8}={}){return qg(i,t,{centerLngLat:e,maxCols:n,maxRows:a})}function aY(t,e){const[n,a]=tm(t.minX,t.minY,t.zoom),[i,r]=tm(t.maxX+1,t.maxY+1,t.zoom),[o]=e([n,S8.south]),[s]=e([i,S8.south]),[,u]=e([S8.west,a]),[,m]=e([S8.west,r]);return{left:o,right:s,bottom:-m,top:-u}}function iY(t,e){const{width:n,height:a}=e;t.save(),t.globalCompositeOperation="multiply",t.fillStyle="rgba(5, 24, 34, 0.22)",t.fillRect(0,0,n,a),t.globalCompositeOperation="screen";const i=t.createRadialGradient(n*.5,a*.48,n*.1,n*.5,a*.5,n*.72);i.addColorStop(0,"rgba(80, 230, 255, 0.16)"),i.addColorStop(1,"rgba(0, 18, 36, 0.03)"),t.fillStyle=i,t.fillRect(0,0,n,a),t.restore()}function rY(t,e){const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"#061927"),n.addColorStop(.5,"#0b2c3c"),n.addColorStop(1,"#07131f"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height)}function oY(t){const e=w9.get(t);return e||new Promise(n=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>n(a),a.onerror=()=>{w9.delete(t),n(null)},a.src=t})}function sY(t){const e=w9.get(t);if(e)return e;const n=oY(t);for(w9.set(t,n);w9.size>eY;){const a=w9.keys().next().value;if(!a)break;w9.delete(a)}return n}function lY(t,e,n,a=Ol){return String(a||Ol).replace(/\{x\}/g,t).replace(/\{y\}/g,e).replace(/\{z\}/g,n)}function uY(s,u,m,p){return L3(this,arguments,function*(t,e,n,a,{tileUrlTemplate:i,onTileStatus:r,applyTone:o=!0}={}){const f=[],g=a.cols*a.rows;let C=0,F=0;r==null||r({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:C,failed:F,total:g,zoom:a.zoom,tileRange:a,tileUrlTemplate:i}),t.save(),t.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let A2=a.minX;A2<=a.maxX;A2+=1)for(let S2=a.minY;S2<=a.maxY;S2+=1)f.push({x:A2,y:S2});f.sort((A2,S2)=>Math.abs(A2.x-a.centerX)+Math.abs(A2.y-a.centerY)-(Math.abs(S2.x-a.centerX)+Math.abs(S2.y-a.centerY)));let z=0;function Y(){return L3(this,null,function*(){for(;z0?C/g:0,v2=C===0?"error":i2>=.75?"success":"warning",y2=C===g?`${a.zoom}级影像底图已加载`:C>0?`${a.zoom}级影像底图已加载(${C}/${g}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;r==null||r({type:v2,text:y2,loaded:C,failed:F,total:g,zoom:a.zoom,tileRange:a,tileUrlTemplate:i})})}function nm({geoProjectionCenter:t,geoProjectionScale:e,zoom:n=11,tileUrlTemplate:a=Ol,onTileStatus:i,centerLngLat:r,maxCols:o,maxRows:s,transparentBackground:u=!1,applyTone:m=!0}={}){const p=qg(S8,n,{centerLngLat:r,maxCols:o,maxRows:s}),f=document.createElement("canvas");f.width=p.cols*v8,f.height=p.rows*v8;const g=f.getContext("2d");u?g.clearRect(0,0,f.width,f.height):rY(g,f);const C=new $i(f);C.colorSpace=bn,C.wrapS=ma,C.wrapT=ma,C.minFilter=A9,C.magFilter=A9,C.needsUpdate=!0;const F=G6().center(t).scale(e).translate([0,0]),z=aY(p,F);return uY(g,f,C,p,{tileUrlTemplate:a,onTileStatus:i,applyTone:m}).catch(Y=>{console.warn("load satellite tiles failed:",Y),i==null||i({type:"error",text:`${p.zoom}级影像底图加载失败`,loaded:0,failed:p.cols*p.rows,total:p.cols*p.rows,zoom:p.zoom,tileRange:p,tileUrlTemplate:a})}),{texture:C,uvBounds:z,tileRange:p}}function am(t,e){const n=e.right-e.left,a=e.top-e.bottom;t.mapGroup.traverse(i=>{var s,u;const r=(u=(s=i.geometry)==null?void 0:s.attributes)==null?void 0:u.position;if(!i.isMesh||!r)return;const o=new Float32Array(r.count*2);for(let m=0;mn.value-e.value),t}function f6(t){return String(t||"").replace(/\s+/g,"").trim()}function Ie(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function y9(t,e,n){const a=Number(t);return Number.isFinite(a)?Math.max(e,Math.min(n,a)):e}function Ct(t){return String(t!=null?t:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function um(t){return(t==null?void 0:t.scope)==="village"||(t==null?void 0:t.labelMode)==="village"}function cm(t){return(t==null?void 0:t.scope)==="trade-flow"||(t==null?void 0:t.labelMode)==="trade-flow"}function wY(t){return(t==null?void 0:t.showFlowLines)!==!1}function dm(t){return!!(t!=null&&t.hideTownNames||(t==null?void 0:t.showTownNames)===!1)}function Y4(t){return!!(t!=null&&t.hideMapLabels||(t==null?void 0:t.showMapLabels)===!1)}function bY(t){return(t==null?void 0:t.displayMode)==="callout"||(t==null?void 0:t.labelMode)==="callout"}function Ai(t){return["wkt-api","geojson","wfs"].includes(String((t==null?void 0:t.sourceType)||"").toLowerCase())}function TY(t){return(t==null?void 0:t.interactive)===!1||(t==null?void 0:t.key)==="yak-recognition-layer"}function fm(t){return String((t==null?void 0:t.sourceType)||"").toLowerCase()==="wmts"}function hm(t,e,n){const a=n5(2,n),i=Math.sin(e*Math.PI/180);return{x:(t+180)/360*a,y:(.5-Math.log((1+i)/(1-i))/(4*Math.PI))*a}}function mm(t,e,n){const a=n5(2,n),i=t/a*360-180,r=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(r)-Math.exp(-r)));return[i,o]}function CY(t,e){const n=hm(t.west,t.north,e),a=hm(t.east,t.south,e);return{minX:Math.floor(n.x),maxX:Math.floor(a.x),minY:Math.floor(n.y),maxY:Math.floor(a.y)}}function AY(t,e,n,a){const[i,r]=mm(t,e,n),[o,s]=mm(t+1,e+1,n),u=J1.east-J1.west,m=J1.north-J1.south;return{x:(i-J1.west)/u*a.width,y:(J1.north-r)/m*a.height,width:(o-i)/u*a.width,height:(r-s)/m*a.height}}function _Y(t){const e=i8.get(t);if(e)return e;const n=new Promise(a=>{const i=new Image;i.crossOrigin="anonymous",i.onload=()=>a(i),i.onerror=()=>{i8.delete(t),a(null)},i.src=t});for(i8.set(t,n);i8.size>gY;){const a=i8.keys().next().value;if(!a)break;i8.delete(a)}return n}function pm(t){return t?/^https?:\/\//.test(t)||t.startsWith("/")?t:`./${t}`:""}function xY(t){if(!t)return null;if(typeof t=="string")try{return JSON.parse(t)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return t}function $4(t){const e=xY(t);return e!=null&&e.features&&e.features.forEach(n=>{var a;((a=n.geometry)==null?void 0:a.type)==="Polygon"&&(n.geometry.coordinates=[n.geometry.coordinates])}),e}function gm(t){var e,n,a;return t!=null&&t.coordinates?t.type==="Polygon"?Array.isArray((a=(n=(e=t.coordinates)==null?void 0:e[0])==null?void 0:n[0])==null?void 0:a[0])?t.coordinates:[t.coordinates]:t.type==="MultiPolygon"?t.coordinates:[]:[]}class MY extends eP{constructor(e,n,a={}){var s,u,m,p;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new PA(466735,1,50),this.scene.background=new ct(466735),this.camera.instance.position.copy(fY),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=cY.clone(),this.defaultMapTarget=dY.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new Xz(this.renderer.instance,this.camera.instance,this.canvas),this.assets=n,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const i=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(i)&&i>0?Math.min(Ks,i):V_;const r=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(r)&&r>0?Math.min(Ks,Math.max(this.satelliteTextureZoom,r)):Ks;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=hY,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(Xh.map(f=>[f6(f.name),f])),this.staticMapData={china:$4(this.assets.instance.getResource("china")),mapJson:$4(this.assets.instance.getResource("mapJson")),mapStroke:$4(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(u=(s=this.canvas)==null?void 0:s.addEventListener)==null||u.call(s,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(p=(m=this.canvas)==null?void 0:m.addEventListener)==null||p.call(m,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Ge,this.label3d=new sP(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Ge,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=nn.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),Y4(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!Y4(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),Y4(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,i)=>{let r=a.element.querySelector(".other-label");e.to(r,{duration:1,delay:.1*i,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,i;this.flyLineFocusGroup.visible=!0,(i=(a=this.callbacks).onPlayComplete)==null||i.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,i)=>{e.to(a.scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,i)=>{e.to(a,{duration:1,delay:.1*i,opacity:1,ease:"circ.out"},"bar")}));const n=this;this.allProvinceLabel.map((a,i)=>{let r=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),s={progress:0};e.to(r,{duration:1,delay:.2*i,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(s,{duration:1,delay:.2*i,progress:1,onStart:()=>{s.progress=0},onUpdate:u},"bar");function u(){var p,f;const m=Ie((f=(p=a.userData)==null?void 0:p.targetValue)!=null?f:o.dataset.targetValue);o.innerText=n.formatMapRankingValue(m*s.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,i)=>{e.to(a.children[0].scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new kA(13171711,4.2);this.scene.add(e);let n=new Fm(14679295,5.8);n.position.set(-30,6,-8),n.castShadow=!0,n.shadow.radius=20,n.shadow.mapSize.width=1024,n.shadow.mapSize.height=1024,this.scene.add(n),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const n=new Im(1924702,e.intensity,e.distance);n.position.set(e.x,e.y,e.z),this.scene.add(n)}createMap(){let e=new Ge,n=new Ge;this.mapGroup=e,this.focusMapGroup=n;let{china:a,chinaTopLine:i}=this.createChina(),{map:r,mapTop:o,mapLine:s,mapBoundaryEmphasis:u}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),i.setParent(e),this.createDiffuse(),r.setParent(n),o.setParent(n),s.setParent(n),u==null||u.setParent(n),n.position.set(0,0,-.01),n.scale.set(1,1,0),e.add(n),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},n=this.staticMapData.china,a=new ds({color:new ct(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),i=new B4(this,{data:n,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),r=new N5({color:e.lineColor,transparent:!0,opacity:.58}),o=new t8(this,{data:n,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:r,renderOrder:3});return o.lineGroup.position.z+=.01,{china:i,chinaTopLine:o}}createNationalBackdrop(){var m;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=$4(this.assets.instance.getResource("chinaMap"))}catch(p){return console.warn("首页全国底图资源未加载",p),!1}if(!((m=e==null?void 0:e.features)!=null&&m.length))return!1;const n=this.geoProjectionCenter,a=120,i=new _0(0,0,-.08),r=new ds({color:new ct("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:xt}),o=new B4(this,{data:e,geoProjectionCenter:n,geoProjectionScale:a,merge:!0,position:i,material:r,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const s=new N5({color:new ct("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),u=new t8(this,{data:e,geoProjectionCenter:n,geoProjectionScale:a,position:new _0(i.x,i.y,i.z+.01),material:s,renderOrder:1});return u.lineGroup.name="home-national-backdrop-line",u.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=u.lineGroup,!0}createTradeNationalMap(){var f;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=$4(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("牦牛交易全国地图资源未加载",g),!1}const n=e;if(!e||!((f=n==null?void 0:n.features)!=null&&f.length))return!1;const a=new Ge;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const i=new Pe({color:403001,transparent:!0,opacity:.14,side:xt,depthWrite:!1,fog:!1});new B4(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new _0(.05,-.05,-.03),material:i,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:s}=this.createTradeNationalMaterials(),u=new Zf(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new _0(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:s,renderOrder:20,bevelThickness:.024,bevelSegments:1});u.mapGroup.traverse(g=>{g.isMesh&&(g.renderOrder=20)}),u.setParent(a);const m=new N5({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),p=new t8(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:m,renderOrder:21});return p.lineGroup.position.z+=this.tradeNationalDepth+.055,p.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(n),!0}createTradeNationalMaterials(){const e=new f8({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:xt,fog:!1});new ci(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const n=this.assets.instance.getResource("side").clone();n.wrapS=pn,n.wrapT=pn,n.repeat.set(1,1.2),n.needsUpdate=!0;const a=new f8({color:1485501,map:n,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:xt,fog:!1});return new ci(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{n.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Ge,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const n=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var u;const i=((u=a.properties)==null?void 0:u.name)||"",r=this.normalizeTradeProvinceName(i);if(!n.has(r))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const s=this.label3d.create("","trade-national-label",!0);s.init(`
${Ct(r)}
`,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(s,.012,"x"),s.setParent(this.tradeNationalLabelGroup),s.visible=!0,this.tradeNationalLabels.push(s)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var r,o,s;const n=((r=e==null?void 0:e.properties)==null?void 0:r.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((s=e==null?void 0:e.properties)==null?void 0:s.center);if(Array.isArray(n)&&Number.isFinite(Number(n[0]))&&Number.isFinite(Number(n[1])))return{lng:Number(n[0]),lat:Number(n[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const i=a.reduce((u,m)=>({minLng:Math.min(u.minLng,Number(m[0])),maxLng:Math.max(u.maxLng,Number(m[0])),minLat:Math.min(u.minLat,Number(m[1])),maxLat:Math.max(u.maxLat,Number(m[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(i.minLng+i.maxLng)/2,lat:(i.minLat+i.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const n=this.useSatelliteBase?nm({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:f=>{var g,C;return(C=(g=this.callbacks).onTileStatus)==null?void 0:C.call(g,f)}}):null;n!=null&&n.texture&&this.enhanceTexture(n.texture);let[a,i]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=i;let r=new Zf(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new _0(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:i,renderOrder:9}),o=new f8({color:this.useSatelliteBase?16777215:13172735,map:(n==null?void 0:n.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new ci(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new ct("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let s=new B4(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new _0(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=s,this.satelliteMaterial=o,n!=null&&n.uvBounds&&am(s,n.uvBounds),s.mapGroup.children.map(f=>{f.children.map(g=>{g.type==="Mesh"&&this.eventElement.push(g)})}),this.mapLineMaterial=new N5({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let u=new t8(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});u.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let m=null;const p=this.getAdminBoundaryEmphasisRadius();return p>0&&(this.mapBoundaryEmphasisMaterial=new Pe({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Rt}),m=new t8(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:p}),m.lineGroup.position.z+=this.depth+.255),{map:r,mapTop:s,mapLine:u,mapBoundaryEmphasis:m}}normalizeAdminBoundaryLineScale(e){const n=Number(e);return Number.isFinite(n)?Math.min(4,Math.max(1,n)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=F6.width,e.height=F6.height;const n=e.getContext("2d");n.clearRect(0,0,e.width,e.height);const a=new $i(e);a.colorSpace=bn,a.wrapS=ma,a.wrapT=ma,a.minFilter=A9,a.magFilter=A9,this.enhanceTexture(a),a.needsUpdate=!0;const i=new Pe({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:xt,fog:!1}),r=this.createLayerUvBounds(),o=new B4(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new _0(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:i,renderOrder:this.isHomeTopicPresentation()?24:18});am(o,r),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=r,this.topicLayerCanvas=e,this.topicLayerContext=n,this.topicLayerTexture=a,this.topicLayerMaterial=i,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var n,a,i;if((n=this.hongyuanBoundaryPolygons)!=null&&n.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=gm((i=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:i.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Ge,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=G6().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[n]=e([J1.west,J1.south]),[a]=e([J1.east,J1.south]),[,i]=e([J1.west,J1.north]),[,r]=e([J1.west,J1.south]);return{left:n,right:a,bottom:-r,top:-i}}setTopicLayer(e){var a,i;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const n=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(i=(a=this.callbacks).onLayerStatus)==null||i.call(a,{type:"loading",text:`正在加载 ${e.name}`}),Ai(e)){this.loadVectorTopicLayer(e,n);return}this.loadTopicLayerImage(e).then(r=>{var o,s,u,m;if(n===this.topicLayerLoadId){if(!(r!=null&&r.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(s=(o=this.callbacks).onLayerStatus)==null||s.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(r.image,r.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(m=(u=this.callbacks).onLayerStatus)==null||m.call(u,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var r,o;n===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(r=this.callbacks).onLayerStatus)==null||o.call(r,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],n=e[0]){var r,o,s,u;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(r=this.callbacks).onLayerStatus)==null||o.call(r,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(B2(B2({},a[0]),(n==null?void 0:n.key)===a[0].key?n:{}));return}this.currentTopicLayer=n||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const i=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(s=this.callbacks).onLayerStatus)==null||u.call(s,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(m=>this.loadCompositeTopicLayerItem(m))).then(m=>{var g,C,F;if(i!==this.topicLayerLoadId)return;const p=m.filter(Boolean),f=p.find(z=>{var Y,i2;return z.type==="vector"&&((Y=z.layer)==null?void 0:Y.key)===((i2=this.currentTopicLayer)==null?void 0:i2.key)});this.currentVectorFeatures=((g=f==null?void 0:f.geojson)==null?void 0:g.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),p.forEach((z,Y)=>{var i2,v2;if(z.type==="image"){this.topicLayerContext.save();const y2=Y===p.length-1?Math.max(.78,(i2=z.layer.opacity)!=null?i2:.9):Math.min(.52,(v2=z.layer.opacity)!=null?v2:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,y2)),this.drawTopicRasterImage(z.image,z.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(z.layer,z.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=p.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(F=(C=this.callbacks).onLayerStatus)==null||F.call(C,{type:p.length?"success":"error",text:p.length?`已加载 ${p.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return L3(this,null,function*(){if(Ai(e))try{const n=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:n}}catch(n){return null}return this.loadTopicLayerImage(e).then(n=>n?B2({type:"image"},n):null)})}loadTopicLayerImage(e){return fm(e)?this.loadWmtsTopicLayerImage(e):new Promise(n=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>n({image:a,layer:e}),a.onerror=()=>n(null),a.src=NN(e)})}loadWmtsTopicLayerImage(e){return L3(this,null,function*(){const n=document.createElement("canvas");n.width=F6.width,n.height=F6.height;const a=n.getContext("2d");if(!a)return null;a.clearRect(0,0,n.width,n.height);const i=this.getWmtsTopicZoom(e),r=CY(J1,i),o=[];for(let p=r.minX;p<=r.maxX;p+=1)for(let f=r.minY;f<=r.maxY;f+=1)o.push({x:p,y:f});let s=0,u=0;const m=()=>L3(this,null,function*(){for(;u0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${s}px)`,a.drawImage(i,0,0),a.restore()),o>0){const p=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,p.forEach(([f,g])=>a.drawImage(i,f,g)),a.restore()}a.drawImage(i,0,0)}getWmtsTopicZoom(e={}){var o,s,u;const n=Math.round(Number(e.maximumLevel)),a=Number.isFinite(n)&&n>0?n:21,i=Number((u=(s=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?s:e.tileZoom)!=null?u:this.satelliteTextureZoom),r=Number.isFinite(i)&&i>0?Math.round(i):11;return y9(r,3,Math.min(a,13))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const n=fm(e)?rl:A9;this.topicLayerTexture.minFilter=n,this.topicLayerTexture.magFilter=n,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,n={}){const a=this.topicLayerCanvas,i=this.topicLayerContext;if(!a||!i)return;if(!n.softMask){this.drawHomeTopicRasterGlow(e,n),i.drawImage(e,0,0,a.width,a.height);return}const r=Math.min(1,Math.max(.08,Number(n.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*r)),o.height=Math.max(96,Math.round(a.height*r));const s=o.getContext("2d");if(!s){i.drawImage(e,0,0,a.width,a.height);return}s.clearRect(0,0,o.width,o.height),s.imageSmoothingEnabled=!0,s.imageSmoothingQuality="high",s.drawImage(e,0,0,o.width,o.height),i.save(),i.imageSmoothingEnabled=!0,i.imageSmoothingQuality="high",i.drawImage(o,0,0,a.width,a.height),i.restore()}drawHomeTopicRasterGlow(e,n={}){var u,m;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,i=this.topicLayerContext;if(!a||!i)return;const r=y9((u=n.homeGlowOpacity)!=null?u:0,0,.8),o=y9((m=n.homeGlowBlur)!=null?m:0,0,32);if(!r||!o)return;const s=n.homeGlowColor||"#E5FCFF";i.save(),i.globalAlpha=r,i.filter=`drop-shadow(0 0 ${o}px ${s})`,i.drawImage(e,0,0,a.width,a.height),i.restore()}applyLayerMapView(e,n={}){var u,m;if(!((u=this.camera)!=null&&u.instance)||!((m=this.camera)!=null&&m.controls)||!this.mapAnimationComplete&&!n.force)return;const a=e?null:this.currentTownRanking,i=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),r=i?this.getLayerMapViewTarget(i):this.defaultMapTarget.clone(),o=i?this.getLayerMapViewCameraPosition(i,r):this.defaultMapCameraPosition.clone(),s=i&&Number.isFinite(i.duration)?i.duration:.75;this.animateMapCamera(o,r,s)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,n=.84){const a=Number(e==null?void 0:e.opacity),i=Number.isFinite(a)?a:n;if(!this.isHomeTopicPresentation())return i;const r=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(r)?r:.56;return y9(i,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var r,o,s,u,m,p,f;const e=(u=(s=(o=(r=this.camera)==null?void 0:r.controls)==null?void 0:o.target)==null?void 0:s.clone)==null?void 0:u.call(s);if(!e)return[102.58,32.72];(p=(m=this.focusMapGroup)==null?void 0:m.updateWorldMatrix)==null||p.call(m,!0,!1);const n=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=G6().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),i=((f=a.invert)==null?void 0:f.call(a,[n.x,-n.y]))||[102.58,32.72];return[Math.max(J1.west,Math.min(J1.east,Number(i[0])||102.58)),Math.max(J1.south,Math.min(J1.north,Number(i[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,n){return n?`${e}:${n.minX}-${n.maxX}:${n.minY}-${n.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const n=Date.now();if(!e&&n-this.dynamicSatelliteLastCheck{var u,m,p,f,g;if((p=(m=this.callbacks).onTileStatus)==null||p.call(m,t3(B2({},s),{text:((u=s.text)==null?void 0:u.replace("影像底图","高清影像底图"))||s.text})),s.type!=="loading"){if(r!==this.dynamicSatelliteRequestId){(g=(f=o==null?void 0:o.texture)==null?void 0:f.dispose)==null||g.call(f);return}if(this.dynamicSatelliteLoadingKey="",Number(s.loaded||0)<=0){this.dynamicSatelliteCurrentKey===i&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,i)}}}),this.applyDynamicSatelliteOverlay(o,i)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new Pe({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:xt,fog:!1}),n=new nt(new o5(1,1),e);n.name="dynamic-satellite-overlay",n.renderOrder=15,n.visible=!1,n.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(n),this.dynamicSatelliteOverlay=n,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,n){var o,s;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,i=Math.max(1e-4,a.right-a.left),r=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(i,r,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((s=(o=this.dynamicSatelliteTexture).dispose)==null||s.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=n}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,n,a,i;if(!this.mapAnimationComplete){if((n=(e=this.animateTl)==null?void 0:e.progress)==null||n.call(e,1,!1),(i=(a=this.animateTl)==null?void 0:a.pause)==null||i.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),Y4(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var n;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(n=e.targetLocalZ)!=null?n:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,n){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,i=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),r=n.clone().add(i);return e!=null&&e.cameraOffset&&r.add(this.toVector3(e.cameraOffset,new _0(0,0,0))),r}lngLatToWorldPoint(e,n=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],i=Number(a==null?void 0:a[0]),r=Number(a==null?void 0:a[1]);if(!Number.isFinite(i)||!Number.isFinite(r))return this.defaultMapTarget.clone();const[o,s]=this.geoProjection([i,r]),u=new _0(o,-s,Number(n)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(u):u}toVector3(e,n){if(Array.isArray(e)){const[o,s,u]=e.map(Number);return[o,s,u].every(Number.isFinite)?new _0(o,s,u):n.clone()}const a=Number(e==null?void 0:e.x),i=Number(e==null?void 0:e.y),r=Number(e==null?void 0:e.z);return[a,i,r].every(Number.isFinite)?new _0(a,i,r):n.clone()}animateMapCamera(e,n,a=.75){this.activeMapViewTweens.forEach(o=>{var s;return(s=o==null?void 0:o.kill)==null?void 0:s.call(o)}),this.activeMapViewTweens=[];const i=this.camera.controls,r=()=>i.update();this.activeMapViewTweens.push(nn.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:r}),nn.to(i.target,{duration:a,x:n.x,y:n.y,z:n.z,ease:"power2.out",onUpdate:r}))}addSceneTween(e){var n;return e&&(this.sceneTweens.push(e),this.scenePaused&&((n=e.pause)==null||n.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,n={}){var s,u,m;const a=this.townMetaByName.get(f6(e)),i=n.select?this.selectTownFeatureByName(e,n):!1;if(n.preserveCamera)return i||!!(a!=null&&a.center);if(!(a!=null&&a.center))return i;const r=this.lngLatToWorldPoint(a.center,(s=n.targetLocalZ)!=null?s:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(u=n.distanceScale)!=null?u:.82,cameraOffset:n.cameraOffset||{x:0,y:1.2,z:0}},r);return this.animateMapCamera(o,r,(m=n.duration)!=null?m:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,i,r,o,s,u,m,p,f,g;return[(r=(i=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:i.userData)==null?void 0:r.name,(s=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:s.name,(p=(m=(u=e==null?void 0:e.target)==null?void 0:u.parent)==null?void 0:m.userData)==null?void 0:p.townName,(g=(f=e==null?void 0:e.target)==null?void 0:f.userData)==null?void 0:g.townName].find(C=>String(C||"").trim())||""}findTownFeatureByName(e){var i,r,o,s;const n=f6(e);if(!n)return null;const a=(((i=this.mapJsonData)==null?void 0:i.features)||((o=(r=this.staticMapData)==null?void 0:r.mapJson)==null?void 0:o.features)||[]).find(u=>{const m=(u==null?void 0:u.properties)||{};return[m.name,m.fullName,m.full_name,m.townName].some(f=>f6(f)===n)});return a!=null&&a.geometry?{type:"Feature",properties:t3(B2({},a.properties||{}),{name:((s=a.properties)==null?void 0:s.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,n={}){var i,r,o,s,u;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),n.silentStatus!==!0&&((u=(s=this.callbacks).onLayerStatus)==null||u.call(s,{type:"success",text:n.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(n.showMissingStatus!==!1&&((r=(i=this.callbacks).onLayerStatus)==null||r.call(i,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,n={}){var s,u;if(!this.isNationalParkTownSelectionActive())return!1;const a=f6(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(m=>f6(m.name)===a))return!1;const o=this.focusTownByName(e,B2({select:!0,preserveCamera:!0,statusText:`已选中${e}`},n));return o&&((u=(s=this.callbacks).onFeatureInfo)==null||u.call(s,{feature:null})),o}focusYakIndustryPoint(e={}){var r,o;const n=this.getYakIndustryPayloadCoordinate(e);if(!n)return(o=(r=this.callbacks).onLayerStatus)==null||o.call(r,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,n);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(n,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var m,p;const n=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),i=String(e.fullName||e.name||"").trim(),r=n.find(f=>{const g=(f==null?void 0:f.properties)||{};return a&&String(g.id||"")===a||i&&String(g.name||g.plot_name||"").trim()===i});if(!r)return(p=(m=this.callbacks).onLayerStatus)==null||p.call(m,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([r]);const o=this.getGeometryLngLatBounds(r.geometry);if(!o)return{focused:!1,screen:null,feature:r};const s=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(s,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(r),feature:r}}getVectorFeatureScreen(e={}){let n=(e==null?void 0:e.feature)||e;if(!(n!=null&&n.geometry)){const r=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");n=r.find(s=>{var u;return String(((u=s==null?void 0:s.properties)==null?void 0:u.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(n==null?void 0:n.geometry);if(!a)return null;const i=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(i,this.depth+.34)||this.lngLatToScreenPoint(i,this.depth+.32)}getYakIndustryPointScreen(e={}){const n=this.getYakIndustryPayloadCoordinate(e);return n?this.lngLatToLayerScreenPoint(n,this.depth+.36)||this.lngLatToScreenPoint(n,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var r,o,s,u,m;const n=((r=e.geometry)==null?void 0:r.coordinates)||e.coordinates,a=Number((s=(o=e.longitude)!=null?o:e.lng)!=null?s:n==null?void 0:n[0]),i=Number((m=(u=e.latitude)!=null?u:e.lat)!=null?m:n==null?void 0:n[1]);return!Number.isFinite(a)||!Number.isFinite(i)?null:[a,i]}findYakIndustryPointFeature(e={},n=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),i=String(e.id||e.key||""),r=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),s=n&&a.find(m=>{var f;if(((f=m==null?void 0:m.geometry)==null?void 0:f.type)!=="Point")return!1;const p=m.properties||{};return o&&String(p.stageKey||"")!==o?!1:this.getCoordinateDistance(m.geometry.coordinates,n)<=8e-4})||null;if(e.preferCoordinateMatch)return s;const u=a.find(m=>{const p=(m==null?void 0:m.properties)||{};return!!(i&&String(p.id||"")===i||r&&String(p.name||p.fullName||"").trim()===r)});return u||s}loadVectorTopicLayer(e,n){return L3(this,null,function*(){var a,i,r,o;try{const s=yield this.fetchVectorLayerGeojson(e);if(n!==this.topicLayerLoadId)return;this.currentVectorFeatures=s.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(i=(a=this.callbacks).onLayerStatus)==null||i.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(s){if(n!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(r=this.callbacks).onLayerStatus)==null||o.call(r,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return L3(this,null,function*(){var r,o;if(e.sourceType==="geojson"){if(((r=e.geojsonData)==null?void 0:r.type)==="FeatureCollection")return e.geojsonData;const s=yield fetch(pm(e.dataPath),{credentials:"include"});if(!s.ok)throw new Error(`HTTP ${s.status}`);return yield s.json()}if(e.sourceType==="wfs"){const s=yield nr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(s==null?void 0:s.type)==="FeatureCollection"?s:{type:"FeatureCollection",features:(s==null?void 0:s.features)||[]}}let n=[],a=null;try{const s=yield fetch(e.apiUrl,{credentials:"include"});if(!s.ok)throw new Error(`HTTP ${s.status}`);const u=yield s.json();n=Array.isArray(u==null?void 0:u.data)?u.data:Array.isArray((o=u==null?void 0:u.data)==null?void 0:o.rows)?u.data.rows:[]}catch(s){a=s}let i=this.buildWktLayerFeatures(n);if((!n.length||!i.length)&&e.fallbackPath){const s=yield fetch(pm(e.fallbackPath),{credentials:"include"});if(!s.ok)throw a||new Error(`HTTP ${s.status}`);const u=yield s.json();n=Array.isArray(u==null?void 0:u.rows)?u.rows:[],i=this.buildWktLayerFeatures(n)}return{type:"FeatureCollection",features:i}})}buildWktLayerFeatures(e=[]){return(e||[]).map(n=>({type:"Feature",properties:{id:n.id,type:n.type,totalAcreage:n.totalAcreage,cdAcreage:n.cdAcreage,sdAcreage:n.sdAcreage,cdScl:n.cdScl,sdScl:n.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(n))})).filter(n=>n.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,n,a={}){const i=this.topicLayerContext;a.clear!==!1&&i.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),i.save(),i.lineJoin="round",i.lineCap="round",this.clipVectorLayerContext(i,e);const o=this.getVisibleVectorFeatures(e,n).filter(s=>{var u;return!(e!=null&&e.hidePointFeatures)||((u=s==null?void 0:s.geometry)==null?void 0:u.type)!=="Point"}).sort((s,u)=>{var f,g;const m=this.getGeometryDrawRank((f=s.geometry)==null?void 0:f.type),p=this.getGeometryDrawRank((g=u.geometry)==null?void 0:g.type);return m-p});o.forEach(s=>{const u=this.getVectorFeatureStyle(e,s);this.drawVectorFeature(i,s.geometry,u)}),this.drawNationalParkBoundaryOverlay(i,e,o),this.drawSelectedVectorOverlay(i),i.restore()}drawNationalParkBoundaryOverlay(e,n,a=[]){(n==null?void 0:n.key)!=="national-park-zoning"||!a.length||a.forEach(i=>{const r=this.getVectorFeatureStyle(n,i);this.drawVectorFeature(e,i.geometry,t3(B2({},r),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,i.geometry,t3(B2({},r),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,i.geometry,t3(B2({},r),{fill:r.stroke,stroke:r.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const n=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],i=this.analysisBoundaryFeature,r=this.boundaryDrawPoints||[];if(!n.length&&!a.length&&!i&&!r.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),s={fill:im,stroke:vY,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},u={fill:im,stroke:yY,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),n.forEach(m=>{var f;const p=(m==null?void 0:m.geometry)||((f=m==null?void 0:m.feature)==null?void 0:f.geometry);this.drawVectorFeature(e,p,s),this.drawVectorFeature(e,p,u)}),a.forEach(m=>{var f;const p=(m==null?void 0:m.geometry)||((f=m==null?void 0:m.feature)==null?void 0:f.geometry);this.drawVectorFeature(e,p,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),i!=null&&i.geometry&&this.drawVectorFeature(e,i.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),r.length){const m=r.map(f=>[f.lng,f.lat]),p={type:"LineString",coordinates:this.boundaryDrawingEnabled?m:[...m,m[0]].filter(Boolean)};this.drawVectorFeature(e,p,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),m.forEach(f=>{this.drawVectorFeature(e,{type:"Point",coordinates:f},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!Ai(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},n={}){var r;const a=Array.isArray(n==null?void 0:n.matches)?n.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var s;return String((s=e[o.field])!=null?s:"")===String(o.value)});const i=n==null?void 0:n.match;return i!=null&&i.field?String((r=e[i.field])!=null?r:"")===String(i.value):!0}getVisibleVectorFeatures(e,n){var s,u;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(m=>{var p,f;return((p=m==null?void 0:m.matches)==null?void 0:p.length)||((f=m==null?void 0:m.match)==null?void 0:f.field)}):[];if(a.length)return(n||[]).filter(m=>a.some(p=>this.featureMatchesLegend((m==null?void 0:m.properties)||{},p)));const i=e==null?void 0:e.activeLegend;if((s=i==null?void 0:i.matches)!=null&&s.length||(u=i==null?void 0:i.match)!=null&&u.field)return(n||[]).filter(m=>this.featureMatchesLegend((m==null?void 0:m.properties)||{},i));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,m,p]=o,f=p.replace(/''/g,"'");return(n||[]).filter(g=>{var C,F;return String((F=(C=g==null?void 0:g.properties)==null?void 0:C[m])!=null?F:"")===f})}return[...n||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,n=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,n);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((i,r)=>{var s;let o=this.yakIndustryPointLabels[r];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(i),this.getYakIndustryPointLabelPosition(i,r)),o.visible=!0,(s=o.show)==null||s.call(o),o.userData={feature:i}}),this.yakIndustryPointLabels.slice(a.length).forEach(i=>{var r;i.visible=!1,(r=i.hide)==null||r.call(i),i.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,n=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,n).filter(i=>{var r;return((r=i==null?void 0:i.geometry)==null?void 0:r.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((i,r)=>{let o=this.yakIndustryPointMarkers[r];const s=this.getVectorFeatureStyle(e,i),u=this.getYakIndustryMarkerMaterial(s,i),m=this.lngLatToLayerLocalPoint(i.geometry.coordinates,this.depth+.36),p=Number(e==null?void 0:e.pointSpriteScale)||.34,f=this.getYakIndustryMarkerType(i);o||(o=new Z9(u),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=u,o.center.set(.5,.5),o.position.copy(m),o.scale.set(p*.88,p*.88,1),o.visible=!0,o.userData={feature:i,layer:e,index:r,markerType:f}}),this.yakIndustryPointMarkers.slice(a.length).forEach(i=>{i.visible=!1,i.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Ge,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(n=>{n.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",n=>{var r,o,s,u,m,p,f,g,C;if(this.clicked||!((r=this.yakIndustryPointMarkerGroup)!=null&&r.visible))return!1;const a=(s=(o=n.target)==null?void 0:o.userData)==null?void 0:s.feature;if(!a)return!1;this.clicked=!0;const i=((u=a.geometry)==null?void 0:u.coordinates)||[];this.setSelectedVectorFeatures([a]),(C=(g=this.callbacks).onFeatureInfo)==null||C.call(g,{feature:{id:((m=a.properties)==null?void 0:m.id)||((p=a.properties)==null?void 0:p.feature_id)||((f=a.properties)==null?void 0:f.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(i[0]),lat:Number(i[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,n){const a=e.markerType||this.getYakIndustryMarkerType(n),i=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,r=this.yakIndustryMarkerMaterialCache.get(i);if(r)return r;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),s=new X9({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(i,s),s}getYakIndustryMarkerType(e={}){var a;const n=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return sm[n]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",n="#B7FFF2",a="point"){const i=document.createElement("canvas");i.width=112,i.height=112;const r=i.getContext("2d"),o=56,s=56;r.clearRect(0,0,i.width,i.height),r.beginPath(),r.arc(o,s,42,0,Math.PI*2),r.fillStyle=this.hexToRgba(e,.18),r.shadowColor=e,r.shadowBlur=20,r.fill(),this.drawYakIndustryMarkerFrame(r,a,o,s,e,n||e),r.save(),r.shadowBlur=0,r.beginPath(),r.arc(o,s,19,0,Math.PI*2),r.fillStyle="rgba(3, 23, 34, 0.64)",r.fill(),r.strokeStyle=this.hexToRgba("#FFFFFF",.32),r.lineWidth=2,r.stroke(),r.restore(),this.drawYakIndustryMarkerGlyph(r,a,o,s,"#FFFFFF");const u=new $i(i);return u.colorSpace=bn,u.needsUpdate=!0,u}drawYakIndustryMarkerFrame(e,n,a,i,r="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,i),e.fillStyle=this.hexToRgba(r,.92),e.strokeStyle=this.hexToRgba(o||r,.98),e.lineWidth=4,e.shadowColor=o||r,e.shadowBlur=14,n==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(n==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(n==="breeding"){e.beginPath();for(let s=0;s<6;s+=1){const u=-Math.PI/2+Math.PI*2*s/6,m=Math.cos(u)*35,p=Math.sin(u)*35;s===0?e.moveTo(m,p):e.lineTo(m,p)}e.closePath()}else if(n==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(n==="processing"){e.beginPath();for(let s=0;s<10;s+=1){const u=-Math.PI/2+Math.PI*2*s/10,m=s%2===0?38:30,p=Math.cos(u)*m,f=Math.sin(u)*m;s===0?e.moveTo(p,f):e.lineTo(p,f)}e.closePath()}else if(n==="equipment"){e.beginPath();for(let s=0;s<16;s+=1){const u=-Math.PI/2+Math.PI*2*s/16,m=s%2===0?38:30,p=Math.cos(u)*m,f=Math.sin(u)*m;s===0?e.moveTo(p,f):e.lineTo(p,f)}e.closePath()}else n==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,n,a,i,r="#24F6C4"){if(e.save(),e.translate(a,i),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(r,.98),e.strokeStyle=this.hexToRgba(r,.98),e.lineWidth=3,n==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(n==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(n==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(n==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(n==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(n==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else n==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Ge,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(n=>{var a;n.visible=!1,(a=n.hide)==null||a.call(n)})}getYakIndustryLabelFeatures(e,n){const a=this.getVisibleVectorFeatures(e,n).filter(u=>{var m;return((m=u==null?void 0:u.geometry)==null?void 0:m.type)==="Point"}),i=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),r=a.map(u=>{var m;return{feature:u,score:this.getYakIndustryFeatureScore(u),town:f6((m=u.properties)==null?void 0:m.town)}}).sort((u,m)=>{var p,f;return m.score-u.score||String(((p=u.feature.properties)==null?void 0:p.name)||"").localeCompare(String(((f=m.feature.properties)==null?void 0:f.name)||""),"zh-CN")}),o=[],s=new Set;return r.forEach(u=>{o.length>=i||!u.town||s.has(u.town)||(o.push(u.feature),s.add(u.town))}),r.forEach(u=>{o.length>=i||o.includes(u.feature)||o.push(u.feature)}),o}getYakIndustryFeatureScore(e){const n=(e==null?void 0:e.properties)||{},a=[n.outputValue,n.capacity,n.value,n.count,n["年产值 (万元)"],n["年总产值 (万元)"],n["设计存栏量 (头)"],n["总库容 (吨)"]].map(i=>this.parseMapMetricNumber(i));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const n=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return n&&Number(n[0])||0}getYakIndustryPointLabelPosition(e,n=0){var i;const a=this.lngLatToLayerLocalPoint((i=e==null?void 0:e.geometry)==null?void 0:i.coordinates,this.depth+.42+Math.min(n,5)*.01);return a.x+=(n%3-1)*.08,a.y+=n%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const n=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(n.name||n.fullName||"产业主体"),i=this.formatYakIndustryLabelText(n.categoryName||n.stageName||"产业主体"),r=n.town||n.village||"红原县",o=this.getYakIndustryPointMetricText(n),s=this.getYakIndustryLabelColor(n);return`
-
${Ct(i)}
-
${Ct(a)}
-
- ${Ct(r)} - ${o?`${Ct(o)}`:""} -
-
`}compactYakIndustryLabelName(e=""){const n=String(e).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/\s+/g," ").trim();return n.length>16?`${n.slice(0,15)}…`:n}formatYakIndustryLabelText(e=""){return String(e).replace(/\bcxpt[-_./\s]*/gi,"").replace(/^cxpt/i,"").replace(/\s+/g," ").trim()}getYakIndustryPointMetricText(e={}){return e.capacity!==void 0&&e.capacity!==null&&e.capacity!==""&&this.parseMapMetricNumber(e.capacity)>0?this.formatYakIndustryMetricText(e.capacity,e.capacityUnit):this.parseMapMetricNumber(e.outputValue)>0?`${this.formatMapRankingValue(e.outputValue)}万元`:this.isMeaningfulMapText(e.locationType)?e.locationType:this.isMeaningfulMapText(e.status)?e.status:""}isMeaningfulMapText(e){const n=String(e!=null?e:"").trim();return!!(n&&n!=="0"&&n!=="无"&&n!=="待完善")}formatYakIndustryMetricText(e,n=""){const a=String(e!=null?e:"").trim();return!a||a==="0"?"":typeof e=="string"&&/[^\d.,\s-]/.test(a)?a:`${this.formatMapRankingValue(e)}${n||""}`}getYakIndustryLabelColor(e={}){var i,r,o,s,u,m;const n=String(e.stageKey||""),a=(((i=this.currentTopicLayer)==null?void 0:i.legends)||[]).find(p=>{var f;return String(((f=p.match)==null?void 0:f.value)||"")===n})||(String(((s=(o=(r=this.currentTopicLayer)==null?void 0:r.activeLegend)==null?void 0:o.match)==null?void 0:s.value)||"")===n?this.currentTopicLayer.activeLegend:null);return(a==null?void 0:a.fillColor)||((m=(u=this.currentTopicLayer)==null?void 0:u.activeLegend)==null?void 0:m.fillColor)||"#24F6C4"}clipVectorLayerContext(e,n){if(this.shouldClipLayerToHongyuanBoundary(n)&&this.clipContextToHongyuanBoundary(e),!this.shouldClipLayerToLayerBounds(n))return;const a=this.getLayerClipBounds(n);if(!a)return;const i=this.lngLatToLayerCanvasPoint([a.west,a.north]),r=this.lngLatToLayerCanvasPoint([a.east,a.south]),o=Math.min(i.x,r.x),s=Math.min(i.y,r.y),u=Math.abs(r.x-i.x),m=Math.abs(r.y-i.y);!u||!m||(e.beginPath(),e.rect(o,s,u,m),e.clip())}clipContextToHongyuanBoundary(e){const n=this.hongyuanBoundaryPolygons||[];n.length&&(e.beginPath(),n.forEach(a=>{a.forEach(i=>{i.forEach((r,o)=>{const s=this.lngLatToLayerCanvasPoint(r);o===0?e.moveTo(s.x,s.y):e.lineTo(s.x,s.y)}),e.closePath()})}),e.clip("evenodd"))}shouldClipLayerToHongyuanBoundary(e=this.currentTopicLayer){if(!e||e.clipToHongyuanBoundary===!1)return!1;if(e.clipToHongyuanBoundary===!0)return!0;const n=String((e==null?void 0:e.key)||"");return!!(n==="national-park-zoning"||n.startsWith("yak-"))}shouldClipLayerToLayerBounds(e=this.currentTopicLayer){return!!(e!=null&&e.clipBounds&&(e==null?void 0:e.clipToLayerBounds)!==!1)}isLngLatInHongyuanBoundary(e){const n=this.hongyuanBoundaryPolygons||[];return n.length?n.some(a=>this.isLngLatInPolygon(e,a)):!0}isLngLatInLayerClipBounds(e,n=this.currentTopicLayer){const a=this.getLayerClipBounds(n);return a?e.lng>=a.west&&e.lng<=a.east&&e.lat>=a.south&&e.lat<=a.north:!0}getLayerClipBounds(e){const n=e==null?void 0:e.clipBounds;if(!n)return null;const a=Math.max(Number(n.west),J1.west),i=Math.max(Number(n.south),J1.south),r=Math.min(Number(n.east),J1.east),o=Math.min(Number(n.north),J1.north);return![a,i,r,o].every(Number.isFinite)||a>=r||i>=o?null:{west:a,south:i,east:r,north:o}}getGeometryDrawRank(e){return String(e).includes("Polygon")?1:String(e).includes("LineString")?2:3}isEcologicalProjectLayer(e=this.currentTopicLayer){return["restoration-projects","engineering-analysis-projects"].includes(e==null?void 0:e.key)}getVectorFeatureStyle(e,n){var u,m,p;const a=n.properties||{},r=(e.legends||[]).find(f=>{var g,C;return(((g=f==null?void 0:f.matches)==null?void 0:g.length)||((C=f==null?void 0:f.match)==null?void 0:C.field))&&this.featureMatchesLegend(a,f)})||e.activeLegend||((u=e.legends)==null?void 0:u[0])||{},o=String(((m=n.geometry)==null?void 0:m.type)||"").includes("LineString"),s=((p=n.geometry)==null?void 0:p.type)==="Point";if(this.isEcologicalProjectLayer(e)){const f=o||String(a.feature_role||"")==="线性设施";return{fill:f||s?r.strokeColor||r.fillColor||"#D2EA78":r.fillColor||"#75AD49",stroke:r.strokeColor||r.fillColor||"#D2EA78",polygonAlpha:f?.08:.22,lineAlpha:f?.9:.82,lineWidth:f?3:1.85,pointRadius:s?3.8:4,glow:!1}}return(e==null?void 0:e.key)==="yak-epidemic-village-boundary"?{fill:r.fillColor||"#24F6C4",stroke:r.strokeColor||"#C9FBFF",polygonAlpha:.16,lineAlpha:1,lineWidth:3.2,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="artificial-grassland-plots"?{fill:r.fillColor||"#24F6C4",stroke:r.strokeColor||"#A7F8FF",polygonAlpha:.2,lineAlpha:.94,lineWidth:1.6,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="yak-industry-points"?{fill:r.fillColor||"#24F6C4",stroke:r.strokeColor||r.fillColor||"#B7FFF2",polygonAlpha:.36,lineAlpha:.82,lineWidth:1.6,pointRadius:this.getVectorPointRadius(e,n),glow:!0,halo:!0,marker:!0,markerType:sm[String(a.stageKey||"")]||"point"}:(e==null?void 0:e.key)==="national-park-zoning"?{fill:r.fillColor||"#30DCFF",stroke:r.strokeColor||"#F2FFFF",polygonAlpha:.38,lineAlpha:.96,lineWidth:2.7,pointRadius:4.5,glow:!1}:e!=null&&e.boundaryOnly?{fill:r.fillColor||"#24F6C4",stroke:r.strokeColor||r.fillColor||"#18F8FF",polygonAlpha:.04,lineAlpha:.96,lineWidth:10,pointRadius:4.5,glow:!0}:{fill:o||s?r.strokeColor||r.fillColor||"#30DCFF":r.fillColor||"#30DCFF",stroke:r.strokeColor||r.fillColor||"#30DCFF",polygonAlpha:.36,lineAlpha:o?.92:.9,lineWidth:o?5:2.4,pointRadius:s?this.getVectorPointRadius(e,n):4.5,glow:!0}}getVectorPointRadius(e,n){var i,r;const a=Number(((i=n==null?void 0:n.properties)==null?void 0:i.count)||((r=n==null?void 0:n.properties)==null?void 0:r.value)||0);return(e==null?void 0:e.key)==="yak-recognition-layer"?Math.max(3.8,Math.min(8.6,3.6+Math.sqrt(a)/68)):(e==null?void 0:e.key)==="yak-industry-points"?10.4:4.5}drawVectorFeature(e,n,a){if(n!=null&&n.coordinates){if(n.type==="Polygon"){this.drawPolygonPath(e,n.coordinates,a);return}if(n.type==="MultiPolygon"){n.coordinates.forEach(i=>this.drawPolygonPath(e,i,a));return}if(n.type==="LineString"){this.drawLinePath(e,n.coordinates,a);return}if(n.type==="MultiLineString"){n.coordinates.forEach(i=>this.drawLinePath(e,i,a));return}n.type==="Point"&&this.drawPointPath(e,n.coordinates,a)}}drawPolygonPath(e,n,a){Array.isArray(n==null?void 0:n[0])&&(e.save(),e.beginPath(),n.forEach(i=>{i.forEach((r,o)=>{const s=this.lngLatToLayerCanvasPoint(r);o===0?e.moveTo(s.x,s.y):e.lineTo(s.x,s.y)}),e.closePath()}),e.fillStyle=this.hexToRgba(a.fill,a.polygonAlpha),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,a.glow&&(e.shadowColor=a.stroke,e.shadowBlur=14),e.fill("evenodd"),e.stroke(),e.restore())}drawLinePath(e,n,a){!Array.isArray(n)||n.length<2||(e.save(),e.beginPath(),n.forEach((i,r)=>{const o=this.lngLatToLayerCanvasPoint(i);r===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,e.shadowColor=a.stroke,e.shadowBlur=12,e.stroke(),e.restore())}drawPointPath(e,n,a){var r;if(a.marker){this.drawMarkerPointPath(e,n,a);return}const i=this.lngLatToLayerCanvasPoint(n);e.save(),a.halo&&(e.beginPath(),e.arc(i.x,i.y,a.pointRadius*2.35,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.18),e.shadowColor=a.fill,e.shadowBlur=18,e.fill()),e.beginPath(),e.arc(i.x,i.y,a.pointRadius,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.96),e.shadowColor=a.stroke,e.shadowBlur=a.halo?8:12,e.fill(),a.lineWidth&&(e.lineWidth=a.lineWidth,e.strokeStyle=this.hexToRgba(a.stroke,(r=a.lineAlpha)!=null?r:.9),e.stroke()),e.restore()}drawMarkerPointPath(e,n,a){const i=this.lngLatToLayerCanvasPoint(n),r=a.pointRadius||6;e.save(),e.beginPath(),e.arc(i.x,i.y+r*.22,r*2.55,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.16),e.shadowColor=a.fill,e.shadowBlur=24,e.fill(),e.beginPath(),e.moveTo(i.x,i.y+r*2.05),e.bezierCurveTo(i.x+r*1.46,i.y+r*.62,i.x+r*1.34,i.y-r*1.34,i.x,i.y-r*1.62),e.bezierCurveTo(i.x-r*1.34,i.y-r*1.34,i.x-r*1.46,i.y+r*.62,i.x,i.y+r*2.05),e.closePath(),e.fillStyle=this.hexToRgba(a.fill,.94),e.strokeStyle=this.hexToRgba(a.stroke,.98),e.lineWidth=Math.max(2,a.lineWidth||2),e.shadowColor=a.stroke,e.shadowBlur=14,e.fill(),e.stroke(),e.beginPath(),e.arc(i.x,i.y-r*.34,r*.52,0,Math.PI*2),e.fillStyle=this.hexToRgba("#FFFFFF",.96),e.shadowBlur=0,e.fill(),e.beginPath(),e.arc(i.x,i.y-r*.34,r*.82,0,Math.PI*2),e.lineWidth=Math.max(1.2,r*.14),e.strokeStyle=this.hexToRgba("#FFFFFF",.42),e.stroke(),e.restore()}lngLatToLayerCanvasPoint(e){const n=Number(e==null?void 0:e[0]),a=Number(e==null?void 0:e[1]);return{x:(n-J1.west)/(J1.east-J1.west)*this.topicLayerCanvas.width,y:(J1.north-a)/(J1.north-J1.south)*this.topicLayerCanvas.height}}hexToRgba(e,n=1){const a=String(e||"#30DCFF").replace("#",""),i=a.length===3?a.split("").map(m=>m+m).join(""):a,r=Number.parseInt(i,16);if(!Number.isFinite(r))return`rgba(48, 220, 255, ${n})`;const o=r>>16&255,s=r>>8&255,u=r&255;return`rgba(${o}, ${s}, ${u}, ${n})`}parseWktGeometry(e){var o;const n=String(e||"").trim();if(!n)return null;const a=n.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),i=(o=a==null?void 0:a[1])==null?void 0:o.toUpperCase();if(!i)return null;const r=n.slice(n.indexOf("("));return i==="POLYGON"?{type:"Polygon",coordinates:this.parseWktPolygonBody(r)}:i==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:this.parseWktMultiPolygonBody(r)}:i==="POINT"?{type:"Point",coordinates:this.parseWktPoint(r)}:i==="MULTIPOINT"?{type:"MultiPoint",coordinates:this.getWktChildGroups(r).map(s=>this.parseWktPoint(s)).filter(Boolean)}:i==="LINESTRING"?{type:"LineString",coordinates:this.parseWktRing(r)}:i==="MULTILINESTRING"?{type:"MultiLineString",coordinates:this.getWktChildGroups(r).map(s=>this.parseWktRing(s)).filter(s=>s.length)}:null}parseWktMultiPolygonBody(e){return this.getWktChildGroups(e).map(n=>this.parseWktPolygonBody(n)).filter(n=>n.length)}parseWktPolygonBody(e){return this.getWktChildGroups(e).map(n=>this.parseWktRing(n)).filter(n=>n.length>=3)}getWktChildGroups(e){const n=String(e||"").trim(),a=n.startsWith("(")&&n.endsWith(")")?n.slice(1,-1):n,i=[];let r=0,o=-1;for(let s=0;s=0&&(i.push(a.slice(o,s+1)),o=-1))}return i.length?i:[a]}parseWktRing(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(a=>a.trim().split(/\s+/).slice(0,2).map(Number)).filter(([a,i])=>Number.isFinite(a)&&Number.isFinite(i))}parseWktPoint(e){const n=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return n.length>=2&&Number.isFinite(n[0])&&Number.isFinite(n[1])?[n[0],n[1]]:null}createProvinceMaterial(){const e=!this.useSatelliteBase;let n=new ds({color:16777215,transparent:!0,opacity:0,depthWrite:!this.usesCustomSatelliteTiles,fog:!1,side:xt});n.onBeforeCompile=r=>{r.uniforms=t3(B2({},r.uniforms),{uColor1:{value:new ct(e?2780818:2152676)},uColor2:{value:new ct(e?1058614:475482)}}),r.vertexShader=r.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),r.fragmentShader=r.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - void main() { - `),r.fragmentShader=r.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); - ${e?`outgoingLight = outgoingLight * gradient; - float topAlpha = 0.56;`:`outgoingLight = mix(outgoingLight * vec3(1.18), outgoingLight * gradient, 0.32); - float topAlpha = 0.92;`} - if(vPosition.z>0.3){ - diffuseColor.a *= topAlpha; - } - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)};let a=this.assets.instance.getResource("side");a.wrapS=pn,a.wrapT=pn,a.repeat.set(1,1.8),a.offset.y+=.065;let i=new f8({color:2148829,map:a,fog:!1,opacity:0,side:xt,roughness:.58,metalness:.08});return this.time.on("tick",()=>{a.offset.y+=.005}),i.onBeforeCompile=r=>{r.uniforms=t3(B2({},r.uniforms),{uColor1:{value:new ct(1629410)},uColor2:{value:new ct(205365)}}),r.vertexShader=r.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),r.fragmentShader=r.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - void main() { - `),r.fragmentShader=r.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); - outgoingLight = outgoingLight*gradient*vec3(1.12); - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)},[n,i]}getDefaultTownRanking(){return{title:"乡镇统计加载中",unit:"",rows:Xh.map(e=>({name:e.name,value:0,unit:""}))}}getTownRankingMeta(e=this.currentTownRanking){var i,r,o,s;const n=this.getDefaultTownRanking(),a=bY(e);return{title:(e==null?void 0:e.title)||n.title,unit:(e==null?void 0:e.unit)||n.unit,metricLabel:(e==null?void 0:e.metricLabel)||(e==null?void 0:e.legendName)||"",note:(e==null?void 0:e.note)||"",hideTownNames:dm(e),hideMapLabels:Y4(e),hideTownLabelStats:(i=e==null?void 0:e.hideTownLabelStats)!=null?i:this.hideTownLabelStatsByDefault,calloutMode:a,showBars:(r=e==null?void 0:e.showBars)!=null?r:!1,showPointMarkers:(o=e==null?void 0:e.showPointMarkers)!=null?o:a,onlyRankedTownLabels:(s=e==null?void 0:e.onlyRankedTownLabels)!=null?s:!1,showMissingTownStats:(e==null?void 0:e.showMissingTownStats)===!0}}getTownRankingRows(e=this.currentTownRanking,n=7,a=!0){var u;const i=this.getDefaultTownRanking(),r=(u=e==null?void 0:e.rows)!=null&&u.length?e.rows:a?i.rows:[],o=this.getTownRankingMeta(e),s=r.map(m=>{const p=this.townMetaByName.get(f6(m.name));return p?t3(B2(B2({},p),m),{name:p.name,enName:p.enName,center:p.center,centroid:p.centroid,value:Ie(m.value),unit:m.unit||o.unit,metricTitle:o.title}):null}).filter(Boolean).sort((m,p)=>p.value-m.value).map((m,p)=>t3(B2({},m),{rank:p+1}));return Number.isFinite(n)?s.slice(0,n):s}getVillageRankingRows(e=this.currentTownRanking){const n=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,i)=>{var m,p,f,g,C,F,z,Y;const r=Ie((m=a.lng)!=null?m:a.longitude,NaN),o=Ie((p=a.lat)!=null?p:a.latitude,NaN);if(!Number.isFinite(r)||!Number.isFinite(o))return null;const s=Ie((f=a.displayValue)!=null?f:a.value),u=Ie((F=(C=(g=a.rawValue)!=null?g:a.earTagCount)!=null?C:a.ear_tag_count)!=null?F:a.value);return t3(B2({},a),{key:a.key||`${a.town||""}-${a.village||a.name||i}`,name:a.name||a.village||`村${i+1}`,town:a.town||"",lng:r,lat:o,value:s,rawValue:u,recordCount:Ie((z=a.recordCount)!=null?z:a.record_count,0),imageRate:Ie((Y=a.imageRate)!=null?Y:a.image_rate,0),unit:a.displayUnit||a.unit||n.unit,metricTitle:n.title,metricLabel:a.metricLabel||n.metricLabel||""})}).filter(Boolean).sort((a,i)=>i.rawValue-a.rawValue).map((a,i)=>t3(B2({},a),{rank:i+1}))}getVillageRankingHtml(e,n){const a=n.hideTownNames?"":`${Ct(e.town||"红原县")}`;return e.displayMode==="park-village"||n.displayMode==="park-village"?`
-
- ${Ct(e.name)} - ${a} -
-
- ${Ct(e.metricLabel||n.metricLabel||"")} - ${this.formatMapRankingValue(e.value)} - ${Ct(e.unit||n.unit||"")} -
-
`:`
-
- ${Ct(e.name)} - ${a} -
-
- ${Ct(e.metricLabel||"防疫")} - ${this.formatMapRankingValue(e.value)} - ${Ct(e.unit||n.unit||"")} -
-
- 台账 ${this.formatMapCompactValue(e.recordCount)}条 - 耳标 ${this.formatMapCompactValue(e.rawValue)}头 -
-
`}ensureVillageRankingGroup(){this.villageRankingGroup||(this.villageRankingGroup=new Ge,this.villageRankingGroup.rotation.x=-Math.PI/2,this.villageRankingGroup.visible=!1,this.scene.add(this.villageRankingGroup),this.villageRankingLabels=[])}hideVillageRankingLabels(){var e;this.villageRankingGroup&&(this.villageRankingGroup.visible=!1),(e=this.villageRankingLabels)==null||e.forEach(n=>{n.visible=!1})}hideAllMapStatisticLabels(){var e,n,a,i;this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.hideTradeFlowLayer(),this.clearInfoPointStats(),(e=this.allProvinceLabel)==null||e.forEach(r=>{r.visible=!1}),(n=this.allBar)==null||n.forEach(r=>{r.visible=!1,r.scale.set(1,1,0)}),(a=this.allBarMaterial)==null||a.forEach(r=>{r.opacity=0}),(i=this.allGuangquan)==null||i.forEach(r=>{r.visible=!1})}setTownNameLabelsVisible(e=!0){var n;(n=this.townNameLabels)==null||n.forEach(a=>{a.visible=e})}updateVillageRankingLabels(e=this.currentTownRanking){if(this.ensureVillageRankingGroup(),!um(e)){this.hideVillageRankingLabels();return}const n=this.getVillageRankingRows(e),a=this.getTownRankingMeta(e);if(!n.length){this.hideVillageRankingLabels();return}this.villageRankingGroup.visible=this.mapAnimationComplete,n.forEach((i,r)=>{let o=this.villageRankingLabels[r];o||(o=this.label3d.create("","epidemic-village-label",!0),this.label3d.setLabelStyle(o,.0135,"x"),o.setParent(this.villageRankingGroup),this.villageRankingLabels.push(o));const[s,u]=this.geoProjection([i.lng,i.lat]),m=(r%3-1)*.06,p=Math.floor(r/3)%2*.04;o.init(this.getVillageRankingHtml(i,a),new _0(s+m,-u+p,this.depth+1.55+Math.min(r,6)*.015)),o.visible=!0,o.userData=B2({},i)}),this.villageRankingLabels.slice(n.length).forEach(i=>{i.visible=!1})}ensureTradeFlowGroup(){this.tradeFlowGroup||(this.tradeFlowGroup=new Ge,this.tradeFlowGroup.name="yak-trade-flow",this.tradeFlowGroup.visible=!1,this.tradeFlowMeshGroup=new Ge,this.tradeFlowMeshGroup.name="yak-trade-flow-mesh",this.tradeFlowMeshGroup.rotation.x=-Math.PI/2,this.tradeFlowLabelGroup=new Ge,this.tradeFlowLabelGroup.name="yak-trade-flow-label",this.tradeFlowLabelGroup.rotation.x=-Math.PI/2,this.tradeFlowGroup.add(this.tradeFlowMeshGroup,this.tradeFlowLabelGroup),this.scene.add(this.tradeFlowGroup))}hideTradeFlowLayer(){var e,n;this.tradeFlowGroup&&(this.tradeFlowGroup.visible=!1),(e=this.tradeFlowLabels)==null||e.forEach(a=>{a.visible=!1}),(n=this.tradeFlowPulseSprites)==null||n.forEach(a=>{a.visible=!1})}clearTradeFlowLayer(){this.tradeFlowMeshGroup&&(this.tradeFlowMeshGroup.children.forEach(e=>{var n;(n=e.traverse)==null||n.call(e,a=>this.disposeObject3D(a))}),this.tradeFlowMeshGroup.clear(),this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[])}getTradeFlowSource(e=this.currentTownRanking){var r,o,s,u;const n=(e==null?void 0:e.source)||{},a=Ie((r=n.lng)!=null?r:n.longitude,NaN),i=Ie((o=n.lat)!=null?o:n.latitude,NaN);return!Number.isFinite(a)||!Number.isFinite(i)?null:{name:n.name||"红原牦牛交易市场",lng:a,lat:i,total:Ie((u=(s=n.total)!=null?s:n.headCount)!=null?u:n.value,NaN)}}getTradeFlowRows(e=this.currentTownRanking){const n=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,i)=>{var g,C,F,z,Y,i2;const r=Ie((g=a.lng)!=null?g:a.longitude,NaN),o=Ie((C=a.lat)!=null?C:a.latitude,NaN),s=Ie((Y=(z=(F=a.headCount)!=null?F:a.head_count)!=null?z:a.rawValue)!=null?Y:a.value),u=a.displayName||a.display_name||a.name,m=a.mapTownName||a.map_town_name||a.town||a.startTown||a.start_town||u,p=this.townMetaByName.get(f6(m)),f=Number.isFinite(r)&&Number.isFinite(o)?{lng:r,lat:o}:p!=null&&p.center?{lng:p.center[0],lat:p.center[1]}:null;return!f||!Number.isFinite(s)?null:t3(B2(B2({},a),p),{key:a.key||`${(p==null?void 0:p.name)||u||m||"trade-source"}-${i}`,name:u||m||(p==null?void 0:p.name)||`来源${i+1}`,townName:(p==null?void 0:p.name)||m,lng:f.lng,lat:f.lat,labelSide:a.labelSide||a.label_side||this.getTradeSourceLabelSide(p,i),value:s,headCount:s,recordCount:Ie((i2=a.recordCount)!=null?i2:a.record_count,0),unit:a.unit||n.unit||"头"})}).filter(Boolean).sort((a,i)=>i.value-a.value).map((a,i)=>t3(B2({},a),{rank:i+1}))}getTradeMarketHtml(e,n){const a=Number.isFinite(e.total)?e.total:n.reduce((i,r)=>i+Ie(r.value),0);return`
-
${Ct(e.name)}
-
${this.formatMapIntegerValue(a)}
-
`}getTradeFlowDisplayName(e=""){const n=String(e||"").replace(/^.*红原县/,"").replace(/\s+/g,"");return n.length>7?`${n.slice(0,7)}…`:n||"来源区域"}getTradeFlowLabelHtml(e){return`
-
${String(e.rank).padStart(2,"0")}${Ct(this.getTradeFlowDisplayName(e.name))}
-
${this.formatMapIntegerValue(e.value)}${Ct(e.unit||"头")}
-
`}getTradeFlowLabelOffset(e,n){return new _0(0,0,0)}getTradeSourceLabelSide(e,n=0){var r,o;const a=Number((r=e==null?void 0:e.center)==null?void 0:r[0]),i=Number((o=e==null?void 0:e.center)==null?void 0:o[1]);return Number.isFinite(a)&&athis.geoProjectionCenter[0]+.2?"right":Number.isFinite(i)&&i>this.geoProjectionCenter[1]+.22?"top":Number.isFinite(i)&&i0&&(u.normalize().multiplyScalar((a%2===0?1:-1)*Math.min(.18,.05+s*.02)),o.add(u)),new Ym([i,o,r])}tradeGeoProjection(e){return G6().center(this.tradeGeoProjectionCenter).scale(this.tradeGeoProjectionScale).translate([0,0])(e)}setTradeNationalMapVisible(e){const n=!!e;if(!(!n&&!this.isTradeNationalMapActive&&!this.tradeNationalMapGroup&&!this.tradeFlowGroup)){if(n&&!this.createTradeNationalMap()){this.isTradeNationalMapActive=!1;return}this.isTradeNationalMapActive=n,this.tradeNationalMapGroup&&(this.tradeNationalMapGroup.visible=n&&this.mapAnimationComplete),this.tradeNationalLabelGroup&&(this.tradeNationalLabelGroup.visible=n&&this.mapAnimationComplete),this.mapGroup&&(this.mapGroup.visible=!n),this.labelGroup&&(this.labelGroup.visible=!n),this.flyLineGroup&&(this.flyLineGroup.visible=!n&&this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!n&&this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=!n&&this.mapAnimationComplete),this.topicLayerMaterial&&n&&(this.topicLayerMaterial.opacity=0),n&&this.mapAnimationComplete?this.animateMapCamera(new _0(0,11.4,16.2),new _0(0,-.05,0),.65):!n&&this.mapAnimationComplete&&this.applyLayerMapView(this.currentTopicLayer,{force:!0})}}createTradeSourceMarker(e,n,a,i,r=!0){const o=new ct(n%3===1?16766828:n%3===2?2617536:3202303),s=this.getTradeFlowPoint(e,.72);if(i&&r){const z=this.getLocalTradeFlowCurve(e,i,n),Y=new Pe({color:o,transparent:!0,opacity:.42,depthWrite:!1,depthTest:!1,fog:!1,blending:Rt}),i2=.012+Math.min(.012,Ie(e.value)/Math.max(a,1)*.01),v2=new nt(new $m(z,48,i2,8,!1),Y);v2.renderOrder=31,this.tradeFlowMeshGroup.add(v2),this.tradeFlowMaterials.push(Y);const y2=new X9({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.92,depthWrite:!1,depthTest:!1,fog:!1,blending:Rt}),A2=new Z9(y2),S2=.12+Math.min(.08,Ie(e.value)/Math.max(a,1)*.06);A2.renderOrder=36,A2.scale.set(S2,S2,S2),A2.userData={curve:z,phase:n*.13%1,speed:.16+Math.min(.16,Ie(e.value)/Math.max(a,1)*.12)},A2.position.copy(z.getPointAt(A2.userData.phase)),this.tradeFlowPulseSprites.push(A2),this.tradeFlowMeshGroup.add(A2)}const u=new X9({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.95,depthWrite:!1,depthTest:!1,fog:!1,blending:Rt}),m=new Z9(u),p=.22+Math.min(.34,Ie(e.value)/Math.max(a,1)*.28);m.renderOrder=34,m.scale.set(p,p,p),m.position.copy(s),this.tradeFlowMeshGroup.add(m);const f=this.assets.instance.getResource("guangquan1"),g=new Pe({map:f,alphaMap:f,color:o,transparent:!0,opacity:.52,depthWrite:!1,depthTest:!1,fog:!1,blending:Rt,side:xt}),C=.38+Math.min(.36,Ie(e.value)/Math.max(a,1)*.28),F=new nt(new o5(C,C),g);F.renderOrder=29,F.position.copy(this.getTradeFlowPoint(e,.5)),this.tradeFlowMeshGroup.add(F)}createTradeMarketMarker(e){const n=this.assets.instance.getResource("point"),a=this.assets.instance.getResource("guangquan1"),i=this.getTradeLocalPoint(e.lng,e.lat,.82),r=new X9({map:n,color:16773997,transparent:!0,opacity:1,depthWrite:!1,depthTest:!1,fog:!1,blending:Rt}),o=new Z9(r);o.renderOrder=35,o.scale.set(.34,.34,.34),o.position.copy(i),this.tradeFlowMeshGroup.add(o);const s=new Pe({map:a,alphaMap:a,color:16773997,transparent:!0,opacity:.72,depthWrite:!1,depthTest:!1,fog:!1,blending:Rt,side:xt}),u=new nt(new o5(.58,.58),s);u.renderOrder=29,u.position.copy(this.getTradeLocalPoint(e.lng,e.lat,.58)),this.tradeFlowMeshGroup.add(u)}disposeObject3D(e){var n,a,i,r;(a=(n=e.geometry)==null?void 0:n.dispose)==null||a.call(n),Array.isArray(e.material)?e.material.forEach(o=>{var s;return(s=o==null?void 0:o.dispose)==null?void 0:s.call(o)}):(r=(i=e.material)==null?void 0:i.dispose)==null||r.call(i)}updateTradeFlowPulses(e=.016){var n,a;!((n=this.tradeFlowGroup)!=null&&n.visible)||!((a=this.tradeFlowPulseSprites)!=null&&a.length)||this.tradeFlowPulseSprites.forEach(i=>{var s;const r=(s=i.userData)==null?void 0:s.curve;if(!r)return;const o=(Ie(i.userData.phase)+Ie(i.userData.speed,.16)*e)%1;i.userData.phase=o,i.position.copy(r.getPointAt(o))})}updateTradeFlowLayer(e=this.currentTownRanking){if(!cm(e)){this.hideTradeFlowLayer();return}this.ensureTradeFlowGroup();const n=this.getTradeFlowSource(e),a=this.getTradeFlowRows(e);if(!n||!a.length){this.clearTradeFlowLayer(),this.hideTradeFlowLayer();return}this.clearTradeFlowLayer(),this.tradeFlowGroup.visible=this.mapAnimationComplete;const i=wY(e);this.createTradeMarketMarker(n);const r=Math.max(...a.map(u=>u.value),1);a.forEach((u,m)=>{this.createTradeSourceMarker(u,m,r,n,i)});const o=a.length+1;for(let u=this.tradeFlowLabels.length;u{const p=this.tradeFlowLabels[m+1];p.element.className="trade-flow-label",p.init(this.getTradeFlowLabelHtml(u),this.getTradeFlowPoint(u,.78).add(this.getTradeFlowLabelOffset(u,m))),p.visible=!0,p.userData=B2({},u)}),this.tradeFlowLabels.slice(o).forEach(u=>{u.visible=!1})}hasTownRankingRows(e=this.currentTownRanking){return this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1).length>0}formatMapRankingValue(e){const n=Ie(e);return Math.abs(n)>=100?String(Math.round(n)):Math.abs(n)>=10?String(Number(n.toFixed(1))):String(Number(n.toFixed(2)))}formatMapCompactValue(e){const n=Ie(e);return Math.abs(n)>=1e4?`${Number((n/1e4).toFixed(Math.abs(n)>=1e5?1:2))}万`:Math.abs(n)>=1e3?`${Number((n/1e3).toFixed(1))}千`:this.formatMapRankingValue(n)}formatMapIntegerValue(e){const n=Ie(e);return Math.round(n).toLocaleString("zh-CN")}getBarHeight(e,n){return n?Math.max(2.8*.12,2.8*(Ie(e)/n)):2.8*.25}createBarGeometry(e){const a=new EA(.06999999999999999,.06999999999999999,e);return a.translate(0,0,e/2),a}getProvinceLabelHtml(e,n,a){return`
-
-
-
${a.title}
-
${this.formatMapRankingValue(e.value)}${e.unit||a.unit}
-
${e.name}
-
-
${n+1}
-
-
`}updateBarItem(e,n,a,i,r=!0){var m,p;const o=this.getBarHeight(n.value,i),[s,u]=this.geoProjection(n.centroid);return e.visible=!0,(p=(m=e.geometry)==null?void 0:m.dispose)==null||p.call(m),e.geometry=this.createBarGeometry(o),e.position.set(s,-u,this.depth+.45),e.userData=t3(B2({},n),{targetValue:n.value,geoHeight:o}),e.children.forEach(f=>{var g,C,F,z;(C=(g=f.geometry)==null?void 0:g.dispose)==null||C.call(g),Array.isArray(f.material)?f.material.forEach(Y=>{var i2;return(i2=Y==null?void 0:Y.dispose)==null?void 0:i2.call(Y)}):(z=(F=f.material)==null?void 0:F.dispose)==null||z.call(F)}),e.clear(),e.add(...this.createHUIGUANG(o,a>3?16776948:7863285)),r?nn.to(e.scale,{duration:.45,x:1,y:1,z:1,ease:"power2.out"}):this.mapAnimationComplete&&e.scale.set(1,1,1),{x:s,y:u,geoHeight:o}}updateProvinceLabel(e,n,a,i,r,o=!0){var F;const s=Ie((F=e.userData)==null?void 0:F.targetValue,n.value);e.visible=!0,e.userData=t3(B2({},n),{targetValue:n.value}),e.position.copy(i);const u=e.element.querySelector(".label-title"),m=e.element.querySelector(".number .value"),p=e.element.querySelector(".number .unit"),f=e.element.querySelector(".name"),g=e.element.querySelector(".no");!u||!m||!p||!f||!g?e.element.innerHTML=this.getProvinceLabelHtml(n,a,r):(u.innerText=r.title,m.dataset.targetValue=String(n.value),m.innerText=this.formatMapRankingValue(n.value),p.innerText=n.unit||r.unit,f.innerText=n.name,g.innerText=a+1);const C=e.element.querySelector(".provinces-label-wrap");if(this.mapAnimationComplete&&(C.style.opacity="1",C.style.transform="translate(50%, 0)"),o&&this.mapAnimationComplete){const z=e.element.querySelector(".number .value"),i2={value:s};nn.to(i2,{value:n.value,duration:.45,ease:"power2.out",onUpdate:()=>{z.innerText=this.formatMapRankingValue(i2.value)},onComplete:()=>{z.dataset.previousValue=String(n.value),z.innerText=this.formatMapRankingValue(n.value)}})}}clearTownNameLabelStat(e){const n=e.element.querySelector(".town-stat-label"),a=e.element.querySelector(".town-stat-value"),i=e.element.querySelector(".town-stat-unit"),r=e.element.querySelector(".town-rank"),o=e.element.querySelector(".town-stat-metric");n==null||n.classList.remove("has-stat"),e.element.style.pointerEvents="none",e.element.style.cursor="",a&&(a.innerText=""),i&&(i.innerText=""),r&&(r.innerText=""),o&&(o.innerText="")}updateTownNameLabelStats(e=this.currentTownRanking){var o;if(!((o=this.townNameLabels)!=null&&o.length))return;const n=this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1),a=this.getTownRankingMeta(e);if(a.hideTownLabelStats){this.townNameLabels.forEach(s=>{var p,f;const u=((p=s.userData)==null?void 0:p.townName)||((f=s.userData)==null?void 0:f.name),m=s.element.querySelector(".town-name");m&&(m.innerText=u||""),this.clearTownNameLabelStat(s),s.visible=!a.hideTownNames});return}const i=new Map(n.map(s=>[f6(s.name),s])),r=!!(a.showMissingTownStats&&e&&n.length&&(a.metricLabel||a.unit||a.title));this.townNameLabels.forEach(s=>{var v2,y2;const u=((v2=s.userData)==null?void 0:v2.townName)||((y2=s.userData)==null?void 0:y2.name),m=i.get(f6(u));if(a.onlyRankedTownLabels&&!m){this.clearTownNameLabelStat(s),s.element.style.pointerEvents="none",s.element.style.cursor="",s.visible=!1;return}const p=m||(r?{name:u,value:0,unit:a.unit,metricLabel:a.metricLabel,rank:null}:null);if(!p){this.clearTownNameLabelStat(s),s.element.style.pointerEvents="none",s.element.style.cursor="";return}const f=s.element.querySelector(".town-stat-label"),g=s.element.querySelector(".town-name"),C=s.element.querySelector(".town-stat-value"),F=s.element.querySelector(".town-stat-unit"),z=s.element.querySelector(".town-rank"),Y=s.element.querySelector(".town-stat-metric");f==null||f.classList.add("has-stat"),g&&(g.innerText=u),Y&&(Y.innerText=p.metricLabel||a.metricLabel||""),C&&(C.innerText=this.formatMapRankingValue(p.value)),F&&(F.innerText=p.unit||a.unit||""),z&&(z.innerText=p.rank?`第${p.rank}名`:"");const i2=this.isNationalParkTownSelectionActive()&&!!m;s.element.style.pointerEvents=i2?"auto":"none",s.element.style.cursor=i2?"pointer":"",s.userData=t3(B2(B2({},s.userData),p),{townName:u,targetValue:p.value})})}getInfoPointHtml(e,n=this.getTownRankingMeta()){const a=String(e.metricLabel||n.metricLabel||n.title||"统计指标").replace(/排行$/,""),i=Number(e.rank),r=Number.isFinite(i)?String(i).padStart(2,"0"):"--";return`
-
-
- ${r} - ${Ct(e.name||"红原县")} -
-
${Ct(a)}
-
- ${this.formatMapRankingValue(e.value)} - ${Ct(e.unit||n.unit||"")} -
-
-
`}updateInfoPointStats(){var o,s;if(!((o=this.infoPointSprites)!=null&&o.length)||!((s=this.infoLabelElement)!=null&&s.length))return;if(!this.showTownRankingPointMarkers){this.clearInfoPointStats();return}const e=this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1);if(!e.length){this.clearInfoPointStats();return}const n=this.getTownRankingMeta(),a=e.slice(0,this.infoPointSprites.length),i=Math.max(...a.map(u=>u.value),1);this.infoPointSprites.forEach((u,m)=>{const p=a[m],f=this.infoLabelElement[m];if(!p){u.visible=!1,u.scale.set(0,0,0),f&&(f.visible=!1);return}const[g,C]=this.geoProjection(p.centroid||p.center),F=[g,-C,this.depth+.72];u.userData=t3(B2(B2({},u.userData),p),{position:F,value:p.value,unit:p.unit||n.unit,rank:p.rank,metricTitle:n.title,index:m}),u.position.set(...F),u.visible=this.showTownRankingPointMarkers;const z=.78+p.value/i*.44;if(u.scale.set(z,z,z),f){const Y=(m%2===0?.22:-.18)+(m===0?.12:0),i2=m%3===0?.08:-.04;f.position.set(g+Y,-C+i2,this.depth+1.88+Math.min(m,4)*.03),f.userData=t3(B2({},p),{index:m}),f.element.innerHTML=this.getInfoPointHtml(p,n)}});const r=this.infoLabelElement[this.infoPointIndex];r&&this.showTownRankingPointMarkers&&this.mapAnimationComplete&&(r.visible=!0),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}clearInfoPointStats(){var e,n;clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null,this.infoPointIndex=0,this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),(e=this.infoLabelElement)==null||e.forEach(a=>{a.visible=!1}),(n=this.infoPointSprites)==null||n.forEach(a=>{a.visible=!1,a.scale.set(0,0,0)})}createBar(){const e=this.getTownRankingRows();this.getTownRankingMeta();const n=new Ge;this.barGroup=n;const a=Math.max(...e.map(i=>i.value),1);this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],e.map((i,r)=>{const o=this.getBarHeight(i.value,a),s=new Pe({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new ci(s,{uColor1:r>3?16506760:5291006,uColor2:r>3?16776948:7863285,size:o,dir:"y"});const u=new nt(this.createBarGeometry(o),s);u.renderOrder=5;const[m,p]=this.geoProjection(i.centroid);u.position.set(m,-p,this.depth+.45),u.scale.set(1,1,0),u.userData=t3(B2({},i),{targetValue:i.value,geoHeight:o});const f=this.createQuan(new _0(m,this.depth+.44,p),r);u.add(...this.createHUIGUANG(o,r>3?16776948:7863285)),n.add(u),n.rotation.x=-Math.PI/2,this.allBar.push(u),this.allBarMaterial.push(s),this.allGuangquan.push(f)}),this.scene.add(n),this.updateTownNameLabelStats(this.currentTownRanking)}setTownRanking(e){var r,o,s,u,m,p,f,g,C,F,z,Y,i2,v2,y2,A2;this.currentTownRanking=e;const n=this.getTownRankingMeta(e);if(this.showTownRankingBars=!!n.showBars,this.showTownRankingPointMarkers=!!n.showPointMarkers,n.hideMapLabels){this.hideAllMapStatisticLabels(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete);return}if(cm(e)){this.setTradeNationalMapVisible(!1),this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.clearInfoPointStats(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!1),this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),(r=this.allBar)!=null&&r.length&&(this.allBar.forEach(S2=>{S2.visible=!1,S2.scale.set(1,1,0)}),(o=this.allBarMaterial)==null||o.forEach(S2=>{S2.opacity=0}),(s=this.allProvinceLabel)==null||s.forEach(S2=>{S2.visible=!1}),(u=this.allGuangquan)==null||u.forEach(S2=>{S2.visible=!1})),this.updateTradeFlowLayer(e),(e!=null&&e.mapView||e!=null&&e.cameraPosition)&&this.applyLayerMapView(null);return}if(this.setTradeNationalMapVisible(!1),this.hideTradeFlowLayer(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete),um(e)){this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!dm(e)),this.clearInfoPointStats(),this.updateVillageRankingLabels(e),(m=this.allBar)!=null&&m.length&&(this.allBar.forEach(S2=>{S2.visible=!1,S2.scale.set(1,1,0)}),(p=this.allBarMaterial)==null||p.forEach(S2=>{S2.opacity=0}),(f=this.allProvinceLabel)==null||f.forEach(S2=>{S2.visible=!1}),(g=this.allGuangquan)==null||g.forEach(S2=>{S2.visible=!1}));return}if(this.setTownNameLabelsVisible(!n.calloutMode&&!n.hideTownNames),this.hideVillageRankingLabels(),n.calloutMode?this.updateTownNameLabelStats(null):this.updateTownNameLabelStats(e),!((C=this.allBar)!=null&&C.length))return;if(!this.showTownRankingBars){this.allBar.forEach(S2=>{S2.visible=!1,S2.scale.set(1,1,0)}),(F=this.allBarMaterial)==null||F.forEach(S2=>{S2.opacity=0}),(z=this.allProvinceLabel)==null||z.forEach(S2=>{S2.visible=!1}),(Y=this.allGuangquan)==null||Y.forEach(S2=>{S2.visible=!1}),this.showTownRankingPointMarkers?(this.InfoPointGroup&&(this.InfoPointGroup.visible=this.mapAnimationComplete&&this.hasTownRankingRows(e)),this.updateInfoPointStats()):this.clearInfoPointStats();return}const a=this.getTownRankingRows(e,7,!1);if(!a.length){this.allBar.forEach(S2=>{S2.visible=!1,S2.scale.set(1,1,0)}),(i2=this.allProvinceLabel)==null||i2.forEach(S2=>{S2.visible=!1}),(v2=this.allGuangquan)==null||v2.forEach(S2=>{S2.visible=!1}),this.clearInfoPointStats();return}this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.mapAnimationComplete),(y2=this.infoPointSprites)==null||y2.forEach(S2=>{S2.visible=this.showTownRankingPointMarkers});const i=Math.max(...a.map(S2=>S2.value),1);this.allBar.forEach((S2,Q2)=>{const X2=Q2{S2.visible=!1}),this.allGuangquan.forEach((S2,Q2)=>{S2.visible=Q2{const X2=this.allBar[Q2],c3=this.allGuangquan[Q2];if(!X2)return;const{x:p3,y:l3}=this.updateBarItem(X2,S2,Q2,i,this.mapAnimationComplete);c3&&(c3.visible=!0,c3.position.set(0,0,0),c3.children.forEach(b3=>{b3.position.set(p3,this.depth+.44,l3),this.mapAnimationComplete&&b3.scale.set(1,1,1)}))}),this.updateInfoPointStats()}createEvent(){let e=[];const n=i=>{i.traverse(r=>{r.isMesh&&(r.material=this.defaultMaterial)})},a=i=>{i.traverse(r=>{r.isMesh&&(r.material=this.defaultLightMaterial)})};this.eventElement.map(i=>{this.interactionManager.add(i),i.addEventListener("mousedown",r=>{this.handleMapClick(r)}),i.addEventListener("mouseover",r=>{e.includes(r.target.parent)||e.push(r.target.parent),document.body.style.cursor="pointer",a(r.target.parent)}),i.addEventListener("mouseout",r=>{e=e.filter(o=>o.userData.name!==r.target.parent.userData.name),e.length>0&&e[e.length-1],n(r.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(e,n){let a=new o5(.35,e);a.translate(0,e/2,0);const i=this.assets.instance.getResource("huiguang");i.colorSpace=bn,i.wrapS=pn,i.wrapT=pn;let r=new Pe({color:n,map:i,transparent:!0,opacity:.4,depthWrite:!1,side:xt,blending:Rt}),o=new nt(a,r);o.renderOrder=10,o.rotateX(Math.PI/2);let s=o.clone(),u=o.clone();return s.rotateY(Math.PI/180*60),u.rotateY(Math.PI/180*120),[o,s,u]}createQuan(e,n){const a=this.assets.instance.getResource("guangquan1"),i=this.assets.instance.getResource("guangquan2");let r=new o5(.5,.5),o=new Pe({color:16777215,map:a,alphaMap:a,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Rt}),s=new Pe({color:16777215,map:i,alphaMap:i,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Rt}),u=new nt(r,o),m=new nt(r,s);return u.renderOrder=6,m.renderOrder=6,u.rotateX(-Math.PI/2),m.rotateX(-Math.PI/2),u.position.copy(e),m.position.copy(e),m.position.y-=.001,u.scale.set(0,0,0),m.scale.set(0,0,0),this.quanGroup=new Ge,this.quanGroup.add(u,m),this.scene.add(this.quanGroup),this.time.on("tick",()=>{u.rotation.z+=.05}),this.quanGroup}createDiffuse(){let e=new o5(200,200),n=new Pe({color:0,depthWrite:!1,transparent:!0,blending:NA});n.blendEquation=RA,n.blendSrc=LA,n.blendDst=IA,new tP({material:n,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:i=>{const r=setTimeout(()=>{this.addSceneTween(nn.to(i.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(r)}});let a=new nt(e,n);a.renderOrder=3,a.rotation.x=-Math.PI/2,a.position.set(0,.21,0),this.scene.add(a)}createGrid(){new nP(this,{gridSize:54,gridDivision:24,gridColor:1990543,shapeSize:.55,shapeColor:3309487,pointSize:.085,pointColor:1993891,pointBlending:Rt})}createBottomBg(){let e=new o5(24,24);const n=this.assets.instance.getResource("ocean");n.colorSpace=bn,n.wrapS=pn,n.wrapT=pn,n.repeat.set(1,1);let a=new Pe({map:n,opacity:.92,fog:!1}),i=new nt(e,a);i.rotation.x=-Math.PI/2,i.position.set(0,-.7,0),this.scene.add(i)}createChinaBlurLine(){let e=new o5(154,154);const n=this.assets.instance.getResource("chinaBlurLine");n.colorSpace=bn,n.wrapS=pn,n.wrapT=pn,n.generateMipmaps=!1,n.minFilter=rl,n.repeat.set(1,1);let a=new Pe({color:4162253,alphaMap:n,transparent:!0,opacity:.62}),i=new nt(e,a);i.rotateX(-Math.PI/2),i.position.set(-19.3,-.5,-19.7),this.scene.add(i)}createLabel(){let e=this,n=this.labelGroup,a=this.label3d,i=[],r=[];Jz.map(s=>{if(s.hide==!0)return!1;let u=o(s,a,n);i.push(u),r.push(u)}),this.otherLabel=i,this.townNameLabels=r;function o(s,u,m){let p=u.create("",`china-label ${s.blur?" blur":""}`,!0);const[f,g]=e.geoProjection(s.center);return p.init(`
-
${s.name}
-
-
`,new _0(f,-g,e.depth+.85)),u.setLabelStyle(p,.018,"x"),p.setParent(m),p.userData=t3(B2({},s),{labelType:"town-label",baseScale:.018,townName:s.name}),p.element.addEventListener("pointerdown",C=>{e.handleTownRankingSelect(s.name,{preserveCamera:!0,statusText:`已选中${s.name}`})&&(C.preventDefault(),C.stopPropagation())}),p}}createRotateBorder(){let e=13.2,n=this.assets.instance.getResource("rotationBorder1"),a=this.assets.instance.getResource("rotationBorder2"),i=new Qf(this,{width:e*1.178,needRotate:!0,rotateSpeed:.001,material:new Pe({map:n,color:4763647,transparent:!0,opacity:.26,side:xt,depthWrite:!1,blending:Rt}),position:new _0(0,.31,0)});i.instance.rotation.x=-Math.PI/2,i.instance.renderOrder=6,i.instance.scale.set(0,0,0),i.setParent(this.scene);let r=new Qf(this,{width:e*1.116,needRotate:!0,rotateSpeed:-.004,material:new Pe({map:a,color:4763647,transparent:!0,opacity:.5,side:xt,depthWrite:!1,blending:Rt}),position:new _0(0,.33,0)});r.instance.rotation.x=-Math.PI/2,r.instance.renderOrder=6,r.instance.scale.set(0,0,0),r.setParent(this.scene),this.rotateBorder1=i.instance,this.rotateBorder2=r.instance}createFlyLine(){this.flyLineGroup=new Ge,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup)}createFocus(){this.flyLineFocusGroup.clear()}createParticles(){this.particles=new tr(this,{num:10,range:30,dir:"up",speed:.05,material:new Tr({map:tr.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:Rt,sizeAttenuation:!0})}),this.particleGroup=new Ge,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new Ge,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const e=this.assets.instance.getResource("arrow"),n=new X9({map:e,color:16776948,fog:!1,transparent:!0,depthTest:!1});let a=lm(Qz),i=a[0].value;a.map(r=>{const o=new Z9(n);o.renderOrder=23;let s=.1+r.value/i*.2;o.scale.set(s,s,s);let[u,m]=this.geoProjection([r.lng,r.lat]);o.position.set(u,-m,this.depth+.45),o.userData.position=[u,-m,this.depth+.45],this.scatterGroup.add(o)})}createInfoPoint(){let e=this;this.InfoPointGroup=new Ge,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[],this.infoPointSprites=[];let n=this.label3d;const a=this.assets.instance.getResource("point");let i=[16776948,7863285],r=lm(Zz),o=r[0].value;r.map((u,m)=>{const p=new X9({map:a,color:i[m%i.length],fog:!1,transparent:!0,depthTest:!1}),f=new Z9(p);f.renderOrder=23;let g=.7+u.value/o*.4;f.scale.set(g,g,g);let[C,F]=this.geoProjection([u.lng,u.lat]),z=[C,-F,this.depth+.7];f.position.set(...z),f.userData.position=[...z],f.userData={position:[C,-F,this.depth+.7],name:u.name,value:u.value,level:u.level,index:m},this.InfoPointGroup.add(f);let Y=s(u,n,this.InfoPointGroup,m);this.infoLabelElement.push(Y),this.infoPointSprites.push(f),this.interactionManager.add(f),f.addEventListener("mousedown",i2=>{var v2,y2;if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.infoPointIndex=i2.target.userData.index,this.infoLabelElement.map(A2=>{A2.visible=!1}),Y.visible=!0,this.handleTownRankingSelect(((v2=i2.target.userData)==null?void 0:v2.name)||((y2=i2.target.userData)==null?void 0:y2.townName)),this.createInfoPointLabelLoop()}),f.addEventListener("mouseup",i2=>{this.clicked=!1}),f.addEventListener("mouseover",i2=>{document.body.style.cursor="pointer"}),f.addEventListener("mouseout",i2=>{document.body.style.cursor="default"})});function s(u,m,p,f){let g=m.create("","info-point",!0);const[C,F]=e.geoProjection([u.lng,u.lat]);return g.init(e.getInfoPointHtml(t3(B2({},u),{value:0,rank:f+1,unit:""}),e.getTownRankingMeta()),new _0(C,-F,e.depth+1.9)),m.setLabelStyle(g,.015,"x"),g.setParent(p),g.visible=!1,g}}createInfoPointLabelLoop(){var e;this.scenePaused||!((e=this.infoLabelElement)!=null&&e.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((n,a)=>{this.infoPointIndex===a?n.visible=!0:n.visible=!1})},3e3))}createStorke(){const e=this.staticMapData.mapStroke,n=this.assets.instance.getResource("pathLine3");n.wrapS=n.wrapT=pn,n.repeat.set(2,1);let a=new t8(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new _0(0,0,this.depth+.24),data:e,material:new Pe({color:2868444,map:n,alphaMap:n,fog:!1,transparent:!0,opacity:1,blending:Rt}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(a.lineGroup),this.time.on("tick",()=>{n.offset.x+=.005})}handleMapClick(e){return L3(this,null,function*(){var r,o,s,u,m,p,f,g,C,F,z,Y,i2,v2,y2,A2,S2,Q2,X2,c3,p3,l3,b3,N3,_3,J3,R3,Z3,M1,b1,j1,a1,G1,s0,i0,r0,q1,h3,O3,V3,i3;if(!this.currentTopicLayer)return;const n=this.getScreenPointFromEvent(e),a=this.getLngLatFromEvent(e);if(!a){this.clearSelectedFeature(),(o=(r=this.callbacks).onFeatureInfo)==null||o.call(r,{feature:null});return}if(this.boundaryDrawingEnabled){const U2=((s=e==null?void 0:e.data)==null?void 0:s.originalEvent)||(e==null?void 0:e.originalEvent)||e;if(U2!=null&&U2.__analysisBoundaryHandled)return;this.addBoundaryDrawPoint(a);return}if(this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)&&!this.isLngLatInHongyuanBoundary(a)){this.clearSelectedFeature(),(m=(u=this.callbacks).onFeatureInfo)==null||m.call(u,{feature:null}),(f=(p=this.callbacks).onLayerStatus)==null||f.call(p,{type:"success",text:"当前点击位置不在红原县边界内"});return}if(this.shouldClipLayerToLayerBounds(this.currentTopicLayer)&&!this.isLngLatInLayerClipBounds(a,this.currentTopicLayer)){this.clearSelectedFeature(),(C=(g=this.callbacks).onFeatureInfo)==null||C.call(g,{feature:null}),(z=(F=this.callbacks).onLayerStatus)==null||z.call(F,{type:"success",text:"当前点击位置不在图层显示范围内"});return}if(TY(this.currentTopicLayer)){this.clearSelectedFeature(),(i2=(Y=this.callbacks).onFeatureInfo)==null||i2.call(Y,{feature:null});return}if(Ai(this.currentTopicLayer)){const U2=this.pickVectorFeatureAtPoint(a,n),D3=(U2==null?void 0:U2.feature)||U2;let F3=(U2==null?void 0:U2.screen)||n;if(D3)this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)?(this.clearSelectedGeometryGroup(),this.setSelectedVectorFeatures([D3])):this.showSelectedFeature(D3),((v2=this.currentTopicLayer)==null?void 0:v2.key)==="yak-industry-points"&&(this.setSelectedVectorFeatures([D3]),F3=this.getPointFeatureScreenPoint(D3)||F3),(X2=(Q2=this.callbacks).onFeatureInfo)==null||X2.call(Q2,{feature:{id:((y2=D3.properties)==null?void 0:y2.id)||((A2=D3.properties)==null?void 0:A2.feature_id)||((S2=D3.properties)==null?void 0:S2.project_name),properties:D3.properties||{},feature:D3,layer:this.currentTopicLayer,lngLat:a},screen:F3}),(p3=(c3=this.callbacks).onLayerStatus)==null||p3.call(c3,{type:"success",text:"真实矢量要素已选中"});else{const u1=this.getTownNameFromMapEvent(e);if(this.handleTownRankingSelect(u1))return;this.clearSelectedFeature(),(b3=(l3=this.callbacks).onFeatureInfo)==null||b3.call(l3,{feature:null}),(_3=(N3=this.callbacks).onLayerStatus)==null||_3.call(N3,{type:"success",text:"当前点击位置无生态保护要素"})}return}const i=this.lngLatToWmsPixel(a);(R3=(J3=this.callbacks).onFeatureInfo)==null||R3.call(J3,{feature:null}),(M1=(Z3=this.callbacks).onFeatureLoading)==null||M1.call(Z3,!0);try{const U2=yield rh(this.currentTopicLayer,i,{size:F6,buffer:10}),D3=this.normalizeFeatureInfoAtPoint(U2,a),F3=D3?null:yield this.queryFallbackFeatureInfo(a),u1=D3||(F3==null?void 0:F3.feature);if(u1){const A1=yield this.enrichFeatureInfo(u1,i,a);this.showSelectedFeature(A1.feature||A1),(j1=(b1=this.callbacks).onFeatureInfo)==null||j1.call(b1,{feature:t3(B2({},A1),{layer:(F3==null?void 0:F3.layer)||this.currentTopicLayer,lngLat:a}),screen:n})}else this.clearSelectedFeature(),(G1=(a1=this.callbacks).onFeatureInfo)==null||G1.call(a1,{feature:null});u1||(i0=(s0=this.callbacks).onLayerStatus)==null||i0.call(s0,{type:"success",text:"当前点击位置无图斑"})}catch(U2){this.clearSelectedFeature(),(q1=(r0=this.callbacks).onFeatureInfo)==null||q1.call(r0,{feature:null}),(O3=(h3=this.callbacks).onLayerStatus)==null||O3.call(h3,{type:"error",text:"图斑信息查询失败"})}finally{(i3=(V3=this.callbacks).onFeatureLoading)==null||i3.call(V3,!1)}})}handleCanvasBoundaryPointerDown(e){var a,i;if(!this.boundaryDrawingEnabled)return;const n=this.getLngLatFromCanvasEvent(e);n&&this.addBoundaryDrawPoint(n)&&(e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(i=e.stopPropagation)==null||i.call(e)}handleCanvasBoundaryDoubleClick(e){var a,i;if(!this.boundaryDrawingEnabled)return;const n=this.getLngLatFromCanvasEvent(e);(this.boundaryDrawPoints||[]).length<3&&n&&this.addBoundaryDrawPoint(n),(this.boundaryDrawPoints||[]).length>=3&&(this.finishBoundaryDrawing(),e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(i=e.stopPropagation)==null||i.call(e)}getLngLatFromCanvasEvent(e){var g,C,F;if(!((g=this.camera)!=null&&g.instance)||!this.focusMapGroup||!this.canvas)return null;const n=this.canvas.getBoundingClientRect();if(!n.width||!n.height)return null;const a=(C=this.interactionManager)==null?void 0:C.raycaster;if(!(a!=null&&a.setFromCamera))return null;const i={x:(e.clientX-n.left)/n.width*2-1,y:-((e.clientY-n.top)/n.height)*2+1};a.setFromCamera(i,this.camera.instance);const o=((F=a.intersectObjects(this.eventElement||[],!0)[0])==null?void 0:F.point)||this.getRayMapPlaneIntersection(a.ray);if(!o)return null;const s=this.focusMapGroup.worldToLocal(o.clone()),m=G6().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([s.x,-s.y]);if(!m)return null;const p=Number(m[0]),f=Number(m[1]);return!Number.isFinite(p)||!Number.isFinite(f)?null:pJ1.east+.03||fJ1.north+.03?this.getFallbackLngLatFromPointer(e,n):{lng:p,lat:f}}getFallbackLngLatFromPointer(e,n=(i=>(i=(a=>(a=this.canvas)==null?void 0:a.getBoundingClientRect)())==null?void 0:i.call(a))()){if(!(n!=null&&n.width)||!(n!=null&&n.height))return null;const r=Math.min(1,Math.max(0,(e.clientX-n.left)/n.width)),o=Math.min(1,Math.max(0,(e.clientY-n.top)/n.height)),s=J1.west+(J1.east-J1.west)*r,u=J1.north-(J1.north-J1.south)*o;return{lng:s,lat:u}}getRayMapPlaneIntersection(e){if(!(e!=null&&e.origin)||!(e!=null&&e.direction)||!this.focusMapGroup)return null;const n=this.focusMapGroup.worldToLocal(e.origin.clone()),i=this.focusMapGroup.worldToLocal(e.origin.clone().add(e.direction.clone())).sub(n),r=this.depth+.22;if(Math.abs(i.z)<1e-8)return null;const o=(r-n.z)/i.z;if(!Number.isFinite(o)||o<0)return null;const s=n.add(i.multiplyScalar(o));return this.focusMapGroup.localToWorld(s)}enrichFeatureInfo(e,n,a){return L3(this,null,function*(){const i=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(i))return e;const o=(Li[i]||[]).find(f=>f.key===`${i}-distribution`),s=(this.visibleTopicLayers||[]).filter(f=>this.getLayerTopicKey(f)===i).slice(0,5),u=[o,this.currentTopicLayer,...s].filter(f=>f==null?void 0:f.layerName).filter((f,g,C)=>C.findIndex(F=>this.getLayerQueryKey(F)===this.getLayerQueryKey(f))===g);if(!u.length)return e;const m=yield Promise.allSettled([...u.filter(f=>this.getLayerQueryKey(f)!==this.getLayerQueryKey(this.currentTopicLayer)).map(f=>L3(this,null,function*(){const g=yield rh(f,n,{size:F6,buffer:10}),C=this.normalizeFeatureInfoAtPoint(g,a);return C?{layer:f,feature:C,source:"wms"}:null})),...u.map(f=>L3(this,null,function*(){const g=yield this.queryLayerFeatureByPoint(f,a);return g?{layer:f,feature:g,source:"wfs"}:null}))]),p=B2({},e.properties||{});return m.forEach(f=>{var g,C;f.status!=="fulfilled"||!((C=(g=f.value)==null?void 0:g.feature)!=null&&C.properties)||this.mergeBusinessProperties(p,f.value.feature.properties,f.value.layer)}),t3(B2({},e),{properties:p,relatedFeatures:m.filter(f=>{var g;return f.status==="fulfilled"&&((g=f.value)==null?void 0:g.feature)}).map(f=>f.value),feature:t3(B2({},e.feature||{}),{properties:p})})})}queryFallbackFeatureInfo(e){return L3(this,null,function*(){const n=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(n))return null;const i=[(Li[n]||[]).find(r=>r.key===`${n}-distribution`),this.currentTopicLayer,...(this.visibleTopicLayers||[]).filter(r=>this.getLayerTopicKey(r)===n)].filter((r,o,s)=>(r==null?void 0:r.layerName)&&s.findIndex(u=>this.getLayerQueryKey(u)===this.getLayerQueryKey(r))===o);for(const r of i){const o=yield this.queryLayerFeatureByPoint(r,e,{requireContainment:!0});if(o)return{layer:r,feature:o}}return null})}normalizeFeatureInfoAtPoint(e,n){const a=Array.isArray(e==null?void 0:e.features)?e.features:[];if(!a.length)return null;const i=this.pickFeatureAtPoint(a,n,{requireContainment:!0});if(!i)return null;const r=i.properties||{};return{id:i.id||r.gid||r.objectid||r.OBJECTID,properties:r,feature:i}}queryLayerFeatureByPoint(i,r){return L3(this,arguments,function*(e,n,a={}){var F,z,Y;if(!(e!=null&&e.layerName)||!Number.isFinite(n==null?void 0:n.lng)||!Number.isFinite(n==null?void 0:n.lat))return null;const o=e.pointQueryTolerance||.0015,s=e.geometryField||"geom",u=n.lng-o,m=n.lat-o,p=n.lng+o,f=n.lat+o,g=yield nr(e.layerName,{cqlFilter:`BBOX(${s},${u},${m},${p},${f})`,maxFeatures:8,timeout:12e3}),C=this.pickFeatureAtPoint((g==null?void 0:g.features)||[],n,a);return C?{id:C.id||((F=C.properties)==null?void 0:F.gid)||((z=C.properties)==null?void 0:z.objectid)||((Y=C.properties)==null?void 0:Y.OBJECTID),properties:C.properties||{},feature:C}:null})}pickFeatureAtPoint(e,n,a={}){var r;if(!Array.isArray(e)||!e.length)return null;const i=e.filter(o=>this.isLngLatInGeometry(n,o.geometry)).sort((o,s)=>this.getGeometryAreaScore(o.geometry)-this.getGeometryAreaScore(s.geometry));return i.length?i[0]:a.requireContainment?null:((r=e.map(o=>({feature:o,distance:this.getGeometryDistanceScore(o.geometry,n)})).sort((o,s)=>o.distance-s.distance)[0])==null?void 0:r.feature)||null}isLngLatInGeometry(e,n){return!e||!(n!=null&&n.coordinates)?!1:n.type==="Polygon"?this.isLngLatInPolygon(e,n.coordinates):n.type==="MultiPolygon"?n.coordinates.some(a=>this.isLngLatInPolygon(e,a)):!1}isLngLatInPolygon(e,n=[]){return!n.length||!this.isLngLatInRing(e,n[0])?!1:!n.slice(1).some(i=>this.isLngLatInRing(e,i))}isLngLatInRing(e,n=[]){if(n.length<3)return!1;let a=!1;const i=e.lng,r=e.lat;for(let o=0,s=n.length-1;or!=C>r&&i<(g-p)*(r-f)/(C-f)+p&&(a=!a)}return a}isPointOnSegment(e,n,a,i,r,o){const s=(e-a)*(o-i)-(n-i)*(r-a);return Math.abs(s)>1e-10?!1:(e-a)*(e-r)+(n-i)*(n-o)<=1e-10}getGeometryAreaScore(e){return e!=null&&e.coordinates?e.type==="Polygon"?this.getLngLatPolygonAreaScore(e.coordinates):e.type==="MultiPolygon"?e.coordinates.reduce((n,a)=>n+this.getLngLatPolygonAreaScore(a),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}getLngLatPolygonAreaScore(e=[]){const n=e[0]||[];if(n.length<3)return Number.POSITIVE_INFINITY;let a=0;for(let i=0;i({minLng:Math.min(a.minLng,Number((i==null?void 0:i[0])||0)),minLat:Math.min(a.minLat,Number((i==null?void 0:i[1])||0)),maxLng:Math.max(a.maxLng,Number((i==null?void 0:i[0])||0)),maxLat:Math.max(a.maxLat,Number((i==null?void 0:i[1])||0))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}getGeometryCoordinateList(e){const n=[],a=i=>{if(Array.isArray(i)){if(typeof i[0]=="number"&&typeof i[1]=="number"){n.push(i);return}i.forEach(a)}};return a(e==null?void 0:e.coordinates),n}pickVectorFeatureAtPoint(e,n){var o;const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]);if(((o=this.currentTopicLayer)==null?void 0:o.key)==="yak-industry-points"){const s=this.pickPointFeatureAtScreenPoint(a,n);if(s)return s}const i=a.filter(s=>this.isLngLatInGeometry(e,s.geometry)).sort((s,u)=>this.getGeometryAreaScore(s.geometry)-this.getGeometryAreaScore(u.geometry));if(i.length)return i[0];const r=a.find(s=>this.isPointOrLineNearLngLat(s.geometry,e));return r||null}pickPointFeatureAtScreenPoint(e,n){var r;if(!n||!((r=this.camera)!=null&&r.instance)||!this.focusMapGroup||!this.canvas)return null;const i=(e||[]).filter(o=>{var s;return((s=o==null?void 0:o.geometry)==null?void 0:s.type)==="Point"}).map(o=>{const s=this.getPointFeatureScreenPoint(o);return s?{feature:o,screen:s,distance:Math.hypot(s.x-n.x,s.y-n.y)}:null}).filter(Boolean).sort((o,s)=>o.distance-s.distance)[0];return(i==null?void 0:i.distance)<=22?{feature:i.feature,screen:i.screen}:null}getPointFeatureScreenPoint(e){var a,i;const n=(e==null?void 0:e.geometry)||((a=e==null?void 0:e.feature)==null?void 0:a.geometry);return(n==null?void 0:n.type)!=="Point"?null:((i=this.currentTopicLayer)==null?void 0:i.key)==="yak-industry-points"?this.lngLatToLayerScreenPoint(n.coordinates,this.depth+.36):this.lngLatToScreenPoint(n.coordinates,this.depth+.32)}lngLatToLayerLocalPoint(e,n=0){const a=()=>{const m=Number(e==null?void 0:e[0]),p=Number(e==null?void 0:e[1]);if(!Number.isFinite(m)||!Number.isFinite(p))return new _0(0,0,Number(n)||0);const[f,g]=this.geoProjection([m,p]);return new _0(f,-g,Number(n)||0)},i=this.topicLayerUvBounds;if(!i)return a();const r=this.lngLatToLayerCanvasPoint(e),o=this.topicLayerCanvas;if(!(o!=null&&o.width)||!(o!=null&&o.height))return a();const s=i.left+r.x/o.width*(i.right-i.left),u=i.bottom+(o.height-r.y)/o.height*(i.top-i.bottom);return new _0(s,u,Number(n)||0)}lngLatToLayerScreenPoint(e,n=0){return this.localMapPointToScreenPoint(this.lngLatToLayerLocalPoint(e,n))}lngLatToScreenPoint(e,n=0){const a=Number(e==null?void 0:e[0]),i=Number(e==null?void 0:e[1]);if(!Number.isFinite(a)||!Number.isFinite(i))return null;const r=this.lngLatToWorldPoint([a,i],n);return this.worldPointToScreenPoint(r)}localMapPointToScreenPoint(e){const n=this.focusMapGroup?this.focusMapGroup.localToWorld(e):e;return this.worldPointToScreenPoint(n)}worldPointToScreenPoint(e){var i;if(!((i=this.camera)!=null&&i.instance)||!this.canvas||!e)return null;const n=this.canvas.getBoundingClientRect();if(!n.width||!n.height)return null;const a=e.clone().project(this.camera.instance);return!Number.isFinite(a.x)||!Number.isFinite(a.y)?null:{x:n.left+(a.x+1)/2*n.width,y:n.top+(1-a.y)/2*n.height}}focusProject(e){var g,C,F,z;const n=String(e||"").trim();if(!n)return!1;const a=(this.currentVectorFeatures||[]).filter(Y=>{var i2;return String(((i2=Y==null?void 0:Y.properties)==null?void 0:i2.project_name)||"").trim()===n});if(!a.length)return(C=(g=this.callbacks).onLayerStatus)==null||C.call(g,{type:"success",text:"当前项目图斑尚未加载"}),!1;const i=this.getFeatureListLngLatBounds(a);if(!i)return!1;const r=this.getProjectHighlightFeatures(a);r.length?(this.showSelectedFeatures(r),this.setSelectedVectorFeatures(r)):this.clearSelectedFeature();const o=[(i.minLng+i.maxLng)/2,(i.minLat+i.maxLat)/2],s=Math.max(i.maxLng-i.minLng,i.maxLat-i.minLat),u=Math.max(.22,Math.min(.55,s*1.25)),m=this.lngLatToWorldPoint(o,.72),p=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(u),f=m.clone().add(p);return this.animateMapCamera(f,m,.75),(z=(F=this.callbacks).onLayerStatus)==null||z.call(F,{type:"success",text:"已定位项目"}),!0}setBoundaryDrawing(e){var n,a,i,r;this.boundaryDrawingEnabled=!!e,this.boundaryDrawingEnabled?(this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.clearSelectedFeature(),(a=(n=this.callbacks).onLayerStatus)==null||a.call(n,{type:"success",text:"请在地图上依次点击绘制分析边界"})):(r=(i=this.callbacks).onLayerStatus)==null||r.call(i,{type:"success",text:"已退出边界绘制"}),this.redrawVectorTopicLayer()}addBoundaryDrawPoint(e){var r,o,s,u;if(!Number.isFinite(e==null?void 0:e.lng)||!Number.isFinite(e==null?void 0:e.lat))return!1;const n=Date.now(),a=this.lastBoundaryDrawPoint;return a&&n-a.time<350&&Math.hypot(e.lng-a.lng,e.lat-a.lat)<8e-4?!1:(this.lastBoundaryDrawPoint={lng:e.lng,lat:e.lat,time:n},this.boundaryDrawPoints=[...this.boundaryDrawPoints||[],{lng:e.lng,lat:e.lat}],(o=(r=this.callbacks).onDrawBoundary)==null||o.call(r,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),(u=(s=this.callbacks).onLayerStatus)==null||u.call(s,{type:"success",text:`已添加边界点 ${this.boundaryDrawPoints.length} 个`}),this.redrawVectorTopicLayer(),!0)}undoBoundaryPoint(){var e,n,a;return(e=this.boundaryDrawPoints)!=null&&e.length?(this.boundaryDrawPoints=this.boundaryDrawPoints.slice(0,-1),(a=(n=this.callbacks).onDrawBoundary)==null||a.call(n,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),this.redrawVectorTopicLayer(),!0):!1}finishBoundaryDrawing(){var o,s,u,m,p,f;const e=this.boundaryDrawPoints||[];if(e.length<3)return(s=(o=this.callbacks).onLayerStatus)==null||s.call(o,{type:"error",text:"至少需要 3 个点才能形成分析边界"}),null;const n=e.map(g=>[g.lng,g.lat]),a=n[0],i=n[n.length-1];(a[0]!==i[0]||a[1]!==i[1])&&n.push([...a]);const r={type:"Feature",properties:{source:"draw",pointCount:e.length},geometry:{type:"Polygon",coordinates:[n]}};return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=r,(m=(u=this.callbacks).onDrawBoundary)==null||m.call(u,{status:"complete",feature:r,points:e,pointCount:e.length}),(f=(p=this.callbacks).onLayerStatus)==null||f.call(p,{type:"success",text:"分析边界已生成"}),this.redrawVectorTopicLayer(),r}clearAnalysisBoundary(){var e,n;return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.redrawVectorTopicLayer(),(n=(e=this.callbacks).onDrawBoundary)==null||n.call(e,{status:"clear",points:[],pointCount:0}),!0}showAnalysisResult(e={}){var r;const n=Object.prototype.hasOwnProperty.call(e,"boundary")||Object.prototype.hasOwnProperty.call(e,"boundaryFeature")||Object.prototype.hasOwnProperty.call(e,"feature"),a=e.boundary||e.boundaryFeature||e.feature||null,i=Array.isArray(e.matches)?e.matches:[];return n&&(this.analysisBoundaryFeature=(a==null?void 0:a.type)==="Feature"?a:a!=null&&a.geometry?{type:"Feature",properties:a.properties||{},geometry:a.geometry}:null),this.analysisMatchedFeatures=i.map(o=>(o==null?void 0:o.feature)||o).filter(o=>o==null?void 0:o.geometry),e.preserveView||(!n&&this.analysisMatchedFeatures.length?this.focusAnalysisFeatures(this.analysisMatchedFeatures):(r=this.analysisBoundaryFeature)!=null&&r.geometry&&this.focusAnalysisGeometry(this.analysisBoundaryFeature.geometry)),this.redrawVectorTopicLayer(),!0}focusAnalysisFeatures(e=[]){const n=this.getFeatureListLngLatBounds(e);if(!n)return!1;const a=[(n.minLng+n.maxLng)/2,(n.minLat+n.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(n.maxLng-n.minLng,n.maxLat-n.minLat),statusText:"已定位命中项目"})}focusAnalysisGeometry(e){const n=this.getGeometryLngLatBounds(e);if(!n)return!1;const a=[(n.minLng+n.maxLng)/2,(n.minLat+n.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(n.maxLng-n.minLng,n.maxLat-n.minLat),statusText:"已定位分析边界"})}focusPasture(e={}){var i,r;const a=[...this.normalizePastureGrasslandRows(e==null?void 0:e.grasslands),...this.normalizePastureGrasslandRows(e==null?void 0:e.wkt)].map((o,s)=>{const u=this.normalizePastureGrasslandGeometry(o);if(!u)return null;const m=this.normalizePastureGrasslandProperties(o);return{type:"Feature",properties:t3(B2({},m),{id:m.id||m.gid||`${(e==null?void 0:e.name)||"pasture"}-${s}`,pasture_name:(e==null?void 0:e.name)||m.pastureName||m.name}),geometry:u}}).filter(Boolean);if(a.length){const o=this.getFeatureListLngLatBounds(a);if(!o)return!1;this.showSelectedFeatures(a,{mode:"pasture"}),this.setSelectedVectorFeatures(a);const s=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return this.flyToLngLat(s,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),statusText:"已定位具体草场"}),!0}return(r=(i=this.callbacks).onLayerStatus)==null||r.call(i,{type:"warning",text:"当前牧户暂无可定位数据"}),!1}normalizePastureGrasslandRows(e){return e?typeof e=="string"?[e]:Array.isArray(e)?e:(e==null?void 0:e.type)==="FeatureCollection"&&Array.isArray(e.features)?e.features:(e==null?void 0:e.type)==="Feature"||this.isGeoJsonGeometry(e)?[e]:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.data)?e.data:e!=null&&e.data?this.normalizePastureGrasslandRows(e.data):Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.features)?e.features:e!=null&&e.wkt||e!=null&&e.geo||e!=null&&e.geom||e!=null&&e.geometryWkt||e!=null&&e.geometry_wkt||e!=null&&e.shape||e!=null&&e.location||e!=null&&e.geometry?[e]:[]:[]}normalizePastureGrasslandGeometry(e){var n;return typeof e=="string"?this.parseGeometryText(e):(e==null?void 0:e.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry):this.isGeoJsonGeometry(e)?e:typeof(e==null?void 0:e.geometry)=="string"?this.parseGeometryText(e.geometry):((n=e==null?void 0:e.geometry)==null?void 0:n.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry.geometry):this.isGeoJsonGeometry(e==null?void 0:e.geometry)?e.geometry:this.parseGeometryText((e==null?void 0:e.wkt)||(e==null?void 0:e.geo)||(e==null?void 0:e.geom)||(e==null?void 0:e.geometryWkt)||(e==null?void 0:e.geometry_wkt)||(e==null?void 0:e.shape)||(e==null?void 0:e.location))}normalizePastureGrasslandProperties(e){return!e||typeof e!="object"||Array.isArray(e)?{wkt:e}:e.type==="Feature"?e.properties||{}:e}parseGeometryText(e){const n=String(e||"").trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const a=JSON.parse(n);if((a==null?void 0:a.type)==="Feature")return this.normalizePastureGrasslandGeometry(a);if(this.isGeoJsonGeometry(a))return a}catch(a){return null}return this.parseWktGeometry(n)}isGeoJsonGeometry(e){return!!(e&&["Polygon","MultiPolygon","LineString","MultiLineString","Point"].includes(e.type)&&e.coordinates)}flyToLngLat(e,n={}){var f,g;const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],i=Number(a==null?void 0:a[0]),r=Number(a==null?void 0:a[1]);if(!Number.isFinite(i)||!Number.isFinite(r))return!1;const o=Number(n.span),s=Number.isFinite(o)?Math.max(.2,Math.min(.55,o*1.25)):.32,u=this.lngLatToWorldPoint([i,r],.72),m=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(s),p=u.clone().add(m);return this.animateMapCamera(p,u,n.duration||.75),(g=(f=this.callbacks).onLayerStatus)==null||g.call(f,{type:"success",text:n.statusText||"已定位"}),!0}getProjectHighlightFeatures(e){const n=e.filter(i=>{var o;const r=String(((o=i==null?void 0:i.geometry)==null?void 0:o.type)||"");return r.includes("Polygon")||r.includes("LineString")}),a=n.filter(i=>{var r;return((r=i==null?void 0:i.properties)==null?void 0:r.feature_role)==="工程范围"});return a.length?a:n}getFeatureListLngLatBounds(e){return e.reduce((n,a)=>{const i=this.getGeometryLngLatBounds(a.geometry);return i?n?{minLng:Math.min(n.minLng,i.minLng),minLat:Math.min(n.minLat,i.minLat),maxLng:Math.max(n.maxLng,i.maxLng),maxLat:Math.max(n.maxLat,i.maxLat)}:B2({},i):n},null)}isPointOrLineNearLngLat(e,n){return e!=null&&e.coordinates?e.type==="Point"?this.getCoordinateDistance(e.coordinates,[n.lng,n.lat])<=.02:e.type==="LineString"?this.isCoordinateNearLine(e.coordinates,n,.004):e.type==="MultiLineString"?e.coordinates.some(a=>this.isCoordinateNearLine(a,n,.004)):!1:!1}isCoordinateNearLine(e,n,a){if(!Array.isArray(e)||e.length<2)return!1;const i=[n.lng,n.lat];for(let r=1;rr.some(o=>o.key===a||o.layerName===n));return(i==null?void 0:i[0])||""}getLayerQueryKey(e){return[(e==null?void 0:e.layerName)||"",(e==null?void 0:e.styles)||"",(e==null?void 0:e.cqlFilter)||"",(e==null?void 0:e.key)||""].join("|")}mergeBusinessProperties(e,n,a){const i=(a==null?void 0:a.key)||"";if(Object.entries(n||{}).forEach(([r,o])=>{o==null||o===""||(e[r]===void 0||e[r]===null||e[r]==="")&&(e[r]=o)}),i==="basic-grassland"){const r=(n==null?void 0:n.basic_type_name)||(n==null?void 0:n.grassland_category_name)||(n==null?void 0:n.land_class_name)||(n==null?void 0:n.land_use_name)||(n==null?void 0:n.base_grass);r!=null&&r!==""&&(e.basic_type_name=r)}if(i==="grassland-level"){const r=(n==null?void 0:n.grassland_level)||(n==null?void 0:n.level)||(n==null?void 0:n.grassland_level_name)||(n==null?void 0:n.level_name);r!=null&&r!==""&&(e.grassland_level=r)}if(i==="grassland-type"||i==="wetland-type"){const r=(n==null?void 0:n.grass_min_type)||(n==null?void 0:n.grass_type)||(n==null?void 0:n.grassland_type)||(n==null?void 0:n.type_name)||(n==null?void 0:n.type);r!=null&&r!==""&&(e.grass_min_type=r)}if(i==="grassland-yield"||i==="wetland-yield"){const r=(n==null?void 0:n.yield)||(n==null?void 0:n.xc_yield)||(n==null?void 0:n.xb_xc_yield)||(n==null?void 0:n.fresh_grass_yield)||(n==null?void 0:n.value),o=(n==null?void 0:n.mu_yield)||(n==null?void 0:n.xc_mu_yield)||(n==null?void 0:n.xb_xc_mu_yield)||(n==null?void 0:n.yield_per_mu);r!=null&&r!==""&&(e.fresh_grass_yield=r),o!=null&&o!==""&&(e.mu_yield=o)}if(i==="grassland-health"){const r=(n==null?void 0:n.health_level)||(n==null?void 0:n.health_level_name)||(n==null?void 0:n.ndvi_level)||(n==null?void 0:n.level)||(n==null?void 0:n.level_name),o=(n==null?void 0:n.ndvi)||(n==null?void 0:n.NDVI)||(n==null?void 0:n.value);r!=null&&r!==""&&(e.health_level=r),o!=null&&o!==""&&(e.ndvi=o);const s=(n==null?void 0:n.degradation_level)||(n==null?void 0:n.degradation_level_name)||(n==null?void 0:n.level)||(n==null?void 0:n.level_name);s!=null&&s!==""&&(e.degradation_level=s)}}getScreenPointFromEvent(e){var a;const n=((a=e==null?void 0:e.data)==null?void 0:a.originalEvent)||(e==null?void 0:e.originalEvent)||e;return(n==null?void 0:n.clientX)!==void 0&&(n==null?void 0:n.clientY)!==void 0?{x:n.clientX,y:n.clientY}:null}getLngLatFromEvent(e){var s,u,m;const a=(m=(((u=(s=this.interactionManager)==null?void 0:s.raycaster)==null?void 0:u.intersectObject(e.target,!1))||[])[0])==null?void 0:m.point;if(!a)return null;const i=this.focusMapGroup.worldToLocal(a.clone()),o=G6().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([i.x,-i.y]);return o?{lng:o[0],lat:o[1]}:null}lngLatToWmsPixel({lng:e,lat:n}){const a=(e-J1.west)/(J1.east-J1.west)*F6.width,i=(J1.north-n)/(J1.north-J1.south)*F6.height;return{x:a,y:i}}showSelectedFeature(e,n={}){var i;const a=(e==null?void 0:e.geometry)||((i=e==null?void 0:e.feature)==null?void 0:i.geometry);this.clearSelectedFeature(),this.createSelectedFeatureGroup(),this.addSelectedGeometry(a,n),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}showSelectedFeatures(e=[],n={}){this.clearSelectedFeature(),this.createSelectedFeatureGroup(),e.forEach(a=>{var r;const i=(a==null?void 0:a.geometry)||((r=a==null?void 0:a.feature)==null?void 0:r.geometry);this.addSelectedGeometry(i,n)}),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}setSelectedVectorFeatures(e=[]){this.selectedVectorFeatures=[...e],this.redrawVectorTopicLayer()}getSelectedFeatureStyle(e={}){const n=e.mode==="pasture",a=e.mode==="town";return{fillColor:rm,fillOpacity:n?.46:a?.24:.54,lineColor:SY,lineOpacity:.98,glowColor:om,glowOpacity:n?.92:.96,renderOrderBase:n?42:a?40:35,boundary:n||a,boundaryColor:rm,boundaryGlowColor:om,boundaryWidth:a?.012:.018,boundaryGlowWidth:a?.045:.06,boundaryOpacity:.95,boundaryGlowOpacity:a?.34:.42}}addSelectedGeometry(e,n={}){if(!(e!=null&&e.coordinates)||!this.selectedFeatureGroup)return;const a=this.getSelectedFeatureStyle(n),i=this.getDisplayFeaturePolygons(e),r=new Pe({color:a.fillColor,transparent:!0,opacity:a.fillOpacity,side:xt,depthWrite:!1,fog:!1}),o=new N5({color:a.lineColor,transparent:!0,opacity:a.lineOpacity,linewidth:2,depthTest:!1,depthWrite:!1,fog:!1}),s=new N5({color:a.glowColor,transparent:!0,opacity:a.glowOpacity,linewidth:3,depthTest:!1,depthWrite:!1,fog:!1}),u=a.boundary?new Pe({color:a.boundaryColor,transparent:!0,opacity:a.boundaryOpacity,side:xt,depthTest:!1,depthWrite:!1,fog:!1}):null,m=a.boundary?new Pe({color:a.boundaryGlowColor,transparent:!0,opacity:a.boundaryGlowOpacity,side:xt,depthTest:!1,depthWrite:!1,fog:!1,blending:Rt}):null;i.length&&i.forEach(f=>{const g=this.createProjectedShape(f);if(!g)return;const C=new eu(g),F=new nt(C,r);F.renderOrder=a.renderOrderBase,this.selectedFeatureGroup.add(F),f.forEach(z=>{const Y=this.createProjectedRingPoints(z);if(Y.length<3)return;a.boundary&&(this.addSelectedBoundaryBand(Y,m,a.boundaryGlowWidth,a.renderOrderBase+1,!0),this.addSelectedBoundaryBand(Y,u,a.boundaryWidth,a.renderOrderBase+4,!0));const i2=new g6().setFromPoints(Y),v2=new Yi(i2,o);v2.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(v2);const y2=new g6().setFromPoints(Y),A2=new Yi(y2,s);A2.renderOrder=a.renderOrderBase+3,A2.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(A2)})});const p=this.normalizeFeatureLineStrings(e);p.length&&p.forEach(f=>{const g=this.createProjectedRingPoints(f);if(g.length<2)return;a.boundary&&(this.addSelectedBoundaryBand(g,m,a.boundaryGlowWidth,a.renderOrderBase+1,!1),this.addSelectedBoundaryBand(g,u,a.boundaryWidth,a.renderOrderBase+4,!1));const C=new g6().setFromPoints(g),F=new il(C,s);F.renderOrder=a.renderOrderBase+3,F.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(F);const z=new g6().setFromPoints(g),Y=new il(z,o);Y.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(Y)})}addSelectedBoundaryBand(e,n,a,i,r=!0){if(!n||!this.selectedFeatureGroup)return;const o=this.createPathBandGeometry(e,a,r);if(!o)return;const s=new nt(o,n);s.renderOrder=i,this.selectedFeatureGroup.add(s)}createPathBandGeometry(e,n,a=!0){const i=this.normalizePathBandPoints(e,a);if(i.length<(a?3:2))return null;const r=Math.max(Number(n)||0,0)/2;if(!r)return null;const o=[],s=a?i.length:i.length-1;for(let m=0;mNumber.isFinite(i==null?void 0:i.x)&&Number.isFinite(i==null?void 0:i.y)).map(i=>i.clone());if(n&&a.length>2){const i=a[0],r=a[a.length-1];i.distanceToSquared(r)<1e-10&&a.pop()}return a}clearSelectedFeature(){var n;const e=!!((n=this.selectedVectorFeatures)!=null&&n.length);this.selectedVectorFeatures=[],e&&this.redrawVectorTopicLayer(),this.clearSelectedGeometryGroup()}clearSelectedGeometryGroup(){var n,a;if(!this.selectedFeatureGroup)return;const e=new Set;for(;this.selectedFeatureGroup.children.length;){const i=this.selectedFeatureGroup.children.pop();(a=(n=i.geometry)==null?void 0:n.dispose)==null||a.call(n),Array.isArray(i.material)?i.material.forEach(r=>e.add(r)):e.add(i.material)}e.forEach(i=>{var r;return(r=i==null?void 0:i.dispose)==null?void 0:r.call(i)})}normalizeFeaturePolygons(e){return gm(e)}normalizeFeatureLineStrings(e){return e!=null&&e.coordinates?e.type==="LineString"?[e.coordinates]:e.type==="MultiLineString"?e.coordinates:[]:[]}getDisplayFeaturePolygons(e){const n=this.normalizeFeaturePolygons(e),a=this.getLayerClipBounds(this.currentTopicLayer);return a?n.map(i=>{const r=this.clipRingToBounds(i==null?void 0:i[0],a);if(r.length<3)return null;const o=i.slice(1).map(s=>this.clipRingToBounds(s,a)).filter(s=>s.length>=3);return[r,...o]}).filter(Boolean):n}clipRingToBounds(e=[],n){let a=e.map(r=>[Number(r==null?void 0:r[0]),Number(r==null?void 0:r[1])]).filter(([r,o])=>Number.isFinite(r)&&Number.isFinite(o));return[{inside:([r])=>r>=n.west,intersect:(r,o)=>this.getLngLatLineIntersection(r,o,"lng",n.west)},{inside:([r])=>r<=n.east,intersect:(r,o)=>this.getLngLatLineIntersection(r,o,"lng",n.east)},{inside:([,r])=>r>=n.south,intersect:(r,o)=>this.getLngLatLineIntersection(r,o,"lat",n.south)},{inside:([,r])=>r<=n.north,intersect:(r,o)=>this.getLngLatLineIntersection(r,o,"lat",n.north)}].forEach(r=>{const o=a;a=[],o.length&&o.forEach((s,u)=>{const m=o[(u+o.length-1)%o.length],p=r.inside(s),f=r.inside(m);p?(f||a.push(r.intersect(m,s)),a.push(s)):f&&a.push(r.intersect(m,s))})}),a}getLngLatLineIntersection(e,n,a,i){const r=a==="lng"?0:1,o=a==="lng"?1:0,s=n[r]-e[r];if(!s)return[...e];const u=(i-e[r])/s,m=[...e];return m[r]=i,m[o]=e[o]+(n[o]-e[o])*u,m}createProjectedShape(e){const n=e==null?void 0:e[0];if(!Array.isArray(n)||n.length<3)return null;const a=new pa;return this.createProjectedRingPoints(n).forEach((r,o)=>{o===0?a.moveTo(r.x,r.y):a.lineTo(r.x,r.y)}),e.slice(1).forEach(r=>{const o=this.createProjectedRingPoints(r);if(o.length<3)return;const s=new pa;o.forEach((u,m)=>{m===0?s.moveTo(u.x,u.y):s.lineTo(u.x,u.y)}),a.holes.push(s)}),a}createProjectedRingPoints(e){if(!Array.isArray(e))return[];const n=[];return e.forEach(a=>{if(!Array.isArray(a)||a.length<2)return;const i=Number(a[0]),r=Number(a[1]);if(!Number.isFinite(i)||!Number.isFinite(r))return;const[o,s]=this.geoProjection([i,r]);n.push(new _0(o,-s,0))}),n}enhanceTexture(e){var a,i,r;const n=(i=(a=this.renderer)==null?void 0:a.instance)==null?void 0:i.capabilities;e.anisotropy=((r=n==null?void 0:n.getMaxAnisotropy)==null?void 0:r.call(n))||1,e.needsUpdate=!0}geoProjection(e){return G6().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0])(e)}updateTownLabelScale(){var s,u,m;const e=this.townNameLabels||this.otherLabel||[],n=(s=this.camera)==null?void 0:s.instance,a=(m=(u=this.camera)==null?void 0:u.controls)==null?void 0:m.target;if(!e.length||!n||!a)return;const i=n.position.distanceTo(a),r=y9(i*72e-5,.011,.026),o=i>45?"0.76":i<22?"0.94":"1";e.forEach(p=>{var g,C,F;if(((g=p==null?void 0:p.userData)==null?void 0:g.labelType)!=="town-label")return;p.scale.set(r,r,r);const f=(F=(C=p.element)==null?void 0:C.querySelector)==null?void 0:F.call(C,".other-label");f&&(f.style.opacity=o)})}update(e){super.update(e),this.updateDynamicSatelliteTiles(),this.updateTownLabelScale(),this.updateTradeFlowPulses(e),this.interactionManager&&this.interactionManager.update()}pauseScene(){var e,n;this.scenePaused=!0,(n=(e=this.time)==null?void 0:e.pause)==null||n.call(e),this.sceneTweens.forEach(a=>{var i;return(i=a==null?void 0:a.pause)==null?void 0:i.call(a)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var e,n;this.scenePaused=!1,(n=(e=this.time)==null?void 0:e.resume)==null||n.call(e),this.sceneTweens.forEach(a=>{var i;return(i=a==null?void 0:a.resume)==null?void 0:i.call(a)}),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){var e,n,a,i;this.pauseScene(),this.sceneTimers.forEach(r=>clearTimeout(r)),this.sceneTimers=[],this.sceneTweens.forEach(r=>{var o;return(o=r==null?void 0:r.kill)==null?void 0:o.call(r)}),this.sceneTweens=[],this.callbacks={},(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(i=(a=this.canvas)==null?void 0:a.removeEventListener)==null||i.call(a,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.clearTradeFlowLayer(),this.clearSelectedFeature(),super.destroy(),this.label3d&&this.label3d.destroy()}}const PY={class:"map"},kY={__name:"map",props:{activeLayer:{type:Object,default:null},mapRanking:{type:Object,default:null},tileUrlTemplate:{type:String,default:""},satelliteTextureZoom:{type:Number,default:0},satelliteMaxZoom:{type:Number,default:0},adminBoundaryLineScale:{type:Number,default:1},useSatelliteBase:{type:Boolean,default:!0},showNationalBackdrop:{type:Boolean,default:!1},topicLayerPresentation:{type:String,default:"default"},hideTownLabelStats:{type:Boolean,default:!1}},emits:["feature-loading","feature-info","layer-status","tile-status","draw-boundary","scene-mounted"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=a3(null),o=Nm(null);let s=null,u=null,m=null,p=null,f=null,g="",C="",F=!1;jn(()=>{i("scene-mounted")}),On(()=>{M1()});function z(i3){return o.value?!0:r.value?(o.value=new MY(r.value,i3,{onFeatureLoading:U2=>i("feature-loading",U2),onFeatureInfo:U2=>i("feature-info",U2),onLayerStatus:U2=>i("layer-status",U2),onTileStatus:U2=>i("tile-status",U2),onDrawBoundary:U2=>i("draw-boundary",U2),tileUrlTemplate:a.tileUrlTemplate,satelliteTextureZoom:a.satelliteTextureZoom,satelliteMaxZoom:a.satelliteMaxZoom,adminBoundaryLineScale:a.adminBoundaryLineScale,useSatelliteBase:a.useSatelliteBase,showNationalBackdrop:a.showNationalBackdrop,topicLayerPresentation:a.topicLayerPresentation,hideTownLabelStats:a.hideTownLabelStats}),o.value.time.pause(),g=h3(a.activeLayer),C=V3(a.mapRanking),o.value.setTopicLayers(O3(a.activeLayer),a.activeLayer),o.value.setTownRanking(a.mapRanking),G1(),a1(),!0):!1}function Y(){return!!o.value}function i2(){return L3(this,null,function*(){var i3,U2,D3,F3,u1,A1;if(o.value&&(v2(),!o.value.mapAnimationComplete)){if(F){(U2=(i3=o.value.animateTl)==null?void 0:i3.play)==null||U2.call(i3),b1();return}F=!0,(F3=(D3=o.value.animateTl)==null?void 0:D3.timeScale)==null||F3.call(D3,1),(A1=(u1=o.value.animateTl)==null?void 0:u1.play)==null||A1.call(u1),b1()}})}function v2(){var i3,U2;o.value&&(G1(),a1(),window.requestAnimationFrame(()=>{var D3,F3,u1,A1,S3,E;(u1=(F3=(D3=o.value)==null?void 0:D3.label3d)==null?void 0:F3.resize)==null||u1.call(F3),(E=(S3=(A1=o.value)==null?void 0:A1.label3d)==null?void 0:S3.update)==null||E.call(S3)}),(U2=(i3=o.value).resumeScene)==null||U2.call(i3),o.value.resumeScene||o.value.time.resume())}function y2(){var i3,U2,D3,F3,u1,A1;o.value&&(j1(),(U2=(i3=o.value.animateTl)==null?void 0:i3.pause)==null||U2.call(i3),(F3=(D3=o.value).pauseScene)==null||F3.call(D3),o.value.pauseScene||(A1=(u1=o.value.time)==null?void 0:u1.pause)==null||A1.call(u1),i0())}function A2(){var i3,U2;(U2=(i3=o.value)==null?void 0:i3.clearSelectedFeature)==null||U2.call(i3)}function S2(i3){var U2,D3;(D3=(U2=o.value)==null?void 0:U2.focusProject)==null||D3.call(U2,i3)}function Q2(i3){var U2,D3;(D3=(U2=o.value)==null?void 0:U2.focusPasture)==null||D3.call(U2,i3)}function X2(i3,U2){var D3,F3;return(F3=(D3=o.value)==null?void 0:D3.focusTownByName)==null?void 0:F3.call(D3,i3,U2)}function c3(i3){var U2,D3;return(D3=(U2=o.value)==null?void 0:U2.focusYakIndustryPoint)==null?void 0:D3.call(U2,i3)}function p3(i3){var U2,D3;return(D3=(U2=o.value)==null?void 0:U2.focusVectorFeature)==null?void 0:D3.call(U2,i3)}function l3(i3){var U2,D3;return(D3=(U2=o.value)==null?void 0:U2.getVectorFeatureScreen)==null?void 0:D3.call(U2,i3)}function b3(i3){var U2,D3;return(D3=(U2=o.value)==null?void 0:U2.getYakIndustryPointScreen)==null?void 0:D3.call(U2,i3)}function N3(i3){var U2,D3;(D3=(U2=o.value)==null?void 0:U2.setBoundaryDrawing)==null||D3.call(U2,i3)}function _3(){var i3,U2;return(U2=(i3=o.value)==null?void 0:i3.finishBoundaryDrawing)==null?void 0:U2.call(i3)}function J3(){var i3,U2;(U2=(i3=o.value)==null?void 0:i3.undoBoundaryPoint)==null||U2.call(i3)}function R3(){var i3,U2;(U2=(i3=o.value)==null?void 0:i3.clearAnalysisBoundary)==null||U2.call(i3)}function Z3(i3){var U2,D3;(D3=(U2=o.value)==null?void 0:U2.showAnalysisResult)==null||D3.call(U2,i3)}function M1(){var i3,U2;j1(),i0(),(U2=(i3=o.value)==null?void 0:i3.destroy)==null||U2.call(i3),o.value=null}function b1(){j1(),f=window.setTimeout(()=>{var i3,U2;f=null,(U2=(i3=o.value)==null?void 0:i3.ensureMapRevealed)==null||U2.call(i3)},5200)}function j1(){f&&(window.clearTimeout(f),f=null)}function a1(){u&&window.cancelAnimationFrame(u),u=window.requestAnimationFrame(()=>{var i3,U2,D3,F3,u1;u=null,(D3=(U2=(i3=o.value)==null?void 0:i3.sizes)==null?void 0:U2.init)==null||D3.call(U2),(u1=(F3=o.value)==null?void 0:F3.resize)==null||u1.call(F3)}),m&&window.clearTimeout(m),m=window.setTimeout(()=>{var i3,U2,D3,F3,u1;m=null,(D3=(U2=(i3=o.value)==null?void 0:i3.sizes)==null?void 0:U2.init)==null||D3.call(U2),(u1=(F3=o.value)==null?void 0:F3.resize)==null||u1.call(F3)},180)}function G1(){var U2;i0();const i3=(U2=r.value)==null?void 0:U2.parentNode;i3&&window.ResizeObserver&&(s=new ResizeObserver(()=>a1()),s.observe(i3)),p=window.setInterval(s0,1e3),ae(a1)}function s0(){var S3;if(!o.value||!r.value)return;const i3=r.value.parentNode,U2=(i3==null?void 0:i3.offsetWidth)||window.innerWidth||1,D3=(i3==null?void 0:i3.offsetHeight)||window.innerHeight||1,F3=((S3=o.value.sizes)==null?void 0:S3.pixelRatio)||1,u1=Math.floor(U2*F3),A1=Math.floor(D3*F3);(r.value.width!==u1||r.value.height!==A1)&&a1()}function i0(){s&&(s.disconnect(),s=null),u&&(window.cancelAnimationFrame(u),u=null),m&&(window.clearTimeout(m),m=null),p&&(window.clearInterval(p),p=null)}function r0(){if(!o.value)return;G1();const i3=()=>{var U2,D3,F3,u1,A1,S3,E,C3,H3,_1,s1,B1,U1,R1,N1,G0,T0,S0,oe,z0,P0;o.value&&((D3=(U2=o.value)==null?void 0:U2.resumeScene)==null||D3.call(U2),o.value.resumeScene||(u1=(F3=o.value.time)==null?void 0:F3.resume)==null||u1.call(F3),(E=(S3=(A1=o.value)==null?void 0:A1.sizes)==null?void 0:S3.init)==null||E.call(S3),(H3=(C3=o.value)==null?void 0:C3.resize)==null||H3.call(C3),(B1=(s1=(_1=o.value)==null?void 0:_1.label3d)==null?void 0:s1.resize)==null||B1.call(s1),(N1=(R1=(U1=o.value)==null?void 0:U1.label3d)==null?void 0:R1.update)==null||N1.call(R1),(T0=(G0=o.value)==null?void 0:G0.setTopicLayers)==null||T0.call(G0,O3(a.activeLayer),a.activeLayer),(oe=(S0=o.value)==null?void 0:S0.setTownRanking)==null||oe.call(S0,a.mapRanking),(P0=(z0=o.value)==null?void 0:z0.ensureMapRevealed)==null||P0.call(z0))};a1(),window.requestAnimationFrame(i3),window.setTimeout(()=>{i3()},80),window.setTimeout(()=>{i3()},220)}function q1(){if(!o.value)return;G1();const i3=()=>{var D3,F3,u1,A1,S3,E,C3,H3,_1,s1,B1,U1,R1,N1,G0,T0;const U2=o.value;U2&&((D3=U2.resumeScene)==null||D3.call(U2),U2.resumeScene||(u1=(F3=U2.time)==null?void 0:F3.resume)==null||u1.call(F3),(S3=(A1=U2.sizes)==null?void 0:A1.init)==null||S3.call(A1),(E=U2.resize)==null||E.call(U2),(C3=U2.ensureMapRevealed)==null||C3.call(U2),(H3=U2.setTradeNationalMapVisible)==null||H3.call(U2,!1),(_1=U2.setTopicLayers)==null||_1.call(U2,O3(a.activeLayer),a.activeLayer),(s1=U2.setTownRanking)==null||s1.call(U2,a.mapRanking),(B1=U2.applyLayerMapView)==null||B1.call(U2,U2.currentTopicLayer||a.activeLayer||null,{force:!0}),(R1=(U1=U2.label3d)==null?void 0:U1.resize)==null||R1.call(U1),(G0=(N1=U2.label3d)==null?void 0:N1.update)==null||G0.call(N1),(T0=U2.updateDynamicSatelliteTiles)==null||T0.call(U2,!0))};a1(),window.requestAnimationFrame(i3),window.setTimeout(i3,100),window.setTimeout(i3,260)}ie(()=>a.activeLayer,i3=>{const U2=h3(i3);U2!==g&&(g=U2,o.value&&o.value.setTopicLayers(O3(i3),i3))},{deep:!0}),ie(()=>a.mapRanking,i3=>{const U2=V3(i3);U2!==C&&(C=U2,o.value&&o.value.setTownRanking(i3))},{deep:!0}),e({loadMap:z,hasMap:Y,play:i2,resume:v2,pause:y2,clearSelectedFeature:A2,focusProject:S2,focusPasture:Q2,focusTown:X2,focusYakIndustryPoint:c3,focusVectorFeature:p3,getVectorFeatureScreen:l3,getYakIndustryPointScreen:b3,setBoundaryDrawing:N3,finishBoundaryDrawing:_3,undoBoundaryPoint:J3,clearAnalysisBoundary:R3,showAnalysisResult:Z3,refreshView:r0,resetView:q1,destroyMap:M1,canvasMap:o});function h3(i3){return i3?O3(i3).map(U2=>{var D3,F3;return[U2.key||"",U2.layerName||"",U2.styles||"",U2.sldBody||"",U2.cqlFilter||"",((D3=U2.activeLegend)==null?void 0:D3.key)||"",Array.isArray(U2.activeLegends)?U2.activeLegends.map(u1=>(u1==null?void 0:u1.key)||"").join(","):"",U2.timelineDate||"",((F3=U2.timelineItem)==null?void 0:F3.key)||"",U2.sourceType||"",U2.dataPath||"",U2.fallbackPath||""].join("|")}).join("||"):""}function O3(i3){if(!i3)return[];const U2=Array.isArray(i3.overlayLayers)?i3.overlayLayers.filter(Boolean):[];return[i3,...U2]}function V3(i3){var U2,D3,F3,u1,A1,S3,E,C3,H3,_1;return i3?[i3.status||"",i3.topicKey||"",i3.layerKey||"",i3.title||"",i3.metricLabel||"",i3.scope||"",i3.displayMode||"",(U2=i3.showPointMarkers)!=null?U2:"",(D3=i3.showBars)!=null?D3:"",(F3=i3.showTownNames)!=null?F3:"",(u1=i3.showMapLabels)!=null?u1:"",(A1=i3.hideTownLabelStats)!=null?A1:"",(S3=i3.showFlowLines)!=null?S3:"",(E=i3.onlyRankedTownLabels)!=null?E:"",(C3=i3.showMissingTownStats)!=null?C3:"",((H3=i3.rows)==null?void 0:H3.length)||0,((_1=i3.rows)==null?void 0:_1.map(s1=>{var B1;return`${s1.key||s1.name||""}:${(B1=s1.value)!=null?B1:""}`}).join(","))||""].join("|"):""}return(i3,U2)=>(O(),V("div",PY,[S("canvas",{ref_key:"canvasRef",ref:r},null,512)]))}};const EY={class:"yak-management"},NY={key:1,class:"yak-map-loading"},RY={class:"yak-management-ui"},LY={key:0,class:"trade-year-switcher","aria-label":"交易年份切换"},IY=["onClick"],FY={key:1,class:"epidemic-year-switcher","aria-label":"防疫年份切换"},BY=["onClick"],DY={key:2,class:"forecast-year-switcher","aria-label":"预测年份切换"},GY=["onClick"],UY={class:"yak-left"},OY={class:"yak-side-stack is-left"},jY={class:"breeding-health-card"},zY={class:"breeding-health-head"},YY={class:"breeding-health-grid"},$Y={class:"structure-chart-card"},WY={class:"structure-ratio-card"},VY={class:"structure-ratio-chart"},HY={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},KY={class:"structure-rose-segments"},qY=["d","fill","stroke"],JY={class:"structure-ratio-list"},QY={key:0,class:"yak-data-status"},ZY={key:1,class:"yak-data-status is-warning"},XY={class:"forecast-waterfall-card"},e$={class:"forecast-waterfall-head"},t$={class:"forecast-waterfall-list"},n$={class:"forecast-trend-card"},a$={class:"forecast-density-switcher","aria-label":"预测粒度切换"},i$=["onClick"],r$={key:0,class:"epidemic-three-pie-card"},o$={class:"epidemic-three-pie-visual"},s$={class:"epidemic-three-pie-center"},l$={class:"epidemic-three-pie-legend"},u$={key:1,class:"epidemic-empty"},c$={class:"trade-risk-card"},d$={class:"trade-risk-head"},f$={class:"trade-risk-list"},h$={class:"yak-right"},m$={class:"yak-side-stack is-right"},p$={class:"structure-chart-card"},g$={class:"structure-summary-card"},y$={key:0,class:"yak-data-status"},v$={key:1,class:"yak-data-status is-warning"},S$={class:"forecast-heat-list"},w$=["title"],b$={class:"epidemic-record-table is-full"},T$={class:"epidemic-record-toolbar"},C$={class:"epidemic-record-rows"},A$=["onClick"],_$={key:0,class:"epidemic-empty"},x$={class:"epidemic-record-pager"},M$=["disabled"],P$=["disabled"],k$={class:"trade-cert-card"},E$={class:"trade-cert-main"},N$={class:"trade-dest-list"},R$={key:0,class:"epidemic-empty"},L$={class:"trade-ledger-table"},I$={class:"trade-ledger-toolbar"},F$={class:"trade-ledger-rows"},B$=["onClick"],D$={key:0,class:"epidemic-empty"},G$={class:"trade-ledger-pager"},U$=["disabled"],O$=["disabled"],j$={class:"yak-bottom-topic"},z$={class:"epidemic-ledger-dialog"},Y$={class:"epidemic-ledger-dialog-head"},$$={class:"epidemic-ledger-filters"},W$=["value"],V$=["value"],H$={class:"epidemic-ledger-workspace"},K$={class:"epidemic-ledger-list"},q$=["onClick"],J$={key:0,class:"epidemic-empty"},Q$={class:"epidemic-ledger-detail trade-ledger-detail epidemic-ledger-record-detail"},Z$={class:"epidemic-detail-head trade-detail-head"},X$={class:"epidemic-detail-grid is-modal trade-detail-grid epidemic-detail-flat-grid"},eW={key:0,class:"epidemic-detail-photos"},tW={class:"epidemic-modal-photo-strip"},nW=["onClick"],aW=["src"],iW={class:"epidemic-ledger-pager"},rW=["disabled"],oW=["disabled"],sW={class:"epidemic-ledger-dialog trade-ledger-dialog"},lW={class:"epidemic-ledger-dialog-head"},uW={class:"epidemic-ledger-filters trade-ledger-filters"},cW=["value"],dW=["value"],fW=["value"],hW={class:"epidemic-ledger-workspace trade-ledger-workspace"},mW={class:"epidemic-ledger-list trade-ledger-modal-list"},pW=["onClick"],gW={key:0,class:"epidemic-empty"},yW={class:"epidemic-ledger-detail trade-ledger-detail"},vW={class:"epidemic-detail-head trade-detail-head"},SW={class:"epidemic-detail-grid is-modal trade-detail-grid"},wW={class:"is-wide"},bW={class:"is-wide"},TW={class:"is-wide"},CW={class:"is-wide"},AW=["disabled"],_W={class:"epidemic-ledger-pager"},xW=["disabled"],MW=["disabled"],PW={class:"epidemic-image-preview-dialog"},kW={class:"epidemic-image-preview-head"},EW={class:"epidemic-image-preview-body"},NW={class:"epidemic-image-preview-frame"},RW=["src"],LW="https://qkl-hy.oss-cn-chengdu.aliyuncs.com/yak-vaccine-images",IW="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",FW=8.85,BW="oss-satellite-dynamic-zoom21-v5",_i=8,ym=14,qs=12,vm=14,DW=5e3,xi=6,GW=4200,Sm="#FFE600",UW={__name:"index",props:{active:{type:Boolean,default:!0},viewKey:{type:String,default:"structure"}},emits:["module-stats","view-change"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=Tn.sideCardWidth;Tn.sideCardGap;const o=a3(typeof window=="undefined"?1080:window.innerHeight),s=r2(()=>j8(o.value)),u=r2(()=>M9(s.value,2)),m=r2(()=>s.value),p=r2(()=>M9(s.value,2)),f=l5.textPrimary,g=l5.textStrong,C=l5.textSecondary,F=l5.textMuted,z=l5.chartGridLine,Y=[102.58,32.72],i2=Y,v2=Y,y2={lng:0,lat:0},A2={targetLngLat:[102.6,32.59],targetLocalZ:.72,distanceScale:1.05,duration:.75},S2=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],Q2=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],X2=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff"],c3={name:"红原牦牛交易市场",lng:102.562157,lat:32.820484},p3=[{key:"structure",name:"畜群结构",color:"#30dcff"},{key:"forecast",name:"畜群预测",color:"#8bf7ff"},{key:"epidemic",name:"牦牛防疫",color:"#8bf7ff"},{key:"trade",name:"牦牛交易",color:"#63d7ff"}],l3=a3(O9(a.viewKey)),b3=a3("2027"),N3=a3("month"),_3=a3(0),J3=a3([]),R3=a3([]),Z3=a3([]),M1=a3(!1),b1=a3(""),j1=[2025,2026],a1=a3(2026),G1=a3({metrics:{}}),s0=a3({rows:[],year:null}),i0=a3({rows:[]}),r0=a3([]),q1=a3(0),h3=a3(1),O3=a3(""),V3=a3(""),i3=a3(!1),U2=a3(""),D3=a3(!1),F3=a3([]),u1=a3(0),A1=a3(1),S3=a3(!1),E=a3(""),C3=a3(null),H3=a3(null),_1=a3(!1),s1=a3(!1),B1=a3(""),U1=a3(o6()),R1=a3({years:[],latestYear:null}),N1=a3({metrics:{},hasData:!1}),G0=a3([]),T0=a3(0),S0=a3(null),oe=a3(!1),z0=a3(""),P0=a3(1),x2=a3(""),j2=a3(""),H2=a3(!1),w3=a3([]),d1=a3(0),O1=a3(1),V1=a3(!1),I0=a3(""),F0=a3(null),O0=a3({keyword:"",startTown:"",usageType:"",certType:""}),Z1=a3(null),Y0=a3(null),d0=a3(!1),de=a3(!1),Re=a3(0),H1=a3(0),M3=a3({type:"idle",text:""}),d2=a3({type:"idle",text:""});let $2=null,z3=!1,d3=!1,$3=null,X3=!1,P2=null,n3=null,s3=0;const m1=[{key:"day",label:"日",unit:"日",stepDays:1},{key:"week",label:"周",unit:"周",stepDays:7},{key:"month",label:"月",unit:"月",stepDays:30}],w1=r2(()=>Vp(b3.value)),f0=new Set(["epidemic","trade"]),g0=r2(()=>!f0.has(l3.value)),B0=r2(()=>g0.value?IW:""),p0=r2(()=>g0.value?"oss-satellite":"solid-3d"),ve=r2(()=>`yak-management-map-${p0.value}-${BW}-${Re.value}`),u0=r2(()=>tL+nL),be=r2(()=>w1.value.stock-Mt),xe=r2(()=>Rn(w1.value)),Te=r2(()=>y4(Z3.value,B5)),Fe=r2(()=>Te.value.reduce((A,M)=>A+Number(M.count||0),0));r2(()=>{const A=Fe.value||1;return Te.value.map((M,R)=>{const n2=Number(M.count||0),k2=Number(M.ratio);return t3(B2({},M),{count:n2,color:S2[R%S2.length],percent:Number.isFinite(k2)?k2:n2/A*100})})});const We=r2(()=>l6(Te.value,B5)),Ze=r2(()=>We.value),F2=r2(()=>y7(Ze.value)),N=r2(()=>uo(Te.value,B5)),_=r2(()=>fo(N.value)),d=r2(()=>Math.max(...F2.value.map(A=>Number(A.count||0)),1)),h=r2(()=>Ze.value.length?0:-1),y=r2(()=>{const A=Ze.value,M=A.length;if(!M)return[];const R=Math.max(...A.map(X=>Number(X.count||0)),1),n2=360/M,k2=Math.min(8,n2*.16);return A.map((X,M2)=>{const I2=Number(X.count||0),I3=M2===h.value,Q3=36+Math.sqrt(I2/R)*31+(I3?5:0),f1=17,a0=-90+M2*n2+k2/2,e0=-90+(M2+1)*n2-k2/2,b0=(a0+e0)/2,he=ln(75,75,Q3+3,b0),Ne=ln(75,75,Q3+15,b0),Ot=ln(75,75,Q3+20,b0);return{key:X.key||X.name||M2,index:M2,item:X,color:X.color||S2[M2%S2.length],path:lo(75,75,f1,Q3,a0,e0),lineStart:he,lineEnd:Ne,label:Ot,anchor:Math.cos(b0*Math.PI/180)>=0?"start":"end"}})}),w=r2(()=>g7(["fertileCow","overageCow"])),x=r2(()=>g7(["femaleCalf","maleCalf"])),k=r2(()=>Yp(w5(J3.value.length?J3.value:Pl,Pl),Mt)),a2=r2(()=>QR),e2=r2(()=>oL(w1.value)),s2=r2(()=>rL(w1.value)),J=r2(()=>{var A;return((A=G1.value)==null?void 0:A.metrics)||{}}),H=r2(()=>{var A;return Ht((A=G1.value)==null?void 0:A.dateTrend).sort(b5)}),R2=r2(()=>{var A;return Ht((A=G1.value)==null?void 0:A.medicineCounts)}),p2=r2(()=>R2.value.filter(A=>A.value>0).map((A,M)=>t3(B2({},A),{key:A.key||`${A.name}-${M}`,unit:"条"}))),c2=r2(()=>p2.value.map(A=>`${A.name}:${A.value}`).join("|")||"epidemic-medicine-empty"),f2=r2(()=>{var A;return Ht((A=G1.value)==null?void 0:A.ownerRanks).slice(0,8)}),O2=r2(()=>L9(G1.value)),o2=r2(()=>{var A;return((A=R2.value.find(M=>M.name&&M.name!=="未填写"))==null?void 0:A.name)||"-"}),T=r2(()=>e9(J.value,["total","vaccine"]));r2(()=>e9(J.value,["owners"]));const j=r2(()=>Number(a1.value)===2026?10:e9(J.value,["villages"])),K=r2(()=>P3.value.length),E2=r2(()=>{var A;return((A=P3.value[0])==null?void 0:A.name)||"-"}),D2=r2(()=>{const A=r0.value.map(M=>M.operateTime).filter(Boolean).sort();return A.length?fe(A[A.length-1]):"-"}),Z2=r2(()=>{const A=Math.max(...R2.value.map(M=>Number(M.value||0)),0);return A>0?A:Math.round(T.value/O2.value)}),q2=r2(()=>{var M;const A=F9((M=s0.value)==null?void 0:M.rows);return A.length?A:P3.value.map(R=>({name:R.name,recordCount:Number(R.recordCount||0),earTagCount:Number(R.earTagCount||0),ratio:R.ratio,source:"ledger"}))}),f3=r2(()=>{var M;const A=new Set;return q8((M=i0.value)==null?void 0:M.rows).filter(R=>Number.isFinite(R.lng)&&Number.isFinite(R.lat)).map((R,n2)=>{const k2=`${R.lng.toFixed(4)},${R.lat.toFixed(4)}`,X=A.has(k2)?(n2%3-1)*.012:0;return A.add(k2),t3(B2({},R),{name:R.village,value:R.earTagCount,unit:"万头",lng:R.lng+X,lat:R.lat-X*.65,displayValue:Number((R.earTagCount/1e4).toFixed(2)),displayUnit:"万头",rankLabel:`第${n2+1}名`})})}),P3=r2(()=>{var M;const A=new Map;return Ht((M=G1.value)==null?void 0:M.townCounts).forEach(R=>{const n2=et(R.name);n2&&A.set(n2,Number(A.get(n2)||0)+Number(R.value||0))}),[...A.entries()].map(([R,n2])=>{const k2=Math.round(n2/O2.value),X=T.value?n2/T.value*100:0;return{name:R,recordCount:n2,earTagCount:k2,ratio:X}}).sort((R,n2)=>Number(n2.recordCount||0)-Number(R.recordCount||0))}),j3=r2(()=>Math.max(k.value.length,K.value)),E3=r2(()=>new Set(P3.value.map(A=>et(A.name)).filter(Boolean))),C1=r2(()=>{const A=E3.value;return k.value.map(M=>et(M.name)).filter(M=>M&&!A.has(M))}),P1=r2(()=>{const A=j3.value||K.value||1;return K.value/A*100});r2(()=>Z2.value/Mt*100);const x1=r2(()=>Wr());r2(()=>T.value?C1.value.length?C1.value.length:x1.value.name&&x1.value.name!=="暂无"?1:0:0);const I1=r2(()=>Vr()),$1=r2(()=>a7()),W1=r2(()=>Hr());r2(()=>Kr());const E0=r2(()=>qr());r2(()=>E0.value.slice(0,3)),r2(()=>T.value?C1.value.length?"年度免疫进度需核查":x1.value.desc:"年度计划待核查");const L2=r2(()=>Math.max(Math.ceil(q1.value/_i),1)),v3=r2(()=>r0.value.slice(0,_i)),A3=r2(()=>Math.max(Math.ceil(u1.value/ym),1)),q3=r2(()=>H3.value||C3.value||{}),T1=r2(()=>t9(q3.value)),l0=r2(()=>{const A=q3.value||{};return[W0("台账编号",A.epidemicId,{wide:!0}),W0("养殖户",A.owner,{wide:!0}),W0("联系电话",r7(A.phone)),W0("证件类型",A.idType),W0("证件号码",Xr(A.idNo)),W0("镇/乡",A.town),W0("村",A.village),W0("详细地址",A.location,{wide:!0}),W0("畜种",A.livestockType),W0("性别",A.sex),W0("畜龄",A.age),W0("体重",eo(A.weight)),W0("疫苗/药品",A.medicine),W0("防疫类型",A.preventionType),W0("免疫方式",A.method),W0("剂量",to(A.dose)),W0("免疫时间",fe(A.operateTime)),W0("操作员",A.operator)].filter(Boolean)}),X1=r2(()=>{var A;return Ht((A=G1.value)==null?void 0:A.townCounts).map(M=>M.name)}),h0=r2(()=>R2.value.map(A=>A.name).filter(A=>A&&A!=="未填写")),y0=r2(()=>{var A;return((A=N1.value)==null?void 0:A.metrics)||{}}),je=r2(()=>{var A,M,R,n2,k2,X,M2,I2;return K8((A=R1.value)==null?void 0:A.years,(M=N1.value)==null?void 0:M.availableYears,(R=N1.value)==null?void 0:R.available_years,(n2=N1.value)==null?void 0:n2.yearSummary,(k2=N1.value)==null?void 0:k2.year_summary,(X=N1.value)==null?void 0:X.latestYear,(M2=N1.value)==null?void 0:M2.latest_year,(I2=N1.value)==null?void 0:I2.year)}),Ve=r2(()=>{var A,M;return Z5(((A=N1.value)==null?void 0:A.monthTrend)||((M=N1.value)==null?void 0:M.month_trend),"name")});r2(()=>{var A,M;return qa(((A=N1.value)==null?void 0:A.yearSummary)||((M=N1.value)==null?void 0:M.year_summary))});const se=r2(()=>{var A,M;return Z5(((A=N1.value)==null?void 0:A.startTownCounts)||((M=N1.value)==null?void 0:M.start_town_counts),"name")}),Le=r2(()=>{var A,M;return Z5(((A=N1.value)==null?void 0:A.usageCounts)||((M=N1.value)==null?void 0:M.usage_counts),"name")}),g1=r2(()=>{var A,M,R,n2,k2,X;return Z5(((A=N1.value)==null?void 0:A.transportNumberCounts)||((M=N1.value)==null?void 0:M.transport_number_counts)||((R=N1.value)==null?void 0:R.vehicleCounts)||((n2=N1.value)==null?void 0:n2.vehicle_counts)||((k2=N1.value)==null?void 0:k2.transportCounts)||((X=N1.value)==null?void 0:X.transport_counts),"transportNumber")}),D=r2(()=>{const A=se.value.map(R=>{const n2=String(R.name||"").trim(),k2=et(n2),X=En(k2||n2);return t3(B2({},R),{rawName:n2,name:X,displayName:X,town:k2,mapTownName:k2})}).filter(R=>R.name&&R.name!=="未填写").slice(0,10),M=Math.max(...A.map(R=>R.headCount),1);return A.map((R,n2)=>t3(B2({},R),{key:R.key||`${R.mapTownName||R.name}-${n2}`,value:R.headCount,unit:"头",ratio:Math.max(8,Math.round(R.headCount/M*100))}))}),u2=r2(()=>G0.value.slice(0,qs)),K2=r2(()=>Math.max(Math.ceil(T0.value/qs),1)),i1=r2(()=>Math.max(Math.ceil(d1.value/vm),1)),G3=r2(()=>F0.value||{}),B3=r2(()=>G3.value.certId||G3.value.factoryCode||""),y1=r2(()=>{var M,R;const A=X5(((M=R1.value)==null?void 0:M.startTowns)||((R=R1.value)==null?void 0:R.start_towns));return A.length?A:I9(se.value.map(n2=>n2.name))}),k1=r2(()=>{var M,R;const A=X5(((M=R1.value)==null?void 0:M.usageTypes)||((R=R1.value)==null?void 0:R.usage_types));return A.length?A:I9(Le.value.map(n2=>n2.name))}),Z=r2(()=>{var M,R,n2,k2;const A=$r(((M=R1.value)==null?void 0:M.certTypeOptions)||((R=R1.value)==null?void 0:R.cert_type_options));return A.length?A:X5(((n2=R1.value)==null?void 0:n2.certTypes)||((k2=R1.value)==null?void 0:k2.cert_types)).map(X=>({value:X,label:X}))}),_2=r2(()=>D.value.map((A,M)=>({key:A.key||`${A.name}-${M}`,name:A.displayName||A.name,displayName:A.displayName||A.name,rawName:A.rawName,town:A.mapTownName||A.town||et(A.name),mapTownName:A.mapTownName||A.town||et(A.name),value:A.headCount,headCount:A.headCount,recordCount:A.recordCount,ratio:A.ratio,unit:"头"}))),G2=r2(()=>Jr()),z2=r2(()=>{const A=G2.value.filter(M=>M.level==="high");return A.length>=2?`${A.length}项重点`:A.length===1?`重点:${A[0].name}`:"整体平稳"}),h2=r2(()=>k.value.map(A=>t3(B2({},A),{breedingCowRatio:w.value,calfRatio:x.value,breedingCow:Math.round(A.count*w.value/100),calf:Math.round(A.count*x.value/100)}))),o3=r2(()=>{const A=h2.value,M=A.length,R=Math.max(Math.ceil(M/xi),1),n2=_3.value%R,k2=n2*xi,X=Math.min(k2+xi,M);return{page:n2,pageCount:R,start:k2,end:X,total:M,rows:A.slice(k2,X)}}),J2=r2(()=>l3.value==="forecast"?e2.value:k.value),m3=r2(()=>l3.value==="forecast"?"forecast":"count"),k3=r2(()=>p4(J2.value,m3.value)),P=r2(()=>({key:"yak-marks-layer",sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",cqlFilter:"gov_show = true",name:"牦牛识别标记",opacity:.92,queryBuffer:10,geometryField:"geom",fillColor:"rgba(255, 230, 0, 0)",strokeColor:Sm,glowColor:"rgba(255, 230, 0, 0.42)",lineWidth:1.4,mapView:{targetLngLat:Y,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-marks",name:"牦牛",fillColor:Sm,strokeColor:"#FFF58A",selectable:!1}]})),I=r2(()=>{var R;const M=q8((R=i0.value)==null?void 0:R.rows).map(n2=>Xa(n2.town,n2.village)).filter(Boolean);return{key:"yak-epidemic-village-boundary",sourceType:"wfs",layerName:"ne:t_pastures_map",styles:"牧场样式",name:"防疫村边界",opacity:.86,queryBuffer:8,cqlFilter:M.length?M.join(" OR "):"EXCLUDE",legends:[{key:"yak-epidemic-village-boundary",name:"防疫村边界",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1}]}}),G=r2(()=>l3.value==="epidemic"?I.value:l3.value==="trade"?null:P.value),T2=r2(()=>l3.value==="structure"||l3.value==="forecast"),u3=r2(()=>l3.value==="forecast"?v2:i2),V2=r2(()=>T2.value?null:G.value),W=r2(()=>T2.value?null:c0.value),e3=r2(()=>T2.value?!de.value:!d0.value),r1=r2(()=>"3D地图加载中"),c0=r2(()=>l3.value==="trade"?{scope:"trade-flow",title:`${S0.value||""}出栏来源`,metricLabel:"来源",unit:"头",source:t3(B2({},c3),{total:Pt("headCount")}),rows:_2.value,showFlowLines:!1,mapView:A2}:{scope:l3.value==="epidemic"?"village":"town",hideTownNames:l3.value==="epidemic",title:l3.value==="forecast"?`${w1.value.shortLabel}预测存栏`:l3.value==="epidemic"?`${a1.value}年村级防疫信息`:"乡镇估算存栏",metricLabel:l3.value==="forecast"?"预测":l3.value==="epidemic"?"防疫":"存栏",unit:"万头",rows:l3.value==="epidemic"?f3.value:k3.value.map(A=>({name:A.name,value:Number((A.value/1e4).toFixed(2)),unit:"万头"}))}),t0=r2(()=>({color:["#8bf7ff","#30dcff"],tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(A){const M=A.map(R=>`${R.marker}${R.seriesName}:${V0(Math.abs(R.value))}头`);return`${A[0].name}
${M.join("
")}`}}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:C,fontSize:11}},grid:{left:22,right:22,top:32,bottom:12,containLabel:!0},xAxis:{type:"value",axisLabel:{color:F,fontSize:10,formatter:A=>ye(Math.abs(A))},splitLine:{lineStyle:{color:z,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:Ns.map(A=>A.age),axisLabel:{color:f,fontSize:11,fontWeight:700},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"母牛",type:"bar",stack:"gender",barWidth:12,data:Ns.map(A=>-A.cow),itemStyle:{borderRadius:[7,0,0,7]}},{name:"公牛",type:"bar",stack:"gender",barWidth:12,data:Ns.map(A=>A.bull),itemStyle:{borderRadius:[0,7,7,0]}}]})),b=r2(()=>{const A=k.value,M=A.map(R=>R.count);return{color:S2,tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(R){const n2=R.map(k2=>`${k2.marker}${k2.seriesName}:${V0(k2.value)}头`);return`${R[0].name}
${n2.join("
")}
估算存栏:${V0(M[R[0].dataIndex])}头
结构依据:畜群结构比例表`}}),legend:{top:-2,right:0,itemWidth:8,itemHeight:6,itemGap:6,textStyle:{color:C,fontSize:10}},grid:{left:54,right:30,top:22,bottom:8},xAxis:{type:"value",axisLabel:{color:F,fontSize:10,formatter:ye},splitLine:{lineStyle:{color:z,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",inverse:!0,data:A.map(R=>R.name),axisLabel:{color:f,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:B5.map(R=>({name:R.name,type:"bar",stack:"town",barWidth:A.length>8?6:11,data:A.map(n2=>Math.round(n2.count*R.ratio/100))}))}}),B=r2(()=>x6(k.value,"count","头",{style:"ladder",tooltipFormatter(A){const M=k.value[A.dataIndex];return`${M.name}
估算存栏:${V0(M.count)}头
来源:无人机识别`}})),q=r2(()=>{const A=o3.value,M=A.rows,R=Math.max(...M.map(n2=>n2.breedingCow+n2.calf),1);return{color:["#30dcff","#8bf7ff"],animationDurationUpdate:700,animationEasingUpdate:"cubicOut",tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(n2){const k2=M[n2[0].dataIndex],X=n2.filter(M2=>["能繁母牛","犊牛合计"].includes(M2.seriesName)).map(M2=>`${M2.marker}${M2.seriesName}:${V0(M2.value)}头`);return`${k2.name}
母犊合计:${V0(k2.breedingCow+k2.calf)}头
${X.join("
")}
依据:无人机识别 + 畜群结构比例表`}}),legend:{data:["能繁母牛","犊牛合计"],top:2,left:2,itemWidth:10,itemHeight:7,itemGap:9,textStyle:{color:C,fontSize:10}},graphic:A.total>xi?{type:"text",right:4,top:3,silent:!0,style:{text:`${A.start+1}-${A.end} / ${A.total}`,fill:F,fontSize:10,fontWeight:600}}:void 0,grid:{left:18,right:18,top:42,bottom:44,containLabel:!1},xAxis:{type:"category",data:M.map(n2=>n2.name),axisLabel:{color:F,fontSize:10,lineHeight:12,interval:0,margin:8,formatter:Z8},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",max:Math.ceil(R*1.28),axisLabel:{show:!1},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:z,type:"dashed"}}},series:[{name:"基础群规模",type:"bar",barWidth:15,barGap:"-100%",data:M.map(n2=>n2.breedingCow+n2.calf),tooltip:{show:!1},itemStyle:{borderRadius:[8,8,1,1],color:"rgba(48, 220, 255, 0.07)"},silent:!0},{name:"能繁母牛",type:"bar",stack:"foundation",barWidth:15,data:M.map(n2=>n2.breedingCow),itemStyle:{borderRadius:[1,1,0,0],color:new ut(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.34)"},{offset:1,color:"#30dcff"}])}},{name:"犊牛合计",type:"bar",stack:"foundation",barWidth:15,data:M.map(n2=>n2.calf),itemStyle:{borderRadius:[8,8,1,1],color:new ut(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:1,color:"rgba(139, 247, 255, 0.2)"}])},label:{show:!0,position:"top",formatter:({dataIndex:n2})=>ye(M[n2].breedingCow+M[n2].calf),color:"#ffffff",fontSize:10,fontWeight:700}}]}}),b2=r2(()=>{const A=ph.slice().sort((n2,k2)=>k2.value-n2.value),M=ph.reduce((n2,k2)=>n2+k2.value,0),R=A.map(n2=>n2.yoy||0);return{color:A.map(n2=>n2.color),tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(n2){const k2=A[n2[0].dataIndex];return`${k2.label}
数量:${V0(k2.value)}头
占比:${sn(k2.value/M*100)}
同比:${k2.yoy>0?"+":""}${k2.yoy}%`}}),grid:{left:36,right:30,top:20,bottom:34},xAxis:{type:"category",data:A.map(n2=>n2.label),axisLabel:{color:f,fontSize:10,fontWeight:700,interval:0,margin:10},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:F,fontSize:10,formatter:ye},splitLine:{lineStyle:{color:z,type:"dashed"}}},{type:"value",min:Math.min(-2,Math.floor(Math.min(...R)-1)),max:Math.max(8,Math.ceil(Math.max(...R)+1)),axisLabel:{color:C,fontSize:10,formatter:"{value}%"},splitLine:{show:!1},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:16,data:A.map((n2,k2)=>({value:n2.value,itemStyle:{borderRadius:[8,8,2,2],color:new ut(0,0,0,1,[{offset:0,color:n2.color},{offset:.72,color:`${n2.color}cc`},{offset:1,color:`${n2.color}18`}]),shadowBlur:k2===0?4:2,shadowColor:"rgba(48, 220, 255, 0.16)"},label:{show:!0,position:"top",color:g,fontSize:10,fontFamily:fs.number,fontWeight:700,formatter:({value:X})=>ye(X)}}))},{name:"同比",type:"line",yAxisIndex:1,smooth:!0,symbol:"circle",symbolSize:6,data:R,lineStyle:{width:2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2},label:{show:!0,position:"top",color:"#8bf7ff",fontSize:10,formatter:({value:n2})=>`${n2>0?"+":""}${n2}%`}}]}}),C2=r2(()=>{const A=h7(N3.value),M=h4(w1.value,A.key),R=oo(M),n2=m4(R.length,A.key);return{color:["#30dcff","#8bf7ff","#48cfff"],tooltip:t3(B2({},ot()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(k2){var Q3,f1,a0;const X=Array.isArray(k2)?k2:[k2],M2=X.find(e0=>e0.seriesType==="candlestick"),I2=(M2==null?void 0:M2.data)||R[(a0=(f1=M2==null?void 0:M2.dataIndex)!=null?f1:(Q3=X[0])==null?void 0:Q3.dataIndex)!=null?a0:0];if(!I2)return"";const I3=I2.close-I2.open;return[`${I2.label}|${A.unit}度预测`,`预测存栏:${V0(I2.close)}头`,`较上期:${o9(I3)}头`,`新生牛犊:${V0(I2.birth)}头`,`出栏扣减:${V0(I2.outflow)}头`].join("
")}}),legend:{top:4,right:8,data:["预测存栏","新生牛犊","出栏扣减"],itemWidth:12,itemHeight:8,textStyle:{color:C,fontSize:10}},grid:{left:44,right:40,top:34,bottom:28},xAxis:{type:"category",boundaryGap:!0,data:M.labels,axisLabel:{color:F,fontSize:10,interval:n2},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:F,fontSize:10,formatter:ye},splitLine:{lineStyle:{color:z,type:"dashed"}}},{type:"value",axisLabel:{color:C,fontSize:10,formatter:ye},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:m7(R.length,A.key),data:R,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.4}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:4,data:R.map(k2=>k2.close),lineStyle:{width:1.8,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:1},tooltip:{show:!1}},f4("新生牛犊",M.births,"#8bf7ff",1),f4("出栏扣减",M.outflow,"#48cfff",1)]}}),m2=r2(()=>({color:["#30dcff","#8bf7ff"],tooltip:t3(B2({},ot()),{trigger:"axis"}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:C,fontSize:10}},grid:{left:52,right:42,top:34,bottom:28},xAxis:{type:"category",data:a2.value.map(A=>A.month||A.name),axisLabel:{color:F,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:F,fontSize:10,formatter:A=>{const M=Number(A);return Number.isFinite(M)?Math.abs(M)>=1e4?`${Number((M/1e4).toFixed(1))}万`:`${M}`:A}},splitLine:{lineStyle:{color:z,type:"dashed"}}},{type:"value",axisLabel:{color:C,fontSize:10},splitLine:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:12,data:a2.value.map(A=>A.count||A.value),itemStyle:{borderRadius:[8,8,0,0],color:new ut(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"增速",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:a2.value.map(A=>A.speed||A.growthRate||0),lineStyle:{width:2.4,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff"}}]})),T3=r2(()=>({tooltip:ot(),radar:{center:["50%","54%"],radius:"68%",splitNumber:4,indicator:gh.map(A=>({name:A.name,max:100})),axisName:{color:"rgba(223, 250, 255, 0.76)",fontSize:11},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},splitArea:{areaStyle:{color:["rgba(48, 220, 255, 0.04)","rgba(139, 247, 255, 0.018)"]}},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.18)"}}},series:[{type:"radar",data:[{name:"预测因子",value:gh.map(A=>A.value),areaStyle:{color:"rgba(48, 220, 255, 0.22)"},lineStyle:{color:"#30dcff",width:2},itemStyle:{color:"#8bf7ff"}}]}]})),x3=r2(()=>x6(e2.value,"forecast","头")),K3=r2(()=>{const A=s2.value,M=A.reduce((R,n2,k2)=>{const X=n2.color||S2[k2%S2.length];return R[`name${k2}`]={color:X,fontSize:10,fontWeight:800},R[`percent${k2}`]={color:X,fontSize:10,fontFamily:"D-DIN, Arial, sans-serif",fontWeight:800},R},{});return{color:S2,tooltip:ot(R=>{var k2;const n2=A.find(X=>X.name===R.name);return`${R.name}
预测占比:${sn((k2=n2==null?void 0:n2.ratio)!=null?k2:R.percent)}
预测数量:${V0((n2==null?void 0:n2.count)||0)}头`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,formatter(R){const n2=A.findIndex(X=>X.name===R),k2=A[n2];return k2?`{name${n2}|${R}} {percent${n2}|${sn(k2.ratio)}}`:R},textStyle:{color:C,fontSize:10,rich:M}},series:[{name:"期末结构预测",type:"pie",radius:["38%","66%"],center:["32%","54%"],startAngle:118,avoidLabelOverlap:!1,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:A.map(R=>({name:R.name,value:R.count}))}]}}),v1=r2(()=>({color:["#8bf7ff","#48cfff","#48cfff"],tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:{top:4,right:8,itemWidth:12,itemHeight:8,textStyle:{color:C,fontSize:10}},grid:{left:44,right:26,top:34,bottom:28},xAxis:{type:"category",data:gn.map(A=>A.shortLabel),axisLabel:{color:f,fontSize:11,fontWeight:700},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:F,fontSize:10,formatter:A=>j9(A,1)},splitLine:{lineStyle:{color:z,type:"dashed"}}},series:[{name:"新生牛犊",type:"bar",barWidth:12,data:gn.map(A=>A.births),itemStyle:{borderRadius:[7,7,0,0]}},{name:"出栏流出",type:"bar",barWidth:12,data:gn.map(A=>-A.outflow),itemStyle:{borderRadius:[0,0,7,7]}},{name:"稳态校正",type:"line",smooth:!0,symbolSize:6,data:gn.map(A=>A.correction),lineStyle:{width:2.4}}]})),Q1=r2(()=>{const A=e2.value,M=Math.max(...A.map(R=>Math.abs(R.change)),1);return A.map(R=>t3(B2({},R),{width:Math.max(8,Math.round(Math.abs(R.change)/M*100))}))});function L1(A){const M=Number((A==null?void 0:A.change)||0)>=0;return{"--heat-width":`${A.width}%`,"--heat-color":M?"#30dcff":"#8bf7ff","--heat-color-soft":M?"rgba(48, 220, 255, 0.24)":"rgba(139, 247, 255, 0.22)","--heat-color-dim":M?"rgba(48, 220, 255, 0.07)":"rgba(139, 247, 255, 0.07)"}}function n0(A){return`${A.name}:${o9(A.change)}头`}const K0=r2(()=>{const A=H.value,M=A.map(n2=>n2.value),R=Math.max(...M,1);return{color:["#30dcff","#8bf7ff"],tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},formatter(n2){const k2=n2[0];return`${k2.name}
防疫记录:${V0(k2.value)}条`}}),grid:{left:42,right:24,top:20,bottom:28},xAxis:{type:"category",data:A.map(n2=>n2.name),axisLabel:{color:F,fontSize:10,interval:Math.max(Math.floor(A.length/7),0)},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:F,fontSize:10,formatter:ye},splitLine:{lineStyle:{color:z,type:"dashed"}}},series:[{name:"防疫记录",type:"bar",barMaxWidth:12,data:M,itemStyle:{borderRadius:[7,7,0,0],color:new ut(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.92)",fontSize:10,formatter:({value:n2})=>n2>=R*.42?ye(n2):""}},{name:"作业趋势",type:"line",smooth:!0,showSymbol:!1,data:M,lineStyle:{width:2.4,color:"#8bf7ff"}}]}});r2(()=>{const A=H.value.length?H.value.slice(-6):[{name:"待开展",value:0}],M=A.map(M2=>Number(M2.value||0)),R=I1.value,n2=R.map(M2=>Number(M2.value||0)),k2=Math.max(...M,1),X=M2=>String(M2||"").replace(/(镇|乡|村)$/,"");return{color:["#30dcff","#8bf7ff"],title:[{text:"作业节奏",left:4,top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}},{text:"补免关注",left:"55%",top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}}],tooltip:t3(B2({},ot()),{trigger:"axis",formatter(M2){const I2=Array.isArray(M2)?M2[0]:M2;if((I2==null?void 0:I2.axisIndex)===1){const Q3=R[I2.dataIndex]||{};return`${Q3.name}
补免关注:${Q3.label||I2.value}`}const I3=A[I2.dataIndex]||{};return`${I3.name}
防疫记录:${V0(I3.value)}条`}}),grid:[{left:6,right:"52%",top:26,bottom:15},{left:"56%",right:12,top:26,bottom:15}],xAxis:[{type:"category",gridIndex:0,data:A.map(M2=>M2.name),axisLabel:{color:"rgba(226, 252, 255, 0.56)",fontSize:9,interval:0,formatter:M2=>String(M2||"").replace(/^(\d{1,2})\D+(\d{1,2}).*$/,"$1/$2")},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},{type:"value",gridIndex:1,min:0,max:Math.max(...n2,100),show:!1}],yAxis:[{type:"value",gridIndex:0,show:!1},{type:"category",gridIndex:1,inverse:!0,data:R.map(M2=>M2.name),axisLabel:{color:"rgba(226, 252, 255, 0.68)",fontSize:9,formatter:M2=>X(M2)},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"防疫记录",type:"bar",xAxisIndex:0,yAxisIndex:0,barMaxWidth:9,data:M,itemStyle:{borderRadius:[6,6,0,0],color:new ut(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.1)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.86)",fontSize:8,formatter:({value:M2})=>M2>=k2*.55?ye(M2):""}},{name:"节奏线",type:"line",xAxisIndex:0,yAxisIndex:0,smooth:!0,showSymbol:!1,data:M,lineStyle:{width:1.8,color:"#8bf7ff"},tooltip:{show:!1}},{name:"补免关注",type:"bar",xAxisIndex:1,yAxisIndex:1,barWidth:8,data:n2,itemStyle:{borderRadius:[0,7,7,0],color:new ut(0,0,1,0,[{offset:0,color:"rgba(139, 247, 255, 0.24)"},{offset:1,color:"#8bf7ff"}])},label:{show:!0,position:"right",color:"rgba(201, 251, 255, 0.9)",fontSize:8,formatter:({dataIndex:M2})=>{var I2;return((I2=R[M2])==null?void 0:I2.label)||""}}}]}}),r2(()=>{const A=$1.value,M=A.map(X=>Number(X.value||0)),R=Math.max(...M,1),n2=M.filter(Boolean).reduce((X,M2)=>X+M2,0)/Math.max(M.filter(Boolean).length,1),k2=Math.ceil(R*1.18);return{color:["#30dcff","#8bf7ff"],tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(X){var I2;const M2=A[(I2=X[0])==null?void 0:I2.dataIndex]||{};return M2.isMissing?`${M2.name}
年度防疫:待补强`:`${M2.name}
覆盖量:${V0(M2.value)}头
防疫记录:${V0(M2.recordCount)}条`}}),grid:{left:56,right:46,top:16,bottom:12},xAxis:{type:"value",min:0,max:k2,show:!1},yAxis:{type:"category",inverse:!0,data:A.map(X=>X.name),axisLabel:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,interval:0,formatter:X=>String(X||"").replace(/(镇|乡)$/,"")},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"均衡参照",type:"bar",barWidth:11,silent:!0,barGap:"-100%",data:A.map(()=>k2),itemStyle:{borderRadius:[0,8,8,0],borderColor:"rgba(48, 220, 255, 0.12)",borderWidth:1,color:"rgba(48, 220, 255, 0.045)"}},{name:"覆盖量",type:"bar",barWidth:11,barGap:"-100%",z:3,data:A.map(X=>{const M2=Number(X.value||0);return{value:M2>0?M2:Math.max(k2*.035,1),rawValue:M2,itemStyle:{borderRadius:[0,8,8,0],color:new ut(0,0,1,0,[{offset:0,color:X.isMissing?"rgba(72, 207, 255, 0.2)":"rgba(48, 220, 255, 0.14)"},{offset:.72,color:X.isMissing?"#48cfff":"#30dcff"},{offset:1,color:X.isMissing?"#8bf7ff":"#9efcff"}]),shadowBlur:X.isMissing?4:5,shadowColor:X.isMissing?"rgba(72, 207, 255, 0.18)":"rgba(48, 220, 255, 0.16)"}}}),label:{show:!0,position:"right",color:"rgba(239, 255, 255, 0.92)",fontSize:11,fontWeight:800,formatter:({dataIndex:X})=>{const M2=A[X]||{};return M2.isMissing?"待补强":`${ye(M2.value)}头`}},markLine:n2>0?{symbol:"none",silent:!0,lineStyle:{color:"rgba(139, 247, 255, 0.46)",type:"dashed",width:1},label:{color:"rgba(201, 251, 255, 0.8)",fontSize:10,formatter:"均衡线"},data:[{xAxis:n2}]}:void 0}]}}),r2(()=>{const A=W1.value,M=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff","#40b8ff","#8bf7ff"],R=A.length?A.map((n2,k2)=>({name:String(n2.name||"").replace(/(村|社区|牧委会)$/,""),value:Math.max(Number(n2.value||0),1),rawValue:Number(n2.value||0),town:n2.town||"",itemStyle:{color:new ut(0,0,1,1,[{offset:0,color:M[k2%M.length]},{offset:1,color:"rgba(17, 70, 92, 0.38)"}])}})):[{name:"待形成",value:1,rawValue:0,town:"",itemStyle:{color:"rgba(48, 220, 255, 0.14)"}}];return{tooltip:t3(B2({},ot()),{formatter(n2){const k2=n2.data||{};return k2.rawValue?`${k2.town?`${k2.town} `:""}${k2.name}
覆盖量:${V0(k2.rawValue)}头`:`${k2.name}
暂无村级覆盖量`}}),series:[{type:"treemap",roam:!1,nodeClick:!1,breadcrumb:{show:!1},left:6,right:6,top:7,bottom:5,visibleMin:1,data:R,label:{show:!0,color:"rgba(235, 254, 255, 0.9)",fontSize:10,fontWeight:800,lineHeight:14,formatter(n2){var X;const k2=Number(((X=n2.data)==null?void 0:X.rawValue)||0);return k2?`${n2.name} -${ye(k2)}头`:n2.name}},upperLabel:{show:!1},itemStyle:{borderColor:"rgba(4, 24, 36, 0.88)",borderWidth:2,gapWidth:2},emphasis:{label:{color:"#ffffff"},itemStyle:{shadowBlur:6,shadowColor:"rgba(48, 220, 255, 0.18)"}},levels:[{itemStyle:{borderColor:"rgba(14, 75, 98, 0.72)",borderWidth:1,gapWidth:2}}]}]}});const U=r2(()=>{const A=q2.value,M=A.length>8?10:12,R=M+8,n2=A.map(Q3=>Number(Q3.recordCount||0)),k2=A.map(Q3=>Number(Q3.earTagCount||0)),X=Math.max(...n2,1),M2=A.map(()=>Math.ceil(X*1.08)),I2=new ut(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.18)"},{offset:.48,color:"rgba(48, 220, 255, 0.06)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}]),I3=new ut(0,0,0,1,[{offset:0,color:"#31f7ff"},{offset:.36,color:"#1cbcff"},{offset:1,color:"#266dff"}]);return{color:["#31f7ff","#8bf7ff"],title:{text:`台账总量:{value|${ye(T.value)}条}`,right:0,top:0,textStyle:{color:"#fff",fontSize:12,fontWeight:500,rich:{value:{color:"#22f1ff",borderColor:"#14bdf4",borderWidth:1,borderRadius:2,padding:[2,6,3,6],fontSize:12,fontWeight:700}}}},tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(Q3){const f1=A[Q3[0].dataIndex];return[`${f1.name}`,`防疫记录:${V0(f1.recordCount)}条`,`耳标数量:${V0(f1.earTagCount)}头`,"数据来源:防疫台账"].join("
")}}),legend:[{data:["防疫记录"],top:0,left:0,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:f,fontSize:11},selectedMode:!1},{data:["耳标数"],top:0,left:82,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:f,fontSize:11},selectedMode:!1}],grid:{left:42,right:12,top:46,bottom:68},xAxis:{type:"category",data:A.map(Q3=>Q3.name),axisLabel:{color:f,fontSize:10,interval:0,lineHeight:11,margin:8,formatter:Q8},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},yAxis:{type:"value",name:"数量/条",max:Math.ceil(X*1.2),nameTextStyle:{color:F,fontSize:10,align:"left"},axisLabel:{color:F,fontSize:10,formatter:ye},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:z,type:"dashed"}}},series:[{name:"统计底柱",type:"bar",barWidth:R,barGap:"-100%",data:M2,tooltip:{show:!1},silent:!0,z:1,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(48, 220, 255, 0.22)",borderWidth:1,color:I2}},{name:"防疫记录",type:"bar",barGap:"-100%",barWidth:M,barMinHeight:2,z:3,data:n2.map(Q3=>({value:Q3,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(200, 252, 255, 0.22)",borderWidth:1,color:I3,shadowBlur:10,shadowColor:"rgba(49, 247, 255, 0.28)"}}))},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[M+7,5],symbolOffset:[0,-3],symbolPosition:"end",z:8,tooltip:{show:!1},data:n2.map(Q3=>({value:Q3,itemStyle:{color:"rgba(207, 252, 255, 0.88)",shadowBlur:8,shadowColor:"rgba(49, 247, 255, 0.72)"}}))},{name:"底座光影",type:"pictorialBar",symbol:"diamond",symbolSize:[R+3,5],symbolOffset:[0,3],z:2,tooltip:{show:!1},data:n2,itemStyle:{color:"rgba(48, 220, 255, 0.24)",shadowBlur:10,shadowColor:"rgba(48, 220, 255, 0.45)"}},{name:"耳标数",type:"line",smooth:!0,showSymbol:!1,z:9,data:k2,lineStyle:{width:1.6,color:"#8bf7ff",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:"#8bf7ff"}}]}}),t2=r2(()=>{const A=f2.value;return{tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(M){const R=A[M[0].dataIndex];return`${R.name}
防疫记录:${V0(R.value)}条`}}),grid:{left:74,right:42,top:12,bottom:8},xAxis:{type:"value",axisLabel:{color:F,fontSize:10,formatter:ye},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:z,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:A.map(M=>M.name),axisLabel:{color:f,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"记录",type:"bar",barWidth:9,data:A.map((M,R)=>({value:M.value,itemStyle:{borderRadius:[0,8,8,0],color:new ut(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.12)"},{offset:.62,color:["#30dcff","#8bf7ff","#58d9ff"][R%3]},{offset:1,color:"#ffffff"}])}})),label:{show:!0,position:"right",color:"#eaffff",fontSize:10,formatter:({value:M})=>ye(M)}},{type:"scatter",symbolSize:7,data:A.map(M=>M.value),itemStyle:{color:"#8bf7ff",shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}]}}),N2=r2(()=>{const A=Ve.value;return{color:["#30dcff","#8bf7ff"],tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(M){const R=M.find(k2=>k2.seriesName==="流通头数"),n2=M.find(k2=>k2.seriesName==="出证记录");return`${(R==null?void 0:R.axisValue)||""}
流通头数:${V0((R==null?void 0:R.value)||0)}头
出证记录:${V0((n2==null?void 0:n2.value)||0)}条`}}),legend:{top:4,right:10,itemWidth:12,itemHeight:8,textStyle:{color:C,fontSize:10}},grid:{left:42,right:38,top:34,bottom:28},xAxis:{type:"category",data:A.map(M=>M.name),axisLabel:{color:F,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:F,fontSize:10,formatter:ye},splitLine:{lineStyle:{color:z,type:"dashed"}}},{type:"value",axisLabel:{color:C,fontSize:10,formatter:ye},splitLine:{show:!1}}],series:[{name:"流通头数",type:"bar",barMaxWidth:13,data:A.map(M=>M.headCount),itemStyle:{borderRadius:[7,7,0,0],color:new ut(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"出证记录",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:A.map(M=>M.recordCount),lineStyle:{width:2.2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2}}]}}),Y2=r2(()=>x6(se.value.slice(0,10),"headCount","头",{colors:X2,style:"ladder",axisTextColor:"rgba(255, 255, 255, 0.88)",dimAxisTextColor:"rgba(255, 255, 255, 0.74)",tooltipFormatter(A){const M=se.value[A.dataIndex];return`${M.name}
流通头数:${V0(M.headCount)}头
出证记录:${V0(M.recordCount)}条`}})),g3=r2(()=>{const A=Le.value;return{color:X2,tooltip:ot(M=>{const R=A.find(n2=>n2.name===M.name);return`${M.name}
占比:${M.percent}%
流通头数:${V0(M.value)}头
出证记录:${V0((R==null?void 0:R.recordCount)||0)}条`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,textStyle:{color:C,fontSize:10},formatter(M){const R=A.find(n2=>n2.name===M);return R?`${M} ${ye(R.headCount)}头`:M}},series:[{name:"用途结构",type:"pie",radius:["38%","64%"],center:["32%","54%"],startAngle:110,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:A.map(M=>({name:M.name,value:M.headCount}))}]}}),W3=r2(()=>{const A=[{name:"省外A证",value:Pt("outProvinceHeads","aCertHeads")},{name:"省内B证",value:Pt("inProvinceHeads","bCertHeads")}];return{color:["#8bf7ff","#30dcff"],tooltip:ot(M=>`${M.name}
流通头数:${V0(M.value)}头
占比:${M.percent}%`),series:[{type:"pie",radius:["48%","72%"],center:["50%","52%"],label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:A}]}});function l1(){o.value=typeof window=="undefined"?1080:window.innerHeight}function c1(){var A,M,R,n2,k2,X;if(T2.value){(M=(A=Y0.value)==null?void 0:A.refreshView)==null||M.call(A);return}(n2=(R=Z1.value)==null?void 0:R.resume)==null||n2.call(R),(X=(k2=Z1.value)==null?void 0:k2.refreshView)==null||X.call(k2)}function z1(){$3&&(window.clearTimeout($3),$3=null)}function w0(){var A,M,R,n2,k2,X;if(M3.value={type:"loading",text:"地图正在复位"},d2.value={type:"idle",text:""},T2.value){(M=(A=Y0.value)==null?void 0:A.hasMap)!=null&&M.call(A)?(de.value=!0,(n2=(R=Y0.value)==null?void 0:R.resetView)==null||n2.call(R)):(de.value=!1,H1.value+=1,ae(()=>{window.setTimeout(()=>{var M2,I2;return(I2=(M2=Y0.value)==null?void 0:M2.refreshView)==null?void 0:I2.call(M2)},160)}));return}if((X=(k2=Z1.value)==null?void 0:k2.hasMap)!=null&&X.call(k2)){d0.value=!0,c1();return}z1(),d0.value=!1,d3=!1,Re.value+=1,ae(()=>{V6()})}e({refreshMapView:c1,resetMap:w0,setActiveView(A){l3.value=O9(A)}}),jn(()=>{l1(),window.addEventListener("resize",l1),ao(),no(),Ut(),n4(),K1(),Z0()}),On(()=>{var A,M;X3=!0,window.removeEventListener("resize",l1),$3&&window.clearTimeout($3),j0(),St(),(M=(A=Z1.value)==null?void 0:A.destroyMap)==null||M.call(A)}),ie([l3,w1,k,Z2,T,a1,S0,y0],()=>{U9()},{immediate:!0}),ie(l3,(A,M)=>{i("view-change",A);const R=A==="structure"||A==="forecast",n2=M==="structure"||M==="forecast",k2=!R&&!n2&&(A==="trade"||M==="trade");R&&!n2&&(de.value=!1,M3.value={type:"idle",text:""},d2.value={type:"idle",text:""}),!R&&n2&&(z1(),d0.value=!1,d3=!1,M3.value={type:"idle",text:""},d2.value={type:"idle",text:""},ae(()=>{var X,M2,I2,I3;V6(),(M2=(X=Z1.value)==null?void 0:X.resume)==null||M2.call(X),(I3=(I2=Z1.value)==null?void 0:I2.refreshView)==null||I3.call(I2),window.setTimeout(()=>{var Q3,f1;return(f1=(Q3=Z1.value)==null?void 0:Q3.refreshView)==null?void 0:f1.call(Q3)},180)})),k2&&(z1(),d0.value=!1,d3=!1,M3.value={type:"idle",text:""},d2.value={type:"idle",text:""},ae(()=>{V6()})),K1(),Z0()}),ie(()=>a.viewKey,A=>{const M=O9(A);M!==l3.value&&(l3.value=M)}),ie(()=>a.active,A=>{var M,R,n2,k2;A?(V6(),(R=(M=Z1.value)==null?void 0:M.resume)==null||R.call(M),K1(),Z0()):((k2=(n2=Z1.value)==null?void 0:n2.pause)==null||k2.call(n2),j0(),St())}),ie(o3,A=>{_3.value>=A.pageCount&&(_3.value=0),Z0()});function A0(A){A!==b3.value&&(b3.value=A,K1())}function K1(){j0(),!(!a.active||l3.value!=="forecast"||X3)&&(P2=window.setInterval($0,DW))}function $0(){const A=gn.findIndex(R=>R.key===b3.value),M=A>=0?(A+1)%gn.length:0;b3.value=gn[M].key}function j0(){P2&&(window.clearInterval(P2),P2=null)}function Z0(){St(),!(!a.active||l3.value!=="structure"||X3||o3.value.pageCount<=1)&&(n3=window.setInterval(Xe,GW))}function Xe(){const A=o3.value.pageCount;A<=1||(_3.value=(_3.value+1)%A)}function St(){n3&&(window.clearInterval(n3),n3=null)}function w5(A=[],M=[]){const R=new Map;return M.forEach(n2=>{const k2=En(n2.name);k2&&R.set(k2,t3(B2({},n2),{name:k2,count:Number(n2.count||0)}))}),A.forEach(n2=>{const k2=En(n2.name);if(!k2)return;const X=R.get(k2)||{};R.set(k2,t3(B2(B2({},X),n2),{name:k2,count:Number.isFinite(Number(n2.count))?Number(n2.count):Number(X.count||0)}))}),[...R.values()].sort((n2,k2)=>Number(k2.count||0)-Number(n2.count||0))}function En(A){return A||""}function et(A){return String(A||"").trim()}function rt(A){const M=Number(A);return Number.isFinite(M)&&j1.includes(M)?M:j1[j1.length-1]}function r6(A=a1.value){const M=rt(A);return{startDate:`${M}-01-01`,endDate:`${M}-12-31`}}function o6(){return{keyword:"",town:"",medicine:"",startDate:"",endDate:""}}function Ht(A=[]){return Array.isArray(A)?A.map((M,R)=>{var n2,k2,X;return{key:M.key||M.id||`${M.name||M.label||"item"}-${R}`,name:String(M.name||M.label||M.town||M.village||"未填写"),value:Number((X=(k2=(n2=M.value)!=null?n2:M.count)!=null?k2:M.total)!=null?X:0)}}).filter(M=>M.name&&Number.isFinite(M.value)):[]}function L9(A={}){const M=Ht(A==null?void 0:A.medicineCounts);return Math.max(M.filter(R=>R.name!=="未填写").length,1)}function K8(...A){const M=A.flatMap(R=>Array.isArray(R)?R:[R]).map(R=>{var n2,k2,X;return R&&typeof R=="object"?(X=(k2=(n2=R.year)!=null?n2:R.value)!=null?k2:R.latestYear)!=null?X:R.latest_year:R}).map(Number).filter(R=>Number.isFinite(R)&&R>0);return[...new Set(M)].sort((R,n2)=>R-n2)}function Z5(A=[],M="name"){return Array.isArray(A)?A.map((R,n2)=>{var k2,X,M2,I2,I3,Q3,f1,a0,e0,b0,he,Ne,Ot,C5,Ce,bt,M6;return{key:R.key||R.id||`${R[M]||R.name||R.label||"trade"}-${n2}`,name:String(R[M]||R.name||R.label||R.town||"未填写"),recordCount:Number((M2=(X=(k2=R.recordCount)!=null?k2:R.record_count)!=null?X:R.count)!=null?M2:0),headCount:Number((f1=(Q3=(I3=(I2=R.headCount)!=null?I2:R.head_count)!=null?I3:R.amount)!=null?Q3:R.value)!=null?f1:0),lng:on((Ne=(he=(b0=(e0=(a0=R.lng)!=null?a0:R.longitude)!=null?e0:R.destLng)!=null?b0:R.dest_lng)!=null?he:R.destLongitude)!=null?Ne:R.dest_longitude),lat:on((M6=(bt=(Ce=(C5=(Ot=R.lat)!=null?Ot:R.latitude)!=null?C5:R.destLat)!=null?Ce:R.dest_lat)!=null?bt:R.destLatitude)!=null?M6:R.dest_latitude)}}).filter(R=>R.name&&Number.isFinite(R.headCount)):[]}function qa(A=[]){return Array.isArray(A)?A.map(M=>{var R,n2,k2,X,M2,I2;return{year:Number(M.year),recordCount:Number((n2=(R=M.recordCount)!=null?R:M.record_count)!=null?n2:0),headCount:Number((I2=(M2=(X=(k2=M.headCount)!=null?k2:M.head_count)!=null?X:M.amount)!=null?M2:M.value)!=null?I2:0)}}).filter(M=>Number.isFinite(M.year)&&Number.isFinite(M.headCount)):[]}function X5(A=[]){return Array.isArray(A)?I9(A.map(M=>{var R,n2,k2;return M&&typeof M=="object"?(k2=(n2=(R=M.value)!=null?R:M.label)!=null?n2:M.name)!=null?k2:"":M})):[]}function $r(A=[]){return Array.isArray(A)?A.map(M=>{var R,n2,k2,X,M2,I2;if(M&&typeof M=="object"){const I3=(k2=(n2=(R=M.value)!=null?R:M.name)!=null?n2:M.label)!=null?k2:"",Q3=(I2=(M2=(X=M.label)!=null?X:M.name)!=null?M2:M.value)!=null?I2:I3;return I3?{value:String(I3),label:String(Q3||I3)}:null}return M?{value:String(M),label:String(M)}:null}).filter(Boolean):[]}function I9(A=[]){return[...new Set(A.map(M=>String(M||"").trim()).filter(Boolean))]}function F9(A=[]){if(!Array.isArray(A))return[];const M=new Map;A.forEach((n2,k2)=>{var Q3,f1,a0,e0,b0,he;const X=et(n2.name||n2.areaName||n2.area_name||n2.town||n2.label||"");if(!X)return;const M2=on((a0=(f1=(Q3=n2.value)!=null?Q3:n2.number)!=null?f1:n2.count)!=null?a0:n2.total);if(!Number.isFinite(M2))return;const I2=M.get(X)||{key:n2.areaCode||n2.area_code||`${X}-${k2}`,name:X,recordCount:0,earTagCount:0,source:"stats"};I2.recordCount+=M2;const I3=on((he=(b0=(e0=n2.earTagCount)!=null?e0:n2.ear_tag_count)!=null?b0:n2.headCount)!=null?he:n2.head_count);I2.earTagCount+=Number.isFinite(I3)?I3:0,M.set(X,I2)});const R=[...M.values()].reduce((n2,k2)=>n2+Number(k2.recordCount||0),0);return[...M.values()].map(n2=>t3(B2({},n2),{earTagCount:n2.earTagCount||Math.round(Number(n2.recordCount||0)/O2.value),ratio:R?Number(n2.recordCount||0)/R*100:0})).sort((n2,k2)=>Number(k2.recordCount||0)-Number(n2.recordCount||0))}function Ja(A={}){var k2,X;const M=Array.isArray(A)?{rows:A}:A||{},R=M.result||{};return{rows:M.rows||M.data||M.list||M.records||[],year:(X=(k2=M.year)!=null?k2:R.year)!=null?X:null}}function q8(A=[]){return Array.isArray(A)?A.map((M,R)=>{var a0,e0,b0,he,Ne,Ot,C5,Ce,bt,M6,Se,v7;const n2=et(M.town||M.townName||M.town_name||""),k2=String(M.village||M.villageName||M.village_name||M.name||"").trim(),X=on((b0=(e0=(a0=M.recordCount)!=null?a0:M.record_count)!=null?e0:M.records)!=null?b0:M.total),M2=on((C5=(Ot=(Ne=(he=M.earTagCount)!=null?he:M.ear_tag_count)!=null?Ne:M.headCount)!=null?Ot:M.head_count)!=null?C5:M.value),I2=on((bt=(Ce=M.imageCount)!=null?Ce:M.image_count)!=null?bt:M.images),I3=on((M6=M.imageRate)!=null?M6:M.image_rate),Q3=on((Se=M.lng)!=null?Se:M.longitude),f1=on((v7=M.lat)!=null?v7:M.latitude);return{key:M.key||M.id||`${n2}-${k2}-${R}`,town:n2,village:k2,recordCount:Number.isFinite(X)?X:0,earTagCount:Number.isFinite(M2)?M2:0,imageCount:Number.isFinite(I2)?I2:0,imageRate:Number.isFinite(I3)?I3:0,lng:Q3,lat:f1}}).filter(M=>M.town&&M.village&&Number.isFinite(M.earTagCount)).sort((M,R)=>Number(R.earTagCount||0)-Number(M.earTagCount||0)):[]}function Qa(A={},M={}){const R=Array.isArray(M)?{rows:M}:M||{},n2=R.result||{},k2=q8(R.rows||R.data||R.list||R.records||n2.rows||[]),X=new Map;k2.forEach(f1=>{J8(f1.village).forEach(a0=>{X.has(a0)||X.set(a0,f1)})});const M2=Ht(A==null?void 0:A.townCounts),I2=M2.length===1?et(M2[0].name):"",I3=L9(A),Q3=Ht(A==null?void 0:A.villageCounts).map((f1,a0)=>{const e0=String(f1.name||"").trim(),b0=J8(e0).map(Ne=>X.get(Ne)).find(Boolean)||{},he=Number(f1.value||0);return{key:b0.key||`${b0.town||I2||"防疫"}-${e0}-${a0}`,town:b0.town||I2,village:e0,recordCount:he,earTagCount:Math.round(he/I3),imageCount:b0.imageCount||0,imageRate:b0.imageRate||0,lng:b0.lng,lat:b0.lat}}).filter(f1=>f1.village&&f1.recordCount>0);return t3(B2({},R),{rows:Q3})}function J8(A){const M=String(A||"").trim(),R=M.replace(/(村|社区|牧委会)$/,"");return[...new Set([M,R].filter(Boolean))]}function on(A){if(A==null||A==="")return NaN;const M=Number(String(A).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(M)?M:NaN}function Za(A){return String(A||"").replace(/'/g,"''").replace(/%/g,"\\%").replace(/_/g,"\\_")}function Xa(A,M){const R=et(A),n2=String(M||"").trim();if(!R||!n2)return"";const k2=`${R}${n2}`,X=Za(k2),M2=Za(n2);return`(full_name LIKE '%${X}%' OR name = '${X}' OR name = '${M2}')`}function Q8(A){const M=String(A||"").trim().replace(/\s+/g,"");return M?Array.from(M).join(` -`):""}function Z8(A){const M=String(A||"").trim();if(!M)return"";const R=M.match(/^(.+)(镇|乡|村)$/);return R?`${R[1]} -${R[2]}`:M}function b5(A,M){return X8(A.name)-X8(M.name)}function X8(A){const M=String(A||"").match(/(\d{1,2})\D+(\d{1,2})/);return M?Number(M[1])*100+Number(M[2]):Number.MAX_SAFE_INTEGER}function B9(A=[]){return Array.isArray(A)?A.map(e7).filter(Boolean):[]}function e7(A){return A?{epidemicId:A.epidemicId||A.epidemic_id||A.id||"",earTag:A.earTag||A.ear_tag||"",owner:A.owner||"",idType:A.idType||A.id_type||"",idNo:A.idNo||A.id_no||"",phone:A.phone||"",town:A.town||"",village:A.village||"",location:A.location||"",livestockType:A.livestockType||A.livestock_type||"",age:A.age||"",sex:A.sex||"",weight:A.weight||A.weightKg||A.weight_kg||"",preventionType:A.preventionType||A.prevention_type||"",method:A.method||"",medicine:A.medicine||"",dose:A.dose||"",operator:A.operator||"",operateTime:A.operateTime||A.operate_time||"",imagePaths:A.imagePaths||A.image_paths||""}:null}function e4(A=[]){return Array.isArray(A)?A.map(t7).filter(Boolean):[]}function t7(A){var M,R,n2,k2;return A?{certId:A.certId||A.cert_id||A.id||"",certType:A.certType||A.cert_type||"",certScopeName:A.certScopeName||A.cert_scope_name||"",factoryCode:A.factoryCode||A.factory_code||"",ownerName:A.ownerName||A.owner_name||"",ownerPhone:A.ownerPhone||A.owner_phone||"",transportNumber:A.transportNumber||A.transport_number||"",amount:Number((k2=(n2=(R=(M=A.amount)!=null?M:A.headCount)!=null?R:A.head_count)!=null?n2:A.value)!=null?k2:0),unitName:A.unitName||A.unit_name||"头",animalTypeName:A.animalTypeName||A.animal_type_name||"",usageTypeName:A.usageTypeName||A.usage_type_name||"",startTown:A.startTown||A.start_town||"",startRegionFullName:A.startRegionFullName||A.start_region_full_name||"",destProvince:A.destProvince||A.dest_province||"",destRegionFullName:A.destRegionFullName||A.dest_region_full_name||"",quarantineOfficerName:A.quarantineOfficerName||A.quarantine_officer_name||"",issueTime:A.issueTime||A.issue_time||"",statusName:A.statusName||A.status_name||""}:null}function e9(A,M){for(const R of M){const n2=Number(A==null?void 0:A[R]);if(Number.isFinite(n2))return n2}return 0}function Pt(...A){return e9(y0.value,A)}function n7(A=[],M=2){const R=[...new Set(A.map(n2=>String(n2||"").trim()).filter(Boolean))];return R.length?R.length<=M?R.join("、"):`${R.slice(0,M).join("、")}等${R.length}个乡镇`:"暂无"}function Wr(){const A=C1.value;if(A.length)return{name:n7(A,1),desc:"年度防疫覆盖需补强",level:"watch"};const M=P3.value.filter(n2=>Number(n2.earTagCount||n2.recordCount||0)>0).sort((n2,k2)=>Number(n2.earTagCount||n2.recordCount||0)-Number(k2.earTagCount||k2.recordCount||0)),R=M[0];return R?{name:R.name,desc:`${ye(R.earTagCount||R.recordCount)}头,建议补免回访`,level:M.length>=2?"watch":"normal"}:{name:"暂无",desc:"等待年度防疫记录形成",level:"normal"}}function Vr(){const A=C1.value;if(A.length)return A.slice(0,4).map((n2,k2)=>({key:`missing-${n2}`,name:n2,value:Math.max(25,100-k2*12),label:"待补免",level:"watch"}));const M=P3.value.filter(n2=>Number(n2.earTagCount||n2.recordCount||0)>0);if(!M.length)return[{key:"empty",name:"暂无",value:0,label:"待开展",level:"watch"}];const R=M.reduce((n2,k2)=>n2+Number(k2.earTagCount||0),0)/M.length||1;return[...M].sort((n2,k2)=>Number(n2.earTagCount||0)-Number(k2.earTagCount||0)).slice(0,4).map(n2=>{const k2=Number(n2.earTagCount||n2.recordCount||0),X=Math.max(8,Math.round((R-k2)/R*100));return{key:`weak-${n2.name}`,name:n2.name,value:Math.min(100,X),label:`${ye(k2)}头`,level:X>=35?"watch":"normal"}})}function a7(){const M=(q2.value.length?q2.value:P3.value).map((k2,X)=>{const M2=et(k2.name),I2=Number(k2.earTagCount||0),I3=Number(k2.recordCount||k2.value||0),Q3=I2||Math.round(I3/O2.value);return{key:k2.key||`${M2}-${X}`,name:M2,value:Q3,recordCount:I3,isMissing:!1}}).filter(k2=>k2.name&&Number.isFinite(k2.value)),n2=[...C1.value.map((k2,X)=>({key:`missing-${k2}-${X}`,name:k2,value:0,recordCount:0,isMissing:!0})),...M];return n2.length?n2.sort((k2,X)=>k2.isMissing!==X.isMissing?k2.isMissing?-1:1:Number(k2.value||0)-Number(X.value||0)).slice(0,7):[{key:"empty",name:"待开展",value:0,recordCount:0,isMissing:!0}]}function Hr(){var M;const A=f3.value.map((R,n2)=>({key:R.key||`${R.town}-${R.village}-${n2}`,name:R.village||R.name,town:R.town,value:Number(R.earTagCount||R.value||0)})).filter(R=>R.name&&Number.isFinite(R.value)&&R.value>0);return A.length?A.sort((R,n2)=>n2.value-R.value).slice(0,9):Ht((M=G1.value)==null?void 0:M.villageCounts).map((R,n2)=>({key:R.key||`${R.name}-${n2}`,name:R.name,town:"",value:Math.round(Number(R.value||0)/O2.value)})).filter(R=>R.name&&Number.isFinite(R.value)&&R.value>0).sort((R,n2)=>n2.value-R.value).slice(0,9)}function Kr(){if(!T.value)return{level:"watch",title:"年度待开展",desc:"年度免疫记录暂未形成",advice:"建议先核查年度免疫计划与乡镇推进节奏。"};const A=P1.value,M=x1.value;return C1.value.length?{level:"watch",title:"补免待核查",desc:`乡镇覆盖${sn(A)},${M.name}需补强`,advice:`优先核查${n7(C1.value,1)}免疫进度。`}:A>=90&&O2.value>=4?{level:"stable",title:"运行平稳",desc:`乡镇覆盖${sn(A)},疫苗谱较完整`,advice:"建议保持当前免疫节奏,持续跟踪补免回访。"}:{level:"normal",title:"均衡回访",desc:`${M.name}相对偏低,适合继续跟进`,advice:`关注${M.name}补免回访,保持覆盖均衡。`}}function qr(){return[{key:"latest",name:"最近免疫",value:D2.value,desc:"最后作业时间",level:D2.value==="-"?"watch":"stable",color:"#8bf7ff"},{key:"top-town",name:"高频乡镇",value:E2.value,desc:"年度作业集中区",level:"normal",color:"#30dcff"},{key:"vaccine",name:"主用疫苗",value:o2.value,desc:`${O2.value}类疫苗`,level:"normal",color:"#8bf7ff"}]}function Jr(){const A=Pt("headCount","totalHeads","total_heads"),M=D.value,R=M.reduce((Ce,bt)=>Ce+Number(bt.headCount||0),0)||A||1,n2=M[0],k2=n2?Number(n2.headCount||0)/R*100:0,X=Le.value.filter(Ce=>Ce.name&&Ce.name!=="未填写").sort((Ce,bt)=>Number(bt.headCount||0)-Number(Ce.headCount||0)),M2=X.reduce((Ce,bt)=>Ce+Number(bt.headCount||0),0)||A||1,I2=X[0],I3=I2?Number(I2.headCount||0)/M2*100:0,f1=g1.value.filter(Ce=>Ce.name&&Ce.name!=="未填写").sort((Ce,bt)=>Number(bt.headCount||bt.recordCount||0)-Number(Ce.headCount||Ce.recordCount||0))[0],a0=Pt("vehicleCount","vehicle_count","transportVehicleCount","transport_vehicle_count"),e0=a0>0?A/a0:0,b0=Pt("outProvinceHeads","out_province_heads","aCertHeads","a_cert_heads"),he=Pt("inProvinceHeads","in_province_heads","bCertHeads","b_cert_heads"),Ne=b0+he||A||1,Ot=b0?b0/Ne*100:0;return[{key:"town",name:"高频出栏乡镇",value:(n2==null?void 0:n2.displayName)||(n2==null?void 0:n2.name)||"暂无",desc:n2?`${ye(n2.headCount)}头,占${sn(k2)}`:"等待来源乡镇数据",level:k2>=35?"high":k2>=24?"watch":"normal",color:"#63d7ff"},{key:"usage",name:"交易用途集中度",value:(I2==null?void 0:I2.name)||"暂无",desc:I2?`占${sn(I3)}`:"等待用途结构数据",level:I3>=60?"high":I3>=45?"watch":"normal",color:"#30dcff"},{key:"vehicle",name:f1?"运输车辆高频":"车辆周转强度",value:f1?`${ye(f1.headCount||f1.recordCount)}${f1.headCount?"头":"条"}`:a0?`车均${V0(e0)}头`:"--",desc:f1?"已接入车辆聚合,明细在台账核查":a0?`${V0(a0)}辆参与流通`:"等待车辆聚合数据",level:f1||e0>=260?"watch":"normal",color:"#48cfff"},{key:"cert-dest",name:"证照/去向线索",value:b0?sn(Ot):"--",desc:b0?`省外流通${ye(b0)}头`:"等待证照去向数据",level:Ot>=55?"high":Ot>=35?"watch":"normal",color:"#48cfff"}].map(Ce=>t3(B2({},Ce),{badge:Ce.level==="high"?"重点":Ce.level==="watch"?"关注":"平稳"}))}function t9(A={}){return String(A.imagePaths||"").split(";").map(M=>M.trim()).filter(Boolean)}function i7(A){const R=String(A||"").replace(/^images\//,"").split("/").map(encodeURIComponent).join("/");return`${LW}/${R}`}function Qr(A){B1.value=i7(A),s1.value=!0}function t4(){s1.value=!1,B1.value=""}function pe(A){return A==null||A===""?"-":A}function Zr(A){const M=String(A!=null?A:"").trim();return!!(M&&M!=="-")}function W0(A,M,R={}){return Zr(M)?B2({label:A,value:M},R):null}function fe(A){return A?String(A).slice(0,10):"-"}function r7(A){const M=String(A||"").trim();return M?M.length<7?M:`${M.slice(0,3)}****${M.slice(-4)}`:"-"}function Xr(A){const M=String(A||"").trim();return M?M.length<=4?M:`****${M.slice(-4)}`:"-"}function eo(A){const M=String(A!=null?A:"").trim();if(!M)return"-";if(/kg|公斤|千克/i.test(M))return M;const R=Number(M);return Number.isFinite(R)?`${V0(R)}kg`:M}function to(A){return String(A!=null?A:"").trim()||"-"}function o7(A={}){return A.certScopeName||A.certType||"-"}function no(){return L3(this,null,function*(){var n2,k2;M1.value=!0,b1.value="";const[A,M,R]=yield Promise.allSettled([Bp(),Gp(),Dp()]);A.status==="fulfilled"&&((n2=A.value)!=null&&n2.length)&&(J3.value=lL(A.value.map(X=>({name:X.name,count:Number(X.value)})).filter(X=>X.name&&Number.isFinite(X.count)))),M.status==="fulfilled"&&((k2=M.value)!=null&&k2.length)&&(R3.value=M.value.map(X=>({month:X.name,count:Number(X.value),speed:so(X.extra)})).filter(X=>X.month&&Number.isFinite(X.count))),R.status==="fulfilled"?(Z3.value=Jt(R.value),Z3.value.length||(b1.value="结构数据暂无数据")):(b1.value=p7(R.reason,"结构数据异常"),Z3.value=[]),M1.value=!1})}function n4(){return L3(this,arguments,function*(A=S0.value){var M,R,n2,k2,X,M2;oe.value=!0,z0.value="";try{(R=(M=R1.value)==null?void 0:M.years)!=null&&R.length||(R1.value=yield UR());const I2=K8((n2=R1.value)==null?void 0:n2.years),I3=Number(((k2=R1.value)==null?void 0:k2.latestYear)||((X=R1.value)==null?void 0:X.latest_year)||I2[I2.length-1]),Q3=Number(A||S0.value||I3||I2[I2.length-1]);S0.value=Q3;let f1=yield or({year:Q3});const a0=(M2=f1==null?void 0:f1.hasData)!=null?M2:f1==null?void 0:f1.has_data,e0=Number((f1==null?void 0:f1.latestYear)||(f1==null?void 0:f1.latest_year)||I3);a0===!1&&e0&&e0!==Q3&&(S0.value=e0,f1=yield or({year:e0})),N1.value=f1||{metrics:{},hasData:!1},yield a4(1)}catch(I2){z0.value="交易数据接口异常",N1.value={metrics:{},hasData:!1},G0.value=[],T0.value=0}finally{oe.value=!1}})}function a4(){return L3(this,arguments,function*(A=P0.value){var R,n2;if(!S0.value)return;const M={year:S0.value,page:A,pageSize:qs,keyword:j2.value};try{const k2=yield mh(M);G0.value=e4(k2.rows),T0.value=Number(((R=k2.page)==null?void 0:R.totalCount)||k2.totalCount||G0.value.length||0),P0.value=Number(((n2=k2.page)==null?void 0:n2.page)||A||1)}catch(k2){z0.value=z0.value||"交易台账接口异常",G0.value=[],T0.value=0}})}function wt(A){const M=Number(A);!Number.isFinite(M)||M===Number(S0.value)||(S0.value=M,P0.value=1,x2.value="",j2.value="",n4(M))}function i4(A){const M=rt(A);M!==Number(a1.value)&&(a1.value=M,h3.value=1,O3.value="",V3.value="",A1.value=1,U1.value=o6(),Ut(M))}function _6(){j2.value=x2.value.trim(),a4(1)}function r4(A){const M=Math.min(Math.max(Number(A)||1,1),K2.value);a4(M)}function D9(A=null){H2.value=!0,A&&(F0.value=A),n9(A?P0.value:1,A)}function Kt(){H2.value=!1}function o4(){n9(1)}function s7(){O0.value={keyword:"",startTown:"",usageType:"",certType:""},n9(1)}function s4(A){const M=Math.min(Math.max(Number(A)||1,1),i1.value);n9(M)}function n9(){return L3(this,arguments,function*(A=O1.value,M=null){var k2,X;if(!S0.value)return;V1.value=!0,I0.value="";const R=O0.value,n2={year:S0.value,page:A,pageSize:vm,keyword:R.keyword.trim(),startTown:R.startTown,usageType:R.usageType,certType:R.certType};try{const M2=yield mh(n2);w3.value=e4(M2.rows),d1.value=Number(((k2=M2.page)==null?void 0:k2.totalCount)||M2.totalCount||w3.value.length||0),O1.value=Number(((X=M2.page)==null?void 0:X.page)||A||1);const I2=M?M.certId||M.factoryCode:"",I3=I2?w3.value.find(Q3=>(Q3.certId||Q3.factoryCode)===I2)||M:w3.value[0]||null;l4(I3)}catch(M2){I0.value="交易台账接口异常",w3.value=[],d1.value=0,F0.value=null}finally{V1.value=!1}})}function l4(A){F0.value=A||null}function l7(A){A!=null&&A.startTown&&(l3.value="trade",ae(()=>{var M,R,n2,k2,X,M2;(R=(M=Z1.value)==null?void 0:M.resume)==null||R.call(M),(k2=(n2=Z1.value)==null?void 0:n2.refreshView)==null||k2.call(n2),(M2=(X=Z1.value)==null?void 0:X.focusTown)==null||M2.call(X,et(A.startTown),{distanceScale:.78,duration:.8})}))}function Ut(){return L3(this,arguments,function*(A=a1.value){var I2;const M=rt(A),R=r6(M);a1.value=M,i3.value=!0,U2.value="";const[n2,k2,X,M2]=yield Promise.allSettled([OR(R),Es(B2({page:h3.value,pageSize:_i,keyword:V3.value},R)),jR({year:M}),zR()]);if(n2.status==="fulfilled"?G1.value=n2.value||{metrics:{}}:(U2.value="防疫统计接口异常",G1.value={metrics:{}}),k2.status==="fulfilled"){const I3=k2.value||{};r0.value=B9(I3.rows),q1.value=Number(((I2=I3.page)==null?void 0:I2.totalCount)||I3.totalCount||r0.value.length||0)}else U2.value=U2.value||"防疫台账接口异常",r0.value=[],q1.value=0;X.status==="fulfilled"?s0.value=Ja(X.value):s0.value={rows:[],year:null},M2.status==="fulfilled"?i0.value=Qa(G1.value,M2.value):i0.value={rows:[]},i3.value=!1})}function u7(){return L3(this,arguments,function*(A=h3.value){var n2,k2;i3.value=!0,U2.value="";const M=Math.min(Math.max(Number(A)||1,1),L2.value),R=r6(a1.value);try{const X=yield Es(B2({page:M,pageSize:_i,keyword:V3.value},R));r0.value=B9(X.rows),q1.value=Number(((n2=X.page)==null?void 0:n2.totalCount)||X.totalCount||r0.value.length||0),h3.value=Number(((k2=X.page)==null?void 0:k2.page)||M||1)}catch(X){U2.value="防疫台账接口异常",r0.value=[],q1.value=0,h3.value=1}finally{i3.value=!1}})}function qt(){V3.value=O3.value.trim(),U1.value=t3(B2({},o6()),{keyword:V3.value}),u7(1)}function c7(A){u7(A)}function u4(A=null){D3.value=!0,A&&(C3.value=A,H3.value=null),Nn(1,A)}function s6(){D3.value=!1,t4()}function a9(){Nn(1)}function c4(){U1.value=o6(),Nn(1)}function Be(A){Nn(A)}function Nn(){return L3(this,arguments,function*(A=A1.value,M=null){var X,M2;S3.value=!0,E.value="";const R=U1.value,n2=r6(a1.value),k2={keyword:R.keyword.trim(),town:R.town,medicine:R.medicine,startDate:R.startDate||n2.startDate,endDate:R.endDate||n2.endDate,page:A,pageSize:ym};try{const I2=yield Es(k2);F3.value=B9(I2.rows),u1.value=Number(((X=I2.page)==null?void 0:X.totalCount)||I2.totalCount||F3.value.length||0),A1.value=Number(((M2=I2.page)==null?void 0:M2.page)||A||1);const I3=M||F3.value[0]||null;I3?G9(I3):(C3.value=null,H3.value=null)}catch(I2){E.value="台账接口异常",F3.value=[],u1.value=0}finally{S3.value=!1}})}function G9(A){return L3(this,null,function*(){if(C3.value=A,H3.value=null,!(A!=null&&A.earTag)&&!(A!=null&&A.epidemicId))return;const M=++s3;_1.value=!0;try{const R=yield YR(A.earTag||A.epidemicId);M===s3&&(H3.value=e7(R)||A)}catch(R){M===s3&&(H3.value=A)}finally{M===s3&&(_1.value=!1)}})}function ao(){var A;$2=new Br,z3=!1,(A=$2.ready)==null||A.then(()=>{z3=!0,V6()}).catch(()=>{d0.value=!0})}function V6(){X3||!a.active||!z3||d3||(d3=!0,$3&&window.clearTimeout($3),$3=window.setTimeout(()=>{$3=null,d7()},600))}function d7(A=0){return L3(this,null,function*(){var R,n2;if(X3)return;if(!a.active){d3=!1;return}if(yield ae(),!a.active){d3=!1;return}const M=Z1.value;if((R=M==null?void 0:M.loadMap)==null||R.call(M,$2),M!=null&&M.canvasMap){d3=!1,d0.value=!0,(n2=M.play)==null||n2.call(M);return}if(A<24){window.setTimeout(()=>d7(A+1),120);return}d3=!1})}function f7(A={}){d2.value={type:A.type||"idle",text:A.text||""}}function io(){de.value=!0}function d4(A={}){M3.value={type:A.type||"idle",text:A.text||"",loaded:A.loaded,failed:A.failed,total:A.total,zoom:A.zoom,tileUrlTemplate:A.tileUrlTemplate}}function U9(){if(l3.value==="epidemic"){i("module-stats",{moduleKey:"yak-management",items:[{zh:"防疫记录",value:T.value,unit:"条"},{zh:"防疫耳标",value:Z2.value,unit:"头"},{zh:"疫苗类型",value:O2.value,unit:"类"},{zh:"涉及村数",value:j.value,unit:"个"}]});return}if(l3.value==="forecast"){const A=w1.value.stock-Mt;i("module-stats",{moduleKey:"yak-management",items:[{zh:"预测期末存栏",value:w1.value.stock,unit:"头"},{zh:"新生牛犊",value:w1.value.births,unit:"头"},{zh:"出栏流出",value:w1.value.outflow,unit:"头"},{zh:"预测净变化",value:A,unit:"头"}]});return}if(l3.value==="trade"){i("module-stats",{moduleKey:"yak-management",items:[{zh:"流通总量",value:Pt("headCount"),unit:"头"},{zh:"出证记录",value:Pt("recordCount"),unit:"条"},{zh:"运输车辆",value:Pt("vehicleCount"),unit:"辆"}]});return}i("module-stats",{moduleKey:"yak-management",items:[{zh:"图像识别总数",value:eL,unit:"头"},{zh:"模型修正总数",value:u0.value,unit:"头"},{zh:"当前存栏数量",value:Mt,unit:"头"}]})}function x6(A,M,R,n2={}){const k2=n2.labelKey||"name",X=n2.colors||S2,M2=Math.max(...A.map(b0=>Number(b0[M]||0)),1),I2=A.length>8,I3=n2.style==="ladder",Q3=I2?I3?7:6:A.length>6?11:13,f1=["#30dcff","#58d9ff","#8bf7ff","#48cfff","#16b6e8","#b9fbff"],a0=n2.axisTextColor||f,e0=n2.dimAxisTextColor||F;return{tooltip:t3(B2({},ot()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(b0){if(n2.tooltipFormatter)return n2.tooltipFormatter(b0[0]);const he=A[b0[0].dataIndex];return`${he[k2]}
数值:${V0(he[M])}${R}`}}),grid:{left:I2?58:74,right:I2?54:58,top:I2?6:16,bottom:I2?8:14},xAxis:{type:"value",axisLabel:{color:e0,fontSize:10,formatter:R==="%"?"{value}%":ye},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:z,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:A.map(b0=>b0[k2]),axisLabel:{color:a0,fontSize:I2?10:11,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{type:"bar",barWidth:Q3,barGap:"-100%",data:A.map((b0,he)=>({value:b0[M],itemStyle:{borderRadius:I3?[1,10,10,1]:[0,7,7,0],color:ro(I3?f1[he%f1.length]:X[he%X.length],I3),shadowBlur:I3?3:0,shadowColor:I3?"rgba(48, 220, 255, 0.16)":"transparent"}})),showBackground:!0,backgroundStyle:{color:I3?"rgba(48, 220, 255, 0.05)":"rgba(48, 220, 255, 0.07)",borderRadius:I3?[1,10,10,1]:[0,7,7,0]},label:{show:!0,position:"right",color:g,fontFamily:fs.number,fontSize:I2?10:Zd.chartLabel,fontWeight:700,formatter:({value:b0})=>`${R==="%"?sn(b0):ye(b0)}`},markLine:n2.showAverage===!1?void 0:{silent:!0,symbol:"none",label:{show:!1},lineStyle:{color:"rgba(139, 247, 255, 0.22)",type:"dashed",width:1},data:[{xAxis:Math.round(M2*.72)}]}},...I3?[{type:"pictorialBar",symbol:"rect",symbolSize:[2,Q3+5],symbolOffset:[0,0],symbolPosition:"end",z:4,data:A.map((b0,he)=>({value:b0[M],itemStyle:{color:g,opacity:he<3?.82:.56,shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}))}]:[]]}}function ro(A,M=!1){return new ut(0,0,1,0,[{offset:0,color:M?`${A}22`:"rgba(48, 220, 255, 0.12)"},{offset:.64,color:M?A:`${A}cc`},{offset:1,color:A}])}function f4(A,M,R,n2=0,k2=!1){return{name:A,type:"line",yAxisIndex:n2,smooth:!0,symbolSize:5,data:M,lineStyle:{width:2.5,color:R},itemStyle:{color:R},areaStyle:k2?{color:new ut(0,0,0,1,[{offset:0,color:`${R}44`},{offset:1,color:`${R}05`}])}:void 0}}function h7(A){return m1.find(M=>M.key===A)||m1[2]}function h4(A,M="month"){if(M==="month")return Hp(A);const R=pu(A),n2=Math.max(1,Math.round(Math.max(1,R-1)*30)),k2=M==="week"?7:1,X=Math.ceil(n2/k2)+1,M2=Array.from({length:X},(f1,a0)=>{const e0=Math.min(n2,a0*k2);return Kp(e0)}),I2=M2.map((f1,a0)=>{const b0=Math.min(n2,a0*k2)/n2,he=Math.sin(a0/(M==="week"?1.8:8.5))*Math.sin(Math.PI*b0)*Math.min(360,A.months*18);return Math.round(Mt+(A.stock-Mt)*b0+he)}),I3=M2.map((f1,a0)=>{const e0=Math.min(n2,a0*k2)/n2;return Math.round(A.births*e0)}),Q3=M2.map((f1,a0)=>{const e0=Math.min(n2,a0*k2)/n2;return Math.round(A.outflow*e0)});return{labels:M2,stock:I2,births:I3,outflow:Q3}}function m4(A,M){return M==="day"?Math.max(10,Math.ceil(A/6)):M==="week"?Math.max(2,Math.ceil(A/7)):A>24?4:A>14?2:1}function m7(A,M){return M==="day"?A>700?2:A>360?3:4:M==="week"?A>110?4:6:A>24?7:10}function oo(A){return(A.labels||[]).map((M,R)=>{var f1,a0,e0,b0,he,Ne;const n2=Number(((f1=A.stock)==null?void 0:f1[Math.max(R-1,0)])||0),k2=Number(((a0=A.stock)==null?void 0:a0[R])||n2),X=Math.max(0,Number(((e0=A.births)==null?void 0:e0[R])||0)-Number(((b0=A.births)==null?void 0:b0[Math.max(R-1,0)])||0)),M2=Math.max(0,Number(((he=A.outflow)==null?void 0:he[R])||0)-Number(((Ne=A.outflow)==null?void 0:Ne[Math.max(R-1,0)])||0)),I2=Math.max(120,Math.round((X+M2)*.18)),I3=Math.max(n2,k2)+Math.max(I2,Math.round(X*.32)),Q3=Math.max(0,Math.min(n2,k2)-Math.max(I2,Math.round(M2*.32)));return{label:M,open:n2,close:k2,low:Q3,high:I3,birth:X,outflow:M2,value:[n2,k2,Q3,I3]}})}function p4(A,M){const R=new Map;return A.forEach(n2=>{const k2=g4(n2.name);if(!k2)return;const X=R.get(k2)||{name:k2,value:0};X.value+=Number(n2[M]||0),R.set(k2,X)}),[...R.values()].sort((n2,k2)=>k2.value-n2.value)}function g4(A){return{色地镇:"色地镇",瓦切镇:"瓦切镇",安曲镇:"安曲镇",龙日镇:"龙日镇",邛溪镇:"邛溪镇",刷经寺镇:"刷经寺镇",阿木乡:"阿木乡",查尔玛乡:"查尔玛乡",江茸乡:"江茸乡",麦洼乡:"麦洼乡"}[A]||""}function ot(A){return{trigger:"item",backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:f,fontFamily:fs.ui,fontSize:Zd.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);",formatter:A}}function O9(A){return p3.some(M=>M.key===A)?A:"structure"}function Jt(A=[]){return A.map((M,R)=>{var X,M2,I2,I3;const n2=String(M.name||M.label||M.type||`结构${R+1}`).trim(),k2=v4((M2=(X=M.value)!=null?X:M.count)!=null?M2:M.number);return{key:M.key||M.id||`${n2}-${R}`,name:n2,count:k2,ratio:Number((I3=(I2=M.ratio)!=null?I2:M.percent)!=null?I3:0),source:M.source||"结构统计"}}).filter(M=>M.name&&M.count>0)}function y4(A=[],M=[]){const R=A.some(k2=>r9(k2))?A:M,n2=l6(R,M).map((k2,X)=>{var I3,Q3;const M2=String(k2.name||k2.label||`结构${X+1}`).trim(),I2=v4((Q3=(I3=k2.count)!=null?I3:k2.value)!=null?Q3:k2.number);return t3(B2({},k2),{key:k2.key||`${M2}-${X}`,name:M2,count:I2})}).filter(k2=>k2.name&&k2.count>0);return i9(n2,Mt)}function i9(A=[],M=Mt){const R=A.reduce((X,M2)=>X+Number(M2.count||0),0);if(!R||!M)return A;const n2=A.map((X,M2)=>{const I2=Number.isFinite(Number(X.ratio))&&Number(X.ratio)>0?Number(X.ratio):Number(X.count||0)/R*100,I3=M*I2/100;return t3(B2({},X),{index:M2,ratio:I2,count:Math.floor(I3),remainder:I3-Math.floor(I3)})});let k2=M-n2.reduce((X,M2)=>X+M2.count,0);return n2.slice().sort((X,M2)=>M2.remainder-X.remainder||X.index-M2.index).forEach(X=>{k2<=0||(X.count+=1,k2-=1)}),n2.map(I3=>{var Q3=I3,{index:X,remainder:M2}=Q3,I2=Q9(Q3,["index","remainder"]);return t3(B2({},I2),{ratio:Number(I2.ratio.toFixed(1))})})}function v4(A){const M=Number(String(A!=null?A:"").replace(/,/g,"").replace(/%/g,""));return Number.isFinite(M)&&M>0?Math.round(M):0}function p7(A,M){const R=String((A==null?void 0:A.message)||A||"");return/未登录|401|HTTP_401/.test(R)?"结构数据未就绪":/超时|timeout/i.test(R)?"结构数据加载超时":M}function so(A){const M=String(A||"").match(/-?\d+(?:\.\d+)?/);return M?Number(M[0]):0}function V0(A){const M=Number(A);return Number.isFinite(M)?M.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(M)?0:2}):"--"}function ye(A){const M=Number(A);return Number.isFinite(M)?Math.abs(M)>=1e4?`${(M/1e4).toFixed(Math.abs(M)>=1e5?0:1)}万`:Math.round(M).toLocaleString("zh-CN"):"--"}function j9(A,M=2){const R=Number(A);return Number.isFinite(R)?`${(R/1e4).toFixed(M)}万`:"--"}function sn(A){const M=Number(A);return Number.isFinite(M)?`${Number.isInteger(M)?M:M.toFixed(1)}%`:"--"}function ln(A,M,R,n2){const k2=n2*Math.PI/180;return{x:Number((A+R*Math.cos(k2)).toFixed(2)),y:Number((M+R*Math.sin(k2)).toFixed(2))}}function lo(A,M,R,n2,k2,X){const M2=ln(A,M,n2,k2),I2=ln(A,M,n2,X),I3=ln(A,M,R,X),Q3=ln(A,M,R,k2),f1=X-k2>180?1:0;return[`M ${M2.x} ${M2.y}`,`A ${n2} ${n2} 0 ${f1} 1 ${I2.x} ${I2.y}`,`L ${I3.x} ${I3.y}`,`A ${R} ${R} 0 ${f1} 0 ${Q3.x} ${Q3.y}`,"Z"].join(" ")}function g7(A=[]){return A.reduce((M,R)=>{const n2=B5.find(k2=>k2.key===R);return M+Number((n2==null?void 0:n2.ratio)||0)},0)}function z9(){return[{key:"fertileCow",name:"适龄能繁母牛",color:"#30dcff",matcher:(A,M)=>A==="fertileCow"||M.includes("适龄能繁母牛")},{key:"meatBull",name:"麦洼公牦牛",color:"#48cfff",matcher:(A,M)=>A==="meatBull"||M.includes("肉公牛")||M.includes("麦洼公牦牛")},{key:"breedingBull",name:"种公牛",color:"#58d9ff",matcher:(A,M)=>A==="breedingBull"||M.includes("种公牛")},{key:"femaleCalf",name:"母犊牛",color:"#30dcff",matcher:(A,M)=>A==="femaleCalf"||M.includes("母犊牛")},{key:"maleCalf",name:"公犊牛",color:"#8bf7ff",matcher:(A,M)=>A==="maleCalf"||M.includes("公犊牛")},{key:"overageCow",name:"过龄能繁母牛",color:"#48cfff",matcher:(A,M)=>A==="overageCow"||M.includes("过龄能繁母牛")}]}function y7(A=[]){const M=A.reduce((n2,k2)=>n2+Number(k2.count||0),0)||1;return[{key:"female",group:"性别",name:"母牛合计",color:"#8bf7ff",matcher:(n2,k2)=>["fertileCow","femaleCalf","overageCow"].includes(n2)||k2.includes("母")},{key:"male",group:"性别",name:"公牛合计",color:"#30dcff",matcher:(n2,k2)=>["meatBull","breedingBull","maleCalf"].includes(n2)||k2.includes("公")||k2.includes("肉牛")},{key:"calf",group:"阶段",name:"犊牛合计",color:"#8bf7ff",matcher:(n2,k2)=>["femaleCalf","maleCalf"].includes(n2)||k2.includes("犊牛")},{key:"breeding-cow",group:"阶段",name:"能繁母牛",color:"#48cfff",matcher:(n2,k2)=>["fertileCow","overageCow"].includes(n2)||k2.includes("能繁母牛")}].map(n2=>{const k2=A.filter(X=>n2.matcher(String(X.key||""),String(X.name||""))).reduce((X,M2)=>X+Number(M2.count||0),0);return{key:n2.key,group:n2.group,name:n2.name,color:n2.color,count:k2,percent:k2/M*100}})}function l6(A=[],M=[]){const n2=A.some(M2=>r9(M2))?A:M,k2=n2.reduce((M2,I2)=>M2+Number(I2.count||0),0)||Mt||1;return z9().map(M2=>{const I2=n2.filter(f1=>M2.matcher(String(f1.key||""),String(f1.name||""))),I3=I2.reduce((f1,a0)=>f1+Number(a0.count||0),0),Q3=I2.length===1?Number(I2[0].ratio):Number.NaN;return{key:M2.key,name:M2.name,color:M2.color,count:I3,percent:Number.isFinite(Q3)&&Q3>0?Q3:I3/k2*100}}).filter(M2=>M2.count>0||M2.percent>0)}function r9(A={}){const M=String(A.key||""),R=String(A.name||"");return z9().some(n2=>n2.matcher(M,R))}function uo(A=[],M=[]){const n2=A.some(M2=>co(M2))?A:M,k2=n2.reduce((M2,I2)=>M2+Number(I2.count||0),0)||1,X=(M2,I2,I3,Q3,f1)=>{const a0=n2.filter(he=>Q3(String(he.key||""),String(he.name||""))),e0=a0.reduce((he,Ne)=>he+Number(Ne.count||0),0),b0=a0.length===1?Number(a0[0].ratio):Number.NaN;return{key:M2,name:I2,color:I3,count:e0,percent:Number.isFinite(b0)&&b0>0?b0:e0/k2*100,desc:f1}};return[X("fertile-cow","适龄能繁母牛","#30dcff",(M2,I2)=>M2==="fertileCow"||I2.includes("适龄能繁母牛"),"繁殖基础"),X("calf","犊牛合计","#8bf7ff",(M2,I2)=>["femaleCalf","maleCalf"].includes(M2)||I2.includes("犊牛"),"新生补充"),X("overage-cow","过龄能繁母牛","#30dcff",(M2,I2)=>M2==="overageCow"||I2.includes("过龄能繁母牛"),"更新压力"),X("breeding-bull","种公牛配比","#48cfff",(M2,I2)=>M2==="breedingBull"||I2.includes("种公牛"),"配种支撑")]}function co(A={}){const M=String(A.key||""),R=String(A.name||"");return["fertileCow","femaleCalf","maleCalf","overageCow","breedingBull"].includes(M)||R.includes("适龄能繁母牛")||R.includes("犊牛")||R.includes("过龄能繁母牛")||R.includes("种公牛")}function fo(A=[]){const M=M2=>{var I2;return Number(((I2=A.find(I3=>I3.key===M2))==null?void 0:I2.percent)||0)},R=M("fertile-cow"),n2=M("calf"),k2=M("overage-cow"),X=M("breeding-bull");return R>=40&&n2>=25&&X>=2&&X<=5&&k2<=10?{label:"结构健康",title:"繁殖基础稳定",summary:"适龄母牛足,犊牛补充稳",note:"保持适龄能繁母牛、犊牛补充与种公牛配置稳定。"}:n2<25?{label:"结构健康",title:"犊牛补充需关注",summary:"繁殖基础稳定,补充端可优化",note:"关注犊牛成活和季节性补栏,保持生产连续性。"}:X<2?{label:"结构健康",title:"繁殖基础总体稳定",summary:"适龄母牛基础较稳",note:"结合实际配种需求,平稳优化公牛配置。"}:{label:"结构健康",title:"生产阶段较均衡",summary:"繁殖群和犊牛补充连续支撑",note:"延续结构管理,优先保障适龄母牛与犊牛质量。"}}function T5(A){const M=Number((A==null?void 0:A.count)||0);return Math.max(8,Math.min(100,M/d.value*100))}function Rn(A={}){const M=Mt,R=[{key:"births",name:"新生牛犊",delta:Number(A.births||0),color:"#30dcff"},{key:"outflow",name:"出栏流出",delta:-Number(A.outflow||0),color:"#48cfff"},{key:"correction",name:"修正损耗",delta:Number(A.correction||0),color:"#8bf7ff"}];let n2=M;const k2=[{key:"current",name:"当前存栏",type:"anchor",value:M,magnitude:M,from:M,to:M,color:"#30dcff",display:`${j9(M,2)}头`}];R.forEach(I2=>{const I3=n2,Q3=n2+I2.delta;n2=Q3,k2.push(t3(B2({},I2),{name:`${I2.delta>=0?"+":"-"}${I2.name}`,type:"delta",from:I3,to:Q3,value:I2.delta,magnitude:Math.abs(I2.delta),display:`${ho(I2.delta)}头`}))});const X=Number(A.stock||n2);k2.push({key:"final",name:"=期末预测",type:"final",value:X,magnitude:X,from:X,to:X,color:"#48cfff",display:`${j9(X,2)}头`});const M2=Math.max(...k2.map(I2=>Number(I2.magnitude)||0),1);return k2.map(I2=>{const I3=(Number(I2.magnitude)||0)/M2*100;return t3(B2({},I2),{left:0,width:Math.max(I2.type==="delta"?5:10,Math.min(100,I3))})})}function o9(A){const M=Number(A);return Number.isFinite(M)?`${M>=0?"+":"-"}${V0(Math.abs(M))}`:"--"}function ho(A){const M=Number(A);return Number.isFinite(M)?`${M>=0?"+":"-"}${j9(Math.abs(M))}`:"--"}return(A,M)=>(O(),V("div",EY,[qe((O(),_e(kY,{key:ve.value,ref_key:"mapSceneRef",ref:Z1,class:"yak-map-scene","active-layer":V2.value,"map-ranking":W.value,"tile-url-template":B0.value,"use-satellite-base":g0.value,"admin-boundary-line-scale":1.35,onLayerStatus:f7,onTileStatus:d4},null,8,["active-layer","map-ranking","tile-url-template","use-satellite-base"])),[[r5,!T2.value]]),T2.value?(O(),_e(z8,{key:H1.value,ref_key:"yakOlMapRef",ref:Y0,class:"yak-ol-map-layer",active:a.active&&T2.value,"tile-url-template":B0.value,center:u3.value,"initial-zoom":FW,"county-view-target-offset":y2,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":G.value,onReady:io,onLayerStatus:f7,onTileStatus:d4},null,8,["active","tile-url-template","center","overlay-layer"])):U3("",!0),S("div",{class:o1(["yak-map-scrim",{"is-ol-map":T2.value}])},null,2),e3.value?(O(),V("div",NY,l2(r1.value),1)):U3("",!0),S("div",RY,[l3.value==="trade"&&je.value.length?(O(),V("div",LY,[M[23]||(M[23]=S("span",null,"交易年份",-1)),(O(!0),V(Y3,null,e1(je.value,R=>(O(),V("button",{key:R,type:"button",class:o1({active:Number(R)===Number(S0.value)}),onClick:n2=>wt(R)},l2(R),11,IY))),128))])):U3("",!0),l3.value==="epidemic"&&j1.length?(O(),V("div",FY,[M[24]||(M[24]=S("span",null,"防疫年份",-1)),(O(),V(Y3,null,e1(j1,R=>S("button",{key:R,type:"button",class:o1({active:Number(R)===Number(a1.value)}),onClick:n2=>i4(R)},l2(R),11,BY)),64))])):U3("",!0),l3.value==="forecast"?(O(),V("div",DY,[M[25]||(M[25]=S("span",null,"预测年份",-1)),(O(!0),V(Y3,null,e1(D1(gn),R=>(O(),V("button",{key:R.key,type:"button",class:o1({active:R.key===b3.value}),onClick:n2=>A0(R.key)},l2(R.shortLabel),11,GY))),128))])):U3("",!0),S("div",UY,[S("div",OY,[l3.value==="structure"?(O(),V(Y3,{key:0},[S1(U0,{class:"yak-side-card left-card",title:"繁殖基础评估",width:D1(r),height:s.value},{default:M0(()=>[S("div",jY,[S("div",zY,[S("strong",null,l2(_.value.title)+","+l2(_.value.summary),1)]),S("div",YY,[(O(!0),V(Y3,null,e1(N.value,R=>(O(),V("div",{key:R.key,class:"breeding-health-item",style:o0({"--health-color":R.color,"--health-width":`${Math.max(5,Math.min(100,R.percent))}%`})},[S("span",null,l2(R.name),1),S("strong",null,l2(sn(R.percent)),1),M[26]||(M[26]=S("i",null,[S("b")],-1)),S("em",null,l2(R.desc),1)],4))),128))])])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"畜群结构占比",width:D1(r),height:s.value},{default:M0(()=>[S("div",$Y,[S("div",WY,[S("div",VY,[(O(),V("svg",HY,[S("g",KY,[(O(!0),V(Y3,null,e1(y.value,R=>(O(),V("path",{key:R.key,class:o1(["structure-rose-segment",{"is-active":R.index===h.value}]),d:R.path,fill:R.color,stroke:R.color},null,10,qY))),128))]),M[27]||(M[27]=S("circle",{class:"structure-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),M[28]||(M[28]=S("circle",{class:"structure-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),M[29]||(M[29]=S("text",{class:"structure-rose-center",x:"75",y:"72","text-anchor":"middle"},"结构",-1)),M[30]||(M[30]=S("text",{class:"structure-rose-center is-sub",x:"75",y:"83","text-anchor":"middle"},"占比",-1))]))]),S("div",JY,[(O(!0),V(Y3,null,e1(Ze.value,(R,n2)=>(O(),V("div",{key:R.key||R.name,class:o1(["structure-ratio-row",{"is-active":n2===h.value}]),style:o0({"--row-color":R.color,"--row-percent":`${Math.max(4,R.percent)}%`})},[S("i",{style:o0({background:R.color,color:R.color})},null,4),S("span",null,[Ae(l2(R.name),1),S("small",null,l2(sn(R.percent)),1)]),S("strong",null,l2(ye(R.count)),1),M[31]||(M[31]=S("em",null,"头",-1))],6))),128))])]),M1.value?(O(),V("div",QY,"结构数据加载中")):b1.value?(O(),V("div",ZY,l2(b1.value),1)):U3("",!0)])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"母牛/公牛年龄结构",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:t0.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"牦牛乡镇分布",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:b.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):l3.value==="forecast"?(O(),V(Y3,{key:1},[S1(U0,{class:"yak-side-card left-card",title:"存栏变化拆解",width:D1(r),height:s.value},{default:M0(()=>[S("div",XY,[S("div",e$,[S("span",null,l2(w1.value.label)+"变化路径",1),S("strong",{class:o1({positive:be.value>0,negative:be.value<0})},[Ae(" 净变化 "+l2(o9(be.value)),1),M[32]||(M[32]=S("em",null,"头",-1))],2)]),S("div",t$,[(O(!0),V(Y3,null,e1(xe.value,R=>(O(),V("div",{key:R.key,class:o1(["forecast-waterfall-row",[`is-${R.type}`,{positive:R.delta>0,negative:R.delta<0}]]),style:o0({"--waterfall-left":`${R.left}%`,"--waterfall-width":`${R.width}%`,"--waterfall-color":R.color})},[S("span",null,l2(R.name),1),M[33]||(M[33]=S("i",null,[S("b")],-1)),S("strong",null,l2(R.display),1)],6))),128))])])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"未来存栏趋势",width:D1(r),height:s.value},{default:M0(()=>[S("div",n$,[S("div",a$,[(O(),V(Y3,null,e1(m1,R=>S("button",{key:R.key,type:"button",class:o1({active:R.key===N3.value}),onClick:n2=>N3.value=R.key},l2(R.label),11,i$)),64))]),S1(D1(Ke),{class:"yak-chart forecast-kline-chart",option:C2.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"月度数量预测",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:m2.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"预测因子雷达",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:T3.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):l3.value==="epidemic"?(O(),V(Y3,{key:2},[S1(U0,{class:"yak-side-card left-card",title:"防疫统计",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:U.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"养殖户防疫排行",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:t2.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"防疫作业趋势",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:K0.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"疫苗类型分布",width:D1(r),height:s.value},{default:M0(()=>[p2.value.length?(O(),V("div",r$,[S("div",o$,[(O(),_e(Wm,{key:c2.value,data:p2.value,delay:3e3,colors:Q2,opacity:.62,class:"epidemic-three-pie"},{default:M0(({data:R})=>[S("div",s$,[S("strong",null,l2(ye((R==null?void 0:R.count)||T.value)),1),S("span",null,l2((R==null?void 0:R.name)||"疫苗类型"),1)])]),_:1},8,["data"]))]),S("div",l$,[(O(!0),V(Y3,null,e1(p2.value,(R,n2)=>(O(),V("div",{key:R.key||R.name,class:"epidemic-three-pie-row"},[S("i",{style:o0({borderColor:Q2[n2%Q2.length]})},null,4),S("span",null,l2(R.name),1),S("strong",null,l2(ye(R.value)),1),S("em",null,l2(R.unit),1)]))),128))])])):(O(),V("div",u$,"暂无疫苗类型数据"))]),_:1},8,["width","height"])],64)):l3.value==="trade"?(O(),V(Y3,{key:3},[S1(U0,{class:"yak-side-card left-card",title:"交易异常关注",width:D1(r),height:s.value},{default:M0(()=>[S("div",c$,[S("div",d$,[S("span",null,l2(S0.value)+"年流通监管线索",1),S("strong",null,l2(z2.value),1)]),S("div",f$,[(O(!0),V(Y3,null,e1(G2.value,R=>(O(),V("div",{key:R.key,class:o1(["trade-risk-row",`is-${R.level}`]),style:o0({"--risk-color":R.color})},[M[34]||(M[34]=S("i",null,null,-1)),S("span",null,[S("em",null,[S("b",null,l2(R.badge),1),Ae(l2(R.name),1)]),S("small",null,l2(R.value)+"|"+l2(R.desc),1)])],6))),128))])])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"交易流通趋势",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:N2.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"来源乡镇分布",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:Y2.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card left-card",title:"用途结构统计",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:g3.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):U3("",!0)])]),S("div",h$,[S("div",m$,[l3.value==="structure"?(O(),V(Y3,{key:0},[S1(U0,{class:"yak-side-card right-card",title:"乡镇存栏排行",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:B.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card",title:"能繁母牛与犊牛分布",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:q.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card",title:"出栏/交易影响",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:b2.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card",title:"性别与生产阶段汇总",width:D1(r),height:s.value},{default:M0(()=>[S("div",p$,[S("div",g$,[(O(!0),V(Y3,null,e1(F2.value,R=>(O(),V("div",{key:R.key||R.name,class:"structure-summary-row",style:o0({"--structure-color":R.color,"--structure-width":`${T5(R)}%`})},[S("span",null,[M[35]||(M[35]=S("i",null,null,-1)),Ae(l2(R.name),1)]),M[37]||(M[37]=S("b",null,[S("em")],-1)),S("strong",null,[Ae(l2(ye(R.count)),1),M[36]||(M[36]=S("em",null,"头",-1))]),S("small",null,l2(sn(R.percent)),1)],4))),128))]),M1.value?(O(),V("div",y$,"结构数据加载中")):b1.value?(O(),V("div",v$,l2(b1.value),1)):U3("",!0)])]),_:1},8,["width","height"])],64)):l3.value==="forecast"?(O(),V(Y3,{key:1},[S1(U0,{class:"yak-side-card right-card",title:"乡镇预测排行",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:x3.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card",title:"期末结构预测",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:K3.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card",title:"补充/流出对比",width:D1(r),height:s.value},{default:M0(()=>[S1(D1(Ke),{class:"yak-chart",option:v1.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card",title:"预测变化热力",width:D1(r),height:s.value},{default:M0(()=>[S("div",S$,[(O(!0),V(Y3,null,e1(Q1.value,R=>(O(),V("div",{key:R.name,class:o1(["heat-row",{"is-negative":R.change<0}]),style:o0(L1(R)),title:n0(R)},[S("span",null,l2(R.name),1),M[38]||(M[38]=S("b",null,[S("i")],-1)),S("strong",null,l2(o9(R.change)),1)],14,w$))),128))])]),_:1},8,["width","height"])],64)):l3.value==="epidemic"?(O(),_e(U0,{key:2,class:"yak-side-card right-card epidemic-ledger-card",title:"防疫记录台账",width:D1(r),height:u.value},{default:M0(()=>[S("div",b$,[S("div",T$,[S("span",null,l2(a1.value)+"年 共 "+l2(V0(q1.value))+" 条",1),S("div",null,[qe(S("input",{"onUpdate:modelValue":M[0]||(M[0]=R=>O3.value=R),type:"search",placeholder:"耳标/养殖户/疫苗",onKeyup:Bt(qt,["enter"])},null,544),[[s5,O3.value]]),S("button",{type:"button",onClick:qt},"搜索"),S("button",{type:"button",class:"is-more",onClick:M[1]||(M[1]=R=>u4())},"查看更多")])]),M[39]||(M[39]=S("div",{class:"epidemic-record-header"},[S("span",null,"电子耳标"),S("span",null,"养殖户"),S("span",null,"镇/乡"),S("span",null,"疫苗"),S("span",null,"时间")],-1)),S("div",C$,[(O(!0),V(Y3,null,e1(v3.value,R=>(O(),V("button",{key:R.epidemicId||R.earTag,type:"button",onClick:n2=>u4(R)},[S("span",null,l2(pe(R.earTag)),1),S("span",null,l2(pe(R.owner)),1),S("span",null,l2(pe(R.town)),1),S("strong",null,l2(pe(R.medicine)),1),S("span",null,l2(fe(R.operateTime)),1)],8,A$))),128)),r0.value.length?U3("",!0):(O(),V("div",_$,l2(i3.value?"防疫台账读取中":U2.value||"暂无防疫记录"),1))]),S("div",x$,[S("span",null,"第 "+l2(h3.value)+" / "+l2(L2.value)+" 页",1),S("button",{type:"button",disabled:h3.value<=1,onClick:M[2]||(M[2]=R=>c7(h3.value-1))},"上一页",8,M$),S("button",{type:"button",disabled:h3.value>=L2.value,onClick:M[3]||(M[3]=R=>c7(h3.value+1))},"下一页",8,P$)])])]),_:1},8,["width","height"])):l3.value==="trade"?(O(),V(Y3,{key:3},[S1(U0,{class:"yak-side-card right-card",title:"出证结构统计",width:D1(r),height:s.value},{default:M0(()=>[S("div",k$,[S("div",E$,[S("span",null,[M[41]||(M[41]=S("em",null,"省外流通 A证",-1)),S("strong",null,[Ae(l2(V0(Pt("outProvinceHeads","aCertHeads"))),1),M[40]||(M[40]=S("b",null,"头",-1))]),S("small",null,l2(V0(Pt("outProvinceCount","aCertCount")))+"条记录",1)]),S("span",null,[M[43]||(M[43]=S("em",null,"省内流通 B证",-1)),S("strong",null,[Ae(l2(V0(Pt("inProvinceHeads","bCertHeads"))),1),M[42]||(M[42]=S("b",null,"头",-1))]),S("small",null,l2(V0(Pt("inProvinceCount","bCertCount")))+"条记录",1)])]),S1(D1(Ke),{class:"trade-cert-chart",option:W3.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card trade-source-card",title:"出栏来源排行",width:D1(r),height:m.value},{default:M0(()=>[S("div",N$,[(O(!0),V(Y3,null,e1(D.value,(R,n2)=>(O(),V("div",{key:R.name,class:"trade-dest-row",style:o0({"--trade-ratio":`${R.ratio}%`})},[S("span",null,l2(n2+1),1),S("strong",null,l2(R.name),1),S("em",null,l2(ye(R.headCount))+"头",1)],4))),128)),D.value.length?U3("",!0):(O(),V("div",R$,l2(oe.value?"交易数据读取中":z0.value||"暂无出栏来源数据"),1))])]),_:1},8,["width","height"]),S1(U0,{class:"yak-side-card right-card trade-ledger-card",title:"交易出证台账",width:D1(r),height:p.value},{default:M0(()=>[S("div",L$,[S("div",I$,[S("span",null,"共 "+l2(V0(T0.value))+" 条",1),S("div",null,[qe(S("input",{"onUpdate:modelValue":M[4]||(M[4]=R=>x2.value=R),type:"search",placeholder:"货主/车辆/检疫号/地区",onKeyup:Bt(_6,["enter"])},null,544),[[s5,x2.value]]),S("button",{type:"button",onClick:_6},"搜索"),S("button",{type:"button",class:"is-more",onClick:M[5]||(M[5]=R=>D9())},"查看更多")])]),M[44]||(M[44]=S("div",{class:"trade-ledger-header"},[S("span",null,"货主"),S("span",null,"车牌"),S("span",null,"数量"),S("span",null,"来源"),S("span",null,"用途"),S("span",null,"时间")],-1)),S("div",F$,[(O(!0),V(Y3,null,e1(u2.value,R=>(O(),V("button",{key:R.certId,type:"button",onClick:n2=>D9(R)},[S("span",null,l2(pe(R.ownerName)),1),S("span",null,l2(pe(R.transportNumber)),1),S("strong",null,l2(V0(R.amount))+"头",1),S("span",null,l2(pe(R.startTown)),1),S("span",null,l2(pe(R.usageTypeName)),1),S("span",null,l2(fe(R.issueTime)),1)],8,B$))),128)),u2.value.length?U3("",!0):(O(),V("div",D$,l2(oe.value?"交易台账读取中":z0.value||"暂无交易记录"),1))]),S("div",G$,[S("span",null,"第 "+l2(P0.value)+" / "+l2(K2.value)+" 页",1),S("button",{type:"button",disabled:P0.value<=1,onClick:M[6]||(M[6]=R=>r4(P0.value-1))},"上一页",8,U$),S("button",{type:"button",disabled:P0.value>=K2.value,onClick:M[7]||(M[7]=R=>r4(P0.value+1))},"下一页",8,O$)])])]),_:1},8,["width","height"])],64)):U3("",!0)])]),S("div",j$,[S1(Fa,{"model-value":l3.value,topics:p3,"onUpdate:modelValue":M[8]||(M[8]=R=>l3.value=R)},null,8,["model-value"])])]),D3.value?(O(),V("div",{key:2,class:"epidemic-ledger-modal",onClick:ue(s6,["self"])},[S("div",z$,[S("div",Y$,[S("div",null,[M[45]||(M[45]=S("span",null,"牦牛防疫台账",-1)),S("strong",null,l2(a1.value)+"年 "+l2(V0(u1.value))+" 条记录",1)]),S("button",{type:"button",onClick:s6},"关闭")]),S("div",$$,[qe(S("input",{"onUpdate:modelValue":M[9]||(M[9]=R=>U1.value.keyword=R),type:"search",placeholder:"耳标 / 养殖户 / 药品","aria-label":"耳标 / 养殖户 / 药品",onKeyup:Bt(a9,["enter"])},null,544),[[s5,U1.value.keyword]]),qe(S("select",{"onUpdate:modelValue":M[10]||(M[10]=R=>U1.value.town=R)},[M[46]||(M[46]=S("option",{value:""},"全部镇/乡",-1)),(O(!0),V(Y3,null,e1(X1.value,R=>(O(),V("option",{key:R,value:R},l2(R),9,W$))),128))],512),[[L4,U1.value.town]]),qe(S("select",{"onUpdate:modelValue":M[11]||(M[11]=R=>U1.value.medicine=R)},[M[47]||(M[47]=S("option",{value:""},"全部疫苗",-1)),(O(!0),V(Y3,null,e1(h0.value,R=>(O(),V("option",{key:R,value:R},l2(R),9,V$))),128))],512),[[L4,U1.value.medicine]]),qe(S("input",{"onUpdate:modelValue":M[12]||(M[12]=R=>U1.value.startDate=R),type:"date"},null,512),[[s5,U1.value.startDate]]),qe(S("input",{"onUpdate:modelValue":M[13]||(M[13]=R=>U1.value.endDate=R),type:"date"},null,512),[[s5,U1.value.endDate]]),S("button",{type:"button",onClick:a9},"检索"),S("button",{type:"button",class:"is-ghost",onClick:c4},"重置")]),S("div",H$,[S("div",K$,[M[48]||(M[48]=S("div",{class:"epidemic-ledger-table-head"},[S("span",null,"电子耳标"),S("span",null,"养殖户"),S("span",null,"镇/乡"),S("span",null,"村"),S("span",null,"疫苗"),S("span",null,"免疫时间"),S("span",null,"图片")],-1)),(O(!0),V(Y3,null,e1(F3.value,R=>{var n2,k2;return O(),V("button",{key:R.epidemicId||R.earTag,type:"button",class:o1({active:(((n2=C3.value)==null?void 0:n2.epidemicId)||((k2=C3.value)==null?void 0:k2.earTag))===(R.epidemicId||R.earTag)}),onClick:X=>G9(R)},[S("span",null,l2(pe(R.earTag)),1),S("span",null,l2(pe(R.owner)),1),S("span",null,l2(pe(R.town)),1),S("span",null,l2(pe(R.village)),1),S("strong",null,l2(pe(R.medicine)),1),S("span",null,l2(fe(R.operateTime)),1),S("span",null,l2(t9(R).length?`${t9(R).length}张`:"无"),1)],10,q$)}),128)),F3.value.length?U3("",!0):(O(),V("div",J$,l2(S3.value?"台账读取中":E.value||"暂无匹配记录"),1))]),S("div",Q$,[S("div",Z$,[S("div",null,[S("span",null,l2(pe(q3.value.earTag)),1),S("em",null,l2(pe(q3.value.medicine||q3.value.preventionType)),1)]),S("strong",null,l2(_1.value?"加载中":fe(q3.value.operateTime)),1)]),S("div",X$,[(O(!0),V(Y3,null,e1(l0.value,R=>(O(),V("span",{key:R.label,class:o1({"is-wide":R.wide})},[S("em",null,l2(R.label),1),S("strong",null,l2(R.value),1)],2))),128))]),T1.value.length?(O(),V("div",eW,[M[49]||(M[49]=S("div",{class:"epidemic-detail-photo-title"},"现场照片",-1)),S("div",tW,[(O(!0),V(Y3,null,e1(T1.value.slice(0,6),R=>(O(),V("button",{key:R,type:"button",class:"epidemic-modal-photo-thumb",onClick:ue(n2=>Qr(R),["stop"])},[S("img",{src:i7(R),alt:"防疫照片"},null,8,aW)],8,nW))),128))])])):U3("",!0)])]),S("div",iW,[S("span",null,"第 "+l2(A1.value)+" / "+l2(A3.value)+" 页",1),S("button",{type:"button",disabled:A1.value<=1,onClick:M[14]||(M[14]=R=>Be(A1.value-1))},"上一页",8,rW),S("button",{type:"button",disabled:A1.value>=A3.value,onClick:M[15]||(M[15]=R=>Be(A1.value+1))},"下一页",8,oW)])])])):U3("",!0),H2.value?(O(),V("div",{key:3,class:"epidemic-ledger-modal trade-ledger-modal",onClick:ue(Kt,["self"])},[S("div",sW,[S("div",lW,[S("div",null,[M[50]||(M[50]=S("span",null,"牦牛交易出证台账",-1)),S("strong",null,l2(S0.value)+"年 "+l2(V0(d1.value))+" 条记录",1)]),S("button",{type:"button",onClick:Kt},"关闭")]),S("div",uW,[qe(S("input",{"onUpdate:modelValue":M[16]||(M[16]=R=>O0.value.keyword=R),type:"search",placeholder:"货主 / 车辆 / 检疫号 / 地区",onKeyup:Bt(o4,["enter"])},null,544),[[s5,O0.value.keyword]]),qe(S("select",{"onUpdate:modelValue":M[17]||(M[17]=R=>O0.value.startTown=R)},[M[51]||(M[51]=S("option",{value:""},"全部来源乡镇",-1)),(O(!0),V(Y3,null,e1(y1.value,R=>(O(),V("option",{key:R,value:R},l2(R),9,cW))),128))],512),[[L4,O0.value.startTown]]),qe(S("select",{"onUpdate:modelValue":M[18]||(M[18]=R=>O0.value.usageType=R)},[M[52]||(M[52]=S("option",{value:""},"全部用途",-1)),(O(!0),V(Y3,null,e1(k1.value,R=>(O(),V("option",{key:R,value:R},l2(R),9,dW))),128))],512),[[L4,O0.value.usageType]]),qe(S("select",{"onUpdate:modelValue":M[19]||(M[19]=R=>O0.value.certType=R)},[M[53]||(M[53]=S("option",{value:""},"全部证书",-1)),(O(!0),V(Y3,null,e1(Z.value,R=>(O(),V("option",{key:R.value,value:R.value},l2(R.label),9,fW))),128))],512),[[L4,O0.value.certType]]),S("button",{type:"button",onClick:o4},"检索"),S("button",{type:"button",class:"is-ghost",onClick:s7},"重置")]),S("div",hW,[S("div",mW,[M[54]||(M[54]=S("div",{class:"trade-ledger-modal-table-head"},[S("span",null,"货主"),S("span",null,"证书"),S("span",null,"车牌号"),S("span",null,"数量"),S("span",null,"来源"),S("span",null,"用途"),S("span",null,"出证时间"),S("span",null,"状态")],-1)),(O(!0),V(Y3,null,e1(w3.value,R=>(O(),V("button",{key:R.certId||R.factoryCode,type:"button",class:o1({active:B3.value===(R.certId||R.factoryCode)}),onClick:n2=>l4(R)},[S("span",null,l2(pe(R.ownerName)),1),S("span",null,l2(pe(R.certType||R.certScopeName)),1),S("span",null,l2(pe(R.transportNumber)),1),S("strong",null,l2(V0(R.amount))+"头",1),S("span",null,l2(pe(R.startTown)),1),S("span",null,l2(pe(R.usageTypeName)),1),S("span",null,l2(fe(R.issueTime)),1),S("span",null,l2(pe(R.statusName)),1)],10,pW))),128)),w3.value.length?U3("",!0):(O(),V("div",gW,l2(V1.value?"交易台账读取中":I0.value||"暂无匹配记录"),1))]),S("div",yW,[S("div",vW,[S("div",null,[S("span",null,l2(pe(G3.value.factoryCode||G3.value.certId)),1),S("em",null,l2(o7(G3.value)),1)]),S("strong",null,l2(fe(G3.value.issueTime)),1)]),S("div",SW,[S("span",wW,[M[55]||(M[55]=S("em",null,"货主",-1)),S("strong",null,l2(pe(G3.value.ownerName)),1)]),S("span",null,[M[56]||(M[56]=S("em",null,"联系方式",-1)),S("strong",null,l2(r7(G3.value.ownerPhone)),1)]),S("span",null,[M[57]||(M[57]=S("em",null,"证书类型",-1)),S("strong",null,l2(o7(G3.value)),1)]),S("span",null,[M[58]||(M[58]=S("em",null,"车牌号",-1)),S("strong",null,l2(pe(G3.value.transportNumber)),1)]),S("span",null,[M[59]||(M[59]=S("em",null,"牦牛数量",-1)),S("strong",null,l2(V0(G3.value.amount))+"头",1)]),S("span",null,[M[60]||(M[60]=S("em",null,"用途",-1)),S("strong",null,l2(pe(G3.value.usageTypeName)),1)]),S("span",null,[M[61]||(M[61]=S("em",null,"来源乡镇",-1)),S("strong",null,l2(pe(G3.value.startTown)),1)]),S("span",null,[M[62]||(M[62]=S("em",null,"目的省份",-1)),S("strong",null,l2(pe(G3.value.destProvince)),1)]),S("span",null,[M[63]||(M[63]=S("em",null,"检疫员",-1)),S("strong",null,l2(pe(G3.value.quarantineOfficerName)),1)]),S("span",bW,[M[64]||(M[64]=S("em",null,"状态",-1)),S("strong",null,l2(pe(G3.value.statusName)),1)]),S("span",TW,[M[65]||(M[65]=S("em",null,"来源地区",-1)),S("strong",null,l2(pe(G3.value.startRegionFullName)),1)]),S("span",CW,[M[66]||(M[66]=S("em",null,"目的地",-1)),S("strong",null,l2(pe(G3.value.destRegionFullName)),1)])]),S("button",{type:"button",class:"trade-detail-locate",disabled:!G3.value.startTown,onClick:M[20]||(M[20]=R=>l7(G3.value))}," 查看乡镇位置 ",8,AW)])]),S("div",_W,[S("span",null,"第 "+l2(O1.value)+" / "+l2(i1.value)+" 页",1),S("button",{type:"button",disabled:O1.value<=1,onClick:M[21]||(M[21]=R=>s4(O1.value-1))},"上一页",8,xW),S("button",{type:"button",disabled:O1.value>=i1.value,onClick:M[22]||(M[22]=R=>s4(O1.value+1))},"下一页",8,MW)])])])):U3("",!0),s1.value?(O(),V("div",{key:4,class:"epidemic-image-preview-modal",onClick:ue(t4,["self"])},[S("div",PW,[S("div",kW,[S("div",null,[M[67]||(M[67]=S("span",null,"防疫照片",-1)),S("strong",null,l2(pe(q3.value.earTag)),1)]),S("button",{type:"button",onClick:t4},"关闭")]),S("div",EW,[S("div",NW,[S("img",{src:B1.value,alt:"防疫照片预览"},null,8,RW)])])])])):U3("",!0)]))}},OW=(t,e=2)=>{const n=n5(10,e);return Math.round((Number(t)||0)*n)/n},jl=t=>OW((Number(t)||0)/1e4,2),b9=9110,jW=(t,e,n="number")=>{const a=t.reduce((o,s)=>o+(Number(s[n])||0),0);if(!a||!e)return t.map(o=>t3(B2({},o),{[n]:0}));const i=t.map(o=>t3(B2({},o),{[n]:Math.round((Number(o[n])||0)/a*e)})),r=e-i.reduce((o,s)=>o+(Number(s[n])||0),0);if(r&&i.length){const o=i.reduce((s,u,m)=>{var p;return Number(u[n])>Number(((p=i[s])==null?void 0:p[n])||0)?m:s},0);i[o][n]+=r}return i},zW=jW([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],b9),Jg=[{key:"pasture-total",name:"牧户数量",value:b9,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],Fu=Jg,yr=Jg.map(t=>t3(B2({},t),{zh:t.name,decimals:0})),P8=zW.map(t=>t3(B2({},t),{key:t.areaCode,name:t.areaName,value:t.number,unit:"户"})),Bu=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(t=>t3(B2({},t),{key:t.areaCode,name:t.areaName,value:t.uplineRate,unit:"%",extra:`${t.uplineRate}%`})),Or=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],Qg=(t,e,n,a)=>Array.from(t.reduce((i,r)=>{const o=r[e]||"未标注",s=i.get(o)||{key:o,name:o,value:0,unit:a};return s.value+=Number(r[n])||0,i.set(o,s),i},new Map).values()),Zg=Qg(Or,"ageRange","value","人"),Du=Qg(Or,"sex","value","人"),k8=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(t=>t3(B2({},t),{township:t.areaName,grasslandArea:t.acreage,value:t.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${t.name} ${t.areaName}`})),Xg=Da.map(t=>({key:t.zoneName,name:t.zoneName,value:jl(t.grasslandArea),unit:"万亩",extra:"草场资源"})),YW=Array.from(k8.reduce((t,e)=>{const n=e.township||"未填写",a=t.get(n)||{key:`${n}-season`,name:n,values:{summer:0,winter:0}};return a.values.summer+=Number(e.summerAcreage)||0,a.values.winter+=Number(e.winterAcreage)||0,t.set(n,a),t},new Map).values()).map(t=>t3(B2({},t),{values:{summer:jl(t.values.summer),winter:jl(t.values.winter)},unit:"万亩"})),ey=P8.map(t=>({name:t.name,value:t.value,unit:"户"})),Js={topStats:yr,coreRows:Fu,townRows:P8,ageRows:Or,genderRows:Du,onlineRows:Bu,list:k8};const $W={class:"pasture-management"},WW={key:0,class:"pasture-map-loading"},VW={class:"pasture-management-ui"},HW={class:"pasture-left"},KW={class:"pasture-side-stack is-left"},qW={class:"pasture-video-monitor"},JW=["disabled"],QW=["onClick"],ZW={key:1,class:"pasture-video-play"},XW={key:2,class:"pasture-video-loading"},eV={key:3,class:"pasture-video-error"},tV={class:"pasture-video-point-name"},nV=["disabled"],aV={class:"pasture-right"},iV={class:"pasture-side-stack is-right"},rV={class:"pasture-map-layer-tools"},Qs="pasture-grassland-boundary",wm="pasture-yak-marks-layer",oV=12e3,sV="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",W4="#30DCFF",Zs="#FFE600",lV={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=Tn.sideCardWidth;Tn.sideCardGap;const o=a3(typeof window=="undefined"?1080:window.innerHeight),s=r2(()=>j8(o.value)),u=r2(()=>M9(s.value,2)),m=a3(null),p=a3(!1),f=a3(0);let g=0;const C=a3(null),F=a3(!1),z=a3(!1),Y=a3(null),i2=a3(Js),v2=a3(k8),y2=a3([Qs,wm]),A2=a3(""),S2=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],Q2=["#30dcff","#24f6c4","#8bf7ff","#48cfff","#16b6e8","#b9fbff","#67ffe4"],X2=`pasture-video-player-${Math.random().toString(36).slice(2)}`,c3=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),p3=[102.58,32.72],l3=c2("ne:t_pasture_grassland",W4),b3={key:wm,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别标记",color:Zs,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Zs,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Zs,strokeColor:"#FFF58A",selectable:!1}]},N3={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:sr,playUrl:"",hdPlayUrl:"",token:""},_3=a3(null),J3=a3([]),R3=a3(0),Z3=a3(!1),M1=a3(!1),b1=a3("");let j1=!1,a1=0,G1=null,s0=null,i0=!1,r0=0,q1=null,h3=0;const O3={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},V3={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},i3=h2(hx),U2=r2(()=>[{key:Qs,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:l3,color:W4,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:W4,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:p3,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:W4,strokeColor:W4,selectable:!1}]},b3]),D3=r2(()=>Array.isArray(y2.value)?y2.value.map(String).filter(Boolean):y2.value?[String(y2.value)]:[]),F3=r2(()=>{const P=new Set(D3.value);return U2.value.filter(I=>P.has(I.key))}),u1=r2(()=>F3.value[0]||null),A1=r2(()=>F3.value.flatMap(P=>P.legends||[]).find(P=>P.key===A2.value)||null),S3=r2(()=>F3.value.flatMap(P=>P.legends||[]));function E(P){var G;return P?!(P.legends||[]).some(T2=>{var u3;return T2.key===((u3=A1.value)==null?void 0:u3.key)})||!((G=A1.value)!=null&&G.cqlFilter)?P:t3(B2({},P),{cqlFilter:A1.value.cqlFilter,activeLegend:A1.value,name:A1.value.name||P.name}):null}const C3=r2(()=>F3.value.map(E).filter(Boolean)),H3=r2(()=>C3.value[0]||null),_1=r2(()=>!!Y.value),s1=r2(()=>{if(z.value||F.value||!C.value)return 186;const P=d(C.value);return Math.min(500,Math.max(320,86+Math.min(P,13)*34))}),B1=r2(()=>{if(!Y.value)return{};const P=460,I=s1.value,G=24,T2=_(Y.value),u3=104,V2=36,W=Math.min(Math.max(T2.x-P/2,G),1920-P-G),e3=Math.min(Math.max(T2.y-I-V2,u3),1080-I-G);return{left:`${W}px`,top:`${e3}px`,right:"auto",bottom:"auto"}}),U1=r2(()=>K(i2.value.core).length?K(i2.value.core):Fu),R1=r2(()=>I0(q2(i2.value.distribution).length?q2(i2.value.distribution):P8,b9)),N1=r2(()=>{const P=f3(i2.value.online);return P3(P.length?P:Bu)}),G0=r2(()=>I0(E3(i2.value.age).length?E3(i2.value.age):Zg,b9)),T0=r2(()=>I0(C1(i2.value.age).length?C1(i2.value.age):Du,b9)),S0=r2(()=>j3(Xg));r2(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(R1.value.length?R1.value:ey).map(P=>{const I=Number(P.value);return!P.name||!Number.isFinite(I)||I<=0?null:{name:P.name,value:I,unit:P.unit||"户"}}).filter(Boolean)})),r2(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:R1.value})),r2(()=>({key:"pasture-grassland-area",type:"heat",rows:S0.value}));const oe=r2(()=>({key:"pasture-household-column",type:"column",variant:"plain",scrollable:!1,rows:V1(R1.value).slice(0,10).map((P,I)=>t3(B2({},P),{unit:P.unit||"户",color:Q2[I%Q2.length]}))})),z0=r2(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",rows:S0.value.map((P,I)=>t3(B2({},P),{unit:P.unit||"万亩",color:Q2[(I+1)%Q2.length]}))})),P0=r2(()=>({key:"pasture-online",type:"line",rows:N1.value})),x2=r2(()=>({key:"pasture-age",type:"column",variant:"plain",lineOverlay:!0,labelMode:"horizontal",scrollable:!1,rows:G0.value})),j2=r2(()=>({key:"pasture-gender",type:"donut",rows:T0.value})),H2=r2(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:v2.value})),w3=r2(()=>{const P=J3.value.length;return P?R3.value%P:0}),d1=r2(()=>J3.value[w3.value]||N3),O1=r2(()=>Y0(J3.value,w3.value,N3));function V1(P=[]){return(Array.isArray(P)?P:[]).map((I,G)=>{var T2,u3,V2;return t3(B2({},I),{key:I.key||I.code||I.name||`${G}`,name:I.name||I.areaName||I.area_name||I.townName||"未标注",value:Number((V2=(u3=(T2=I.value)!=null?T2:I.number)!=null?u3:I.count)!=null?V2:I.num)||0,unit:I.unit||""})}).filter(I=>I.name&&Number.isFinite(I.value)&&I.value>=0)}function I0(P=[],I=b9){const G=Array.isArray(P)?P:[],T2=G.reduce((W,e3)=>W+(Number(e3.value)||0),0);if(!G.length||!T2||!I||T2===I)return G;const u3=G.map(W=>t3(B2({},W),{value:Math.round((Number(W.value)||0)/T2*I)})),V2=I-u3.reduce((W,e3)=>W+(Number(e3.value)||0),0);if(V2&&u3.length){const W=u3.reduce((e3,r1,c0)=>{var t0;return Number(r1.value)>Number(((t0=u3[e3])==null?void 0:t0.value)||0)?c0:e3},0);u3[W].value+=V2}return u3}function F0(){o.value=typeof window=="undefined"?1080:window.innerHeight}jn(()=>{F0(),window.addEventListener("resize",F0),T(),Ze(),m1(),O0()}),On(()=>{j1=!0,window.removeEventListener("resize",F0),d3(),G1&&window.clearTimeout(G1),a1+=1}),ie(()=>a.active,P=>{var I,G;P||d3({resetError:!0}),m.value&&(P?(R2(),(G=(I=m.value).refreshView)==null||G.call(I)):(G1&&window.clearTimeout(G1),G1=null,a1+=1))});function O0(){return L3(this,null,function*(){try{const P=yield yp();if(j1)return;J3.value=P,R3.value=0,b1.value=P.length?"":"暂无在线可播放摄像头"}catch(P){if(j1)return;J3.value=[],b1.value="监控接口暂不可用",window.setTimeout(()=>{!j1&&b1.value==="监控接口暂不可用"&&(b1.value="")},2400)}})}function Z1(P,I){I!=null&&I.isActive&&(_3.value=P||null)}function Y0(P=[],I=0,G=N3){const T2=Array.isArray(P)?P:[];if(!T2.length)return[{key:`empty-${G.key||"video"}`,index:0,live:G,isActive:!0}];const u3=(I+T2.length)%T2.length,V2=T2[u3]||G;return[{key:`${V2.key||V2.title||"video"}-${u3}`,index:u3,live:V2,isActive:!0}]}function d0(P,I=!0){const G=(P==null?void 0:P.image)||sr;return Z3.value&&I?void 0:{backgroundImage:`url(${G})`}}function de(){H1(-1)}function Re(){H1(1)}function H1(P){const I=J3.value.length;I&&(d3({resetError:!0}),R3.value=(w3.value+P+I)%I)}function M3(P){const I=J3.value.length;if(!I){d2();return}const G=((Number(P)||0)+I)%I;(G!==w3.value||s0||M1.value)&&d3({resetError:!0}),R3.value=G,ae(d2)}function d2(){return L3(this,null,function*(){var T2,u3;const P=d1.value;if(!(P!=null&&P.hdPlayUrl)||!(P!=null&&P.token)){b1.value="暂无在线可播放摄像头";return}if(Z3.value||M1.value)return;s0&&d3({resetError:!0}),b1.value="",M1.value=!0,yield ae();const I=++r0;let G=null;$3(I);try{const V2=(u3=(T2=_3.value)==null?void 0:T2.getBoundingClientRect)==null?void 0:u3.call(T2),W=Math.max(300,Math.floor((V2==null?void 0:V2.width)||340)),e3=Math.max(80,Math.floor((V2==null?void 0:V2.height)||120));if(G=new Km.EZUIKitPlayer({id:X2,accessToken:P.token,url:P.hdPlayUrl,audio:0,width:W,height:e3,themeData:s3(),handleError(r1){I===r0&&(X3(),console.warn("Pasture EZUIKit player error",r1),b1.value="视频加载失败",M1.value=!1,Z3.value=!1,r0+=1,s0=null,i0=!1,n3())},handleSuccess(){I===r0&&(X3(),b1.value="",i0=!0,M1.value=!1,z3(),$2())},fullScreenChangeCallBack(){}}),I!==r0){P2(G),n3();return}s0=G,Z3.value=!0,ae(()=>{z3(),$2()})}catch(V2){X3(),console.warn("Pasture EZUIKit init error",V2),b1.value="视频加载失败",d3()}})}function $2(){if(typeof document=="undefined")return;const P=document.getElementById(`${X2}-ez-iframe-footer-container`),I=document.getElementById(`${X2}-audioControls`);P&&Object.assign(P.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),I&&Object.assign(I.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function z3(){var c0,t0;if(typeof document=="undefined")return;const P=_3.value,I=document.getElementById(`${X2}-wrap`),G=document.getElementById(X2),T2=I||G;if(!P||!T2)return;const u3=(c0=P.getBoundingClientRect)==null?void 0:c0.call(P),V2=Math.max(1,Math.floor((u3==null?void 0:u3.width)||P.clientWidth||1)),W=Math.max(1,Math.floor((u3==null?void 0:u3.height)||P.clientHeight||1));try{s0&&typeof s0.reSize=="function"?s0.reSize(V2,W):s0&&typeof s0.autoResize=="function"&&s0.autoResize()}catch(b){console.warn("Pasture EZUIKit resize failed",b)}Object.assign(T2.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${V2}px`,height:`${W}px`,verticalAlign:"top"}),I&&G&&Object.assign(G.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const e3=document.getElementById(`EZUIKitPlayer-${X2}`);e3&&(e3.setAttribute("width",String(V2)),e3.setAttribute("height",String(W))),[...Array.from((G==null?void 0:G.children)||[]),...Array.from(((t0=G==null?void 0:G.querySelectorAll)==null?void 0:t0.call(G,".play-window, video, canvas, iframe"))||[]),e3].filter(Boolean).forEach(b=>{Object.assign(b.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function d3(P={}){const{clearElement:I=!0,resetError:G=!1}=P;X3();const T2=s0;s0=null,i0=!1,r0+=1,T2&&P2(T2),I&&n3(),Z3.value=!1,M1.value=!1,G&&(b1.value="")}function $3(P){X3(),q1=window.setTimeout(()=>{P!==r0||!M1.value||(b1.value="视频加载超时",d3({resetError:!1}))},oV)}function X3(){q1&&(window.clearTimeout(q1),q1=null)}function P2(P){if(!(!P||typeof P.stop!="function"))try{const I=P.stop();I&&typeof I.catch=="function"&&I.catch(()=>{})}catch(I){console.warn("Pasture EZUIKit stop error",I)}}function n3(){if(typeof document=="undefined")return;const P=document.getElementById(`${X2}-wrap`);if(P){const G=document.createElement("div");G.id=X2,G.className="pasture-video-player",P.replaceWith(G);return}const I=document.getElementById(X2);I&&I.replaceChildren()}function s3(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function m1(){return L3(this,null,function*(){try{const P=yield NR();if(j1)return;i2.value=B2(B2({},Js),P),T();const I=P1(P.list);v2.value=I.length?I:x1(k8),w1(v2.value)}catch(P){i2.value=Js,v2.value=x1(k8)}})}function w1(P=v2.value,I=600){j1||!a.active||(G1&&window.clearTimeout(G1),G1=window.setTimeout(()=>{G1=null,!(j1||!a.active)&&f0(P)},I))}function f0(){return L3(this,arguments,function*(P=[]){const I=++a1,G=(Array.isArray(P)?P:[]).filter(g0).slice(0,60);if(!G.length)return;const T2=yield xe(G,5,V2=>L3(this,null,function*(){const W=se(V2),e3=q3(V2);let r1=e3,c0=null,t0=D(V2,e3)||K2(V2,V2.name,W);try{(!t0||!r1.some(T1))&&(r1=yield Te(V2))}catch(q){r1=e3}if(t0=t0||D(V2,r1)||K2(V2,V2.name,W),!t0){try{c0=W?yield kR(W):null}catch(b2){c0=null}const q=q3(c0);t0=u0(c0)||D(c0,q),q.length&&!r1.length&&(r1=q)}t0=t0||K2(V2,V2.name,W);const b=!!(W||W1(V2)||r1.some(T1)||T1(V2));if(!t0&&!r1.length&&b===V2.canLocate)return null;const B={key:V2.key,id:V2.id,realPastureId:W,name:V2.name,township:t0||V2.township,grasslands:r1.length?r1:V2.grasslands,grasslandArea:r1.length?v3(r1):L2(V2),canLocate:b,locateText:b?"定位":"--"};return B0(B,I),B}));if(j1||I!==a1)return;const u3=new Map;T2.filter(Boolean).forEach(V2=>{[V2.key,V2.id,V2.realPastureId,V2.name].filter(Boolean).forEach(W=>{u3.set(String(W),V2)})}),u3.size&&p0(u3)})}function g0(P={}){const I=String((P==null?void 0:P.township)||"").trim();return!(T1(P)||q3(P).some(T1))&&je(P).length?!0:I&&I!=="--"?!1:L2(P)>0||Le(P)}function B0(P,I=a1){if(!P||j1||I!==a1)return;const G=new Map;[P.key,P.id,P.realPastureId,P.name].filter(Boolean).forEach(T2=>{G.set(String(T2),P)}),p0(G)}function p0(P){P!=null&&P.size&&(v2.value=v2.value.map(I=>{var V2,W;const G=[I.key,I.id,I.realPastureId,I.name].filter(Boolean).map(e3=>P.get(String(e3))).find(Boolean);if(!G)return I;const T2=G.township&&G.township!=="--"?G.township:I.township,u3=Number(G.grasslandArea)>0?Number(G.grasslandArea):L2(I);return t3(B2({},I),{township:T2,grasslands:G.grasslands,grasslandArea:u3,acreage:u3,value:u3,grasslandCount:E0(G,G.grasslands),hasGrasslandBoundary:((W=(V2=G.grasslands)==null?void 0:V2.some)==null?void 0:W.call(V2,T1))||I.hasGrasslandBoundary,canLocate:G.canLocate,locateText:G.locateText,searchText:[I.name,T2,I.id].filter(Boolean).join(" ")})}))}function ve(P=[]){const I=[],G=T2=>{if(!T2)return;if(Array.isArray(T2)){T2.forEach(G);return}if(typeof T2!="object")return;const u3=q3(T2);if(u3.length)I.push(...u3);else{let V2=!1;["rows","list","data","result","grassland","pasture","features"].forEach(W=>{const e3=T2==null?void 0:T2[W];e3&&(Array.isArray(e3)||typeof e3=="object")&&(V2=!0,G(e3))}),V2||I.push(T2)}};return G(P),I}function u0(P){const I=Array.isArray(P)?P:Array.isArray(P==null?void 0:P.rows)?P.rows:Array.isArray(P==null?void 0:P.list)?P.list:Array.isArray(P==null?void 0:P.data)?P.data:[P];for(const G of I.filter(Boolean)){const T2=Array.isArray(G==null?void 0:G.fields)?G.fields:Array.isArray(G==null?void 0:G.children)?G.children:[],u3=g1(G,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(u3)return u2(be(u3));for(const W of T2){const e3=String((W==null?void 0:W.name)||(W==null?void 0:W.label)||(W==null?void 0:W.title)||"").trim(),r1=g1(W,["value","text","content"]);if(r1&&/区域|地址|乡镇/.test(e3))return u2(be(r1))}const V2=Object.entries(G||{}).filter(([W])=>/fullName|full_name|address|areaName|area_name|town/i.test(W)).map(([,W])=>W);for(const W of V2)if(W)return u2(be(W))}return""}function be(P){const I=String(P||"").trim();if(!I||I==="--")return"";const G=I.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(G==null?void 0:G[1])||I}function xe(P,I,G){return L3(this,null,function*(){const T2=new Array(P.length);let u3=0;const V2=Array.from({length:Math.min(I,P.length)},()=>L3(this,null,function*(){for(;u3L3(this,null,function*(){if(T1(T2))return T2;const u3=y0(T2);if(!u3)return T2;try{const V2=yield PR(u3),e3=ve([V2]).find(T1);return e3?l0(T2,e3):T2}catch(V2){return T2}}));return X1(G)})}function We(P){return L3(this,null,function*(){var V2,W,e3,r1;const I=++g;R2(),(W=(V2=m.value)==null?void 0:V2.clearFloatingOverlays)==null||W.call(V2);let G=[];try{G=yield Te(P)}catch(c0){G=q3(P)}if(I!==g)return;const T2=G.filter(T1);if(!T2.length){p2();return}if(I!==g)return;((r1=(e3=m.value)==null?void 0:e3.focusPasture)==null?void 0:r1.call(e3,{name:P==null?void 0:P.name,grasslands:T2,highlightTone:"white"}))||p2()})}function Ze(){p.value=!1,i("loading-progress",{progress:0})}function F2(){p.value=!0,i("loading-progress",{progress:100}),i("map-ready")}function N(P=H3.value){const I=String((P==null?void 0:P.key)||"").toLowerCase(),G=String((P==null?void 0:P.layerName)||"").toLowerCase();return I===Qs||G.includes("t_pasture_grassland")}function _(P={}){const I=document.querySelector(".pasture-management"),G=I==null?void 0:I.getBoundingClientRect();return G?{x:((Number(P.x)||G.left+G.width/2)-G.left)/Math.max(1,G.width)*1920,y:((Number(P.y)||G.top+G.height/2)-G.top)/Math.max(1,G.height)*1080}:{x:Number(P.x)||960,y:Number(P.y)||540}}function d(P){const I=(P==null?void 0:P.properties)||{};return Math.min(10,Object.entries(I).filter(([G,T2])=>h(G,T2)).length)}function h(P,I){return I==null||I===""||Array.isArray(I)||typeof I=="object"?!1:!c3.has(String(P||"").toLowerCase())}function y(P={}){const I=w(P.lng),G=w(P.lat);return I===""||G===""?"":`POINT(${I} ${G})`}function w(P){const I=Number(P);return Number.isFinite(I)?I.toFixed(8).replace(/\.?0+$/,""):""}function x(P={},I={}){var u3,V2;const G=k(P);if(!G||!Object.keys(G).length)return null;const T2=s2(P,G);return{id:G.id||G.grasslandId||G.grassland_id||`${(u3=I==null?void 0:I.lngLat)==null?void 0:u3.lng}-${(V2=I==null?void 0:I.lngLat)==null?void 0:V2.lat}`,properties:G,feature:{type:"Feature",properties:G,geometry:T2},geometry:T2,layer:H3.value||u1.value,lngLat:I.lngLat}}function k(P={}){var e3,r1,c0,t0;const I=e2(P),G=J((I==null?void 0:I.grassland)||((e3=I==null?void 0:I.data)==null?void 0:e3.grassland)),T2=J((I==null?void 0:I.pasture)||((r1=I==null?void 0:I.data)==null?void 0:r1.pasture)),u3=J((I==null?void 0:I.pasture_balance)||(I==null?void 0:I.pastureBalance)||((c0=I==null?void 0:I.data)==null?void 0:c0.pasture_balance)),V2=G||J(I==null?void 0:I.data)||J(I==null?void 0:I.result)||J(I);if(!V2&&!T2&&!u3)return null;const W=g1(V2||{},["recognizedYakCount","recognized_yak_count"]);return t3(B2(B2(B2(B2(B2({},V2||{}),u3||{}),a2(V2)),a2(T2)),a2(u3)),{pastureName:g1(T2||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||g1(V2||{},["pastureName","pasture_name"]),recognizedYakCount:W,yakCount:(t0=W!=null?W:g1(T2||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?t0:g1(u3||{},["yakCount","yak_count","yakNumber","yak_number"])})}function a2(P={}){return(Array.isArray(P==null?void 0:P.dyColumn)?P.dyColumn:Array.isArray(P==null?void 0:P.fields)?P.fields:[]).reduce((G,T2)=>{var W,e3;const u3=String((T2==null?void 0:T2.field)||(T2==null?void 0:T2.key)||(T2==null?void 0:T2.title)||(T2==null?void 0:T2.label)||"").trim(),V2=(e3=(W=T2==null?void 0:T2.value)!=null?W:T2==null?void 0:T2.text)!=null?e3:T2==null?void 0:T2.content;return u3&&V2!==void 0&&V2!==null&&V2!==""&&(G[u3]=V2),G},{})}function e2(P){return!P||typeof P!="object"?{}:P.data&&typeof P.data=="object"?P.data:P.result&&typeof P.result=="object"?P.result:P}function s2(P={},I={}){var V2,W;const G=e2(P),T2=J((G==null?void 0:G.grassland)||((V2=G==null?void 0:G.data)==null?void 0:V2.grassland)),u3=J((G==null?void 0:G.pasture)||((W=G==null?void 0:G.data)==null?void 0:W.pasture));return g1(T2||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||g1(u3||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||g1(I,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||g1(G,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function J(P){return Array.isArray(P)?P.find(I=>I&&typeof I=="object")||null:P&&typeof P=="object"?P:null}function H(){C.value=null,Y.value=null,F.value=!1,z.value=!1}function R2(){var P,I;h3+=1,H(),(I=(P=m.value)==null?void 0:P.clearSelectedFeature)==null||I.call(P)}function p2(){var P,I;g+=1,(I=(P=m.value)==null?void 0:P.clearPastureFocus)==null||I.call(P)}function c2(P,I){return`${P}${P}${I}0.025${I}0.90.74`}function f2(){return L3(this,arguments,function*(P={}){var V2,W,e3,r1,c0,t0;if(!N(P.overlayLayer||H3.value)){R2();return}const I=Number((V2=P==null?void 0:P.lngLat)==null?void 0:V2.lng),G=Number((W=P==null?void 0:P.lngLat)==null?void 0:W.lat);if(!Number.isFinite(I)||!Number.isFinite(G)){R2();return}const T2=++h3,u3=P.screen||{x:960,y:540};Y.value=null,C.value=null,F.value=!1,z.value=!0,(r1=(e3=m.value)==null?void 0:e3.clearSelectedFeature)==null||r1.call(e3);try{const b=yield xR(y({lng:I,lat:G}));if(T2!==h3)return;const B=x(b,P);if(!B||d(B)<=0){H();return}C.value=B,Y.value=u3,F.value=!1,B.geometry&&((t0=(c0=m.value)==null?void 0:c0.highlightFeature)==null||t0.call(c0,B))}catch(b){if(T2!==h3)return;H()}finally{T2===h3&&(z.value=!1)}})}function O2(){var P,I;R2(),(I=(P=m.value)==null?void 0:P.refreshView)==null||I.call(P)}function o2(){var P,I,G,T2;if(R2(),(I=(P=m.value)==null?void 0:P.hasMap)!=null&&I.call(P)){p.value=!0,(T2=(G=m.value)==null?void 0:G.resetView)==null||T2.call(G);return}p.value=!1,f.value+=1,ae(()=>{window.setTimeout(()=>{var u3,V2;(V2=(u3=m.value)==null?void 0:u3.refreshView)==null||V2.call(u3)},160)})}e({refreshMapView:O2,resetMap:o2});function T(){i("module-stats",{moduleKey:"pasture-management",items:j().map(P=>({zh:P.name,name:P.name,value:P.value,unit:P.unit,decimals:Number.isInteger(Number(P.value))?0:2}))})}function j(){const P=new Map;(Array.isArray(U1.value)?U1.value:[]).forEach(G=>{!(G!=null&&G.name)||Z2(G.name)||P.set(G.name,G)});const I=P.get("牧户数量")||yr.find(G=>G.name==="牧户数量"||G.zh==="牧户数量");return P.set("牧户数量",t3(B2({},I),{name:"牧户数量",value:b9,unit:(I==null?void 0:I.unit)||"户"})),S2.map(G=>P.get(G)||yr.find(T2=>T2.name===G||T2.zh===G)).filter(Boolean).slice(0,4)}function K(P=[]){return(Array.isArray(P)?P:[]).map((I,G)=>{const T2=I.key||I.id||I.code||I.name||I.zh||`${G}`,u3=I.name||I.title||I.label||I.zh,V2=E2(u3,T2),W=g1(I,["value","num","count","dataValue"]);if(!V2||W===void 0||W===null||W==="")return null;const e3=D2(V2,W,I.unit||I.dw||"");return{key:T2,name:e3.name,value:e3.value,unit:e3.unit,icon:I.icon||["town","area","yield","rate"][G%4]}}).filter(Boolean)}function E2(P,I){const G=String(P||I||""),T2=String(I||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(T2)||/户均.*牦牛|牦牛.*户均/.test(G)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(T2)||/户均.*草地|草地.*户均/.test(G)?"户均草地面积":/income|revenue|人均收入/.test(T2)||G.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(T2)||G.includes("防反贫")||G.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(T2)||G.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(T2)||G.includes("牧户数量")?"牧户数量":/yak/.test(T2)||G.includes("牦牛")?null:/grass/.test(T2)||G.includes("草地面积")?"草地面积":/wet/.test(T2)||G.includes("湿地")?"湿地面积":G.includes("牧户")||G.includes("牧场")?"牧户数量":/project/.test(T2)||G.includes("工程")||G.includes("项目")?"工程数量":/base/.test(T2)||G.includes("基地")?"基地数量":G}function D2(P,I,G){const T2=Number(I)||0;return P==="户均牦牛头数"?{name:P,value:T2,unit:G||"头"}:P==="户均草地面积"?{name:P,value:T2,unit:G||"亩"}:P==="人均收入"?{name:P,value:T2,unit:G||"元/年"}:P==="联户数量"||P==="防反贫监测户"?{name:P,value:T2,unit:G||"户"}:(P.includes("草地")||P.includes("湿地"))&&!String(G).includes("万")?{name:P,value:Math.round(T2/1e4*100)/100,unit:"万亩"}:P.includes("牧户")?{name:P,value:T2,unit:G||"户"}:P.includes("工程")||P.includes("项目")||P.includes("基地")?{name:P,value:T2,unit:G||"个"}:{name:P,value:T2,unit:G}}function Z2(P){return P==="草地面积"||P==="湿地面积"||P==="区域数量"||P==="牦牛数量"}function q2(P=[]){return(Array.isArray(P)?P:[]).map(I=>{const G=g1(I,["areaName","area_name","name","townName","zoneName"]),T2=g1(I,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!G||T2===void 0||T2===null||T2===""?null:{key:I.code||I.areaCode||I.area_code||G,name:G,value:Number(T2)||0,unit:"户"}}).filter(Boolean).sort((I,G)=>G.value-I.value)}function f3(P=[]){return(Array.isArray(P)?P:[]).map(I=>{const G=g1(I,["areaName","area_name","name","townName","zoneName"]),T2=Number(g1(I,["registeredMuhuCount","registered_muhu_count","registeredCount"])),u3=Number(g1(I,["muhuCount","muhu_count","onlineCount"])),V2=g1(I,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),W=V2!=null&&V2!==""?V2:T2>0?u3/T2*100:void 0;return!G||W===void 0||W===null||W===""?null:{key:I.code||I.areaCode||I.area_code||G,name:G,value:Number(String(W).replace("%",""))||0,unit:"%",extra:Number.isFinite(u3)&&Number.isFinite(T2)&&T2>0?`${u3}/${T2}户`:I.extra}}).filter(Boolean)}function P3(P=[]){const I=new Map;return(Array.isArray(P)?P:[]).forEach(G=>{const T2=String((G==null?void 0:G.key)||(G==null?void 0:G.code)||(G==null?void 0:G.areaCode)||(G==null?void 0:G.area_code)||"").trim(),u3=u2((G==null?void 0:G.name)||(G==null?void 0:G.areaName)||(G==null?void 0:G.area_name)||(G==null?void 0:G.townName)||(G==null?void 0:G.zoneName));[T2,u3].filter(Boolean).forEach(V2=>I.set(V2,G))}),P8.map(G=>{const T2=I.get(String(G.key||""))||I.get(G.name);return T2?t3(B2({},T2),{key:G.key,name:G.name,unit:T2.unit||"%"}):{key:G.key,name:G.name,value:0,unit:"%",extra:"--"}})}function j3(P=[]){const I=new Map;return(Array.isArray(P)?P:[]).forEach(G=>{const T2=String((G==null?void 0:G.key)||(G==null?void 0:G.code)||(G==null?void 0:G.areaCode)||(G==null?void 0:G.area_code)||"").trim(),u3=u2((G==null?void 0:G.name)||(G==null?void 0:G.areaName)||(G==null?void 0:G.area_name)||(G==null?void 0:G.townName)||(G==null?void 0:G.zoneName)||(G==null?void 0:G.township));[T2,u3].filter(Boolean).forEach(V2=>I.set(V2,G))}),P8.map(G=>{const T2=I.get(String(G.key||""))||I.get(G.name);return{key:G.key,name:G.name,value:Number(T2==null?void 0:T2.value)||0,unit:(T2==null?void 0:T2.unit)||"万亩"}}).sort((G,T2)=>T2.value-G.value)}function E3(P=[]){const I=new Map;return(Array.isArray(P)?P:[]).forEach(G=>{const T2=g1(G,["ageRange","age_range","age","name","label"]),u3=g1(G,["number","value","count","num"]);!T2||u3===void 0||u3===null||u3===""||I.set(T2,(I.get(T2)||0)+(Number(u3)||0))}),Array.from(I.entries()).map(([G,T2])=>({key:G,name:G,value:T2,unit:"人"}))}function C1(P=[]){const I=new Map;return(Array.isArray(P)?P:[]).forEach(G=>{const T2=g1(G,["sex","gender","name"]),u3=g1(G,["number","value","count","num"]);if(!T2||u3===void 0||u3===null||u3==="")return;const V2=String(T2).includes("女")?"女":String(T2).includes("男")?"男":T2;I.set(V2,(I.get(V2)||0)+(Number(u3)||0))}),Array.from(I.entries()).map(([G,T2])=>({key:G,name:G,value:T2,unit:"人"}))}function P1(P=[]){return(Array.isArray(P)?P:[]).map((I,G)=>{const T2=g1(I,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!T2)return null;const u3=q3(I),V2=L2(I)||v3(u3),W=E0(I,u3),e3=se(I),r1=D(I,u3)||K2(I,T2,e3),c0=I1(I),t0=t3(B2({},I),{key:I.key||I.id||I.pasturesId||I.pastures_id||`${T2}-${G}`,id:e3||I.id||I.pastureId||I.pasturesId||I.pastures_id||I.muhuId||I.key,realPastureId:e3,name:T2,pastureSortOrder:c0,township:r1||"--",grasslandArea:V2,acreage:V2,grasslandCount:W,hasGrasslandBoundary:W>0,grasslands:u3});return t0.canLocate=!!(e3||W1(I)||u3.some(T1)||T1(I)),t0.locateText=t0.canLocate?"定位":"--",t0.value=t0.grasslandArea,t0.unit="亩",t0.searchText=[t0.name,t0.herdsmanName,t0.herdsman_name,t0.phone,t0.phonenumber,t0.idCard,t0.id_card,t0.township,t0.id].filter(Boolean).join(" "),t0}).filter(Boolean).sort($1)}function x1(P=[]){return[...Array.isArray(P)?P:[]].map(I=>t3(B2({},I),{pastureSortOrder:I1(I),grasslandArea:L2(I),acreage:L2(I)})).sort($1)}function I1(P={}){const I=g1(P,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(I==null||I==="")return null;const G=Number(String(I).replace(/,/g,"").trim());return Number.isFinite(G)?G:null}function $1(P,I){const G=I1(P),T2=I1(I);if(G!==null||T2!==null)return G===null?1:T2===null?-1:G!==T2?G-T2:String((P==null?void 0:P.name)||"").localeCompare(String((I==null?void 0:I.name)||""),"zh-CN");const u3=W1(P)?1:0,V2=W1(I)?1:0;if(u3!==V2)return V2-u3;const W=E0(P),e3=E0(I);if(W!==e3)return e3-W;const r1=L2(P),c0=L2(I),t0=r1>0?1:0,b=c0>0?1:0;if(t0!==b)return b-t0;const B=Le(P)?1:0,q=Le(I)?1:0;return B!==q?q-B:r1!==c0?c0-r1:String((P==null?void 0:P.name)||"").localeCompare(String((I==null?void 0:I.name)||""),"zh-CN")}function W1(P={}){const I=g1(P,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return I===!0||I===1||I==="1"||typeof I=="string"&&["true","yes","y"].includes(I.trim().toLowerCase())?!0:E0(P)>0}function E0(P={},I=P==null?void 0:P.grasslands){const G=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const T2 of G){const u3=Number(P==null?void 0:P[T2]);if(Number.isFinite(u3)&&u3>0)return u3}return Array.isArray(I)?I.length:0}function L2(P={}){const G=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(u3=>A3(P==null?void 0:P[u3]));return G.find(u3=>u3>0)||G.find(u3=>u3===0)||0}function v3(P=[]){return(Array.isArray(P)?P:[]).reduce((I,G)=>I+L2(G),0)}function A3(P){if(typeof P=="number")return Number.isFinite(P)?P:0;const I=String(P!=null?P:"").trim();if(!I||I==="--")return 0;const G=I.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!G)return 0;const T2=Number(G[0]);return Number.isFinite(T2)?I.includes("万")?T2*1e4:T2:0}function q3(P={}){const I=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(u3=>{const V2=P==null?void 0:P[u3];Array.isArray(V2)?I.push(...V2):Array.isArray(V2==null?void 0:V2.rows)?I.push(...V2.rows):Array.isArray(V2==null?void 0:V2.list)?I.push(...V2.list):Array.isArray(V2==null?void 0:V2.data)&&I.push(...V2.data)});const T2=g1(P,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(T2||P!=null&&P.geometry)&&I.push(t3(B2({},P),{id:(P==null?void 0:P.grasslandId)||(P==null?void 0:P.gid)||(P==null?void 0:P.id),pastureId:(P==null?void 0:P.pastureId)||(P==null?void 0:P.pasturesId)||(P==null?void 0:P.pastures_id)||(P==null?void 0:P.muhuId)||(P==null?void 0:P.id),name:(P==null?void 0:P.grasslandName)||(P==null?void 0:P.name),wkt:T2,geometry:P==null?void 0:P.geometry})),I.filter(Boolean)}function T1(P={}){var I,G;return typeof P=="string"?!!P.trim():(P==null?void 0:P.type)==="Feature"||P!=null&&P.type&&(P!=null&&P.coordinates)||(I=P==null?void 0:P.geometry)!=null&&I.type||(G=P==null?void 0:P.geometry)!=null&&G.coordinates||typeof(P==null?void 0:P.geometry)=="string"?!0:!!g1(P,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function l0(P={},I={}){var V2,W,e3,r1,c0;const G=t3(B2(B2({},P),I),{id:(V2=P==null?void 0:P.id)!=null?V2:I==null?void 0:I.id,grasslandId:(c0=(r1=(e3=(W=P==null?void 0:P.grasslandId)!=null?W:P==null?void 0:P.grassland_id)!=null?e3:I==null?void 0:I.grasslandId)!=null?r1:I==null?void 0:I.grassland_id)!=null?c0:I==null?void 0:I.id}),T2=g1(I,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),u3=g1(P,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(T2||u3)&&(G.wkt=T2||u3),G.geometry=(I==null?void 0:I.geometry)||(P==null?void 0:P.geometry),G}function X1(P=[]){const I=new Set;return(Array.isArray(P)?P:[]).filter(G=>{if(!G)return!1;const T2=h0(G);return T2&&I.has(T2)?!1:(T2&&I.add(T2),!0)})}function h0(P={}){const I=g1(P,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(I)return`g:${String(I).slice(0,240)}`;if(P!=null&&P.geometry)try{return`j:${JSON.stringify(P.geometry).slice(0,240)}`}catch(T2){return""}const G=y0(P);return G?`id:${G}`:""}function y0(P={}){return Ve(g1(P,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(P={}){return[P==null?void 0:P.realPastureId,P==null?void 0:P.pastureId,P==null?void 0:P.pasturesId,P==null?void 0:P.pastures_id,P==null?void 0:P.muhuId,P==null?void 0:P.muhu_id,P==null?void 0:P.id].map(Ve).filter(Boolean).filter((I,G,T2)=>T2.indexOf(I)===G)}function Ve(P){const I=String(P!=null?P:"").trim();return I&&I!=="--"?I:""}function se(P={}){return je(P)[0]||null}function Le(P={}){return P!=null&&P.canLocate||T1(P)?!0:q3(P).some(T1)}function g1(P={},I=[]){for(const G of I){const T2=P==null?void 0:P[G];if(T2!=null&&T2!=="")return T2}}function D(P={},I=[]){const G=g1(P,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),T2=u2(G);if(T2)return T2;const u3=G3(g1(P,["areaCode","area_code","townCode","town_code","code"]));if(u3)return u3;for(const W of I){const e3=g1(W,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),r1=u2(e3);if(r1)return r1;const c0=G3(g1(W,["areaCode","area_code","townCode","town_code","code"]));if(c0)return c0}const V2=B3(P);if(V2)return V2;for(const W of I){const e3=B3(W);if(e3)return e3}return""}function u2(P){const I=String(P||"").trim();if(!I||I==="--")return"";const G=G3(I);if(G)return G;if(mx(I))return I;const T2=vn.find(V2=>I.includes(V2));if(T2)return T2;const u3=be(I);return u3&&u3!==I?u2(u3):""}function K2(P={},I="",G=""){const T2=[G,P.realPastureId,P.pastureId,P.pasturesId,P.pastures_id,P.muhuId,P.id];for(const V2 of T2){const W=O3[String(V2||"").trim()];if(W)return u2(W)}const u3=[I,P.name,P.pasturesName,P.pastures_name,P.muhuName,P.muhu_name,P.pastureName,P.pasture_name];for(const V2 of u3){const W=V3[i1(V2)];if(W)return u2(W)}return""}function i1(P){return String(P||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function G3(P){const I=String(P||"").trim();if(!I)return"";const G=I.replace(/\D/g,"");return G?va(G):""}function B3(P={}){const I=y1(P),G=o3(I);if(!G)return"";const T2=i3.find(u3=>m3(G,u3.geometry));return T2!=null&&T2.name?u2(T2.name):""}function y1(P={}){var T2,u3;if((P==null?void 0:P.type)==="Feature")return y1(P.geometry);if(P!=null&&P.type&&(P!=null&&P.coordinates))return P;if((T2=P==null?void 0:P.geometry)!=null&&T2.type||(u3=P==null?void 0:P.geometry)!=null&&u3.coordinates)return P.geometry;const I=g1(P,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!I||typeof I!="string")return null;const G=I.trim();if(!G)return null;if(G.startsWith("{")||G.startsWith("["))try{const V2=JSON.parse(G);return y1(V2)}catch(V2){return null}return k1(G)}function k1(P){var V2;const I=String(P||"").trim(),G=I.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),T2=(V2=G==null?void 0:G[1])==null?void 0:V2.toUpperCase();if(!T2)return null;const u3=I.slice(I.indexOf("("));return T2==="POINT"?{type:"Point",coordinates:Z(u3)}:T2==="MULTIPOINT"?{type:"MultiPoint",coordinates:z2(u3).map(Z).filter(Boolean)}:T2==="LINESTRING"?{type:"LineString",coordinates:_2(u3)}:T2==="MULTILINESTRING"?{type:"MultiLineString",coordinates:z2(u3).map(_2).filter(W=>W.length)}:T2==="POLYGON"?{type:"Polygon",coordinates:G2(u3)}:T2==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:z2(u3).map(G2).filter(W=>W.length)}:null}function Z(P){const I=String(P||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return I.length>=2&&Number.isFinite(I[0])&&Number.isFinite(I[1])?[I[0],I[1]]:null}function _2(P){return String(P||"").replace(/^\(+|\)+$/g,"").split(",").map(Z).filter(Boolean)}function G2(P){return z2(P).map(_2).filter(I=>I.length>=3)}function z2(P){const I=[];let G=0,T2=-1;return Array.from(String(P||"")).forEach((u3,V2)=>{u3==="("?(G===0&&(T2=V2+1),G+=1):u3===")"&&(G-=1,G===0&&T2>=0&&(I.push(P.slice(T2,V2)),T2=-1))}),I.length?I:[String(P||"")]}function h2(P){try{const I=typeof P=="string"?JSON.parse(P):P;return((I==null?void 0:I.features)||[]).map(G=>{var T2,u3,V2,W;return{name:((T2=G==null?void 0:G.properties)==null?void 0:T2.name)||((u3=G==null?void 0:G.properties)==null?void 0:u3.areaName)||((V2=G==null?void 0:G.properties)==null?void 0:V2.townName),code:(W=G==null?void 0:G.properties)==null?void 0:W.code,geometry:G==null?void 0:G.geometry}}).filter(G=>{var T2;return G.name&&((T2=G.geometry)==null?void 0:T2.coordinates)})}catch(I){return[]}}function o3(P){const I=J2(P);if(!I.length)return null;const G=I.reduce((T2,u3)=>({lng:T2.lng+u3[0],lat:T2.lat+u3[1]}),{lng:0,lat:0});return[G.lng/I.length,G.lat/I.length]}function J2(P){const I=[],G=T2=>{if(Array.isArray(T2)){if(T2.length>=2&&Number.isFinite(Number(T2[0]))&&Number.isFinite(Number(T2[1]))){I.push([Number(T2[0]),Number(T2[1])]);return}T2.forEach(G)}};return G(P==null?void 0:P.coordinates),I}function m3(P,I){return!P||!(I!=null&&I.coordinates)?!1:I.type==="Polygon"?k3(P,I.coordinates):I.type==="MultiPolygon"?I.coordinates.some(G=>k3(P,G)):!1}function k3(P,I){var W,e3,r1,c0;const G=I==null?void 0:I[0];if(!Array.isArray(G)||G.length<3)return!1;let T2=!1;const u3=P[0],V2=P[1];for(let t0=0,b=G.length-1;t0V2!=C2>V2&&u3<(b2-B)*(V2-q)/(C2-q||1e-12)+B&&(T2=!T2)}return T2}return(P,I)=>(O(),V("div",$W,[(O(),_e(z8,{key:f.value,ref_key:"mapSceneRef",ref:m,class:"pasture-ol-map-layer",active:a.active,"tile-url-template":sV,center:p3,"initial-zoom":9,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":H3.value,"overlay-layers":C3.value,onReady:F2,onMapClick:f2},null,8,["active","overlay-layer","overlay-layers"])),I[2]||(I[2]=S("div",{class:"pasture-map-scrim"},null,-1)),p.value?U3("",!0):(O(),V("div",WW,"3D地图加载中")),S("div",VW,[S("div",HW,[S("div",KW,[S1(U0,{class:"pasture-side-card left-card",title:"牧户区域统计",width:D1(r),height:s.value},{default:M0(()=>[S1(wn,{panel:oe.value,compact:"","column-label-standard":""},null,8,["panel"])]),_:1},8,["width","height"]),S1(U0,{class:"pasture-side-card left-card",title:"草场面积分布",width:D1(r),height:s.value},{default:M0(()=>[S1(wn,{panel:z0.value,compact:""},null,8,["panel"])]),_:1},8,["width","height"]),S1(U0,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:D1(r),height:s.value},{default:M0(()=>[S("div",qW,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:J3.value.length<=1,"aria-label":"上一个监控点",onClick:de}," ‹ ",8,JW),S("div",{class:o1(["pasture-video-grid",{"is-single":O1.value.length<=1}])},[(O(!0),V(Y3,null,e1(O1.value,G=>(O(),V("div",{key:G.key,ref_for:!0,ref:T2=>Z1(T2,G),class:o1(["pasture-video-screen",{"is-active":G.isActive,"is-playing":Z3.value&&G.isActive,"is-loading":M1.value&&G.isActive}]),style:o0(d0(G.live,G.isActive)),onClick:T2=>M3(G.index)},[G.isActive?(O(),V("div",{key:0,id:X2,class:"pasture-video-player"})):U3("",!0),(!Z3.value||!G.isActive)&&G.live.hdPlayUrl?(O(),V("div",ZW)):U3("",!0),M1.value&&G.isActive?(O(),V("div",XW,"加载中")):U3("",!0),b1.value&&G.isActive?(O(),V("div",eV,l2(b1.value),1)):U3("",!0),S("div",tV,l2(G.live.title),1)],14,QW))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:J3.value.length<=1,"aria-label":"下一个监控点",onClick:Re}," › ",8,nV)])]),_:1},8,["width","height"]),S1(U0,{class:"pasture-side-card left-card",title:"牧户上线率",width:D1(r),height:s.value},{default:M0(()=>[S1(wn,{panel:P0.value,compact:""},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",aV,[S("div",iV,[S1(U0,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:D1(r),height:s.value},{default:M0(()=>[S1(wn,{panel:x2.value,compact:"","column-label-standard":""},null,8,["panel"])]),_:1},8,["width","height"]),S1(U0,{class:"pasture-side-card right-card",title:"牧户性别统计",width:D1(r),height:s.value},{default:M0(()=>[S1(wn,{panel:j2.value,compact:""},null,8,["panel"])]),_:1},8,["width","height"]),S1(U0,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:D1(r),height:u.value},{default:M0(()=>[S1(wn,{panel:H2.value,compact:"",onRowSelect:We},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",rV,[S1(Dr,{modelValue:y2.value,"onUpdate:modelValue":I[0]||(I[0]=G=>y2.value=G),"selected-legend-key":A2.value,"onUpdate:selectedLegendKey":I[1]||(I[1]=G=>A2.value=G),"topic-key":"grassland",layers:U2.value,legends:S3.value,multiple:"",width:232,height:430},null,8,["modelValue","selected-legend-key","layers","legends"])]),_1.value?(O(),V("div",{key:0,class:"pasture-map-feature-info",style:o0(B1.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":"关闭图斑详情",title:"关闭",onClick:ue(R2,["stop"])}," × "),S1(Ia,{feature:C.value,empty:F.value,loading:z.value,width:460,height:s1.value,"compact-grassland":""},null,8,["feature","empty","loading","height"])],4)):U3("",!0)])]))}},uV=`{ - "datasetName": "红原牦牛产业全链分类数据草稿", - "generatedAt": "2026-07-01T19:47:37", - "privacy": { - "includedContactFields": [ - "户主", - "负责人", - "联系人", - "联系电话", - "服务热线", - "信贷联系电话", - "24小时理赔热线" - ], - "excludedPersonalFields": [ - "身份证", - "备注" - ], - "note": "此 JSON 面向大屏展示,已保留可展示的联系人/电话字段;身份证和备注仍未写入。图片文件仅登记为视觉参考,不作为业务数据。" - }, - "fileInventory": [ - { - "path": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "type": "xlsx", - "role": "data-source" - }, - { - "path": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "type": "xlsx", - "role": "data-source" - }, - { - "path": "cxpt.qkl.public.t_base_land", - "type": "database-table", - "role": "data-source" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-1.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-2.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-3.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-4.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-5.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-6.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-7.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-8.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-9.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-10.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-11.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/Users/mocker/.codex/attachments/58283330-2b4f-4edc-8be4-3b517515ec54/image-12.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-9ee4fd26-fb6f-46c2-81ea-f9925d24acf8.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-acf2f529-2ce8-4d8b-96eb-6899d2beb524.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-eded9fbe-e18f-4b2a-88ad-b207e8589cd3.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-ae00ea0b-6e25-4a45-b182-2ab3cdae2abd.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-d7084d17-25fa-43e5-b216-a1d62b49f862.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-f3e1ccc7-5d38-4103-96eb-be214e5b67c0.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-5ffbf4b9-ab8f-49a4-8577-705da4e7c157.png", - "type": "png", - "role": "visual-reference" - }, - { - "path": "/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-1548ca35-7fe9-4786-9cb4-41366b1b5b10.png", - "type": "png", - "role": "visual-reference" - } - ], - "summary": { - "categoryCount": 18, - "itemCount": 206, - "categoryCounts": { - "YC-FAMILY-PASTURE": 82, - "YC-BREEDING-BASE": 19, - "YC-BREEDING-STOCK": 4, - "YC-FORAGE-BASE": 8, - "YC-DISASTER-FORAGE-STORAGE": 7, - "YC-PROCESSING-PLANT": 9, - "YC-SLAUGHTERHOUSE": 7, - "YC-FARM-EQUIPMENT": 2, - "YC-DISEASE-CONTROL": 3, - "YC-TECH-TRAINING": 8, - "YC-SERVICE-FINANCE": 4, - "YC-SERVICE-INSURANCE": 4, - "YC-GRASSLAND-RESOURCE": 3, - "YC-CXPT-BREEDING-BASE": 28, - "YC-CXPT-FORAGE-BASE": 5, - "YC-CXPT-BREEDING-STOCK-BASE": 1, - "YC-CXPT-GRASS-SEED-BASE": 1, - "YC-CXPT-OTHER-BASE": 11 - } - }, - "sourceSheets": [ - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "防灾减灾饲草储备库", - "categoryCode": "YC-DISASTER-FORAGE-STORAGE", - "rawRowCount": 7, - "keptFields": [ - "主体全称", - "上级单位", - "所属乡镇", - "详细地址", - "经度", - "纬度", - "运营状态", - "总库容 (吨)", - "储备草种", - "发放次数" - ], - "excludedFields": [] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "标准化养殖基地", - "categoryCode": "YC-BREEDING-BASE", - "rawRowCount": 19, - "keptFields": [ - "主体全称", - "运营单位", - "经纬度", - "建设 / 升级年份", - "详细地址", - "运营状态", - "设计存栏量 (头)", - "年出栏量 (头)", - "监控设备情况" - ], - "excludedFields": [ - "备注", - "Unnamed:10" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "育种场", - "categoryCode": "YC-BREEDING-STOCK", - "rawRowCount": 4, - "keptFields": [ - "主体全称", - "简称", - "运营单位", - "建设 / 升级年份", - "详细地址", - "经纬度", - "运营状态", - "育种等级", - "核心基础母牛群 (头)", - "种公牛数量 (头)", - "年提供良种犊牛 (头)", - "主要育种方向", - "基本介绍", - "监控设备情况" - ], - "excludedFields": [] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "种草饲草基地", - "categoryCode": "YC-FORAGE-BASE", - "rawRowCount": 16, - "keptFields": [ - "基地全称", - "所属乡镇", - "运营状态", - "种植面积 (亩)", - "主要草种", - "年产量 (吨)", - "经纬度" - ], - "excludedFields": [ - "Unnamed:7", - "Unnamed:8", - "Unnamed:9" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "加工厂", - "categoryCode": "YC-PROCESSING-PLANT", - "rawRowCount": 9, - "keptFields": [ - "企业全称", - "详细地址", - "经度", - "纬度", - "运营状态", - "SC 许可证号", - "设计日处理鲜奶能力 (吨)", - "年加工鲜奶总量 (吨)", - "主要产品", - "奶源来源", - "年产值 (万元)", - "带动本地农户数", - "原料奶冷藏能力 (吨)", - "产品销售范围", - "负责人", - "联系电话" - ], - "excludedFields": [ - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "屠宰厂", - "categoryCode": "YC-SLAUGHTERHOUSE", - "rawRowCount": 7, - "keptFields": [ - "企业全称", - "定点屠宰证号", - "详细地址", - "经度", - "纬度", - "运营状态", - "设计日屠宰能力 (头)", - "年屠宰总量 (头)", - "冷冻库容量 (吨)", - "环保达标情况", - "年总产值 (万元)", - "负责人", - "联系电话" - ], - "excludedFields": [ - "备注", - "Unnamed:14", - "Unnamed:15", - "Unnamed:16", - "Unnamed:17", - "Unnamed:18", - "Unnamed:19", - "Unnamed:20", - "Unnamed:21", - "Unnamed:22", - "Unnamed:23", - "Unnamed:24", - "Unnamed:25", - "Unnamed:26", - "Unnamed:27", - "Unnamed:28", - "Unnamed:29", - "Unnamed:30", - "Unnamed:31", - "Unnamed:32", - "Unnamed:33", - "Unnamed:34", - "Unnamed:35" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "农机装备", - "categoryCode": "YC-FARM-EQUIPMENT", - "rawRowCount": 2, - "keptFields": [ - "主体全称", - "简称", - "所属乡镇", - "经度", - "纬度", - "运营状态", - "组织形式", - "主要服务项目", - "主要设备类型", - "设备总台数 (台)", - "可出租设备数 (台)", - "服务覆盖乡镇数", - "收费标准", - "服务热线", - "年产值 (万元)", - "负责人", - "联系电话" - ], - "excludedFields": [ - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "疫病防控", - "categoryCode": "YC-DISEASE-CONTROL", - "rawRowCount": 3, - "keptFields": [ - "主体全称", - "详细地址", - "经度", - "纬度", - "运营状态", - "服务覆盖乡镇数", - "主要服务内容", - "持证兽医数", - "是否 24 小时应急", - "联系电话" - ], - "excludedFields": [ - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "技术培训", - "categoryCode": "YC-TECH-TRAINING", - "rawRowCount": 8, - "keptFields": [ - "序号", - "机构全称", - "机构类型", - "所属乡镇", - "红原办公地址", - "培训等级", - "年培训场次", - "年培训人次", - "单次最大容纳人数", - "主要培训内容", - "核心专家团队", - "最近培训时间", - "下期培训计划(时间 + 内容)", - "联系人", - "联系电话" - ], - "excludedFields": [ - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "金融服务网点", - "categoryCode": "YC-SERVICE-FINANCE", - "rawRowCount": 4, - "keptFields": [ - "序号", - "银行全称", - "简称", - "红原支行地址", - "经度", - "纬度", - "服务覆盖乡镇数", - "主要贷款产品(可多选)", - "最高单户贷款额度 (万元)", - "最长贷款期限 (年)", - "年利率范围", - "还款方式", - "联系人", - "信贷联系电话" - ], - "excludedFields": [ - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "保险服务网点", - "categoryCode": "YC-SERVICE-INSURANCE", - "rawRowCount": 4, - "keptFields": [ - "序号", - "公司全称", - "简称", - "红原支公司地址", - "经度", - "纬度", - "服务覆盖乡镇数", - "主要承保险种(可多选)", - "24 小时理赔热线", - "2025 年承保牦牛数量 (头)", - "平均理赔时效 (天)", - "最高单头赔付金额 (元)", - "联系人", - "联系电话" - ], - "excludedFields": [ - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sheetName": "林草局数据", - "categoryCode": "YC-GRASSLAND-RESOURCE", - "rawRowCount": 4, - "keptFields": [ - "天然草原改良", - "人工种草", - "鼠虫害防治", - "全县草原面积", - "基本草原面积", - "一般草原面积", - "湿地面积", - "灌木林面积", - "围栏封育面积", - "生态奖补面积,到每个村" - ], - "excludedFields": [ - "Unnamed:0", - "Unnamed:11", - "备注" - ] - }, - { - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sheetName": "Sheet1", - "categoryCode": "YC-FAMILY-PASTURE", - "rawRowCount": 82, - "keptFields": [ - "序号", - "乡镇", - "点位", - "户主", - "暖棚经纬度", - "管理用房经纬度", - "坐落" - ], - "excludedFields": [ - "身份证", - "备注" - ] - }, - { - "sourceFile": "cxpt PostgreSQL database", - "sheetName": "t_base_land", - "categoryCode": "YC-CXPT-*", - "rawRowCount": 46, - "keptFields": [ - "id", - "name", - "type", - "area_code", - "address", - "scale", - "acreage", - "leader", - "tel", - "leader_phone", - "geom centroid" - ], - "excludedFields": [ - "description", - "imgs", - "remarks" - ] - } - ], - "categories": [ - { - "categoryCode": "YC-FAMILY-PASTURE", - "categoryName": "家庭生态牧场", - "industryStage": "family-pasture", - "sources": [ - "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx:Sheet1" - ], - "itemCount": 82, - "items": [ - { - "id": "YC-FAMILY-PASTURE-001", - "name": "安曲镇夺龙村1号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "夺龙村", - "pointName": "1号点", - "locations": { - "greenhouse": { - "longitude": 102.45047712, - "latitude": 32.61360272 - }, - "managementHouse": { - "longitude": 102.45082378, - "latitude": 32.6136657 - } - }, - "contacts": { - "owner": "拿木甲" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-002", - "name": "安曲镇夺龙村2号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "夺龙村", - "pointName": "2号点", - "locations": { - "greenhouse": { - "longitude": 102.34691526, - "latitude": 32.61425696 - }, - "managementHouse": { - "longitude": 102.34697849, - "latitude": 32.61455374 - } - }, - "contacts": { - "owner": "桑我甲" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-003", - "name": "安曲镇夺龙村3号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "夺龙村", - "pointName": "3号点", - "locations": { - "greenhouse": { - "longitude": 102.37805264, - "latitude": 32.5692703 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "泽朗罗日" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-004", - "name": "安曲镇哈拉玛村4号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "哈拉玛村", - "pointName": "4号点", - "locations": { - "greenhouse": { - "longitude": 102.31781652, - "latitude": 32.67023409 - }, - "managementHouse": { - "longitude": 102.318167, - "latitude": 32.67018808 - } - }, - "contacts": { - "owner": "德清旺姆" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-005", - "name": "安曲镇下哈拉玛村5号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "下哈拉玛村", - "pointName": "5号点", - "locations": { - "greenhouse": { - "longitude": 102.43198641, - "latitude": 32.73093298 - }, - "managementHouse": { - "longitude": 102.43182146, - "latitude": 32.73162602 - } - }, - "contacts": {}, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-006", - "name": "安曲镇下哈拉玛村6号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "下哈拉玛村", - "pointName": "6号点", - "locations": { - "greenhouse": { - "longitude": 102.42615548, - "latitude": 32.80562386 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": {}, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-007", - "name": "安曲镇下哈拉玛村7号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "安曲镇", - "village": "下哈拉玛村", - "pointName": "7号点", - "locations": { - "greenhouse": { - "longitude": 102.43325488, - "latitude": 32.76769519 - }, - "managementHouse": { - "longitude": 102.43310351, - "latitude": 32.76736081 - } - }, - "contacts": { - "owner": "尺真" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-008", - "name": "龙日镇龙日坝村8号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "龙日坝村", - "pointName": "8号点", - "locations": { - "greenhouse": { - "longitude": 102.34174988, - "latitude": 32.51793446 - }, - "managementHouse": { - "longitude": 102.34150772, - "latitude": 32.51809855 - } - }, - "contacts": { - "owner": "扎花甲初" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-009", - "name": "龙日镇龙日坝村9号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "龙日坝村", - "pointName": "9号点", - "locations": { - "greenhouse": { - "longitude": 102.39106026, - "latitude": 32.41522425 - }, - "managementHouse": { - "longitude": 102.39163622, - "latitude": 32.41535563 - } - }, - "contacts": { - "owner": "刘永秀" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-010", - "name": "龙日镇龙日坝村10号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "龙日坝村", - "pointName": "10号点", - "locations": { - "greenhouse": { - "longitude": 102.36445049, - "latitude": 32.46856208 - }, - "managementHouse": { - "longitude": 102.36479551, - "latitude": 32.4682826 - } - }, - "contacts": { - "owner": "尼西甲" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-011", - "name": "龙日镇龙日坝村11号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "龙日坝村", - "pointName": "11号点", - "locations": { - "greenhouse": { - "longitude": 102.36543866, - "latitude": 32.46986063 - }, - "managementHouse": { - "longitude": 102.36574919, - "latitude": 32.46984022 - } - }, - "contacts": { - "owner": "尕尔穷" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-012", - "name": "龙日镇壤噶夺玛村12号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "壤噶夺玛村", - "pointName": "12号点", - "locations": { - "greenhouse": { - "longitude": 102.47723794, - "latitude": 32.45980785 - }, - "managementHouse": { - "longitude": 102.47729207, - "latitude": 32.45943812 - } - }, - "contacts": { - "owner": "拉玛扎西" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-013", - "name": "龙日镇龙日坝村12号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "龙日坝村", - "pointName": "12号点", - "locations": { - "greenhouse": { - "longitude": null, - "latitude": null - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": {}, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-014", - "name": "龙日镇格玛村13号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "格玛村", - "pointName": "13号点", - "locations": { - "greenhouse": { - "longitude": 102.57181204, - "latitude": 32.57674824 - }, - "managementHouse": { - "longitude": 102.57153908, - "latitude": 32.57642249 - } - }, - "contacts": { - "owner": "索迫" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-015", - "name": "龙日镇格玛村14号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "格玛村", - "pointName": "14号点", - "locations": { - "greenhouse": { - "longitude": 102.56396058, - "latitude": 32.5657272 - }, - "managementHouse": { - "longitude": 102.56368441, - "latitude": 32.56554011 - } - }, - "contacts": { - "owner": "让白" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-016", - "name": "龙日镇格玛村15号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "格玛村", - "pointName": "15号点", - "locations": { - "greenhouse": { - "longitude": 102.47353743, - "latitude": 32.53889572 - }, - "managementHouse": { - "longitude": 102.47340175, - "latitude": 32.5391063 - } - }, - "contacts": { - "owner": "罗周" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-017", - "name": "龙日镇格玛村16号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "格玛村", - "pointName": "16号点", - "locations": { - "greenhouse": { - "longitude": 102.55268505, - "latitude": 32.54389452 - }, - "managementHouse": { - "longitude": 102.55244875, - "latitude": 32.543925 - } - }, - "contacts": { - "owner": "贡波" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-018", - "name": "龙日镇格玛村17号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "格玛村", - "pointName": "17号点", - "locations": { - "greenhouse": { - "longitude": 102.55699444, - "latitude": 32.51600578 - }, - "managementHouse": { - "longitude": 102.55661126, - "latitude": 32.51593726 - } - }, - "contacts": { - "owner": "阿新" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-019", - "name": "龙日镇壤噶夺玛村18号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "壤噶夺玛村", - "pointName": "18号点", - "locations": { - "greenhouse": { - "longitude": 102.45743039, - "latitude": 32.50039193 - }, - "managementHouse": { - "longitude": 102.45747569, - "latitude": 32.4997112 - } - }, - "contacts": { - "owner": "南木青" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-020", - "name": "龙日镇壤噶夺玛村19号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "壤噶夺玛村", - "pointName": "19号点", - "locations": { - "greenhouse": { - "longitude": 102.51569341, - "latitude": 32.46983718 - }, - "managementHouse": { - "longitude": 102.51611367, - "latitude": 32.46971999 - } - }, - "contacts": { - "owner": "桑白" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-021", - "name": "龙日镇壤噶夺玛村20号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "壤噶夺玛村", - "pointName": "20号点", - "locations": { - "greenhouse": { - "longitude": 102.44978266, - "latitude": 32.53944862 - }, - "managementHouse": { - "longitude": 102.44969589, - "latitude": 32.53923831 - } - }, - "contacts": { - "owner": "尼玛" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-022", - "name": "龙日镇壤噶夺玛村21号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "壤噶夺玛村", - "pointName": "21号点", - "locations": { - "greenhouse": { - "longitude": 102.47179278, - "latitude": 32.40707185 - }, - "managementHouse": { - "longitude": 102.47150078, - "latitude": 32.40722678 - } - }, - "contacts": { - "owner": "求扎" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-023", - "name": "龙日镇壤噶夺玛村22号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "龙日镇", - "village": "壤噶夺玛村", - "pointName": "22号点", - "locations": { - "greenhouse": { - "longitude": 102.49088427, - "latitude": 32.4950118 - }, - "managementHouse": { - "longitude": 102.49071333, - "latitude": 32.49521145 - } - }, - "contacts": { - "owner": "俄白" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-024", - "name": "邛溪镇玛萨村23号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "玛萨村", - "pointName": "23号点", - "locations": { - "greenhouse": { - "longitude": 102.63389415, - "latitude": 32.77017909 - }, - "managementHouse": { - "longitude": 102.6341466, - "latitude": 32.77015436 - } - }, - "contacts": { - "owner": "杨中泽仁" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-025", - "name": "邛溪镇玛萨村24号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "玛萨村", - "pointName": "24号点", - "locations": { - "greenhouse": { - "longitude": 102.55578247, - "latitude": 32.71974519 - }, - "managementHouse": { - "longitude": 102.55496732, - "latitude": 32.71987605 - } - }, - "contacts": { - "owner": "西泽" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-026", - "name": "邛溪镇玛萨村25号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "玛萨村", - "pointName": "25号点", - "locations": { - "greenhouse": { - "longitude": 102.5948059, - "latitude": 32.73476878 - }, - "managementHouse": { - "longitude": 102.59523521, - "latitude": 32.73509347 - } - }, - "contacts": { - "owner": "阿尔布基" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-027", - "name": "邛溪镇玛萨村26号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "玛萨村", - "pointName": "26号点", - "locations": { - "greenhouse": { - "longitude": 102.63704412, - "latitude": 32.8134533 - }, - "managementHouse": { - "longitude": 102.63713205, - "latitude": 32.81316056 - } - }, - "contacts": { - "owner": "兰卡" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-028", - "name": "邛溪镇达格龙村27号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "达格龙村", - "pointName": "27号点", - "locations": { - "greenhouse": { - "longitude": 102.50979432, - "latitude": 32.80879562 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "华扎" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-029", - "name": "邛溪镇达格龙村28号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "达格龙村", - "pointName": "28号点", - "locations": { - "greenhouse": { - "longitude": 102.46200958, - "latitude": 32.954686 - }, - "managementHouse": { - "longitude": 102.46173752, - "latitude": 32.95518424 - } - }, - "contacts": { - "owner": "勒西" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-030", - "name": "邛溪镇达格龙村29号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "达格龙村", - "pointName": "29号点", - "locations": { - "greenhouse": { - "longitude": 102.70045355, - "latitude": 32.72249951 - }, - "managementHouse": { - "longitude": 102.70020081, - "latitude": 32.72191648 - } - }, - "contacts": { - "owner": "夺基泽单" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-031", - "name": "邛溪镇麻色阳德村30号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "麻色阳德村", - "pointName": "30号点", - "locations": { - "greenhouse": { - "longitude": 102.5118488, - "latitude": 32.93352001 - }, - "managementHouse": { - "longitude": 102.51242484, - "latitude": 32.93367637 - } - }, - "contacts": { - "owner": "卡卓措" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-032", - "name": "邛溪镇麻色阳德村31号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "麻色阳德村", - "pointName": "31号点", - "locations": { - "greenhouse": { - "longitude": 102.52277514, - "latitude": 32.95178758 - }, - "managementHouse": { - "longitude": 102.52268299, - "latitude": 32.95119696 - } - }, - "contacts": { - "owner": "甲花若巴" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-033", - "name": "邛溪镇麻色阳德村32号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "麻色阳德村", - "pointName": "32号点", - "locations": { - "greenhouse": { - "longitude": 102.54154441, - "latitude": 32.97243338 - }, - "managementHouse": { - "longitude": 102.54114597, - "latitude": 32.97254854 - } - }, - "contacts": { - "owner": "布穷" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-034", - "name": "邛溪镇热坤村33号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "热坤村", - "pointName": "33号点", - "locations": { - "greenhouse": { - "longitude": 102.68837196, - "latitude": 32.90189172 - }, - "managementHouse": { - "longitude": 102.68834131, - "latitude": 32.90209342 - } - }, - "contacts": { - "owner": "丹姆初" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-035", - "name": "邛溪镇热坤村34号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "热坤村", - "pointName": "34号点", - "locations": { - "greenhouse": { - "longitude": 102.66431407, - "latitude": 32.89220187 - }, - "managementHouse": { - "longitude": 102.6640831, - "latitude": 32.89217135 - } - }, - "contacts": { - "owner": "塔尔洼" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-036", - "name": "邛溪镇热坤村35号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "热坤村", - "pointName": "35号点", - "locations": { - "greenhouse": { - "longitude": 102.57510429, - "latitude": 32.8117671 - }, - "managementHouse": { - "longitude": 102.57449573, - "latitude": 32.81193451 - } - }, - "contacts": { - "owner": "相木秋" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-037", - "name": "邛溪镇热多村36号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "热多村", - "pointName": "36号点", - "locations": { - "greenhouse": { - "longitude": 102.60036425, - "latitude": 32.96680279 - }, - "managementHouse": { - "longitude": 102.59972676, - "latitude": 32.96673649 - } - }, - "contacts": { - "owner": "索科" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-038", - "name": "邛溪镇热多村37号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "热多村", - "pointName": "37号点", - "locations": { - "greenhouse": { - "longitude": 102.5418407, - "latitude": 32.92737961 - }, - "managementHouse": { - "longitude": 102.54097207, - "latitude": 32.92694872 - } - }, - "contacts": { - "owner": "容中黑周" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-039", - "name": "邛溪镇热多村38号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "邛溪镇", - "village": "热多村", - "pointName": "38号点", - "locations": { - "greenhouse": { - "longitude": 102.58801957, - "latitude": 32.88408206 - }, - "managementHouse": { - "longitude": 102.58826677, - "latitude": 32.88476392 - } - }, - "contacts": { - "owner": "桑都" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-040", - "name": "查尔玛乡什布龙村39号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "什布龙村", - "pointName": "39号点", - "locations": { - "greenhouse": { - "longitude": 102.07972827, - "latitude": 32.47333689 - }, - "managementHouse": { - "longitude": 102.07991934, - "latitude": 32.47311379 - } - }, - "contacts": { - "owner": "茫兴" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-041", - "name": "查尔玛乡什布龙村40号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "什布龙村", - "pointName": "40号点", - "locations": { - "greenhouse": { - "longitude": 102.02905511, - "latitude": 32.43749287 - }, - "managementHouse": { - "longitude": 102.02913011, - "latitude": 32.43776256 - } - }, - "contacts": { - "owner": "得基卓玛" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-042", - "name": "查尔玛乡什布龙村41号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "什布龙村", - "pointName": "41号点", - "locations": { - "greenhouse": { - "longitude": 102.02290624, - "latitude": 32.46043784 - }, - "managementHouse": { - "longitude": 102.02292951, - "latitude": 32.46024019 - } - }, - "contacts": { - "owner": "俄玛" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-043", - "name": "查尔玛乡什布龙村42号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "什布龙村", - "pointName": "42号点", - "locations": { - "greenhouse": { - "longitude": null, - "latitude": null - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "能周" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-044", - "name": "查尔玛乡查龙村43号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "查龙村", - "pointName": "43号点", - "locations": { - "greenhouse": { - "longitude": 101.9504197, - "latitude": 32.41285591 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "桑都措" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-045", - "name": "查尔玛乡查龙村44号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "查龙村", - "pointName": "44号点", - "locations": { - "greenhouse": { - "longitude": 101.93515169, - "latitude": 32.42601524 - }, - "managementHouse": { - "longitude": 101.93533172, - "latitude": 32.42625182 - } - }, - "contacts": { - "owner": "求沙" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-046", - "name": "查尔玛乡查龙村45号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "查龙村", - "pointName": "45号点", - "locations": { - "greenhouse": { - "longitude": 101.95330639, - "latitude": 32.50669919 - }, - "managementHouse": { - "longitude": 101.95319961, - "latitude": 32.50653773 - } - }, - "contacts": { - "owner": "旦渣" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-047", - "name": "查尔玛乡达尔龙村46号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "达尔龙村", - "pointName": "46号点", - "locations": { - "greenhouse": { - "longitude": 102.13292789, - "latitude": 32.44464674 - }, - "managementHouse": { - "longitude": 102.13310816, - "latitude": 32.44495604 - } - }, - "contacts": { - "owner": "达玛王" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-048", - "name": "查尔玛乡达尔龙村47号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "达尔龙村", - "pointName": "47号点", - "locations": { - "greenhouse": { - "longitude": 102.1000073, - "latitude": 32.52950127 - }, - "managementHouse": { - "longitude": 102.10031343, - "latitude": 32.52946984 - } - }, - "contacts": { - "owner": "吉措" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-049", - "name": "查尔玛乡达尔龙村48号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "查尔玛乡", - "village": "达尔龙村", - "pointName": "48号点", - "locations": { - "greenhouse": { - "longitude": 102.11832613, - "latitude": 32.54201141 - }, - "managementHouse": { - "longitude": 102.1186522, - "latitude": 32.54205879 - } - }, - "contacts": { - "owner": "然让" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-050", - "name": "瓦切镇德香村49号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "德香村", - "pointName": "49号点", - "locations": { - "greenhouse": { - "longitude": 102.59826937, - "latitude": 33.15242954 - }, - "managementHouse": { - "longitude": 102.59817262, - "latitude": 33.15279516 - } - }, - "contacts": { - "owner": "索郎益西" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-051", - "name": "瓦切镇德香村50号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "德香村", - "pointName": "50号点", - "locations": { - "greenhouse": { - "longitude": 102.58881798, - "latitude": 33.13491038 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "阿布洛" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-052", - "name": "瓦切镇德香村51号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "德香村", - "pointName": "51号点", - "locations": { - "greenhouse": { - "longitude": 102.62447024, - "latitude": 33.14756405 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "甲花扎巴" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-053", - "name": "瓦切镇唐日村52号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "唐日村", - "pointName": "52号点", - "locations": { - "greenhouse": { - "longitude": 102.60249352, - "latitude": 33.06252399 - }, - "managementHouse": { - "longitude": 102.60287876, - "latitude": 33.06269322 - } - }, - "contacts": { - "owner": "桑阿" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-054", - "name": "瓦切镇唐日村53号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "唐日村", - "pointName": "53号点", - "locations": { - "greenhouse": { - "longitude": 102.6195876, - "latitude": 33.07660844 - }, - "managementHouse": { - "longitude": 102.62023015, - "latitude": 33.07672504 - } - }, - "contacts": { - "owner": "泽旺卓玛" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-055", - "name": "瓦切镇唐日村54号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "唐日村", - "pointName": "54号点", - "locations": { - "greenhouse": { - "longitude": 102.65878993, - "latitude": 33.0443906 - }, - "managementHouse": { - "longitude": 102.65907881, - "latitude": 33.04426714 - } - }, - "contacts": { - "owner": "达多杰" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-056", - "name": "瓦切镇曲登塘社区55号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "曲登塘社区", - "pointName": "55号点", - "locations": { - "greenhouse": { - "longitude": 102.60968583, - "latitude": 33.05324231 - }, - "managementHouse": { - "longitude": 102.60900684, - "latitude": 33.05296943 - } - }, - "contacts": { - "owner": "甲花" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-057", - "name": "瓦切镇达峨村56号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "达峨村", - "pointName": "56号点", - "locations": { - "greenhouse": { - "longitude": 102.60365851, - "latitude": 33.08085512 - }, - "managementHouse": { - "longitude": 102.60388795, - "latitude": 33.080497 - } - }, - "contacts": { - "owner": "普尔娃他" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-058", - "name": "瓦切镇达峨村57号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "达峨村", - "pointName": "57号点", - "locations": { - "greenhouse": { - "longitude": 102.60526934, - "latitude": 33.03662516 - }, - "managementHouse": { - "longitude": 102.60558227, - "latitude": 33.03649561 - } - }, - "contacts": { - "owner": "腊夺" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-059", - "name": "瓦切镇达峨村58号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "达峨村", - "pointName": "58号点", - "locations": { - "greenhouse": { - "longitude": 102.68739311, - "latitude": 33.0149217 - }, - "managementHouse": { - "longitude": 102.68677242, - "latitude": 33.01494028 - } - }, - "contacts": { - "owner": "拉姆姐" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-060", - "name": "瓦切镇日干村59号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "日干村", - "pointName": "59号点", - "locations": { - "greenhouse": { - "longitude": 102.75821556, - "latitude": 33.05186118 - }, - "managementHouse": { - "longitude": 102.75797357, - "latitude": 33.05247976 - } - }, - "contacts": { - "owner": "尔金姐" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-061", - "name": "瓦切镇日干村60号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "日干村", - "pointName": "60号点", - "locations": { - "greenhouse": { - "longitude": 102.72188962, - "latitude": 33.09419876 - }, - "managementHouse": { - "longitude": 102.72144107, - "latitude": 33.09435508 - } - }, - "contacts": { - "owner": "果·尼科" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-062", - "name": "瓦切镇日干村61号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "日干村", - "pointName": "61号点", - "locations": { - "greenhouse": { - "longitude": 102.61834278, - "latitude": 33.16780533 - }, - "managementHouse": { - "longitude": null, - "latitude": null - } - }, - "contacts": { - "owner": "苏拉王" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-063", - "name": "瓦切镇色永村62号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "色永村", - "pointName": "62号点", - "locations": { - "greenhouse": { - "longitude": 102.80909925, - "latitude": 33.03857555 - }, - "managementHouse": { - "longitude": 102.80956551, - "latitude": 33.03877017 - } - }, - "contacts": { - "owner": "桑阿" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-064", - "name": "瓦切镇色永村63号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "色永村", - "pointName": "63号点", - "locations": { - "greenhouse": { - "longitude": 102.82561727, - "latitude": 33.03236022 - }, - "managementHouse": { - "longitude": 102.82588257, - "latitude": 33.03170874 - } - }, - "contacts": { - "owner": "卓玛娜姆" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-065", - "name": "瓦切镇色永村64号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "瓦切镇", - "village": "色永村", - "pointName": "64号点", - "locations": { - "greenhouse": { - "longitude": 102.83285089, - "latitude": 33.02300106 - }, - "managementHouse": { - "longitude": 102.83282822, - "latitude": 33.02336202 - } - }, - "contacts": { - "owner": "麦朵拉姆" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-066", - "name": "江茸乡江宫玛村65号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "江宫玛村", - "pointName": "65号点", - "locations": { - "greenhouse": { - "longitude": 102.20070669, - "latitude": 32.42224384 - }, - "managementHouse": { - "longitude": 102.19990732, - "latitude": 32.42229086 - } - }, - "contacts": { - "owner": "支多娜姆" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-067", - "name": "江茸乡江宫玛村66号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "江宫玛村", - "pointName": "66号点", - "locations": { - "greenhouse": { - "longitude": 102.20320835, - "latitude": 32.43908196 - }, - "managementHouse": { - "longitude": 102.20292182, - "latitude": 32.43868925 - } - }, - "contacts": { - "owner": "俄波" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-068", - "name": "江茸乡江宫玛村67号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "江宫玛村", - "pointName": "67号点", - "locations": { - "greenhouse": { - "longitude": 102.22170157, - "latitude": 32.47727277 - }, - "managementHouse": { - "longitude": 102.2217086, - "latitude": 32.4769641 - } - }, - "contacts": { - "owner": "格日" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-069", - "name": "江茸乡茸日玛村68号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "茸日玛村", - "pointName": "68号点", - "locations": { - "greenhouse": { - "longitude": 102.22028091, - "latitude": 32.50928539 - }, - "managementHouse": { - "longitude": 102.21973813, - "latitude": 32.50918264 - } - }, - "contacts": { - "owner": "更让尼玛" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-070", - "name": "江茸乡茸日玛村69号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "茸日玛村", - "pointName": "69号点", - "locations": { - "greenhouse": { - "longitude": 102.22815984, - "latitude": 32.51915025 - }, - "managementHouse": { - "longitude": 102.22810898, - "latitude": 32.51942 - } - }, - "contacts": { - "owner": "罗布让" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-071", - "name": "江茸乡茸日玛村70号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "茸日玛村", - "pointName": "70号点", - "locations": { - "greenhouse": { - "longitude": 102.22913952, - "latitude": 32.50866903 - }, - "managementHouse": { - "longitude": 102.22938935, - "latitude": 32.50833256 - } - }, - "contacts": { - "owner": "王甲" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-072", - "name": "江茸乡茸日玛村71号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "江茸乡", - "village": "茸日玛村", - "pointName": "71号点", - "locations": { - "greenhouse": { - "longitude": 102.23962706, - "latitude": 32.48083944 - }, - "managementHouse": { - "longitude": 102.23990168, - "latitude": 32.48078901 - } - }, - "contacts": { - "owner": "占波" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-073", - "name": "刷经寺镇壤口村72号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "刷经寺镇", - "village": "壤口村", - "pointName": "72号点", - "locations": { - "greenhouse": { - "longitude": 102.61148498, - "latitude": 32.08914501 - }, - "managementHouse": { - "longitude": 102.61169021, - "latitude": 32.08932106 - } - }, - "contacts": { - "owner": "罗日" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-074", - "name": "刷经寺镇壤口村73号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "刷经寺镇", - "village": "壤口村", - "pointName": "73号点", - "locations": { - "greenhouse": { - "longitude": 102.5699463, - "latitude": 32.08635954 - }, - "managementHouse": { - "longitude": 102.56962246, - "latitude": 32.08623818 - } - }, - "contacts": { - "owner": "甲花夺基" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-075", - "name": "刷经寺镇壤口村74号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "刷经寺镇", - "village": "壤口村", - "pointName": "74号点", - "locations": { - "greenhouse": { - "longitude": 102.48249928, - "latitude": 32.20799391 - }, - "managementHouse": { - "longitude": 102.48240109, - "latitude": 32.20777413 - } - }, - "contacts": { - "owner": "供木丹" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-076", - "name": "刷经寺镇壤口村75号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "刷经寺镇", - "village": "壤口村", - "pointName": "75号点", - "locations": { - "greenhouse": { - "longitude": 102.55912658, - "latitude": 32.38683384 - }, - "managementHouse": { - "longitude": 102.5588633, - "latitude": 32.38692708 - } - }, - "contacts": { - "owner": "华尔白" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-077", - "name": "阿木乡峨扎村76号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "阿木乡", - "village": "峨扎村", - "pointName": "76号点", - "locations": { - "greenhouse": { - "longitude": 102.67883757, - "latitude": 32.93485478 - }, - "managementHouse": { - "longitude": 102.67850122, - "latitude": 32.93495695 - } - }, - "contacts": { - "owner": "谢尔拉姆" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-078", - "name": "阿木乡峨扎村77号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "阿木乡", - "village": "峨扎村", - "pointName": "77号点", - "locations": { - "greenhouse": { - "longitude": 102.8392576, - "latitude": 32.77165891 - }, - "managementHouse": { - "longitude": 102.83999152, - "latitude": 32.77133407 - } - }, - "contacts": { - "owner": "若巴" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-079", - "name": "阿木乡峨扎村78号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "阿木乡", - "village": "峨扎村", - "pointName": "78号点", - "locations": { - "greenhouse": { - "longitude": 102.78948161, - "latitude": 32.79853105 - }, - "managementHouse": { - "longitude": 102.79027109, - "latitude": 32.79883402 - } - }, - "contacts": { - "owner": "扑尔夺" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-080", - "name": "阿木乡卡口村79号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "阿木乡", - "village": "卡口村", - "pointName": "79号点", - "locations": { - "greenhouse": { - "longitude": 102.83426146, - "latitude": 32.86765306 - }, - "managementHouse": { - "longitude": 102.83380011, - "latitude": 32.86722605 - } - }, - "contacts": { - "owner": "甲基" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-081", - "name": "阿木乡卡口村80号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "阿木乡", - "village": "卡口村", - "pointName": "80号点", - "locations": { - "greenhouse": { - "longitude": 102.83237405, - "latitude": 32.82819561 - }, - "managementHouse": { - "longitude": 102.83189751, - "latitude": 32.82836028 - } - }, - "contacts": { - "owner": "尕得" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - }, - { - "id": "YC-FAMILY-PASTURE-082", - "name": "阿木乡卡口村81号点家庭牧场", - "sourceFile": "/Users/mocker/Documents/hy/数据清单/家庭牧场/红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "sourceSheet": "Sheet1", - "town": "阿木乡", - "village": "卡口村", - "pointName": "81号点", - "locations": { - "greenhouse": { - "longitude": 102.7785588, - "latitude": 32.72665098 - }, - "managementHouse": { - "longitude": 102.77903691, - "latitude": 32.72696452 - } - }, - "contacts": { - "owner": "西夏唐美" - }, - "metrics": {}, - "attributes": { - "project": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目" - } - } - ] - }, - { - "categoryCode": "YC-BREEDING-BASE", - "categoryName": "标准化养殖基地", - "industryStage": "scale-breeding", - "sources": [ - "详细数据清单-归档(1).xlsx:标准化养殖基地" - ], - "itemCount": 19, - "items": [ - { - "id": "YC-BREEDING-BASE-001", - "name": "阿木乡卡口村标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "阿木乡卡口乡", - "status": "正常运营", - "longitude": 102.63473007, - "latitude": 32.92227975, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 429, - "年出栏量 (头)": 35 - }, - "attributes": { - "运营单位": "阿木乡卡口村村集体经济", - "建设 / 升级年份": "2022年", - "监控设备情况": "已接入" - } - }, - { - "id": "YC-BREEDING-BASE-002", - "name": "瓦切唐日标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "唐日村", - "status": "正常运营", - "longitude": 102.6175964, - "latitude": 33.10971976, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 250 - }, - "attributes": { - "运营单位": "瓦切镇唐日村村集体经济", - "建设 / 升级年份": "2023年", - "监控设备情况": "已接入" - } - }, - { - "id": "YC-BREEDING-BASE-003", - "name": "瓦切镇标准化色永村养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "瓦切镇色永村", - "status": "正常运营", - "longitude": 102.62460529, - "latitude": 33.13967122, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 600, - "年出栏量 (头)": 1300 - }, - "attributes": { - "运营单位": "红原县高原犇犇农副产品有限公司", - "建设 / 升级年份": "2023年", - "监控设备情况": "2个在线,2个离线。电路在维修" - } - }, - { - "id": "YC-BREEDING-BASE-004", - "name": "瓦切镇达俄村标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "瓦切镇达俄村", - "status": "正常运营", - "longitude": 102.61994774, - "latitude": 33.07151208, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 500, - "年出栏量 (头)": 90 - }, - "attributes": { - "运营单位": "红原县雅卓阳养殖农民专业合作社", - "建设 / 升级年份": "2024年", - "监控设备情况": "3个设备离线,电线被施工方挖断了" - } - }, - { - "id": "YC-BREEDING-BASE-005", - "name": "安曲牦牛扩繁基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "夺龙村", - "status": "正常运营", - "longitude": 102.32214229, - "latitude": 32.64253259, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 200 - }, - "attributes": { - "运营单位": "红原县雅克农业开发有限责任公司", - "建设 / 升级年份": "2022年", - "监控设备情况": "已接入" - } - }, - { - "id": "YC-BREEDING-BASE-006", - "name": "安曲标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "夺龙村", - "status": "正常运营", - "longitude": 102.32390544, - "latitude": 32.63888471, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 600, - "年出栏量 (头)": 1300 - }, - "attributes": { - "运营单位": "红原县高原犇犇农副产品有限公司", - "建设 / 升级年份": "2022年", - "监控设备情况": "已接入" - } - }, - { - "id": "YC-BREEDING-BASE-007", - "name": "安曲下哈拉玛标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "安曲下哈拉玛村", - "status": "正常运营", - "longitude": 102.42837241, - "latitude": 32.7425359, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 100, - "年出栏量 (头)": 30 - }, - "attributes": { - "运营单位": "安曲下哈拉玛村村集体经济", - "建设 / 升级年份": "2023年", - "监控设备情况": "已接入" - } - }, - { - "id": "YC-BREEDING-BASE-008", - "name": "龙日坝标准化养殖基地 (2023)", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "龙日坝村", - "status": "正常运营", - "longitude": 102.38394817, - "latitude": 32.44966887, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 600, - "年出栏量 (头)": 1400 - }, - "attributes": { - "运营单位": "红原县雅克农业开发有限责任公司", - "建设 / 升级年份": 2023, - "监控设备情况": "等他们要到设备账号,然后再接入平台。" - } - }, - { - "id": "YC-BREEDING-BASE-009", - "name": "龙日坝标准化养殖基地 (2025)", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "龙日坝村", - "status": "正常运营", - "longitude": 102.38126323, - "latitude": 32.44955785, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 3000, - "年出栏量 (头)": 11000 - }, - "attributes": { - "运营单位": "红原县高原犇犇农副产品有限公司", - "建设 / 升级年份": 2025, - "监控设备情况": "预计月底完成设备安装,完成后再接入平台。" - } - }, - { - "id": "YC-BREEDING-BASE-010", - "name": "刷经寺嚷口标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "嚷口村", - "status": "正常运营", - "longitude": 102.48723433, - "latitude": 32.20562585, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 600 - }, - "attributes": { - "运营单位": "四川川数农牧科技有限公司", - "建设 / 升级年份": "2023年", - "监控设备情况": "已接入" - } - }, - { - "id": "YC-BREEDING-BASE-011", - "name": "麦洼乡标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "洞拉村", - "status": "正常运营", - "longitude": 102.90867472, - "latitude": 33.07181647, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 500, - "年出栏量 (头)": 1300 - }, - "attributes": { - "运营单位": "红原县高原犇犇农副产品有限公司", - "建设 / 升级年份": "2023年", - "监控设备情况": "断电导致设备离线" - } - }, - { - "id": "YC-BREEDING-BASE-012", - "name": "江茸绵羊养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "茸日村", - "status": "正常运营", - "longitude": 102.26005599, - "latitude": 32.50027984, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 502, - "年出栏量 (头)": 151 - }, - "attributes": { - "运营单位": "江茸乡茸日玛村集体经济", - "建设 / 升级年份": "2023年", - "监控设备情况": "没有设备" - } - }, - { - "id": "YC-BREEDING-BASE-013", - "name": "邛溪镇麻萨阳德村标准化养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "麻色阳德村", - "status": "正常运营", - "longitude": 102.55803526, - "latitude": 32.83725412, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 600, - "年出栏量 (头)": 400 - }, - "attributes": { - "运营单位": "红原县祥发牧业发展有限责任公司", - "建设 / 升级年份": 2024, - "监控设备情况": "等待联系具体情况" - } - }, - { - "id": "YC-BREEDING-BASE-014", - "name": "阿木乡峨扎村养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "峨扎村", - "status": "正常运营", - "longitude": 102.84054893, - "latitude": 32.81675104, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 114, - "年出栏量 (头)": 16 - }, - "attributes": { - "运营单位": "阿木乡", - "建设 / 升级年份": "2022年", - "监控设备情况": "没有设备" - } - }, - { - "id": "YC-BREEDING-BASE-015", - "name": "查尔玛查龙村养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "红原县查尔玛乡查龙村", - "status": "正常运营", - "longitude": 101.95890418, - "latitude": 32.3869733, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 83, - "年出栏量 (头)": 511 - }, - "attributes": { - "运营单位": "红原县查尔玛乡查龙村股份经济合作联合社", - "建设 / 升级年份": 2025, - "监控设备情况": "没有设备" - } - }, - { - "id": "YC-BREEDING-BASE-016", - "name": "查尔玛什布龙养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "红原县查尔玛乡什布龙村", - "status": "正常运营", - "longitude": 102.11433108, - "latitude": 32.42652249, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 60, - "年出栏量 (头)": 286 - }, - "attributes": { - "运营单位": "红原县查尔玛乡什布龙村股份经济合作联合社", - "建设 / 升级年份": 2022, - "监控设备情况": "没有设备" - } - }, - { - "id": "YC-BREEDING-BASE-017", - "name": "查尔玛达尔龙养殖基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "红原县查尔玛乡达尔龙村", - "status": "正常运营", - "longitude": 102.11709449, - "latitude": 32.4529061, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 147, - "年出栏量 (头)": 283 - }, - "attributes": { - "运营单位": "红原县查尔玛乡达尔龙村村股份经济合作联合社", - "建设 / 升级年份": 2024, - "监控设备情况": "没有设备" - } - }, - { - "id": "YC-BREEDING-BASE-018", - "name": "安曲下哈拉玛改良繁育基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "安曲下哈拉玛村", - "status": "正常运营", - "longitude": 102.47817887, - "latitude": 32.77041412, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 100, - "年出栏量 (头)": 30 - }, - "attributes": { - "运营单位": "安曲下哈拉玛村村集体经济", - "监控设备情况": "没有设备" - } - }, - { - "id": "YC-BREEDING-BASE-019", - "name": "麦洼利群合作社", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "标准化养殖基地", - "town": null, - "address": "麦洼乡滚塘村", - "status": "正常运营", - "longitude": 102.91754148, - "latitude": 33.05358447, - "contacts": {}, - "metrics": { - "设计存栏量 (头)": 400, - "年出栏量 (头)": 351 - }, - "attributes": { - "运营单位": "红原县鑫陶一家农业发展专业合作社", - "建设 / 升级年份": "2022年", - "监控设备情况": "没有设备" - } - } - ] - }, - { - "categoryCode": "YC-BREEDING-STOCK", - "categoryName": "育种繁育场", - "industryStage": "scale-breeding", - "sources": [ - "详细数据清单-归档(1).xlsx:育种场" - ], - "itemCount": 4, - "items": [ - { - "id": "YC-BREEDING-STOCK-001", - "name": "安曲牦牛扩繁基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "育种场", - "town": null, - "address": "安曲镇XX村", - "status": "正常运营", - "longitude": 102.32214229, - "latitude": 32.64253259, - "contacts": {}, - "metrics": {}, - "attributes": { - "简称": "安曲育种场", - "运营单位": "红原县雅克农业开发有限责任公司", - "育种等级": "县级", - "主要育种方向": "良种扩繁", - "基本介绍": "管理用房X间、厂房几间、占地多少、人员多少等。" - } - }, - { - "id": "YC-BREEDING-STOCK-002", - "name": "龙日镇农科院扩繁基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "育种场", - "town": null, - "address": null, - "status": "正常运营", - "longitude": 102.2948457, - "latitude": 32.52975262, - "contacts": {}, - "metrics": {}, - "attributes": { - "简称": "龙日种畜场", - "运营单位": "阿坝州农科院", - "建设 / 升级年份": 2024, - "育种等级": "省级", - "主要育种方向": "原种保护与选育", - "监控设备情况": "设备不支持" - } - }, - { - "id": "YC-BREEDING-STOCK-003", - "name": "龙日坝原种场", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "育种场", - "town": null, - "address": null, - "status": "正常运营", - "longitude": 102.29621044, - "latitude": 32.52968225, - "contacts": {}, - "metrics": {}, - "attributes": { - "简称": "龙日原种场", - "运营单位": "阿坝州农科院", - "育种等级": "省级", - "主要育种方向": "麦洼牦牛原种保护", - "监控设备情况": "设备不支持" - } - }, - { - "id": "YC-BREEDING-STOCK-004", - "name": "麦洼洞拉村达坤玛选育场", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "育种场", - "town": null, - "address": null, - "status": null, - "longitude": 102.90220018, - "latitude": 33.07630283, - "contacts": {}, - "metrics": {}, - "attributes": { - "运营单位": "麦洼乡", - "监控设备情况": "没有设备" - } - } - ] - }, - { - "categoryCode": "YC-FORAGE-BASE", - "categoryName": "种草饲草基地", - "industryStage": "artificial-grassland", - "sources": [ - "详细数据清单-归档(1).xlsx:种草饲草基地" - ], - "itemCount": 8, - "items": [ - { - "id": "YC-FORAGE-BASE-001", - "name": "红原机场种草基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": "龙日镇", - "address": null, - "status": "正常运营", - "longitude": 102.3421702, - "latitude": 32.56665418, - "contacts": {}, - "metrics": { - "种植面积 (亩)": 1000 - }, - "attributes": { - "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" - } - }, - { - "id": "YC-FORAGE-BASE-002", - "name": "龙日镇饲草种植基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": "龙日镇", - "address": null, - "status": "正常运营", - "longitude": 102.41691162, - "latitude": 32.4065831, - "contacts": {}, - "metrics": { - "种植面积 (亩)": 10000 - }, - "attributes": { - "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" - } - }, - { - "id": "YC-FORAGE-BASE-003", - "name": "安曲饲草基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": "安曲镇", - "address": null, - "status": "正常运营", - "longitude": 102.42757952, - "latitude": 32.74443722, - "contacts": {}, - "metrics": { - "种植面积 (亩)": 2000 - }, - "attributes": { - "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" - } - }, - { - "id": "YC-FORAGE-BASE-004", - "name": "瓦切饲草基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": "瓦切镇", - "address": null, - "status": "正常运营", - "longitude": 102.59922971, - "latitude": 33.10319702, - "contacts": {}, - "metrics": { - "种植面积 (亩)": 7000 - }, - "attributes": { - "主要草种": "燕麦草1年生,披碱草、老芒麦多年生" - } - }, - { - "id": "YC-FORAGE-BASE-005", - "name": "江茸饲草基地", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": null, - "address": null, - "status": null, - "longitude": 102.26164962, - "latitude": 32.50057455, - "contacts": {}, - "metrics": { - "种植面积 (亩)": 1000 - }, - "attributes": {} - }, - { - "id": "YC-FORAGE-BASE-006", - "name": "畜牧工作站", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - }, - { - "id": "YC-FORAGE-BASE-007", - "name": "规划建设股", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - }, - { - "id": "YC-FORAGE-BASE-008", - "name": "数据欠缺,请两个股室核定饲草基地数据。", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "种草饲草基地", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-DISASTER-FORAGE-STORAGE", - "categoryName": "防灾减灾饲草储备库", - "industryStage": "forage-storage", - "sources": [ - "详细数据清单-归档(1).xlsx:防灾减灾饲草储备库" - ], - "itemCount": 7, - "items": [ - { - "id": "YC-DISASTER-FORAGE-STORAGE-001", - "name": "嚷口防灾减灾饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "刷经寺镇", - "address": "壤口村", - "status": "正常运营", - "longitude": 102.489619, - "latitude": 32.20577086, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "红原县农业农村局", - "储备草种": "燕麦草、披碱草、老芒麦" - } - }, - { - "id": "YC-DISASTER-FORAGE-STORAGE-002", - "name": "安曲防灾减灾饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "安曲镇", - "address": "夺龙村", - "status": "正常运营", - "longitude": 102.3283137, - "latitude": 32.63727531, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "红原县农业农村局", - "储备草种": "燕麦草、披碱草、老芒麦" - } - }, - { - "id": "YC-DISASTER-FORAGE-STORAGE-003", - "name": "瓦切唐日合作社饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "瓦切镇", - "address": "唐日村", - "status": "正常运营", - "longitude": 102.6162349, - "latitude": 33.11047864, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "瓦切唐日合作社", - "储备草种": "燕麦草、披碱草、老芒麦" - } - }, - { - "id": "YC-DISASTER-FORAGE-STORAGE-004", - "name": "瓦切牧草交易中心饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "瓦切镇", - "address": "达俄村", - "status": "正常运营", - "longitude": 102.6014834, - "latitude": 33.09604707, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "红原县农业农村局", - "储备草种": "燕麦草、披碱草、老芒麦" - } - }, - { - "id": "YC-DISASTER-FORAGE-STORAGE-005", - "name": "龙日坝龙日坝村 1 饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "龙日镇", - "address": "龙日坝村", - "status": "正常运营", - "longitude": 102.383916, - "latitude": 32.44992916, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "红原县农业农村局", - "储备草种": "燕麦草、披碱草、老芒麦" - } - }, - { - "id": "YC-DISASTER-FORAGE-STORAGE-006", - "name": "龙日坝龙日坝村 2 饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "龙日镇", - "address": "龙日坝村", - "status": "正常运营", - "longitude": 102.3834086, - "latitude": 32.45041994, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "红原县农业农村局", - "储备草种": "燕麦草、披碱草、老芒麦" - } - }, - { - "id": "YC-DISASTER-FORAGE-STORAGE-007", - "name": "江茸乡饲草储备库", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "防灾减灾饲草储备库", - "town": "江茸乡", - "address": "茸日玛村", - "status": "正常运营", - "longitude": 102.256868, - "latitude": 32.46996565, - "contacts": {}, - "metrics": { - "总库容 (吨)": 1500, - "发放次数": "3-4次" - }, - "attributes": { - "上级单位": "江茸乡", - "储备草种": "燕麦草、披碱草、老芒麦" - } - } - ] - }, - { - "categoryCode": "YC-PROCESSING-PLANT", - "categoryName": "加工厂", - "industryStage": "slaughter-processing", - "sources": [ - "详细数据清单-归档(1).xlsx:加工厂" - ], - "itemCount": 9, - "items": [ - { - "id": "YC-PROCESSING-PLANT-001", - "name": "西部牦牛产业集团有限责任公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆西路37号", - "status": "存续(在营)", - "longitude": 102.5292, - "latitude": 32.7917, - "contacts": { - "leader": "税晓燕", - "phone": 13348993961 - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "约 50吨/日", - "年加工鲜奶总量 (吨)": 3000, - "年产值 (万元)": 30000, - "带动本地农户数": 6000, - "原料奶冷藏能力 (吨)": 400 - }, - "attributes": { - "SC 许可证号": "SC10551323300016", - "主要产品": "牦牛奶粉", - "奶源来源": "红原县及周边", - "产品销售范围": "全国" - } - }, - { - "id": "YC-PROCESSING-PLANT-002", - "name": "四川红原菊乐牦牛乳业有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆东路76号附6号", - "status": "存续(在营)", - "longitude": 102.5666, - "latitude": 32.8179, - "contacts": { - "leader": "刘鑫森", - "phone": 18581879298 - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "约240吨/日", - "年加工鲜奶总量 (吨)": 4000, - "年产值 (万元)": 7000, - "带动本地农户数": 600, - "原料奶冷藏能力 (吨)": 2000 - }, - "attributes": { - "SC 许可证号": "SC10551323300032", - "主要产品": "圣舟牦牛奶", - "奶源来源": "红原县及周边", - "产品销售范围": "全国、四川为主" - } - }, - { - "id": "YC-PROCESSING-PLANT-003", - "name": "四川雅克乳业有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆西路", - "status": "存续(在营)", - "longitude": 102.5315, - "latitude": 32.7921, - "contacts": { - "leader": "徐瑞", - "phone": 18628189868 - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "约 2吨/日", - "年加工鲜奶总量 (吨)": 1000, - "年产值 (万元)": 3000, - "带动本地农户数": 200, - "原料奶冷藏能力 (吨)": "无(委托)" - }, - "attributes": { - "SC 许可证号": "SC10551323300032(委托)", - "主要产品": "牦牛酸奶、牦牛奶粉、牦牛奶冰淇淋(", - "奶源来源": "红原县及周边", - "产品销售范围": "四川" - } - }, - { - "id": "YC-PROCESSING-PLANT-004", - "name": "企业全称", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "详细地址", - "status": "运营状态", - "longitude": null, - "latitude": null, - "contacts": { - "leader": "负责人", - "phone": "联系电话" - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "设计日加工能力 (吨)", - "年加工鲜奶总量 (吨)": "年加工原料肉总量 (吨)", - "年产值 (万元)": "年产值 (万元)", - "带动本地农户数": "带动本地农户数", - "原料奶冷藏能力 (吨)": "冷库容量 (吨)" - }, - "attributes": { - "SC 许可证号": "SC 许可证号", - "主要产品": "主要产品", - "奶源来源": "原料来源", - "产品销售范围": "产品销售范围" - } - }, - { - "id": "YC-PROCESSING-PLANT-005", - "name": "四川红原遛遛牛食品有限责任公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆东路72号", - "status": "存续(在营)", - "longitude": 102.5592, - "latitude": 32.8151, - "contacts": { - "leader": "王加立", - "phone": 13982065805 - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "约15吨/日", - "年加工鲜奶总量 (吨)": "约4500吨/年", - "年产值 (万元)": "约8000万元", - "带动本地农户数": 400, - "原料奶冷藏能力 (吨)": 1000 - }, - "attributes": { - "SC 许可证号": "SC10451323300028", - "主要产品": "风干牦牛肉、手撕牦牛肉、卤制牦牛肉、牦牛肉酱", - "奶源来源": "红原县及周边麦洼牦牛", - "产品销售范围": "全国、四川为主" - } - }, - { - "id": "YC-PROCESSING-PLANT-006", - "name": "四川红原黑帐篷牦牛肉食品有限责任公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县邛溪镇瑞庆中路", - "status": "存续(在营)", - "longitude": 102.551, - "latitude": 32.7987, - "contacts": { - "leader": "龙国胜", - "phone": "0837-8994333" - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "约 1吨/日", - "年加工鲜奶总量 (吨)": "约300吨/年", - "年产值 (万元)": 1000, - "带动本地农户数": 200, - "原料奶冷藏能力 (吨)": 200 - }, - "attributes": { - "主要产品": "风干牦牛肉、手撕牦牛肉、卤牦牛肉、牦牛肉礼包", - "奶源来源": "红原本地麦洼牦牛", - "产品销售范围": "全国、四川为主" - } - }, - { - "id": "YC-PROCESSING-PLANT-007", - "name": "红原御坊斋牦牛肉制品厂", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县邛溪镇阳嘎北街", - "status": "存续(在营)", - "longitude": 102.5431, - "latitude": 32.7962, - "contacts": { - "leader": "陈远明", - "phone": "0837-2662837" - }, - "metrics": { - "设计日处理鲜奶能力 (吨)": "约 0.5吨/日", - "年加工鲜奶总量 (吨)": "约200吨/年", - "年产值 (万元)": 600, - "带动本地农户数": 100, - "原料奶冷藏能力 (吨)": 100 - }, - "attributes": { - "SC 许可证号": "SC10451323300036", - "主要产品": "牛肉干、卤牦牛肉、手撕牦牛肉、牦牛肉粒", - "奶源来源": "红原本地麦洼牦牛", - "产品销售范围": "四川" - } - }, - { - "id": "YC-PROCESSING-PLANT-008", - "name": "四川牦牛火了生态农业科技有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": "四川省阿坝藏族羌族自治州红原县瑞庆中路13号附1号", - "status": "存续(在营)", - "longitude": 102.5402, - "latitude": 32.7958, - "contacts": { - "leader": "王忠波", - "phone": 18980978767 - }, - "metrics": { - "年产值 (万元)": 500 - }, - "attributes": { - "主要产品": "包装牦牛肉干", - "奶源来源": "红原及周边加工厂成品", - "产品销售范围": "四川" - } - }, - { - "id": "YC-PROCESSING-PLANT-009", - "name": "农产品检测站", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "加工厂", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-SLAUGHTERHOUSE", - "categoryName": "屠宰厂", - "industryStage": "slaughter-processing", - "sources": [ - "详细数据清单-归档(1).xlsx:屠宰厂" - ], - "itemCount": 7, - "items": [ - { - "id": "YC-SLAUGHTERHOUSE-001", - "name": "红原宏牦牛肉食品有限责任公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": "四川省阿坝州红原县邛溪镇桑青路11号", - "status": "正常", - "longitude": 102.53333333, - "latitude": 32.78333333, - "contacts": { - "leader": "蒋悦南", - "phone": 13909047031 - }, - "metrics": { - "设计日屠宰能力 (头)": 200, - "年屠宰总量 (头)": 20000, - "冷冻库容量 (吨)": 800, - "年总产值 (万元)": "2000-5000" - }, - "attributes": { - "环保达标情况": "已达标" - } - }, - { - "id": "YC-SLAUGHTERHOUSE-002", - "name": "红原县永源牦牛肉业有限责任公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": "红原县绿色产业园区", - "status": "正常", - "longitude": 102.56055556, - "latitude": 32.82, - "contacts": { - "leader": "张建", - "phone": 13541231860 - }, - "metrics": { - "设计日屠宰能力 (头)": 167, - "年屠宰总量 (头)": 20000, - "冷冻库容量 (吨)": 2400, - "年总产值 (万元)": 2046 - }, - "attributes": { - "定点屠宰证号": "A29191301", - "环保达标情况": "达标" - } - }, - { - "id": "YC-SLAUGHTERHOUSE-003", - "name": "红原新希望牦牛产业有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": "红原县邛溪镇绿色工业园区内", - "status": "正常", - "longitude": 9175.41666667, - "latitude": 13213.51666667, - "contacts": { - "leader": "柴建", - "phone": "17778545888" - }, - "metrics": { - "设计日屠宰能力 (头)": 300, - "年屠宰总量 (头)": 10000, - "冷冻库容量 (吨)": 3000, - "年总产值 (万元)": 4048.63 - }, - "attributes": { - "环保达标情况": "达标" - } - }, - { - "id": "YC-SLAUGHTERHOUSE-004", - "name": "红原县天交畜牧科技有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": "红原县邛溪镇绿色产业园区瑞庆东路76号附5号", - "status": "正常", - "longitude": 102.90083333, - "latitude": 33.33083333, - "contacts": { - "leader": "余震", - "phone": 18080930003 - }, - "metrics": { - "设计日屠宰能力 (头)": 150, - "年屠宰总量 (头)": 18000, - "冷冻库容量 (吨)": 2000, - "年总产值 (万元)": 1200 - }, - "attributes": { - "环保达标情况": "达标" - } - }, - { - "id": "YC-SLAUGHTERHOUSE-005", - "name": "红原县雪月天佑农牧科技有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - }, - { - "id": "YC-SLAUGHTERHOUSE-006", - "name": "红原牦牛肉食品有限责任公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - }, - { - "id": "YC-SLAUGHTERHOUSE-007", - "name": "执法大队", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "屠宰厂", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-FARM-EQUIPMENT", - "categoryName": "农机装备", - "industryStage": "farm-equipment", - "sources": [ - "详细数据清单-归档(1).xlsx:农机装备" - ], - "itemCount": 2, - "items": [ - { - "id": "YC-FARM-EQUIPMENT-001", - "name": "红原县益众农业机械服务专业合作社", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "农机装备", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "简称": "益众农机" - } - }, - { - "id": "YC-FARM-EQUIPMENT-002", - "name": "农机监理站", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "农机装备", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-DISEASE-CONTROL", - "categoryName": "疫病防控", - "industryStage": "social-service", - "sources": [ - "详细数据清单-归档(1).xlsx:疫病防控" - ], - "itemCount": 3, - "items": [ - { - "id": "YC-DISEASE-CONTROL-001", - "name": "红原县高原牧歌农业科技有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "疫病防控", - "town": null, - "address": "邛溪镇", - "status": null, - "longitude": 102.54861991, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - }, - { - "id": "YC-DISEASE-CONTROL-002", - "name": "红原县动物疫病预防控制中心", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "疫病防控", - "town": null, - "address": "邛溪镇", - "status": null, - "longitude": 102.54852894, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - }, - { - "id": "YC-DISEASE-CONTROL-003", - "name": "疫控中心", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "疫病防控", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-TECH-TRAINING", - "categoryName": "技术培训", - "industryStage": "social-service", - "sources": [ - "详细数据清单-归档(1).xlsx:技术培训" - ], - "itemCount": 8, - "items": [ - { - "id": "YC-TECH-TRAINING-001", - "name": "四川省草科院", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": "瓦切镇", - "address": "国家级牧草基地", - "status": null, - "longitude": null, - "latitude": null, - "contacts": { - "expertTeam": "游明鸿、季晓菲、官久强、安添午、赵文吉、贾国夫等", - "contactPerson": "游明鸿", - "phone": 13880288056 - }, - "metrics": { - "年培训场次": "‘2-3", - "年培训人次": "80-100", - "单次最大容纳人数": 40, - "下期培训计划(时间 + 内容)": "8月,草产品加工、放牧+补饲、中藏药材栽培管理等" - }, - "attributes": { - "序号": 1, - "机构类型": "科研院所", - "主要培训内容": "栽培草种推荐、牧草栽培与草产品加工、牦牛疫病防治、放牧+补饲、道地和特色优势中藏药材栽培技术等", - "最近培训时间": "7月" - } - }, - { - "id": "YC-TECH-TRAINING-002", - "name": "乡村振兴科技特派团", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": "全县覆盖", - "address": "县农业农村局", - "status": null, - "longitude": null, - "latitude": null, - "contacts": { - "expertTeam": "游明鸿、季晓菲、刘琳、官久强、安添午、赵文吉等", - "contactPerson": "游明鸿", - "phone": 13880288056 - }, - "metrics": { - "年培训场次": "’3-4", - "年培训人次": "100-150", - "单次最大容纳人数": 40, - "下期培训计划(时间 + 内容)": "8月,草产品加工、放牧+补饲、中藏药材栽培管理等" - }, - "attributes": { - "序号": 2, - "机构类型": "政府派出机构", - "主要培训内容": "栽培草种推荐、牧草栽培与草产品加工、牦牛疫病防治、放牧+补饲、道地和特色优势中藏药材栽培技术等", - "最近培训时间": "7月" - } - }, - { - "id": "YC-TECH-TRAINING-003", - "name": "中国科学院", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": "邛溪镇", - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": 3, - "机构类型": "国家级科研机构" - } - }, - { - "id": "YC-TECH-TRAINING-004", - "name": "红原县畜牧业高质量发展专家工作站", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": "邛溪镇", - "address": "县畜牧兽医服务中心", - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": 4, - "机构类型": "地方专家平台" - } - }, - { - "id": "YC-TECH-TRAINING-005", - "name": "西南民族大学", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": "邛溪镇", - "address": "红原牦牛研究基地", - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": 5, - "机构类型": "高校" - } - }, - { - "id": "YC-TECH-TRAINING-006", - "name": "阿坝州农科院", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": "马尔康市 / 邛溪镇", - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": 6, - "机构类型": "科研院所" - } - }, - { - "id": "YC-TECH-TRAINING-007", - "name": "对接相关科研院校收集数据", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": "科教股" - } - }, - { - "id": "YC-TECH-TRAINING-008", - "name": "技术培训-8", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "技术培训", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": "科技股" - } - } - ] - }, - { - "categoryCode": "YC-SERVICE-FINANCE", - "categoryName": "金融服务网点", - "industryStage": "social-service", - "sources": [ - "详细数据清单-归档(1).xlsx:金融服务网点" - ], - "itemCount": 4, - "items": [ - { - "id": "YC-SERVICE-FINANCE-001", - "name": "中国农业银行股份有限公司红原县支行", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "金融服务网点", - "town": null, - "address": "红原县邛溪镇阳嘎中街", - "status": null, - "longitude": 102.54, - "latitude": 32.79, - "contacts": { - "contactPerson": "泽旺吉松", - "creditPhone": 13096265881 - }, - "metrics": { - "服务覆盖乡镇数": 10, - "主要贷款产品(可多选)": "惠农e贷、专业大户贷、商户贷、乡旅贷、富民贷、帮扶小额信贷。", - "最高单户贷款额度 (万元)": 150, - "最长贷款期限 (年)": "5年" - }, - "attributes": { - "序号": 1, - "简称": "农行红原支行", - "年利率范围": 0.03, - "还款方式": "等额本息还款、一次性还本按约还息、一次性利随本清、" - } - }, - { - "id": "YC-SERVICE-FINANCE-002", - "name": "四川红原农村商业银行股份有限公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "金融服务网点", - "town": null, - "address": "红原县邛溪镇绛熙中街13号", - "status": null, - "longitude": 102.54, - "latitude": 32.79, - "contacts": { - "contactPerson": "索让东周", - "creditPhone": 18283790555 - }, - "metrics": { - "服务覆盖乡镇数": 9, - "主要贷款产品(可多选)": "小额农贷、生源地信用助学贷款、惠商贷、居民消费贷、消费易贷、个人生产经营贷款、个人综合消费贷款、个人一手住房贷款、一人二手住房贷款", - "最高单户贷款额度 (万元)": 770, - "最长贷款期限 (年)": "生源地信用助学贷款22年、个人一手住房贷款30年、个人贷款5年。" - }, - "attributes": { - "序号": 2, - "简称": "红原农商行", - "年利率范围": "2.1%—5.0%", - "还款方式": "按月结息、按年还本;按月结息,到期一次性还本;等额本息。" - } - }, - { - "id": "YC-SERVICE-FINANCE-003", - "name": "中国邮政储蓄银行股份有限公司红原县支行", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "金融服务网点", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": { - "服务覆盖乡镇数": 9 - }, - "attributes": { - "序号": 3, - "简称": "邮储银行红原支行" - } - }, - { - "id": "YC-SERVICE-FINANCE-004", - "name": "金融服务网点-4", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "金融服务网点", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": "乡村振兴股" - } - } - ] - }, - { - "categoryCode": "YC-SERVICE-INSURANCE", - "categoryName": "保险服务网点", - "industryStage": "social-service", - "sources": [ - "详细数据清单-归档(1).xlsx:保险服务网点" - ], - "itemCount": 4, - "items": [ - { - "id": "YC-SERVICE-INSURANCE-001", - "name": "中华安盟财产保险股份有限公司红原支公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "保险服务网点", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": { - "claimHotline": 95585 - }, - "metrics": { - "服务覆盖乡镇数": 9 - }, - "attributes": { - "序号": 1, - "简称": "中华安盟" - } - }, - { - "id": "YC-SERVICE-INSURANCE-002", - "name": "中国人民财产保险股份有限公司红原支公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "保险服务网点", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": { - "claimHotline": 95518 - }, - "metrics": { - "服务覆盖乡镇数": 9 - }, - "attributes": { - "序号": 2, - "简称": "人保财险" - } - }, - { - "id": "YC-SERVICE-INSURANCE-003", - "name": "中华联合财产保险股份有限公司红原支公司", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "保险服务网点", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": { - "claimHotline": 95585 - }, - "metrics": { - "服务覆盖乡镇数": 9 - }, - "attributes": { - "序号": 3, - "简称": "中华财险" - } - }, - { - "id": "YC-SERVICE-INSURANCE-004", - "name": "保险服务网点-4", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "保险服务网点", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": {}, - "attributes": { - "序号": "疫控中心" - } - } - ] - }, - { - "categoryCode": "YC-GRASSLAND-RESOURCE", - "categoryName": "林草资源数据", - "industryStage": "artificial-grassland", - "sources": [ - "详细数据清单-归档(1).xlsx:林草局数据" - ], - "itemCount": 3, - "items": [ - { - "id": "YC-GRASSLAND-RESOURCE-001", - "name": "林草局数据-1", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "林草局数据", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": { - "灌木林面积": "调整优化意见", - "围栏封育面积": "ABC 是基本草原", - "生态奖补面积,到每个村": "DE一般草原" - }, - "attributes": {} - }, - { - "id": "YC-GRASSLAND-RESOURCE-002", - "name": "林草局数据-2", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "林草局数据", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": { - "灌木林面积": "基本草原面积:", - "围栏封育面积": 637.127369, - "生态奖补面积,到每个村": "万亩" - }, - "attributes": {} - }, - { - "id": "YC-GRASSLAND-RESOURCE-003", - "name": "林草局数据-3", - "sourceFile": "/Users/mocker/Documents/hy/详细数据清单-归档(1).xlsx", - "sourceSheet": "林草局数据", - "town": null, - "address": null, - "status": null, - "longitude": null, - "latitude": null, - "contacts": {}, - "metrics": { - "灌木林面积": "一般草原面积", - "围栏封育面积": 119.301972, - "生态奖补面积,到每个村": "万亩" - }, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-CXPT-BREEDING-BASE", - "categoryName": "cxpt养殖基地", - "industryStage": "scale-breeding", - "sources": [ - "cxpt.t_base_land" - ], - "itemCount": 28, - "items": [ - { - "id": "2c9380898a69780a018a69a6e4d30001", - "name": "下哈拉玛标准化养殖基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233103202", - "areaName": "下哈拉玛村", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇下哈拉玛村", - "address": null, - "scale": "1000亩", - "longitude": null, - "latitude": null, - "geometryType": null, - "contacts": { - "leader": "下哈拉玛标准化养殖基地", - "phone": "下哈拉玛标准化养殖基地" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048125ab0001", - "name": "刷经寺镇国航专属农场", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233101000", - "areaName": "刷经寺镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县刷经寺镇", - "address": "红原县刷经寺镇", - "scale": "200亩", - "longitude": 102.60753736, - "latitude": 32.01520185, - "geometryType": "Point", - "contacts": { - "leader": "文明智", - "phone": "18372667181" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028816489fc57730189fc6a28c60001", - "name": "唐日标准化养殖基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233", - "areaName": "红原县", - "areaFullName": "四川省阿坝藏族羌族自治州红原县", - "address": "红原", - "scale": "1000", - "longitude": 102.52418747, - "latitude": 32.7965246, - "geometryType": "Polygon", - "contacts": { - "leader": "唐日标准化养殖基地", - "phone": "18090242999" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870482432f000f", - "name": "国航专属农牧场", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": null, - "scale": null, - "longitude": 102.611698, - "latitude": 32.928581, - "geometryType": "Point", - "contacts": { - "phone": "13888888888" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870483afc00027", - "name": "央诺尔畜牧专业合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233205000", - "areaName": "阿木乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", - "address": "四川省红原县阿木乡", - "scale": null, - "longitude": 102.64730957, - "latitude": 32.94532722, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704828d450013", - "name": "安曲哈拉玛合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233103000", - "areaName": "安曲镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", - "address": null, - "scale": null, - "longitude": 102.32834969, - "latitude": 32.64290686, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870483a0800026", - "name": "安曲家庭农场", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233103000", - "areaName": "安曲镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", - "address": "红原县安曲牧场(近209省道)", - "scale": null, - "longitude": 102.38834969, - "latitude": 32.69290686, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048291f90014", - "name": "安曲抗灾保畜基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233103000", - "areaName": "安曲镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", - "address": null, - "scale": null, - "longitude": 102.30834969, - "latitude": 32.67290686, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048318f2001b", - "name": "尚源牧业发展有限责任公司", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇", - "scale": null, - "longitude": 102.53242152, - "latitude": 32.81168014, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704814a8d0005", - "name": "更攀合作总社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇瑞庆西路", - "scale": "154244亩", - "longitude": 102.583582, - "latitude": 32.830854, - "geometryType": "Point", - "contacts": { - "phone": "18789497898" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870482e47c0015", - "name": "查尔玛乡查龙合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233203000", - "areaName": "查尔玛乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县查尔玛乡", - "address": null, - "scale": null, - "longitude": 101.96111079, - "latitude": 32.36851156, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704812a950002", - "name": "查尔玛乡达尔龙合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233202000", - "areaName": "江茸乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县江茸乡", - "address": null, - "scale": "388680亩", - "longitude": 102.25164714, - "latitude": 32.34434154, - "geometryType": "Point", - "contacts": { - "phone": "13666666666" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870482ee200016", - "name": "查尔玛乡达智合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233203000", - "areaName": "查尔玛乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县查尔玛乡", - "address": null, - "scale": null, - "longitude": 102.10243332, - "latitude": 32.5533277, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028816489fc81de0189fc8dd5c90000", - "name": "查尔玛标准养殖基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233203000", - "areaName": "查尔玛乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县查尔玛乡", - "address": "查尔玛乡", - "scale": "200", - "longitude": null, - "latitude": null, - "geometryType": null, - "contacts": { - "leader": "查尔玛标准养殖基地", - "phone": "13696856985" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "2c9380898a69780a018a69a654f90000", - "name": "瓦切卡口乡标准化养殖基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": "2000", - "longitude": null, - "latitude": null, - "geometryType": null, - "contacts": { - "leader": "瓦切卡口乡标准化养殖基地", - "phone": "瓦切卡口乡标准化养殖基地" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "2c9380898a69780a018a69a7484e0002", - "name": "瓦切唐日标准化养殖基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233204201", - "areaName": "唐日村", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇唐日村", - "address": null, - "scale": "1000亩", - "longitude": null, - "latitude": null, - "geometryType": null, - "contacts": { - "leader": "瓦切唐日标准化养殖基地", - "phone": "瓦切唐日标准化养殖基地" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870483561f0020", - "name": "瓦切德香村合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": "1800亩", - "longitude": 102.60756103, - "latitude": 33.16501517, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704836a0f0022", - "name": "瓦切罗尔江合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": "5000亩", - "longitude": 102.61692465, - "latitude": 33.07321484, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048271970011", - "name": "瓦切镇达峨村种草大户泽郎夺尔基", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": "红原县瓦切镇达峨村", - "scale": "2000余平方千米", - "longitude": 102.768611, - "latitude": 33.218282, - "geometryType": "Point", - "contacts": { - "leader": "泽郎夺尔基", - "phone": "18728211722" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048137b80004", - "name": "红原县邛溪镇热多村高产奶牦牛繁育基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇热多村", - "scale": "1000头", - "longitude": 102.607635, - "latitude": 32.899228, - "geometryType": "Point", - "contacts": { - "leader": "桑键", - "phone": "13990407109" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704812f390003", - "name": "红原县麦洼牦牛现代农业园区", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233105000", - "areaName": "龙日镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县龙日镇", - "address": null, - "scale": "664.2亩", - "longitude": 102.523105, - "latitude": 32.470534, - "geometryType": "Point", - "contacts": { - "leader": "李先生", - "phone": "13926576971" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048339ee001e", - "name": "红原雪玛格牦牛养殖合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233101000", - "areaName": "刷经寺镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县刷经寺镇", - "address": null, - "scale": null, - "longitude": 102.48668882, - "latitude": 32.20779478, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048349d4001f", - "name": "色地让里村合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233208000", - "areaName": "色地镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县色地镇", - "address": null, - "scale": "2000平方米", - "longitude": 102.97944868, - "latitude": 32.99718428, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048300bb0019", - "name": "邛溪国航奶牛基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇", - "scale": null, - "longitude": 102.60973364, - "latitude": 32.93442417, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704830f93001a", - "name": "邛溪国航肉牛基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇", - "scale": null, - "longitude": 102.5857137, - "latitude": 32.9178444, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704832780001d", - "name": "邛溪镇奇杨益西合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233103000", - "areaName": "安曲镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", - "address": null, - "scale": "3355.4亩", - "longitude": 102.51815641, - "latitude": 32.7759152, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048288e30012", - "name": "阿木乡卡口养殖基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233205000", - "areaName": "阿木乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", - "address": "四川省红原县阿木乡", - "scale": null, - "longitude": 102.66730957, - "latitude": 32.90532722, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870482f79f0018", - "name": "麦洼乡利群合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_base", - "categoryNameRaw": "养殖基地", - "areaCode": "513233207000", - "areaName": "麦洼乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县麦洼乡", - "address": "四川省阿坝藏族羌族自治州红原县麦洼乡滚塘村", - "scale": "1万亩", - "longitude": 102.91804548, - "latitude": 33.05789166, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-CXPT-FORAGE-BASE", - "categoryName": "cxpt饲草基地", - "industryStage": "artificial-grassland", - "sources": [ - "cxpt.t_base_land" - ], - "itemCount": 5, - "items": [ - { - "id": "2c9380898a69780a018a69a7c9b10003", - "name": "安曲种草基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "forage_base", - "categoryNameRaw": "饲草基地", - "areaCode": "513233103000", - "areaName": "安曲镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", - "address": null, - "scale": "5000亩", - "longitude": null, - "latitude": null, - "geometryType": null, - "contacts": { - "leader": "安曲种草基地", - "phone": "安曲种草基地" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704835aae0021", - "name": "瓦切抗灾保畜基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "forage_base", - "categoryNameRaw": "饲草基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": "3000亩", - "longitude": 102.58969571, - "latitude": 33.0961638, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048380420023", - "name": "瓦切色永村种草基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "forage_base", - "categoryNameRaw": "饲草基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": "2000亩", - "longitude": 102.63066554, - "latitude": 33.14234459, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870483927c0025", - "name": "瓦切镇特色蔬菜种植园", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "forage_base", - "categoryNameRaw": "饲草基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": null, - "longitude": 102.5959684, - "latitude": 33.08257632, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870481a0d10006", - "name": "红原县唐日牦牛养殖农民专业合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "forage_base", - "categoryNameRaw": "饲草基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": "红原县瓦切镇唐日村", - "scale": "2000亩", - "longitude": 102.690423, - "latitude": 33.134153, - "geometryType": "Point", - "contacts": { - "leader": "旦真贡", - "phone": "18090242999" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-CXPT-BREEDING-STOCK-BASE", - "categoryName": "cxpt种畜基地", - "industryStage": "scale-breeding", - "sources": [ - "cxpt.t_base_land" - ], - "itemCount": 1, - "items": [ - { - "id": "4028c4f88704809e01870482f2de0017", - "name": "麦洼乡达坤玛选育场", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "breeding_stock_base", - "categoryNameRaw": "种畜基地", - "areaCode": "513233207000", - "areaName": "麦洼乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县麦洼乡", - "address": null, - "scale": "1万亩", - "longitude": 102.90295791, - "latitude": 33.05466505, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-CXPT-GRASS-SEED-BASE", - "categoryName": "cxpt草种基地", - "industryStage": "artificial-grassland", - "sources": [ - "cxpt.t_base_land" - ], - "itemCount": 1, - "items": [ - { - "id": "4028c4f88704809e018704831d77001c", - "name": "红原县金针菇特色种植园区", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "grass_seed_base", - "categoryNameRaw": "草种基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇", - "scale": null, - "longitude": 102.5421184, - "latitude": 32.79970142, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - } - ] - }, - { - "categoryCode": "YC-CXPT-OTHER-BASE", - "categoryName": "cxpt其他基地", - "industryStage": "social-service", - "sources": [ - "cxpt.t_base_land" - ], - "itemCount": 11, - "items": [ - { - "id": "4028c4f88704809e0187048215ac000e", - "name": "刷经寺镇露地蔬菜种植基地", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233101000", - "areaName": "刷经寺镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县刷经寺镇", - "address": "红原县刷经寺镇", - "scale": null, - "longitude": 102.620282, - "latitude": 32.037843, - "geometryType": "Point", - "contacts": { - "leader": "文明智", - "phone": "0837-2667185" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870482023a000c", - "name": "四川红原遛遛牛食品有限责任公司", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233103000", - "areaName": "安曲镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县安曲镇", - "address": "四川省红原县绿色产业园区", - "scale": "25亩", - "longitude": 102.324776, - "latitude": 32.689929, - "geometryType": "Point", - "contacts": { - "leader": "张自龙", - "phone": "13909047233" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704826d4c0010", - "name": "植物园", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": null, - "scale": null, - "longitude": 102.551944, - "latitude": 32.780316, - "geometryType": "Point", - "contacts": { - "phone": "13888888888" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870481f0a0000a", - "name": "活畜交易市场", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "红原县邛溪镇", - "scale": "3000亩", - "longitude": 102.57314, - "latitude": 32.82984, - "geometryType": "Point", - "contacts": { - "leader": "向白", - "phone": "18090223335" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870481f4e9000b", - "name": "物联网大数据监测系统", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233205000", - "areaName": "阿木乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", - "address": "红原县绿色工业园区", - "scale": "10000", - "longitude": 102.776153, - "latitude": 32.72242, - "geometryType": "Point", - "contacts": { - "leader": "熊先生", - "phone": "13845444444" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e0187048384dc0024", - "name": "瓦切阳诺合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233204000", - "areaName": "瓦切镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县瓦切镇", - "address": null, - "scale": "3000亩", - "longitude": 102.63675654, - "latitude": 33.14253159, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e018704811f290000", - "name": "红原县城市污水处理厂", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": null, - "scale": "2.5公顷", - "longitude": 102.559801, - "latitude": 32.816904, - "geometryType": "Point", - "contacts": {}, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870481b7180008", - "name": "红原县永源牦牛肉业有限公司", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233205000", - "areaName": "阿木乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县阿木乡", - "address": "红原县邛溪镇绿色工业园区", - "scale": "30亩", - "longitude": 102.628332, - "latitude": 32.639351, - "geometryType": "Point", - "contacts": { - "leader": "张健", - "phone": "13566787888" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870482067d000d", - "name": "红原县茸日玛绵羊养殖专业合作社", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233202000", - "areaName": "江茸乡", - "areaFullName": "四川省阿坝藏族羌族自治州红原县江茸乡", - "address": "红原县江茸镇日玛村", - "scale": "5000亩", - "longitude": 102.23279, - "latitude": 32.402614, - "geometryType": "Point", - "contacts": { - "leader": "旦真则旺", - "phone": "13541576727" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870481aa840007", - "name": "红原牦牛乳业有限责任公司", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233100000", - "areaName": "邛溪镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县邛溪镇", - "address": "四川省红原县邛溪镇", - "scale": "92490平方米", - "longitude": 102.747914, - "latitude": 32.802653, - "geometryType": "Point", - "contacts": { - "leader": "杨勇", - "phone": "13551770158" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - }, - { - "id": "4028c4f88704809e01870481cc520009", - "name": "(无害化)红原县宜霖阳光环保科技有限公司", - "sourceFile": "cxpt PostgreSQL database", - "sourceSheet": "t_base_land", - "categoryCodeRaw": "other", - "categoryNameRaw": "其他基地", - "areaCode": "513233105000", - "areaName": "龙日镇", - "areaFullName": "四川省阿坝藏族羌族自治州红原县龙日镇", - "address": "红原县邛溪镇绛熙东街", - "scale": "占地20亩", - "longitude": 102.352372, - "latitude": 32.538109, - "geometryType": "Point", - "contacts": { - "leader": "谢光伍", - "phone": "13609975631" - }, - "metrics": { - "acreage": null - }, - "attributes": {} - } - ] - } - ] -} -`,cV=`{ - "datasetName": "红原县家庭生态牧场建设台账", - "sourceSummary": "红原县2023年至今建设家庭牧场汇总表.xls", - "sourceCoordinates": "红原县2025年适度规模化(生态家庭牧场)家庭牧场项目-户主信息表.xlsx", - "recordUnit": "处", - "recordCount": 252, - "locatedRecordCount": 79, - "records": [ - { - "id": "YC-FAMILY-PASTURE-SUM-001", - "name": "旦巴措家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "旦巴措", - "constructionYear": 2023, - "sourceNo": 1, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "旦巴措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-002", - "name": "兰美家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "兰美", - "constructionYear": 2023, - "sourceNo": 2, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "兰美" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-003", - "name": "求基家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "求基", - "constructionYear": 2023, - "sourceNo": 3, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-004", - "name": "罗日则巴家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "罗日则巴", - "constructionYear": 2023, - "sourceNo": 4, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "罗日则巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-005", - "name": "泽让夺基家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "泽让夺基", - "constructionYear": 2023, - "sourceNo": 5, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽让夺基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-006", - "name": "尕玛让丹家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "尕玛让丹", - "constructionYear": 2023, - "sourceNo": 6, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尕玛让丹" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-007", - "name": "泽郎吉家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "泽郎吉", - "constructionYear": 2023, - "sourceNo": 7, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽郎吉" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-008", - "name": "吴穷家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "吴穷", - "constructionYear": 2023, - "sourceNo": 8, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "吴穷" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-009", - "name": "东周罗吾家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "东周罗吾", - "constructionYear": 2023, - "sourceNo": 9, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "东周罗吾" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-010", - "name": "扎巴家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "扎巴", - "constructionYear": 2023, - "sourceNo": 10, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "扎巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-011", - "name": "尼美青则家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "尼美青则", - "constructionYear": 2023, - "sourceNo": 11, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尼美青则" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-012", - "name": "尕尔玛家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "尕尔玛", - "constructionYear": 2023, - "sourceNo": 12, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尕尔玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-013", - "name": "尼玛甲参家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "尼玛甲参", - "constructionYear": 2023, - "sourceNo": 13, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尼玛甲参" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-014", - "name": "俄热多吉家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "俄热多吉", - "constructionYear": 2023, - "sourceNo": 14, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "俄热多吉" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-015", - "name": "头旦让俄家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "头旦让俄", - "constructionYear": 2023, - "sourceNo": 15, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "头旦让俄" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-016", - "name": "洛真娜姆家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "洛真娜姆", - "constructionYear": 2023, - "sourceNo": 16, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "洛真娜姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-017", - "name": "达洛家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "达洛", - "constructionYear": 2023, - "sourceNo": 17, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "达洛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-018", - "name": "阿旦家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "阿旦", - "constructionYear": 2023, - "sourceNo": 18, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "阿旦" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-019", - "name": "哥扎尕洛家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "哥扎尕洛", - "constructionYear": 2023, - "sourceNo": 19, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "哥扎尕洛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-020", - "name": "让巴家庭生态牧场", - "town": "瓦切镇", - "village": "唐日村", - "owner": "让巴", - "constructionYear": 2023, - "sourceNo": 20, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "让巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-021", - "name": "罗尔让家庭生态牧场", - "town": "瓦切镇", - "village": "唐日村", - "owner": "罗尔让", - "constructionYear": 2023, - "sourceNo": 21, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "罗尔让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-022", - "name": "泽郎扎西家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "泽郎扎西", - "constructionYear": 2023, - "sourceNo": 22, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽郎扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-023", - "name": "更根加家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "更根加", - "constructionYear": 2023, - "sourceNo": 23, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "更根加" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-024", - "name": "周吉家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "周吉", - "constructionYear": 2023, - "sourceNo": 24, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "周吉" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-025", - "name": "南木姐家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "南木姐", - "constructionYear": 2023, - "sourceNo": 25, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "南木姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-026", - "name": "慈陈家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "慈陈", - "constructionYear": 2023, - "sourceNo": 26, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "慈陈" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-027", - "name": "尼西甲家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "尼西甲", - "constructionYear": 2023, - "sourceNo": 27, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尼西甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-028", - "name": "索夺家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "索夺", - "constructionYear": 2023, - "sourceNo": 28, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "索夺" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-029", - "name": "罗让求迫家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "罗让求迫", - "constructionYear": 2023, - "sourceNo": 29, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "罗让求迫" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-030", - "name": "王多家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "王多", - "constructionYear": 2023, - "sourceNo": 30, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "王多" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-031", - "name": "班玛确折家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "班玛确折", - "constructionYear": 2023, - "sourceNo": 31, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "班玛确折" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-032", - "name": "单比甲参家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "单比甲参", - "constructionYear": 2023, - "sourceNo": 32, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "单比甲参" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-033", - "name": "罗日东周家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "罗日东周", - "constructionYear": 2023, - "sourceNo": 33, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "罗日东周" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-034", - "name": "格登甲措家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "格登甲措", - "constructionYear": 2023, - "sourceNo": 34, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "格登甲措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-035", - "name": "泽朗姐家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "泽朗姐", - "constructionYear": 2023, - "sourceNo": 35, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽朗姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-036", - "name": "能周家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "能周", - "constructionYear": 2023, - "sourceNo": 36, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "能周" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-037", - "name": "角布家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "角布", - "constructionYear": 2023, - "sourceNo": 37, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "角布" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-038", - "name": "仁真沙尔夺家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "仁真沙尔夺", - "constructionYear": 2023, - "sourceNo": 38, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "仁真沙尔夺" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-039", - "name": "罗波家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "罗波", - "constructionYear": 2023, - "sourceNo": 39, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "罗波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-040", - "name": "扎西坚措家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "扎西坚措", - "constructionYear": 2023, - "sourceNo": 40, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "扎西坚措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-041", - "name": "求甲家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "求甲", - "constructionYear": 2023, - "sourceNo": 41, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-042", - "name": "卡波家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "卡波", - "constructionYear": 2023, - "sourceNo": 42, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "卡波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-043", - "name": "占扎哥马家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "占扎哥马", - "constructionYear": 2023, - "sourceNo": 43, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "占扎哥马" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-044", - "name": "穷措家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "穷措", - "constructionYear": 2023, - "sourceNo": 44, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "穷措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-045", - "name": "旦巴泽让家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "旦巴泽让", - "constructionYear": 2023, - "sourceNo": 45, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "旦巴泽让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-046", - "name": "杨准家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "杨准", - "constructionYear": 2023, - "sourceNo": 46, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "杨准" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-047", - "name": "格登家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "格登", - "constructionYear": 2023, - "sourceNo": 47, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "格登" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-048", - "name": "东朱家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "东朱", - "constructionYear": 2023, - "sourceNo": 48, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "东朱" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-049", - "name": "措么家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "措么", - "constructionYear": 2023, - "sourceNo": 49, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "措么" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-050", - "name": "勒波家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "勒波", - "constructionYear": 2023, - "sourceNo": 50, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "勒波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-051", - "name": "泽波甲家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "泽波甲", - "constructionYear": 2023, - "sourceNo": 51, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽波甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-052", - "name": "旦真索拉家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "旦真索拉", - "constructionYear": 2023, - "sourceNo": 52, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "旦真索拉" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-053", - "name": "索尕家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "索尕", - "constructionYear": 2023, - "sourceNo": 53, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "索尕" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-054", - "name": "列红家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "列红", - "constructionYear": 2023, - "sourceNo": 54, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "列红" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-055", - "name": "基西甲家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "基西甲", - "constructionYear": 2023, - "sourceNo": 55, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "基西甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-056", - "name": "罗日花甲家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "罗日花甲", - "constructionYear": 2023, - "sourceNo": 56, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "罗日花甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-057", - "name": "南木甲家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "南木甲", - "constructionYear": 2023, - "sourceNo": 57, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "南木甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-058", - "name": "旺青成里家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "旺青成里", - "constructionYear": 2023, - "sourceNo": 58, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "旺青成里" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-059", - "name": "拉玛家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "拉玛", - "constructionYear": 2023, - "sourceNo": 59, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "拉玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-060", - "name": "求扎家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "求扎", - "constructionYear": 2023, - "sourceNo": 60, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求扎" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-061", - "name": "纳哇家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "纳哇", - "constructionYear": 2023, - "sourceNo": 61, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "纳哇" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-062", - "name": "直甲家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "直甲", - "constructionYear": 2023, - "sourceNo": 62, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "直甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-063", - "name": "文伯家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "文伯", - "constructionYear": 2023, - "sourceNo": 63, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "文伯" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-064", - "name": "王青扎西家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "王青扎西", - "constructionYear": 2023, - "sourceNo": 64, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "王青扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-065", - "name": "贡秋泽旦家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "贡秋泽旦", - "constructionYear": 2023, - "sourceNo": 65, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "贡秋泽旦" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-066", - "name": "若巴甲初家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "若巴甲初", - "constructionYear": 2023, - "sourceNo": 66, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "若巴甲初" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-067", - "name": "泽郎兰基家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "泽郎兰基", - "constructionYear": 2023, - "sourceNo": 67, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽郎兰基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-068", - "name": "兰木机家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "兰木机", - "constructionYear": 2023, - "sourceNo": 68, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "兰木机" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-069", - "name": "迫洼姐家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "迫洼姐", - "constructionYear": 2023, - "sourceNo": 69, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "迫洼姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-070", - "name": "达真德旦家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "达真德旦", - "constructionYear": 2023, - "sourceNo": 70, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "达真德旦" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-071", - "name": "额尔家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "额尔", - "constructionYear": 2023, - "sourceNo": 71, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "额尔" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-072", - "name": "求扎家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "求扎", - "constructionYear": 2023, - "sourceNo": 72, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求扎" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-073", - "name": "仁真甲家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "仁真甲", - "constructionYear": 2023, - "sourceNo": 73, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "仁真甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-074", - "name": "泽郎扎西家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "泽郎扎西", - "constructionYear": 2023, - "sourceNo": 74, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽郎扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-075", - "name": "洼玛卡卓家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "洼玛卡卓", - "constructionYear": 2023, - "sourceNo": 75, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "洼玛卡卓" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-076", - "name": "旦真扎西家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "旦真扎西", - "constructionYear": 2023, - "sourceNo": 76, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "旦真扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-077", - "name": "夺柯甲家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "夺柯甲", - "constructionYear": 2023, - "sourceNo": 77, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "夺柯甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-078", - "name": "曲格准家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "曲格准", - "constructionYear": 2023, - "sourceNo": 78, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "曲格准" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-079", - "name": "次旺依玛家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "次旺依玛", - "constructionYear": 2023, - "sourceNo": 79, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "次旺依玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-080", - "name": "甲央扎西家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "甲央扎西", - "constructionYear": 2023, - "sourceNo": 80, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "甲央扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-081", - "name": "石德家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "石德", - "constructionYear": 2023, - "sourceNo": 81, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "石德" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-082", - "name": "求措家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "求措", - "constructionYear": 2023, - "sourceNo": 82, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-083", - "name": "卓尔单家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "卓尔单", - "constructionYear": 2023, - "sourceNo": 83, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "卓尔单" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-084", - "name": "穷真家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "穷真", - "constructionYear": 2023, - "sourceNo": 84, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "穷真" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-085", - "name": "贡波家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "贡波", - "constructionYear": 2023, - "sourceNo": 85, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "贡波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-086", - "name": "穷拉家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "穷拉", - "constructionYear": 2023, - "sourceNo": 86, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "穷拉" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-087", - "name": "克周家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "克周", - "constructionYear": 2023, - "sourceNo": 87, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "克周" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-088", - "name": "热布尕家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "热布尕", - "constructionYear": 2023, - "sourceNo": 88, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "热布尕" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-089", - "name": "求科家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "求科", - "constructionYear": 2023, - "sourceNo": 89, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求科" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-090", - "name": "窝能家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "窝能", - "constructionYear": 2023, - "sourceNo": 90, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "窝能" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-091", - "name": "泽郎扎西家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "泽郎扎西", - "constructionYear": 2023, - "sourceNo": 91, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽郎扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-092", - "name": "哈里家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "哈里", - "constructionYear": 2023, - "sourceNo": 92, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "哈里" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-093", - "name": "旦灯家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "旦灯", - "constructionYear": 2023, - "sourceNo": 93, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "旦灯" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-094", - "name": "卓玛家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "卓玛", - "constructionYear": 2023, - "sourceNo": 94, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "卓玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-095", - "name": "阿木滚家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "阿木滚", - "constructionYear": 2023, - "sourceNo": 95, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "阿木滚" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-096", - "name": "求科家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "求科", - "constructionYear": 2023, - "sourceNo": 96, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "求科" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-097", - "name": "泽不丹家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "泽不丹", - "constructionYear": 2023, - "sourceNo": 97, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽不丹" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-098", - "name": "许格甲家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "许格甲", - "constructionYear": 2023, - "sourceNo": 98, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "许格甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-099", - "name": "扎西热丹家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "扎西热丹", - "constructionYear": 2023, - "sourceNo": 99, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "扎西热丹" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-100", - "name": "达姆家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "达姆", - "constructionYear": 2023, - "sourceNo": 100, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "达姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-101", - "name": "措格加家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "措格加", - "constructionYear": 2023, - "sourceNo": 101, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "措格加" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-102", - "name": "勒科家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "勒科", - "constructionYear": 2023, - "sourceNo": 102, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "勒科" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-103", - "name": "科柯家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "科柯", - "constructionYear": 2023, - "sourceNo": 103, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "科柯" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-104", - "name": "吉科家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "吉科", - "constructionYear": 2023, - "sourceNo": 104, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "吉科" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-105", - "name": "尼玛旦真家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "尼玛旦真", - "constructionYear": 2023, - "sourceNo": 105, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尼玛旦真" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-106", - "name": "向秋夺基家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "向秋夺基", - "constructionYear": 2023, - "sourceNo": 106, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "向秋夺基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-107", - "name": "尼格卓家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "尼格卓", - "constructionYear": 2023, - "sourceNo": 107, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尼格卓" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-108", - "name": "尕尔让家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "尕尔让", - "constructionYear": 2023, - "sourceNo": 108, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "尕尔让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-109", - "name": "陈香家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "陈香", - "constructionYear": 2023, - "sourceNo": 109, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "陈香" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-110", - "name": "泽让姐家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "泽让姐", - "constructionYear": 2023, - "sourceNo": 110, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽让姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-111", - "name": "甲布寻家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "甲布寻", - "constructionYear": 2023, - "sourceNo": 111, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "甲布寻" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-112", - "name": "南克甲叁家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "南克甲叁", - "constructionYear": 2023, - "sourceNo": 112, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "南克甲叁" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-113", - "name": "易美达机家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "易美达机", - "constructionYear": 2023, - "sourceNo": 113, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "易美达机" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-114", - "name": "仁青甲家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "仁青甲", - "constructionYear": 2023, - "sourceNo": 114, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "仁青甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-115", - "name": "秋银家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "秋银", - "constructionYear": 2023, - "sourceNo": 115, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "秋银" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-116", - "name": "阿泽波家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "阿泽波", - "constructionYear": 2023, - "sourceNo": 116, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "阿泽波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-117", - "name": "秋热周朴家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "秋热周朴", - "constructionYear": 2023, - "sourceNo": 117, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "秋热周朴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-118", - "name": "根伯家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "根伯", - "constructionYear": 2023, - "sourceNo": 118, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "根伯" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-119", - "name": "更秋姐家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "更秋姐", - "constructionYear": 2023, - "sourceNo": 119, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "更秋姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-120", - "name": "泽朗华尔丹家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "泽朗华尔丹", - "constructionYear": 2023, - "sourceNo": 120, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 40㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "grassSupportType": "割草地", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "割草地 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 40, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 400, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 40㎡管理用房 / 50㎡饲草料库 / 400㎡活动场地及通道", - "草料配套": "割草地 5亩", - "户主": "泽朗华尔丹" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-121", - "name": "更尕让俄家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "更尕让俄", - "constructionYear": 2024, - "sourceNo": 121, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "更尕让俄" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-122", - "name": "尊珠家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "尊珠", - "constructionYear": 2024, - "sourceNo": 122, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 6, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 6亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 6 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 6亩", - "户主": "尊珠" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-123", - "name": "东泽家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "东泽", - "constructionYear": 2024, - "sourceNo": 123, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 7, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 7亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 7 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 7亩", - "户主": "东泽" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-124", - "name": "四郎绒布家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "四郎绒布", - "constructionYear": 2024, - "sourceNo": 124, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 8, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 8亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 8 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 8亩", - "户主": "四郎绒布" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-125", - "name": "华尔丹家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "华尔丹", - "constructionYear": 2024, - "sourceNo": 125, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 9, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 9亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 9 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 9亩", - "户主": "华尔丹" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-126", - "name": "求达家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "求达", - "constructionYear": 2024, - "sourceNo": 126, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 10, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 10亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 10 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 10亩", - "户主": "求达" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-127", - "name": "德尔达家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "德尔达", - "constructionYear": 2024, - "sourceNo": 127, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 11, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 11亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 11 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 11亩", - "户主": "德尔达" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-128", - "name": "泽让彭措家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "泽让彭措", - "constructionYear": 2024, - "sourceNo": 128, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 12, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 12亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 12 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 12亩", - "户主": "泽让彭措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-129", - "name": "万青家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "万青", - "constructionYear": 2024, - "sourceNo": 129, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 13, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 13亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 13 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 13亩", - "户主": "万青" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-130", - "name": "更让达基家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "更让达基", - "constructionYear": 2024, - "sourceNo": 130, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 14, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 14亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 14 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 14亩", - "户主": "更让达基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-131", - "name": "西卓家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "西卓", - "constructionYear": 2024, - "sourceNo": 131, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 15, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 15亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 15 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 15亩", - "户主": "西卓" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-132", - "name": "黄坤甲家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "黄坤甲", - "constructionYear": 2024, - "sourceNo": 132, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 19, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 19亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 19 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 19亩", - "户主": "黄坤甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-133", - "name": "达洛甲家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "达洛甲", - "constructionYear": 2024, - "sourceNo": 133, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 23, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 23亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 23 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 23亩", - "户主": "达洛甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-134", - "name": "德基初家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "德基初", - "constructionYear": 2024, - "sourceNo": 134, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 27, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 27亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 27 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 27亩", - "户主": "德基初" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-135", - "name": "尕尔洼家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "尕尔洼", - "constructionYear": 2024, - "sourceNo": 135, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 28, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 28亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 28 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 28亩", - "户主": "尕尔洼" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-136", - "name": "甲华扎巴家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "甲华扎巴", - "constructionYear": 2024, - "sourceNo": 136, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 29, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 29亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 29 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 29亩", - "户主": "甲华扎巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-137", - "name": "阿茸家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "阿茸", - "constructionYear": 2024, - "sourceNo": 137, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 30, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 30亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 30 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 30亩", - "户主": "阿茸" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-138", - "name": "尼玛姐家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "尼玛姐", - "constructionYear": 2024, - "sourceNo": 138, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 31, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 31亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 31 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 31亩", - "户主": "尼玛姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-139", - "name": "许尔洛家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "许尔洛", - "constructionYear": 2024, - "sourceNo": 139, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 32, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 32亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 32 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 32亩", - "户主": "许尔洛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-140", - "name": "球日格家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "球日格", - "constructionYear": 2024, - "sourceNo": 140, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 33, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 33亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 33 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 33亩", - "户主": "球日格" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-141", - "name": "华旦让俄家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "华旦让俄", - "constructionYear": 2024, - "sourceNo": 141, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 34, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 34亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 34 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 34亩", - "户主": "华旦让俄" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-142", - "name": "春雷然旦家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "春雷然旦", - "constructionYear": 2024, - "sourceNo": 142, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 35, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 35亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 35 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 35亩", - "户主": "春雷然旦" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-143", - "name": "泽郎夺尔基家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "泽郎夺尔基", - "constructionYear": 2024, - "sourceNo": 143, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 36, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 36亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 36 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 36亩", - "户主": "泽郎夺尔基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-144", - "name": "仁真南甲家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "仁真南甲", - "constructionYear": 2024, - "sourceNo": 144, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 37, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 37亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 37 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 37亩", - "户主": "仁真南甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-145", - "name": "其美兰甲家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "其美兰甲", - "constructionYear": 2024, - "sourceNo": 145, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 38, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 38亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 38 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 38亩", - "户主": "其美兰甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-146", - "name": "扎西娜姆家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "扎西娜姆", - "constructionYear": 2024, - "sourceNo": 146, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 39, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 39亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 39 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 39亩", - "户主": "扎西娜姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-147", - "name": "额日家庭生态牧场", - "town": "瓦切镇", - "village": "唐日村", - "owner": "额日", - "constructionYear": 2024, - "sourceNo": 147, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 40, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 40亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 40 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 40亩", - "户主": "额日" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-148", - "name": "勒德夺机家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "勒德夺机", - "constructionYear": 2024, - "sourceNo": 148, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 41, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 41亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 41 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 41亩", - "户主": "勒德夺机" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-149", - "name": "哈格巴家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "哈格巴", - "constructionYear": 2024, - "sourceNo": 149, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 42, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 42亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 42 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 42亩", - "户主": "哈格巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-150", - "name": "日托美家庭生态牧场", - "town": "色地镇", - "village": "日西村", - "owner": "日托美", - "constructionYear": 2024, - "sourceNo": 150, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 43, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 43亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 43 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 43亩", - "户主": "日托美" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-151", - "name": "格·吾穷家庭生态牧场", - "town": "色地镇", - "village": "让里村", - "owner": "格·吾穷", - "constructionYear": 2024, - "sourceNo": 151, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 44, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 44亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 44 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 44亩", - "户主": "格·吾穷" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-152", - "name": "日西家庭生态牧场", - "town": "色地镇", - "village": "茸塔玛村", - "owner": "日西", - "constructionYear": 2024, - "sourceNo": 152, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 45, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 45亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 45 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 45亩", - "户主": "日西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-153", - "name": "阿旺罗让家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "阿旺罗让", - "constructionYear": 2023, - "sourceNo": 153, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "阿旺罗让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-154", - "name": "日格特家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "日格特", - "constructionYear": 2023, - "sourceNo": 154, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "日格特" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-155", - "name": "求让家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "求让", - "constructionYear": 2023, - "sourceNo": 155, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "求让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-156", - "name": "央莫家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "央莫", - "constructionYear": 2023, - "sourceNo": 156, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "央莫" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-157", - "name": "贡波甲家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "贡波甲", - "constructionYear": 2023, - "sourceNo": 157, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "贡波甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-158", - "name": "瓦布登家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "瓦布登", - "constructionYear": 2023, - "sourceNo": 158, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "瓦布登" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-159", - "name": "则扎家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "则扎", - "constructionYear": 2023, - "sourceNo": 159, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "则扎" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-160", - "name": "额扎家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "额扎", - "constructionYear": 2023, - "sourceNo": 160, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "额扎" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-161", - "name": "常热里家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "常热里", - "constructionYear": 2023, - "sourceNo": 161, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "常热里" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-162", - "name": "王真尼玛家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "王真尼玛", - "constructionYear": 2023, - "sourceNo": 162, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "王真尼玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-163", - "name": "卢巴家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "卢巴", - "constructionYear": 2023, - "sourceNo": 163, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "卢巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-164", - "name": "格商花家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "格商花", - "constructionYear": 2023, - "sourceNo": 164, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "格商花" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-165", - "name": "泽旺初家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "泽旺初", - "constructionYear": 2023, - "sourceNo": 165, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "泽旺初" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-166", - "name": "泽旺嘎让家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "泽旺嘎让", - "constructionYear": 2023, - "sourceNo": 166, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "泽旺嘎让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-167", - "name": "邓代夺基家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "邓代夺基", - "constructionYear": 2023, - "sourceNo": 167, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "邓代夺基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-168", - "name": "俄见达基家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "俄见达基", - "constructionYear": 2023, - "sourceNo": 168, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "俄见达基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-169", - "name": "谢拉华拉家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "谢拉华拉", - "constructionYear": 2023, - "sourceNo": 169, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "谢拉华拉" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-170", - "name": "贡波夺基家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "贡波夺基", - "constructionYear": 2023, - "sourceNo": 170, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "贡波夺基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-171", - "name": "若巴家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "若巴", - "constructionYear": 2023, - "sourceNo": 171, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "若巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-172", - "name": "桑波家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "桑波", - "constructionYear": 2023, - "sourceNo": 172, - "pointName": "", - "facilityBrief": "200㎡暖棚 / 20㎡管理房", - "facilityDetail": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "grassSupportType": "储草基地", - "grassSupportMu": 50, - "grassSupportLowerBound": true, - "grassSupportText": "储草基地 ≥50亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 200, - "管理用房 (㎡)": 20, - "饲草料库 (㎡)": 20, - "活动场地及通道 (㎡)": 240, - "配套草料地 (亩)": 50 - }, - "attributes": { - "设施配置": "200㎡标准化暖棚 / 20㎡管理用房 / 20㎡饲草料库 / 240㎡活动场地及通道", - "草料配套": "储草基地 ≥50亩", - "户主": "桑波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-001", - "name": "拿木甲家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "拿木甲", - "constructionYear": 2025, - "sourceNo": 173, - "pointName": "1号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.45082378, - "latitude": 32.6136657, - "locations": { - "暖棚": { - "longitude": 102.45047712, - "latitude": 32.61360272 - }, - "管理用房": { - "longitude": 102.45082378, - "latitude": 32.6136657 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "拿木甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-002", - "name": "桑我甲家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "桑我甲", - "constructionYear": 2025, - "sourceNo": 174, - "pointName": "2号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.34697849, - "latitude": 32.61455374, - "locations": { - "暖棚": { - "longitude": 102.34691526, - "latitude": 32.61425696 - }, - "管理用房": { - "longitude": 102.34697849, - "latitude": 32.61455374 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "桑我甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-003", - "name": "泽朗罗日家庭生态牧场", - "town": "安曲镇", - "village": "夺龙村", - "owner": "泽朗罗日", - "constructionYear": 2025, - "sourceNo": 175, - "pointName": "3号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.37805264, - "latitude": 32.5692703, - "locations": { - "暖棚": { - "longitude": 102.37805264, - "latitude": 32.5692703 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "泽朗罗日" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-004", - "name": "德清旺姆家庭生态牧场", - "town": "安曲镇", - "village": "哈拉玛村", - "owner": "德清旺姆", - "constructionYear": 2025, - "sourceNo": 176, - "pointName": "4号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.318167, - "latitude": 32.67018808, - "locations": { - "暖棚": { - "longitude": 102.31781652, - "latitude": 32.67023409 - }, - "管理用房": { - "longitude": 102.318167, - "latitude": 32.67018808 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "德清旺姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-005", - "name": "安曲镇下哈拉玛村177号家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "", - "constructionYear": 2025, - "sourceNo": 177, - "pointName": "5号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.43182146, - "latitude": 32.73162602, - "locations": { - "暖棚": { - "longitude": 102.43198641, - "latitude": 32.73093298 - }, - "管理用房": { - "longitude": 102.43182146, - "latitude": 32.73162602 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-006", - "name": "安曲镇下哈拉玛村178号家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "", - "constructionYear": 2025, - "sourceNo": 178, - "pointName": "6号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.42615548, - "latitude": 32.80562386, - "locations": { - "暖棚": { - "longitude": 102.42615548, - "latitude": 32.80562386 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-007", - "name": "尺真家庭生态牧场", - "town": "安曲镇", - "village": "下哈拉玛村", - "owner": "尺真", - "constructionYear": 2025, - "sourceNo": 179, - "pointName": "7号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.43310351, - "latitude": 32.76736081, - "locations": { - "暖棚": { - "longitude": 102.43325488, - "latitude": 32.76769519 - }, - "管理用房": { - "longitude": 102.43310351, - "latitude": 32.76736081 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "尺真" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-008", - "name": "扎花甲初家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "扎花甲初", - "constructionYear": 2025, - "sourceNo": 180, - "pointName": "8号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.34150772, - "latitude": 32.51809855, - "locations": { - "暖棚": { - "longitude": 102.34174988, - "latitude": 32.51793446 - }, - "管理用房": { - "longitude": 102.34150772, - "latitude": 32.51809855 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "扎花甲初" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-009", - "name": "刘永秀家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "刘永秀", - "constructionYear": 2025, - "sourceNo": 181, - "pointName": "9号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.39163622, - "latitude": 32.41535563, - "locations": { - "暖棚": { - "longitude": 102.39106026, - "latitude": 32.41522425 - }, - "管理用房": { - "longitude": 102.39163622, - "latitude": 32.41535563 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "刘永秀" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-010", - "name": "尼西甲家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "尼西甲", - "constructionYear": 2025, - "sourceNo": 182, - "pointName": "10号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.36479551, - "latitude": 32.4682826, - "locations": { - "暖棚": { - "longitude": 102.36445049, - "latitude": 32.46856208 - }, - "管理用房": { - "longitude": 102.36479551, - "latitude": 32.4682826 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "尼西甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-011", - "name": "尕尔穷家庭生态牧场", - "town": "龙日镇", - "village": "龙日坝村", - "owner": "尕尔穷", - "constructionYear": 2025, - "sourceNo": 183, - "pointName": "11号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.36574919, - "latitude": 32.46984022, - "locations": { - "暖棚": { - "longitude": 102.36543866, - "latitude": 32.46986063 - }, - "管理用房": { - "longitude": 102.36574919, - "latitude": 32.46984022 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "尕尔穷" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-SUM-184", - "name": "拉玛扎西家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "拉玛扎西", - "constructionYear": 2025, - "sourceNo": 184, - "pointName": "", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": null, - "latitude": null, - "locations": {}, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "拉玛扎西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-013", - "name": "索迫家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "索迫", - "constructionYear": 2025, - "sourceNo": 185, - "pointName": "13号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.57153908, - "latitude": 32.57642249, - "locations": { - "暖棚": { - "longitude": 102.57181204, - "latitude": 32.57674824 - }, - "管理用房": { - "longitude": 102.57153908, - "latitude": 32.57642249 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "索迫" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-014", - "name": "让白家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "让白", - "constructionYear": 2025, - "sourceNo": 186, - "pointName": "14号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.56368441, - "latitude": 32.56554011, - "locations": { - "暖棚": { - "longitude": 102.56396058, - "latitude": 32.5657272 - }, - "管理用房": { - "longitude": 102.56368441, - "latitude": 32.56554011 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "让白" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-015", - "name": "罗周家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "罗周", - "constructionYear": 2025, - "sourceNo": 187, - "pointName": "15号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.47340175, - "latitude": 32.5391063, - "locations": { - "暖棚": { - "longitude": 102.47353743, - "latitude": 32.53889572 - }, - "管理用房": { - "longitude": 102.47340175, - "latitude": 32.5391063 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "罗周" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-016", - "name": "贡波家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "贡波", - "constructionYear": 2025, - "sourceNo": 188, - "pointName": "16号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.55244875, - "latitude": 32.543925, - "locations": { - "暖棚": { - "longitude": 102.55268505, - "latitude": 32.54389452 - }, - "管理用房": { - "longitude": 102.55244875, - "latitude": 32.543925 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "贡波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-017", - "name": "阿新家庭生态牧场", - "town": "龙日镇", - "village": "格玛村", - "owner": "阿新", - "constructionYear": 2025, - "sourceNo": 189, - "pointName": "17号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.55661126, - "latitude": 32.51593726, - "locations": { - "暖棚": { - "longitude": 102.55699444, - "latitude": 32.51600578 - }, - "管理用房": { - "longitude": 102.55661126, - "latitude": 32.51593726 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "阿新" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-018", - "name": "南木青家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "南木青", - "constructionYear": 2025, - "sourceNo": 190, - "pointName": "18号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.45747569, - "latitude": 32.4997112, - "locations": { - "暖棚": { - "longitude": 102.45743039, - "latitude": 32.50039193 - }, - "管理用房": { - "longitude": 102.45747569, - "latitude": 32.4997112 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "南木青" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-019", - "name": "桑白家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "桑白", - "constructionYear": 2025, - "sourceNo": 191, - "pointName": "19号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.51611367, - "latitude": 32.46971999, - "locations": { - "暖棚": { - "longitude": 102.51569341, - "latitude": 32.46983718 - }, - "管理用房": { - "longitude": 102.51611367, - "latitude": 32.46971999 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "桑白" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-020", - "name": "尼玛家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "尼玛", - "constructionYear": 2025, - "sourceNo": 192, - "pointName": "20号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.44969589, - "latitude": 32.53923831, - "locations": { - "暖棚": { - "longitude": 102.44978266, - "latitude": 32.53944862 - }, - "管理用房": { - "longitude": 102.44969589, - "latitude": 32.53923831 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "尼玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-021", - "name": "求扎家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "求扎", - "constructionYear": 2025, - "sourceNo": 193, - "pointName": "21号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.47150078, - "latitude": 32.40722678, - "locations": { - "暖棚": { - "longitude": 102.47179278, - "latitude": 32.40707185 - }, - "管理用房": { - "longitude": 102.47150078, - "latitude": 32.40722678 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "求扎" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-022", - "name": "俄白家庭生态牧场", - "town": "龙日镇", - "village": "壤噶夺玛村", - "owner": "俄白", - "constructionYear": 2025, - "sourceNo": 194, - "pointName": "22号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.49071333, - "latitude": 32.49521145, - "locations": { - "暖棚": { - "longitude": 102.49088427, - "latitude": 32.4950118 - }, - "管理用房": { - "longitude": 102.49071333, - "latitude": 32.49521145 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "俄白" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-023", - "name": "杨中泽仁家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "杨中泽仁", - "constructionYear": 2025, - "sourceNo": 195, - "pointName": "23号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.6341466, - "latitude": 32.77015436, - "locations": { - "暖棚": { - "longitude": 102.63389415, - "latitude": 32.77017909 - }, - "管理用房": { - "longitude": 102.6341466, - "latitude": 32.77015436 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "杨中泽仁" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-024", - "name": "西泽家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "西泽", - "constructionYear": 2025, - "sourceNo": 196, - "pointName": "24号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.55496732, - "latitude": 32.71987605, - "locations": { - "暖棚": { - "longitude": 102.55578247, - "latitude": 32.71974519 - }, - "管理用房": { - "longitude": 102.55496732, - "latitude": 32.71987605 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "西泽" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-025", - "name": "阿尔布基家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "阿尔布基", - "constructionYear": 2025, - "sourceNo": 197, - "pointName": "25号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.59523521, - "latitude": 32.73509347, - "locations": { - "暖棚": { - "longitude": 102.5948059, - "latitude": 32.73476878 - }, - "管理用房": { - "longitude": 102.59523521, - "latitude": 32.73509347 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "阿尔布基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-026", - "name": "兰卡家庭生态牧场", - "town": "邛溪镇", - "village": "玛萨村", - "owner": "兰卡", - "constructionYear": 2025, - "sourceNo": 198, - "pointName": "26号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.63713205, - "latitude": 32.81316056, - "locations": { - "暖棚": { - "longitude": 102.63704412, - "latitude": 32.8134533 - }, - "管理用房": { - "longitude": 102.63713205, - "latitude": 32.81316056 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "兰卡" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-027", - "name": "华扎家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "华扎", - "constructionYear": 2025, - "sourceNo": 199, - "pointName": "27号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.50979432, - "latitude": 32.80879562, - "locations": { - "暖棚": { - "longitude": 102.50979432, - "latitude": 32.80879562 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "华扎" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-028", - "name": "勒西家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "勒西", - "constructionYear": 2025, - "sourceNo": 200, - "pointName": "28号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.46173752, - "latitude": 32.95518424, - "locations": { - "暖棚": { - "longitude": 102.46200958, - "latitude": 32.954686 - }, - "管理用房": { - "longitude": 102.46173752, - "latitude": 32.95518424 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "勒西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-029", - "name": "夺基泽单家庭生态牧场", - "town": "邛溪镇", - "village": "达格龙村", - "owner": "夺基泽单", - "constructionYear": 2025, - "sourceNo": 201, - "pointName": "29号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.70020081, - "latitude": 32.72191648, - "locations": { - "暖棚": { - "longitude": 102.70045355, - "latitude": 32.72249951 - }, - "管理用房": { - "longitude": 102.70020081, - "latitude": 32.72191648 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "夺基泽单" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-030", - "name": "卡卓措家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "卡卓措", - "constructionYear": 2025, - "sourceNo": 202, - "pointName": "30号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.51242484, - "latitude": 32.93367637, - "locations": { - "暖棚": { - "longitude": 102.5118488, - "latitude": 32.93352001 - }, - "管理用房": { - "longitude": 102.51242484, - "latitude": 32.93367637 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "卡卓措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-031", - "name": "甲花若巴家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "甲花若巴", - "constructionYear": 2025, - "sourceNo": 203, - "pointName": "31号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.52268299, - "latitude": 32.95119696, - "locations": { - "暖棚": { - "longitude": 102.52277514, - "latitude": 32.95178758 - }, - "管理用房": { - "longitude": 102.52268299, - "latitude": 32.95119696 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "甲花若巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-032", - "name": "布穷家庭生态牧场", - "town": "邛溪镇", - "village": "麻色阳德村", - "owner": "布穷", - "constructionYear": 2025, - "sourceNo": 204, - "pointName": "32号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.54114597, - "latitude": 32.97254854, - "locations": { - "暖棚": { - "longitude": 102.54154441, - "latitude": 32.97243338 - }, - "管理用房": { - "longitude": 102.54114597, - "latitude": 32.97254854 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "布穷" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-033", - "name": "丹姆初家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "丹姆初", - "constructionYear": 2025, - "sourceNo": 205, - "pointName": "33号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.68834131, - "latitude": 32.90209342, - "locations": { - "暖棚": { - "longitude": 102.68837196, - "latitude": 32.90189172 - }, - "管理用房": { - "longitude": 102.68834131, - "latitude": 32.90209342 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "丹姆初" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-034", - "name": "塔尔洼家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "塔尔洼", - "constructionYear": 2025, - "sourceNo": 206, - "pointName": "34号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.6640831, - "latitude": 32.89217135, - "locations": { - "暖棚": { - "longitude": 102.66431407, - "latitude": 32.89220187 - }, - "管理用房": { - "longitude": 102.6640831, - "latitude": 32.89217135 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "塔尔洼" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-035", - "name": "相木秋家庭生态牧场", - "town": "邛溪镇", - "village": "热坤村", - "owner": "相木秋", - "constructionYear": 2025, - "sourceNo": 207, - "pointName": "35号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.57449573, - "latitude": 32.81193451, - "locations": { - "暖棚": { - "longitude": 102.57510429, - "latitude": 32.8117671 - }, - "管理用房": { - "longitude": 102.57449573, - "latitude": 32.81193451 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "相木秋" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-036", - "name": "索科家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "索科", - "constructionYear": 2025, - "sourceNo": 208, - "pointName": "36号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.59972676, - "latitude": 32.96673649, - "locations": { - "暖棚": { - "longitude": 102.60036425, - "latitude": 32.96680279 - }, - "管理用房": { - "longitude": 102.59972676, - "latitude": 32.96673649 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "索科" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-037", - "name": "容中黑周家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "容中黑周", - "constructionYear": 2025, - "sourceNo": 209, - "pointName": "37号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.54097207, - "latitude": 32.92694872, - "locations": { - "暖棚": { - "longitude": 102.5418407, - "latitude": 32.92737961 - }, - "管理用房": { - "longitude": 102.54097207, - "latitude": 32.92694872 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "容中黑周" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-038", - "name": "桑都家庭生态牧场", - "town": "邛溪镇", - "village": "热多村", - "owner": "桑都", - "constructionYear": 2025, - "sourceNo": 210, - "pointName": "38号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.58826677, - "latitude": 32.88476392, - "locations": { - "暖棚": { - "longitude": 102.58801957, - "latitude": 32.88408206 - }, - "管理用房": { - "longitude": 102.58826677, - "latitude": 32.88476392 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "桑都" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-039", - "name": "茫兴家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "茫兴", - "constructionYear": 2025, - "sourceNo": 211, - "pointName": "39号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.07991934, - "latitude": 32.47311379, - "locations": { - "暖棚": { - "longitude": 102.07972827, - "latitude": 32.47333689 - }, - "管理用房": { - "longitude": 102.07991934, - "latitude": 32.47311379 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "茫兴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-040", - "name": "得基卓玛家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "得基卓玛", - "constructionYear": 2025, - "sourceNo": 212, - "pointName": "40号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.02913011, - "latitude": 32.43776256, - "locations": { - "暖棚": { - "longitude": 102.02905511, - "latitude": 32.43749287 - }, - "管理用房": { - "longitude": 102.02913011, - "latitude": 32.43776256 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "得基卓玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-041", - "name": "俄玛家庭生态牧场", - "town": "查尔玛乡", - "village": "什布龙村", - "owner": "俄玛", - "constructionYear": 2025, - "sourceNo": 213, - "pointName": "41号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.02292951, - "latitude": 32.46024019, - "locations": { - "暖棚": { - "longitude": 102.02290624, - "latitude": 32.46043784 - }, - "管理用房": { - "longitude": 102.02292951, - "latitude": 32.46024019 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "俄玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-043", - "name": "桑都措家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "桑都措", - "constructionYear": 2025, - "sourceNo": 214, - "pointName": "43号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 101.9504197, - "latitude": 32.41285591, - "locations": { - "暖棚": { - "longitude": 101.9504197, - "latitude": 32.41285591 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "桑都措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-044", - "name": "求沙家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "求沙", - "constructionYear": 2025, - "sourceNo": 215, - "pointName": "44号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 101.93533172, - "latitude": 32.42625182, - "locations": { - "暖棚": { - "longitude": 101.93515169, - "latitude": 32.42601524 - }, - "管理用房": { - "longitude": 101.93533172, - "latitude": 32.42625182 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "求沙" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-045", - "name": "旦渣家庭生态牧场", - "town": "查尔玛乡", - "village": "查龙村", - "owner": "旦渣", - "constructionYear": 2025, - "sourceNo": 216, - "pointName": "45号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 101.95319961, - "latitude": 32.50653773, - "locations": { - "暖棚": { - "longitude": 101.95330639, - "latitude": 32.50669919 - }, - "管理用房": { - "longitude": 101.95319961, - "latitude": 32.50653773 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "旦渣" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-046", - "name": "达玛王家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "达玛王", - "constructionYear": 2025, - "sourceNo": 217, - "pointName": "46号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.13310816, - "latitude": 32.44495604, - "locations": { - "暖棚": { - "longitude": 102.13292789, - "latitude": 32.44464674 - }, - "管理用房": { - "longitude": 102.13310816, - "latitude": 32.44495604 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "达玛王" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-047", - "name": "吉措家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "吉措", - "constructionYear": 2025, - "sourceNo": 218, - "pointName": "47号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.10031343, - "latitude": 32.52946984, - "locations": { - "暖棚": { - "longitude": 102.1000073, - "latitude": 32.52950127 - }, - "管理用房": { - "longitude": 102.10031343, - "latitude": 32.52946984 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "吉措" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-048", - "name": "然让家庭生态牧场", - "town": "查尔玛乡", - "village": "达尔龙村", - "owner": "然让", - "constructionYear": 2025, - "sourceNo": 219, - "pointName": "48号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.1186522, - "latitude": 32.54205879, - "locations": { - "暖棚": { - "longitude": 102.11832613, - "latitude": 32.54201141 - }, - "管理用房": { - "longitude": 102.1186522, - "latitude": 32.54205879 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "然让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-049", - "name": "索郎益西家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "索郎益西", - "constructionYear": 2025, - "sourceNo": 220, - "pointName": "49号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.59817262, - "latitude": 33.15279516, - "locations": { - "暖棚": { - "longitude": 102.59826937, - "latitude": 33.15242954 - }, - "管理用房": { - "longitude": 102.59817262, - "latitude": 33.15279516 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "索郎益西" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-050", - "name": "阿布洛家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "阿布洛", - "constructionYear": 2025, - "sourceNo": 221, - "pointName": "50号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.58881798, - "latitude": 33.13491038, - "locations": { - "暖棚": { - "longitude": 102.58881798, - "latitude": 33.13491038 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "阿布洛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-051", - "name": "甲花扎巴家庭生态牧场", - "town": "瓦切镇", - "village": "德香村", - "owner": "甲花扎巴", - "constructionYear": 2025, - "sourceNo": 222, - "pointName": "51号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.62447024, - "latitude": 33.14756405, - "locations": { - "暖棚": { - "longitude": 102.62447024, - "latitude": 33.14756405 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "甲花扎巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-052", - "name": "桑阿家庭生态牧场", - "town": "瓦切镇", - "village": "唐日村", - "owner": "桑阿", - "constructionYear": 2025, - "sourceNo": 223, - "pointName": "52号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.60287876, - "latitude": 33.06269322, - "locations": { - "暖棚": { - "longitude": 102.60249352, - "latitude": 33.06252399 - }, - "管理用房": { - "longitude": 102.60287876, - "latitude": 33.06269322 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "桑阿" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-053", - "name": "泽旺卓玛家庭生态牧场", - "town": "瓦切镇", - "village": "唐日村", - "owner": "泽旺卓玛", - "constructionYear": 2025, - "sourceNo": 224, - "pointName": "53号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.62023015, - "latitude": 33.07672504, - "locations": { - "暖棚": { - "longitude": 102.6195876, - "latitude": 33.07660844 - }, - "管理用房": { - "longitude": 102.62023015, - "latitude": 33.07672504 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "泽旺卓玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-054", - "name": "达多杰家庭生态牧场", - "town": "瓦切镇", - "village": "唐日村", - "owner": "达多杰", - "constructionYear": 2025, - "sourceNo": 225, - "pointName": "54号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.65907881, - "latitude": 33.04426714, - "locations": { - "暖棚": { - "longitude": 102.65878993, - "latitude": 33.0443906 - }, - "管理用房": { - "longitude": 102.65907881, - "latitude": 33.04426714 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "达多杰" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-055", - "name": "甲花家庭生态牧场", - "town": "瓦切镇", - "village": "曲登塘社区", - "owner": "甲花", - "constructionYear": 2025, - "sourceNo": 226, - "pointName": "55号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.60900684, - "latitude": 33.05296943, - "locations": { - "暖棚": { - "longitude": 102.60968583, - "latitude": 33.05324231 - }, - "管理用房": { - "longitude": 102.60900684, - "latitude": 33.05296943 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "甲花" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-056", - "name": "普尔娃他家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "普尔娃他", - "constructionYear": 2025, - "sourceNo": 227, - "pointName": "56号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.60388795, - "latitude": 33.080497, - "locations": { - "暖棚": { - "longitude": 102.60365851, - "latitude": 33.08085512 - }, - "管理用房": { - "longitude": 102.60388795, - "latitude": 33.080497 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "普尔娃他" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-057", - "name": "腊夺家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "腊夺", - "constructionYear": 2025, - "sourceNo": 228, - "pointName": "57号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.60558227, - "latitude": 33.03649561, - "locations": { - "暖棚": { - "longitude": 102.60526934, - "latitude": 33.03662516 - }, - "管理用房": { - "longitude": 102.60558227, - "latitude": 33.03649561 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "腊夺" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-058", - "name": "拉姆姐家庭生态牧场", - "town": "瓦切镇", - "village": "达峨村", - "owner": "拉姆姐", - "constructionYear": 2025, - "sourceNo": 229, - "pointName": "58号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.68677242, - "latitude": 33.01494028, - "locations": { - "暖棚": { - "longitude": 102.68739311, - "latitude": 33.0149217 - }, - "管理用房": { - "longitude": 102.68677242, - "latitude": 33.01494028 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "拉姆姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-059", - "name": "尔金姐家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "尔金姐", - "constructionYear": 2025, - "sourceNo": 230, - "pointName": "59号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.75797357, - "latitude": 33.05247976, - "locations": { - "暖棚": { - "longitude": 102.75821556, - "latitude": 33.05186118 - }, - "管理用房": { - "longitude": 102.75797357, - "latitude": 33.05247976 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "尔金姐" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-060", - "name": "果·尼科家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "果·尼科", - "constructionYear": 2025, - "sourceNo": 231, - "pointName": "60号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.72144107, - "latitude": 33.09435508, - "locations": { - "暖棚": { - "longitude": 102.72188962, - "latitude": 33.09419876 - }, - "管理用房": { - "longitude": 102.72144107, - "latitude": 33.09435508 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "果·尼科" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-061", - "name": "苏拉王家庭生态牧场", - "town": "瓦切镇", - "village": "日干村", - "owner": "苏拉王", - "constructionYear": 2025, - "sourceNo": 232, - "pointName": "61号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.61834278, - "latitude": 33.16780533, - "locations": { - "暖棚": { - "longitude": 102.61834278, - "latitude": 33.16780533 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "苏拉王" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-062", - "name": "桑阿家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "桑阿", - "constructionYear": 2025, - "sourceNo": 233, - "pointName": "62号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.80956551, - "latitude": 33.03877017, - "locations": { - "暖棚": { - "longitude": 102.80909925, - "latitude": 33.03857555 - }, - "管理用房": { - "longitude": 102.80956551, - "latitude": 33.03877017 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "桑阿" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-063", - "name": "卓玛娜姆家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "卓玛娜姆", - "constructionYear": 2025, - "sourceNo": 234, - "pointName": "63号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.82588257, - "latitude": 33.03170874, - "locations": { - "暖棚": { - "longitude": 102.82561727, - "latitude": 33.03236022 - }, - "管理用房": { - "longitude": 102.82588257, - "latitude": 33.03170874 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "卓玛娜姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-064", - "name": "麦朵拉姆家庭生态牧场", - "town": "瓦切镇", - "village": "色永村", - "owner": "麦朵拉姆", - "constructionYear": 2025, - "sourceNo": 235, - "pointName": "64号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.83282822, - "latitude": 33.02336202, - "locations": { - "暖棚": { - "longitude": 102.83285089, - "latitude": 33.02300106 - }, - "管理用房": { - "longitude": 102.83282822, - "latitude": 33.02336202 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "麦朵拉姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-065", - "name": "支多娜姆家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "支多娜姆", - "constructionYear": 2025, - "sourceNo": 236, - "pointName": "65号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.19990732, - "latitude": 32.42229086, - "locations": { - "暖棚": { - "longitude": 102.20070669, - "latitude": 32.42224384 - }, - "管理用房": { - "longitude": 102.19990732, - "latitude": 32.42229086 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "支多娜姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-066", - "name": "俄波家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "俄波", - "constructionYear": 2025, - "sourceNo": 237, - "pointName": "66号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.20292182, - "latitude": 32.43868925, - "locations": { - "暖棚": { - "longitude": 102.20320835, - "latitude": 32.43908196 - }, - "管理用房": { - "longitude": 102.20292182, - "latitude": 32.43868925 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "俄波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-067", - "name": "格日家庭生态牧场", - "town": "江茸乡", - "village": "江宫玛村", - "owner": "格日", - "constructionYear": 2025, - "sourceNo": 238, - "pointName": "67号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.2217086, - "latitude": 32.4769641, - "locations": { - "暖棚": { - "longitude": 102.22170157, - "latitude": 32.47727277 - }, - "管理用房": { - "longitude": 102.2217086, - "latitude": 32.4769641 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "格日" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-068", - "name": "更让尼玛家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "更让尼玛", - "constructionYear": 2025, - "sourceNo": 239, - "pointName": "68号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.21973813, - "latitude": 32.50918264, - "locations": { - "暖棚": { - "longitude": 102.22028091, - "latitude": 32.50928539 - }, - "管理用房": { - "longitude": 102.21973813, - "latitude": 32.50918264 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "更让尼玛" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-069", - "name": "罗布让家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "罗布让", - "constructionYear": 2025, - "sourceNo": 240, - "pointName": "69号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.22810898, - "latitude": 32.51942, - "locations": { - "暖棚": { - "longitude": 102.22815984, - "latitude": 32.51915025 - }, - "管理用房": { - "longitude": 102.22810898, - "latitude": 32.51942 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "罗布让" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-070", - "name": "王甲家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "王甲", - "constructionYear": 2025, - "sourceNo": 241, - "pointName": "70号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.22938935, - "latitude": 32.50833256, - "locations": { - "暖棚": { - "longitude": 102.22913952, - "latitude": 32.50866903 - }, - "管理用房": { - "longitude": 102.22938935, - "latitude": 32.50833256 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "王甲" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-071", - "name": "占波家庭生态牧场", - "town": "江茸乡", - "village": "茸日玛村", - "owner": "占波", - "constructionYear": 2025, - "sourceNo": 242, - "pointName": "71号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.23990168, - "latitude": 32.48078901, - "locations": { - "暖棚": { - "longitude": 102.23962706, - "latitude": 32.48083944 - }, - "管理用房": { - "longitude": 102.23990168, - "latitude": 32.48078901 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "占波" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-072", - "name": "罗日家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "罗日", - "constructionYear": 2025, - "sourceNo": 243, - "pointName": "72号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.61169021, - "latitude": 32.08932106, - "locations": { - "暖棚": { - "longitude": 102.61148498, - "latitude": 32.08914501 - }, - "管理用房": { - "longitude": 102.61169021, - "latitude": 32.08932106 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "罗日" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-073", - "name": "甲花夺基家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "甲花夺基", - "constructionYear": 2025, - "sourceNo": 244, - "pointName": "73号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.56962246, - "latitude": 32.08623818, - "locations": { - "暖棚": { - "longitude": 102.5699463, - "latitude": 32.08635954 - }, - "管理用房": { - "longitude": 102.56962246, - "latitude": 32.08623818 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "甲花夺基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-074", - "name": "供木丹家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "供木丹", - "constructionYear": 2025, - "sourceNo": 245, - "pointName": "74号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.48240109, - "latitude": 32.20777413, - "locations": { - "暖棚": { - "longitude": 102.48249928, - "latitude": 32.20799391 - }, - "管理用房": { - "longitude": 102.48240109, - "latitude": 32.20777413 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "供木丹" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-075", - "name": "华尔白家庭生态牧场", - "town": "刷经寺镇", - "village": "壤口村", - "owner": "华尔白", - "constructionYear": 2025, - "sourceNo": 246, - "pointName": "75号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.5588633, - "latitude": 32.38692708, - "locations": { - "暖棚": { - "longitude": 102.55912658, - "latitude": 32.38683384 - }, - "管理用房": { - "longitude": 102.5588633, - "latitude": 32.38692708 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "华尔白" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-076", - "name": "谢尔拉姆家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "谢尔拉姆", - "constructionYear": 2025, - "sourceNo": 247, - "pointName": "76号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.67850122, - "latitude": 32.93495695, - "locations": { - "暖棚": { - "longitude": 102.67883757, - "latitude": 32.93485478 - }, - "管理用房": { - "longitude": 102.67850122, - "latitude": 32.93495695 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "谢尔拉姆" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-077", - "name": "若巴家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "若巴", - "constructionYear": 2025, - "sourceNo": 248, - "pointName": "77号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.83999152, - "latitude": 32.77133407, - "locations": { - "暖棚": { - "longitude": 102.8392576, - "latitude": 32.77165891 - }, - "管理用房": { - "longitude": 102.83999152, - "latitude": 32.77133407 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "若巴" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-078", - "name": "扑尔夺家庭生态牧场", - "town": "阿木乡", - "village": "峨扎村", - "owner": "扑尔夺", - "constructionYear": 2025, - "sourceNo": 249, - "pointName": "78号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.79027109, - "latitude": 32.79883402, - "locations": { - "暖棚": { - "longitude": 102.78948161, - "latitude": 32.79853105 - }, - "管理用房": { - "longitude": 102.79027109, - "latitude": 32.79883402 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "扑尔夺" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-079", - "name": "甲基家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "甲基", - "constructionYear": 2025, - "sourceNo": 250, - "pointName": "79号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.83380011, - "latitude": 32.86722605, - "locations": { - "暖棚": { - "longitude": 102.83426146, - "latitude": 32.86765306 - }, - "管理用房": { - "longitude": 102.83380011, - "latitude": 32.86722605 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "甲基" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-080", - "name": "尕得家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "尕得", - "constructionYear": 2025, - "sourceNo": 251, - "pointName": "80号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.83189751, - "latitude": 32.82836028, - "locations": { - "暖棚": { - "longitude": 102.83237405, - "latitude": 32.82819561 - }, - "管理用房": { - "longitude": 102.83189751, - "latitude": 32.82836028 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "尕得" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - }, - { - "id": "YC-FAMILY-PASTURE-081", - "name": "西夏唐美家庭生态牧场", - "town": "阿木乡", - "village": "卡口村", - "owner": "西夏唐美", - "constructionYear": 2025, - "sourceNo": 252, - "pointName": "81号点", - "facilityBrief": "300㎡暖棚 / 60㎡管理房", - "facilityDetail": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "grassSupportType": "网围栏种草", - "grassSupportMu": 5, - "grassSupportLowerBound": false, - "grassSupportText": "网围栏种草 5亩", - "longitude": 102.77903691, - "latitude": 32.72696452, - "locations": { - "暖棚": { - "longitude": 102.7785588, - "latitude": 32.72665098 - }, - "管理用房": { - "longitude": 102.77903691, - "latitude": 32.72696452 - } - }, - "metrics": { - "标准化暖棚 (㎡)": 300, - "管理用房 (㎡)": 60, - "饲草料库 (㎡)": 50, - "活动场地及通道 (㎡)": 500, - "配套草料地 (亩)": 5 - }, - "attributes": { - "设施配置": "300㎡标准化暖棚 / 60㎡管理用房 / 50㎡饲草料库 / 500㎡活动场地及通道", - "草料配套": "网围栏种草 5亩", - "户主": "西夏唐美" - }, - "sourceSheet": "红原县2023年至今建设家庭牧场汇总表" - } - ] -} -`,dV=`{ - "generatedAt": "2026-07-10T16:32:43.331Z", - "sourceLabel": "21.95万亩种草矢量数据", - "statusLabel": "待核定", - "totalPlots": 118, - "coveredTowns": 6, - "projectPlots": 9, - "pendingPlots": 118, - "townRows": [ - { - "key": "邛溪镇", - "name": "邛溪镇", - "value": 31, - "unit": "个", - "extra": "待核定图斑", - "zero": false - }, - { - "key": "刷经寺镇", - "name": "刷经寺镇", - "value": 0, - "unit": "个", - "extra": "暂无图斑", - "zero": true - }, - { - "key": "安曲镇", - "name": "安曲镇", - "value": 81, - "unit": "个", - "extra": "待核定图斑", - "zero": false - }, - { - "key": "龙日镇", - "name": "龙日镇", - "value": 2, - "unit": "个", - "extra": "待核定图斑", - "zero": false - }, - { - "key": "江茸乡", - "name": "江茸乡", - "value": 2, - "unit": "个", - "extra": "待核定图斑", - "zero": false - }, - { - "key": "查尔玛乡", - "name": "查尔玛乡", - "value": 1, - "unit": "个", - "extra": "待核定图斑", - "zero": false - }, - { - "key": "瓦切镇", - "name": "瓦切镇", - "value": 1, - "unit": "个", - "extra": "待核定图斑", - "zero": false - }, - { - "key": "阿木乡", - "name": "阿木乡", - "value": 0, - "unit": "个", - "extra": "暂无图斑", - "zero": true - }, - { - "key": "麦洼乡", - "name": "麦洼乡", - "value": 0, - "unit": "个", - "extra": "暂无图斑", - "zero": true - }, - { - "key": "色地镇", - "name": "色地镇", - "value": 0, - "unit": "个", - "extra": "暂无图斑", - "zero": true - } - ], - "categoryRows": [ - { - "key": "待分类图斑", - "name": "待分类图斑", - "value": 49, - "unit": "个" - }, - { - "key": "撒播图斑", - "name": "撒播图斑", - "value": 42, - "unit": "个" - }, - { - "key": "调拨地块", - "name": "调拨地块", - "value": 10, - "unit": "个" - }, - { - "key": "项目地块", - "name": "项目地块", - "value": 9, - "unit": "个" - }, - { - "key": "高产稳产范围", - "name": "高产稳产范围", - "value": 8, - "unit": "个" - } - ], - "sourceRows": [ - { - "key": "边界图斑", - "name": "边界图斑", - "value": 109, - "unit": "个" - }, - { - "key": "面图斑", - "name": "面图斑", - "value": 9, - "unit": "个" - } - ], - "plotRows": [ - { - "key": "AG-111", - "id": "AG-111", - "name": "1号地块多边形", - "fullName": "1号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "1号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-115", - "id": "AG-115", - "name": "2号地块多边形", - "fullName": "2号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "2号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-110", - "id": "AG-110", - "name": "3号地块多边形", - "fullName": "3号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "3号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-113", - "id": "AG-113", - "name": "4号地块多边形", - "fullName": "4号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "4号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-118", - "id": "AG-118", - "name": "5号地块多边形", - "fullName": "5号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "5号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-117", - "id": "AG-117", - "name": "6号地块多边形", - "fullName": "6号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "6号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-112", - "id": "AG-112", - "name": "产业园9号地块多边形", - "fullName": "产业园9号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "产业园9号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-116", - "id": "AG-116", - "name": "人字形7号地块多边形", - "fullName": "人字形7号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "人字形7号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-114", - "id": "AG-114", - "name": "无人区8号地块多边形", - "fullName": "无人区8号地块多边形", - "town": "邛溪镇", - "category": "项目地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "无人区8号地块多边形 邛溪镇 项目地块 待核定" - }, - { - "key": "AG-069", - "id": "AG-069", - "name": "121212_118", - "fullName": "121212_118", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_118 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-070", - "id": "AG-070", - "name": "121212_119", - "fullName": "121212_119", - "town": "江茸乡", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_119 江茸乡 待分类图斑 待核定" - }, - { - "key": "AG-071", - "id": "AG-071", - "name": "121212_120", - "fullName": "121212_120", - "town": "江茸乡", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_120 江茸乡 待分类图斑 待核定" - }, - { - "key": "AG-072", - "id": "AG-072", - "name": "121212_121", - "fullName": "121212_121", - "town": "查尔玛乡", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_121 查尔玛乡 待分类图斑 待核定" - }, - { - "key": "AG-073", - "id": "AG-073", - "name": "121212_122", - "fullName": "121212_122", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_122 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-061", - "id": "AG-061", - "name": "121212_61", - "fullName": "121212_61", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_61 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-062", - "id": "AG-062", - "name": "121212_62", - "fullName": "121212_62", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_62 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-063", - "id": "AG-063", - "name": "121212_63", - "fullName": "121212_63", - "town": "龙日镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_63 龙日镇 待分类图斑 待核定" - }, - { - "key": "AG-064", - "id": "AG-064", - "name": "121212_64", - "fullName": "121212_64", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_64 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-065", - "id": "AG-065", - "name": "121212_65", - "fullName": "121212_65", - "town": "龙日镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_65 龙日镇 待分类图斑 待核定" - }, - { - "key": "AG-066", - "id": "AG-066", - "name": "121212_66", - "fullName": "121212_66", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_66 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-067", - "id": "AG-067", - "name": "121212_67", - "fullName": "121212_67", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_67 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-068", - "id": "AG-068", - "name": "121212_68", - "fullName": "121212_68", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "121212_68 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-051", - "id": "AG-051", - "name": "调拨_51", - "fullName": "调拨_51", - "town": "安曲镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_51 安曲镇 调拨地块 待核定" - }, - { - "key": "AG-052", - "id": "AG-052", - "name": "调拨_52", - "fullName": "调拨_52", - "town": "安曲镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_52 安曲镇 调拨地块 待核定" - }, - { - "key": "AG-053", - "id": "AG-053", - "name": "调拨_53", - "fullName": "调拨_53", - "town": "安曲镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_53 安曲镇 调拨地块 待核定" - }, - { - "key": "AG-054", - "id": "AG-054", - "name": "调拨_54", - "fullName": "调拨_54", - "town": "安曲镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_54 安曲镇 调拨地块 待核定" - }, - { - "key": "AG-055", - "id": "AG-055", - "name": "调拨_55", - "fullName": "调拨_55", - "town": "安曲镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_55 安曲镇 调拨地块 待核定" - }, - { - "key": "AG-056", - "id": "AG-056", - "name": "调拨_56", - "fullName": "调拨_56", - "town": "邛溪镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_56 邛溪镇 调拨地块 待核定" - }, - { - "key": "AG-057", - "id": "AG-057", - "name": "调拨_57", - "fullName": "调拨_57", - "town": "邛溪镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_57 邛溪镇 调拨地块 待核定" - }, - { - "key": "AG-058", - "id": "AG-058", - "name": "调拨_58", - "fullName": "调拨_58", - "town": "邛溪镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_58 邛溪镇 调拨地块 待核定" - }, - { - "key": "AG-059", - "id": "AG-059", - "name": "调拨_59", - "fullName": "调拨_59", - "town": "邛溪镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_59 邛溪镇 调拨地块 待核定" - }, - { - "key": "AG-060", - "id": "AG-060", - "name": "调拨_60", - "fullName": "调拨_60", - "town": "邛溪镇", - "category": "调拨地块", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "调拨_60 邛溪镇 调拨地块 待核定" - }, - { - "key": "AG-105", - "id": "AG-105", - "name": "其他_100", - "fullName": "其他_100", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_100 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-106", - "id": "AG-106", - "name": "其他_101", - "fullName": "其他_101", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_101 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-107", - "id": "AG-107", - "name": "其他_102", - "fullName": "其他_102", - "town": "邛溪镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_102 邛溪镇 待分类图斑 待核定" - }, - { - "key": "AG-108", - "id": "AG-108", - "name": "其他_103", - "fullName": "其他_103", - "town": "邛溪镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_103 邛溪镇 待分类图斑 待核定" - }, - { - "key": "AG-109", - "id": "AG-109", - "name": "其他_104", - "fullName": "其他_104", - "town": "邛溪镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_104 邛溪镇 待分类图斑 待核定" - }, - { - "key": "AG-074", - "id": "AG-074", - "name": "其他_69", - "fullName": "其他_69", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_69 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-075", - "id": "AG-075", - "name": "其他_70", - "fullName": "其他_70", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_70 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-076", - "id": "AG-076", - "name": "其他_71", - "fullName": "其他_71", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_71 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-077", - "id": "AG-077", - "name": "其他_72", - "fullName": "其他_72", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_72 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-078", - "id": "AG-078", - "name": "其他_73", - "fullName": "其他_73", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_73 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-079", - "id": "AG-079", - "name": "其他_74", - "fullName": "其他_74", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_74 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-080", - "id": "AG-080", - "name": "其他_75", - "fullName": "其他_75", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_75 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-081", - "id": "AG-081", - "name": "其他_76", - "fullName": "其他_76", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_76 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-082", - "id": "AG-082", - "name": "其他_77", - "fullName": "其他_77", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_77 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-083", - "id": "AG-083", - "name": "其他_78", - "fullName": "其他_78", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_78 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-084", - "id": "AG-084", - "name": "其他_79", - "fullName": "其他_79", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_79 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-085", - "id": "AG-085", - "name": "其他_80", - "fullName": "其他_80", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_80 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-086", - "id": "AG-086", - "name": "其他_81", - "fullName": "其他_81", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_81 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-087", - "id": "AG-087", - "name": "其他_82", - "fullName": "其他_82", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_82 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-088", - "id": "AG-088", - "name": "其他_83", - "fullName": "其他_83", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_83 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-089", - "id": "AG-089", - "name": "其他_84", - "fullName": "其他_84", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_84 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-090", - "id": "AG-090", - "name": "其他_85", - "fullName": "其他_85", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_85 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-091", - "id": "AG-091", - "name": "其他_86", - "fullName": "其他_86", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_86 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-092", - "id": "AG-092", - "name": "其他_87", - "fullName": "其他_87", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_87 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-093", - "id": "AG-093", - "name": "其他_88", - "fullName": "其他_88", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_88 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-094", - "id": "AG-094", - "name": "其他_89", - "fullName": "其他_89", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_89 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-095", - "id": "AG-095", - "name": "其他_90", - "fullName": "其他_90", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_90 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-096", - "id": "AG-096", - "name": "其他_91", - "fullName": "其他_91", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_91 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-097", - "id": "AG-097", - "name": "其他_92", - "fullName": "其他_92", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_92 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-098", - "id": "AG-098", - "name": "其他_93", - "fullName": "其他_93", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_93 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-099", - "id": "AG-099", - "name": "其他_94", - "fullName": "其他_94", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_94 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-100", - "id": "AG-100", - "name": "其他_95", - "fullName": "其他_95", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_95 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-101", - "id": "AG-101", - "name": "其他_96", - "fullName": "其他_96", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_96 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-102", - "id": "AG-102", - "name": "其他_97", - "fullName": "其他_97", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_97 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-103", - "id": "AG-103", - "name": "其他_98", - "fullName": "其他_98", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_98 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-104", - "id": "AG-104", - "name": "其他_99", - "fullName": "其他_99", - "town": "安曲镇", - "category": "待分类图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "其他_99 安曲镇 待分类图斑 待核定" - }, - { - "key": "AG-001", - "id": "AG-001", - "name": "撒播_0", - "fullName": "撒播_0", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_0 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-002", - "id": "AG-002", - "name": "撒播_1", - "fullName": "撒播_1", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_1 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-011", - "id": "AG-011", - "name": "撒播_10", - "fullName": "撒播_10", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_10 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-012", - "id": "AG-012", - "name": "撒播_11", - "fullName": "撒播_11", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_11 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-013", - "id": "AG-013", - "name": "撒播_12", - "fullName": "撒播_12", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_12 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-014", - "id": "AG-014", - "name": "撒播_13", - "fullName": "撒播_13", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_13 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-015", - "id": "AG-015", - "name": "撒播_14", - "fullName": "撒播_14", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_14 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-016", - "id": "AG-016", - "name": "撒播_15", - "fullName": "撒播_15", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_15 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-017", - "id": "AG-017", - "name": "撒播_16", - "fullName": "撒播_16", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_16 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-018", - "id": "AG-018", - "name": "撒播_17", - "fullName": "撒播_17", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_17 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-019", - "id": "AG-019", - "name": "撒播_18", - "fullName": "撒播_18", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_18 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-020", - "id": "AG-020", - "name": "撒播_19", - "fullName": "撒播_19", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_19 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-003", - "id": "AG-003", - "name": "撒播_2", - "fullName": "撒播_2", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_2 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-021", - "id": "AG-021", - "name": "撒播_20", - "fullName": "撒播_20", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_20 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-022", - "id": "AG-022", - "name": "撒播_21", - "fullName": "撒播_21", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_21 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-023", - "id": "AG-023", - "name": "撒播_22", - "fullName": "撒播_22", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_22 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-024", - "id": "AG-024", - "name": "撒播_23", - "fullName": "撒播_23", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_23 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-025", - "id": "AG-025", - "name": "撒播_24", - "fullName": "撒播_24", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_24 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-026", - "id": "AG-026", - "name": "撒播_25", - "fullName": "撒播_25", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_25 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-027", - "id": "AG-027", - "name": "撒播_26", - "fullName": "撒播_26", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_26 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-028", - "id": "AG-028", - "name": "撒播_27", - "fullName": "撒播_27", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_27 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-029", - "id": "AG-029", - "name": "撒播_28", - "fullName": "撒播_28", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_28 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-030", - "id": "AG-030", - "name": "撒播_29", - "fullName": "撒播_29", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_29 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-004", - "id": "AG-004", - "name": "撒播_3", - "fullName": "撒播_3", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_3 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-031", - "id": "AG-031", - "name": "撒播_30", - "fullName": "撒播_30", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_30 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-032", - "id": "AG-032", - "name": "撒播_31", - "fullName": "撒播_31", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_31 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-033", - "id": "AG-033", - "name": "撒播_32", - "fullName": "撒播_32", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_32 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-034", - "id": "AG-034", - "name": "撒播_33", - "fullName": "撒播_33", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_33 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-035", - "id": "AG-035", - "name": "撒播_34", - "fullName": "撒播_34", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_34 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-036", - "id": "AG-036", - "name": "撒播_35", - "fullName": "撒播_35", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_35 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-037", - "id": "AG-037", - "name": "撒播_36", - "fullName": "撒播_36", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_36 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-038", - "id": "AG-038", - "name": "撒播_37", - "fullName": "撒播_37", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_37 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-039", - "id": "AG-039", - "name": "撒播_38", - "fullName": "撒播_38", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_38 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-040", - "id": "AG-040", - "name": "撒播_39", - "fullName": "撒播_39", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_39 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-005", - "id": "AG-005", - "name": "撒播_4", - "fullName": "撒播_4", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_4 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-041", - "id": "AG-041", - "name": "撒播_40", - "fullName": "撒播_40", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_40 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-042", - "id": "AG-042", - "name": "撒播_41", - "fullName": "撒播_41", - "town": "邛溪镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_41 邛溪镇 撒播图斑 待核定" - }, - { - "key": "AG-006", - "id": "AG-006", - "name": "撒播_5", - "fullName": "撒播_5", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_5 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-007", - "id": "AG-007", - "name": "撒播_6", - "fullName": "撒播_6", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_6 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-008", - "id": "AG-008", - "name": "撒播_7", - "fullName": "撒播_7", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_7 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-009", - "id": "AG-009", - "name": "撒播_8", - "fullName": "撒播_8", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_8 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-010", - "id": "AG-010", - "name": "撒播_9", - "fullName": "撒播_9", - "town": "安曲镇", - "category": "撒播图斑", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "撒播_9 安曲镇 撒播图斑 待核定" - }, - { - "key": "AG-043", - "id": "AG-043", - "name": "总范围_42", - "fullName": "总范围_42", - "town": "安曲镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_42 安曲镇 高产稳产范围 待核定" - }, - { - "key": "AG-044", - "id": "AG-044", - "name": "总范围_44", - "fullName": "总范围_44", - "town": "安曲镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_44 安曲镇 高产稳产范围 待核定" - }, - { - "key": "AG-045", - "id": "AG-045", - "name": "总范围_45", - "fullName": "总范围_45", - "town": "安曲镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_45 安曲镇 高产稳产范围 待核定" - }, - { - "key": "AG-046", - "id": "AG-046", - "name": "总范围_46", - "fullName": "总范围_46", - "town": "邛溪镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_46 邛溪镇 高产稳产范围 待核定" - }, - { - "key": "AG-047", - "id": "AG-047", - "name": "总范围_47", - "fullName": "总范围_47", - "town": "邛溪镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_47 邛溪镇 高产稳产范围 待核定" - }, - { - "key": "AG-048", - "id": "AG-048", - "name": "总范围_48", - "fullName": "总范围_48", - "town": "邛溪镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_48 邛溪镇 高产稳产范围 待核定" - }, - { - "key": "AG-049", - "id": "AG-049", - "name": "总范围_49", - "fullName": "总范围_49", - "town": "邛溪镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_49 邛溪镇 高产稳产范围 待核定" - }, - { - "key": "AG-050", - "id": "AG-050", - "name": "总范围_50", - "fullName": "总范围_50", - "town": "瓦切镇", - "category": "高产稳产范围", - "status": "待核定", - "stageKey": "artificial-grassland", - "stageName": "人工种草", - "canLocate": true, - "locateText": "定位", - "searchText": "总范围_50 瓦切镇 高产稳产范围 待核定" - } - ] -} -`,fV=`{ - "generatedAt": "2026-07-11T03:50:38.329544+00:00", - "sourceLabel": "各乡镇实测种草面积汇总表2023-7-25.xlsx", - "sourceSheet": "Sheet1", - "sourceNote": "按汇总表合计行作为大屏面积口径;图斑资料仅用于地图定位,不作为统计主口径。", - "summary": { - "actualAreaMu": 56569, - "contractAreaMu": 56569, - "areaDifferenceMu": 0, - "projectCount": 6, - "coveredTownCount": 7, - "constructionYearCount": 3, - "investmentRecordCount": 5, - "investmentWanYuan": 4322.56, - "tillageDisturbanceMu": 10011.32, - "slightDisturbanceMu": 2301.69, - "tillageMu": 7093.23, - "drillSowingMu": 14818, - "noTillOverseedingMu": 30118.76 - }, - "projectRows": [ - { - "key": "artificial-grassland-project-1", - "name": "2023饲草基地", - "fullName": "四川省红原县草原畜牧业转型升级试点项目(2023)高产稳产饲草基地", - "year": "2023", - "category": "高产稳产饲草基地", - "value": 12000, - "unit": "亩", - "actualAreaMu": 12000, - "contractAreaMu": 12000, - "investmentWanYuan": 984.1, - "owner": "红原县科学技术和农业畜牧局", - "contractor": "四川格润草业有限公司", - "requirement": "免耕补播:12000亩", - "towns": [ - "安曲镇", - "瓦切镇", - "龙日镇" - ], - "locations": [ - "安曲当木柯", - "安曲镇(安曲牧场", - "壤口黑水方向(沟里面)", - "瓦切镇(赛马场后面、村委会后面山坡)", - "瓦切镇(麦洼方向)", - "龙日镇(龙日坝村神山后)" - ], - "notes": [], - "canLocate": false, - "searchText": "四川省红原县草原畜牧业转型升级试点项目(2023)高产稳产饲草基地 2023 高产稳产饲草基地 安曲当木柯 安曲镇(安曲牧场 壤口黑水方向(沟里面) 瓦切镇(赛马场后面、村委会后面山坡) 瓦切镇(麦洼方向) 龙日镇(龙日坝村神山后)" - }, - { - "key": "artificial-grassland-project-2", - "name": "2023草种基地", - "fullName": "四川省红原县草原畜牧业转型升级试点项目(2023)草种基地", - "year": "2023", - "category": "草种基地", - "value": 2500, - "unit": "亩", - "actualAreaMu": 2500, - "contractAreaMu": 2500, - "investmentWanYuan": 0, - "owner": "红原县科学技术和农业畜牧局", - "contractor": "", - "requirement": "翻耕2500亩", - "towns": [ - "龙日镇" - ], - "locations": [ - "龙日镇(机场右)", - "龙日镇(机场左、右)" - ], - "notes": [ - "2500亩2024年做" - ], - "canLocate": false, - "searchText": "四川省红原县草原畜牧业转型升级试点项目(2023)草种基地 2023 草种基地 龙日镇(机场右) 龙日镇(机场左、右) 2500亩2024年做" - }, - { - "key": "artificial-grassland-project-3", - "name": "2022草种基地", - "fullName": "四川省红原县草原畜牧业转型升级试点项目(2022)草种基地", - "year": "2022", - "category": "草种基地", - "value": 3000, - "unit": "亩", - "actualAreaMu": 3000, - "contractAreaMu": 3000, - "investmentWanYuan": 308.48, - "owner": "红原县科学技术和农业畜牧局", - "contractor": "中材克普(北京)生态环境有限公司", - "requirement": "翻耕3000亩", - "towns": [ - "安曲镇", - "邛溪镇", - "龙日镇" - ], - "locations": [ - "安曲镇(机场旁)", - "安曲镇(镇旁)", - "邛溪镇(麦洼牦牛园区)", - "龙日镇" - ], - "notes": [ - "601.74" - ], - "canLocate": false, - "searchText": "四川省红原县草原畜牧业转型升级试点项目(2022)草种基地 2022 草种基地 安曲镇(机场旁) 安曲镇(镇旁) 邛溪镇(麦洼牦牛园区) 龙日镇 601.74" - }, - { - "key": "artificial-grassland-project-4", - "name": "2022饲草基地", - "fullName": "四川省红原县草原畜牧业转型升级试点项目(2022)高产稳产饲草基地", - "year": "2022", - "category": "高产稳产饲草基地", - "value": 5000, - "unit": "亩", - "actualAreaMu": 5000, - "contractAreaMu": 5000, - "investmentWanYuan": 489.03, - "owner": "红原县科学技术和农业畜牧局", - "contractor": "四川省林丰园林建设工程有限公司", - "requirement": "翻耕:3500亩;人工播种1500亩", - "towns": [ - "安曲镇", - "江茸乡", - "刷经寺镇", - "瓦切镇", - "龙日镇" - ], - "locations": [ - "安曲镇(安曲牧场红原方向右侧)", - "安曲镇(安曲牧场)", - "安曲镇(安曲牧场路口右侧)", - "江茸乡(绵羊养殖场)", - "刷经寺镇(壤口黑水路口)", - "瓦切镇(场镇旁)", - "刷经寺镇(壤口黑水路口下)", - "刷经寺镇(壤口村)", - "龙日镇(龙日坝村神山后)", - "龙日镇(飞机场)", - "安曲镇阿坝县路口至飞机场)" - ], - "notes": [], - "canLocate": false, - "searchText": "四川省红原县草原畜牧业转型升级试点项目(2022)高产稳产饲草基地 2022 高产稳产饲草基地 安曲镇(安曲牧场红原方向右侧) 安曲镇(安曲牧场) 安曲镇(安曲牧场路口右侧) 江茸乡(绵羊养殖场) 刷经寺镇(壤口黑水路口) 瓦切镇(场镇旁) 刷经寺镇(壤口黑水路口下) 刷经寺镇(壤口村) 龙日镇(龙日坝村神山后) 龙日镇(飞机场) 安曲镇阿坝县路口至飞机场)" - }, - { - "key": "artificial-grassland-project-5", - "name": "2024草地资源保护", - "fullName": "草地资源保护与利用子项目", - "year": "2024", - "category": "草地资源保护", - "value": 11050, - "unit": "亩", - "actualAreaMu": 11050, - "contractAreaMu": 11050, - "investmentWanYuan": 1087.12, - "owner": "红原县科学技术和农业畜牧局", - "contractor": "四川省川蜀林草建设工程有限公司", - "requirement": "免耕补播:7900亩,条播:2000亩,翻耕1150亩", - "towns": [ - "瓦切镇" - ], - "locations": [ - "瓦切镇(如意空行寺路口)", - "瓦切镇(如意空行寺瓦切镇方向左侧)", - "瓦切镇(种草基地工地后)", - "瓦切镇(虎头山)", - "瓦切镇(三角神牛牧家乐旁)", - "瓦切镇(牧草产业园区)", - "瓦切镇达俄村(唐日合作社旁)", - "瓦切镇达俄村(红原印象路口)", - "瓦切镇达俄村(如意空行寺旁)" - ], - "notes": [ - "翻耕1050亩2024年实施" - ], - "canLocate": false, - "searchText": "草地资源保护与利用子项目 2024 草地资源保护 瓦切镇(如意空行寺路口) 瓦切镇(如意空行寺瓦切镇方向左侧) 瓦切镇(种草基地工地后) 瓦切镇(虎头山) 瓦切镇(三角神牛牧家乐旁) 瓦切镇(牧草产业园区) 瓦切镇达俄村(唐日合作社旁) 瓦切镇达俄村(红原印象路口) 瓦切镇达俄村(如意空行寺旁) 翻耕1050亩2024年实施" - }, - { - "key": "artificial-grassland-project-6", - "name": "2024饲草基地", - "fullName": "高产稳产优质饲草基地建设子项目", - "year": "2024", - "category": "高产稳产饲草基地", - "value": 23019, - "unit": "亩", - "actualAreaMu": 23019, - "contractAreaMu": 23019, - "investmentWanYuan": 1453.82, - "owner": "红原县科学技术和农业畜牧局", - "contractor": "中材克普(北京)生态环境有限公司", - "requirement": "条播23019亩", - "towns": [ - "龙日镇", - "瓦切镇", - "安曲镇", - "查尔玛乡", - "江茸乡" - ], - "locations": [ - "龙日镇(飞机场)", - "瓦切(泽旺多尔基对面)", - "瓦切(种畜场对面)", - "热坤村(音乐牧场对面)", - "(安曲)月亮湾", - "安曲镇(阿坝县路口旁)", - "查尔玛(镇政府旁边)", - "江茸乡(绵羊养殖场)", - "4600" - ], - "notes": [ - "24年实施" - ], - "canLocate": false, - "searchText": "高产稳产优质饲草基地建设子项目 2024 高产稳产饲草基地 龙日镇(飞机场) 瓦切(泽旺多尔基对面) 瓦切(种畜场对面) 热坤村(音乐牧场对面) (安曲)月亮湾 安曲镇(阿坝县路口旁) 查尔玛(镇政府旁边) 江茸乡(绵羊养殖场) 4600 24年实施" - } - ], - "yearRows": [ - { - "key": "year-2022", - "name": "2022年", - "value": 8000, - "unit": "亩", - "extra": "实测种草面积" - }, - { - "key": "year-2023", - "name": "2023年", - "value": 14500, - "unit": "亩", - "extra": "实测种草面积" - }, - { - "key": "year-2024", - "name": "2024年", - "value": 34069, - "unit": "亩", - "extra": "实测种草面积" - } - ], - "typeRows": [ - { - "key": "type-高产稳产饲草基地", - "name": "高产稳产饲草基地", - "value": 40019, - "unit": "亩", - "extra": "实测种草面积" - }, - { - "key": "type-草地资源保护", - "name": "草地资源保护", - "value": 11050, - "unit": "亩", - "extra": "实测种草面积" - }, - { - "key": "type-草种基地", - "name": "草种基地", - "value": 5500, - "unit": "亩", - "extra": "实测种草面积" - } - ], - "operationRows": [ - { - "key": "tillage", - "name": "实际翻耕", - "value": 7093.23, - "unit": "亩", - "extra": "表内实测记录" - }, - { - "key": "drill-sowing", - "name": "条播", - "value": 14818, - "unit": "亩", - "extra": "表内实测记录" - }, - { - "key": "no-till-overseeding", - "name": "免耕补播", - "value": 30118.76, - "unit": "亩", - "extra": "表内实测记录" - } - ], - "disturbanceRows": [ - { - "key": "disturbance-total", - "name": "翻耕及扰动", - "value": 10011.32, - "unit": "亩", - "extra": "施工扰动面积" - }, - { - "key": "disturbance-light", - "name": "轻微扰动", - "value": 2301.69, - "unit": "亩", - "extra": "施工扰动面积" - }, - { - "key": "disturbance-tillage", - "name": "实际翻耕", - "value": 7093.23, - "unit": "亩", - "extra": "施工扰动面积" - } - ], - "townRows": [ - { - "key": "town-安曲镇", - "name": "安曲镇", - "value": 4, - "unit": "项", - "extra": "涉及种草项目" - }, - { - "key": "town-瓦切镇", - "name": "瓦切镇", - "value": 4, - "unit": "项", - "extra": "涉及种草项目" - }, - { - "key": "town-龙日镇", - "name": "龙日镇", - "value": 5, - "unit": "项", - "extra": "涉及种草项目" - }, - { - "key": "town-邛溪镇", - "name": "邛溪镇", - "value": 1, - "unit": "项", - "extra": "涉及种草项目" - }, - { - "key": "town-江茸乡", - "name": "江茸乡", - "value": 2, - "unit": "项", - "extra": "涉及种草项目" - }, - { - "key": "town-刷经寺镇", - "name": "刷经寺镇", - "value": 1, - "unit": "项", - "extra": "涉及种草项目" - }, - { - "key": "town-查尔玛乡", - "name": "查尔玛乡", - "value": 1, - "unit": "项", - "extra": "涉及种草项目" - } - ], - "investmentRows": [ - { - "key": "artificial-grassland-project-6", - "name": "2024饲草基地", - "value": 1453.82, - "unit": "万元", - "extra": "2024" - }, - { - "key": "artificial-grassland-project-5", - "name": "2024草地资源保护", - "value": 1087.12, - "unit": "万元", - "extra": "2024" - }, - { - "key": "artificial-grassland-project-1", - "name": "2023饲草基地", - "value": 984.1, - "unit": "万元", - "extra": "2023" - }, - { - "key": "artificial-grassland-project-4", - "name": "2022饲草基地", - "value": 489.03, - "unit": "万元", - "extra": "2022" - }, - { - "key": "artificial-grassland-project-3", - "name": "2022草种基地", - "value": 308.48, - "unit": "万元", - "extra": "2022" - } - ] -} -`,hV=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1783995319167.png",import.meta.url).href,W6=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126},{key:"artificial-grassland",name:"人工种草",color:"#19ffc6",unit:"万亩",metricLabel:"种草面积",width:112},{key:"scale-breeding",name:"规模化养殖基地",color:"#46e7ff",unit:"个",metricLabel:"基地",width:132},{key:"breeding-selection",name:"选育/扩繁基地",color:"#7aefff",unit:"个",metricLabel:"基地",width:132},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#25cbe8",unit:"吨",metricLabel:"库容",width:126},{key:"milk-source-station",name:"奶源站",color:"#5cdfff",unit:"个",metricLabel:"站点",width:112},{key:"slaughter-processing",name:"屠宰与加工",color:"#1fafd2",unit:"万元",metricLabel:"产值",width:112},{key:"farm-equipment",name:"农机装备",color:"#30dcff",unit:"个",metricLabel:"装备",width:112},{key:"forage-trade",name:"牧草交易",color:"#19ffc6",unit:"个",metricLabel:"点位",width:112},{key:"social-service",name:"社会化服务",subName:"金融/疫病/保险/培训",color:"#8aefff",unit:"个",metricLabel:"主体",width:132}],n6=Da.map(t=>t.zoneName),mV=new Map(P9.map(t=>[t.name,t.center])),ty=JSON.parse(uV),pV=JSON.parse(cV),gV=JSON.parse(dV),J5=JSON.parse(fV),jr=ty.categories||[],yV=new Map(jr.map(t=>[t.categoryCode,t])),ny=(pV.records||[]).map(t=>t3(B2({},t),{areaName:t.town,address:t.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),bm=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),vV=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),SV=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],wV=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],Gu=jr.flatMap(t=>(t.categoryCode==="YC-FAMILY-PASTURE"?ny:t.items||[]).map(e=>{var n;return t3(B2({},e),{categoryCode:t.categoryCode,categoryName:t.categoryName,stageKey:t.industryStage,stageName:((n=C6(t.industryStage))==null?void 0:n.name)||t.categoryName})})),Va=Gu.filter($e),Tm=new Map(Gu.map(t=>[String(t.id),t])),v5=Gt("YC-FAMILY-PASTURE"),H8=Gt(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),Uu=Gt(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),Q5=Gt("YC-DISASTER-FORAGE-STORAGE"),T6=Gt("YC-PROCESSING-PLANT"),S5=Gt("YC-SLAUGHTERHOUSE"),Ou=Gt("YC-FARM-EQUIPMENT"),ju=Gt("YC-DISEASE-CONTROL"),R9=Gt("YC-TECH-TRAINING"),Ha=Gt("YC-SERVICE-FINANCE"),zr=Gt("YC-SERVICE-INSURANCE"),zu=i6(v5),zl=At(v5,t=>L0(t,["标准化暖棚 (㎡)"])),bV=At(v5,t=>L0(t,["管理用房 (㎡)"])),ay=At(v5,t=>L0(t,["饲草料库 (㎡)"])),TV=At(v5,t=>L0(t,["活动场地及通道 (㎡)"]));i6(Uu);const vr=i6(Q5),CV=i6(H8),AV=At(H8,t=>L0(t,["设计存栏量 (头)"]));i6(T6);i6(S5);const Yl=i6(Ou),$l=i6(ju),iy=i6(R9),Yu=i6(Ha),ry=i6(zr),_V=jr.filter(t=>Gt(t.categoryCode).some($e)).length;Va.length;new Set(Va.map(Pn).filter(Boolean)).size||n6.length;const xV=Math.max(Yl,S6.reduce((t,e)=>t+Number(e.devices||0),0));At(Uu,t=>L0(t,["种植面积 (亩)","acreage"])||U8(t.scale));const D8=At(Q5,t=>L0(t,["总库容 (吨)"]));At(Gt("YC-BREEDING-BASE"),t=>L0(t,["设计存栏量 (头)"]));At(Gt("YC-BREEDING-BASE"),t=>L0(t,["年出栏量 (头)"]));const oy=At(T6,t=>L0(t,["年产值 (万元)"])),$u=At(T6,t=>L0(t,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),Wu=At(T6,t=>L0(t,["带动本地农户数"])),Vu=At(S5,t=>L0(t,["年总产值 (万元)"])),Yr=At(S5,t=>L0(t,["年屠宰总量 (头)"])),sy=At(S5,t=>L0(t,["冷冻库容量 (吨)"])),Ka=oy+Vu,G8=Ju(Ha,t=>L0(t,["最高单户贷款额度 (万元)"])),MV=Ju(Ha,t=>L0(t,["服务覆盖乡镇数"])),Wl=Ju(zr,t=>L0(t,["服务覆盖乡镇数"])),ly=At(R9,t=>L0(t,["年培训场次"])),ka=At(R9,t=>L0(t,["年培训人次"])),PV=Gt("YC-BREEDING-BASE"),kV=new Set(["YC-BREEDING-BASE"]),Vl=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:hV,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],uy=xH([...Uu,...Q5]),u5=J5.summary||{},cy=J5.projectRows||[],EV=J5.yearRows||[],NV=J5.typeRows||[],RV=J5.operationRows||[],LV=J5.disturbanceRows||[],dy=[...J5.townRows||[]].sort(rn),IV=J5.investmentRows||[],FV=gV.plotRows||[],BV=MH(),fy=PH(),Cm=S6.map(t=>({key:t.name,name:t.name,value:Number(t.devices||0),unit:"套",extra:`${Dt(t.count)}头识别样本`})).filter(t=>t.value>0).sort(rn),DV=S6.map(t=>({key:t.name,name:t.name,value:Number(t.count||0),unit:"头",extra:`${Dt(t.devices)}套设备`})).filter(t=>t.value>0).sort(rn),GV=dH();ty.generatedAt;const UV=Q5.map(Ku),OV=[...T6,...S5].map(Ku),jV=Va.map(Ku),Ea=Va.map(mH).sort((t,e)=>Number(e.canLocate)-Number(t.canLocate)||t.stageOrder-e.stageOrder||String(t.name).localeCompare(String(e.name),"zh-CN"));function Xs(t={}){const e=String(t.featuredBaseKey||"").trim();if(e)return Vl.find(a=>a.key===e)||null;const n=[t.name,t.fullName].filter(Boolean).map(a=>String(a));return Vl.find(a=>a.aliases.some(i=>n.some(r=>r===i||r.includes(i)||i.includes(r))))||null}const hy=W6.reduce((t,e)=>t+c5(e.key),0),my=new Set(W6.flatMap(t=>wr(t.key).map(e=>e.town)).filter(Boolean)).size||n6.length,zV=[{zh:"产业点位",name:"产业点位",value:hy,unit:"个"},{zh:"产业产值",name:"产业产值",value:yn(Ka,1),unit:"万元",decimals:1},{zh:"饲草库容",name:"饲草库容",value:D8,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:my,unit:"个"}];function py(t){const e=eH(t),n=d8();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:zu,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:zl,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:ay,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:TV,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:yn(Number(u5.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:u5.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:u5.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:u5.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:n.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:n.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:n.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:n.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:CV,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:AV,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Kl(H8,Pn),unit:"个"},{zh:"育种等级",name:"育种等级",value:gy.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:vr,unit:"个"},{zh:"总库容",name:"总库容",value:D8,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Kl(Q5,Pn),unit:"个"},{zh:"草种类型",name:"草种类型",value:uy.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"年收奶量",name:"年收奶量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:c5("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:yn(Ka,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:Yr,unit:"头"},{zh:"带动农户",name:"带动农户",value:Wu,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:c5("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:S6.reduce((i,r)=>i+Number(r.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:S6.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:S6.reduce((i,r)=>i+Number(r.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易点位",name:"交易点位",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"交易草量",name:"交易草量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"social-service":[{zh:"服务点位",name:"服务点位",value:c5("social-service"),unit:"个"},{zh:"最高授信",name:"最高授信",value:G8,unit:"万元"},{zh:"培训人次",name:"培训人次",value:ka,unit:"人次"},{zh:"服务类型",name:"服务类型",value:fy.length,unit:"类"}]}[t]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(i=>({zh:i.label,name:i.label,value:i.value,unit:i.unit}))]).filter(i=>i.value!==void 0&&i.value!==null&&i.value!=="").slice(0,4)}const YV=[{key:"chain-subject",name:"产业点位",value:hy,unit:"个",icon:"town",extra:`${_V}类主体`},{key:"chain-town",name:"镇域覆盖",value:my,unit:"个",icon:"town",extra:"全链覆盖"},{key:"chain-output",name:"产业产值",value:yn(Ka,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"},{key:"chain-forage",name:"饲草库容",value:D8,unit:"吨",icon:"yield",extra:"防灾储备"}],$V=W6.map(t=>({key:t.key,name:t.name,value:c5(t.key),unit:t.key==="family-pasture"?"处":"个",color:t.color})),Sr=[{key:"family-pasture",name:"家庭生态牧场",value:zu,unit:"处",capacity:yn(zl/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:yn(zl/1e4,2),unit:"万㎡"},{label:"管理用房",value:yn(bV/1e4,2),unit:"万㎡"},{label:"饲草料库",value:yn(ay/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:yn(Number(u5.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:u5.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:yn(Number(u5.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:u5.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:u5.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:d8().baseCount,unit:"个",capacity:d8().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:d8().designStock,unit:"头"},{label:"年出栏",value:d8().annualOutput,unit:"头"},{label:"覆盖乡镇",value:d8().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:vr,unit:"个",capacity:D8,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:vr,unit:"个"},{label:"总库容",value:D8,unit:"吨"},{label:"覆盖乡镇",value:Kl(Q5,Pn),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:c5("slaughter-processing"),unit:"个",capacity:yn(Ka,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:oy,unit:"万元"},{label:"屠宰产值",value:yn(Vu,1),unit:"万元"},{label:"年屠宰量",value:Yr,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:c5("farm-equipment"),unit:"个",capacity:xV,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:c5("farm-equipment"),unit:"个"},{label:"识别设备",value:S6.reduce((t,e)=>t+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:S6.length,unit:"个"}]},{key:"social-service",name:"社会化服务",value:c5("social-service"),unit:"个",capacity:G8,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Yu,unit:"家"},{label:"最高授信",value:G8,unit:"万元"},{label:"培训人次",value:ka,unit:"人次"}]}],gy=vH(),yy=V5(Q5,Pn,t=>L0(t,["总库容 (吨)"])).map(t=>t3(B2({},t),{unit:"吨",extra:`${t.count}个库点`})),vy=[{key:"milk-processing",name:"乳品加工",value:At(T6.filter(EH),t=>L0(t,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:At(T6.filter(NH),t=>L0(t,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:yn(Vu,1),unit:"万元",color:"#8bf7ff"}].filter(t=>t.value>0),WV=[{key:"raw-capacity",name:"年加工原料",value:$u,unit:"吨",extra:`${T6.filter($e).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:Yr,unit:"头",extra:`${S5.filter($e).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:Wu,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:sy,unit:"吨",extra:"屠宰冷链"}],VV=[{key:"finance",name:"金融服务",value:H4(MV,10),count:Yu,unit:"家",extra:`最高${Dt(G8)}万元`},{key:"insurance",name:"保险服务",value:H4(Wl,10),count:ry,unit:"家",extra:`覆盖${Dt(Wl)}乡镇`},{key:"training",name:"技术培训",value:H4(ka,200),count:iy,unit:"家",extra:`${Dt(ka)}人次`},{key:"disease",name:"疫病防控",value:H4($l,4),count:$l,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:H4(Yl,3),count:Yl,unit:"个",extra:"服务主体"}],HV=[{key:"cutting",name:"割草地",headerName:"割草地"},{key:"storage",name:"储草基地",headerName:"储草基地",valuePrefix:"≥"},{key:"netFence",name:"网围栏种草",headerName:"网围栏"}],KV=[{key:"cutting",name:"割草地",color:"#37DDF3"},{key:"storage",name:"储草基地",color:"#8bf7ff"}];function Sy(t){return py(t).map((e,n)=>({key:e.key||`${t}-metric-${n}`,name:e.name||e.zh||`指标${n+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function qV(t){var o;const e=C6(t),n=Sr.find(s=>s.key===t),a=Sy(t),i=a[0]||{key:`${t}-primary`,name:e.name,value:0,unit:e.unit||""},r=((o=n==null?void 0:n.fields)!=null&&o.length?n.fields:a.slice(1)).map((s,u)=>({key:s.key||`${t}-field-${u}`,name:s.label||s.name||`要点${u+1}`,value:s.value,unit:s.unit||"",extra:s.extra||(n==null?void 0:n.note)||e.metricLabel||""}));return[t3(B2({},i),{key:i.key||`${t}-spotlight-main`,name:i.name||e.name,extra:i.extra||(n==null?void 0:n.note)||e.metricLabel||"环节核心能力"}),...r].slice(0,4)}function JV(t){return ne(`${t}-right-metrics`,"环节核心指标","metric",Sy(t))}function QV(t){return ne(`${t}-right-spotlight`,"建设要点","spotlight",qV(t))}function r8(t,e=xy(t)){return[e,JV(t),QV(t)]}function ZV(t){const e=C6(t),n=SH(t),a={"family-pasture":{left:[ne("family-town","家庭生态牧场乡镇分布","column",V4(t),{variant:"townCompact",scrollable:!1,uniformColor:!0,fillHeight:!0}),ne("family-unit","标准化建设配置","specGrid",rH(),{fillHeight:!0}),ne("family-forage","乡镇割草地、储草基地面积","stackColumn",Hu(),{fillHeight:!0,unit:"亩",segments:KV,sharedScale:!0,showZero:!0,showValue:!0,totalLabel:"汇总面积"}),ne("family-support-type","草料配套类型占比","structure",oH(),{fillHeight:!0})],right:[xy(t),ne("family-construction-year","年度建设节奏","line",lH(),{fixedType:!0}),ne("family-net-fence","网围栏配套面积","rank",sH("netFence"),{unit:"亩"})]},"artificial-grassland":{left:[ne("grass-town-area","人工种草乡镇面积","column",dy,{variant:"townCompact",scrollable:!1,uniformColor:!0}),ne("grass-year","年度项目建设面积","column",EV,{variant:"plain",scrollable:!1,lineOverlay:!0}),ne("grass-type","建设类型面积","structure",NV),ne("grass-operation","作业方式面积","bar",RV)],right:[bH(),ne("grass-investment","项目投资规模","rank",IV),ne("grass-disturbance","施工扰动面积","split",LV),ne("grass-project-area","项目面积明细","specGrid",iH())]},"scale-breeding":{left:[ne("breeding-town-count","乡镇养殖基地分布","column",wy("baseCount","个","养殖基地"),{variant:"townCompact",scrollable:!1,axisLabelMode:"short",uniformColor:!0}),ne("breeding-town-stock","设计存栏规模排名","bar",by("designStock","头","设计存栏"),{variant:"rankBar"}),ne("breeding-town-output","年出栏区域贡献","structure",nH()),ne("breeding-project-investment","重点示范项目投入","rank",aH())],right:[...r8(t,wH())]},"forage-storage":{left:[ne("storage-town","库容镇域分布","column",V4(t),{variant:"townCompact",scrollable:!1}),ne("storage-point","储备库点排名","bar",CH(),{variant:"rankBar"}),ne("storage-grass","储备草种结构","structure",uy),ne("storage-capacity","库容能力占比","split",V4(t).filter(r=>Number(r.value||0)>0).slice(0,7))],right:[...r8(t)]},"slaughter-processing":{left:[ne("processing-value","产值结构","donut",vy,{variant:"ring"}),ne("processing-chain","产能与带动","structure",BV),ne("processing-heads","屠宰能力排名","bar",AH(),{variant:"rankBar"}),ne("processing-town","加工点位乡镇分布","column",tl([...T6,...S5],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[...r8(t)]},"farm-equipment":{left:[ne("equipment-device","识别设备分布","column",U5(Cm,{unit:"套",extra:"识别设备"}),{variant:"townCompact",scrollable:!1}),ne("equipment-recognition","识别样本排名","bar",DV,{variant:"rankBar"}),ne("equipment-service-town","农机服务主体分布","column",tl(Ou,"农机服务主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),ne("equipment-device-structure","设备投放结构","structure",Cm.filter(r=>Number(r.value||0)>0).slice(0,6))],right:[...r8(t)]},"social-service":{left:[ne("service-type","服务主体结构","donut",fy,{variant:"ring"}),ne("service-town","服务镇域分布","column",tl([...ju,...R9,...Ha,...zr],"服务主体"),{variant:"townCompact",scrollable:!1}),ne("service-training-town","培训人次分布","column",TH(R9,["年培训人次"],{unit:"人次",extra:"技术培训"}),{variant:"townCompact",scrollable:!1,lineOverlay:!0}),ne("service-training","培训服务能力","line",_H())],right:[...r8(t)]}},i={left:[ne(`${e.key}-rank`,`${e.metricLabel}分布`,"column",V4(t),{variant:"townCompact",scrollable:!1}),ne(`${e.key}-subject`,"主体结构","structure",n),ne(`${e.key}-town`,"镇域覆盖分布","column",U5(uH(t),{unit:"个",extra:"镇域覆盖"}),{variant:"townCompact",scrollable:!1}),ne(`${e.key}-capacity`,"能力规模分布","split",V4(t).slice(0,7))],right:[...r8(t)]};return a[t]||i}const XV=[{key:"support-capacity",name:"饲草储备能力",value:D8,unit:"吨",extra:`${vr}个库点`},{key:"processing-capacity",name:"加工原料规模",value:$u,unit:"吨",extra:`${T6.filter($e).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:yn(Ka,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:G8,unit:"万元",extra:"金融服务"}];function C6(t){return W6.find(e=>e.key===t)||W6[0]}function eH(t){return Sr.find(e=>e.key===t)||Sr[0]}function V4(t){if(t==="family-pasture")return U5(Ty(),{unit:"处",extra:"家庭生态牧场"});if(t==="artificial-grassland")return dy;if(t==="breeding-selection"){const e=V5(H8,Pn,()=>1).map(n=>t3(B2({},n),{unit:"个",extra:"选育/扩繁基地"}));return U5(e,{unit:"个",extra:"选育/扩繁基地"})}if(t==="scale-breeding"){const e=V5(Gt("YC-BREEDING-BASE"),Pn,n=>L0(n,["设计存栏量 (头)"])).map(n=>t3(B2({},n),{unit:"头",extra:`${n.count}个基地`}));return U5(e,{unit:"头",extra:"养殖基地"})}return t==="forage-storage"?U5(yy,{unit:"吨",extra:"饲草储备"}):t==="slaughter-processing"?[...T6,...S5].filter($e).map(e=>({key:e.id,name:O8(e.name),value:L0(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(rn).slice(0,7):t==="farm-equipment"?Ou.filter($e).map(e=>{var n;return{key:e.id,name:O8(e.name),value:1,unit:"个",extra:((n=e.attributes)==null?void 0:n.简称)||"农机服务"}}):t==="social-service"?[{key:"finance",name:"金融服务网点",value:Yu,unit:"家",extra:`最高${Dt(G8)}万元`},{key:"insurance",name:"保险服务网点",value:ry,unit:"家",extra:`覆盖${Dt(Wl)}乡镇`},{key:"training",name:"技术培训机构",value:iy,unit:"家",extra:`${Dt(ly)}场`},{key:"disease",name:"疫病防控主体",value:$l,unit:"个",extra:"防疫服务"}]:[]}function tH(){const t=new Map(n6.map((e,n)=>[e,{key:e,name:e,sourceIndex:n,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return qu().forEach(e=>{const n=t.get(e.town);n&&(n.segments.baseCount+=1,n.segments.designStock+=Number(e.numericValue||e.value||0),n.segments.annualOutput+=Number(e.annualOutput||0))}),n6.map(e=>t.get(e))}function wy(t,e,n){return tH().map((a,i)=>{var s;const r=Number(((s=a.segments)==null?void 0:s[t])||0),o=r>0;return{key:`${a.key}-${t}`,name:a.name,rawValue:r,value:o?r:.001,displayValue:o?r:"0",unit:e,extra:n,zero:!o,sourceIndex:i}})}function by(t,e,n){return wy(t,e,n).filter(a=>a.rawValue>0).map(a=>t3(B2({},a),{value:a.rawValue,displayValue:a.rawValue})).sort(rn)}function nH(){const t=by("annualOutput","头","年出栏"),e=t.reduce((r,o)=>r+Number(o.value||0),0);if(!e)return[];const n=t.slice(0,3),a=t.slice(3);return(a.length?[...n,{key:"other-towns-annual-output",name:"其他乡镇",value:a.reduce((r,o)=>r+Number(o.value||0),0),unit:"头"}]:n).map(r=>t3(B2({},r),{extra:`占比 ${Dt(Number(r.value||0)/e*100)}%`}))}function aH(){return Vl.map(t=>({key:t.key,name:t.name.replace(/标准化养殖基地/g,"基地").replace(/综合养殖基地/g,"基地"),value:Number(t.projectInvestment||0),unit:"万元",extra:`${t.town} · ${t.tag}`})).filter(t=>t.value>0).sort(rn)}function iH(){return cy.map(t=>({key:t.key,name:t.name,value:Number(t.actualAreaMu||t.value||0),unit:"亩",extra:t.year?`${t.year}年`:t.category||"实测面积"})).filter(t=>t.value>0).sort(rn)}function Ty(){const t=new Map(V5(v5,Pn,()=>1).map(e=>[e.name,e]));return n6.map(e=>{const n=t.get(e);return{key:e,name:e,value:Number((n==null?void 0:n.value)||0),unit:"处",extra:"家庭生态牧场"}})}function rH(){const t=new Map;return v5.filter($e).forEach(e=>{const n=L0(e,["标准化暖棚 (㎡)"]),a=L0(e,["管理用房 (㎡)"]),i=L0(e,["饲草料库 (㎡)"]),r=L0(e,["活动场地及通道 (㎡)"]),o=`${Dt(n)}㎡暖棚 + ${Dt(a)}㎡管理房`,s=`${n}-${a}-${i}-${r}`,u=t.get(s)||{key:s,name:o,value:0,unit:"处",specs:[{label:"饲草料库",value:i,unit:"㎡"},{label:"活动场地",value:r,unit:"㎡"}]};u.value+=1,t.set(s,u)}),[...t.values()].sort(rn)}function Hu(){const t=new Map(n6.map(e=>[e,{key:e,name:e,unit:"亩",segments:{cutting:0,storage:0,netFence:0}}]));return v5.filter($e).forEach(e=>{const n=Pn(e),a=t.get(n);if(!a)return;const i=e.grassSupportType,r=Number(e.grassSupportMu||0);r&&(i==="割草地"&&(a.segments.cutting+=r),i==="储草基地"&&(a.segments.storage+=r),i==="网围栏种草"&&(a.segments.netFence+=r))}),[...t.values()]}function oH(){const t=Hu();return HV.map(e=>{const n=t.reduce((i,r)=>{var o;return i+Number(((o=r.segments)==null?void 0:o[e.key])||0)},0),a=t.filter(i=>{var r;return Number(((r=i.segments)==null?void 0:r[e.key])||0)>0}).length;return{key:e.key,name:e.name,value:n,unit:"亩",extra:`覆盖${a}个乡镇`}})}function sH(t=""){return Hu().map(e=>{var a;const n=t?Number(((a=e.segments)==null?void 0:a[t])||0):Object.values(e.segments||{}).reduce((i,r)=>i+Number(r||0),0);return{key:e.key,name:e.name,value:n,unit:"亩",extra:t==="netFence"?"网围栏种草":"草料配套"}}).filter(e=>e.value>0).sort(rn)}function lH(){return V5(v5.filter($e),t=>String(t.constructionYear||"未标注"),()=>1).map(t=>t3(B2({},t),{name:t.name==="未标注"?t.name:`${t.name}年`,unit:"处",extra:"建成牧场"})).sort((t,e)=>String(t.key).localeCompare(String(e.key),"zh-CN"))}function uH(t){return V5(cH(t),Pn,()=>1).map(e=>t3(B2({},e),{unit:"个",extra:`${e.count}条`}))}function el(t={}){const e=RH(t);if(!e)return[];const n=[],a=e.metrics||{},i=e.attributes||{},r=(o,s,u="",m={})=>{My(s)||n.push(B2({label:o,value:IH(s,u)},m))};return e.categoryCode==="YC-FAMILY-PASTURE"?(r("户主",e.owner||i.户主),r("建设年份",e.constructionYear,"年"),r("所在村",e.village),r("标准化暖棚",a["标准化暖棚 (㎡)"],"㎡"),r("生产管理用房",a["管理用房 (㎡)"],"㎡"),r("饲草料库",a["饲草料库 (㎡)"],"㎡"),r("活动场地及通道",a["活动场地及通道 (㎡)"],"㎡"),r("草料配套",e.grassSupportText||i.草料配套,"",{wide:!0}),n):(r("运营单位",i.运营单位),r("育种等级",i.育种等级),r("育种方向",i.主要育种方向),r("设计存栏",a["设计存栏量 (头)"],"头"),r("年出栏量",a["年出栏量 (头)"],"头"),r("种植面积",a["种植面积 (亩)"]||e.scale,e.scale?"":"亩"),r("总库容",a["总库容 (吨)"],"吨"),r("年产值",a["年产值 (万元)"]||a["年总产值 (万元)"],"万元"),r("年加工量",a["年加工鲜奶总量 (吨)"]||a["年加工原料肉总量 (吨)"],"吨"),r("年屠宰量",a["年屠宰总量 (头)"],"头"),r("服务覆盖",a.服务覆盖乡镇数,"个乡镇"),r("最高授信",a["最高单户贷款额度 (万元)"],"万元"),r("主要产品",i.主要产品),r("主要草种",i.主要草种||i.储备草种),n.slice(0,8))}function Gt(t){return(Array.isArray(t)?t:[t]).flatMap(n=>{const a=yV.get(n);return(n==="YC-FAMILY-PASTURE"?ny:(a==null?void 0:a.items)||[]).map(r=>{var o;return t3(B2({},r),{categoryCode:a.categoryCode,categoryName:a.categoryName,stageKey:a.industryStage,stageName:((o=C6(a.industryStage))==null?void 0:o.name)||a.categoryName})})})}function cH(t){return t==="scale-breeding"?PV.filter($e):t==="breeding-selection"?H8.filter($e):t==="milk-source-station"||t==="forage-trade"?[]:Va.filter(e=>e.stageKey===t)}function wr(t){return t==="artificial-grassland"?FV:t==="farm-equipment"?GV:t==="scale-breeding"?qu():t==="breeding-selection"?Ea.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>t3(B2({},e),{stageKey:t,stageName:C6(t).name,stageOrder:W6.findIndex(n=>n.key===t)})):Ea.filter(e=>e.stageKey===t&&e.canLocate)}function c5(t){return t==="family-pasture"?zu:wr(t).length}function dH(){return S6.map((t,e)=>{const n=mV.get(t.name),a=Number(n==null?void 0:n[0]),i=Number(n==null?void 0:n[1]);if(!Hl(a,i))return null;const r=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,o=`${t.name}农机装备监测点`,s=Number(t.devices||0),u=Number(t.count||0);return{key:r,id:r,name:o,fullName:o,stageKey:"farm-equipment",stageName:C6("farm-equipment").name,stageOrder:W6.findIndex(m=>m.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:t.name,address:`${t.name}乡镇中心`,status:"监测样本",value:s,unit:"套",numericValue:s,valueText:`${Dt(s)}套`,extra:`${Dt(u)}头识别样本`,longitude:a,latitude:i,locateText:"定位",canLocate:!0,searchText:[o,"农机装备",t.name,`${s}套`,`${u}头识别样本`].join(" ")}}).filter(Boolean).sort((t,e)=>e.numericValue-t.numericValue||String(t.name).localeCompare(String(e.name),"zh-CN"))}function $e(t={}){var a;const e=f5(t.name),n=f5((a=t.attributes)==null?void 0:a.序号);return!(!e||bm.has(e)||vV.has(t.categoryCode)||wV.some(i=>i.test(e))||n&&bm.has(n)&&!fH(t)||SV.some(i=>i.test(e)))}function i6(t=[]){return t.filter($e).length}function fH(t={}){return Object.values(t.metrics||{}).some(e=>U8(e)>0)}function Ku(t={}){var n,a,i,r;const e=Cy(t);return{key:String(t.id||t.name),name:t.name,stageKey:t.stageKey,categoryCode:t.categoryCode,typeName:t.categoryName,categoryName:t.categoryName,town:Pn(t),address:t.address||t.village||t.areaFullName||"",status:t.status||"",products:((n=t.attributes)==null?void 0:n.主要产品)||((a=t.attributes)==null?void 0:a.主要草种)||((i=t.attributes)==null?void 0:i.储备草种)||((r=t.attributes)==null?void 0:r.主要育种方向)||"",capacity:e,capacityUnit:Ay(t),outputValue:L0(t,["年产值 (万元)","年总产值 (万元)"]),longitude:t.longitude,latitude:t.latitude}}function hH(t={}){const e=Cy(t),n=Ay(t),a=Pn(t);return{key:String(t.id||t.name),name:O8(t.name),fullName:t.name,stageKey:t.stageKey,categoryCode:t.categoryCode,typeName:t.categoryName,categoryName:t.categoryName,town:a||"全县",address:t.address||t.village||t.areaFullName||"",status:t.status||"待完善",value:e,unit:n,numericValue:Number(e)||0,valueText:gH(t,e,n),extra:yH(t),sourceSheet:t.sourceSheet}}function mH(t={}){var p,f;const e=hH(t),n=kH(t),a=C6(t.stageKey),i=f5(t.name),r=f5(t.categoryName).replace(/^cxpt/i,""),o=f5(t.address||t.village||t.areaFullName||""),s=t.attributes||{},u=t.metrics||{},m=[i,e.name,a==null?void 0:a.name,r,e.town,o,s.简称,s.运营单位,s.主要产品,s.主要草种,s.储备草种,s.主要育种方向,t.owner,t.village,t.constructionYear,t.facilityBrief,t.grassSupportText,u["主要贷款产品(可多选)"],e.valueText,e.extra,t.sourceSheet].filter(Boolean).join(" ");return t3(B2({},e),{name:e.name,fullName:i,stageName:(a==null?void 0:a.name)||e.stageName||"",stageOrder:W6.findIndex(g=>g.key===t.stageKey),categoryName:r,address:o,longitude:(p=n==null?void 0:n.longitude)!=null?p:"",latitude:(f=n==null?void 0:n.latitude)!=null?f:"",locateText:n?"定位":"暂无",canLocate:!!n,owner:t.owner||s.户主||"",village:t.village||"",constructionYear:t.constructionYear||"",facilityBrief:t.facilityBrief||"",facilityDetail:t.facilityDetail||s.设施配置||"",grassSupportText:t.grassSupportText||s.草料配套||"",pointName:t.pointName||"",preferCoordinateMatch:t.categoryCode==="YC-FAMILY-PASTURE",ledgerName:t.categoryCode==="YC-FAMILY-PASTURE"?t.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,t.village].filter(Boolean).join(" · "),facilityCompact:t.categoryCode==="YC-FAMILY-PASTURE"?pH(t.facilityBrief):t.facilityBrief||"",annualOutput:t.categoryCode==="YC-BREEDING-BASE"?L0(t,["年出栏量 (头)"]):0,searchText:m})}function qu(){return Ea.filter(t=>kV.has(t.categoryCode)&&t.canLocate)}function d8(){const t=qu();return{baseCount:t.length,designStock:t.reduce((e,n)=>e+Number(n.numericValue||n.value||0),0),annualOutput:t.reduce((e,n)=>e+Number(n.annualOutput||0),0),townCount:new Set(t.map(e=>e.town).filter(Boolean)).size}}function pH(t=""){return String(t).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Cy(t={}){var e,n;return t.stageKey==="family-pasture"?1:t.categoryCode==="YC-BREEDING-STOCK"?((e=t.attributes)==null?void 0:e.育种等级)||"待完善":t.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?U8(t.scale)||1:t.categoryCode==="YC-BREEDING-BASE"?L0(t,["设计存栏量 (头)"]):t.categoryCode==="YC-FORAGE-BASE"?L0(t,["种植面积 (亩)"]):t.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?L0(t,["总库容 (吨)"]):t.categoryCode==="YC-PROCESSING-PLANT"?L0(t,["年产值 (万元)"])||L0(t,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):t.categoryCode==="YC-SLAUGHTERHOUSE"?L0(t,["年总产值 (万元)"])||L0(t,["年屠宰总量 (头)"]):t.categoryCode==="YC-SERVICE-FINANCE"?L0(t,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):t.categoryCode==="YC-SERVICE-INSURANCE"?L0(t,["服务覆盖乡镇数"]):t.categoryCode==="YC-TECH-TRAINING"?L0(t,["年培训人次","年培训场次"]):(n=t.categoryCode)!=null&&n.startsWith("YC-CXPT")?U8(t.scale)||L0(t,["acreage"]):L0(t,Object.keys(t.metrics||{}))||1}function Ay(t={}){var e;return t.stageKey==="family-pasture"?"处":t.categoryCode==="YC-BREEDING-STOCK"?"":t.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(t.categoryCode)?"亩":t.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":t.categoryCode==="YC-PROCESSING-PLANT"||t.categoryCode==="YC-SLAUGHTERHOUSE"||t.categoryCode==="YC-SERVICE-FINANCE"?"万元":t.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":t.categoryCode==="YC-TECH-TRAINING"?"人次":(e=t.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function gH(t,e,n){return t.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${Dt(e)}${n||""}`:String(e||"")}function yH(t={}){const e=t.attributes||{},n=t.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||n["主要贷款产品(可多选)"]||t.sourceSheet||""}function vH(){const t=new Map;return H8.forEach(e=>{var i;const n=f5((i=e.attributes)==null?void 0:i.育种等级)||"待完善",a=t.get(n)||{key:n,name:n,value:0,unit:"个"};a.value+=1,t.set(n,a)}),[...t.values()].sort((e,n)=>{var i,r;const a={省级:0,县级:1,待完善:2};return((i=a[e.name])!=null?i:9)-((r=a[n.name])!=null?r:9)})}function SH(t){return jr.filter(e=>e.industryStage===t).map(e=>{const n=i6(Gt(e.categoryCode));return{key:e.categoryCode,name:e.categoryName.replace(/^cxpt/,""),value:n,unit:"条",extra:C6(t).name}}).filter(e=>e.value>0).sort(rn)}function ne(t,e,n,a,i={}){return B2({key:t,title:e,height:227,renderer:"business",type:n,rows:a},i)}function _y(t){return t==="family-pasture"?Ea.filter(e=>e.stageKey===t):t?wr(t):W6.flatMap(e=>wr(e.key))}function xy(t){const e=C6(t),n=_y(t);return t==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:n,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:n,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function wH(){return{key:"scale-breeding-location-list",title:"养殖基地定位",height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:_y("scale-breeding").slice().sort((e,n)=>String(e.town||"").localeCompare(String(n.town||""),"zh-CN")||String(e.name||"").localeCompare(String(n.name||""),"zh-CN")),maxRows:300,searchPlaceholder:"搜索养殖基地 / 乡镇",emptyText:"无匹配养殖基地",columns:[{key:"name",label:"养殖基地",field:"name",width:"46%",className:"business-project-col-name"},{key:"town",label:"区域",field:"town",width:"32%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",action:"locate"}],searchKeys:["name","fullName","town","address","searchText"]}}function bH(){return{key:"artificial-grassland-business-ledger",title:"项目建设台账",renderer:"business",type:"projectTable",rows:cy,fixedHeight:!0,rowSelectOnClick:!1,showSearch:!1,maxRows:6,emptyText:"暂无项目建设台账",columns:[{key:"name",label:"项目",field:"name",width:"48%",className:"business-project-col-name"},{key:"year",label:"年度",field:"year",width:"16%",align:"center"},{key:"area",label:"实测面积",field:"actualAreaMu",width:"36%",align:"right",strong:!0,unit:"亩"}],searchKeys:["name","fullName","year","category","towns","searchText"]}}function TH(t=[],e=[],n={}){const a=V5(t,Pn,i=>L0(i,e)).map(i=>t3(B2({},i),{unit:n.unit||"",extra:n.extra||`${i.count}个点位`}));return U5(a,n)}function tl(t=[],e="点位"){const n=V5(t,Pn,()=>1).map(a=>t3(B2({},a),{unit:"个",extra:e}));return U5(n,{unit:"个",extra:e})}function CH(){return Q5.filter($e).map(t=>{var e;return{key:t.id,name:O8(t.name),value:L0(t,["总库容 (吨)"]),unit:"吨",extra:L0(t,["发放次数"])||((e=t.attributes)==null?void 0:e.储备草种)||"储备库"}}).filter(t=>t.value>0).sort(rn).slice(0,8)}function AH(){return S5.filter($e).map(t=>({key:t.id,name:O8(t.name),value:L0(t,["年屠宰总量 (头)"]),unit:"头",extra:`${Dt(L0(t,["冷冻库容量 (吨)"]))}吨冷链`})).filter(t=>t.value>0).sort(rn).slice(0,7)}function _H(){const t=R9.filter($e).map(e=>({key:e.id,name:O8(e.name),value:L0(e,["年培训人次"]),unit:"人次",extra:`${Dt(L0(e,["年培训场次"]))}场`})).filter(e=>e.value>0).sort(rn).slice(0,7);return t.length?t:[{key:"sessions",name:"年培训场次",value:ly,unit:"场"},{key:"persons",name:"年培训人次",value:ka,unit:"人次"}]}function xH(t){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],n=new Map(e.map(a=>[a.key,{key:a.key,name:a.name,value:0,unit:"处"}]));return t.filter($e).forEach(a=>{var s,u;const i=[(s=a.attributes)==null?void 0:s.主要草种,(u=a.attributes)==null?void 0:u.储备草种].filter(Boolean).join("、"),r=e.filter(m=>m.key!=="other"&&m.pattern.test(i));(r.length?r:[e[e.length-1]]).forEach(m=>{n.get(m.key).value+=1})}),[...n.values()].filter(a=>a.value>0).sort(rn)}function MH(){return[{key:"raw-capacity",name:"原料加工",value:$u,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:Yr,unit:"头"},{key:"farmer-driven",name:"带动农户",value:Wu,unit:"户"},{key:"cold-storage",name:"冷链能力",value:sy,unit:"吨"}].filter(t=>t.value>0)}function PH(){return[{key:"finance",name:"金融",value:Ha.filter($e).length,unit:"家"},{key:"insurance",name:"保险",value:zr.filter($e).length,unit:"家"},{key:"training",name:"培训",value:R9.filter($e).length,unit:"家"},{key:"disease",name:"防疫",value:ju.filter($e).length,unit:"个"}].filter(t=>t.value>0)}function V5(t,e,n){const a=new Map;return t.filter($e).forEach(i=>{const r=f5(typeof e=="function"?e(i):i[e])||"未填写",o=a.get(r)||{key:r,name:r,value:0,count:0,extra:""};o.value+=Number(n(i)||0),o.count+=1,a.set(r,o)}),[...a.values()].sort(rn)}function U5(t=[],e={}){const n=new Map;return t.forEach(a=>{const i=f5(a==null?void 0:a.name),r=n6.find(o=>o===i)||n6.find(o=>{const s=o.replace(/[镇乡]$/,"");return s.length>=2&&i.includes(s)});r&&n.set(r,a)}),n6.map((a,i)=>{const r=n.get(a),o=Number((r==null?void 0:r.value)||0),s=Number.isFinite(o)&&o>0;return{key:(r==null?void 0:r.key)||a,name:a,value:s?o:.001,displayValue:s?r.displayValue:"0",scaleValue:r==null?void 0:r.scaleValue,unit:(r==null?void 0:r.unit)||e.unit||"",extra:(r==null?void 0:r.extra)||e.extra||"",color:r==null?void 0:r.color,zero:!s,sourceIndex:i}})}function L0(t={},e=[]){const n=t.metrics||{},a=Array.isArray(e)?e:[e];for(const i of a)if(Object.prototype.hasOwnProperty.call(n,i)){const r=U8(n[i]);if(r||r===0)return r}return 0}function U8(t){if(typeof t=="number")return Number.isFinite(t)?t:0;if(My(t))return 0;const e=String(t).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const n=e.match(/-?\d+(?:\.\d+)?/);if(!n)return 0;let a=Number(n[0]);return e.includes("万亩")&&!e.includes("万元")&&(a*=1e4),Number.isFinite(a)?a:0}function Pn(t={}){const e=f5(t.town||t.areaName);if(n6.includes(e))return e;const n=[t.town,t.areaName,t.areaFullName,t.address,t.village,t.name].filter(Boolean).join(" "),a=n6.find(i=>n.includes(i));return a||n6.find(i=>{const r=i.replace(/[镇乡]$/,"");return r.length>=2&&n.includes(r)})||e}function kH(t={}){const e=o8(t.longitude),n=o8(t.latitude);if(Hl(e,n))return{longitude:e,latitude:n};const a=Object.values(t.locations||{}).find(i=>Hl(o8(i==null?void 0:i.longitude),o8(i==null?void 0:i.latitude)));return a?{longitude:o8(a.longitude),latitude:o8(a.latitude)}:null}function Hl(t,e){const n=Number(t),a=Number(e);return Number.isFinite(n)&&Number.isFinite(a)&&n>=J1.west&&n<=J1.east&&a>=J1.south&&a<=J1.north}function o8(t){if(t==null||t==="")return NaN;const e=Number(t);return Number.isFinite(e)?e:NaN}function EH(t={}){var n;const e=[t.name,(n=t.attributes)==null?void 0:n.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function NH(t={}){var n;const e=[t.name,(n=t.attributes)==null?void 0:n.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function RH(t={}){const e=String(t.id||"");return e&&Tm.has(e)?Tm.get(e):Gu.find(n=>n.name===t.name&&n.categoryCode===t.categoryCode)}function H4(t,e){return Math.max(12,Math.min(100,Math.round(Number(t||0)/e*100)))}function At(t,e){return t.filter($e).reduce((n,a)=>n+Number(e(a)||0),0)}function Ju(t,e){return t.filter($e).reduce((n,a)=>Math.max(n,Number(e(a)||0)),0)}function Kl(t,e){return new Set(t.filter($e).map(e).filter(Boolean)).size}function rn(t,e){return e.value-t.value||e.count-t.count||String(t.name).localeCompare(String(e.name),"zh-CN")}function O8(t=""){return String(t).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function f5(t){return String(t!=null?t:"").replace(/\s+/g," ").trim()}function My(t){return t==null||String(t).trim()===""||String(t).trim().toLowerCase()==="nan"}function LH(t){return typeof t=="number"?Dt(t):U8(t)&&String(t).match(/^\s*[约≈]?\d/)?String(t):String(t!=null?t:"")}function IH(t,e=""){const n=LH(t);return!e||typeof t=="string"&&n.includes(e.replace(/^个/,""))?n:`${n}${e}`}function Dt(t){const e=Number(t||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function yn(t,e=0){const n=n5(10,e);return Math.round(Number(t||0)*n)/n}const FH={class:"yak-industry-chain"},BH={key:0,class:"industry-map-loading"},DH={key:1,class:"fgw-left industry-side-panel industry-side-panel--left"},GH={class:"fgw-side-stack industry-side-stack is-left"},UH={key:1,class:"industry-panel-empty"},OH={key:3,class:"industry-featured-base-list"},jH=["disabled","aria-label","onClick"],zH={class:"industry-featured-base__index"},YH={class:"industry-featured-base__copy"},$H={key:4,class:"industry-leadership-mode-list"},WH={key:5,class:"industry-ledger-list"},VH={key:2,class:"fgw-right industry-side-panel industry-side-panel--right"},HH={class:"fgw-side-stack industry-side-stack is-right"},KH={key:1,class:"industry-panel-empty"},qH={key:3,class:"industry-featured-base-list"},JH=["disabled","aria-label","onClick"],QH={class:"industry-featured-base__index"},ZH={class:"industry-featured-base__copy"},XH={key:4,class:"industry-leadership-mode-list"},eK={key:5,class:"industry-ledger-list"},tK={key:3,class:"industry-artificial-layer-tools"},nK={class:"industry-point-detail__head"},aK={class:"industry-point-detail__name"},iK={key:0,class:"industry-point-detail__profile"},rK={class:"industry-point-detail__profile-head"},oK=["src","alt"],sK={class:"industry-point-detail__facts"},lK={class:"industry-point-detail__highlights"},uK={class:"industry-bottom-switcher"},cK={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(t,{expose:e,emit:n}){const a=t,i=n,r=Tn.sideCardWidth,o=a3(typeof window=="undefined"?1080:window.innerHeight),s=Tn.sideCardGap,u=Tn.sidePanelTop,m=Tn.sidePanelBottom,p=Tn.sideCardMinHeight,f=r2(()=>j8(o.value)),g=r2(()=>M9(f.value,2)),C=r2(()=>M9(f.value,4)),F=a3("family-pasture"),z=a3(null),Y=a3(!1),i2=a3(null),v2=a3(""),y2=a3({x:0,y:0}),A2=a3(null),S2=a3({x:0,y:0}),Q2=a3(!1),X2=a3(["artificial-grassland-plots"]);let c3=null,p3=!1,l3=!1,b3=null,N3=null,_3=!1;const J3=r2(()=>C6(F.value));r2(()=>F.value==="family-pasture");const R3=r2(()=>F.value==="artificial-grassland"),Z3=r2(()=>[{key:"artificial-grassland-plots",name:"待核定种草图斑",color:"#30DCFF",stroke:"#C9FBFF"},{key:"yak-industry-points",name:"人工种草基地点",color:"#19FFC6",stroke:"#B7FFF2"}]),M1=r2(()=>[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1},{key:"artificial-grassland-base",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",selectable:!1}]),b1=r2(()=>ZV(F.value)),j1=r2(()=>F3(b1.value)),a1=r2(()=>{const d2=j1.value.left;return d2.filter($2=>!($2!=null&&$2.placeholder)).map($2=>u1($2,d2.length))}),G1=r2(()=>{const d2=j1.value.right;return d2.map($2=>u1($2,d2.length))}),s0=r2(()=>{var z3,d3,$3;const d2=j5("yak-industry-chain","yak-industry-points");if(R3.value){const X3=[];if(X2.value.includes("artificial-grassland-plots")){const s3=j5("yak-industry-chain","artificial-grassland-plots");s3&&X3.push(t3(B2({},s3),{activeLegend:(z3=s3.legends)==null?void 0:z3[0]}))}if(X2.value.includes("yak-industry-points")&&d2){const s3=(d3=d2.legends)==null?void 0:d3.find(m1=>m1.key==="yak-industry-artificial-grassland");X3.push(t3(B2({},d2),{showPointLabels:!1,activeLegend:s3}))}if(!X3.length)return null;const[P2,...n3]=X3;return t3(B2({},P2),{overlayLayers:n3})}const $2=($3=d2==null?void 0:d2.legends)==null?void 0:$3.find(X3=>{var P2;return((P2=X3.match)==null?void 0:P2.value)===F.value||X3.key===`yak-industry-${F.value}`});return d2&&t3(B2({},d2),{hidePointFeatures:F.value==="family-pasture",hidePointMarkers:F.value==="family-pasture",showPointLabels:F.value==="family-pasture"?!1:d2.showPointLabels,activeLegend:$2||{key:`yak-industry-empty-${F.value}`,name:J3.value.name,fillColor:J3.value.color,strokeColor:J3.value.color,match:{field:"stageKey",value:F.value}}})}),i0=r2(()=>W6.map(d2=>({key:d2.key,name:d2.name,color:d2.color,width:d2.width}))),r0=r2(()=>{const d2=F.value==="family-pasture",$2=R3.value&&X2.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!d2&&!R3.value||$2,showMissingTownStats:d2,title:d2?"家庭生态牧场":`${J3.value.name}排行`,metricLabel:d2?"生态牧场":J3.value.metricLabel,unit:J3.value.unit,rows:d2?Ty():[]}}),q1=r2(()=>{var d2;return Xs(t3(B2({},i2.value||{}),{featuredBaseKey:v2.value||((d2=i2.value)==null?void 0:d2.featuredBaseKey)}))}),h3=r2(()=>{const d2=i2.value;if(!d2)return[];if(q1.value){const $2=q1.value,z3=el(d2).filter(d3=>["设计存栏","年出栏量"].includes(d3.label));return[{label:"所在地",value:`${$2.town} ${$2.village}`},{label:"运营单位",value:$2.operator},...z3].filter(d3=>d3.value!==void 0&&d3.value!==null&&String(d3.value).trim()!=="")}return d2.categoryCode==="YC-FAMILY-PASTURE"?[{label:"所在乡镇",value:H1(d2.town)},...el(d2)].filter($2=>$2.value!==void 0&&$2.value!==null&&String($2.value).trim()!==""):[{label:"所属环节",value:H1(d2.stageName)},{label:"主体类型",value:H1(d2.categoryName)},{label:"所在乡镇",value:H1(d2.town)},{label:"能力规模",value:Re(d2)},{label:"运行状态",value:H1(d2.status)},...el(d2)].filter($2=>$2.value!==void 0&&$2.value!==null&&String($2.value).trim()!=="")}),O3=r2(()=>{var d2,$2;return q1.value?"重点示范基地":H1(((d2=i2.value)==null?void 0:d2.categoryName)||(($2=i2.value)==null?void 0:$2.stageName))}),V3=r2(()=>{var d2,$2;return((d2=q1.value)==null?void 0:d2.name)||H1(($2=i2.value)==null?void 0:$2.name)}),i3=r2(()=>{var B0;const $2=((B0=i2.value)==null?void 0:B0.categoryCode)==="YC-FAMILY-PASTURE",z3=h3.value.filter(p0=>p0.wide).length,d3=Math.ceil(Math.max(0,h3.value.length-z3)/2)+z3,$3=q1.value?q1.value.image?576:532:$2?Math.min(400,Math.max(318,150+d3*38)):Math.min(520,Math.max(252,116+h3.value.length*40)),X3=24,P2=28,n3={x:Math.max(X3,Math.min(1920-X3,Number(y2.value.x||0))),y:Math.max(X3,Math.min(1080-X3,Number(y2.value.y||0)))},s3=r+46,m1=1920-r-46,w1=Math.min(Math.max(n3.x-456/2,s3),m1-456),f0=Math.min(Math.max(n3.y-$3-P2,128),1080-$3-116),g0=Math.min(Math.max(n3.x-w1,34),456-34);return{left:`${w1}px`,top:`${f0}px`,"--point-arrow-left":`${g0}px`,"--point-arrow-top":"100%","--point-arrow-x":"-50%","--point-arrow-y":"-8px","--point-arrow-rotate":"45deg"}}),U2=r2(()=>{const n3={x:Math.max(452,Math.min(1468,Number(S2.value.x||960))),y:Math.max(128,Math.min(960,Number(S2.value.y||540)))},s3=Math.min(Math.max(n3.x-460/2,452),1468-460),m1=n3.y-374-26,w1=m1>=116,f0=w1?m1:Math.min(Math.max(n3.y+26,116),944-374),g0=Math.min(Math.max(n3.x-s3,26),460-26);return{left:`${s3}px`,top:`${f0}px`,"--feature-arrow-left":`${g0}px`,"--feature-arrow-top":w1?`${374-6}px`:"-6px","--feature-arrow-rotate":w1?"45deg":"225deg"}});ie(F,d2=>{S0(d2)},{immediate:!0}),jn(()=>{T0(),window.addEventListener("resize",T0),oe()}),On(()=>{var d2,$2;_3=!0,window.removeEventListener("resize",T0),b3&&window.clearTimeout(b3),N3&&window.cancelAnimationFrame(N3),($2=(d2=z.value)==null?void 0:d2.destroyMap)==null||$2.call(d2)}),ie(()=>a.active,d2=>{var $2,z3,d3,$3;z.value&&(d2?(z0(),(z3=($2=z.value).resume)==null||z3.call($2)):($3=(d3=z.value).pause)==null||$3.call(d3))}),ie(X2,()=>{Z1()},{deep:!0});function D3(d2){d2!==F.value&&(F.value=d2,Z1())}function F3(d2={}){const $2=E(d2.left),z3=E(d2.right);if(z3.length)return{left:$2,right:z3};const d3=[...$2,...z3];return d3.length<=4?{left:d3,right:[]}:{left:$2,right:z3}}function u1(d2,$2=0){if((d2==null?void 0:d2.fixedHeight)===!0)return t3(B2({},d2),{height:f.value});if((d2==null?void 0:d2.fillHeight)===!0)return t3(B2({},d2),{height:A1($2)});if(["projectTable","projectLedger"].includes(d2==null?void 0:d2.type))return t3(B2({},d2),{height:S3(d2)});const z3=Number((d2==null?void 0:d2.height)||0)>=400||(d2==null?void 0:d2.span)===2,d3=(d2==null?void 0:d2.keepSpanHeight)===!0;return t3(B2({},d2),{height:$2===1&&!d3?C.value:z3?g.value:f.value})}function A1(d2=1){const $2=Math.max(1,Number(d2)||1),d3=Math.max(1080,Number(o.value)||1080)-u-m-s*Math.max($2-1,0);return Math.max(p,Math.floor(d3/$2))}function S3(d2={}){if((d2==null?void 0:d2.span)===2||(d2==null?void 0:d2.keepSpanHeight)===!0)return g.value;const $2=Array.isArray(d2.rows)?d2.rows:[],z3=100,d3=32,$3=z3+25+$2.length*d3;return Math.min(g.value,Math.max(f.value,$3))}function E(d2=[]){return d2.filter(Boolean)}function C3(d2={}){return(d2==null?void 0:d2.renderer)==="business"&&(d2==null?void 0:d2.type)==="column"&&(d2==null?void 0:d2.variant)==="townCompact"}function H3(d2={}){return Array.isArray(d2.rows)&&d2.rows.some($2=>Number($2!=null&&$2.zero?0:($2==null?void 0:$2.value)||0)>0)}function _1(d2={}){const $2=Array.isArray(d2.rows)?d2.rows:[],z3=$2.map(X3=>Number(X3!=null&&X3.zero?0:(X3==null?void 0:X3.value)||0)),d3=Math.max(...z3,1),$3=s1($2);return s8({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:Ni((X3=[])=>{var f0;const n3=((f0=(Array.isArray(X3)?X3:[X3])[0])==null?void 0:f0.data)||{},s3=n3.zero?"0":n3.displayValue,m1=n3.unit||$3||"",w1=n3.extra?`
${n3.extra}`:"";return`${n3.name||""}
${s3}${m1}${w1}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:$3?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${$3}`,fill:Xd,font:`10px ${FA}`}}]:[],xAxis:{type:"category",data:$2.map(X3=>(X3==null?void 0:X3.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:BA,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(d2==null?void 0:d2.axisLabelMode)==="short"?U1:B1}},yAxis:{type:"value",min:0,max:Math.ceil(d3*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:DA,type:"dashed"}}},series:[{type:"bar",data:$2.map((X3,P2)=>{var m1;const n3=!!(X3!=null&&X3.zero||X3!=null&&X3.isZero),s3=n3?0:Number((X3==null?void 0:X3.value)||0);return{name:X3==null?void 0:X3.name,value:s3,displayValue:(m1=X3==null?void 0:X3.displayValue)!=null?m1:G0(s3),unit:(X3==null?void 0:X3.unit)||$3||"",extra:(X3==null?void 0:X3.extra)||"",zero:n3,itemStyle:{color:n3?"rgba(48, 220, 255, 0.1)":d2!=null&&d2.uniformColor?N1():R1(P2,X3)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:ef,fontFamily:GA,fontSize:10,fontWeight:700,formatter(X3={}){var n3;const P2=X3.data||{};return P2.zero?"":(n3=P2.displayValue)!=null?n3:G0(Number(P2.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function s1(d2=[]){const $2=[...new Set(d2.map(z3=>z3==null?void 0:z3.unit).filter(Boolean))];return $2.length===1?$2[0]:""}function B1(d2){const $2=String(d2||"").replace(/\s+/g,"");return Array.from($2).slice(0,3).join(` -`)}function U1(d2){return Array.from(String(d2||"").replace(/\s+/g,"")).slice(0,2).join("")}function R1(d2,$2={}){return $2.color||$2.fillColor?$2.color||$2.fillColor:tf(hs[d2%hs.length])}function N1(){return tf(hs[0])}function G0(d2){const $2=Number(d2);return Number.isFinite($2)?Number.isInteger($2)?`${$2}`:`${Number($2.toFixed(2))}`:"--"}function T0(){o.value=typeof window=="undefined"?1080:window.innerHeight}function S0(d2=F.value){const $2=d2||F.value;i("module-stats",{moduleKey:"yak-industry-chain",items:py($2)})}function oe(){var d2,$2,z3;c3=new Br,p3=!1,i("loading-progress",{progress:0}),($2=(d2=c3.instance)==null?void 0:d2.on)==null||$2.call(d2,"onProgress",(d3,$3,X3)=>{i("loading-progress",{progress:Math.floor($3/(X3||1)*100),path:d3,itemsLoaded:$3,itemsTotal:X3})}),(z3=c3.ready)==null||z3.then(()=>{p3=!0,z0()}).catch(()=>{Y.value=!0,i("map-ready")})}function z0(){_3||!a.active||!p3||l3||(l3=!0,b3&&window.clearTimeout(b3),b3=window.setTimeout(()=>{b3=null,P0()},600))}function P0(d2=0){return L3(this,null,function*(){var z3,d3;if(_3)return;if(!a.active){l3=!1;return}if(yield ae(),!a.active){l3=!1;return}const $2=z.value;if((z3=$2==null?void 0:$2.loadMap)==null||z3.call($2,c3),$2!=null&&$2.canvasMap){Y.value=!0,i("loading-progress",{progress:100}),i("map-ready"),(d3=$2.play)==null||d3.call($2);return}if(d2<24){window.setTimeout(()=>P0(d2+1),120);return}l3=!1,Y.value=!0,i("map-ready")})}function x2(){b3&&(window.clearTimeout(b3),b3=null)}function j2(){var d2,$2,z3,d3;($2=(d2=z.value)==null?void 0:d2.resume)==null||$2.call(d2),(d3=(z3=z.value)==null?void 0:z3.refreshView)==null||d3.call(z3)}function H2(){var d2,$2;if(Z1(),($2=(d2=z.value)==null?void 0:d2.hasMap)!=null&&$2.call(d2)){Y.value=!0,j2();return}x2(),Y.value=!1,l3=!1,ae(()=>{z0()})}e({refreshMapView:j2,resetMap:H2});function w3(d2={}){var d3,$3,X3,P2;const $2=d2.feature||null,z3=($2==null?void 0:$2.properties)||{};if(((d3=$2==null?void 0:$2.layer)==null?void 0:d3.key)==="artificial-grassland-plots"){i2.value=null,A2.value=$2;const n3=d2.screen||((X3=($3=z.value)==null?void 0:$3.getVectorFeatureScreen)==null?void 0:X3.call($3,$2.feature));n3&&(S2.value=M3(n3)),Q2.value=!!n3;return}if(A2.value=null,Q2.value=!1,z3.stageKey){if(String(z3.stageKey)!==String(F.value)){i2.value=null,v2.value="";return}v2.value=((P2=Xs(z3))==null?void 0:P2.key)||"",i2.value=z3,y2.value=M3(d2.screen);return}i2.value=null,v2.value=""}function d1(){return L3(this,arguments,function*(d2={}){if(d2.stageKey==="artificial-grassland"){yield O1(d2);return}yield F0(d2)})}function O1(){return L3(this,arguments,function*(d2={}){d2!=null&&d2.canLocate&&(R3.value||(F.value="artificial-grassland",yield ae()),i2.value=null,v2.value="",A2.value=null,S2.value={x:960,y:510},Q2.value=!1,window.setTimeout(()=>V1(d2),90))})}function V1(d2={},$2=0){var $3,X3,P2;const z3=(X3=($3=z.value)==null?void 0:$3.focusVectorFeature)==null?void 0:X3.call($3,d2);if(!(z3!=null&&z3.feature)){$2<4&&window.setTimeout(()=>V1(d2,$2+1),180);return}A2.value={id:((P2=z3.feature.properties)==null?void 0:P2.id)||d2.id,properties:z3.feature.properties||{},feature:z3.feature,layer:j5("yak-industry-chain","artificial-grassland-plots")};const d3=A2.value.id;window.setTimeout(()=>{var n3;((n3=A2.value)==null?void 0:n3.id)===d3&&(I0(z3.feature,z3.screen),Q2.value=!0)},820)}function I0(d2,$2=null){var d3,$3;const z3=(($3=(d3=z.value)==null?void 0:d3.getVectorFeatureScreen)==null?void 0:$3.call(d3,d2))||$2;z3&&(S2.value=M3(z3))}function F0(){return L3(this,arguments,function*(d2={}){var d3;if(!d2.canLocate)return;const $2=!!(d2.stageKey&&d2.stageKey!==F.value);$2&&(F.value=d2.stageKey,yield ae());const z3=Y0(d2);v2.value=((d3=Xs(z3))==null?void 0:d3.key)||"",i2.value=z3,y2.value={x:960,y:500},window.setTimeout(()=>{var X3,P2;const $3=(P2=(X3=z.value)==null?void 0:X3.focusYakIndustryPoint)==null?void 0:P2.call(X3,z3);d0(z3,$3),de(z3)},$2?320:80)})}function O0(){return L3(this,arguments,function*(d2={}){d2.point&&(v2.value=d2.key,yield F0(d2.point))})}function Z1(){var $2,z3,d3,$3;i2.value=null,v2.value="",A2.value=null,Q2.value=!1,N3&&(window.cancelAnimationFrame(N3),N3=null);const d2=((z3=($2=z.value)==null?void 0:$2.canvasMap)==null?void 0:z3.value)||((d3=z.value)==null?void 0:d3.canvasMap);($3=d2==null?void 0:d2.clearSelectedFeature)==null||$3.call(d2)}function Y0(d2={}){var d3;const $2=Number(d2.longitude),z3=Number(d2.latitude);return t3(B2({},d2),{id:d2.key||d2.id,name:d2.fullName||d2.name,stageKey:d2.stageKey,stageName:d2.stageName||((d3=C6(d2.stageKey))==null?void 0:d3.name),categoryName:d2.categoryName||d2.typeName,capacity:d2.value,capacityUnit:d2.unit,longitude:$2,latitude:z3,geometry:Number.isFinite($2)&&Number.isFinite(z3)?{type:"Point",coordinates:[$2,z3]}:void 0,preferCoordinateMatch:Number.isFinite($2)&&Number.isFinite(z3),status:d2.status})}function d0(d2,$2=null){var d3,$3;const z3=(($3=(d3=z.value)==null?void 0:d3.getYakIndustryPointScreen)==null?void 0:$3.call(d3,d2))||($2==null?void 0:$2.screen);z3&&(y2.value=M3(z3))}function de(d2,$2=920){var $3,X3;N3&&window.cancelAnimationFrame(N3);const z3=((X3=($3=window.performance)==null?void 0:$3.now)==null?void 0:X3.call($3))||Date.now(),d3=()=>{var n3,s3;if(!i2.value||i2.value.id!==d2.id){N3=null;return}if(d0(d2),(((s3=(n3=window.performance)==null?void 0:n3.now)==null?void 0:s3.call(n3))||Date.now())-z3<$2){N3=window.requestAnimationFrame(d3);return}N3=null};N3=window.requestAnimationFrame(d3)}function Re(d2){return d2.capacity===void 0||d2.capacity===null||d2.capacity===""?"":`${d2.capacity}${d2.capacityUnit||""}`}function H1(d2){return String(d2!=null?d2:"").replace(/\bcxpt[-_./\s]*/gi,"").replace(/\s+/g," ").trim()}function M3(d2={}){var n3;const $2=document.querySelector("#large-screen"),z3=(n3=$2==null?void 0:$2.getBoundingClientRect)==null?void 0:n3.call($2),d3=z3!=null&&z3.width?1920/z3.width:1,$3=z3!=null&&z3.height?1080/z3.height:1,X3=(z3==null?void 0:z3.left)||0,P2=(z3==null?void 0:z3.top)||0;return{x:(Number(d2.x)-X3)*d3,y:(Number(d2.y)-P2)*$3}}return(d2,$2)=>{var z3;return O(),V("div",FH,[S1(z8,{ref_key:"mapSceneRef",ref:z,class:"industry-map-scene","active-layer":s0.value,"map-ranking":r0.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,onFeatureInfo:w3},null,8,["active-layer","map-ranking"]),$2[3]||($2[3]=S("div",{class:"industry-map-scrim"},null,-1)),Y.value?U3("",!0):(O(),V("div",BH,"3D地图加载中")),a1.value.length?(O(),V("div",DH,[S("div",GH,[(O(!0),V(Y3,null,e1(a1.value,d3=>(O(),_e(U0,{key:d3.key,class:o1(["fgw-side-card industry-side-card left-card",`industry-side-card--${d3.key}`]),title:d3.title,width:D1(r),height:d3.height},{default:M0(()=>[C3(d3)&&H3(d3)?(O(),_e(D1(Ke),{key:0,class:"industry-town-column-chart",option:_1(d3),autoresize:!0},null,8,["option"])):C3(d3)?(O(),V("div",UH," 暂无业务统计数据 ")):d3.renderer==="business"?(O(),_e(wn,{key:2,panel:d3,compact:"",onRowSelect:d1},null,8,["panel"])):d3.renderer==="featured"?(O(),V("div",OH,[(O(!0),V(Y3,null,e1(d3.rows,($3,X3)=>(O(),V("button",{key:$3.key,class:o1(["industry-featured-base",{"is-active":v2.value===$3.key}]),type:"button",disabled:!$3.point,"aria-label":`查看${$3.name}`,onClick:P2=>O0($3)},[S("span",zH,l2(`0${X3+1}`),1),S("span",YH,[S("strong",null,l2($3.name),1),S("em",null,l2($3.town)+" · "+l2($3.tag),1),S("small",null,l2($3.summary),1)])],10,jH))),128))])):d3.renderer==="leadershipMode"?(O(),V("div",$H,[(O(!0),V(Y3,null,e1(d3.rows,($3,X3)=>(O(),V("div",{key:$3.key,class:"industry-leadership-mode"},[S("i",{style:o0({color:$3.color,background:$3.color})},null,4),S("span",null,l2(`0${X3+1}`),1),S("div",null,[S("strong",null,l2($3.name),1),S("small",null,l2($3.description),1)])]))),128))])):d3.renderer==="ledger"?(O(),V("div",WH,[(O(!0),V(Y3,null,e1(d3.rows,$3=>(O(),V("div",{key:$3.key,class:"industry-ledger-row"},[S("div",null,[S("strong",null,l2($3.name),1),S("span",null,l2($3.typeName)+" / "+l2($3.town),1)]),S("em",null,l2($3.valueText),1)]))),128))])):U3("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):U3("",!0),G1.value.length?(O(),V("div",VH,[S("div",HH,[(O(!0),V(Y3,null,e1(G1.value,d3=>(O(),_e(U0,{key:d3.key,class:o1(["fgw-side-card industry-side-card right-card",`industry-side-card--${d3.key}`]),title:d3.title,width:D1(r),height:d3.height},{default:M0(()=>[C3(d3)&&H3(d3)?(O(),_e(D1(Ke),{key:0,class:"industry-town-column-chart",option:_1(d3),autoresize:!0},null,8,["option"])):C3(d3)?(O(),V("div",KH," 暂无业务统计数据 ")):d3.renderer==="business"?(O(),_e(wn,{key:2,panel:d3,compact:"",onRowSelect:d1},null,8,["panel"])):d3.renderer==="featured"?(O(),V("div",qH,[(O(!0),V(Y3,null,e1(d3.rows,($3,X3)=>(O(),V("button",{key:$3.key,class:o1(["industry-featured-base",{"is-active":v2.value===$3.key}]),type:"button",disabled:!$3.point,"aria-label":`查看${$3.name}`,onClick:P2=>O0($3)},[S("span",QH,l2(`0${X3+1}`),1),S("span",ZH,[S("strong",null,l2($3.name),1),S("em",null,l2($3.town)+" · "+l2($3.tag),1),S("small",null,l2($3.summary),1)])],10,JH))),128))])):d3.renderer==="leadershipMode"?(O(),V("div",XH,[(O(!0),V(Y3,null,e1(d3.rows,($3,X3)=>(O(),V("div",{key:$3.key,class:"industry-leadership-mode"},[S("i",{style:o0({color:$3.color,background:$3.color})},null,4),S("span",null,l2(`0${X3+1}`),1),S("div",null,[S("strong",null,l2($3.name),1),S("small",null,l2($3.description),1)])]))),128))])):d3.renderer==="ledger"?(O(),V("div",eK,[(O(!0),V(Y3,null,e1(d3.rows,$3=>(O(),V("div",{key:$3.key,class:"industry-ledger-row"},[S("div",null,[S("strong",null,l2($3.name),1),S("span",null,l2($3.typeName)+" / "+l2($3.town),1)]),S("em",null,l2($3.valueText),1)]))),128))])):U3("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):U3("",!0),R3.value?(O(),V("div",tK,[S1(Dr,{modelValue:X2.value,"onUpdate:modelValue":$2[0]||($2[0]=d3=>X2.value=d3),"topic-key":"yak-industry-chain",layers:Z3.value,legends:M1.value,width:248,height:430,multiple:""},null,8,["modelValue","layers","legends"])])):U3("",!0),A2.value&&Q2.value?(O(),V("div",{key:4,class:"industry-map-feature-info",style:o0(U2.value)},[S1(Ia,{feature:A2.value,width:460,height:374},null,8,["feature"])],4)):U3("",!0),i2.value?(O(),V("div",{key:5,class:"industry-point-detail",style:o0(i3.value)},[S("div",nK,[S("span",null,l2(O3.value),1),S("button",{type:"button",title:"关闭",onClick:Z1},"×")]),S("div",aK,l2(V3.value),1),q1.value?(O(),V("div",iK,[S("div",rK,[$2[1]||($2[1]=S("span",null,"基地介绍",-1)),S("strong",null,l2(q1.value.tag),1)]),S("p",null,l2(q1.value.summary),1),q1.value.image?(O(),V("img",{key:0,class:"industry-point-detail__image",src:q1.value.image,alt:`${q1.value.name}项目资料图`},null,8,oK)):U3("",!0),S("div",sK,[(O(!0),V(Y3,null,e1(q1.value.facts,d3=>(O(),V("div",{key:d3.label},[S("span",null,l2(d3.label),1),S("strong",null,l2(d3.value),1),S("small",null,l2(d3.note),1)]))),128))]),S("div",lK,[$2[2]||($2[2]=S("span",null,"示范亮点",-1)),(O(!0),V(Y3,null,e1(q1.value.highlights,d3=>(O(),V("i",{key:d3},l2(d3),1))),128))])])):U3("",!0),S("div",{class:o1(["industry-point-detail__grid",{"is-family-layout":((z3=i2.value)==null?void 0:z3.categoryCode)==="YC-FAMILY-PASTURE"}])},[(O(!0),V(Y3,null,e1(h3.value,d3=>(O(),V("div",{key:d3.label,class:o1(["industry-point-detail__row",{"is-wide":d3.wide}])},[S("span",null,l2(d3.label),1),S("strong",null,l2(d3.value),1)],2))),128))],2)],4)):U3("",!0),S("div",uK,[S1(Fa,{"model-value":F.value,topics:i0.value,"onUpdate:modelValue":D3},null,8,["model-value","topics"])])])}}},dK="/openApi";function fK(t){return/^https?:\/\//.test(t)?t:`${dK}${t.startsWith("/")?t:`/${t}`}`}function hK(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"图表接口请求失败");throw n.code=t==null?void 0:t.code,n}return D0(t)}function mK(a){return L3(this,arguments,function*(t,e=window.location.hash||window.location.pathname,n="智慧管理"){const i=yield zn(fK("/ai/stat/charts"),{params:{question:t,pagePath:e,pageName:n},timeout:12e3}).then(hK);return(Array.isArray(i==null?void 0:i.charts)?i.charts:[]).map(pK).filter(o=>o.rows.length)})}function pK(t,e){const n=Array.isArray(t==null?void 0:t.rows)?t.rows:[];return{id:(t==null?void 0:t.id)||`smart-chart-${e}`,type:gK(t==null?void 0:t.type),title:(t==null?void 0:t.title)||`统计图表${e+1}`,subtitle:yK(t==null?void 0:t.subtitle),unit:(t==null?void 0:t.unit)||"",source:(t==null?void 0:t.source)||{},rows:n.map((a,i)=>({key:(a==null?void 0:a.key)||`${(a==null?void 0:a.name)||"row"}-${i}`,name:String((a==null?void 0:a.name)||`指标${i+1}`),value:vK(a==null?void 0:a.value),rawValue:a==null?void 0:a.value,unit:(a==null?void 0:a.unit)||(t==null?void 0:t.unit)||"",extra:(a==null?void 0:a.extra)||""})).filter(a=>a.name&&Number.isFinite(a.value))}}function gK(t){return["pie","donut"].includes(t)?"pie":["line","trend"].includes(t)?"line":"bar"}function yK(t){const e=String(t||"").trim();return!e||/^(数据)?来源[::]/.test(e)||e.includes("固定展示")?"":e}function vK(t){if(t==null||t==="")return NaN;const e=Number(String(t).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(e)?e:NaN}const Am="智慧管理",SK=80,wK=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:MK},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:AK},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:PK},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:kK},{key:"industry",label:"牦牛产业链",patterns:[/产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:EK}];function bK(n){return L3(this,arguments,function*(t,e={}){var z;const a=Ey(t),i=e.pagePath||window.location.hash||window.location.pathname,r=[],o=mK(a,i,Am).catch(Y=>(r.push(Ny(Y,"辅助图表暂不可用")),[])),s=CK(a),u=yield Promise.all(s.map(Y=>Y.build(a,r))),m=LK(u.flat()),p=yield o,f=s.length===1&&((z=s[0])==null?void 0:z.key)==="overview",g=m.length?m:f?Py():[],C=DK(a,g),F={question:a,pageName:Am,pagePath:i,scope:C,intents:s.map(Y=>({key:Y.key,label:Y.label})),datasets:g,charts:p,notes:IK(g,p,r),warnings:r};return t3(B2({},F),{insights:FK(F)})})}function TK(t={}){const e=Array.isArray(t.datasets)?t.datasets:[],n=Array.isArray(t.insights)?t.insights:[],a=t.scope||"红原县",i=e.slice(0,4).map(s=>s.title).filter(Boolean),r=n.slice(0,5).map(s=>`- ${s.label}:${s.value}${s.note?`(${s.note})`:""}`),o=(t.notes||[]).slice(0,3).map(s=>`- ${s}`);return["**总体情况**",`已按${a}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...i.length?i.map(s=>`- ${s}`):["- 平台综合业务数据"],"",r.length?"**关键数据**":"",...r,"",o.length?"**数据说明**":"",...o].filter(Boolean).join(` -`)}function CK(t){const e=wK.filter(n=>n.patterns.some(a=>a.test(t)));return e.length?e:[{key:"overview",label:"综合总览",build:()=>Py()}]}function Py(){return[C0("home.topStats","首页核心指标",ng,"平台业务汇总数据"),C0("home.heroStats","资源与草畜概览",vL,"平台业务汇总数据"),C0("home.resourceComposition","资源构成",ag,"平台业务汇总数据"),C0("home.businessMatrix","业务矩阵",SL,"平台业务汇总数据"),C0("home.townSynergy","乡镇林草湿与牦牛协同",ig,"平台业务汇总数据"),C0("home.yakTown","首页牦牛乡镇排行",rg,"平台业务汇总数据"),C0("home.trade","首页交易结构",El,"平台业务汇总数据"),C0("home.support","首页支撑产业",bL,"平台业务汇总数据"),C0("home.dataFlow","数据流汇总",TL,"平台业务汇总数据"),C0("home.centerOrbit","首页中心节点",CL,"平台业务汇总数据")]}function AK(n){return L3(this,arguments,function*(t,e=[]){const[a,i,r,o]=yield Promise.allSettled([Bp(),Dp(),Gp(),$R()]);Pi(a,e,"牦牛乡镇存栏数据暂未取得"),Pi(i,e,"牦牛畜群结构数据暂未取得"),Pi(r,e,"牦牛预测数据暂未取得"),Pi(o,e,"牦牛交易数据暂未取得");const s=_K(Mi(a)),u=_m(Mi(i)),m=xK(Mi(r)),p=_m(Mi(o));return[C0("yak.town","乡镇牦牛存栏分布",s,"牦牛管理接口数据"),C0("yak.structureRows","畜群结构数量",u,"牦牛管理接口数据"),C0("yak.forecastRows","牦牛月度预测",m,"牦牛管理接口数据"),C0("yak.tradeImpact","交易影响",p,"牦牛交易接口数据")]})}function Mi(t){return t.status==="fulfilled"&&Array.isArray(t.value)?t.value:[]}function Pi(t,e,n){t.status==="rejected"&&e.push(Ny(t.reason,n))}function _K(t=[]){return t.map((e,n)=>{var r,o,s,u;const a=String(e.name||e.areaName||e.area_name||e.townName||e.zoneName||"").trim(),i=Qu((u=(s=(o=(r=e.count)!=null?r:e.value)!=null?o:e.number)!=null?s:e.yakCount)!=null?u:e.yak_count);return{key:e.key||e.id||e.areaCode||e.area_code||`${a||"yak-town"}-${n}`,name:a,count:i,value:i,unit:e.unit||"头"}}).filter(e=>e.name&&Number.isFinite(e.count)).sort((e,n)=>n.count-e.count)}function _m(t=[]){return t.map((e,n)=>{var r,o,s,u,m;const a=String(e.name||e.label||e.type||e.key||"").trim(),i=Qu((m=(u=(s=(o=(r=e.count)!=null?r:e.value)!=null?o:e.number)!=null?s:e.yakCount)!=null?u:e.headCount)!=null?m:e.amount);return{key:e.key||e.id||`${a||"yak-metric"}-${n}`,name:a,count:i,value:i,unit:e.unit||"头",extra:e.extra||""}}).filter(e=>e.name&&Number.isFinite(e.count)).sort((e,n)=>n.count-e.count)}function xK(t=[]){return t.map((e,n)=>{var r,o,s,u;const a=String(e.name||e.label||e.month||e.date||e.time||"").trim(),i=Qu((u=(s=(o=(r=e.stock)!=null?r:e.count)!=null?o:e.value)!=null?s:e.number)!=null?u:e.yakCount);return{key:e.key||e.id||`${a||"yak-forecast"}-${n}`,name:a,label:a,stock:i,count:i,value:i,unit:e.unit||"头",extra:e.extra||""}}).filter(e=>e.name&&Number.isFinite(e.stock))}function MK(t){const e=NK(t),n=(e==null?void 0:e.name)||"红原县";return[C0("balance.target",`${n}草畜平衡`,[e],"平台业务汇总数据"),C0("balance.county","全县草畜平衡",[Ir],"平台业务汇总数据"),C0("balance.town","乡镇草畜平衡",Ua,"平台业务汇总数据"),C0("balance.fallbackRows","草畜平衡兜底数据",Jp,"平台业务汇总数据"),C0("balance.params","草畜平衡计算参数",[Lr],"平台业务汇总数据")]}function PK(){return[C0("pasture.core","牧户核心指标",Fu,"平台业务汇总数据"),C0("pasture.topStats","牧户顶部指标",yr,"平台业务汇总数据"),C0("pasture.town","牧户乡镇分布",P8,"平台业务汇总数据"),C0("pasture.online","牧户在线率",Bu,"平台业务汇总数据"),C0("pasture.structure","牧户年龄性别结构",Or,"平台业务汇总数据"),C0("pasture.age","牧户年龄结构",Zg,"平台业务汇总数据"),C0("pasture.gender","牧户性别结构",Du,"平台业务汇总数据"),C0("pasture.list","牧户示例列表",k8,"平台业务汇总数据"),C0("pasture.grassland","牧户草场资源",Xg,"平台业务汇总数据"),C0("pasture.season","牧户季节草场",YW,"平台业务汇总数据"),C0("pasture.map","牧户地图统计",ey,"平台业务汇总数据")]}function kK(){return[C0("ecology.parkTopStats","生态保护核心指标",zg,"平台业务汇总数据"),C0("ecology.parkCore","国家公园核心指标",Cj,"平台业务汇总数据"),C0("ecology.parkTownRows","国家公园乡镇数据",Gn,"平台业务汇总数据"),C0("ecology.restorationTopStats","生态修复项目汇总",Yg,"平台业务汇总数据"),C0("ecology.engineeringTopStats","生态工程分析指标",Dj,"平台业务汇总数据"),C0("ecology.engineeringProjectFeatures","工程分析项目点",Uj,"平台业务汇总数据"),C0("ecology.parkPanels","生态保护图表数据",nl($g),"平台业务汇总数据"),C0("ecology.restorationPanels","生态修复图表数据",nl(Hg),"平台业务汇总数据"),C0("ecology.engineeringAnalysisPanels","工程分析图表数据",nl(Kg),"平台业务汇总数据"),C0("home.resourceComposition","林草湿资源构成",ag,"平台业务汇总数据"),C0("home.townSynergy","乡镇林草湿与牦牛协同",ig,"平台业务汇总数据")]}function EK(){return[C0("industry.topStats","产业链核心指标",zV,"平台业务汇总数据"),C0("industry.overview","产业链总览",YV,"平台业务汇总数据"),C0("industry.stageComposition","产业阶段构成",$V,"平台业务汇总数据"),C0("industry.stageRows","产业阶段说明",Sr,"平台业务汇总数据"),C0("industry.breedingLevel","养殖水平",gy,"平台业务汇总数据"),C0("industry.forageSecurity","饲草保障能力",yy,"平台业务汇总数据"),C0("industry.value","产业价值指标",vy,"平台业务汇总数据"),C0("industry.processingAbility","加工能力指标",WV,"平台业务汇总数据"),C0("industry.serviceCapability","服务能力指标",VV,"平台业务汇总数据"),C0("industry.financial","金融服务",XV,"平台业务汇总数据"),C0("industry.supportPoints","饲草储备点位",UV,"平台业务汇总数据"),C0("industry.processingPoints","加工屠宰点位",OV,"平台业务汇总数据"),C0("industry.points","产业链点位",jV,"平台业务汇总数据"),C0("industry.list","产业链主体列表",Ea,"平台业务汇总数据")]}function NK(t){return Ua.find(e=>ky(t,e.name))||Ir}function C0(t,e,n,a){return{id:t,title:e,suggestedView:GK(e,n),source:{label:a||"平台展示数据"},rows:RK(n)}}function RK(t){return(Array.isArray(t)?t:[]).slice(0,SK).map(e=>ql(e)).filter(e=>e&&typeof e=="object")}function ql(t,e=0){return e>4||t===void 0||typeof t=="function"?null:t===null||["string","number","boolean"].includes(typeof t)?t:Array.isArray(t)?t.slice(0,30).map(n=>ql(n,e+1)):typeof t=="object"?Object.entries(t).reduce((n,[a,i])=>(["icon","color","tone","image","cover","component"].includes(a)||(n[a]=ql(i,e+1)),n),{}):String(t)}function LK(t=[]){const e=new Set;return t.filter(n=>{var a;return!((a=n==null?void 0:n.rows)!=null&&a.length)||e.has(n.id)?!1:(e.add(n.id),!0)})}function IK(t,e,n){return[...n].filter(Boolean)}function FK(t){const e=[];return(t.datasets||[]).some(n=>{const a=BK(n);return a&&e.push(a),e.length>=5}),(t.charts||[]).some(n=>{var u,m;const a=(n.rows||[]).filter(p=>Number.isFinite(Number(p.value)));if(!a.length)return!1;const i=a.slice().sort((p,f)=>Number(f.value||0)-Number(p.value||0)),r=n.unit==="%"||/率|占比|比例/.test(n.title||""),o=r?(u=i[0])==null?void 0:u.value:a.reduce((p,f)=>p+Number(f.value||0),0),s=r&&((m=i[0])!=null&&m.name)?`${n.title||"关联图表"}:${i[0].name}`:n.title||"关联图表";return e.push({label:s,value:`${Ry(o)}${n.unit||""}`,note:a.length>1?r?"数值较高项":`覆盖 ${a.length} 项`:""}),e.length>=5}),e.slice(0,5)}function BK(t){var o,s,u,m;const e=(t.rows||[]).find(Boolean);if(!e)return null;const n=e.name||e.areaName||e.zh||e.label||t.title,a=e.overloadRate!==void 0||e.overloadrate!==void 0,i=a?(o=e.overloadRate)!=null?o:e.overloadrate:(m=(u=(s=e.value)!=null?s:e.yakNumber)!=null?u:e.livestockCapacity)!=null?m:e.areaRange;if(i==null||i==="")return null;const r=e.unit||(a?"%":e.yakNumber!==void 0||e.livestockCapacity!==void 0?"头":"");return{label:a?`${n}超载率`:n,value:`${Ry(i)}${r}`,note:a&&e.level||t.title}}function nl(t={}){return Object.entries(t||{}).flatMap(([e,n])=>(Array.isArray(n)?n:[]).flatMap(a=>(Array.isArray(a==null?void 0:a.rows)?a.rows:Array.isArray(a==null?void 0:a.data)?a.data:[]).map(r=>B2({groupKey:e,panelKey:a.key,panelTitle:a.title},r))))}function DK(t,e){var i,r;const n=Ua.find(o=>ky(t,o.name));if(n)return n.name;const a=(r=(i=e.find(o=>o.id==="balance.target"))==null?void 0:i.rows)==null?void 0:r[0];return a!=null&&a.name?a.name:a!=null&&a.areaName?a.areaName:"红原县"}function GK(t,e){return!Array.isArray(e)||e.length<=1?"metrics":/结构|构成|占比|比例/.test(t)?"pie":/趋势|预测/.test(t)?"line":"bar-table"}function ky(t,e){const n=Ey(t),a=String(e||"").replace(/(县|镇|村|乡|牧场|牧户|联户)$/g,"");return!!(e&&(n.includes(e)||a&&n.includes(a)))}function Ey(t){return String(t||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛").trim()}function Ny(t,e){const n=String((t==null?void 0:t.message)||"");return(t==null?void 0:t.code)===401||(t==null?void 0:t.code)==="401"||/未登录|授权|Unauthorized|HTTP 401/i.test(n)?"当前登录状态已失效,部分接口数据未取得":/timeout|timed out|超时/i.test(n)?`${e},接口响应超时`:e}function Qu(t){if(t==null||t==="")return NaN;const e=Number(String(t).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(e)?e:NaN}function Ry(t){const e=Number(String(t).replace(/,/g,""));return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:2}):t||"--"}const UK="/openApi",OK=12e4,jK=8e3,zK=12,YK=500;function $K(t){return/^https?:\/\//.test(t)?t:`${UK}${t.startsWith("/")?t:`/${t}`}`}function WK(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.message)||(t==null?void 0:t.msg)||"HTML界面生成失败");throw n.code=t==null?void 0:t.code,n}return D0(t)}function VK(){return L3(this,arguments,function*({question:t,answer:e="",charts:n=[],datasets:a=[],context:i=null,pagePath:r=window.location.hash||window.location.pathname,pageName:o="智慧管理"}={}){const s=HK({question:t,answer:e,charts:n,datasets:a,context:i}),u=yield zn($K("/ai/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:t,pagePath:r,pageName:o,dataJson:s}),timeout:11e4}).then(WK),m=String((u==null?void 0:u.provider)||""),p=String((u==null?void 0:u.model)||"");if(m.toLowerCase()!=="deepseek"||!p.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const f=QK((u==null?void 0:u.html)||(u==null?void 0:u.content)||u);if(!f)throw new Error("代码模型没有返回完整HTML");if(ZK(f))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return t3(B2({},u),{html:f})})}function HK({question:t,answer:e,charts:n,datasets:a,context:i}){const r={question:String(t||"").trim(),generatedAt:new Date().toISOString(),presentation:{format:"business-report",requirements:["输出应为业务报告页面,而不是原始数据表或字段清单。","不要直接展示 key、rawValue、areaCode、areaRange 等技术字段名。","页面需包含结论、关键指标、图表化对比、重点对象和工作建议。"]},answer:String(e||"").slice(0,jK),context:KK(i),datasets:[...qK(n),...JK(a)]},o=JSON.stringify(r);if(o.length>OK){const s=new Error("汇总数据超过120000字符,请先缩小查询范围");throw s.code="ARTIFACT_DATA_TOO_LARGE",s}return o}function KK(t){if(!t||typeof t!="object")return null;const{question:e,pageName:n,pagePath:a,scope:i,intents:r,notes:o,warnings:s,insights:u}=t;return br({question:e,pageName:n,pagePath:a,scope:i,intents:r,notes:o,warnings:s,insights:u})}function qK(t=[]){return(Array.isArray(t)?t:[]).slice(0,6).map((e,n)=>({id:(e==null?void 0:e.id)||`chart-${n+1}`,title:(e==null?void 0:e.title)||`统计数据${n+1}`,suggestedView:(e==null?void 0:e.type)||"bar",unit:(e==null?void 0:e.unit)||"",subtitle:(e==null?void 0:e.subtitle)||"",source:(e==null?void 0:e.source)||{},rows:Ly(e==null?void 0:e.rows)}))}function JK(t=[]){return(Array.isArray(t)?t:[]).slice(0,zK).map((e,n)=>({id:(e==null?void 0:e.id)||`dataset-${n+1}`,title:(e==null?void 0:e.title)||(e==null?void 0:e.name)||`汇总数据${n+1}`,suggestedView:(e==null?void 0:e.suggestedView)||(e==null?void 0:e.type)||"auto",unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:Ly((e==null?void 0:e.rows)||(e==null?void 0:e.data)||e)}))}function Ly(t){return(Array.isArray(t)?t:[]).slice(0,YK).map(e=>br(e))}function br(t,e=0){return e>4||t===void 0||typeof t=="function"?null:t===null||["string","number","boolean"].includes(typeof t)?t:Array.isArray(t)?t.slice(0,50).map(n=>br(n,e+1)):typeof t=="object"?Object.entries(t).reduce((n,[a,i])=>(n[a]=br(i,e+1),n),{}):String(t)}function QK(t){let e=String(t||"").trim();e.startsWith("```")&&(e=e.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const n=e.match(/");return n&&a>=n.index&&(e=e.slice(n.index,a+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),a=(e.match(/n.includes(o)).length;return a>=2&&r>=4||a>=1&&r>=6}const XK=["default-src 'none'","script-src 'unsafe-inline'","style-src 'unsafe-inline'","img-src data: blob:","font-src data:","connect-src 'none'","media-src 'none'","frame-src 'none'","object-src 'none'","base-uri 'none'","form-action 'none'"].join("; "),eq=["iframe","object","embed","form","base","meta[http-equiv='refresh' i]","script[src]","link[href]"];function tq(t){const e=String(t||"").trim();if(!e||typeof DOMParser=="undefined")return"";const n=new DOMParser().parseFromString(e,"text/html");n.querySelectorAll(eq.join(",")).forEach(o=>o.remove()),n.querySelectorAll("*").forEach(o=>nq(o));const a=n.head.querySelector("meta[http-equiv='Content-Security-Policy' i]");a==null||a.remove();const i=n.createElement("meta");i.setAttribute("http-equiv","Content-Security-Policy"),i.setAttribute("content",XK),n.head.prepend(i);const r=n.createElement("script");return r.textContent=` - (() => { - const notify = (type, message = "") => { - window.parent.postMessage({ source: "smart-artifact", type, message: String(message).slice(0, 240) }, "*"); - }; - window.addEventListener("error", (event) => notify("runtime-error", event.message || "界面运行异常")); - window.addEventListener("unhandledrejection", (event) => notify("runtime-error", event.reason?.message || event.reason || "界面运行异常")); - window.addEventListener("DOMContentLoaded", () => notify("ready")); - })(); - `,i.after(r),` -${n.documentElement.outerHTML}`}function nq(t){Array.from(t.attributes||[]).forEach(e=>{const n=e.name.toLowerCase(),a=String(e.value||"").trim();if(n.startsWith("on")||n==="target"){t.removeAttribute(e.name);return}["href","xlink:href","src","action","formaction"].includes(n)&&(a.startsWith("#")||a.startsWith("data:")||a.startsWith("blob:")||t.removeAttribute(e.name))})}const aq={class:"wisdom-management"},iq={key:0,class:"wisdom-side wisdom-side-left"},rq={key:0,class:"wisdom-side-header"},oq={key:0},sq={key:1,class:"wisdom-side-metrics"},lq={key:0},uq=["innerHTML"],cq={key:3,class:"wisdom-side-actions"},dq=["disabled","onClick"],fq={key:1,class:"wisdom-side wisdom-side-right"},hq={key:0,class:"wisdom-side-header"},mq={key:0},pq={key:2,class:"wisdom-side-metrics"},gq={key:0},yq=["innerHTML"],vq={key:4,class:"wisdom-side-actions"},Sq=["disabled","onClick"],wq={key:2,class:"wisdom-artifact-workspace"},bq={class:"wisdom-artifact-header"},Tq={class:"wisdom-artifact-heading"},Cq={class:"wisdom-artifact-tools"},Aq=["disabled"],_q={class:"wisdom-artifact-body"},xq={key:0,class:"wisdom-artifact-building"},Mq={class:"wisdom-artifact-building__intro"},Pq=["srcdoc"],kq={key:2,class:"wisdom-artifact-error"},Eq=["disabled"],Nq={key:0,class:"wisdom-empty-state"},Rq={key:0,class:"wisdom-message-mark"},Lq={class:"wisdom-bubble"},Iq={key:0,class:"wisdom-digesting"},Fq=["innerHTML"],Bq={key:2,class:"wisdom-stream-caret"},Dq={key:3,class:"wisdom-suggestion-list"},Gq=["disabled","onClick"],Uq={class:"wisdom-input-shell"},Oq=["disabled"],jq=["disabled","title","aria-label"],zq=["disabled"],Yq={key:0,class:"wisdom-button-loading"},$q="请输入需要了解的业务事项,系统将依据平台汇总数据形成要点分析和专题页面。",Wq={__name:"index",props:{active:{type:Boolean,default:!0}},setup(t){const e=$C({loader:()=>WC(()=>import("./SmartChartRenderer-4a1f392b-1783995319167.js"),["./SmartChartRenderer-4a1f392b-1783995319167.js","./index-1783995319167.js","./index-6fef048d-balabala-1783995319167.css","./chartTheme-0e0a1707-1783995319167.js","./chartTheme-73f6d8d0-balabala-1783995319167.css","./SmartChartRenderer-7a3a96b9-balabala-1783995319167.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),n=t,a=a3(""),i=a3([]),r=a3(!1),o=a3(null),s=a3(null),u=a3([]),m=a3([]),p=a3(Q2()),f=r2(()=>p.value.status!=="idle"),g=r2(()=>["collecting","generating"].includes(p.value.status)),C=r2(()=>p.value.status==="collecting"?"汇总数据":p.value.status==="generating"?"生成页面":p.value.status==="ready"?"DeepSeek生成":p.value.status==="error"?"生成失败":p.value.status==="waiting"?"等待选择":"待生成"),F=a3(!1),z=a3(!1),Y=a3("");let i2=null,v2=null,y2=0;const A2=a3(null);jn(()=>{Z3(),window.addEventListener("message",_3)}),On(()=>{U2(),b1(),y2+=1,window.removeEventListener("message",_3)}),ie(()=>n.active,S3=>{S3||(U2(),b1(),y2+=1,r.value=!1,i.value=i.value.map(E=>E.streaming?t3(B2({},E),{streaming:!1,digesting:!1}):E))});function S2(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function Q2(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function X2(S3){y2+=1,A2.value=null,p.value=t3(B2({},Q2()),{status:"collecting",title:c3(S3),question:S3})}function c3(S3){const E=String(S3||"动态分析").replace(/[??。!!]+$/g,"").trim();return E.length>28?`${E.slice(0,28)}...`:E||"动态分析"}function p3(S3){return L3(this,null,function*(){const E={question:(S3==null?void 0:S3.question)||p.value.question,answer:(S3==null?void 0:S3.answer)||"",charts:Array.isArray(S3==null?void 0:S3.charts)?S3.charts:[],datasets:Array.isArray(S3==null?void 0:S3.datasets)?S3.datasets:[],context:(S3==null?void 0:S3.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};A2.value=E;const C3=++y2;p.value=t3(B2({},p.value),{status:"generating",title:c3(E.question),question:E.question,html:"",error:"",model:""});try{const H3=yield VK(E);if(C3!==y2)return{stale:!0};const _1=tq(H3.html);if(!_1)throw new Error("生成页面未通过安全检查");return p.value=t3(B2({},p.value),{status:"ready",html:_1,error:"",model:H3.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:H3}}catch(H3){if(C3!==y2)return{stale:!0};const _1=V3(H3,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",H3),p.value=t3(B2({},p.value),{status:"error",html:"",error:_1,model:"",renderKey:Date.now()}),{ok:!1,message:_1,error:H3}}})}function l3(){!A2.value||g.value||p3(A2.value)}function b3(S3){y2+=1,p.value=t3(B2({},p.value),{status:"error",html:"",error:S3,renderKey:Date.now()})}function N3(){p.value.status!=="ready"&&(p.value=t3(B2({},p.value),{status:"ready"}))}function _3(S3){var E,C3;S3.source!==((E=s.value)==null?void 0:E.contentWindow)||((C3=S3.data)==null?void 0:C3.source)!=="smart-artifact"||S3.data.type==="runtime-error"&&(p.value=t3(B2({},p.value),{status:"error",html:"",error:S3.data.message||"生成界面运行异常",renderKey:Date.now()}))}function J3(S3){return String(S3||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function R3(S3){return J3(S3).trim()}function Z3(){if(typeof window=="undefined")return;const S3=window.SpeechRecognition||window.webkitSpeechRecognition;F.value=!!S3,S3&&(v2=new S3,v2.lang="zh-CN",v2.continuous=!1,v2.interimResults=!0,v2.maxAlternatives=1,v2.onstart=()=>{z.value=!0,Y.value=""},v2.onresult=E=>{const H3=Array.from(E.results||[]).map(_1=>{var s1;return((s1=_1==null?void 0:_1[0])==null?void 0:s1.transcript)||""}).join("").trim();H3&&(a.value=H3)},v2.onerror=E=>{z.value=!1,Y.value=(E==null?void 0:E.error)||"语音输入失败"},v2.onend=()=>{z.value=!1})}function M1(){if(!(!v2||r.value)){if(z.value){b1();return}try{Y.value="",v2.start()}catch(S3){Y.value=(S3==null?void 0:S3.message)||"语音输入启动失败",z.value=!1}}}function b1(){if(!(!v2||!z.value))try{v2.stop()}catch(S3){Y.value=(S3==null?void 0:S3.message)||"语音输入已结束"}finally{z.value=!1}}function j1(){return L3(this,arguments,function*(S3=a.value){const E=R3(S3);if(!E||r.value)return;b1();const C3={id:S2(),role:"user",text:E},H3={id:S2(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};i.value=[...i.value,C3,H3],a.value="",r.value=!0,X2(E),yield A1(),yield a1(E,H3.id)})}function a1(S3,E){return L3(this,null,function*(){var C3;h3(E,{digestText:"生成中"});try{const H3=window.location.hash||window.location.pathname,_1=yield bK(S3,{pagePath:H3}),s1=TK(_1),B1=(C3=_1.insights)!=null&&C3.length?_1.insights:q1(_1.charts||[]);h3(E,{digesting:!0,digestText:"生成中",insights:B1,suggestions:[],allowFollowUp:!0}),i0({question:S3,answer:s1,charts:_1.charts||[],insights:B1,suggestions:[]}),O3(E,G1()),p3({question:S3,answer:s1,charts:_1.charts||[],datasets:_1.datasets||[],context:_1})}catch(H3){const _1=V3(H3,"上下文数据整理失败,请稍后重试。");i0({question:S3,answer:_1,charts:[],insights:[],suggestions:[]}),b3(_1),O3(E,_1)}})}function G1(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` -`)}function s0(S3){const E=Number(String(S3).replace(/,/g,""));return Number.isFinite(E)?E.toLocaleString("zh-CN",{maximumFractionDigits:2}):S3||"--"}function i0({question:S3,answer:E,charts:C3=[],insights:H3=[],suggestions:_1=[],aiPanels:s1}={}){const B1=(s1==null?void 0:s1.leftPanels)||[],U1=(s1==null?void 0:s1.rightPanels)||[];if(B1.length||U1.length){u.value=B1,m.value=U1;return}const R1=r0({question:S3,answer:E,charts:C3,insights:H3,suggestions:_1});u.value=R1.left,m.value=R1.right}function r0({question:S3,answer:E,charts:C3=[],insights:H3=[],suggestions:_1=[]}={}){const s1=[],B1=[],U1=(H3.length?H3:q1(C3)).map(R1=>({label:R1.label,value:R1.value,note:R1.note}));return!C3.length&&!U1.length?{left:s1,right:B1}:(U1.length&&s1.push({id:`summary-${S2()}`,type:"metrics",kicker:"数据要点",title:"数据摘要",badge:"实时",items:U1.slice(0,4),actions:[]}),C3.slice(0,2).forEach((R1,N1)=>{B1.push({id:`chart-${R1.id||N1}-${S2()}`,type:"chart",kicker:N1===0?"可视分析":"关联图表",title:R1.title||`统计图表${N1+1}`,badge:R1.unit||"",chart:R1,items:[],actions:[],text:""})}),{left:s1.slice(0,2),right:B1.slice(0,2)})}function q1(S3=[]){const E=[];return S3.slice(0,2).forEach(C3=>{var G0;const H3=(C3.rows||[]).map(T0=>t3(B2({},T0),{value:Number(T0.value)})).filter(T0=>T0.name&&Number.isFinite(T0.value));if(!H3.length)return;const _1=C3.unit||((G0=H3.find(T0=>T0.unit))==null?void 0:G0.unit)||"",s1=H3.slice().sort((T0,S0)=>S0.value-T0.value),B1=H3.reduce((T0,S0)=>T0+S0.value,0),U1=B1/H3.length,R1=s1[0],N1=s1[s1.length-1];E.push({label:"最高",value:`${R1.name} ${s0(R1.value)}${_1}`,note:C3.title}),H3.length>2&&E.push({label:C3.type==="pie"?"占比项":"最低",value:`${N1.name} ${s0(N1.value)}${_1}`,note:C3.type==="pie"?"最小结构项":"低值区域"}),E.push({label:"合计",value:`${s0(B1)}${_1}`,note:H3.length>1?`覆盖 ${H3.length} 项`:C3.title}),C3.type!=="pie"&&H3.length>1&&E.push({label:"均值",value:`${s0(U1)}${_1}`,note:"按当前图表项计算"})}),E.slice(0,4)}function h3(S3,E,C3=!0){i.value=i.value.map(H3=>H3.id===S3?B2(B2({},H3),E):H3),C3&&A1()}function O3(S3,E){h3(S3,{digesting:!1}),i3(S3,E)}function V3(S3,E){const C3=String((S3==null?void 0:S3.message)||"");return(S3==null?void 0:S3.code)===401||(S3==null?void 0:S3.code)==="401"||(S3==null?void 0:S3.code)==="HTTP_401"||/未登录|授权|Unauthorized|HTTP 401/i.test(C3)?"当前登录状态已失效,请重新登录后查询。":(S3==null?void 0:S3.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(C3)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(S3==null?void 0:S3.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(C3)?"本次分析已中断,请重新提交。":(S3==null?void 0:S3.code)==="HTTP_404"||(S3==null?void 0:S3.status)===404||/HTTP 404/i.test(C3)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(C3)||/[a-zA-Z]{4,}/.test(C3)?E:C3||E}function i3(S3,E){U2();const C3=J3(E),H3=C3.length>1200?36:C3.length>700?24:14;let _1=0;h3(S3,{fullText:C3,visibleText:"",streaming:!0,charts:[]});const s1=()=>{if(_1=Math.min(_1+H3,C3.length),h3(S3,{visibleText:C3.slice(0,_1),streaming:_1=C3.length){i2=null,r.value=!1;return}i2=window.setTimeout(s1,18)};i2=window.setTimeout(s1,0)}function U2(){i2&&(window.clearTimeout(i2),i2=null)}function D3(S3){const E=u1(S3).split(/\r?\n/),C3=[];let H3=[],_1=!1;const s1=()=>{H3.length&&(C3.push(`<${_1?"ol":"ul"}>${H3.map(B1=>`
  • ${F3(B1)}
  • `).join("")}`),H3=[],_1=!1)};return E.forEach(B1=>{const U1=B1.trim();if(!U1){s1();return}const R1=U1.match(/^#{1,4}\s+(.+)$/)||U1.match(/^\*\*(.+)\*\*$/);if(R1){s1(),C3.push(`

    ${F3(R1[1])}

    `);return}const N1=U1.match(/^\d+[.)、]\s+(.+)$/),G0=U1.match(/^[-*]\s+(.+)$/);if(N1||G0){const T0=!!N1;H3.length&&_1!==T0&&s1(),_1=T0,H3.push(N1?N1[1]:G0[1]);return}s1(),C3.push(`

    ${F3(U1)}

    `)}),s1(),C3.join("")}function F3(S3){return S3.replace(/\*\*([^*]+)\*\*/g,"$1")}function u1(S3){return String(S3||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function A1(){return L3(this,null,function*(){yield ae(),window.requestAnimationFrame(()=>{o.value&&(o.value.scrollTop=o.value.scrollHeight)})})}return(S3,E)=>(O(),V("div",aq,[E[17]||(E[17]=fa('',1)),u.value.length&&!f.value?(O(),V("aside",iq,[(O(!0),V(Y3,null,e1(u.value,C3=>{var H3,_1;return O(),V("section",{key:C3.id,class:o1(["wisdom-side-panel",`is-${C3.type}`])},[C3.chart?U3("",!0):(O(),V("header",rq,[S("div",null,[S("span",null,l2(C3.kicker),1),S("strong",null,l2(C3.title),1)]),C3.badge?(O(),V("em",oq,l2(C3.badge),1)):U3("",!0)])),(H3=C3.items)!=null&&H3.length?(O(),V("div",sq,[(O(!0),V(Y3,null,e1(C3.items,s1=>(O(),V("div",{key:`${C3.id}-${s1.label}`,class:"wisdom-side-metric"},[S("span",null,l2(s1.label),1),S("strong",null,l2(s1.value),1),s1.note?(O(),V("em",lq,l2(s1.note),1)):U3("",!0)]))),128))])):U3("",!0),C3.text?(O(),V("div",{key:2,class:"wisdom-side-text",innerHTML:D3(C3.text)},null,8,uq)):U3("",!0),(_1=C3.actions)!=null&&_1.length?(O(),V("div",cq,[(O(!0),V(Y3,null,e1(C3.actions,s1=>(O(),V("button",{key:s1.question,type:"button",disabled:r.value,onClick:B1=>j1(s1.question)},l2(s1.label),9,dq))),128))])):U3("",!0)],2)}),128))])):U3("",!0),m.value.length&&!f.value?(O(),V("aside",fq,[(O(!0),V(Y3,null,e1(m.value,C3=>{var H3,_1;return O(),V("section",{key:C3.id,class:o1(["wisdom-side-panel",`is-${C3.type}`])},[C3.chart?U3("",!0):(O(),V("header",hq,[S("div",null,[S("span",null,l2(C3.kicker),1),S("strong",null,l2(C3.title),1)]),C3.badge?(O(),V("em",mq,l2(C3.badge),1)):U3("",!0)])),C3.chart?(O(),_e(D1(e),{key:1,class:"wisdom-side-chart",chart:C3.chart},null,8,["chart"])):U3("",!0),(H3=C3.items)!=null&&H3.length?(O(),V("div",pq,[(O(!0),V(Y3,null,e1(C3.items,s1=>(O(),V("div",{key:`${C3.id}-${s1.label}`,class:"wisdom-side-metric"},[S("span",null,l2(s1.label),1),S("strong",null,l2(s1.value),1),s1.note?(O(),V("em",gq,l2(s1.note),1)):U3("",!0)]))),128))])):U3("",!0),C3.text?(O(),V("div",{key:3,class:"wisdom-side-text",innerHTML:D3(C3.text)},null,8,yq)):U3("",!0),(_1=C3.actions)!=null&&_1.length?(O(),V("div",vq,[(O(!0),V(Y3,null,e1(C3.actions,s1=>(O(),V("button",{key:s1.question,type:"button",disabled:r.value,onClick:B1=>j1(s1.question)},l2(s1.label),9,Sq))),128))])):U3("",!0)],2)}),128))])):U3("",!0),f.value?(O(),V("section",wq,[S("header",bq,[S("div",Tq,[E[4]||(E[4]=S("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),S("div",null,[E[3]||(E[3]=S("small",null,"专题分析",-1)),S("strong",null,l2(p.value.title),1)])]),S("div",Cq,[S("span",{class:o1(["wisdom-artifact-status",`is-${p.value.status}`])},[E[5]||(E[5]=S("i",null,null,-1)),Ae(l2(C.value),1)],2),p.value.status==="ready"||p.value.status==="error"?(O(),V("button",{key:0,type:"button",disabled:g.value||!A2.value,title:"重新生成当前界面",onClick:l3}," 重新生成 ",8,Aq)):U3("",!0)])]),S("div",_q,[g.value?(O(),V("div",xq,[S("div",Mq,[E[6]||(E[6]=S("span",{class:"wisdom-artifact-building__spinner"},null,-1)),S("div",null,[S("strong",null,l2(p.value.status==="collecting"?"正在汇总业务数据":"正在生成专题分析页面"),1)])]),E[7]||(E[7]=fa('
    ',3))])):p.value.html?(O(),V("iframe",{key:p.value.renderKey,ref_key:"artifactFrameRef",ref:s,class:"wisdom-artifact-frame",srcdoc:p.value.html,sandbox:"allow-scripts",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:N3},null,40,Pq)):(O(),V("div",kq,[E[8]||(E[8]=S("strong",null,"专题分析页面暂未生成",-1)),S("p",null,l2(p.value.error||"当前数据不足以形成专题分析页面。"),1),S("button",{type:"button",disabled:!A2.value,onClick:l3},"重新生成",8,Eq)]))])])):U3("",!0),S("main",{class:o1(["wisdom-chat",{"has-artifact":f.value}])},[S("div",{ref_key:"dialogueRef",ref:o,class:o1(["wisdom-dialogue",{"is-empty":!i.value.length}])},[i.value.length?U3("",!0):(O(),V("section",Nq,[E[9]||(E[9]=S("div",{class:"wisdom-empty-mark"},[S("span"),S("strong",null,"AI")],-1)),E[10]||(E[10]=S("h2",null,"智慧辅助分析",-1)),S("p",null,l2($q))])),(O(!0),V(Y3,null,e1(i.value,C3=>{var H3;return O(),V("article",{key:C3.id,class:o1(["wisdom-message",`is-${C3.role}`])},[C3.role==="assistant"?(O(),V("div",Rq,[...E[11]||(E[11]=[S("span",null,"智",-1)])])):U3("",!0),S("div",Lq,[C3.role==="user"?(O(),V(Y3,{key:0},[Ae(l2(C3.text),1)],64)):(O(),V(Y3,{key:1},[C3.digesting?(O(),V("div",Iq,[E[12]||(E[12]=S("span",null,null,-1)),E[13]||(E[13]=S("span",null,null,-1)),E[14]||(E[14]=S("span",null,null,-1)),S("em",null,l2(C3.digestText||"正在汇总分析"),1)])):U3("",!0),C3.visibleText?(O(),V("div",{key:1,class:"wisdom-answer",innerHTML:D3(C3.visibleText)},null,8,Fq)):U3("",!0),C3.streaming?(O(),V("span",Bq)):U3("",!0),(H3=C3.suggestions)!=null&&H3.length&&(C3.allowFollowUp||!C3.digesting&&!C3.streaming)?(O(),V("div",Dq,[(O(!0),V(Y3,null,e1(C3.suggestions,_1=>(O(),V("button",{key:_1.question,type:"button",disabled:r.value,onClick:s1=>j1(_1.question)},l2(_1.label),9,Gq))),128))])):U3("",!0)],64))])],2)}),128))],2),S("form",{class:"wisdom-input-bar",onSubmit:E[2]||(E[2]=ue(C3=>j1(),["prevent"]))},[S("div",Uq,[E[16]||(E[16]=S("span",{class:"wisdom-input-icon"},null,-1)),qe(S("input",{"onUpdate:modelValue":E[0]||(E[0]=C3=>a.value=C3),disabled:r.value,autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:E[1]||(E[1]=Bt(ue(C3=>j1(),["prevent"]),["enter"]))},null,40,Oq),[[s5,a.value]]),S("button",{type:"button",class:o1(["wisdom-voice-button",{"is-listening":z.value}]),disabled:r.value||!F.value,title:F.value?z.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":F.value?z.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:M1},[...E[15]||(E[15]=[S("span",null,null,-1)])],10,jq),S("button",{class:"wisdom-submit-button",type:"submit",disabled:r.value||!a.value.trim()},[r.value?(O(),V("span",Yq)):U3("",!0),S("span",null,l2(r.value?"分析中":"发送"),1)],8,zq)])],32)],2)]))}},da=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛产业全链",bottomLabel:"产业全链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function Vq(t){return da.find(e=>e.key===t)||da[1]}const Hq="/jsyApi",Kq={}.VITE_AMAP_WEATHER_KEY||"b72b3e3b2023760dae2cdf2e00561812",qq="513233";function Jq(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code))throw new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"天气接口请求失败");return D0(t)}function Iy(t){var o,s,u,m;const e=(s=(o=t==null?void 0:t.data)!=null?o:t==null?void 0:t.result)!=null?s:t,n=Array.isArray(e)?e[0]:Array.isArray(e==null?void 0:e.rows)?e.rows[0]:Array.isArray(e==null?void 0:e.list)?e.list[0]:e;if(!n||typeof n!="object")return null;const a=(...p)=>p.find(f=>f!=null&&f!==""),i=a(n.temp,n.temperature,n.temperature_float,n.tempDay,n.temperatureDay),r=a(n.humidity,n.humidity_float,n.pop,n.relativeHumidity);return{condition:n.conditionDay||n.condition||n.weather||n.weatherText||"",temperature:i==null||i===""?"--":i,humidity:r==null||r===""?"--":r,windDirection:n.windDir||n.windDirection||"",windLevel:n.windLevel||n.windScale||n.windPower||"",icon:(m=(u=n.icon)!=null?u:n.weatherIcon)!=null?m:null}}function Qq(t){return L3(this,null,function*(){const e=yield zn(`${Hq}${t}`,{timeout:8e3});return Iy(Jq(e))})}function Zq(){return new Promise((t,e)=>{const n=`__hongyuanWeather${Date.now()}${Math.random().toString(16).slice(2)}`,a=document.createElement("script"),i=()=>{window.clearTimeout(r),a.remove(),delete window[n]},r=window.setTimeout(()=>{i(),e(new Error("高德天气接口响应超时"))},8e3);window[n]=s=>{var m;const u=(m=s==null?void 0:s.lives)==null?void 0:m[0];if(i(),!u){e(new Error((s==null?void 0:s.info)||"高德天气暂无数据"));return}t(Iy(u))},a.onerror=()=>{i(),e(new Error("高德天气接口加载失败"))};const o=new URLSearchParams({city:qq,key:Kq,extensions:"base",output:"JSON",callback:n});a.src=`https://restapi.amap.com/v3/weather/weatherInfo?${o}`,document.head.appendChild(a)})}function Xq(){return L3(this,null,function*(){const t=["/api/home/realTimeWeather","/api/home/weatherForecast"];let e=null;for(const n of t)try{const a=yield Qq(n);if(a)return a}catch(a){e=a}try{const n=yield Zq();if(n)return n}catch(n){e=n}throw e||new Error("天气数据暂不可用")})}const eJ={key:0,class:"platform-module-pane"},tJ={key:1,class:"platform-module-pane"},nJ={key:2,class:"platform-module-pane"},aJ={key:3,class:"platform-module-pane"},iJ={key:4,class:"platform-module-pane"},rJ={key:5,class:"platform-module-pane"},oJ={key:6,class:"platform-module-pane"},sJ={key:7,class:"platform-module-pane"},lJ={class:"large-screen-wrap"},uJ={class:"m-header-tools"},cJ=["src","alt"],dJ={key:1,class:"platform-weather__fallback-icon","aria-hidden":"true"},fJ={class:"platform-weather__copy"},hJ={class:"platform-weather__primary"},mJ={key:0},pJ={key:0},gJ={key:0},yJ={key:1,"aria-hidden":"true"},vJ={key:2},SJ={class:"platform-datetime","aria-label":"当前日期和时间"},wJ={class:"top-menu"},bJ={key:0,class:"top-menu-mid-space"},TJ={key:1,class:"platform-map-tools","aria-label":"地图工具"},CJ=["title","aria-label"],AJ={key:2,class:"module-coming"},_J={class:"module-coming-title"},xJ={key:3,class:"bottom-tray"},MJ={class:"bottom-menu"},PJ=["onClick"],kJ={key:8,class:"loading platform-loading"},EJ={class:"loading-progress"},NJ={class:"value"},RJ=1200,BJ={__name:"index",setup(t){const e=VC(),n=HC(),a=_1(e.query.module),i=a3(a),r=a3(a==="ecological-protection"?B1(e.query.view):"ecological-redline"),o=a3(a==="yak-management"?s1(e.query.view):"structure"),s=a3({home:!0,[a]:!0}),u=a3({}),m=a3(!0),p=a3(0),f=a3(null),g=a3(null),C=a3(null),F=a3(null),z=a3(null),Y=a3(null),i2=a3(null),v2=a3(!1),y2=a3(""),A2=a3(""),S2=a3({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),Q2=a3(!1),X2=a3(!1);let c3=null,p3=null,l3=null,b3=!1,N3=null,_3=null,J3=null;const R3=Date.now(),Z3={progress:0},M1=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),b1=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],j1=new Set(b1),a1=r2(()=>Vq(i.value)),G1=r2(()=>`/images/weather/W${S2.value.icon}.png`),s0=r2(()=>Q2.value&&S2.value.icon!==null&&!X2.value),i0=r2(()=>!["","--",null,void 0].includes(S2.value.humidity)),r0=r2(()=>{const M3=String(S2.value.windDirection||"").trim(),d2=String(S2.value.windLevel||"").trim();return!M3&&!d2?"":`${M3}${M3&&d2?" ":""}${d2?`${d2}级`:""}`}),q1=r2(()=>v2.value?"退出":"全屏"),h3=r2(()=>!["smart-management","grass-livestock-balance"].includes(a1.value.key)),O3=r2(()=>U2.value.length===5&&(a1.value.key==="home"||a1.value.key==="ecological-protection"&&i3.value==="national-park")),V3=r2(()=>i.value==="ecological-protection"?js:da),i3=r2(()=>i.value==="ecological-protection"?r.value:i.value),U2=r2(()=>{const M3=u.value[i.value];return Array.isArray(M3)||M3!=null&&M3.length?M3:P0([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});jn(()=>{D3(),F3(),p3=window.setInterval(D3,1e3),l3=window.setInterval(F3,30*60*1e3),c3=_r.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),O0(),F0(),O1(),S0(i.value)?oe(i.value):(b3=!0,p.value=100,m.value=!1)}),On(()=>{var M3;p3&&window.clearInterval(p3),l3&&window.clearInterval(l3),z0(),(M3=c3==null?void 0:c3.off)==null||M3.call(c3,"#large-screen"),Z1(),_3&&window.clearTimeout(_3),J3&&window.cancelAnimationFrame(J3),nn.killTweensOf(Z3)});function D3(){const M3=new Date,d2=z3=>String(z3).padStart(2,"0"),$2=["周日","周一","周二","周三","周四","周五","周六"];y2.value=`${M3.getFullYear()}.${d2(M3.getMonth()+1)}.${d2(M3.getDate())} ${$2[M3.getDay()]}`,A2.value=`${d2(M3.getHours())}:${d2(M3.getMinutes())}:${d2(M3.getSeconds())}`}function F3(){return L3(this,null,function*(){try{S2.value=yield Xq(),Q2.value=!0,X2.value=!1}catch(M3){Q2.value=!1,console.warn("[platform] weather unavailable",M3)}})}function u1(){X2.value=!0}function A1(M3,d2={}){const $2=_1(M3);if($2==="yak-management"&&!d2.fromRoute&&(o.value="structure"),$2===i.value){H3($2);return}const z3=!!s.value[$2];i.value=$2,z3||w3($2),H3($2),ae(O1)}function S3(M3){if(M3!=null&&M3.key){if(i.value==="ecological-protection"){E(M3.key);return}A1(M3.key)}}function E(M3){const d2=js.some($2=>$2.key===M3)?M3:"ecological-redline";d2===r.value&&i.value==="ecological-protection"||(r.value=d2,i.value==="ecological-protection"&&H3("ecological-protection"),ae(O1))}function C3(M3){const d2=s1(M3);d2!==o.value&&(o.value=d2,i.value==="yak-management"&&H3("yak-management"))}ie(()=>[e.query.module,e.query.view],([M3,d2])=>{const $2=_1(M3);$2==="ecological-protection"&&(r.value=B1(d2)),$2==="yak-management"&&(o.value=s1(d2)),$2!==i.value&&A1($2,{fromRoute:!0})});function H3(M3=i.value){const d2=t3(B2({},e.query),{module:M3});M3==="yak-management"?d2.view=o.value:M3==="ecological-protection"?d2.view=r.value:delete d2.view;const $2=e.query||{},z3=String($2.module||"")===String(d2.module||"")&&String($2.view||"")===String(d2.view||"");e.path==="/platform"&&z3||n.replace({path:"/platform",query:d2}).catch(()=>{})}function _1(M3){const d2=Array.isArray(M3)?M3[0]:M3;return da.some($2=>$2.key===d2)?d2:"home"}function s1(M3){const d2=Array.isArray(M3)?M3[0]:M3;return["structure","forecast","epidemic","trade"].includes(d2)?d2:"structure"}function B1(M3){const d2=Array.isArray(M3)?M3[0]:M3;return js.some($2=>$2.key===d2)?d2:"ecological-redline"}function U1(M3){const d2=M3.moduleKey||(M3.topicKey?"forest-grass-wet":i.value);u.value=t3(B2({},u.value),{[d2]:P0(M3.items||[])})}function R1(M3={}){const d2=typeof M3=="number"?M3:M3.progress;G0(d2)}function N1(){z0(),nn.killTweensOf(Z3),Z3.progress=100,p.value=100;const M3=Date.now()-R3,d2=Math.max(180,RJ-M3);window.setTimeout(T0,d2)}function G0(M3){if(!m.value)return;const d2=Math.max(0,Math.min(100,Math.floor(Number(M3)||0)));d2{p.value=Math.floor(Z3.progress)}})}function T0(){if(!m.value||b3)return;z0(),b3=!0;const M3=nn.timeline({onComplete:()=>{m.value=!1}});M3.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:1.4,stagger:.14}),M3.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:1.2},"<"),M3.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.8},"-=0.55")}function S0(M3){return M1.has(M3)}function oe(M3){z0();const d2=M3==="home"?12e3:8e3;N3=window.setTimeout(()=>{!m.value||b3||(nn.killTweensOf(Z3),Z3.progress=100,p.value=100,window.setTimeout(T0,120))},d2)}function z0(){N3&&(window.clearTimeout(N3),N3=null)}function P0(M3=[]){const d2=new Set;return M3.slice(0,10).map(($2,z3)=>{var P2;const d3=Number($2.value)||0,$3={zh:$2.zh||$2.name||`指标${z3+1}`,en:$2.en||"",value:d3,unit:$2.unit||"",decimals:(P2=$2.decimals)!=null?P2:Number.isInteger(d3)?0:2},X3=x2(B2(B2({},$2),$3),z3,d2);return d2.add(X3),B2({icon:X3},$3)})}function x2(M3={},d2=0,$2=new Set){const d3=j2(M3,d2).find($3=>j1.has($3)&&!$2.has($3));return d3||b1.find($3=>!$2.has($3))||b1[d2%b1.length]}function j2(M3={},d2=0){const $2=`${M3.zh||M3.name||""}${M3.unit||""}`,z3=[],d3=(...X3)=>{X3.forEach(P2=>{P2&&!z3.includes(P2)&&z3.push(P2)})};d3(M3.icon),/风险|预警|告警/.test($2)&&d3("risk","rate"),/模型|修正|共识|预测|变化|净/.test($2)&&d3("rate","stack"),/率|占比|比例|超载/.test($2)&&d3("rate","project"),/生态牧场|家庭生态/.test($2)&&d3("leaf","town"),/出证|证书|证/.test($2)&&d3("certificate","project"),/交易|销售/.test($2)&&d3("yield","certificate"),/流通|出栏|流出/.test($2)&&d3("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test($2)&&d3("device","length"),/工程长度|长度|公里/.test($2)&&d3("length","project"),/修复项目|项目|工程|治理/.test($2)&&d3("project","length"),/国家公园|保护范围|保护区|划定/.test($2)&&d3("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test($2)&&d3("yield","leaf"),/湿地/.test($2)&&d3("wetland","leaf"),/基本草原/.test($2)&&d3("grass-basic","area"),/一般草原/.test($2)&&d3("grass-general","area"),/林地|森林|公益林/.test($2)&&d3("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test($2)&&d3("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test($2)&&d3("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test($2)&&d3("town","project"),/生态|林草/.test($2)&&d3("leaf","wetland");const $3=d2%b1.length;return d3(...b1.slice($3),...b1.slice(0,$3)),z3}function H2(M3){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(M3)&&(s.value[M3]||(s.value=t3(B2({},s.value),{[M3]:!0})))}function w3(M3){d1(),_3=window.setTimeout(()=>{_3=null,J3=window.requestAnimationFrame(()=>{J3=null,_3=null,i.value===M3&&H2(M3)})},180)}function d1(){_3&&(window.clearTimeout(_3),_3=null),J3&&(window.cancelAnimationFrame(J3),J3=null)}function O1(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const M3=document.querySelector("#app");M3&&(M3.scrollTop=0)}const V1=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function I0(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function F0(){var $2;const M3=I0(),d2=f.value;v2.value=!!(d2&&M3&&(M3===d2||d2.contains(M3)||($2=M3.contains)!=null&&$2.call(M3,d2)))}function O0(){typeof document!="undefined"&&V1.forEach(M3=>document.addEventListener(M3,F0))}function Z1(){typeof document!="undefined"&&V1.forEach(M3=>document.removeEventListener(M3,F0))}function Y0(){var M3,d2;(d2=(M3=Re())==null?void 0:M3.refreshMapView)==null||d2.call(M3)}function d0(){return L3(this,null,function*(){if(typeof document=="undefined")return;const M3=I0();try{if(M3){const d2=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield d2==null?void 0:d2.call(document)}else{const d2=f.value||document.documentElement,$2=d2.requestFullscreen||d2.webkitRequestFullscreen||d2.mozRequestFullScreen||d2.msRequestFullscreen;yield $2==null?void 0:$2.call(d2)}}catch(d2){console.warn("[platform] fullscreen toggle failed",d2)}finally{F0(),window.setTimeout(Y0,80),window.setTimeout(Y0,280)}})}function de(){var M3,d2;(d2=(M3=Re())==null?void 0:M3.resetMap)==null||d2.call(M3)}function Re(){return a1.value.key==="home"?g.value:a1.value.key==="forest-grass-wet"?C.value:a1.value.key==="ecological-protection"?F.value:a1.value.key==="yak-management"?z.value:a1.value.key==="pasture-management"?Y.value:a1.value.key==="yak-industry-chain"?i2.value:null}function H1(){KC()}return(M3,d2)=>(O(),V("div",{ref_key:"platformScreenRef",ref:f,class:o1(["large-screen platform-screen",{"is-home":a1.value.key==="home","is-forest-grass-wet":a1.value.key==="forest-grass-wet","is-ecological-protection":a1.value.key==="ecological-protection","is-grass-livestock-balance":a1.value.key==="grass-livestock-balance","is-yak-management":a1.value.key==="yak-management","is-pasture-management":a1.value.key==="pasture-management","is-yak-industry-chain":a1.value.key==="yak-industry-chain","is-smart-management":a1.value.key==="smart-management","is-ecology-national-park":a1.value.key==="ecological-protection"&&i3.value==="national-park"}]),id:"large-screen"},[s.value.home?qe((O(),V("div",eJ,[S1(vI,{ref_key:"homeDashboardRef",ref:g,active:a1.value.key==="home",onLoadingProgress:R1,onMapReady:N1,onModuleStats:U1},null,8,["active"])],512)),[[r5,a1.value.key==="home"]]):U3("",!0),s.value["forest-grass-wet"]?qe((O(),V("div",tJ,[S1(vF,{ref_key:"forestGrassWetRef",ref:C,active:a1.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:U1},null,8,["active"])],512)),[[r5,a1.value.key==="forest-grass-wet"]]):U3("",!0),s.value["ecological-protection"]?qe((O(),V("div",nJ,[S1(Qj,{ref_key:"ecologicalProtectionRef",ref:F,active:a1.value.key==="ecological-protection","active-view":r.value,"show-loading":!1,onModuleStats:U1,onViewChange:E},null,8,["active","active-view"])],512)),[[r5,a1.value.key==="ecological-protection"]]):U3("",!0),s.value["grass-livestock-balance"]?qe((O(),V("div",aJ,[S1(Kz,{active:a1.value.key==="grass-livestock-balance",onLoadingProgress:R1,onMapReady:N1,onModuleStats:U1},null,8,["active"])],512)),[[r5,a1.value.key==="grass-livestock-balance"]]):U3("",!0),s.value["yak-management"]?qe((O(),V("div",iJ,[S1(UW,{ref_key:"yakManagementRef",ref:z,active:a1.value.key==="yak-management","view-key":o.value,onModuleStats:U1,onViewChange:C3},null,8,["active","view-key"])],512)),[[r5,a1.value.key==="yak-management"]]):U3("",!0),s.value["pasture-management"]?qe((O(),V("div",rJ,[S1(lV,{ref_key:"pastureManagementRef",ref:Y,active:a1.value.key==="pasture-management",onLoadingProgress:R1,onMapReady:N1,onModuleStats:U1},null,8,["active"])],512)),[[r5,a1.value.key==="pasture-management"]]):U3("",!0),s.value["yak-industry-chain"]?qe((O(),V("div",oJ,[S1(cK,{ref_key:"yakIndustryChainRef",ref:i2,active:a1.value.key==="yak-industry-chain",onLoadingProgress:R1,onMapReady:N1,onModuleStats:U1},null,8,["active"])],512)),[[r5,a1.value.key==="yak-industry-chain"]]):U3("",!0),s.value["smart-management"]?qe((O(),V("div",sJ,[S1(Wq,{active:a1.value.key==="smart-management"},null,8,["active"])],512)),[[r5,a1.value.key==="smart-management"]]):U3("",!0),S("div",lJ,[S1(a_,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:M0(()=>[S("div",uJ,[S("div",{class:o1(["platform-weather",{"is-unavailable":!Q2.value}])},[s0.value?(O(),V("img",{key:0,class:"platform-weather__icon",src:G1.value,alt:S2.value.condition||"天气",onError:u1},null,40,cJ)):(O(),V("span",dJ)),S("div",fJ,[S("div",hJ,[S("strong",null,l2(Q2.value?S2.value.condition||"实时天气":"天气暂无数据"),1),Q2.value?(O(),V("em",mJ,l2(S2.value.temperature)+"℃",1)):U3("",!0)]),i0.value||r0.value?(O(),V("small",pJ,[i0.value?(O(),V("span",gJ,"湿度 "+l2(S2.value.humidity)+"%",1)):U3("",!0),i0.value&&r0.value?(O(),V("i",yJ)):U3("",!0),r0.value?(O(),V("span",vJ,l2(r0.value),1)):U3("",!0)])):U3("",!0)])],2),S("div",SJ,[S("strong",null,l2(A2.value),1),S("span",null,l2(y2.value),1)]),S("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:H1},[...d2[0]||(d2[0]=[S("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[S("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),S("path",{d:"M16 17l5-5-5-5"}),S("path",{d:"M21 12H9"})],-1)])])])]),_:1}),S("div",wJ,[S1(r_,{"default-active":i.value,onSelect:A1},{default:M0(()=>[(O(!0),V(Y3,null,e1(D1(da),($2,z3)=>(O(),V(Y3,{key:$2.key},[S1(o_,{index:$2.key},{default:M0(()=>[Ae(l2($2.label),1)]),_:2},1032,["index"]),z3===3?(O(),V("div",bJ)):U3("",!0)],64))),128))]),_:1},8,["default-active"])]),U2.value.length&&!["smart-management","grass-livestock-balance"].includes(a1.value.key)?(O(),V("div",{key:0,class:o1(["top-count-card",{"is-four":U2.value.length>3&&U2.value.length<=4,"is-multi":U2.value.length>4,"is-count-five":U2.value.length===5,"is-home-five":O3.value}])},[(O(!0),V(Y3,null,e1(U2.value,$2=>(O(),_e(g_,{key:$2.zh,info:$2},null,8,["info"]))),128))],2)):U3("",!0),h3.value?(O(),V("div",TJ,[S("button",{type:"button",title:q1.value,"aria-label":q1.value,onClick:d0},[...d2[1]||(d2[1]=[S("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,CJ),S("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:de},[...d2[2]||(d2[2]=[S("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):U3("",!0),a1.value.status!=="ready"?(O(),V("div",AJ,[S("div",_J,l2(a1.value.label),1),d2[3]||(d2[3]=S("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):U3("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(a1.value.key)?U3("",!0):(O(),V("div",xJ,[S1(Hi,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),S1(Hi,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),d2[4]||(d2[4]=S("div",{class:"bottom-tray-arrow"},[S("img",{src:Wi,alt:""}),S("img",{src:Vi,alt:""})],-1)),S("div",MJ,[(O(!0),V(Y3,null,e1(V3.value,$2=>(O(),V("div",{key:$2.key,class:o1(["bottom-menu-item",{"is-active":$2.key===i3.value}]),onClick:z3=>S3($2)},[S("span",null,l2($2.bottomLabel),1)],10,PJ))),128))]),d2[5]||(d2[5]=S("div",{class:"bottom-tray-arrow is-reverse"},[S("img",{src:Wi,alt:""}),S("img",{src:Vi,alt:""})],-1))])),d2[6]||(d2[6]=S("div",{class:"large-screen-left-zsline"},null,-1)),d2[7]||(d2[7]=S("div",{class:"large-screen-right-zsline"},null,-1))]),m.value?(O(),V("div",kJ,[d2[9]||(d2[9]=fa('
    LOADING
    ',1)),S("div",EJ,[S("span",NJ,l2(p.value),1),d2[8]||(d2[8]=S("span",{class:"unit"},"%",-1))])])):U3("",!0)],2))}};export{BJ as default}; diff --git a/docs/assets/index-8d752fbe-balabala-1783995319167.css b/docs/assets/index-8d752fbe-balabala-1784043664472.css similarity index 100% rename from docs/assets/index-8d752fbe-balabala-1783995319167.css rename to docs/assets/index-8d752fbe-balabala-1784043664472.css diff --git a/docs/assets/index-98e33e33-1784043664472.js b/docs/assets/index-98e33e33-1784043664472.js new file mode 100644 index 0000000..a9ccb67 --- /dev/null +++ b/docs/assets/index-98e33e33-1784043664472.js @@ -0,0 +1,116 @@ +var ll=Object.defineProperty,ul=Object.defineProperties;var cl=Object.getOwnPropertyDescriptors;var ja=Object.getOwnPropertySymbols;var er=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable;var pa=Math.pow,Qn=(b,e,t)=>e in b?ll(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,N=(b,e)=>{for(var t in e||(e={}))er.call(e,t)&&Qn(b,t,e[t]);if(ja)for(var t of ja(e))tr.call(e,t)&&Qn(b,t,e[t]);return b},$=(b,e)=>ul(b,cl(e));var ar=(b,e)=>{var t={};for(var a in b)er.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&ja)for(var a of ja(b))e.indexOf(a)<0&&tr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,n)=>{var s=d=>{try{u(t.next(d))}catch(h){n(h)}},o=d=>{try{u(t.throw(d))}catch(h){n(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as Dr,h as Or,w as Ht,o as I,c as B,a as f,d as z,K as dl,A as Yt,g as k,L as Ae,s as tt,v as hl,C as Ha,j as ke,n as Oe,t as P,F as ne,y as pe,u as j,b as H,x as oe,J as Mt,B as Ot,e as qa,H as Zt,f as Ua,N as fa}from"./index-1784043664472.js";import{H as Pe}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as le}from"./index-e3442fcf-1784043664472.js";import{t as qi,S as ia,u as ai,v as La,w as pl,V as re,F as fl,C as yt,G as Te,c as ml,d as gl,f as yl,g as zi,L as Xt,D as Re,a as ve,h as Ka,R as ut,A as Ie,N as ir,b as qe,P as It,o as Jt,n as Qt,x as bl,T as vl,B as wl,i as Ll,j as Tl,k as Sl,l as Ml,m as kl,y as Pl,z as ma,E as nr,H as rr,I as Cl,J as sr,q as or,r as Fl,s as lr,K as ga,U as Di,W as ur,M as xl}from"./screen2Standard-15e4461a-1784043664472.js";import{g as jt,M as Nl,h as Rl,L as Il,B as ya,a as ea,E as cr,G as Za,D as Gl,b as _l,l as Bl,P as dr,c as hr,d as Al,m as El,t as $l,k as ct,n as Vl,o as pr,p as zl,q as Dl,r as Oi,s as ba,u as fr,v as mr,f as Gt,w as gr,x as Ol,y as Wl,e as Yl,i as jl,j as Hl}from"./data-3d6664cd-1784043664472.js";import{g as ta}from"./index-e9f36657-1784043664472.js";import{h as ql,a as Wr,S as Ul,W as _t,H as q,j as Wi,k as Kl}from"./townshipBoundaries-1b068bef-1784043664472.js";import{b as Zl,g as yr,a as br,c as Xl}from"./geoserver-6574cb91-1784043664472.js";import{_ as Jl}from"./TopicSwitcher-f0c08774-1784043664472.js";import{A as Ql}from"./assets-93f7396b-1784043664472.js";import{M as eu}from"./index-0060e718-1784043664472.js";import{a as tu,b as au,c as iu,d as nu,g as vr,e as wr,f as ru,h as Yi,i as su,j as ou,k as lu}from"./yakApi-032bf70c-1784043664472.js";import{y as uu}from"./livestockData-36ec0ae2-1784043664472.js";import"./index-d0c7091a-1784043664472.js";const cu=ql.map(b=>N({},b)),Lr=Wr.map(b=>N({},b)),du=Wr.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),hu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],na=256,Ui="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pu=900,fu=10,qt=new Map,ra={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function ji(b,e,t){const a=pa(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function Tr(b,e,t){const a=pa(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Xa(b,e,t){return Math.max(e,Math.min(t,b))}function Yr(b,e,{centerLngLat:t,maxCols:a,maxRows:n}={}){const s=ji(b.west,b.north,e),o=ji(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,x=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(n)){const O=Xa(Number(t[0]),b.west,b.east),ee=Xa(Number(t[1]),b.south,b.north),se=ji(O,ee,e);x=Math.floor(se.x),E=Math.floor(se.y);const Z=Math.max(1,Math.min(Math.floor(a),d-u+1)),R=Math.max(1,Math.min(Math.floor(n),g-h+1));m=Xa(x-Math.floor(Z/2),u,d-Z+1),S=Xa(E-Math.floor(R/2),h,g-R+1),L=m+Z-1,C=S+R-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:x,centerY:E,cols:L-m+1,rows:C-S+1}}function mu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:n=ra}={}){return Yr(n,b,{centerLngLat:e,maxCols:t,maxRows:a})}function gu(b,e){const[t,a]=Tr(b.minX,b.minY,b.zoom),[n,s]=Tr(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,ra.south]),[u]=e([n,ra.south]),[,d]=e([ra.west,a]),[,h]=e([ra.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function yu(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const n=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);n.addColorStop(0,"rgba(80, 230, 255, 0.16)"),n.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=n,b.fillRect(0,0,t,a),b.restore()}function bu(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function vu(b){const e=qt.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{qt.delete(b),t(null)},a.src=b})}function wu(b){const e=qt.get(b);if(e)return e;const t=vu(b);for(qt.set(b,t);qt.size>pu;){const a=qt.keys().next().value;if(!a)break;qt.delete(a)}return t}function Lu(b,e,t,a=Ui){return String(a||Ui).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function Tu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:n,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let Z=a.minX;Z<=a.maxX;Z+=1)for(let R=a.minY;R<=a.maxY;R+=1)m.push({x:Z,y:R});m.sort((Z,R)=>Math.abs(Z.x-a.centerX)+Math.abs(Z.y-a.centerY)-(Math.abs(R.x-a.centerX)+Math.abs(R.y-a.centerY)));let x=0;function E(){return he(this,null,function*(){for(;x0?S/L:0,ee=S===0?"error":O>=.75?"success":"warning",se=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:ee,text:se,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n})})}function Sr({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Ui,onTileStatus:n,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=Yr(ra,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*na,m.height=g.rows*na;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):bu(L,m);const S=new qi(m);S.colorSpace=ia,S.wrapS=ai,S.wrapT=ai,S.minFilter=La,S.magFilter=La,S.needsUpdate=!0;const C=jt().center(b).scale(e).translate([0,0]),x=gu(g,C);return Tu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:n,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),n==null||n({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:x,tileRange:g}}function Mr(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(n=>{var u,d;const s=(d=(u=n.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!n.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function dt(b){return String(b||"").replace(/\s+/g,"").trim()}function ue(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Wt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Nr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function Rr(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function Gu(b){return(b==null?void 0:b.showFlowLines)!==!1}function Ir(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function va(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function _u(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function Qa(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Bu(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Gr(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function _r(b,e,t){const a=pa(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function Br(b,e,t){const a=pa(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Au(b,e){const t=_r(b.west,b.north,e),a=_r(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function Eu(b,e,t,a){const[n,s]=Br(b,e,t),[o,u]=Br(b+1,e+1,t),d=q.east-q.west,h=q.north-q.south;return{x:(n-q.west)/d*a.width,y:(q.north-s)/h*a.height,width:(o-n)/d*a.width,height:(s-u)/h*a.height}}function $u(b){const e=aa.get(b);if(e)return e;const t=new Promise(a=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>a(n),n.onerror=()=>{aa.delete(b),a(null)},n.src=b});for(aa.set(b,t);aa.size>xu;){const a=aa.keys().next().value;if(!a)break;aa.delete(a)}return t}function Ar(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function Vu(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function wa(b){const e=Vu(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function Er(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class zu extends Nl{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new fl(466735,1,50),this.scene.background=new yt(466735),this.camera.instance.position.copy(ku),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Su.clone(),this.defaultMapTarget=Mu.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new Rl(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const n=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(n)&&n>0?Math.min(Ja,n):Ul;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(Ja,Math.max(this.satelliteTextureZoom,s)):Ja;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Pu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(Lr.map(m=>[dt(m.name),m])),this.staticMapData={china:wa(this.assets.instance.getResource("china")),mapJson:wa(this.assets.instance.getResource("mapJson")),mapStroke:wa(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new Il(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=ta.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!va(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,n)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*n,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,n;this.flyLineFocusGroup.visible=!0,(n=(a=this.callbacks).onPlayComplete)==null||n.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,n)=>{e.to(a.scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,n)=>{e.to(a,{duration:1,delay:.1*n,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,n)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*n,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*n,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=ue((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,n)=>{e.to(a.children[0].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new ml(13171711,4.2);this.scene.add(e);let t=new gl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new yl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:n}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),n.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new zi({color:new yt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),n=new ya(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Xt({color:e.lineColor,transparent:!0,opacity:.58}),o=new ea(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:n,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,n=new re(0,0,-.08),s=new zi({color:new yt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Re}),o=new ya(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:n,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Xt({color:new yt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new ea(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new re(n.x,n.y,n.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const n=new ve({color:403001,transparent:!0,opacity:.14,side:Re,depthWrite:!1,fog:!1});new ya(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(.05,-.05,-.03),material:n,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new cr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Xt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new ea(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Ka({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Re,fog:!1});new Za(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=ut,t.wrapT=ut,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Ka({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Re,fog:!1});return new Za(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const n=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(n);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
    ${Se(s)}
    `,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const n=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(n.minLng+n.maxLng)/2,lat:(n.minLat+n.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Sr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,n]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=n;let s=new cr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:n,renderOrder:9}),o=new Ka({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new Za(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new yt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Mr(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Xt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new ea(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new ve({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}),h=new ea(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=_t.width,e.height=_t.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new qi(e);a.colorSpace=ia,a.wrapS=ai,a.wrapT=ai,a.minFilter=La,a.magFilter=La,this.enhanceTexture(a),a.needsUpdate=!0;const n=new ve({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Re,fog:!1}),s=this.createLayerUvBounds(),o=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:n,renderOrder:this.isHomeTopicPresentation()?24:18});Mr(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=n,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,n;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=Er((n=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:n.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([q.west,q.south]),[a]=e([q.east,q.south]),[,n]=e([q.west,q.north]),[,s]=e([q.west,q.south]);return{left:t,right:a,bottom:-s,top:-n}}setTopicLayer(e){var a,n;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"loading",text:`正在加载 ${e.name}`}),Qa(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(N(N({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const n=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(n!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(x=>{var E,O;return x.type==="vector"&&((E=x.layer)==null?void 0:E.key)===((O=this.currentTopicLayer)==null?void 0:O.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((x,E)=>{var O,ee;if(x.type==="image"){this.topicLayerContext.save();const se=E===g.length-1?Math.max(.78,(O=x.layer.opacity)!=null?O:.9):Math.min(.52,(ee=x.layer.opacity)!=null?ee:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,se)),this.drawTopicRasterImage(x.image,x.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(x.layer,x.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(Qa(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?N({type:"image"},t):null)})}loadTopicLayerImage(e){return Gr(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=Zl(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=_t.width,t.height=_t.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const n=this.getWmtsTopicZoom(e),s=Au(q,n),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(n,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(n,m,L)),a.restore()}a.drawImage(n,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,n=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(n)&&n>0?Math.round(n):11;return Wt(s,3,Math.min(a,Ja))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Gr(e)?ir:La;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),n.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){n.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),n.save(),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality="high",n.drawImage(o,0,0,a.width,a.height),n.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;const s=Wt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Wt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";n.save(),n.globalAlpha=s,n.filter=`drop-shadow(0 0 ${o}px ${u})`,n.drawImage(e,0,0,a.width,a.height),n.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,n=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=n?this.getLayerMapViewTarget(n):this.defaultMapTarget.clone(),o=n?this.getLayerMapViewCameraPosition(n,s):this.defaultMapCameraPosition.clone(),u=n&&Number.isFinite(n.duration)?n.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),n=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return n;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Wt(n,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),n=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(q.west,Math.min(q.east,Number(n[0])||102.58)),Math.max(q.south,Math.min(q.north,Number(n[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,$(N({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===n&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,n)}}}),this.applyDynamicSatelliteOverlay(o,n)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new ve({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Re,fog:!1}),t=new qe(new It(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,n=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(n,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,n;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(n=(a=this.animateTl)==null?void 0:a.pause)==null||n.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,n=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(n);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new re(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([n,s]),d=new re(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new re(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,n,s].every(Number.isFinite)?new re(a,n,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const n=this.camera.controls,s=()=>n.update();this.activeMapViewTweens.push(ta.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),ta.to(n.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(dt(e)),n=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return n||!!(a!=null&&a.center);if(!(a!=null&&a.center))return n;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,n,s,o,u,d,h,g,m,L;return[(s=(n=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:n.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var n,s,o,u;const t=dt(e);if(!t)return null;const a=(((n=this.mapJsonData)==null?void 0:n.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>dt(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:$(N({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var n,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=dt(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>dt(h.name)===a))return!1;const o=this.focusTownByName(e,N({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),n=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||n&&String(L.name||L.plot_name||"").trim()===n});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const n=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(n,this.depth+.34)||this.lngLatToScreenPoint(n,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),n=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(n)?null:[a,n]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),n=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(n&&String(g.id||"")===n||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,n,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Ar(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield yr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let n=this.buildWktLayerFeatures(t);if((!t.length||!n.length)&&e.fallbackPath){const u=yield fetch(Ar(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],n=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:n}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const n=this.topicLayerContext;a.clear!==!1&&n.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),n.save(),n.lineJoin="round",n.lineCap="round",this.clipVectorLayerContext(n,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(n,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(n,e,o),this.drawSelectedVectorOverlay(n),n.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(n=>{const s=this.getVectorFeatureStyle(t,n);this.drawVectorFeature(e,n.geometry,$(N({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,n.geometry,$(N({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,n.geometry,$(N({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],n=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!n&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:kr,stroke:Ru,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:kr,stroke:Nu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),n!=null&&n.geometry&&this.drawVectorFeature(e,n.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!Qa(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const n=t==null?void 0:t.match;return n!=null&&n.field?String((s=e[n.field])!=null?s:"")===String(n.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const n=e==null?void 0:e.activeLegend;if((u=n==null?void 0:n.matches)!=null&&u.length||(d=n==null?void 0:n.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},n));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((n,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(n),this.getYakIndustryPointLabelPosition(n,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:n}}),this.yakIndustryPointLabels.slice(a.length).forEach(n=>{var s;n.visible=!1,(s=n.hide)==null||s.call(n),n.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(n=>{var s;return((s=n==null?void 0:n.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((n,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,n),d=this.getYakIndustryMarkerMaterial(u,n),h=this.lngLatToLayerLocalPoint(n.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(n);o||(o=new Jt(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:n,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(n=>{n.visible=!1,n.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const n=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(n[0]),lat:Number(n[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),n=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(n);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new Qt({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(n,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Fr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const n=document.createElement("canvas");n.width=112,n.height=112;const s=n.getContext("2d"),o=56,u=56;s.clearRect(0,0,n.width,n.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new qi(n);return d.colorSpace=ia,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,n,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,n),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,n,s="#24F6C4"){if(e.save(),e.translate(a,n),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),n=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:dt((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=n||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=n||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(n=>this.parseMapMetricNumber(n));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var n;const a=this.lngLatToLayerLocalPoint((n=e==null?void 0:e.geometry)==null?void 0:n.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),n=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
    +
    ${Se(n)}
    +
    ${Se(a)}
    +
    + ${Se(s)} + ${o?`${Se(o)}`:""} +
    +
    `}compactYakIndustryLabelName(e=""){const t=String(e).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/\s+/g," ").trim();return t.length>16?`${t.slice(0,15)}…`:t}formatYakIndustryLabelText(e=""){return String(e).replace(/\bcxpt[-_./\s]*/gi,"").replace(/^cxpt/i,"").replace(/\s+/g," ").trim()}getYakIndustryPointMetricText(e={}){return e.capacity!==void 0&&e.capacity!==null&&e.capacity!==""&&this.parseMapMetricNumber(e.capacity)>0?this.formatYakIndustryMetricText(e.capacity,e.capacityUnit):this.parseMapMetricNumber(e.outputValue)>0?`${this.formatMapRankingValue(e.outputValue)}万元`:this.isMeaningfulMapText(e.locationType)?e.locationType:this.isMeaningfulMapText(e.status)?e.status:""}isMeaningfulMapText(e){const t=String(e!=null?e:"").trim();return!!(t&&t!=="0"&&t!=="无"&&t!=="待完善")}formatYakIndustryMetricText(e,t=""){const a=String(e!=null?e:"").trim();return!a||a==="0"?"":typeof e=="string"&&/[^\d.,\s-]/.test(a)?a:`${this.formatMapRankingValue(e)}${t||""}`}getYakIndustryLabelColor(e={}){var n,s,o,u,d,h;const t=String(e.stageKey||""),a=(((n=this.currentTopicLayer)==null?void 0:n.legends)||[]).find(g=>{var m;return String(((m=g.match)==null?void 0:m.value)||"")===t})||(String(((u=(o=(s=this.currentTopicLayer)==null?void 0:s.activeLegend)==null?void 0:o.match)==null?void 0:u.value)||"")===t?this.currentTopicLayer.activeLegend:null);return(a==null?void 0:a.fillColor)||((h=(d=this.currentTopicLayer)==null?void 0:d.activeLegend)==null?void 0:h.fillColor)||"#24F6C4"}clipVectorLayerContext(e,t){if(this.shouldClipLayerToHongyuanBoundary(t)&&this.clipContextToHongyuanBoundary(e),!this.shouldClipLayerToLayerBounds(t))return;const a=this.getLayerClipBounds(t);if(!a)return;const n=this.lngLatToLayerCanvasPoint([a.west,a.north]),s=this.lngLatToLayerCanvasPoint([a.east,a.south]),o=Math.min(n.x,s.x),u=Math.min(n.y,s.y),d=Math.abs(s.x-n.x),h=Math.abs(s.y-n.y);!d||!h||(e.beginPath(),e.rect(o,u,d,h),e.clip())}clipContextToHongyuanBoundary(e){const t=this.hongyuanBoundaryPolygons||[];t.length&&(e.beginPath(),t.forEach(a=>{a.forEach(n=>{n.forEach((s,o)=>{const u=this.lngLatToLayerCanvasPoint(s);o===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath()})}),e.clip("evenodd"))}shouldClipLayerToHongyuanBoundary(e=this.currentTopicLayer){if(!e||e.clipToHongyuanBoundary===!1)return!1;if(e.clipToHongyuanBoundary===!0)return!0;const t=String((e==null?void 0:e.key)||"");return!!(t==="national-park-zoning"||t.startsWith("yak-"))}shouldClipLayerToLayerBounds(e=this.currentTopicLayer){return!!(e!=null&&e.clipBounds&&(e==null?void 0:e.clipToLayerBounds)!==!1)}isLngLatInHongyuanBoundary(e){const t=this.hongyuanBoundaryPolygons||[];return t.length?t.some(a=>this.isLngLatInPolygon(e,a)):!0}isLngLatInLayerClipBounds(e,t=this.currentTopicLayer){const a=this.getLayerClipBounds(t);return a?e.lng>=a.west&&e.lng<=a.east&&e.lat>=a.south&&e.lat<=a.north:!0}getLayerClipBounds(e){const t=e==null?void 0:e.clipBounds;if(!t)return null;const a=Math.max(Number(t.west),q.west),n=Math.max(Number(t.south),q.south),s=Math.min(Number(t.east),q.east),o=Math.min(Number(t.north),q.north);return![a,n,s,o].every(Number.isFinite)||a>=s||n>=o?null:{west:a,south:n,east:s,north:o}}getGeometryDrawRank(e){return String(e).includes("Polygon")?1:String(e).includes("LineString")?2:3}isEcologicalProjectLayer(e=this.currentTopicLayer){return["restoration-projects","engineering-analysis-projects"].includes(e==null?void 0:e.key)}getVectorFeatureStyle(e,t){var d,h,g;const a=t.properties||{},s=(e.legends||[]).find(m=>{var L,S;return(((L=m==null?void 0:m.matches)==null?void 0:L.length)||((S=m==null?void 0:m.match)==null?void 0:S.field))&&this.featureMatchesLegend(a,m)})||e.activeLegend||((d=e.legends)==null?void 0:d[0])||{},o=String(((h=t.geometry)==null?void 0:h.type)||"").includes("LineString"),u=((g=t.geometry)==null?void 0:g.type)==="Point";if(this.isEcologicalProjectLayer(e)){const m=o||String(a.feature_role||"")==="线性设施";return{fill:m||u?s.strokeColor||s.fillColor||"#D2EA78":s.fillColor||"#75AD49",stroke:s.strokeColor||s.fillColor||"#D2EA78",polygonAlpha:m?.08:.22,lineAlpha:m?.9:.82,lineWidth:m?3:1.85,pointRadius:u?3.8:4,glow:!1}}return(e==null?void 0:e.key)==="yak-epidemic-village-boundary"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||"#C9FBFF",polygonAlpha:.16,lineAlpha:1,lineWidth:3.2,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="artificial-grassland-plots"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||"#A7F8FF",polygonAlpha:.2,lineAlpha:.94,lineWidth:1.6,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="yak-industry-points"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||s.fillColor||"#B7FFF2",polygonAlpha:.36,lineAlpha:.82,lineWidth:1.6,pointRadius:this.getVectorPointRadius(e,t),glow:!0,halo:!0,marker:!0,markerType:Fr[String(a.stageKey||"")]||"point"}:(e==null?void 0:e.key)==="national-park-zoning"?{fill:s.fillColor||"#30DCFF",stroke:s.strokeColor||"#F2FFFF",polygonAlpha:.38,lineAlpha:.96,lineWidth:2.7,pointRadius:4.5,glow:!1}:e!=null&&e.boundaryOnly?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||s.fillColor||"#18F8FF",polygonAlpha:.04,lineAlpha:.96,lineWidth:10,pointRadius:4.5,glow:!0}:{fill:o||u?s.strokeColor||s.fillColor||"#30DCFF":s.fillColor||"#30DCFF",stroke:s.strokeColor||s.fillColor||"#30DCFF",polygonAlpha:.36,lineAlpha:o?.92:.9,lineWidth:o?5:2.4,pointRadius:u?this.getVectorPointRadius(e,t):4.5,glow:!0}}getVectorPointRadius(e,t){var n,s;const a=Number(((n=t==null?void 0:t.properties)==null?void 0:n.count)||((s=t==null?void 0:t.properties)==null?void 0:s.value)||0);return(e==null?void 0:e.key)==="yak-recognition-layer"?Math.max(3.8,Math.min(8.6,3.6+Math.sqrt(a)/68)):(e==null?void 0:e.key)==="yak-industry-points"?10.4:4.5}drawVectorFeature(e,t,a){if(t!=null&&t.coordinates){if(t.type==="Polygon"){this.drawPolygonPath(e,t.coordinates,a);return}if(t.type==="MultiPolygon"){t.coordinates.forEach(n=>this.drawPolygonPath(e,n,a));return}if(t.type==="LineString"){this.drawLinePath(e,t.coordinates,a);return}if(t.type==="MultiLineString"){t.coordinates.forEach(n=>this.drawLinePath(e,n,a));return}t.type==="Point"&&this.drawPointPath(e,t.coordinates,a)}}drawPolygonPath(e,t,a){Array.isArray(t==null?void 0:t[0])&&(e.save(),e.beginPath(),t.forEach(n=>{n.forEach((s,o)=>{const u=this.lngLatToLayerCanvasPoint(s);o===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath()}),e.fillStyle=this.hexToRgba(a.fill,a.polygonAlpha),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,a.glow&&(e.shadowColor=a.stroke,e.shadowBlur=14),e.fill("evenodd"),e.stroke(),e.restore())}drawLinePath(e,t,a){!Array.isArray(t)||t.length<2||(e.save(),e.beginPath(),t.forEach((n,s)=>{const o=this.lngLatToLayerCanvasPoint(n);s===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,e.shadowColor=a.stroke,e.shadowBlur=12,e.stroke(),e.restore())}drawPointPath(e,t,a){var s;if(a.marker){this.drawMarkerPointPath(e,t,a);return}const n=this.lngLatToLayerCanvasPoint(t);e.save(),a.halo&&(e.beginPath(),e.arc(n.x,n.y,a.pointRadius*2.35,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.18),e.shadowColor=a.fill,e.shadowBlur=18,e.fill()),e.beginPath(),e.arc(n.x,n.y,a.pointRadius,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.96),e.shadowColor=a.stroke,e.shadowBlur=a.halo?8:12,e.fill(),a.lineWidth&&(e.lineWidth=a.lineWidth,e.strokeStyle=this.hexToRgba(a.stroke,(s=a.lineAlpha)!=null?s:.9),e.stroke()),e.restore()}drawMarkerPointPath(e,t,a){const n=this.lngLatToLayerCanvasPoint(t),s=a.pointRadius||6;e.save(),e.beginPath(),e.arc(n.x,n.y+s*.22,s*2.55,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.16),e.shadowColor=a.fill,e.shadowBlur=24,e.fill(),e.beginPath(),e.moveTo(n.x,n.y+s*2.05),e.bezierCurveTo(n.x+s*1.46,n.y+s*.62,n.x+s*1.34,n.y-s*1.34,n.x,n.y-s*1.62),e.bezierCurveTo(n.x-s*1.34,n.y-s*1.34,n.x-s*1.46,n.y+s*.62,n.x,n.y+s*2.05),e.closePath(),e.fillStyle=this.hexToRgba(a.fill,.94),e.strokeStyle=this.hexToRgba(a.stroke,.98),e.lineWidth=Math.max(2,a.lineWidth||2),e.shadowColor=a.stroke,e.shadowBlur=14,e.fill(),e.stroke(),e.beginPath(),e.arc(n.x,n.y-s*.34,s*.52,0,Math.PI*2),e.fillStyle=this.hexToRgba("#FFFFFF",.96),e.shadowBlur=0,e.fill(),e.beginPath(),e.arc(n.x,n.y-s*.34,s*.82,0,Math.PI*2),e.lineWidth=Math.max(1.2,s*.14),e.strokeStyle=this.hexToRgba("#FFFFFF",.42),e.stroke(),e.restore()}lngLatToLayerCanvasPoint(e){const t=Number(e==null?void 0:e[0]),a=Number(e==null?void 0:e[1]);return{x:(t-q.west)/(q.east-q.west)*this.topicLayerCanvas.width,y:(q.north-a)/(q.north-q.south)*this.topicLayerCanvas.height}}hexToRgba(e,t=1){const a=String(e||"#30DCFF").replace("#",""),n=a.length===3?a.split("").map(h=>h+h).join(""):a,s=Number.parseInt(n,16);if(!Number.isFinite(s))return`rgba(48, 220, 255, ${t})`;const o=s>>16&255,u=s>>8&255,d=s&255;return`rgba(${o}, ${u}, ${d}, ${t})`}parseWktGeometry(e){var o;const t=String(e||"").trim();if(!t)return null;const a=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),n=(o=a==null?void 0:a[1])==null?void 0:o.toUpperCase();if(!n)return null;const s=t.slice(t.indexOf("("));return n==="POLYGON"?{type:"Polygon",coordinates:this.parseWktPolygonBody(s)}:n==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:this.parseWktMultiPolygonBody(s)}:n==="POINT"?{type:"Point",coordinates:this.parseWktPoint(s)}:n==="MULTIPOINT"?{type:"MultiPoint",coordinates:this.getWktChildGroups(s).map(u=>this.parseWktPoint(u)).filter(Boolean)}:n==="LINESTRING"?{type:"LineString",coordinates:this.parseWktRing(s)}:n==="MULTILINESTRING"?{type:"MultiLineString",coordinates:this.getWktChildGroups(s).map(u=>this.parseWktRing(u)).filter(u=>u.length)}:null}parseWktMultiPolygonBody(e){return this.getWktChildGroups(e).map(t=>this.parseWktPolygonBody(t)).filter(t=>t.length)}parseWktPolygonBody(e){return this.getWktChildGroups(e).map(t=>this.parseWktRing(t)).filter(t=>t.length>=3)}getWktChildGroups(e){const t=String(e||"").trim(),a=t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1):t,n=[];let s=0,o=-1;for(let u=0;u=0&&(n.push(a.slice(o,u+1)),o=-1))}return n.length?n:[a]}parseWktRing(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(a=>a.trim().split(/\s+/).slice(0,2).map(Number)).filter(([a,n])=>Number.isFinite(a)&&Number.isFinite(n))}parseWktPoint(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}createProvinceMaterial(){const e=!this.useSatelliteBase;let t=new zi({color:16777215,transparent:!0,opacity:0,depthWrite:!this.usesCustomSatelliteTiles,fog:!1,side:Re});t.onBeforeCompile=s=>{s.uniforms=$(N({},s.uniforms),{uColor1:{value:new yt(e?2780818:2152676)},uColor2:{value:new yt(e?1058614:475482)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); + ${e?`outgoingLight = outgoingLight * gradient; + float topAlpha = 0.56;`:`outgoingLight = mix(outgoingLight * vec3(1.18), outgoingLight * gradient, 0.32); + float topAlpha = 0.92;`} + if(vPosition.z>0.3){ + diffuseColor.a *= topAlpha; + } + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)};let a=this.assets.instance.getResource("side");a.wrapS=ut,a.wrapT=ut,a.repeat.set(1,1.8),a.offset.y+=.065;let n=new Ka({color:2148829,map:a,fog:!1,opacity:0,side:Re,roughness:.58,metalness:.08});return this.time.on("tick",()=>{a.offset.y+=.005}),n.onBeforeCompile=s=>{s.uniforms=$(N({},s.uniforms),{uColor1:{value:new yt(1629410)},uColor2:{value:new yt(205365)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); + outgoingLight = outgoingLight*gradient*vec3(1.12); + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)},[t,n]}getDefaultTownRanking(){return{title:"乡镇统计加载中",unit:"",rows:Lr.map(e=>({name:e.name,value:0,unit:""}))}}getTownRankingMeta(e=this.currentTownRanking){var n,s,o,u;const t=this.getDefaultTownRanking(),a=_u(e);return{title:(e==null?void 0:e.title)||t.title,unit:(e==null?void 0:e.unit)||t.unit,metricLabel:(e==null?void 0:e.metricLabel)||(e==null?void 0:e.legendName)||"",note:(e==null?void 0:e.note)||"",hideTownNames:Ir(e),hideMapLabels:va(e),hideTownLabelStats:(n=e==null?void 0:e.hideTownLabelStats)!=null?n:this.hideTownLabelStatsByDefault,calloutMode:a,showBars:(s=e==null?void 0:e.showBars)!=null?s:!1,showPointMarkers:(o=e==null?void 0:e.showPointMarkers)!=null?o:a,onlyRankedTownLabels:(u=e==null?void 0:e.onlyRankedTownLabels)!=null?u:!1,showMissingTownStats:(e==null?void 0:e.showMissingTownStats)===!0}}getTownRankingRows(e=this.currentTownRanking,t=7,a=!0){var d;const n=this.getDefaultTownRanking(),s=(d=e==null?void 0:e.rows)!=null&&d.length?e.rows:a?n.rows:[],o=this.getTownRankingMeta(e),u=s.map(h=>{const g=this.townMetaByName.get(dt(h.name));return g?$(N(N({},g),h),{name:g.name,enName:g.enName,center:g.center,centroid:g.centroid,value:ue(h.value),unit:h.unit||o.unit,metricTitle:o.title}):null}).filter(Boolean).sort((h,g)=>g.value-h.value).map((h,g)=>$(N({},h),{rank:g+1}));return Number.isFinite(t)?u.slice(0,t):u}getVillageRankingRows(e=this.currentTownRanking){const t=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,n)=>{var h,g,m,L,S,C,x,E;const s=ue((h=a.lng)!=null?h:a.longitude,NaN),o=ue((g=a.lat)!=null?g:a.latitude,NaN);if(!Number.isFinite(s)||!Number.isFinite(o))return null;const u=ue((m=a.displayValue)!=null?m:a.value),d=ue((C=(S=(L=a.rawValue)!=null?L:a.earTagCount)!=null?S:a.ear_tag_count)!=null?C:a.value);return $(N({},a),{key:a.key||`${a.town||""}-${a.village||a.name||n}`,name:a.name||a.village||`村${n+1}`,town:a.town||"",lng:s,lat:o,value:u,rawValue:d,recordCount:ue((x=a.recordCount)!=null?x:a.record_count,0),imageRate:ue((E=a.imageRate)!=null?E:a.image_rate,0),unit:a.displayUnit||a.unit||t.unit,metricTitle:t.title,metricLabel:a.metricLabel||t.metricLabel||""})}).filter(Boolean).sort((a,n)=>n.rawValue-a.rawValue).map((a,n)=>$(N({},a),{rank:n+1}))}getVillageRankingHtml(e,t){const a=t.hideTownNames?"":`${Se(e.town||"红原县")}`;return e.displayMode==="park-village"||t.displayMode==="park-village"?`
    +
    + ${Se(e.name)} + ${a} +
    +
    + ${Se(e.metricLabel||t.metricLabel||"")} + ${this.formatMapRankingValue(e.value)} + ${Se(e.unit||t.unit||"")} +
    +
    `:`
    +
    + ${Se(e.name)} + ${a} +
    +
    + ${Se(e.metricLabel||"防疫")} + ${this.formatMapRankingValue(e.value)} + ${Se(e.unit||t.unit||"")} +
    +
    + 台账 ${this.formatMapCompactValue(e.recordCount)}条 + 耳标 ${this.formatMapCompactValue(e.rawValue)}头 +
    +
    `}ensureVillageRankingGroup(){this.villageRankingGroup||(this.villageRankingGroup=new Te,this.villageRankingGroup.rotation.x=-Math.PI/2,this.villageRankingGroup.visible=!1,this.scene.add(this.villageRankingGroup),this.villageRankingLabels=[])}hideVillageRankingLabels(){var e;this.villageRankingGroup&&(this.villageRankingGroup.visible=!1),(e=this.villageRankingLabels)==null||e.forEach(t=>{t.visible=!1})}hideAllMapStatisticLabels(){var e,t,a,n;this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.hideTradeFlowLayer(),this.clearInfoPointStats(),(e=this.allProvinceLabel)==null||e.forEach(s=>{s.visible=!1}),(t=this.allBar)==null||t.forEach(s=>{s.visible=!1,s.scale.set(1,1,0)}),(a=this.allBarMaterial)==null||a.forEach(s=>{s.opacity=0}),(n=this.allGuangquan)==null||n.forEach(s=>{s.visible=!1})}setTownNameLabelsVisible(e=!0){var t;(t=this.townNameLabels)==null||t.forEach(a=>{a.visible=e})}updateVillageRankingLabels(e=this.currentTownRanking){if(this.ensureVillageRankingGroup(),!Nr(e)){this.hideVillageRankingLabels();return}const t=this.getVillageRankingRows(e),a=this.getTownRankingMeta(e);if(!t.length){this.hideVillageRankingLabels();return}this.villageRankingGroup.visible=this.mapAnimationComplete,t.forEach((n,s)=>{let o=this.villageRankingLabels[s];o||(o=this.label3d.create("","epidemic-village-label",!0),this.label3d.setLabelStyle(o,.0135,"x"),o.setParent(this.villageRankingGroup),this.villageRankingLabels.push(o));const[u,d]=this.geoProjection([n.lng,n.lat]),h=(s%3-1)*.06,g=Math.floor(s/3)%2*.04;o.init(this.getVillageRankingHtml(n,a),new re(u+h,-d+g,this.depth+1.55+Math.min(s,6)*.015)),o.visible=!0,o.userData=N({},n)}),this.villageRankingLabels.slice(t.length).forEach(n=>{n.visible=!1})}ensureTradeFlowGroup(){this.tradeFlowGroup||(this.tradeFlowGroup=new Te,this.tradeFlowGroup.name="yak-trade-flow",this.tradeFlowGroup.visible=!1,this.tradeFlowMeshGroup=new Te,this.tradeFlowMeshGroup.name="yak-trade-flow-mesh",this.tradeFlowMeshGroup.rotation.x=-Math.PI/2,this.tradeFlowLabelGroup=new Te,this.tradeFlowLabelGroup.name="yak-trade-flow-label",this.tradeFlowLabelGroup.rotation.x=-Math.PI/2,this.tradeFlowGroup.add(this.tradeFlowMeshGroup,this.tradeFlowLabelGroup),this.scene.add(this.tradeFlowGroup))}hideTradeFlowLayer(){var e,t;this.tradeFlowGroup&&(this.tradeFlowGroup.visible=!1),(e=this.tradeFlowLabels)==null||e.forEach(a=>{a.visible=!1}),(t=this.tradeFlowPulseSprites)==null||t.forEach(a=>{a.visible=!1})}clearTradeFlowLayer(){this.tradeFlowMeshGroup&&(this.tradeFlowMeshGroup.children.forEach(e=>{var t;(t=e.traverse)==null||t.call(e,a=>this.disposeObject3D(a))}),this.tradeFlowMeshGroup.clear(),this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[])}getTradeFlowSource(e=this.currentTownRanking){var s,o,u,d;const t=(e==null?void 0:e.source)||{},a=ue((s=t.lng)!=null?s:t.longitude,NaN),n=ue((o=t.lat)!=null?o:t.latitude,NaN);return!Number.isFinite(a)||!Number.isFinite(n)?null:{name:t.name||"红原牦牛交易市场",lng:a,lat:n,total:ue((d=(u=t.total)!=null?u:t.headCount)!=null?d:t.value,NaN)}}getTradeFlowRows(e=this.currentTownRanking){const t=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,n)=>{var L,S,C,x,E,O;const s=ue((L=a.lng)!=null?L:a.longitude,NaN),o=ue((S=a.lat)!=null?S:a.latitude,NaN),u=ue((E=(x=(C=a.headCount)!=null?C:a.head_count)!=null?x:a.rawValue)!=null?E:a.value),d=a.displayName||a.display_name||a.name,h=a.mapTownName||a.map_town_name||a.town||a.startTown||a.start_town||d,g=this.townMetaByName.get(dt(h)),m=Number.isFinite(s)&&Number.isFinite(o)?{lng:s,lat:o}:g!=null&&g.center?{lng:g.center[0],lat:g.center[1]}:null;return!m||!Number.isFinite(u)?null:$(N(N({},a),g),{key:a.key||`${(g==null?void 0:g.name)||d||h||"trade-source"}-${n}`,name:d||h||(g==null?void 0:g.name)||`来源${n+1}`,townName:(g==null?void 0:g.name)||h,lng:m.lng,lat:m.lat,labelSide:a.labelSide||a.label_side||this.getTradeSourceLabelSide(g,n),value:u,headCount:u,recordCount:ue((O=a.recordCount)!=null?O:a.record_count,0),unit:a.unit||t.unit||"头"})}).filter(Boolean).sort((a,n)=>n.value-a.value).map((a,n)=>$(N({},a),{rank:n+1}))}getTradeMarketHtml(e,t){const a=Number.isFinite(e.total)?e.total:t.reduce((n,s)=>n+ue(s.value),0);return`
    +
    ${Se(e.name)}
    +
    ${this.formatMapIntegerValue(a)}
    +
    `}getTradeFlowDisplayName(e=""){const t=String(e||"").replace(/^.*红原县/,"").replace(/\s+/g,"");return t.length>7?`${t.slice(0,7)}…`:t||"来源区域"}getTradeFlowLabelHtml(e){return`
    +
    ${String(e.rank).padStart(2,"0")}${Se(this.getTradeFlowDisplayName(e.name))}
    +
    ${this.formatMapIntegerValue(e.value)}${Se(e.unit||"头")}
    +
    `}getTradeFlowLabelOffset(e,t){return new re(0,0,0)}getTradeSourceLabelSide(e,t=0){var s,o;const a=Number((s=e==null?void 0:e.center)==null?void 0:s[0]),n=Number((o=e==null?void 0:e.center)==null?void 0:o[1]);return Number.isFinite(a)&&athis.geoProjectionCenter[0]+.2?"right":Number.isFinite(n)&&n>this.geoProjectionCenter[1]+.22?"top":Number.isFinite(n)&&n0&&(d.normalize().multiplyScalar((a%2===0?1:-1)*Math.min(.18,.05+u*.02)),o.add(d)),new bl([n,o,s])}tradeGeoProjection(e){return jt().center(this.tradeGeoProjectionCenter).scale(this.tradeGeoProjectionScale).translate([0,0])(e)}setTradeNationalMapVisible(e){const t=!!e;if(!(!t&&!this.isTradeNationalMapActive&&!this.tradeNationalMapGroup&&!this.tradeFlowGroup)){if(t&&!this.createTradeNationalMap()){this.isTradeNationalMapActive=!1;return}this.isTradeNationalMapActive=t,this.tradeNationalMapGroup&&(this.tradeNationalMapGroup.visible=t&&this.mapAnimationComplete),this.tradeNationalLabelGroup&&(this.tradeNationalLabelGroup.visible=t&&this.mapAnimationComplete),this.mapGroup&&(this.mapGroup.visible=!t),this.labelGroup&&(this.labelGroup.visible=!t),this.flyLineGroup&&(this.flyLineGroup.visible=!t&&this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!t&&this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=!t&&this.mapAnimationComplete),this.topicLayerMaterial&&t&&(this.topicLayerMaterial.opacity=0),t&&this.mapAnimationComplete?this.animateMapCamera(new re(0,11.4,16.2),new re(0,-.05,0),.65):!t&&this.mapAnimationComplete&&this.applyLayerMapView(this.currentTopicLayer,{force:!0})}}createTradeSourceMarker(e,t,a,n,s=!0){const o=new yt(t%3===1?16766828:t%3===2?2617536:3202303),u=this.getTradeFlowPoint(e,.72);if(n&&s){const x=this.getLocalTradeFlowCurve(e,n,t),E=new ve({color:o,transparent:!0,opacity:.42,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),O=.012+Math.min(.012,ue(e.value)/Math.max(a,1)*.01),ee=new qe(new vl(x,48,O,8,!1),E);ee.renderOrder=31,this.tradeFlowMeshGroup.add(ee),this.tradeFlowMaterials.push(E);const se=new Qt({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.92,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),Z=new Jt(se),R=.12+Math.min(.08,ue(e.value)/Math.max(a,1)*.06);Z.renderOrder=36,Z.scale.set(R,R,R),Z.userData={curve:x,phase:t*.13%1,speed:.16+Math.min(.16,ue(e.value)/Math.max(a,1)*.12)},Z.position.copy(x.getPointAt(Z.userData.phase)),this.tradeFlowPulseSprites.push(Z),this.tradeFlowMeshGroup.add(Z)}const d=new Qt({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.95,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),h=new Jt(d),g=.22+Math.min(.34,ue(e.value)/Math.max(a,1)*.28);h.renderOrder=34,h.scale.set(g,g,g),h.position.copy(u),this.tradeFlowMeshGroup.add(h);const m=this.assets.instance.getResource("guangquan1"),L=new ve({map:m,alphaMap:m,color:o,transparent:!0,opacity:.52,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie,side:Re}),S=.38+Math.min(.36,ue(e.value)/Math.max(a,1)*.28),C=new qe(new It(S,S),L);C.renderOrder=29,C.position.copy(this.getTradeFlowPoint(e,.5)),this.tradeFlowMeshGroup.add(C)}createTradeMarketMarker(e){const t=this.assets.instance.getResource("point"),a=this.assets.instance.getResource("guangquan1"),n=this.getTradeLocalPoint(e.lng,e.lat,.82),s=new Qt({map:t,color:16773997,transparent:!0,opacity:1,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),o=new Jt(s);o.renderOrder=35,o.scale.set(.34,.34,.34),o.position.copy(n),this.tradeFlowMeshGroup.add(o);const u=new ve({map:a,alphaMap:a,color:16773997,transparent:!0,opacity:.72,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie,side:Re}),d=new qe(new It(.58,.58),u);d.renderOrder=29,d.position.copy(this.getTradeLocalPoint(e.lng,e.lat,.58)),this.tradeFlowMeshGroup.add(d)}disposeObject3D(e){var t,a,n,s;(a=(t=e.geometry)==null?void 0:t.dispose)==null||a.call(t),Array.isArray(e.material)?e.material.forEach(o=>{var u;return(u=o==null?void 0:o.dispose)==null?void 0:u.call(o)}):(s=(n=e.material)==null?void 0:n.dispose)==null||s.call(n)}updateTradeFlowPulses(e=.016){var t,a;!((t=this.tradeFlowGroup)!=null&&t.visible)||!((a=this.tradeFlowPulseSprites)!=null&&a.length)||this.tradeFlowPulseSprites.forEach(n=>{var u;const s=(u=n.userData)==null?void 0:u.curve;if(!s)return;const o=(ue(n.userData.phase)+ue(n.userData.speed,.16)*e)%1;n.userData.phase=o,n.position.copy(s.getPointAt(o))})}updateTradeFlowLayer(e=this.currentTownRanking){if(!Rr(e)){this.hideTradeFlowLayer();return}this.ensureTradeFlowGroup();const t=this.getTradeFlowSource(e),a=this.getTradeFlowRows(e);if(!t||!a.length){this.clearTradeFlowLayer(),this.hideTradeFlowLayer();return}this.clearTradeFlowLayer(),this.tradeFlowGroup.visible=this.mapAnimationComplete;const n=Gu(e);this.createTradeMarketMarker(t);const s=Math.max(...a.map(d=>d.value),1);a.forEach((d,h)=>{this.createTradeSourceMarker(d,h,s,t,n)});const o=a.length+1;for(let d=this.tradeFlowLabels.length;d{const g=this.tradeFlowLabels[h+1];g.element.className="trade-flow-label",g.init(this.getTradeFlowLabelHtml(d),this.getTradeFlowPoint(d,.78).add(this.getTradeFlowLabelOffset(d,h))),g.visible=!0,g.userData=N({},d)}),this.tradeFlowLabels.slice(o).forEach(d=>{d.visible=!1})}hasTownRankingRows(e=this.currentTownRanking){return this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1).length>0}formatMapRankingValue(e){const t=ue(e);return Math.abs(t)>=100?String(Math.round(t)):Math.abs(t)>=10?String(Number(t.toFixed(1))):String(Number(t.toFixed(2)))}formatMapCompactValue(e){const t=ue(e);return Math.abs(t)>=1e4?`${Number((t/1e4).toFixed(Math.abs(t)>=1e5?1:2))}万`:Math.abs(t)>=1e3?`${Number((t/1e3).toFixed(1))}千`:this.formatMapRankingValue(t)}formatMapIntegerValue(e){const t=ue(e);return Math.round(t).toLocaleString("zh-CN")}getBarHeight(e,t){return t?Math.max(2.8*.12,2.8*(ue(e)/t)):2.8*.25}createBarGeometry(e){const a=new wl(.06999999999999999,.06999999999999999,e);return a.translate(0,0,e/2),a}getProvinceLabelHtml(e,t,a){return`
    +
    +
    +
    ${a.title}
    +
    ${this.formatMapRankingValue(e.value)}${e.unit||a.unit}
    +
    ${e.name}
    +
    +
    ${t+1}
    +
    +
    `}updateBarItem(e,t,a,n,s=!0){var h,g;const o=this.getBarHeight(t.value,n),[u,d]=this.geoProjection(t.centroid);return e.visible=!0,(g=(h=e.geometry)==null?void 0:h.dispose)==null||g.call(h),e.geometry=this.createBarGeometry(o),e.position.set(u,-d,this.depth+.45),e.userData=$(N({},t),{targetValue:t.value,geoHeight:o}),e.children.forEach(m=>{var L,S,C,x;(S=(L=m.geometry)==null?void 0:L.dispose)==null||S.call(L),Array.isArray(m.material)?m.material.forEach(E=>{var O;return(O=E==null?void 0:E.dispose)==null?void 0:O.call(E)}):(x=(C=m.material)==null?void 0:C.dispose)==null||x.call(C)}),e.clear(),e.add(...this.createHUIGUANG(o,a>3?16776948:7863285)),s?ta.to(e.scale,{duration:.45,x:1,y:1,z:1,ease:"power2.out"}):this.mapAnimationComplete&&e.scale.set(1,1,1),{x:u,y:d,geoHeight:o}}updateProvinceLabel(e,t,a,n,s,o=!0){var C;const u=ue((C=e.userData)==null?void 0:C.targetValue,t.value);e.visible=!0,e.userData=$(N({},t),{targetValue:t.value}),e.position.copy(n);const d=e.element.querySelector(".label-title"),h=e.element.querySelector(".number .value"),g=e.element.querySelector(".number .unit"),m=e.element.querySelector(".name"),L=e.element.querySelector(".no");!d||!h||!g||!m||!L?e.element.innerHTML=this.getProvinceLabelHtml(t,a,s):(d.innerText=s.title,h.dataset.targetValue=String(t.value),h.innerText=this.formatMapRankingValue(t.value),g.innerText=t.unit||s.unit,m.innerText=t.name,L.innerText=a+1);const S=e.element.querySelector(".provinces-label-wrap");if(this.mapAnimationComplete&&(S.style.opacity="1",S.style.transform="translate(50%, 0)"),o&&this.mapAnimationComplete){const x=e.element.querySelector(".number .value"),O={value:u};ta.to(O,{value:t.value,duration:.45,ease:"power2.out",onUpdate:()=>{x.innerText=this.formatMapRankingValue(O.value)},onComplete:()=>{x.dataset.previousValue=String(t.value),x.innerText=this.formatMapRankingValue(t.value)}})}}clearTownNameLabelStat(e){const t=e.element.querySelector(".town-stat-label"),a=e.element.querySelector(".town-stat-value"),n=e.element.querySelector(".town-stat-unit"),s=e.element.querySelector(".town-rank"),o=e.element.querySelector(".town-stat-metric");t==null||t.classList.remove("has-stat"),e.element.style.pointerEvents="none",e.element.style.cursor="",a&&(a.innerText=""),n&&(n.innerText=""),s&&(s.innerText=""),o&&(o.innerText="")}updateTownNameLabelStats(e=this.currentTownRanking){var o;if(!((o=this.townNameLabels)!=null&&o.length))return;const t=this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1),a=this.getTownRankingMeta(e);if(a.hideTownLabelStats){this.townNameLabels.forEach(u=>{var g,m;const d=((g=u.userData)==null?void 0:g.townName)||((m=u.userData)==null?void 0:m.name),h=u.element.querySelector(".town-name");h&&(h.innerText=d||""),this.clearTownNameLabelStat(u),u.visible=!a.hideTownNames});return}const n=new Map(t.map(u=>[dt(u.name),u])),s=!!(a.showMissingTownStats&&e&&t.length&&(a.metricLabel||a.unit||a.title));this.townNameLabels.forEach(u=>{var ee,se;const d=((ee=u.userData)==null?void 0:ee.townName)||((se=u.userData)==null?void 0:se.name),h=n.get(dt(d));if(a.onlyRankedTownLabels&&!h){this.clearTownNameLabelStat(u),u.element.style.pointerEvents="none",u.element.style.cursor="",u.visible=!1;return}const g=h||(s?{name:d,value:0,unit:a.unit,metricLabel:a.metricLabel,rank:null}:null);if(!g){this.clearTownNameLabelStat(u),u.element.style.pointerEvents="none",u.element.style.cursor="";return}const m=u.element.querySelector(".town-stat-label"),L=u.element.querySelector(".town-name"),S=u.element.querySelector(".town-stat-value"),C=u.element.querySelector(".town-stat-unit"),x=u.element.querySelector(".town-rank"),E=u.element.querySelector(".town-stat-metric");m==null||m.classList.add("has-stat"),L&&(L.innerText=d),E&&(E.innerText=g.metricLabel||a.metricLabel||""),S&&(S.innerText=this.formatMapRankingValue(g.value)),C&&(C.innerText=g.unit||a.unit||""),x&&(x.innerText=g.rank?`第${g.rank}名`:"");const O=this.isNationalParkTownSelectionActive()&&!!h;u.element.style.pointerEvents=O?"auto":"none",u.element.style.cursor=O?"pointer":"",u.userData=$(N(N({},u.userData),g),{townName:d,targetValue:g.value})})}getInfoPointHtml(e,t=this.getTownRankingMeta()){const a=String(e.metricLabel||t.metricLabel||t.title||"统计指标").replace(/排行$/,""),n=Number(e.rank),s=Number.isFinite(n)?String(n).padStart(2,"0"):"--";return`
    +
    +
    + ${s} + ${Se(e.name||"红原县")} +
    +
    ${Se(a)}
    +
    + ${this.formatMapRankingValue(e.value)} + ${Se(e.unit||t.unit||"")} +
    +
    +
    `}updateInfoPointStats(){var o,u;if(!((o=this.infoPointSprites)!=null&&o.length)||!((u=this.infoLabelElement)!=null&&u.length))return;if(!this.showTownRankingPointMarkers){this.clearInfoPointStats();return}const e=this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1);if(!e.length){this.clearInfoPointStats();return}const t=this.getTownRankingMeta(),a=e.slice(0,this.infoPointSprites.length),n=Math.max(...a.map(d=>d.value),1);this.infoPointSprites.forEach((d,h)=>{const g=a[h],m=this.infoLabelElement[h];if(!g){d.visible=!1,d.scale.set(0,0,0),m&&(m.visible=!1);return}const[L,S]=this.geoProjection(g.centroid||g.center),C=[L,-S,this.depth+.72];d.userData=$(N(N({},d.userData),g),{position:C,value:g.value,unit:g.unit||t.unit,rank:g.rank,metricTitle:t.title,index:h}),d.position.set(...C),d.visible=this.showTownRankingPointMarkers;const x=.78+g.value/n*.44;if(d.scale.set(x,x,x),m){const E=(h%2===0?.22:-.18)+(h===0?.12:0),O=h%3===0?.08:-.04;m.position.set(L+E,-S+O,this.depth+1.88+Math.min(h,4)*.03),m.userData=$(N({},g),{index:h}),m.element.innerHTML=this.getInfoPointHtml(g,t)}});const s=this.infoLabelElement[this.infoPointIndex];s&&this.showTownRankingPointMarkers&&this.mapAnimationComplete&&(s.visible=!0),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}clearInfoPointStats(){var e,t;clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null,this.infoPointIndex=0,this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),(e=this.infoLabelElement)==null||e.forEach(a=>{a.visible=!1}),(t=this.infoPointSprites)==null||t.forEach(a=>{a.visible=!1,a.scale.set(0,0,0)})}createBar(){const e=this.getTownRankingRows();this.getTownRankingMeta();const t=new Te;this.barGroup=t;const a=Math.max(...e.map(n=>n.value),1);this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],e.map((n,s)=>{const o=this.getBarHeight(n.value,a),u=new ve({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Za(u,{uColor1:s>3?16506760:5291006,uColor2:s>3?16776948:7863285,size:o,dir:"y"});const d=new qe(this.createBarGeometry(o),u);d.renderOrder=5;const[h,g]=this.geoProjection(n.centroid);d.position.set(h,-g,this.depth+.45),d.scale.set(1,1,0),d.userData=$(N({},n),{targetValue:n.value,geoHeight:o});const m=this.createQuan(new re(h,this.depth+.44,g),s);d.add(...this.createHUIGUANG(o,s>3?16776948:7863285)),t.add(d),t.rotation.x=-Math.PI/2,this.allBar.push(d),this.allBarMaterial.push(u),this.allGuangquan.push(m)}),this.scene.add(t),this.updateTownNameLabelStats(this.currentTownRanking)}setTownRanking(e){var s,o,u,d,h,g,m,L,S,C,x,E,O,ee,se,Z;this.currentTownRanking=e;const t=this.getTownRankingMeta(e);if(this.showTownRankingBars=!!t.showBars,this.showTownRankingPointMarkers=!!t.showPointMarkers,t.hideMapLabels){this.hideAllMapStatisticLabels(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete);return}if(Rr(e)){this.setTradeNationalMapVisible(!1),this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.clearInfoPointStats(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!1),this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),(s=this.allBar)!=null&&s.length&&(this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(o=this.allBarMaterial)==null||o.forEach(R=>{R.opacity=0}),(u=this.allProvinceLabel)==null||u.forEach(R=>{R.visible=!1}),(d=this.allGuangquan)==null||d.forEach(R=>{R.visible=!1})),this.updateTradeFlowLayer(e),(e!=null&&e.mapView||e!=null&&e.cameraPosition)&&this.applyLayerMapView(null);return}if(this.setTradeNationalMapVisible(!1),this.hideTradeFlowLayer(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete),Nr(e)){this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!Ir(e)),this.clearInfoPointStats(),this.updateVillageRankingLabels(e),(h=this.allBar)!=null&&h.length&&(this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(g=this.allBarMaterial)==null||g.forEach(R=>{R.opacity=0}),(m=this.allProvinceLabel)==null||m.forEach(R=>{R.visible=!1}),(L=this.allGuangquan)==null||L.forEach(R=>{R.visible=!1}));return}if(this.setTownNameLabelsVisible(!t.calloutMode&&!t.hideTownNames),this.hideVillageRankingLabels(),t.calloutMode?this.updateTownNameLabelStats(null):this.updateTownNameLabelStats(e),!((S=this.allBar)!=null&&S.length))return;if(!this.showTownRankingBars){this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(C=this.allBarMaterial)==null||C.forEach(R=>{R.opacity=0}),(x=this.allProvinceLabel)==null||x.forEach(R=>{R.visible=!1}),(E=this.allGuangquan)==null||E.forEach(R=>{R.visible=!1}),this.showTownRankingPointMarkers?(this.InfoPointGroup&&(this.InfoPointGroup.visible=this.mapAnimationComplete&&this.hasTownRankingRows(e)),this.updateInfoPointStats()):this.clearInfoPointStats();return}const a=this.getTownRankingRows(e,7,!1);if(!a.length){this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(O=this.allProvinceLabel)==null||O.forEach(R=>{R.visible=!1}),(ee=this.allGuangquan)==null||ee.forEach(R=>{R.visible=!1}),this.clearInfoPointStats();return}this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.mapAnimationComplete),(se=this.infoPointSprites)==null||se.forEach(R=>{R.visible=this.showTownRankingPointMarkers});const n=Math.max(...a.map(R=>R.value),1);this.allBar.forEach((R,Fe)=>{const We=Fe{R.visible=!1}),this.allGuangquan.forEach((R,Fe)=>{R.visible=Fe{const We=this.allBar[Fe],at=this.allGuangquan[Fe];if(!We)return;const{x:bt,y:W}=this.updateBarItem(We,R,Fe,n,this.mapAnimationComplete);at&&(at.visible=!0,at.position.set(0,0,0),at.children.forEach(Ee=>{Ee.position.set(bt,this.depth+.44,W),this.mapAnimationComplete&&Ee.scale.set(1,1,1)}))}),this.updateInfoPointStats()}createEvent(){let e=[];const t=n=>{n.traverse(s=>{s.isMesh&&(s.material=this.defaultMaterial)})},a=n=>{n.traverse(s=>{s.isMesh&&(s.material=this.defaultLightMaterial)})};this.eventElement.map(n=>{this.interactionManager.add(n),n.addEventListener("mousedown",s=>{this.handleMapClick(s)}),n.addEventListener("mouseover",s=>{e.includes(s.target.parent)||e.push(s.target.parent),document.body.style.cursor="pointer",a(s.target.parent)}),n.addEventListener("mouseout",s=>{e=e.filter(o=>o.userData.name!==s.target.parent.userData.name),e.length>0&&e[e.length-1],t(s.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(e,t){let a=new It(.35,e);a.translate(0,e/2,0);const n=this.assets.instance.getResource("huiguang");n.colorSpace=ia,n.wrapS=ut,n.wrapT=ut;let s=new ve({color:t,map:n,transparent:!0,opacity:.4,depthWrite:!1,side:Re,blending:Ie}),o=new qe(a,s);o.renderOrder=10,o.rotateX(Math.PI/2);let u=o.clone(),d=o.clone();return u.rotateY(Math.PI/180*60),d.rotateY(Math.PI/180*120),[o,u,d]}createQuan(e,t){const a=this.assets.instance.getResource("guangquan1"),n=this.assets.instance.getResource("guangquan2");let s=new It(.5,.5),o=new ve({color:16777215,map:a,alphaMap:a,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Ie}),u=new ve({color:16777215,map:n,alphaMap:n,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Ie}),d=new qe(s,o),h=new qe(s,u);return d.renderOrder=6,h.renderOrder=6,d.rotateX(-Math.PI/2),h.rotateX(-Math.PI/2),d.position.copy(e),h.position.copy(e),h.position.y-=.001,d.scale.set(0,0,0),h.scale.set(0,0,0),this.quanGroup=new Te,this.quanGroup.add(d,h),this.scene.add(this.quanGroup),this.time.on("tick",()=>{d.rotation.z+=.05}),this.quanGroup}createDiffuse(){let e=new It(200,200),t=new ve({color:0,depthWrite:!1,transparent:!0,blending:Ll});t.blendEquation=Tl,t.blendSrc=Sl,t.blendDst=Ml,new Gl({material:t,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:n=>{const s=setTimeout(()=>{this.addSceneTween(ta.to(n.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(s)}});let a=new qe(e,t);a.renderOrder=3,a.rotation.x=-Math.PI/2,a.position.set(0,.21,0),this.scene.add(a)}createGrid(){new _l(this,{gridSize:54,gridDivision:24,gridColor:1990543,shapeSize:.55,shapeColor:3309487,pointSize:.085,pointColor:1993891,pointBlending:Ie})}createBottomBg(){let e=new It(24,24);const t=this.assets.instance.getResource("ocean");t.colorSpace=ia,t.wrapS=ut,t.wrapT=ut,t.repeat.set(1,1);let a=new ve({map:t,opacity:.92,fog:!1}),n=new qe(e,a);n.rotation.x=-Math.PI/2,n.position.set(0,-.7,0),this.scene.add(n)}createChinaBlurLine(){let e=new It(154,154);const t=this.assets.instance.getResource("chinaBlurLine");t.colorSpace=ia,t.wrapS=ut,t.wrapT=ut,t.generateMipmaps=!1,t.minFilter=ir,t.repeat.set(1,1);let a=new ve({color:4162253,alphaMap:t,transparent:!0,opacity:.62}),n=new qe(e,a);n.rotateX(-Math.PI/2),n.position.set(-19.3,-.5,-19.7),this.scene.add(n)}createLabel(){let e=this,t=this.labelGroup,a=this.label3d,n=[],s=[];cu.map(u=>{if(u.hide==!0)return!1;let d=o(u,a,t);n.push(d),s.push(d)}),this.otherLabel=n,this.townNameLabels=s;function o(u,d,h){let g=d.create("",`china-label ${u.blur?" blur":""}`,!0);const[m,L]=e.geoProjection(u.center);return g.init(`
    +
    ${u.name}
    +
    +
    `,new re(m,-L,e.depth+.85)),d.setLabelStyle(g,.018,"x"),g.setParent(h),g.userData=$(N({},u),{labelType:"town-label",baseScale:.018,townName:u.name}),g.element.addEventListener("pointerdown",S=>{e.handleTownRankingSelect(u.name,{preserveCamera:!0,statusText:`已选中${u.name}`})&&(S.preventDefault(),S.stopPropagation())}),g}}createRotateBorder(){let e=13.2,t=this.assets.instance.getResource("rotationBorder1"),a=this.assets.instance.getResource("rotationBorder2"),n=new dr(this,{width:e*1.178,needRotate:!0,rotateSpeed:.001,material:new ve({map:t,color:4763647,transparent:!0,opacity:.26,side:Re,depthWrite:!1,blending:Ie}),position:new re(0,.31,0)});n.instance.rotation.x=-Math.PI/2,n.instance.renderOrder=6,n.instance.scale.set(0,0,0),n.setParent(this.scene);let s=new dr(this,{width:e*1.116,needRotate:!0,rotateSpeed:-.004,material:new ve({map:a,color:4763647,transparent:!0,opacity:.5,side:Re,depthWrite:!1,blending:Ie}),position:new re(0,.33,0)});s.instance.rotation.x=-Math.PI/2,s.instance.renderOrder=6,s.instance.scale.set(0,0,0),s.setParent(this.scene),this.rotateBorder1=n.instance,this.rotateBorder2=s.instance}createFlyLine(){this.flyLineGroup=new Te,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup)}createFocus(){this.flyLineFocusGroup.clear()}createParticles(){this.particles=new hr(this,{num:10,range:30,dir:"up",speed:.05,material:new kl({map:hr.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:Ie,sizeAttenuation:!0})}),this.particleGroup=new Te,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new Te,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const e=this.assets.instance.getResource("arrow"),t=new Qt({map:e,color:16776948,fog:!1,transparent:!0,depthTest:!1});let a=xr(du),n=a[0].value;a.map(s=>{const o=new Jt(t);o.renderOrder=23;let u=.1+s.value/n*.2;o.scale.set(u,u,u);let[d,h]=this.geoProjection([s.lng,s.lat]);o.position.set(d,-h,this.depth+.45),o.userData.position=[d,-h,this.depth+.45],this.scatterGroup.add(o)})}createInfoPoint(){let e=this;this.InfoPointGroup=new Te,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[],this.infoPointSprites=[];let t=this.label3d;const a=this.assets.instance.getResource("point");let n=[16776948,7863285],s=xr(hu),o=s[0].value;s.map((d,h)=>{const g=new Qt({map:a,color:n[h%n.length],fog:!1,transparent:!0,depthTest:!1}),m=new Jt(g);m.renderOrder=23;let L=.7+d.value/o*.4;m.scale.set(L,L,L);let[S,C]=this.geoProjection([d.lng,d.lat]),x=[S,-C,this.depth+.7];m.position.set(...x),m.userData.position=[...x],m.userData={position:[S,-C,this.depth+.7],name:d.name,value:d.value,level:d.level,index:h},this.InfoPointGroup.add(m);let E=u(d,t,this.InfoPointGroup,h);this.infoLabelElement.push(E),this.infoPointSprites.push(m),this.interactionManager.add(m),m.addEventListener("mousedown",O=>{var ee,se;if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.infoPointIndex=O.target.userData.index,this.infoLabelElement.map(Z=>{Z.visible=!1}),E.visible=!0,this.handleTownRankingSelect(((ee=O.target.userData)==null?void 0:ee.name)||((se=O.target.userData)==null?void 0:se.townName)),this.createInfoPointLabelLoop()}),m.addEventListener("mouseup",O=>{this.clicked=!1}),m.addEventListener("mouseover",O=>{document.body.style.cursor="pointer"}),m.addEventListener("mouseout",O=>{document.body.style.cursor="default"})});function u(d,h,g,m){let L=h.create("","info-point",!0);const[S,C]=e.geoProjection([d.lng,d.lat]);return L.init(e.getInfoPointHtml($(N({},d),{value:0,rank:m+1,unit:""}),e.getTownRankingMeta()),new re(S,-C,e.depth+1.9)),h.setLabelStyle(L,.015,"x"),L.setParent(g),L.visible=!1,L}}createInfoPointLabelLoop(){var e;this.scenePaused||!((e=this.infoLabelElement)!=null&&e.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((t,a)=>{this.infoPointIndex===a?t.visible=!0:t.visible=!1})},3e3))}createStorke(){const e=this.staticMapData.mapStroke,t=this.assets.instance.getResource("pathLine3");t.wrapS=t.wrapT=ut,t.repeat.set(2,1);let a=new ea(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.24),data:e,material:new ve({color:2868444,map:t,alphaMap:t,fog:!1,transparent:!0,opacity:1,blending:Ie}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(a.lineGroup),this.time.on("tick",()=>{t.offset.x+=.005})}handleMapClick(e){return he(this,null,function*(){var s,o,u,d,h,g,m,L,S,C,x,E,O,ee,se,Z,R,Fe,We,at,bt,W,Ee,kt,ht,Pt,Ut,vt,pt,Ye,Ue,ce,we,Ct,it,$e,nt,xe,je,rt,M;if(!this.currentTopicLayer)return;const t=this.getScreenPointFromEvent(e),a=this.getLngLatFromEvent(e);if(!a){this.clearSelectedFeature(),(o=(s=this.callbacks).onFeatureInfo)==null||o.call(s,{feature:null});return}if(this.boundaryDrawingEnabled){const v=((u=e==null?void 0:e.data)==null?void 0:u.originalEvent)||(e==null?void 0:e.originalEvent)||e;if(v!=null&&v.__analysisBoundaryHandled)return;this.addBoundaryDrawPoint(a);return}if(this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)&&!this.isLngLatInHongyuanBoundary(a)){this.clearSelectedFeature(),(h=(d=this.callbacks).onFeatureInfo)==null||h.call(d,{feature:null}),(m=(g=this.callbacks).onLayerStatus)==null||m.call(g,{type:"success",text:"当前点击位置不在红原县边界内"});return}if(this.shouldClipLayerToLayerBounds(this.currentTopicLayer)&&!this.isLngLatInLayerClipBounds(a,this.currentTopicLayer)){this.clearSelectedFeature(),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:null}),(x=(C=this.callbacks).onLayerStatus)==null||x.call(C,{type:"success",text:"当前点击位置不在图层显示范围内"});return}if(Bu(this.currentTopicLayer)){this.clearSelectedFeature(),(O=(E=this.callbacks).onFeatureInfo)==null||O.call(E,{feature:null});return}if(Qa(this.currentTopicLayer)){const v=this.pickVectorFeatureAtPoint(a,t),G=(v==null?void 0:v.feature)||v;let V=(v==null?void 0:v.screen)||t;if(G)this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)?(this.clearSelectedGeometryGroup(),this.setSelectedVectorFeatures([G])):this.showSelectedFeature(G),((ee=this.currentTopicLayer)==null?void 0:ee.key)==="yak-industry-points"&&(this.setSelectedVectorFeatures([G]),V=this.getPointFeatureScreenPoint(G)||V),(We=(Fe=this.callbacks).onFeatureInfo)==null||We.call(Fe,{feature:{id:((se=G.properties)==null?void 0:se.id)||((Z=G.properties)==null?void 0:Z.feature_id)||((R=G.properties)==null?void 0:R.project_name),properties:G.properties||{},feature:G,layer:this.currentTopicLayer,lngLat:a},screen:V}),(bt=(at=this.callbacks).onLayerStatus)==null||bt.call(at,{type:"success",text:"真实矢量要素已选中"});else{const U=this.getTownNameFromMapEvent(e);if(this.handleTownRankingSelect(U))return;this.clearSelectedFeature(),(Ee=(W=this.callbacks).onFeatureInfo)==null||Ee.call(W,{feature:null}),(ht=(kt=this.callbacks).onLayerStatus)==null||ht.call(kt,{type:"success",text:"当前点击位置无生态保护要素"})}return}const n=this.lngLatToWmsPixel(a);(Ut=(Pt=this.callbacks).onFeatureInfo)==null||Ut.call(Pt,{feature:null}),(pt=(vt=this.callbacks).onFeatureLoading)==null||pt.call(vt,!0);try{const v=yield br(this.currentTopicLayer,n,{size:_t,buffer:10}),G=this.normalizeFeatureInfoAtPoint(v,a),V=G?null:yield this.queryFallbackFeatureInfo(a),U=G||(V==null?void 0:V.feature);if(U){const J=yield this.enrichFeatureInfo(U,n,a);this.showSelectedFeature(J.feature||J),(Ue=(Ye=this.callbacks).onFeatureInfo)==null||Ue.call(Ye,{feature:$(N({},J),{layer:(V==null?void 0:V.layer)||this.currentTopicLayer,lngLat:a}),screen:t})}else this.clearSelectedFeature(),(we=(ce=this.callbacks).onFeatureInfo)==null||we.call(ce,{feature:null});U||(it=(Ct=this.callbacks).onLayerStatus)==null||it.call(Ct,{type:"success",text:"当前点击位置无图斑"})}catch(v){this.clearSelectedFeature(),(nt=($e=this.callbacks).onFeatureInfo)==null||nt.call($e,{feature:null}),(je=(xe=this.callbacks).onLayerStatus)==null||je.call(xe,{type:"error",text:"图斑信息查询失败"})}finally{(M=(rt=this.callbacks).onFeatureLoading)==null||M.call(rt,!1)}})}handleCanvasBoundaryPointerDown(e){var a,n;if(!this.boundaryDrawingEnabled)return;const t=this.getLngLatFromCanvasEvent(e);t&&this.addBoundaryDrawPoint(t)&&(e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(n=e.stopPropagation)==null||n.call(e)}handleCanvasBoundaryDoubleClick(e){var a,n;if(!this.boundaryDrawingEnabled)return;const t=this.getLngLatFromCanvasEvent(e);(this.boundaryDrawPoints||[]).length<3&&t&&this.addBoundaryDrawPoint(t),(this.boundaryDrawPoints||[]).length>=3&&(this.finishBoundaryDrawing(),e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(n=e.stopPropagation)==null||n.call(e)}getLngLatFromCanvasEvent(e){var L,S,C;if(!((L=this.camera)!=null&&L.instance)||!this.focusMapGroup||!this.canvas)return null;const t=this.canvas.getBoundingClientRect();if(!t.width||!t.height)return null;const a=(S=this.interactionManager)==null?void 0:S.raycaster;if(!(a!=null&&a.setFromCamera))return null;const n={x:(e.clientX-t.left)/t.width*2-1,y:-((e.clientY-t.top)/t.height)*2+1};a.setFromCamera(n,this.camera.instance);const o=((C=a.intersectObjects(this.eventElement||[],!0)[0])==null?void 0:C.point)||this.getRayMapPlaneIntersection(a.ray);if(!o)return null;const u=this.focusMapGroup.worldToLocal(o.clone()),h=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([u.x,-u.y]);if(!h)return null;const g=Number(h[0]),m=Number(h[1]);return!Number.isFinite(g)||!Number.isFinite(m)?null:gq.east+.03||mq.north+.03?this.getFallbackLngLatFromPointer(e,t):{lng:g,lat:m}}getFallbackLngLatFromPointer(e,t=(n=>(n=(a=>(a=this.canvas)==null?void 0:a.getBoundingClientRect)())==null?void 0:n.call(a))()){if(!(t!=null&&t.width)||!(t!=null&&t.height))return null;const s=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),o=Math.min(1,Math.max(0,(e.clientY-t.top)/t.height)),u=q.west+(q.east-q.west)*s,d=q.north-(q.north-q.south)*o;return{lng:u,lat:d}}getRayMapPlaneIntersection(e){if(!(e!=null&&e.origin)||!(e!=null&&e.direction)||!this.focusMapGroup)return null;const t=this.focusMapGroup.worldToLocal(e.origin.clone()),n=this.focusMapGroup.worldToLocal(e.origin.clone().add(e.direction.clone())).sub(t),s=this.depth+.22;if(Math.abs(n.z)<1e-8)return null;const o=(s-t.z)/n.z;if(!Number.isFinite(o)||o<0)return null;const u=t.add(n.multiplyScalar(o));return this.focusMapGroup.localToWorld(u)}enrichFeatureInfo(e,t,a){return he(this,null,function*(){const n=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(n))return e;const o=(Wi[n]||[]).find(m=>m.key===`${n}-distribution`),u=(this.visibleTopicLayers||[]).filter(m=>this.getLayerTopicKey(m)===n).slice(0,5),d=[o,this.currentTopicLayer,...u].filter(m=>m==null?void 0:m.layerName).filter((m,L,S)=>S.findIndex(C=>this.getLayerQueryKey(C)===this.getLayerQueryKey(m))===L);if(!d.length)return e;const h=yield Promise.allSettled([...d.filter(m=>this.getLayerQueryKey(m)!==this.getLayerQueryKey(this.currentTopicLayer)).map(m=>he(this,null,function*(){const L=yield br(m,t,{size:_t,buffer:10}),S=this.normalizeFeatureInfoAtPoint(L,a);return S?{layer:m,feature:S,source:"wms"}:null})),...d.map(m=>he(this,null,function*(){const L=yield this.queryLayerFeatureByPoint(m,a);return L?{layer:m,feature:L,source:"wfs"}:null}))]),g=N({},e.properties||{});return h.forEach(m=>{var L,S;m.status!=="fulfilled"||!((S=(L=m.value)==null?void 0:L.feature)!=null&&S.properties)||this.mergeBusinessProperties(g,m.value.feature.properties,m.value.layer)}),$(N({},e),{properties:g,relatedFeatures:h.filter(m=>{var L;return m.status==="fulfilled"&&((L=m.value)==null?void 0:L.feature)}).map(m=>m.value),feature:$(N({},e.feature||{}),{properties:g})})})}queryFallbackFeatureInfo(e){return he(this,null,function*(){const t=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(t))return null;const n=[(Wi[t]||[]).find(s=>s.key===`${t}-distribution`),this.currentTopicLayer,...(this.visibleTopicLayers||[]).filter(s=>this.getLayerTopicKey(s)===t)].filter((s,o,u)=>(s==null?void 0:s.layerName)&&u.findIndex(d=>this.getLayerQueryKey(d)===this.getLayerQueryKey(s))===o);for(const s of n){const o=yield this.queryLayerFeatureByPoint(s,e,{requireContainment:!0});if(o)return{layer:s,feature:o}}return null})}normalizeFeatureInfoAtPoint(e,t){const a=Array.isArray(e==null?void 0:e.features)?e.features:[];if(!a.length)return null;const n=this.pickFeatureAtPoint(a,t,{requireContainment:!0});if(!n)return null;const s=n.properties||{};return{id:n.id||s.gid||s.objectid||s.OBJECTID,properties:s,feature:n}}queryLayerFeatureByPoint(n,s){return he(this,arguments,function*(e,t,a={}){var C,x,E;if(!(e!=null&&e.layerName)||!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const o=e.pointQueryTolerance||.0015,u=e.geometryField||"geom",d=t.lng-o,h=t.lat-o,g=t.lng+o,m=t.lat+o,L=yield yr(e.layerName,{cqlFilter:`BBOX(${u},${d},${h},${g},${m})`,maxFeatures:8,timeout:12e3}),S=this.pickFeatureAtPoint((L==null?void 0:L.features)||[],t,a);return S?{id:S.id||((C=S.properties)==null?void 0:C.gid)||((x=S.properties)==null?void 0:x.objectid)||((E=S.properties)==null?void 0:E.OBJECTID),properties:S.properties||{},feature:S}:null})}pickFeatureAtPoint(e,t,a={}){var s;if(!Array.isArray(e)||!e.length)return null;const n=e.filter(o=>this.isLngLatInGeometry(t,o.geometry)).sort((o,u)=>this.getGeometryAreaScore(o.geometry)-this.getGeometryAreaScore(u.geometry));return n.length?n[0]:a.requireContainment?null:((s=e.map(o=>({feature:o,distance:this.getGeometryDistanceScore(o.geometry,t)})).sort((o,u)=>o.distance-u.distance)[0])==null?void 0:s.feature)||null}isLngLatInGeometry(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?this.isLngLatInPolygon(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(a=>this.isLngLatInPolygon(e,a)):!1}isLngLatInPolygon(e,t=[]){return!t.length||!this.isLngLatInRing(e,t[0])?!1:!t.slice(1).some(n=>this.isLngLatInRing(e,n))}isLngLatInRing(e,t=[]){if(t.length<3)return!1;let a=!1;const n=e.lng,s=e.lat;for(let o=0,u=t.length-1;os!=S>s&&n<(L-g)*(s-m)/(S-m)+g&&(a=!a)}return a}isPointOnSegment(e,t,a,n,s,o){const u=(e-a)*(o-n)-(t-n)*(s-a);return Math.abs(u)>1e-10?!1:(e-a)*(e-s)+(t-n)*(t-o)<=1e-10}getGeometryAreaScore(e){return e!=null&&e.coordinates?e.type==="Polygon"?this.getLngLatPolygonAreaScore(e.coordinates):e.type==="MultiPolygon"?e.coordinates.reduce((t,a)=>t+this.getLngLatPolygonAreaScore(a),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}getLngLatPolygonAreaScore(e=[]){const t=e[0]||[];if(t.length<3)return Number.POSITIVE_INFINITY;let a=0;for(let n=0;n({minLng:Math.min(a.minLng,Number((n==null?void 0:n[0])||0)),minLat:Math.min(a.minLat,Number((n==null?void 0:n[1])||0)),maxLng:Math.max(a.maxLng,Number((n==null?void 0:n[0])||0)),maxLat:Math.max(a.maxLat,Number((n==null?void 0:n[1])||0))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}getGeometryCoordinateList(e){const t=[],a=n=>{if(Array.isArray(n)){if(typeof n[0]=="number"&&typeof n[1]=="number"){t.push(n);return}n.forEach(a)}};return a(e==null?void 0:e.coordinates),t}pickVectorFeatureAtPoint(e,t){var o;const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]);if(((o=this.currentTopicLayer)==null?void 0:o.key)==="yak-industry-points"){const u=this.pickPointFeatureAtScreenPoint(a,t);if(u)return u}const n=a.filter(u=>this.isLngLatInGeometry(e,u.geometry)).sort((u,d)=>this.getGeometryAreaScore(u.geometry)-this.getGeometryAreaScore(d.geometry));if(n.length)return n[0];const s=a.find(u=>this.isPointOrLineNearLngLat(u.geometry,e));return s||null}pickPointFeatureAtScreenPoint(e,t){var s;if(!t||!((s=this.camera)!=null&&s.instance)||!this.focusMapGroup||!this.canvas)return null;const n=(e||[]).filter(o=>{var u;return((u=o==null?void 0:o.geometry)==null?void 0:u.type)==="Point"}).map(o=>{const u=this.getPointFeatureScreenPoint(o);return u?{feature:o,screen:u,distance:Math.hypot(u.x-t.x,u.y-t.y)}:null}).filter(Boolean).sort((o,u)=>o.distance-u.distance)[0];return(n==null?void 0:n.distance)<=22?{feature:n.feature,screen:n.screen}:null}getPointFeatureScreenPoint(e){var a,n;const t=(e==null?void 0:e.geometry)||((a=e==null?void 0:e.feature)==null?void 0:a.geometry);return(t==null?void 0:t.type)!=="Point"?null:((n=this.currentTopicLayer)==null?void 0:n.key)==="yak-industry-points"?this.lngLatToLayerScreenPoint(t.coordinates,this.depth+.36):this.lngLatToScreenPoint(t.coordinates,this.depth+.32)}lngLatToLayerLocalPoint(e,t=0){const a=()=>{const h=Number(e==null?void 0:e[0]),g=Number(e==null?void 0:e[1]);if(!Number.isFinite(h)||!Number.isFinite(g))return new re(0,0,Number(t)||0);const[m,L]=this.geoProjection([h,g]);return new re(m,-L,Number(t)||0)},n=this.topicLayerUvBounds;if(!n)return a();const s=this.lngLatToLayerCanvasPoint(e),o=this.topicLayerCanvas;if(!(o!=null&&o.width)||!(o!=null&&o.height))return a();const u=n.left+s.x/o.width*(n.right-n.left),d=n.bottom+(o.height-s.y)/o.height*(n.top-n.bottom);return new re(u,d,Number(t)||0)}lngLatToLayerScreenPoint(e,t=0){return this.localMapPointToScreenPoint(this.lngLatToLayerLocalPoint(e,t))}lngLatToScreenPoint(e,t=0){const a=Number(e==null?void 0:e[0]),n=Number(e==null?void 0:e[1]);if(!Number.isFinite(a)||!Number.isFinite(n))return null;const s=this.lngLatToWorldPoint([a,n],t);return this.worldPointToScreenPoint(s)}localMapPointToScreenPoint(e){const t=this.focusMapGroup?this.focusMapGroup.localToWorld(e):e;return this.worldPointToScreenPoint(t)}worldPointToScreenPoint(e){var n;if(!((n=this.camera)!=null&&n.instance)||!this.canvas||!e)return null;const t=this.canvas.getBoundingClientRect();if(!t.width||!t.height)return null;const a=e.clone().project(this.camera.instance);return!Number.isFinite(a.x)||!Number.isFinite(a.y)?null:{x:t.left+(a.x+1)/2*t.width,y:t.top+(1-a.y)/2*t.height}}focusProject(e){var L,S,C,x;const t=String(e||"").trim();if(!t)return!1;const a=(this.currentVectorFeatures||[]).filter(E=>{var O;return String(((O=E==null?void 0:E.properties)==null?void 0:O.project_name)||"").trim()===t});if(!a.length)return(S=(L=this.callbacks).onLayerStatus)==null||S.call(L,{type:"success",text:"当前项目图斑尚未加载"}),!1;const n=this.getFeatureListLngLatBounds(a);if(!n)return!1;const s=this.getProjectHighlightFeatures(a);s.length?(this.showSelectedFeatures(s),this.setSelectedVectorFeatures(s)):this.clearSelectedFeature();const o=[(n.minLng+n.maxLng)/2,(n.minLat+n.maxLat)/2],u=Math.max(n.maxLng-n.minLng,n.maxLat-n.minLat),d=Math.max(.22,Math.min(.55,u*1.25)),h=this.lngLatToWorldPoint(o,.72),g=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(d),m=h.clone().add(g);return this.animateMapCamera(m,h,.75),(x=(C=this.callbacks).onLayerStatus)==null||x.call(C,{type:"success",text:"已定位项目"}),!0}setBoundaryDrawing(e){var t,a,n,s;this.boundaryDrawingEnabled=!!e,this.boundaryDrawingEnabled?(this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.clearSelectedFeature(),(a=(t=this.callbacks).onLayerStatus)==null||a.call(t,{type:"success",text:"请在地图上依次点击绘制分析边界"})):(s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"success",text:"已退出边界绘制"}),this.redrawVectorTopicLayer()}addBoundaryDrawPoint(e){var s,o,u,d;if(!Number.isFinite(e==null?void 0:e.lng)||!Number.isFinite(e==null?void 0:e.lat))return!1;const t=Date.now(),a=this.lastBoundaryDrawPoint;return a&&t-a.time<350&&Math.hypot(e.lng-a.lng,e.lat-a.lat)<8e-4?!1:(this.lastBoundaryDrawPoint={lng:e.lng,lat:e.lat,time:t},this.boundaryDrawPoints=[...this.boundaryDrawPoints||[],{lng:e.lng,lat:e.lat}],(o=(s=this.callbacks).onDrawBoundary)==null||o.call(s,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:`已添加边界点 ${this.boundaryDrawPoints.length} 个`}),this.redrawVectorTopicLayer(),!0)}undoBoundaryPoint(){var e,t,a;return(e=this.boundaryDrawPoints)!=null&&e.length?(this.boundaryDrawPoints=this.boundaryDrawPoints.slice(0,-1),(a=(t=this.callbacks).onDrawBoundary)==null||a.call(t,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),this.redrawVectorTopicLayer(),!0):!1}finishBoundaryDrawing(){var o,u,d,h,g,m;const e=this.boundaryDrawPoints||[];if(e.length<3)return(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"至少需要 3 个点才能形成分析边界"}),null;const t=e.map(L=>[L.lng,L.lat]),a=t[0],n=t[t.length-1];(a[0]!==n[0]||a[1]!==n[1])&&t.push([...a]);const s={type:"Feature",properties:{source:"draw",pointCount:e.length},geometry:{type:"Polygon",coordinates:[t]}};return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=s,(h=(d=this.callbacks).onDrawBoundary)==null||h.call(d,{status:"complete",feature:s,points:e,pointCount:e.length}),(m=(g=this.callbacks).onLayerStatus)==null||m.call(g,{type:"success",text:"分析边界已生成"}),this.redrawVectorTopicLayer(),s}clearAnalysisBoundary(){var e,t;return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.redrawVectorTopicLayer(),(t=(e=this.callbacks).onDrawBoundary)==null||t.call(e,{status:"clear",points:[],pointCount:0}),!0}showAnalysisResult(e={}){var s;const t=Object.prototype.hasOwnProperty.call(e,"boundary")||Object.prototype.hasOwnProperty.call(e,"boundaryFeature")||Object.prototype.hasOwnProperty.call(e,"feature"),a=e.boundary||e.boundaryFeature||e.feature||null,n=Array.isArray(e.matches)?e.matches:[];return t&&(this.analysisBoundaryFeature=(a==null?void 0:a.type)==="Feature"?a:a!=null&&a.geometry?{type:"Feature",properties:a.properties||{},geometry:a.geometry}:null),this.analysisMatchedFeatures=n.map(o=>(o==null?void 0:o.feature)||o).filter(o=>o==null?void 0:o.geometry),e.preserveView||(!t&&this.analysisMatchedFeatures.length?this.focusAnalysisFeatures(this.analysisMatchedFeatures):(s=this.analysisBoundaryFeature)!=null&&s.geometry&&this.focusAnalysisGeometry(this.analysisBoundaryFeature.geometry)),this.redrawVectorTopicLayer(),!0}focusAnalysisFeatures(e=[]){const t=this.getFeatureListLngLatBounds(e);if(!t)return!1;const a=[(t.minLng+t.maxLng)/2,(t.minLat+t.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(t.maxLng-t.minLng,t.maxLat-t.minLat),statusText:"已定位命中项目"})}focusAnalysisGeometry(e){const t=this.getGeometryLngLatBounds(e);if(!t)return!1;const a=[(t.minLng+t.maxLng)/2,(t.minLat+t.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(t.maxLng-t.minLng,t.maxLat-t.minLat),statusText:"已定位分析边界"})}focusPasture(e={}){var n,s;const a=[...this.normalizePastureGrasslandRows(e==null?void 0:e.grasslands),...this.normalizePastureGrasslandRows(e==null?void 0:e.wkt)].map((o,u)=>{const d=this.normalizePastureGrasslandGeometry(o);if(!d)return null;const h=this.normalizePastureGrasslandProperties(o);return{type:"Feature",properties:$(N({},h),{id:h.id||h.gid||`${(e==null?void 0:e.name)||"pasture"}-${u}`,pasture_name:(e==null?void 0:e.name)||h.pastureName||h.name}),geometry:d}}).filter(Boolean);if(a.length){const o=this.getFeatureListLngLatBounds(a);if(!o)return!1;this.showSelectedFeatures(a,{mode:"pasture"}),this.setSelectedVectorFeatures(a);const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),statusText:"已定位具体草场"}),!0}return(s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"当前牧户暂无可定位数据"}),!1}normalizePastureGrasslandRows(e){return e?typeof e=="string"?[e]:Array.isArray(e)?e:(e==null?void 0:e.type)==="FeatureCollection"&&Array.isArray(e.features)?e.features:(e==null?void 0:e.type)==="Feature"||this.isGeoJsonGeometry(e)?[e]:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.data)?e.data:e!=null&&e.data?this.normalizePastureGrasslandRows(e.data):Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.features)?e.features:e!=null&&e.wkt||e!=null&&e.geo||e!=null&&e.geom||e!=null&&e.geometryWkt||e!=null&&e.geometry_wkt||e!=null&&e.shape||e!=null&&e.location||e!=null&&e.geometry?[e]:[]:[]}normalizePastureGrasslandGeometry(e){var t;return typeof e=="string"?this.parseGeometryText(e):(e==null?void 0:e.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry):this.isGeoJsonGeometry(e)?e:typeof(e==null?void 0:e.geometry)=="string"?this.parseGeometryText(e.geometry):((t=e==null?void 0:e.geometry)==null?void 0:t.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry.geometry):this.isGeoJsonGeometry(e==null?void 0:e.geometry)?e.geometry:this.parseGeometryText((e==null?void 0:e.wkt)||(e==null?void 0:e.geo)||(e==null?void 0:e.geom)||(e==null?void 0:e.geometryWkt)||(e==null?void 0:e.geometry_wkt)||(e==null?void 0:e.shape)||(e==null?void 0:e.location))}normalizePastureGrasslandProperties(e){return!e||typeof e!="object"||Array.isArray(e)?{wkt:e}:e.type==="Feature"?e.properties||{}:e}parseGeometryText(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")||t.startsWith("["))try{const a=JSON.parse(t);if((a==null?void 0:a.type)==="Feature")return this.normalizePastureGrasslandGeometry(a);if(this.isGeoJsonGeometry(a))return a}catch(a){return null}return this.parseWktGeometry(t)}isGeoJsonGeometry(e){return!!(e&&["Polygon","MultiPolygon","LineString","MultiLineString","Point"].includes(e.type)&&e.coordinates)}flyToLngLat(e,t={}){var m,L;const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return!1;const o=Number(t.span),u=Number.isFinite(o)?Math.max(.2,Math.min(.55,o*1.25)):.32,d=this.lngLatToWorldPoint([n,s],.72),h=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(u),g=d.clone().add(h);return this.animateMapCamera(g,d,t.duration||.75),(L=(m=this.callbacks).onLayerStatus)==null||L.call(m,{type:"success",text:t.statusText||"已定位"}),!0}getProjectHighlightFeatures(e){const t=e.filter(n=>{var o;const s=String(((o=n==null?void 0:n.geometry)==null?void 0:o.type)||"");return s.includes("Polygon")||s.includes("LineString")}),a=t.filter(n=>{var s;return((s=n==null?void 0:n.properties)==null?void 0:s.feature_role)==="工程范围"});return a.length?a:t}getFeatureListLngLatBounds(e){return e.reduce((t,a)=>{const n=this.getGeometryLngLatBounds(a.geometry);return n?t?{minLng:Math.min(t.minLng,n.minLng),minLat:Math.min(t.minLat,n.minLat),maxLng:Math.max(t.maxLng,n.maxLng),maxLat:Math.max(t.maxLat,n.maxLat)}:N({},n):t},null)}isPointOrLineNearLngLat(e,t){return e!=null&&e.coordinates?e.type==="Point"?this.getCoordinateDistance(e.coordinates,[t.lng,t.lat])<=.02:e.type==="LineString"?this.isCoordinateNearLine(e.coordinates,t,.004):e.type==="MultiLineString"?e.coordinates.some(a=>this.isCoordinateNearLine(a,t,.004)):!1:!1}isCoordinateNearLine(e,t,a){if(!Array.isArray(e)||e.length<2)return!1;const n=[t.lng,t.lat];for(let s=1;ss.some(o=>o.key===a||o.layerName===t));return(n==null?void 0:n[0])||""}getLayerQueryKey(e){return[(e==null?void 0:e.layerName)||"",(e==null?void 0:e.styles)||"",(e==null?void 0:e.cqlFilter)||"",(e==null?void 0:e.key)||""].join("|")}mergeBusinessProperties(e,t,a){const n=(a==null?void 0:a.key)||"";if(Object.entries(t||{}).forEach(([s,o])=>{o==null||o===""||(e[s]===void 0||e[s]===null||e[s]==="")&&(e[s]=o)}),n==="basic-grassland"){const s=(t==null?void 0:t.basic_type_name)||(t==null?void 0:t.grassland_category_name)||(t==null?void 0:t.land_class_name)||(t==null?void 0:t.land_use_name)||(t==null?void 0:t.base_grass);s!=null&&s!==""&&(e.basic_type_name=s)}if(n==="grassland-level"){const s=(t==null?void 0:t.grassland_level)||(t==null?void 0:t.level)||(t==null?void 0:t.grassland_level_name)||(t==null?void 0:t.level_name);s!=null&&s!==""&&(e.grassland_level=s)}if(n==="grassland-type"||n==="wetland-type"){const s=(t==null?void 0:t.grass_min_type)||(t==null?void 0:t.grass_type)||(t==null?void 0:t.grassland_type)||(t==null?void 0:t.type_name)||(t==null?void 0:t.type);s!=null&&s!==""&&(e.grass_min_type=s)}if(n==="grassland-yield"||n==="wetland-yield"){const s=(t==null?void 0:t.yield)||(t==null?void 0:t.xc_yield)||(t==null?void 0:t.xb_xc_yield)||(t==null?void 0:t.fresh_grass_yield)||(t==null?void 0:t.value),o=(t==null?void 0:t.mu_yield)||(t==null?void 0:t.xc_mu_yield)||(t==null?void 0:t.xb_xc_mu_yield)||(t==null?void 0:t.yield_per_mu);s!=null&&s!==""&&(e.fresh_grass_yield=s),o!=null&&o!==""&&(e.mu_yield=o)}if(n==="grassland-health"){const s=(t==null?void 0:t.health_level)||(t==null?void 0:t.health_level_name)||(t==null?void 0:t.ndvi_level)||(t==null?void 0:t.level)||(t==null?void 0:t.level_name),o=(t==null?void 0:t.ndvi)||(t==null?void 0:t.NDVI)||(t==null?void 0:t.value);s!=null&&s!==""&&(e.health_level=s),o!=null&&o!==""&&(e.ndvi=o);const u=(t==null?void 0:t.degradation_level)||(t==null?void 0:t.degradation_level_name)||(t==null?void 0:t.level)||(t==null?void 0:t.level_name);u!=null&&u!==""&&(e.degradation_level=u)}}getScreenPointFromEvent(e){var a;const t=((a=e==null?void 0:e.data)==null?void 0:a.originalEvent)||(e==null?void 0:e.originalEvent)||e;return(t==null?void 0:t.clientX)!==void 0&&(t==null?void 0:t.clientY)!==void 0?{x:t.clientX,y:t.clientY}:null}getLngLatFromEvent(e){var u,d,h;const a=(h=(((d=(u=this.interactionManager)==null?void 0:u.raycaster)==null?void 0:d.intersectObject(e.target,!1))||[])[0])==null?void 0:h.point;if(!a)return null;const n=this.focusMapGroup.worldToLocal(a.clone()),o=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([n.x,-n.y]);return o?{lng:o[0],lat:o[1]}:null}lngLatToWmsPixel({lng:e,lat:t}){const a=(e-q.west)/(q.east-q.west)*_t.width,n=(q.north-t)/(q.north-q.south)*_t.height;return{x:a,y:n}}showSelectedFeature(e,t={}){var n;const a=(e==null?void 0:e.geometry)||((n=e==null?void 0:e.feature)==null?void 0:n.geometry);this.clearSelectedFeature(),this.createSelectedFeatureGroup(),this.addSelectedGeometry(a,t),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}showSelectedFeatures(e=[],t={}){this.clearSelectedFeature(),this.createSelectedFeatureGroup(),e.forEach(a=>{var s;const n=(a==null?void 0:a.geometry)||((s=a==null?void 0:a.feature)==null?void 0:s.geometry);this.addSelectedGeometry(n,t)}),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}setSelectedVectorFeatures(e=[]){this.selectedVectorFeatures=[...e],this.redrawVectorTopicLayer()}getSelectedFeatureStyle(e={}){const t=e.mode==="pasture",a=e.mode==="town";return{fillColor:Pr,fillOpacity:t?.46:a?.24:.54,lineColor:Iu,lineOpacity:.98,glowColor:Cr,glowOpacity:t?.92:.96,renderOrderBase:t?42:a?40:35,boundary:t||a,boundaryColor:Pr,boundaryGlowColor:Cr,boundaryWidth:a?.012:.018,boundaryGlowWidth:a?.045:.06,boundaryOpacity:.95,boundaryGlowOpacity:a?.34:.42}}addSelectedGeometry(e,t={}){if(!(e!=null&&e.coordinates)||!this.selectedFeatureGroup)return;const a=this.getSelectedFeatureStyle(t),n=this.getDisplayFeaturePolygons(e),s=new ve({color:a.fillColor,transparent:!0,opacity:a.fillOpacity,side:Re,depthWrite:!1,fog:!1}),o=new Xt({color:a.lineColor,transparent:!0,opacity:a.lineOpacity,linewidth:2,depthTest:!1,depthWrite:!1,fog:!1}),u=new Xt({color:a.glowColor,transparent:!0,opacity:a.glowOpacity,linewidth:3,depthTest:!1,depthWrite:!1,fog:!1}),d=a.boundary?new ve({color:a.boundaryColor,transparent:!0,opacity:a.boundaryOpacity,side:Re,depthTest:!1,depthWrite:!1,fog:!1}):null,h=a.boundary?new ve({color:a.boundaryGlowColor,transparent:!0,opacity:a.boundaryGlowOpacity,side:Re,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}):null;n.length&&n.forEach(m=>{const L=this.createProjectedShape(m);if(!L)return;const S=new Pl(L),C=new qe(S,s);C.renderOrder=a.renderOrderBase,this.selectedFeatureGroup.add(C),m.forEach(x=>{const E=this.createProjectedRingPoints(x);if(E.length<3)return;a.boundary&&(this.addSelectedBoundaryBand(E,h,a.boundaryGlowWidth,a.renderOrderBase+1,!0),this.addSelectedBoundaryBand(E,d,a.boundaryWidth,a.renderOrderBase+4,!0));const O=new ma().setFromPoints(E),ee=new nr(O,o);ee.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(ee);const se=new ma().setFromPoints(E),Z=new nr(se,u);Z.renderOrder=a.renderOrderBase+3,Z.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(Z)})});const g=this.normalizeFeatureLineStrings(e);g.length&&g.forEach(m=>{const L=this.createProjectedRingPoints(m);if(L.length<2)return;a.boundary&&(this.addSelectedBoundaryBand(L,h,a.boundaryGlowWidth,a.renderOrderBase+1,!1),this.addSelectedBoundaryBand(L,d,a.boundaryWidth,a.renderOrderBase+4,!1));const S=new ma().setFromPoints(L),C=new rr(S,u);C.renderOrder=a.renderOrderBase+3,C.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(C);const x=new ma().setFromPoints(L),E=new rr(x,o);E.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(E)})}addSelectedBoundaryBand(e,t,a,n,s=!0){if(!t||!this.selectedFeatureGroup)return;const o=this.createPathBandGeometry(e,a,s);if(!o)return;const u=new qe(o,t);u.renderOrder=n,this.selectedFeatureGroup.add(u)}createPathBandGeometry(e,t,a=!0){const n=this.normalizePathBandPoints(e,a);if(n.length<(a?3:2))return null;const s=Math.max(Number(t)||0,0)/2;if(!s)return null;const o=[],u=a?n.length:n.length-1;for(let h=0;hNumber.isFinite(n==null?void 0:n.x)&&Number.isFinite(n==null?void 0:n.y)).map(n=>n.clone());if(t&&a.length>2){const n=a[0],s=a[a.length-1];n.distanceToSquared(s)<1e-10&&a.pop()}return a}clearSelectedFeature(){var t;const e=!!((t=this.selectedVectorFeatures)!=null&&t.length);this.selectedVectorFeatures=[],e&&this.redrawVectorTopicLayer(),this.clearSelectedGeometryGroup()}clearSelectedGeometryGroup(){var t,a;if(!this.selectedFeatureGroup)return;const e=new Set;for(;this.selectedFeatureGroup.children.length;){const n=this.selectedFeatureGroup.children.pop();(a=(t=n.geometry)==null?void 0:t.dispose)==null||a.call(t),Array.isArray(n.material)?n.material.forEach(s=>e.add(s)):e.add(n.material)}e.forEach(n=>{var s;return(s=n==null?void 0:n.dispose)==null?void 0:s.call(n)})}normalizeFeaturePolygons(e){return Er(e)}normalizeFeatureLineStrings(e){return e!=null&&e.coordinates?e.type==="LineString"?[e.coordinates]:e.type==="MultiLineString"?e.coordinates:[]:[]}getDisplayFeaturePolygons(e){const t=this.normalizeFeaturePolygons(e),a=this.getLayerClipBounds(this.currentTopicLayer);return a?t.map(n=>{const s=this.clipRingToBounds(n==null?void 0:n[0],a);if(s.length<3)return null;const o=n.slice(1).map(u=>this.clipRingToBounds(u,a)).filter(u=>u.length>=3);return[s,...o]}).filter(Boolean):t}clipRingToBounds(e=[],t){let a=e.map(s=>[Number(s==null?void 0:s[0]),Number(s==null?void 0:s[1])]).filter(([s,o])=>Number.isFinite(s)&&Number.isFinite(o));return[{inside:([s])=>s>=t.west,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lng",t.west)},{inside:([s])=>s<=t.east,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lng",t.east)},{inside:([,s])=>s>=t.south,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lat",t.south)},{inside:([,s])=>s<=t.north,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lat",t.north)}].forEach(s=>{const o=a;a=[],o.length&&o.forEach((u,d)=>{const h=o[(d+o.length-1)%o.length],g=s.inside(u),m=s.inside(h);g?(m||a.push(s.intersect(h,u)),a.push(u)):m&&a.push(s.intersect(h,u))})}),a}getLngLatLineIntersection(e,t,a,n){const s=a==="lng"?0:1,o=a==="lng"?1:0,u=t[s]-e[s];if(!u)return[...e];const d=(n-e[s])/u,h=[...e];return h[s]=n,h[o]=e[o]+(t[o]-e[o])*d,h}createProjectedShape(e){const t=e==null?void 0:e[0];if(!Array.isArray(t)||t.length<3)return null;const a=new sr;return this.createProjectedRingPoints(t).forEach((s,o)=>{o===0?a.moveTo(s.x,s.y):a.lineTo(s.x,s.y)}),e.slice(1).forEach(s=>{const o=this.createProjectedRingPoints(s);if(o.length<3)return;const u=new sr;o.forEach((d,h)=>{h===0?u.moveTo(d.x,d.y):u.lineTo(d.x,d.y)}),a.holes.push(u)}),a}createProjectedRingPoints(e){if(!Array.isArray(e))return[];const t=[];return e.forEach(a=>{if(!Array.isArray(a)||a.length<2)return;const n=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return;const[o,u]=this.geoProjection([n,s]);t.push(new re(o,-u,0))}),t}enhanceTexture(e){var a,n,s;const t=(n=(a=this.renderer)==null?void 0:a.instance)==null?void 0:n.capabilities;e.anisotropy=((s=t==null?void 0:t.getMaxAnisotropy)==null?void 0:s.call(t))||1,e.needsUpdate=!0}geoProjection(e){return jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0])(e)}updateTownLabelScale(){var u,d,h;const e=this.townNameLabels||this.otherLabel||[],t=(u=this.camera)==null?void 0:u.instance,a=(h=(d=this.camera)==null?void 0:d.controls)==null?void 0:h.target;if(!e.length||!t||!a)return;const n=t.position.distanceTo(a),s=Wt(n*72e-5,.011,.026),o=n>45?"0.76":n<22?"0.94":"1";e.forEach(g=>{var L,S,C;if(((L=g==null?void 0:g.userData)==null?void 0:L.labelType)!=="town-label")return;g.scale.set(s,s,s);const m=(C=(S=g.element)==null?void 0:S.querySelector)==null?void 0:C.call(S,".other-label");m&&(m.style.opacity=o)})}update(e){super.update(e),this.updateDynamicSatelliteTiles(),this.updateTownLabelScale(),this.updateTradeFlowPulses(e),this.interactionManager&&this.interactionManager.update()}pauseScene(){var e,t;this.scenePaused=!0,(t=(e=this.time)==null?void 0:e.pause)==null||t.call(e),this.sceneTweens.forEach(a=>{var n;return(n=a==null?void 0:a.pause)==null?void 0:n.call(a)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var e,t;this.scenePaused=!1,(t=(e=this.time)==null?void 0:e.resume)==null||t.call(e),this.sceneTweens.forEach(a=>{var n;return(n=a==null?void 0:a.resume)==null?void 0:n.call(a)}),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){var e,t,a,n;this.pauseScene(),this.sceneTimers.forEach(s=>clearTimeout(s)),this.sceneTimers=[],this.sceneTweens.forEach(s=>{var o;return(o=s==null?void 0:s.kill)==null?void 0:o.call(s)}),this.sceneTweens=[],this.callbacks={},(t=(e=this.canvas)==null?void 0:e.removeEventListener)==null||t.call(e,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(n=(a=this.canvas)==null?void 0:a.removeEventListener)==null||n.call(a,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.clearTradeFlowLayer(),this.clearSelectedFeature(),super.destroy(),this.label3d&&this.label3d.destroy()}}const Du={class:"map"},Ou={__name:"map",props:{activeLayer:{type:Object,default:null},mapRanking:{type:Object,default:null},tileUrlTemplate:{type:String,default:""},satelliteTextureZoom:{type:Number,default:0},satelliteMaxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},useSatelliteBase:{type:Boolean,default:!0},showNationalBackdrop:{type:Boolean,default:!1},topicLayerPresentation:{type:String,default:"default"},hideTownLabelStats:{type:Boolean,default:!1}},emits:["feature-loading","feature-info","layer-status","tile-status","draw-boundary","scene-mounted"],setup(b,{expose:e,emit:t}){const a=b,n=t,s=z(null),o=dl(null);let u=null,d=null,h=null,g=null,m=null,L="",S="",C=!1;Dr(()=>{n("scene-mounted")}),Or(()=>{pt()});function x(M){return o.value?!0:s.value?(o.value=new zu(s.value,M,{onFeatureLoading:v=>n("feature-loading",v),onFeatureInfo:v=>n("feature-info",v),onLayerStatus:v=>n("layer-status",v),onTileStatus:v=>n("tile-status",v),onDrawBoundary:v=>n("draw-boundary",v),tileUrlTemplate:a.tileUrlTemplate,satelliteTextureZoom:a.satelliteTextureZoom,satelliteMaxZoom:a.satelliteMaxZoom,adminBoundaryLineScale:a.adminBoundaryLineScale,useSatelliteBase:a.useSatelliteBase,showNationalBackdrop:a.showNationalBackdrop,topicLayerPresentation:a.topicLayerPresentation,hideTownLabelStats:a.hideTownLabelStats}),o.value.time.pause(),L=xe(a.activeLayer),S=rt(a.mapRanking),o.value.setTopicLayers(je(a.activeLayer),a.activeLayer),o.value.setTownRanking(a.mapRanking),we(),ce(),!0):!1}function E(){return!!o.value}function O(){return he(this,null,function*(){var M,v,G,V,U,J;if(o.value&&(ee(),!o.value.mapAnimationComplete)){if(C){(v=(M=o.value.animateTl)==null?void 0:M.play)==null||v.call(M),Ye();return}C=!0,(V=(G=o.value.animateTl)==null?void 0:G.timeScale)==null||V.call(G,1),(J=(U=o.value.animateTl)==null?void 0:U.play)==null||J.call(U),Ye()}})}function ee(){var M,v;o.value&&(we(),ce(),window.requestAnimationFrame(()=>{var G,V,U,J,fe,Ge;(U=(V=(G=o.value)==null?void 0:G.label3d)==null?void 0:V.resize)==null||U.call(V),(Ge=(fe=(J=o.value)==null?void 0:J.label3d)==null?void 0:fe.update)==null||Ge.call(fe)}),(v=(M=o.value).resumeScene)==null||v.call(M),o.value.resumeScene||o.value.time.resume())}function se(){var M,v,G,V,U,J;o.value&&(Ue(),(v=(M=o.value.animateTl)==null?void 0:M.pause)==null||v.call(M),(V=(G=o.value).pauseScene)==null||V.call(G),o.value.pauseScene||(J=(U=o.value.time)==null?void 0:U.pause)==null||J.call(U),it())}function Z(){var M,v;(v=(M=o.value)==null?void 0:M.clearSelectedFeature)==null||v.call(M)}function R(M){var v,G;(G=(v=o.value)==null?void 0:v.focusProject)==null||G.call(v,M)}function Fe(M){var v,G;(G=(v=o.value)==null?void 0:v.focusPasture)==null||G.call(v,M)}function We(M,v){var G,V;return(V=(G=o.value)==null?void 0:G.focusTownByName)==null?void 0:V.call(G,M,v)}function at(M){var v,G;return(G=(v=o.value)==null?void 0:v.focusYakIndustryPoint)==null?void 0:G.call(v,M)}function bt(M){var v,G;return(G=(v=o.value)==null?void 0:v.focusVectorFeature)==null?void 0:G.call(v,M)}function W(M){var v,G;return(G=(v=o.value)==null?void 0:v.getVectorFeatureScreen)==null?void 0:G.call(v,M)}function Ee(M){var v,G;return(G=(v=o.value)==null?void 0:v.getYakIndustryPointScreen)==null?void 0:G.call(v,M)}function kt(M){var v,G;(G=(v=o.value)==null?void 0:v.setBoundaryDrawing)==null||G.call(v,M)}function ht(){var M,v;return(v=(M=o.value)==null?void 0:M.finishBoundaryDrawing)==null?void 0:v.call(M)}function Pt(){var M,v;(v=(M=o.value)==null?void 0:M.undoBoundaryPoint)==null||v.call(M)}function Ut(){var M,v;(v=(M=o.value)==null?void 0:M.clearAnalysisBoundary)==null||v.call(M)}function vt(M){var v,G;(G=(v=o.value)==null?void 0:v.showAnalysisResult)==null||G.call(v,M)}function pt(){var M,v;Ue(),it(),(v=(M=o.value)==null?void 0:M.destroy)==null||v.call(M),o.value=null}function Ye(){Ue(),m=window.setTimeout(()=>{var M,v;m=null,(v=(M=o.value)==null?void 0:M.ensureMapRevealed)==null||v.call(M)},5200)}function Ue(){m&&(window.clearTimeout(m),m=null)}function ce(){d&&window.cancelAnimationFrame(d),d=window.requestAnimationFrame(()=>{var M,v,G,V,U;d=null,(G=(v=(M=o.value)==null?void 0:M.sizes)==null?void 0:v.init)==null||G.call(v),(U=(V=o.value)==null?void 0:V.resize)==null||U.call(V)}),h&&window.clearTimeout(h),h=window.setTimeout(()=>{var M,v,G,V,U;h=null,(G=(v=(M=o.value)==null?void 0:M.sizes)==null?void 0:v.init)==null||G.call(v),(U=(V=o.value)==null?void 0:V.resize)==null||U.call(V)},180)}function we(){var v;it();const M=(v=s.value)==null?void 0:v.parentNode;M&&window.ResizeObserver&&(u=new ResizeObserver(()=>ce()),u.observe(M)),g=window.setInterval(Ct,1e3),Yt(ce)}function Ct(){var fe;if(!o.value||!s.value)return;const M=s.value.parentNode,v=(M==null?void 0:M.offsetWidth)||window.innerWidth||1,G=(M==null?void 0:M.offsetHeight)||window.innerHeight||1,V=((fe=o.value.sizes)==null?void 0:fe.pixelRatio)||1,U=Math.floor(v*V),J=Math.floor(G*V);(s.value.width!==U||s.value.height!==J)&&ce()}function it(){u&&(u.disconnect(),u=null),d&&(window.cancelAnimationFrame(d),d=null),h&&(window.clearTimeout(h),h=null),g&&(window.clearInterval(g),g=null)}function $e(){if(!o.value)return;we();const M=()=>{var v,G,V,U,J,fe,Ge,Ce,_e,Ke,Be,Ze,me,ge,te,He,st,ye,Bt,ot,Xe;o.value&&((G=(v=o.value)==null?void 0:v.resumeScene)==null||G.call(v),o.value.resumeScene||(U=(V=o.value.time)==null?void 0:V.resume)==null||U.call(V),(Ge=(fe=(J=o.value)==null?void 0:J.sizes)==null?void 0:fe.init)==null||Ge.call(fe),(_e=(Ce=o.value)==null?void 0:Ce.resize)==null||_e.call(Ce),(Ze=(Be=(Ke=o.value)==null?void 0:Ke.label3d)==null?void 0:Be.resize)==null||Ze.call(Be),(te=(ge=(me=o.value)==null?void 0:me.label3d)==null?void 0:ge.update)==null||te.call(ge),(st=(He=o.value)==null?void 0:He.setTopicLayers)==null||st.call(He,je(a.activeLayer),a.activeLayer),(Bt=(ye=o.value)==null?void 0:ye.setTownRanking)==null||Bt.call(ye,a.mapRanking),(Xe=(ot=o.value)==null?void 0:ot.ensureMapRevealed)==null||Xe.call(ot))};ce(),window.requestAnimationFrame(M),window.setTimeout(()=>{M()},80),window.setTimeout(()=>{M()},220)}function nt(){if(!o.value)return;we();const M=()=>{var G,V,U,J,fe,Ge,Ce,_e,Ke,Be,Ze,me,ge,te,He,st;const v=o.value;v&&((G=v.resumeScene)==null||G.call(v),v.resumeScene||(U=(V=v.time)==null?void 0:V.resume)==null||U.call(V),(fe=(J=v.sizes)==null?void 0:J.init)==null||fe.call(J),(Ge=v.resize)==null||Ge.call(v),(Ce=v.ensureMapRevealed)==null||Ce.call(v),(_e=v.setTradeNationalMapVisible)==null||_e.call(v,!1),(Ke=v.setTopicLayers)==null||Ke.call(v,je(a.activeLayer),a.activeLayer),(Be=v.setTownRanking)==null||Be.call(v,a.mapRanking),(Ze=v.applyLayerMapView)==null||Ze.call(v,v.currentTopicLayer||a.activeLayer||null,{force:!0}),(ge=(me=v.label3d)==null?void 0:me.resize)==null||ge.call(me),(He=(te=v.label3d)==null?void 0:te.update)==null||He.call(te),(st=v.updateDynamicSatelliteTiles)==null||st.call(v,!0))};ce(),window.requestAnimationFrame(M),window.setTimeout(M,100),window.setTimeout(M,260)}Ht(()=>a.activeLayer,M=>{const v=xe(M);v!==L&&(L=v,o.value&&o.value.setTopicLayers(je(M),M))},{deep:!0}),Ht(()=>a.mapRanking,M=>{const v=rt(M);v!==S&&(S=v,o.value&&o.value.setTownRanking(M))},{deep:!0}),e({loadMap:x,hasMap:E,play:O,resume:ee,pause:se,clearSelectedFeature:Z,focusProject:R,focusPasture:Fe,focusTown:We,focusYakIndustryPoint:at,focusVectorFeature:bt,getVectorFeatureScreen:W,getYakIndustryPointScreen:Ee,setBoundaryDrawing:kt,finishBoundaryDrawing:ht,undoBoundaryPoint:Pt,clearAnalysisBoundary:Ut,showAnalysisResult:vt,refreshView:$e,resetView:nt,destroyMap:pt,canvasMap:o});function xe(M){return M?je(M).map(v=>{var G,V;return[v.key||"",v.layerName||"",v.styles||"",v.sldBody||"",v.cqlFilter||"",((G=v.activeLegend)==null?void 0:G.key)||"",Array.isArray(v.activeLegends)?v.activeLegends.map(U=>(U==null?void 0:U.key)||"").join(","):"",v.timelineDate||"",((V=v.timelineItem)==null?void 0:V.key)||"",v.sourceType||"",v.dataPath||"",v.fallbackPath||""].join("|")}).join("||"):""}function je(M){if(!M)return[];const v=Array.isArray(M.overlayLayers)?M.overlayLayers.filter(Boolean):[];return[M,...v]}function rt(M){var v,G,V,U,J,fe,Ge,Ce,_e,Ke;return M?[M.status||"",M.topicKey||"",M.layerKey||"",M.title||"",M.metricLabel||"",M.scope||"",M.displayMode||"",(v=M.showPointMarkers)!=null?v:"",(G=M.showBars)!=null?G:"",(V=M.showTownNames)!=null?V:"",(U=M.showMapLabels)!=null?U:"",(J=M.hideTownLabelStats)!=null?J:"",(fe=M.showFlowLines)!=null?fe:"",(Ge=M.onlyRankedTownLabels)!=null?Ge:"",(Ce=M.showMissingTownStats)!=null?Ce:"",((_e=M.rows)==null?void 0:_e.length)||0,((Ke=M.rows)==null?void 0:Ke.map(Be=>{var Ze;return`${Be.key||Be.name||""}:${(Ze=Be.value)!=null?Ze:""}`}).join(","))||""].join("|"):""}return(M,v)=>(I(),B("div",Du,[f("canvas",{ref_key:"canvasRef",ref:s},null,512)]))}};const Wu={class:"yak-management"},Yu={key:1,class:"yak-map-loading"},ju={class:"yak-management-ui"},Hu={key:0,class:"trade-year-switcher","aria-label":"交易年份切换"},qu=["onClick"],Uu={key:1,class:"epidemic-year-switcher","aria-label":"防疫年份切换"},Ku=["onClick"],Zu={key:2,class:"forecast-year-switcher","aria-label":"预测年份切换"},Xu=["onClick"],Ju={class:"yak-left"},Qu={class:"yak-side-stack is-left"},ec={class:"breeding-health-card"},tc={class:"breeding-health-head"},ac={class:"breeding-health-grid"},ic={class:"structure-chart-card"},nc={class:"structure-ratio-card"},rc={class:"structure-ratio-chart"},sc={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},oc={class:"structure-rose-segments"},lc=["d","fill","stroke"],uc={class:"structure-ratio-list"},cc={key:0,class:"yak-data-status"},dc={key:1,class:"yak-data-status is-warning"},hc={class:"forecast-waterfall-card"},pc={class:"forecast-waterfall-head"},fc={class:"forecast-waterfall-list"},mc={class:"forecast-trend-card"},gc={class:"forecast-density-switcher","aria-label":"预测粒度切换"},yc=["onClick"],bc={key:0,class:"epidemic-three-pie-card"},vc={class:"epidemic-three-pie-visual"},wc={class:"epidemic-three-pie-center"},Lc={class:"epidemic-three-pie-legend"},Tc={key:1,class:"epidemic-empty"},Sc={class:"trade-risk-card"},Mc={class:"trade-risk-head"},kc={class:"trade-risk-list"},Pc={class:"yak-right"},Cc={class:"yak-side-stack is-right"},Fc={class:"structure-chart-card"},xc={class:"structure-summary-card"},Nc={key:0,class:"yak-data-status"},Rc={key:1,class:"yak-data-status is-warning"},Ic={class:"forecast-heat-list"},Gc=["title"],_c={class:"epidemic-record-table is-full"},Bc={class:"epidemic-record-toolbar"},Ac={class:"epidemic-record-rows"},Ec=["onClick"],$c={key:0,class:"epidemic-empty"},Vc={class:"epidemic-record-pager"},zc=["disabled"],Dc=["disabled"],Oc={class:"trade-cert-card"},Wc={class:"trade-cert-main"},Yc={class:"trade-dest-list"},jc={key:0,class:"epidemic-empty"},Hc={class:"trade-ledger-table"},qc={class:"trade-ledger-toolbar"},Uc={class:"trade-ledger-rows"},Kc=["onClick"],Zc={key:0,class:"epidemic-empty"},Xc={class:"trade-ledger-pager"},Jc=["disabled"],Qc=["disabled"],ed={class:"yak-bottom-topic"},td={class:"epidemic-ledger-dialog"},ad={class:"epidemic-ledger-dialog-head"},id={class:"epidemic-ledger-filters"},nd=["value"],rd=["value"],sd={class:"epidemic-ledger-workspace"},od={class:"epidemic-ledger-list"},ld=["onClick"],ud={key:0,class:"epidemic-empty"},cd={class:"epidemic-ledger-detail trade-ledger-detail epidemic-ledger-record-detail"},dd={class:"epidemic-detail-head trade-detail-head"},hd={class:"epidemic-detail-grid is-modal trade-detail-grid epidemic-detail-flat-grid"},pd={key:0,class:"epidemic-detail-photos"},fd={class:"epidemic-modal-photo-strip"},md=["onClick"],gd=["src"],yd={class:"epidemic-ledger-pager"},bd=["disabled"],vd=["disabled"],wd={class:"epidemic-ledger-dialog trade-ledger-dialog"},Ld={class:"epidemic-ledger-dialog-head"},Td={class:"epidemic-ledger-filters trade-ledger-filters"},Sd=["value"],Md=["value"],kd=["value"],Pd={class:"epidemic-ledger-workspace trade-ledger-workspace"},Cd={class:"epidemic-ledger-list trade-ledger-modal-list"},Fd=["onClick"],xd={key:0,class:"epidemic-empty"},Nd={class:"epidemic-ledger-detail trade-ledger-detail"},Rd={class:"epidemic-detail-head trade-detail-head"},Id={class:"epidemic-detail-grid is-modal trade-detail-grid"},Gd={class:"is-wide"},_d={class:"is-wide"},Bd={class:"is-wide"},Ad={class:"is-wide"},Ed=["disabled"],$d={class:"epidemic-ledger-pager"},Vd=["disabled"],zd=["disabled"],Dd={class:"epidemic-image-preview-dialog"},Od={class:"epidemic-image-preview-head"},Wd={class:"epidemic-image-preview-body"},Yd={class:"epidemic-image-preview-frame"},jd=["src"],Hd="https://qkl-hy.oss-cn-chengdu.aliyuncs.com/yak-vaccine-images",qd="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",Ud=8.85,Kd="oss-satellite-dynamic-zoom21-v5",ei=8,$r=14,Hi=12,Vr=14,Zd=5e3,ti=6,Xd=4200,zr="#FFE600",ph={__name:"index",props:{active:{type:Boolean,default:!0},viewKey:{type:String,default:"structure"}},emits:["module-stats","view-change"],setup(b,{expose:e,emit:t}){const a=b,n=t,s=or.sideCardWidth;or.sideCardGap;const o=z(typeof window=="undefined"?1080:window.innerHeight),u=k(()=>Fl(o.value)),d=k(()=>lr(u.value,2)),h=k(()=>u.value),g=k(()=>lr(u.value,2)),m=ga.textPrimary,L=ga.textStrong,S=ga.textSecondary,C=ga.textMuted,x=ga.chartGridLine,E=[102.58,32.72],O=E,ee=E,se={lng:0,lat:0},Z={targetLngLat:[102.6,32.59],targetLocalZ:.72,distanceScale:1.05,duration:.75},R=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],Fe=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],We=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff"],at={name:"红原牦牛交易市场",lng:102.562157,lat:32.820484},bt=[{key:"structure",name:"畜群结构",color:"#30dcff"},{key:"forecast",name:"畜群预测",color:"#8bf7ff"},{key:"epidemic",name:"牦牛防疫",color:"#8bf7ff"},{key:"trade",name:"牦牛交易",color:"#63d7ff"}],W=z(Vi(a.viewKey)),Ee=z("2027"),kt=z("month"),ht=z(0),Pt=z([]),Ut=z([]),vt=z([]),pt=z(!1),Ye=z(""),Ue=[2025,2026],ce=z(2026),we=z({metrics:{}}),Ct=z({rows:[],year:null}),it=z({rows:[]}),$e=z([]),nt=z(0),xe=z(1),je=z(""),rt=z(""),M=z(!1),v=z(""),G=z(!1),V=z([]),U=z(0),J=z(1),fe=z(!1),Ge=z(""),Ce=z(null),_e=z(null),Ke=z(!1),Be=z(!1),Ze=z(""),me=z($a()),ge=z({years:[],latestYear:null}),te=z({metrics:{},hasData:!1}),He=z([]),st=z(0),ye=z(null),Bt=z(!1),ot=z(""),Xe=z(1),Ta=z(""),ii=z(""),ni=z(!1),At=z([]),Sa=z(0),Et=z(1),ri=z(!1),si=z(""),Ma=z(null),ft=z({keyword:"",startTown:"",usageType:"",certType:""}),Ve=z(null),sa=z(null),$t=z(!1),oa=z(!1),Ki=z(0),Zi=z(0),la=z({type:"idle",text:""}),ua=z({type:"idle",text:""});let oi=null,li=!1,wt=!1,Lt=null,ca=!1,ka=null,Pa=null,Ca=0;const ui=[{key:"day",label:"日",unit:"日",stepDays:1},{key:"week",label:"周",unit:"周",stepDays:7},{key:"month",label:"月",unit:"月",stepDays:30}],Je=k(()=>Al(Ee.value)),jr=new Set(["epidemic","trade"]),ci=k(()=>!jr.has(W.value)),Xi=k(()=>ci.value?qd:""),Hr=k(()=>ci.value?"oss-satellite":"solid-3d"),qr=k(()=>`yak-management-map-${Hr.value}-${Kd}-${Ki.value}`),Ur=k(()=>El+$l),di=k(()=>Je.value.stock-ct),Kr=k(()=>sl(Je.value)),Fa=k(()=>Zo(vt.value,ba)),Zr=k(()=>Fa.value.reduce((i,r)=>i+Number(r.count||0),0));k(()=>{const i=Zr.value||1;return Fa.value.map((r,l)=>{const c=Number(r.count||0),p=Number(r.ratio);return $(N({},r),{count:c,color:R[l%R.length],percent:Number.isFinite(p)?p:c/i*100})})});const Xr=k(()=>Kn(Fa.value,ba)),xa=k(()=>Xr.value),Ji=k(()=>tl(xa.value)),Qi=k(()=>al(Fa.value,ba)),en=k(()=>nl(Qi.value)),Jr=k(()=>Math.max(...Ji.value.map(i=>Number(i.count||0)),1)),hi=k(()=>xa.value.length?0:-1),Qr=k(()=>{const i=xa.value,r=i.length;if(!r)return[];const l=Math.max(...i.map(y=>Number(y.count||0)),1),c=360/r,p=Math.min(8,c*.16);return i.map((y,w)=>{const T=Number(y.count||0),F=w===hi.value,_=36+Math.sqrt(T/l)*31+(F?5:0),A=17,Y=-90+w*c+p/2,X=-90+(w+1)*c-p/2,D=(Y+X)/2,Q=Dt(75,75,_+3,D),Ne=Dt(75,75,_+15,D),lt=Dt(75,75,_+20,D);return{key:y.key||y.name||w,index:w,item:y,color:y.color||R[w%R.length],path:el(75,75,A,_,Y,X),lineStart:Q,lineEnd:Ne,label:lt,anchor:Math.cos(D*Math.PI/180)>=0?"start":"end"}})}),tn=k(()=>qn(["fertileCow","overageCow"])),an=k(()=>qn(["femaleCalf","maleCalf"])),Ft=k(()=>Vl(lo(Pt.value.length?Pt.value:pr,pr),ct)),pi=k(()=>uu),fi=k(()=>zl(Je.value)),es=k(()=>Dl(Je.value)),mi=k(()=>{var i;return((i=we.value)==null?void 0:i.metrics)||{}}),gi=k(()=>{var i;return St((i=we.value)==null?void 0:i.dateTrend).sort(bo)}),Na=k(()=>{var i;return St((i=we.value)==null?void 0:i.medicineCounts)}),Ra=k(()=>Na.value.filter(i=>i.value>0).map((i,r)=>$(N({},i),{key:i.key||`${i.name}-${r}`,unit:"条"}))),ts=k(()=>Ra.value.map(i=>`${i.name}:${i.value}`).join("|")||"epidemic-medicine-empty"),as=k(()=>{var i;return St((i=we.value)==null?void 0:i.ownerRanks).slice(0,8)}),xt=k(()=>fn(we.value)),is=k(()=>{var i;return((i=Na.value.find(r=>r.name&&r.name!=="未填写"))==null?void 0:i.name)||"-"}),mt=k(()=>za(mi.value,["total","vaccine"]));k(()=>za(mi.value,["owners"]));const ns=k(()=>Number(ce.value)===2026?10:za(mi.value,["villages"])),yi=k(()=>Vt.value.length),rs=k(()=>{var i;return((i=Vt.value[0])==null?void 0:i.name)||"-"}),nn=k(()=>{const i=$e.value.map(r=>r.operateTime).filter(Boolean).sort();return i.length?Rt(i[i.length-1]):"-"}),bi=k(()=>{const i=Math.max(...Na.value.map(r=>Number(r.value||0)),0);return i>0?i:Math.round(mt.value/xt.value)}),vi=k(()=>{var r;const i=ho((r=Ct.value)==null?void 0:r.rows);return i.length?i:Vt.value.map(l=>({name:l.name,recordCount:Number(l.recordCount||0),earTagCount:Number(l.earTagCount||0),ratio:l.ratio,source:"ledger"}))}),rn=k(()=>{var r;const i=new Set;return Gi((r=it.value)==null?void 0:r.rows).filter(l=>Number.isFinite(l.lng)&&Number.isFinite(l.lat)).map((l,c)=>{const p=`${l.lng.toFixed(4)},${l.lat.toFixed(4)}`,y=i.has(p)?(c%3-1)*.012:0;return i.add(p),$(N({},l),{name:l.village,value:l.earTagCount,unit:"万头",lng:l.lng+y,lat:l.lat-y*.65,displayValue:Number((l.earTagCount/1e4).toFixed(2)),displayUnit:"万头",rankLabel:`第${c+1}名`})})}),Vt=k(()=>{var r;const i=new Map;return St((r=we.value)==null?void 0:r.townCounts).forEach(l=>{const c=Qe(l.name);c&&i.set(c,Number(i.get(c)||0)+Number(l.value||0))}),[...i.entries()].map(([l,c])=>{const p=Math.round(c/xt.value),y=mt.value?c/mt.value*100:0;return{name:l,recordCount:c,earTagCount:p,ratio:y}}).sort((l,c)=>Number(c.recordCount||0)-Number(l.recordCount||0))}),ss=k(()=>Math.max(Ft.value.length,yi.value)),os=k(()=>new Set(Vt.value.map(i=>Qe(i.name)).filter(Boolean))),Nt=k(()=>{const i=os.value;return Ft.value.map(r=>Qe(r.name)).filter(r=>r&&!i.has(r))}),ls=k(()=>{const i=ss.value||yi.value||1;return yi.value/i*100});k(()=>bi.value/ct*100);const Ia=k(()=>wo());k(()=>mt.value?Nt.value.length?Nt.value.length:Ia.value.name&&Ia.value.name!=="暂无"?1:0:0);const us=k(()=>Lo()),cs=k(()=>To()),ds=k(()=>So());k(()=>Mo());const hs=k(()=>ko());k(()=>hs.value.slice(0,3)),k(()=>mt.value?Nt.value.length?"年度免疫进度需核查":Ia.value.desc:"年度计划待核查");const wi=k(()=>Math.max(Math.ceil(nt.value/ei),1)),ps=k(()=>$e.value.slice(0,ei)),sn=k(()=>Math.max(Math.ceil(U.value/$r),1)),zt=k(()=>_e.value||Ce.value||{}),on=k(()=>Bi(zt.value)),fs=k(()=>{const i=zt.value||{};return[Me("台账编号",i.epidemicId,{wide:!0}),Me("养殖户",i.owner,{wide:!0}),Me("联系电话",Sn(i.phone)),Me("证件类型",i.idType),Me("证件号码",xo(i.idNo)),Me("镇/乡",i.town),Me("村",i.village),Me("详细地址",i.location,{wide:!0}),Me("畜种",i.livestockType),Me("性别",i.sex),Me("畜龄",i.age),Me("体重",No(i.weight)),Me("疫苗/药品",i.medicine),Me("防疫类型",i.preventionType),Me("免疫方式",i.method),Me("剂量",Ro(i.dose)),Me("免疫时间",Rt(i.operateTime)),Me("操作员",i.operator)].filter(Boolean)}),ms=k(()=>{var i;return St((i=we.value)==null?void 0:i.townCounts).map(r=>r.name)}),gs=k(()=>Na.value.map(i=>i.name).filter(i=>i&&i!=="未填写")),ln=k(()=>{var i;return((i=te.value)==null?void 0:i.metrics)||{}}),un=k(()=>{var i,r,l,c,p,y,w,T;return mn((i=ge.value)==null?void 0:i.years,(r=te.value)==null?void 0:r.availableYears,(l=te.value)==null?void 0:l.available_years,(c=te.value)==null?void 0:c.yearSummary,(p=te.value)==null?void 0:p.year_summary,(y=te.value)==null?void 0:y.latestYear,(w=te.value)==null?void 0:w.latest_year,(T=te.value)==null?void 0:T.year)}),ys=k(()=>{var i,r;return Va(((i=te.value)==null?void 0:i.monthTrend)||((r=te.value)==null?void 0:r.month_trend),"name")});k(()=>{var i,r;return uo(((i=te.value)==null?void 0:i.yearSummary)||((r=te.value)==null?void 0:r.year_summary))});const Ga=k(()=>{var i,r;return Va(((i=te.value)==null?void 0:i.startTownCounts)||((r=te.value)==null?void 0:r.start_town_counts),"name")}),Li=k(()=>{var i,r;return Va(((i=te.value)==null?void 0:i.usageCounts)||((r=te.value)==null?void 0:r.usage_counts),"name")}),bs=k(()=>{var i,r,l,c,p,y;return Va(((i=te.value)==null?void 0:i.transportNumberCounts)||((r=te.value)==null?void 0:r.transport_number_counts)||((l=te.value)==null?void 0:l.vehicleCounts)||((c=te.value)==null?void 0:c.vehicle_counts)||((p=te.value)==null?void 0:p.transportCounts)||((y=te.value)==null?void 0:y.transport_counts),"transportNumber")}),_a=k(()=>{const i=Ga.value.map(l=>{const c=String(l.name||"").trim(),p=Qe(c),y=Fi(p||c);return $(N({},l),{rawName:c,name:y,displayName:y,town:p,mapTownName:p})}).filter(l=>l.name&&l.name!=="未填写").slice(0,10),r=Math.max(...i.map(l=>l.headCount),1);return i.map((l,c)=>$(N({},l),{key:l.key||`${l.mapTownName||l.name}-${c}`,value:l.headCount,unit:"头",ratio:Math.max(8,Math.round(l.headCount/r*100))}))}),cn=k(()=>He.value.slice(0,Hi)),Ti=k(()=>Math.max(Math.ceil(st.value/Hi),1)),Si=k(()=>Math.max(Math.ceil(Sa.value/Vr),1)),be=k(()=>Ma.value||{}),vs=k(()=>be.value.certId||be.value.factoryCode||""),ws=k(()=>{var r,l;const i=Ri(((r=ge.value)==null?void 0:r.startTowns)||((l=ge.value)==null?void 0:l.start_towns));return i.length?i:Ii(Ga.value.map(c=>c.name))}),Ls=k(()=>{var r,l;const i=Ri(((r=ge.value)==null?void 0:r.usageTypes)||((l=ge.value)==null?void 0:l.usage_types));return i.length?i:Ii(Li.value.map(c=>c.name))}),Ts=k(()=>{var r,l,c,p;const i=co(((r=ge.value)==null?void 0:r.certTypeOptions)||((l=ge.value)==null?void 0:l.cert_type_options));return i.length?i:Ri(((c=ge.value)==null?void 0:c.certTypes)||((p=ge.value)==null?void 0:p.cert_types)).map(y=>({value:y,label:y}))}),Ss=k(()=>_a.value.map((i,r)=>({key:i.key||`${i.name}-${r}`,name:i.displayName||i.name,displayName:i.displayName||i.name,rawName:i.rawName,town:i.mapTownName||i.town||Qe(i.name),mapTownName:i.mapTownName||i.town||Qe(i.name),value:i.headCount,headCount:i.headCount,recordCount:i.recordCount,ratio:i.ratio,unit:"头"}))),dn=k(()=>Po()),Ms=k(()=>{const i=dn.value.filter(r=>r.level==="high");return i.length>=2?`${i.length}项重点`:i.length===1?`重点:${i[0].name}`:"整体平稳"}),ks=k(()=>Ft.value.map(i=>$(N({},i),{breedingCowRatio:tn.value,calfRatio:an.value,breedingCow:Math.round(i.count*tn.value/100),calf:Math.round(i.count*an.value/100)}))),Ba=k(()=>{const i=ks.value,r=i.length,l=Math.max(Math.ceil(r/ti),1),c=ht.value%l,p=c*ti,y=Math.min(p+ti,r);return{page:c,pageCount:l,start:p,end:y,total:r,rows:i.slice(p,y)}}),Ps=k(()=>W.value==="forecast"?fi.value:Ft.value),Cs=k(()=>W.value==="forecast"?"forecast":"count"),Fs=k(()=>qo(Ps.value,Cs.value)),xs=k(()=>({key:"yak-marks-layer",sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",cqlFilter:"gov_show = true",name:"牦牛识别标记",opacity:.92,queryBuffer:10,geometryField:"geom",fillColor:"rgba(255, 230, 0, 0)",strokeColor:zr,glowColor:"rgba(255, 230, 0, 0.42)",lineWidth:1.4,mapView:{targetLngLat:E,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-marks",name:"牦牛",fillColor:zr,strokeColor:"#FFF58A",selectable:!1}]})),Ns=k(()=>{var l;const r=Gi((l=it.value)==null?void 0:l.rows).map(c=>mo(c.town,c.village)).filter(Boolean);return{key:"yak-epidemic-village-boundary",sourceType:"wfs",layerName:"ne:t_pastures_map",styles:"牧场样式",name:"防疫村边界",opacity:.86,queryBuffer:8,cqlFilter:r.length?r.join(" OR "):"EXCLUDE",legends:[{key:"yak-epidemic-village-boundary",name:"防疫村边界",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1}]}}),hn=k(()=>W.value==="epidemic"?Ns.value:W.value==="trade"?null:xs.value),Tt=k(()=>W.value==="structure"||W.value==="forecast"),Rs=k(()=>W.value==="forecast"?ee:O),Is=k(()=>Tt.value?null:hn.value),Gs=k(()=>Tt.value?null:As.value),_s=k(()=>Tt.value?!oa.value:!$t.value),Bs=k(()=>"3D地图加载中"),As=k(()=>W.value==="trade"?{scope:"trade-flow",title:`${ye.value||""}出栏来源`,metricLabel:"来源",unit:"头",source:$(N({},at),{total:ze("headCount")}),rows:Ss.value,showFlowLines:!1,mapView:Z}:{scope:W.value==="epidemic"?"village":"town",hideTownNames:W.value==="epidemic",title:W.value==="forecast"?`${Je.value.shortLabel}预测存栏`:W.value==="epidemic"?`${ce.value}年村级防疫信息`:"乡镇估算存栏",metricLabel:W.value==="forecast"?"预测":W.value==="epidemic"?"防疫":"存栏",unit:"万头",rows:W.value==="epidemic"?rn.value:Fs.value.map(i=>({name:i.name,value:Number((i.value/1e4).toFixed(2)),unit:"万头"}))}),Es=k(()=>({color:["#8bf7ff","#30dcff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(i){const r=i.map(l=>`${l.marker}${l.seriesName}:${K(Math.abs(l.value))}头`);return`${i[0].name}
    ${r.join("
    ")}`}}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:11}},grid:{left:22,right:22,top:32,bottom:12,containLabel:!0},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>ie(Math.abs(i))},splitLine:{lineStyle:{color:x,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:Oi.map(i=>i.age),axisLabel:{color:m,fontSize:11,fontWeight:700},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"母牛",type:"bar",stack:"gender",barWidth:12,data:Oi.map(i=>-i.cow),itemStyle:{borderRadius:[7,0,0,7]}},{name:"公牛",type:"bar",stack:"gender",barWidth:12,data:Oi.map(i=>i.bull),itemStyle:{borderRadius:[0,7,7,0]}}]})),$s=k(()=>{const i=Ft.value,r=i.map(l=>l.count);return{color:R,tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(l){const c=l.map(p=>`${p.marker}${p.seriesName}:${K(p.value)}头`);return`${l[0].name}
    ${c.join("
    ")}
    估算存栏:${K(r[l[0].dataIndex])}头
    结构依据:畜群结构比例表`}}),legend:{top:-2,right:0,itemWidth:8,itemHeight:6,itemGap:6,textStyle:{color:S,fontSize:10}},grid:{left:54,right:30,top:22,bottom:8},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",inverse:!0,data:i.map(l=>l.name),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:ba.map(l=>({name:l.name,type:"bar",stack:"town",barWidth:i.length>8?6:11,data:i.map(c=>Math.round(c.count*l.ratio/100))}))}}),Vs=k(()=>$i(Ft.value,"count","头",{style:"ladder",tooltipFormatter(i){const r=Ft.value[i.dataIndex];return`${r.name}
    估算存栏:${K(r.count)}头
    来源:无人机识别`}})),zs=k(()=>{const i=Ba.value,r=i.rows,l=Math.max(...r.map(c=>c.breedingCow+c.calf),1);return{color:["#30dcff","#8bf7ff"],animationDurationUpdate:700,animationEasingUpdate:"cubicOut",tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(c){const p=r[c[0].dataIndex],y=c.filter(w=>["能繁母牛","犊牛合计"].includes(w.seriesName)).map(w=>`${w.marker}${w.seriesName}:${K(w.value)}头`);return`${p.name}
    母犊合计:${K(p.breedingCow+p.calf)}头
    ${y.join("
    ")}
    依据:无人机识别 + 畜群结构比例表`}}),legend:{data:["能繁母牛","犊牛合计"],top:2,left:2,itemWidth:10,itemHeight:7,itemGap:9,textStyle:{color:S,fontSize:10}},graphic:i.total>ti?{type:"text",right:4,top:3,silent:!0,style:{text:`${i.start+1}-${i.end} / ${i.total}`,fill:C,fontSize:10,fontWeight:600}}:void 0,grid:{left:18,right:18,top:42,bottom:44,containLabel:!1},xAxis:{type:"category",data:r.map(c=>c.name),axisLabel:{color:C,fontSize:10,lineHeight:12,interval:0,margin:8,formatter:yo},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",max:Math.ceil(l*1.28),axisLabel:{show:!1},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"基础群规模",type:"bar",barWidth:15,barGap:"-100%",data:r.map(c=>c.breedingCow+c.calf),tooltip:{show:!1},itemStyle:{borderRadius:[8,8,1,1],color:"rgba(48, 220, 255, 0.07)"},silent:!0},{name:"能繁母牛",type:"bar",stack:"foundation",barWidth:15,data:r.map(c=>c.breedingCow),itemStyle:{borderRadius:[1,1,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.34)"},{offset:1,color:"#30dcff"}])}},{name:"犊牛合计",type:"bar",stack:"foundation",barWidth:15,data:r.map(c=>c.calf),itemStyle:{borderRadius:[8,8,1,1],color:new Ae(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:1,color:"rgba(139, 247, 255, 0.2)"}])},label:{show:!0,position:"top",formatter:({dataIndex:c})=>ie(r[c].breedingCow+r[c].calf),color:"#ffffff",fontSize:10,fontWeight:700}}]}}),Ds=k(()=>{const i=fr.slice().sort((c,p)=>p.value-c.value),r=fr.reduce((c,p)=>c+p.value,0),l=i.map(c=>c.yoy||0);return{color:i.map(c=>c.color),tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(c){const p=i[c[0].dataIndex];return`${p.label}
    数量:${K(p.value)}头
    占比:${et(p.value/r*100)}
    同比:${p.yoy>0?"+":""}${p.yoy}%`}}),grid:{left:36,right:30,top:20,bottom:34},xAxis:{type:"category",data:i.map(c=>c.label),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0,margin:10},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",min:Math.min(-2,Math.floor(Math.min(...l)-1)),max:Math.max(8,Math.ceil(Math.max(...l)+1)),axisLabel:{color:S,fontSize:10,formatter:"{value}%"},splitLine:{show:!1},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:16,data:i.map((c,p)=>({value:c.value,itemStyle:{borderRadius:[8,8,2,2],color:new Ae(0,0,0,1,[{offset:0,color:c.color},{offset:.72,color:`${c.color}cc`},{offset:1,color:`${c.color}18`}]),shadowBlur:p===0?4:2,shadowColor:"rgba(48, 220, 255, 0.16)"},label:{show:!0,position:"top",color:L,fontSize:10,fontFamily:Di.number,fontWeight:700,formatter:({value:y})=>ie(y)}}))},{name:"同比",type:"line",yAxisIndex:1,smooth:!0,symbol:"circle",symbolSize:6,data:l,lineStyle:{width:2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2},label:{show:!0,position:"top",color:"#8bf7ff",fontSize:10,formatter:({value:c})=>`${c>0?"+":""}${c}%`}}]}}),Os=k(()=>{const i=Oo(kt.value),r=Wo(Je.value,i.key),l=Ho(r),c=Yo(l.length,i.key);return{color:["#30dcff","#8bf7ff","#48cfff"],tooltip:$(N({},Le()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(p){var _,A,Y;const y=Array.isArray(p)?p:[p],w=y.find(X=>X.seriesType==="candlestick"),T=(w==null?void 0:w.data)||l[(Y=(A=w==null?void 0:w.dataIndex)!=null?A:(_=y[0])==null?void 0:_.dataIndex)!=null?Y:0];if(!T)return"";const F=T.close-T.open;return[`${T.label}|${i.unit}度预测`,`预测存栏:${K(T.close)}头`,`较上期:${Ya(F)}头`,`新生牛犊:${K(T.birth)}头`,`出栏扣减:${K(T.outflow)}头`].join("
    ")}}),legend:{top:4,right:8,data:["预测存栏","新生牛犊","出栏扣减"],itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:44,right:40,top:34,bottom:28},xAxis:{type:"category",boundaryGap:!0,data:r.labels,axisLabel:{color:C,fontSize:10,interval:c},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10,formatter:ie},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:jo(l.length,i.key),data:l,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.4}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:4,data:l.map(p=>p.close),lineStyle:{width:1.8,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:1},tooltip:{show:!1}},jn("新生牛犊",r.births,"#8bf7ff",1),jn("出栏扣减",r.outflow,"#48cfff",1)]}}),Ws=k(()=>({color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis"}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:52,right:42,top:34,bottom:28},xAxis:{type:"category",data:pi.value.map(i=>i.month||i.name),axisLabel:{color:C,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>{const r=Number(i);return Number.isFinite(r)?Math.abs(r)>=1e4?`${Number((r/1e4).toFixed(1))}万`:`${r}`:i}},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10},splitLine:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:12,data:pi.value.map(i=>i.count||i.value),itemStyle:{borderRadius:[8,8,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"增速",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:pi.value.map(i=>i.speed||i.growthRate||0),lineStyle:{width:2.4,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff"}}]})),Ys=k(()=>({tooltip:Le(),radar:{center:["50%","54%"],radius:"68%",splitNumber:4,indicator:mr.map(i=>({name:i.name,max:100})),axisName:{color:"rgba(223, 250, 255, 0.76)",fontSize:11},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},splitArea:{areaStyle:{color:["rgba(48, 220, 255, 0.04)","rgba(139, 247, 255, 0.018)"]}},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.18)"}}},series:[{type:"radar",data:[{name:"预测因子",value:mr.map(i=>i.value),areaStyle:{color:"rgba(48, 220, 255, 0.22)"},lineStyle:{color:"#30dcff",width:2},itemStyle:{color:"#8bf7ff"}}]}]})),js=k(()=>$i(fi.value,"forecast","头")),Hs=k(()=>{const i=es.value,r=i.reduce((l,c,p)=>{const y=c.color||R[p%R.length];return l[`name${p}`]={color:y,fontSize:10,fontWeight:800},l[`percent${p}`]={color:y,fontSize:10,fontFamily:"D-DIN, Arial, sans-serif",fontWeight:800},l},{});return{color:R,tooltip:Le(l=>{var p;const c=i.find(y=>y.name===l.name);return`${l.name}
    预测占比:${et((p=c==null?void 0:c.ratio)!=null?p:l.percent)}
    预测数量:${K((c==null?void 0:c.count)||0)}头`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,formatter(l){const c=i.findIndex(y=>y.name===l),p=i[c];return p?`{name${c}|${l}} {percent${c}|${et(p.ratio)}}`:l},textStyle:{color:S,fontSize:10,rich:r}},series:[{name:"期末结构预测",type:"pie",radius:["38%","66%"],center:["32%","54%"],startAngle:118,avoidLabelOverlap:!1,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i.map(l=>({name:l.name,value:l.count}))}]}}),qs=k(()=>({color:["#8bf7ff","#48cfff","#48cfff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:{top:4,right:8,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:44,right:26,top:34,bottom:28},xAxis:{type:"category",data:Gt.map(i=>i.shortLabel),axisLabel:{color:m,fontSize:11,fontWeight:700},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>Wa(i,1)},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"新生牛犊",type:"bar",barWidth:12,data:Gt.map(i=>i.births),itemStyle:{borderRadius:[7,7,0,0]}},{name:"出栏流出",type:"bar",barWidth:12,data:Gt.map(i=>-i.outflow),itemStyle:{borderRadius:[0,0,7,7]}},{name:"稳态校正",type:"line",smooth:!0,symbolSize:6,data:Gt.map(i=>i.correction),lineStyle:{width:2.4}}]})),Us=k(()=>{const i=fi.value,r=Math.max(...i.map(l=>Math.abs(l.change)),1);return i.map(l=>$(N({},l),{width:Math.max(8,Math.round(Math.abs(l.change)/r*100))}))});function Ks(i){const r=Number((i==null?void 0:i.change)||0)>=0;return{"--heat-width":`${i.width}%`,"--heat-color":r?"#30dcff":"#8bf7ff","--heat-color-soft":r?"rgba(48, 220, 255, 0.24)":"rgba(139, 247, 255, 0.22)","--heat-color-dim":r?"rgba(48, 220, 255, 0.07)":"rgba(139, 247, 255, 0.07)"}}function Zs(i){return`${i.name}:${Ya(i.change)}头`}const Xs=k(()=>{const i=gi.value,r=i.map(c=>c.value),l=Math.max(...r,1);return{color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},formatter(c){const p=c[0];return`${p.name}
    防疫记录:${K(p.value)}条`}}),grid:{left:42,right:24,top:20,bottom:28},xAxis:{type:"category",data:i.map(c=>c.name),axisLabel:{color:C,fontSize:10,interval:Math.max(Math.floor(i.length/7),0)},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"防疫记录",type:"bar",barMaxWidth:12,data:r,itemStyle:{borderRadius:[7,7,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.92)",fontSize:10,formatter:({value:c})=>c>=l*.42?ie(c):""}},{name:"作业趋势",type:"line",smooth:!0,showSymbol:!1,data:r,lineStyle:{width:2.4,color:"#8bf7ff"}}]}});k(()=>{const i=gi.value.length?gi.value.slice(-6):[{name:"待开展",value:0}],r=i.map(w=>Number(w.value||0)),l=us.value,c=l.map(w=>Number(w.value||0)),p=Math.max(...r,1),y=w=>String(w||"").replace(/(镇|乡|村)$/,"");return{color:["#30dcff","#8bf7ff"],title:[{text:"作业节奏",left:4,top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}},{text:"补免关注",left:"55%",top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}}],tooltip:$(N({},Le()),{trigger:"axis",formatter(w){const T=Array.isArray(w)?w[0]:w;if((T==null?void 0:T.axisIndex)===1){const _=l[T.dataIndex]||{};return`${_.name}
    补免关注:${_.label||T.value}`}const F=i[T.dataIndex]||{};return`${F.name}
    防疫记录:${K(F.value)}条`}}),grid:[{left:6,right:"52%",top:26,bottom:15},{left:"56%",right:12,top:26,bottom:15}],xAxis:[{type:"category",gridIndex:0,data:i.map(w=>w.name),axisLabel:{color:"rgba(226, 252, 255, 0.56)",fontSize:9,interval:0,formatter:w=>String(w||"").replace(/^(\d{1,2})\D+(\d{1,2}).*$/,"$1/$2")},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},{type:"value",gridIndex:1,min:0,max:Math.max(...c,100),show:!1}],yAxis:[{type:"value",gridIndex:0,show:!1},{type:"category",gridIndex:1,inverse:!0,data:l.map(w=>w.name),axisLabel:{color:"rgba(226, 252, 255, 0.68)",fontSize:9,formatter:w=>y(w)},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"防疫记录",type:"bar",xAxisIndex:0,yAxisIndex:0,barMaxWidth:9,data:r,itemStyle:{borderRadius:[6,6,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.1)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.86)",fontSize:8,formatter:({value:w})=>w>=p*.55?ie(w):""}},{name:"节奏线",type:"line",xAxisIndex:0,yAxisIndex:0,smooth:!0,showSymbol:!1,data:r,lineStyle:{width:1.8,color:"#8bf7ff"},tooltip:{show:!1}},{name:"补免关注",type:"bar",xAxisIndex:1,yAxisIndex:1,barWidth:8,data:c,itemStyle:{borderRadius:[0,7,7,0],color:new Ae(0,0,1,0,[{offset:0,color:"rgba(139, 247, 255, 0.24)"},{offset:1,color:"#8bf7ff"}])},label:{show:!0,position:"right",color:"rgba(201, 251, 255, 0.9)",fontSize:8,formatter:({dataIndex:w})=>{var T;return((T=l[w])==null?void 0:T.label)||""}}}]}}),k(()=>{const i=cs.value,r=i.map(y=>Number(y.value||0)),l=Math.max(...r,1),c=r.filter(Boolean).reduce((y,w)=>y+w,0)/Math.max(r.filter(Boolean).length,1),p=Math.ceil(l*1.18);return{color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(y){var T;const w=i[(T=y[0])==null?void 0:T.dataIndex]||{};return w.isMissing?`${w.name}
    年度防疫:待补强`:`${w.name}
    覆盖量:${K(w.value)}头
    防疫记录:${K(w.recordCount)}条`}}),grid:{left:56,right:46,top:16,bottom:12},xAxis:{type:"value",min:0,max:p,show:!1},yAxis:{type:"category",inverse:!0,data:i.map(y=>y.name),axisLabel:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,interval:0,formatter:y=>String(y||"").replace(/(镇|乡)$/,"")},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"均衡参照",type:"bar",barWidth:11,silent:!0,barGap:"-100%",data:i.map(()=>p),itemStyle:{borderRadius:[0,8,8,0],borderColor:"rgba(48, 220, 255, 0.12)",borderWidth:1,color:"rgba(48, 220, 255, 0.045)"}},{name:"覆盖量",type:"bar",barWidth:11,barGap:"-100%",z:3,data:i.map(y=>{const w=Number(y.value||0);return{value:w>0?w:Math.max(p*.035,1),rawValue:w,itemStyle:{borderRadius:[0,8,8,0],color:new Ae(0,0,1,0,[{offset:0,color:y.isMissing?"rgba(72, 207, 255, 0.2)":"rgba(48, 220, 255, 0.14)"},{offset:.72,color:y.isMissing?"#48cfff":"#30dcff"},{offset:1,color:y.isMissing?"#8bf7ff":"#9efcff"}]),shadowBlur:y.isMissing?4:5,shadowColor:y.isMissing?"rgba(72, 207, 255, 0.18)":"rgba(48, 220, 255, 0.16)"}}}),label:{show:!0,position:"right",color:"rgba(239, 255, 255, 0.92)",fontSize:11,fontWeight:800,formatter:({dataIndex:y})=>{const w=i[y]||{};return w.isMissing?"待补强":`${ie(w.value)}头`}},markLine:c>0?{symbol:"none",silent:!0,lineStyle:{color:"rgba(139, 247, 255, 0.46)",type:"dashed",width:1},label:{color:"rgba(201, 251, 255, 0.8)",fontSize:10,formatter:"均衡线"},data:[{xAxis:c}]}:void 0}]}}),k(()=>{const i=ds.value,r=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff","#40b8ff","#8bf7ff"],l=i.length?i.map((c,p)=>({name:String(c.name||"").replace(/(村|社区|牧委会)$/,""),value:Math.max(Number(c.value||0),1),rawValue:Number(c.value||0),town:c.town||"",itemStyle:{color:new Ae(0,0,1,1,[{offset:0,color:r[p%r.length]},{offset:1,color:"rgba(17, 70, 92, 0.38)"}])}})):[{name:"待形成",value:1,rawValue:0,town:"",itemStyle:{color:"rgba(48, 220, 255, 0.14)"}}];return{tooltip:$(N({},Le()),{formatter(c){const p=c.data||{};return p.rawValue?`${p.town?`${p.town} `:""}${p.name}
    覆盖量:${K(p.rawValue)}头`:`${p.name}
    暂无村级覆盖量`}}),series:[{type:"treemap",roam:!1,nodeClick:!1,breadcrumb:{show:!1},left:6,right:6,top:7,bottom:5,visibleMin:1,data:l,label:{show:!0,color:"rgba(235, 254, 255, 0.9)",fontSize:10,fontWeight:800,lineHeight:14,formatter(c){var y;const p=Number(((y=c.data)==null?void 0:y.rawValue)||0);return p?`${c.name} +${ie(p)}头`:c.name}},upperLabel:{show:!1},itemStyle:{borderColor:"rgba(4, 24, 36, 0.88)",borderWidth:2,gapWidth:2},emphasis:{label:{color:"#ffffff"},itemStyle:{shadowBlur:6,shadowColor:"rgba(48, 220, 255, 0.18)"}},levels:[{itemStyle:{borderColor:"rgba(14, 75, 98, 0.72)",borderWidth:1,gapWidth:2}}]}]}});const Js=k(()=>{const i=vi.value,r=i.length>8?10:12,l=r+8,c=i.map(_=>Number(_.recordCount||0)),p=i.map(_=>Number(_.earTagCount||0)),y=Math.max(...c,1),w=i.map(()=>Math.ceil(y*1.08)),T=new Ae(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.18)"},{offset:.48,color:"rgba(48, 220, 255, 0.06)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}]),F=new Ae(0,0,0,1,[{offset:0,color:"#31f7ff"},{offset:.36,color:"#1cbcff"},{offset:1,color:"#266dff"}]);return{color:["#31f7ff","#8bf7ff"],title:{text:`台账总量:{value|${ie(mt.value)}条}`,right:0,top:0,textStyle:{color:"#fff",fontSize:12,fontWeight:500,rich:{value:{color:"#22f1ff",borderColor:"#14bdf4",borderWidth:1,borderRadius:2,padding:[2,6,3,6],fontSize:12,fontWeight:700}}}},tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(_){const A=i[_[0].dataIndex];return[`${A.name}`,`防疫记录:${K(A.recordCount)}条`,`耳标数量:${K(A.earTagCount)}头`,"数据来源:防疫台账"].join("
    ")}}),legend:[{data:["防疫记录"],top:0,left:0,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:m,fontSize:11},selectedMode:!1},{data:["耳标数"],top:0,left:82,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:m,fontSize:11},selectedMode:!1}],grid:{left:42,right:12,top:46,bottom:68},xAxis:{type:"category",data:i.map(_=>_.name),axisLabel:{color:m,fontSize:10,interval:0,lineHeight:11,margin:8,formatter:go},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},yAxis:{type:"value",name:"数量/条",max:Math.ceil(y*1.2),nameTextStyle:{color:C,fontSize:10,align:"left"},axisLabel:{color:C,fontSize:10,formatter:ie},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"统计底柱",type:"bar",barWidth:l,barGap:"-100%",data:w,tooltip:{show:!1},silent:!0,z:1,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(48, 220, 255, 0.22)",borderWidth:1,color:T}},{name:"防疫记录",type:"bar",barGap:"-100%",barWidth:r,barMinHeight:2,z:3,data:c.map(_=>({value:_,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(200, 252, 255, 0.22)",borderWidth:1,color:F,shadowBlur:10,shadowColor:"rgba(49, 247, 255, 0.28)"}}))},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[r+7,5],symbolOffset:[0,-3],symbolPosition:"end",z:8,tooltip:{show:!1},data:c.map(_=>({value:_,itemStyle:{color:"rgba(207, 252, 255, 0.88)",shadowBlur:8,shadowColor:"rgba(49, 247, 255, 0.72)"}}))},{name:"底座光影",type:"pictorialBar",symbol:"diamond",symbolSize:[l+3,5],symbolOffset:[0,3],z:2,tooltip:{show:!1},data:c,itemStyle:{color:"rgba(48, 220, 255, 0.24)",shadowBlur:10,shadowColor:"rgba(48, 220, 255, 0.45)"}},{name:"耳标数",type:"line",smooth:!0,showSymbol:!1,z:9,data:p,lineStyle:{width:1.6,color:"#8bf7ff",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:"#8bf7ff"}}]}}),Qs=k(()=>{const i=as.value;return{tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(r){const l=i[r[0].dataIndex];return`${l.name}
    防疫记录:${K(l.value)}条`}}),grid:{left:74,right:42,top:12,bottom:8},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:i.map(r=>r.name),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"记录",type:"bar",barWidth:9,data:i.map((r,l)=>({value:r.value,itemStyle:{borderRadius:[0,8,8,0],color:new Ae(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.12)"},{offset:.62,color:["#30dcff","#8bf7ff","#58d9ff"][l%3]},{offset:1,color:"#ffffff"}])}})),label:{show:!0,position:"right",color:"#eaffff",fontSize:10,formatter:({value:r})=>ie(r)}},{type:"scatter",symbolSize:7,data:i.map(r=>r.value),itemStyle:{color:"#8bf7ff",shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}]}}),eo=k(()=>{const i=ys.value;return{color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(r){const l=r.find(p=>p.seriesName==="流通头数"),c=r.find(p=>p.seriesName==="出证记录");return`${(l==null?void 0:l.axisValue)||""}
    流通头数:${K((l==null?void 0:l.value)||0)}头
    出证记录:${K((c==null?void 0:c.value)||0)}条`}}),legend:{top:4,right:10,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:42,right:38,top:34,bottom:28},xAxis:{type:"category",data:i.map(r=>r.name),axisLabel:{color:C,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10,formatter:ie},splitLine:{show:!1}}],series:[{name:"流通头数",type:"bar",barMaxWidth:13,data:i.map(r=>r.headCount),itemStyle:{borderRadius:[7,7,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"出证记录",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:i.map(r=>r.recordCount),lineStyle:{width:2.2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2}}]}}),to=k(()=>$i(Ga.value.slice(0,10),"headCount","头",{colors:We,style:"ladder",axisTextColor:"rgba(255, 255, 255, 0.88)",dimAxisTextColor:"rgba(255, 255, 255, 0.74)",tooltipFormatter(i){const r=Ga.value[i.dataIndex];return`${r.name}
    流通头数:${K(r.headCount)}头
    出证记录:${K(r.recordCount)}条`}})),ao=k(()=>{const i=Li.value;return{color:We,tooltip:Le(r=>{const l=i.find(c=>c.name===r.name);return`${r.name}
    占比:${r.percent}%
    流通头数:${K(r.value)}头
    出证记录:${K((l==null?void 0:l.recordCount)||0)}条`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,textStyle:{color:S,fontSize:10},formatter(r){const l=i.find(c=>c.name===r);return l?`${r} ${ie(l.headCount)}头`:r}},series:[{name:"用途结构",type:"pie",radius:["38%","64%"],center:["32%","54%"],startAngle:110,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i.map(r=>({name:r.name,value:r.headCount}))}]}}),io=k(()=>{const i=[{name:"省外A证",value:ze("outProvinceHeads","aCertHeads")},{name:"省内B证",value:ze("inProvinceHeads","bCertHeads")}];return{color:["#8bf7ff","#30dcff"],tooltip:Le(r=>`${r.name}
    流通头数:${K(r.value)}头
    占比:${r.percent}%`),series:[{type:"pie",radius:["48%","72%"],center:["50%","52%"],label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i}]}});function Mi(){o.value=typeof window=="undefined"?1080:window.innerHeight}function pn(){var i,r,l,c,p,y;if(Tt.value){(r=(i=sa.value)==null?void 0:i.refreshView)==null||r.call(i);return}(c=(l=Ve.value)==null?void 0:l.resume)==null||c.call(l),(y=(p=Ve.value)==null?void 0:p.refreshView)==null||y.call(p)}function ki(){Lt&&(window.clearTimeout(Lt),Lt=null)}function no(){var i,r,l,c,p,y;if(la.value={type:"loading",text:"地图正在复位"},ua.value={type:"idle",text:""},Tt.value){(r=(i=sa.value)==null?void 0:i.hasMap)!=null&&r.call(i)?(oa.value=!0,(c=(l=sa.value)==null?void 0:l.resetView)==null||c.call(l)):(oa.value=!1,Zi.value+=1,Yt(()=>{window.setTimeout(()=>{var w,T;return(T=(w=sa.value)==null?void 0:w.refreshView)==null?void 0:T.call(w)},160)}));return}if((y=(p=Ve.value)==null?void 0:p.hasMap)!=null&&y.call(p)){$t.value=!0,pn();return}ki(),$t.value=!1,wt=!1,Ki.value+=1,Yt(()=>{da()})}e({refreshMapView:pn,resetMap:no,setActiveView(i){W.value=Vi(i)}}),Dr(()=>{Mi(),window.addEventListener("resize",Mi),$o(),Io(),Gn(),kn(),Aa(),Ea()}),Or(()=>{var i,r;ca=!0,window.removeEventListener("resize",Mi),Lt&&window.clearTimeout(Lt),Pi(),Ci(),(r=(i=Ve.value)==null?void 0:i.destroyMap)==null||r.call(i)}),Ht([W,Je,Ft,bi,mt,ce,ye,ln],()=>{zo()},{immediate:!0}),Ht(W,(i,r)=>{n("view-change",i);const l=i==="structure"||i==="forecast",c=r==="structure"||r==="forecast",p=!l&&!c&&(i==="trade"||r==="trade");l&&!c&&(oa.value=!1,la.value={type:"idle",text:""},ua.value={type:"idle",text:""}),!l&&c&&(ki(),$t.value=!1,wt=!1,la.value={type:"idle",text:""},ua.value={type:"idle",text:""},Yt(()=>{var y,w,T,F;da(),(w=(y=Ve.value)==null?void 0:y.resume)==null||w.call(y),(F=(T=Ve.value)==null?void 0:T.refreshView)==null||F.call(T),window.setTimeout(()=>{var _,A;return(A=(_=Ve.value)==null?void 0:_.refreshView)==null?void 0:A.call(_)},180)})),p&&(ki(),$t.value=!1,wt=!1,la.value={type:"idle",text:""},ua.value={type:"idle",text:""},Yt(()=>{da()})),Aa(),Ea()}),Ht(()=>a.viewKey,i=>{const r=Vi(i);r!==W.value&&(W.value=r)}),Ht(()=>a.active,i=>{var r,l,c,p;i?(da(),(l=(r=Ve.value)==null?void 0:r.resume)==null||l.call(r),Aa(),Ea()):((p=(c=Ve.value)==null?void 0:c.pause)==null||p.call(c),Pi(),Ci())}),Ht(Ba,i=>{ht.value>=i.pageCount&&(ht.value=0),Ea()});function ro(i){i!==Ee.value&&(Ee.value=i,Aa())}function Aa(){Pi(),!(!a.active||W.value!=="forecast"||ca)&&(ka=window.setInterval(so,Zd))}function so(){const i=Gt.findIndex(l=>l.key===Ee.value),r=i>=0?(i+1)%Gt.length:0;Ee.value=Gt[r].key}function Pi(){ka&&(window.clearInterval(ka),ka=null)}function Ea(){Ci(),!(!a.active||W.value!=="structure"||ca||Ba.value.pageCount<=1)&&(Pa=window.setInterval(oo,Xd))}function oo(){const i=Ba.value.pageCount;i<=1||(ht.value=(ht.value+1)%i)}function Ci(){Pa&&(window.clearInterval(Pa),Pa=null)}function lo(i=[],r=[]){const l=new Map;return r.forEach(c=>{const p=Fi(c.name);p&&l.set(p,$(N({},c),{name:p,count:Number(c.count||0)}))}),i.forEach(c=>{const p=Fi(c.name);if(!p)return;const y=l.get(p)||{};l.set(p,$(N(N({},y),c),{name:p,count:Number.isFinite(Number(c.count))?Number(c.count):Number(y.count||0)}))}),[...l.values()].sort((c,p)=>Number(p.count||0)-Number(c.count||0))}function Fi(i){return gr(i||"")}function Qe(i){return String(i||"").trim()}function xi(i){const r=Number(i);return Number.isFinite(r)&&Ue.includes(r)?r:Ue[Ue.length-1]}function Ni(i=ce.value){const r=xi(i);return{startDate:`${r}-01-01`,endDate:`${r}-12-31`}}function $a(){return{keyword:"",town:"",medicine:"",startDate:"",endDate:""}}function St(i=[]){return Array.isArray(i)?i.map((r,l)=>{var c,p,y;return{key:r.key||r.id||`${r.name||r.label||"item"}-${l}`,name:String(r.name||r.label||r.town||r.village||"未填写"),value:Number((y=(p=(c=r.value)!=null?c:r.count)!=null?p:r.total)!=null?y:0)}}).filter(r=>r.name&&Number.isFinite(r.value)):[]}function fn(i={}){const r=St(i==null?void 0:i.medicineCounts);return Math.max(r.filter(l=>l.name!=="未填写").length,1)}function mn(...i){const r=i.flatMap(l=>Array.isArray(l)?l:[l]).map(l=>{var c,p,y;return l&&typeof l=="object"?(y=(p=(c=l.year)!=null?c:l.value)!=null?p:l.latestYear)!=null?y:l.latest_year:l}).map(Number).filter(l=>Number.isFinite(l)&&l>0);return[...new Set(r)].sort((l,c)=>l-c)}function Va(i=[],r="name"){return Array.isArray(i)?i.map((l,c)=>{var p,y,w,T,F,_,A,Y,X,D,Q,Ne,lt,Kt,de,De,ha;return{key:l.key||l.id||`${l[r]||l.name||l.label||"trade"}-${c}`,name:String(l[r]||l.name||l.label||l.town||"未填写"),recordCount:Number((w=(y=(p=l.recordCount)!=null?p:l.record_count)!=null?y:l.count)!=null?w:0),headCount:Number((A=(_=(F=(T=l.headCount)!=null?T:l.head_count)!=null?F:l.amount)!=null?_:l.value)!=null?A:0),lng:gt((Ne=(Q=(D=(X=(Y=l.lng)!=null?Y:l.longitude)!=null?X:l.destLng)!=null?D:l.dest_lng)!=null?Q:l.destLongitude)!=null?Ne:l.dest_longitude),lat:gt((ha=(De=(de=(Kt=(lt=l.lat)!=null?lt:l.latitude)!=null?Kt:l.destLat)!=null?de:l.dest_lat)!=null?De:l.destLatitude)!=null?ha:l.dest_latitude)}}).filter(l=>l.name&&Number.isFinite(l.headCount)):[]}function uo(i=[]){return Array.isArray(i)?i.map(r=>{var l,c,p,y,w,T;return{year:Number(r.year),recordCount:Number((c=(l=r.recordCount)!=null?l:r.record_count)!=null?c:0),headCount:Number((T=(w=(y=(p=r.headCount)!=null?p:r.head_count)!=null?y:r.amount)!=null?w:r.value)!=null?T:0)}}).filter(r=>Number.isFinite(r.year)&&Number.isFinite(r.headCount)):[]}function Ri(i=[]){return Array.isArray(i)?Ii(i.map(r=>{var l,c,p;return r&&typeof r=="object"?(p=(c=(l=r.value)!=null?l:r.label)!=null?c:r.name)!=null?p:"":r})):[]}function co(i=[]){return Array.isArray(i)?i.map(r=>{var l,c,p,y,w,T;if(r&&typeof r=="object"){const F=(p=(c=(l=r.value)!=null?l:r.name)!=null?c:r.label)!=null?p:"",_=(T=(w=(y=r.label)!=null?y:r.name)!=null?w:r.value)!=null?T:F;return F?{value:String(F),label:String(_||F)}:null}return r?{value:String(r),label:String(r)}:null}).filter(Boolean):[]}function Ii(i=[]){return[...new Set(i.map(r=>String(r||"").trim()).filter(Boolean))]}function ho(i=[]){if(!Array.isArray(i))return[];const r=new Map;i.forEach((c,p)=>{var _,A,Y,X,D,Q;const y=Qe(c.name||c.areaName||c.area_name||c.town||c.label||"");if(!y)return;const w=gt((Y=(A=(_=c.value)!=null?_:c.number)!=null?A:c.count)!=null?Y:c.total);if(!Number.isFinite(w))return;const T=r.get(y)||{key:c.areaCode||c.area_code||`${y}-${p}`,name:y,recordCount:0,earTagCount:0,source:"stats"};T.recordCount+=w;const F=gt((Q=(D=(X=c.earTagCount)!=null?X:c.ear_tag_count)!=null?D:c.headCount)!=null?Q:c.head_count);T.earTagCount+=Number.isFinite(F)?F:0,r.set(y,T)});const l=[...r.values()].reduce((c,p)=>c+Number(p.recordCount||0),0);return[...r.values()].map(c=>$(N({},c),{earTagCount:c.earTagCount||Math.round(Number(c.recordCount||0)/xt.value),ratio:l?Number(c.recordCount||0)/l*100:0})).sort((c,p)=>Number(p.recordCount||0)-Number(c.recordCount||0))}function po(i={}){var p,y;const r=Array.isArray(i)?{rows:i}:i||{},l=r.result||{};return{rows:r.rows||r.data||r.list||r.records||[],year:(y=(p=r.year)!=null?p:l.year)!=null?y:null}}function Gi(i=[]){return Array.isArray(i)?i.map((r,l)=>{var Y,X,D,Q,Ne,lt,Kt,de,De,ha,Xn,Jn;const c=Qe(r.town||r.townName||r.town_name||""),p=String(r.village||r.villageName||r.village_name||r.name||"").trim(),y=gt((D=(X=(Y=r.recordCount)!=null?Y:r.record_count)!=null?X:r.records)!=null?D:r.total),w=gt((Kt=(lt=(Ne=(Q=r.earTagCount)!=null?Q:r.ear_tag_count)!=null?Ne:r.headCount)!=null?lt:r.head_count)!=null?Kt:r.value),T=gt((De=(de=r.imageCount)!=null?de:r.image_count)!=null?De:r.images),F=gt((ha=r.imageRate)!=null?ha:r.image_rate),_=gt((Xn=r.lng)!=null?Xn:r.longitude),A=gt((Jn=r.lat)!=null?Jn:r.latitude);return{key:r.key||r.id||`${c}-${p}-${l}`,town:c,village:p,recordCount:Number.isFinite(y)?y:0,earTagCount:Number.isFinite(w)?w:0,imageCount:Number.isFinite(T)?T:0,imageRate:Number.isFinite(F)?F:0,lng:_,lat:A}}).filter(r=>r.town&&r.village&&Number.isFinite(r.earTagCount)).sort((r,l)=>Number(l.earTagCount||0)-Number(r.earTagCount||0)):[]}function fo(i={},r={}){const l=Array.isArray(r)?{rows:r}:r||{},c=l.result||{},p=Gi(l.rows||l.data||l.list||l.records||c.rows||[]),y=new Map;p.forEach(A=>{gn(A.village).forEach(Y=>{y.has(Y)||y.set(Y,A)})});const w=St(i==null?void 0:i.townCounts),T=w.length===1?Qe(w[0].name):"",F=fn(i),_=St(i==null?void 0:i.villageCounts).map((A,Y)=>{const X=String(A.name||"").trim(),D=gn(X).map(Ne=>y.get(Ne)).find(Boolean)||{},Q=Number(A.value||0);return{key:D.key||`${D.town||T||"防疫"}-${X}-${Y}`,town:D.town||T,village:X,recordCount:Q,earTagCount:Math.round(Q/F),imageCount:D.imageCount||0,imageRate:D.imageRate||0,lng:D.lng,lat:D.lat}}).filter(A=>A.village&&A.recordCount>0);return $(N({},l),{rows:_})}function gn(i){const r=String(i||"").trim(),l=r.replace(/(村|社区|牧委会)$/,"");return[...new Set([r,l].filter(Boolean))]}function gt(i){if(i==null||i==="")return NaN;const r=Number(String(i).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(r)?r:NaN}function yn(i){return String(i||"").replace(/'/g,"''").replace(/%/g,"\\%").replace(/_/g,"\\_")}function mo(i,r){const l=Qe(i),c=String(r||"").trim();if(!l||!c)return"";const p=`${l}${c}`,y=yn(p),w=yn(c);return`(full_name LIKE '%${y}%' OR name = '${y}' OR name = '${w}')`}function go(i){const r=String(i||"").trim().replace(/\s+/g,"");return r?Array.from(r).join(` +`):""}function yo(i){const r=String(i||"").trim();if(!r)return"";const l=r.match(/^(.+)(镇|乡|村)$/);return l?`${l[1]} +${l[2]}`:r}function bo(i,r){return bn(i.name)-bn(r.name)}function bn(i){const r=String(i||"").match(/(\d{1,2})\D+(\d{1,2})/);return r?Number(r[1])*100+Number(r[2]):Number.MAX_SAFE_INTEGER}function _i(i=[]){return Array.isArray(i)?i.map(vn).filter(Boolean):[]}function vn(i){return i?{epidemicId:i.epidemicId||i.epidemic_id||i.id||"",earTag:i.earTag||i.ear_tag||"",owner:i.owner||"",idType:i.idType||i.id_type||"",idNo:i.idNo||i.id_no||"",phone:i.phone||"",town:i.town||"",village:i.village||"",location:i.location||"",livestockType:i.livestockType||i.livestock_type||"",age:i.age||"",sex:i.sex||"",weight:i.weight||i.weightKg||i.weight_kg||"",preventionType:i.preventionType||i.prevention_type||"",method:i.method||"",medicine:i.medicine||"",dose:i.dose||"",operator:i.operator||"",operateTime:i.operateTime||i.operate_time||"",imagePaths:i.imagePaths||i.image_paths||""}:null}function wn(i=[]){return Array.isArray(i)?i.map(vo).filter(Boolean):[]}function vo(i){var r,l,c,p;return i?{certId:i.certId||i.cert_id||i.id||"",certType:i.certType||i.cert_type||"",certScopeName:i.certScopeName||i.cert_scope_name||"",factoryCode:i.factoryCode||i.factory_code||"",ownerName:i.ownerName||i.owner_name||"",ownerPhone:i.ownerPhone||i.owner_phone||"",transportNumber:i.transportNumber||i.transport_number||"",amount:Number((p=(c=(l=(r=i.amount)!=null?r:i.headCount)!=null?l:i.head_count)!=null?c:i.value)!=null?p:0),unitName:i.unitName||i.unit_name||"头",animalTypeName:i.animalTypeName||i.animal_type_name||"",usageTypeName:i.usageTypeName||i.usage_type_name||"",startTown:i.startTown||i.start_town||"",startRegionFullName:i.startRegionFullName||i.start_region_full_name||"",destProvince:i.destProvince||i.dest_province||"",destRegionFullName:i.destRegionFullName||i.dest_region_full_name||"",quarantineOfficerName:i.quarantineOfficerName||i.quarantine_officer_name||"",issueTime:i.issueTime||i.issue_time||"",statusName:i.statusName||i.status_name||""}:null}function za(i,r){for(const l of r){const c=Number(i==null?void 0:i[l]);if(Number.isFinite(c))return c}return 0}function ze(...i){return za(ln.value,i)}function Ln(i=[],r=2){const l=[...new Set(i.map(c=>String(c||"").trim()).filter(Boolean))];return l.length?l.length<=r?l.join("、"):`${l.slice(0,r).join("、")}等${l.length}个乡镇`:"暂无"}function wo(){const i=Nt.value;if(i.length)return{name:Ln(i,1),desc:"年度防疫覆盖需补强",level:"watch"};const r=Vt.value.filter(c=>Number(c.earTagCount||c.recordCount||0)>0).sort((c,p)=>Number(c.earTagCount||c.recordCount||0)-Number(p.earTagCount||p.recordCount||0)),l=r[0];return l?{name:l.name,desc:`${ie(l.earTagCount||l.recordCount)}头,建议补免回访`,level:r.length>=2?"watch":"normal"}:{name:"暂无",desc:"等待年度防疫记录形成",level:"normal"}}function Lo(){const i=Nt.value;if(i.length)return i.slice(0,4).map((c,p)=>({key:`missing-${c}`,name:c,value:Math.max(25,100-p*12),label:"待补免",level:"watch"}));const r=Vt.value.filter(c=>Number(c.earTagCount||c.recordCount||0)>0);if(!r.length)return[{key:"empty",name:"暂无",value:0,label:"待开展",level:"watch"}];const l=r.reduce((c,p)=>c+Number(p.earTagCount||0),0)/r.length||1;return[...r].sort((c,p)=>Number(c.earTagCount||0)-Number(p.earTagCount||0)).slice(0,4).map(c=>{const p=Number(c.earTagCount||c.recordCount||0),y=Math.max(8,Math.round((l-p)/l*100));return{key:`weak-${c.name}`,name:c.name,value:Math.min(100,y),label:`${ie(p)}头`,level:y>=35?"watch":"normal"}})}function To(){const r=(vi.value.length?vi.value:Vt.value).map((p,y)=>{const w=Qe(p.name),T=Number(p.earTagCount||0),F=Number(p.recordCount||p.value||0),_=T||Math.round(F/xt.value);return{key:p.key||`${w}-${y}`,name:w,value:_,recordCount:F,isMissing:!1}}).filter(p=>p.name&&Number.isFinite(p.value)),c=[...Nt.value.map((p,y)=>({key:`missing-${p}-${y}`,name:p,value:0,recordCount:0,isMissing:!0})),...r];return c.length?c.sort((p,y)=>p.isMissing!==y.isMissing?p.isMissing?-1:1:Number(p.value||0)-Number(y.value||0)).slice(0,7):[{key:"empty",name:"待开展",value:0,recordCount:0,isMissing:!0}]}function So(){var r;const i=rn.value.map((l,c)=>({key:l.key||`${l.town}-${l.village}-${c}`,name:l.village||l.name,town:l.town,value:Number(l.earTagCount||l.value||0)})).filter(l=>l.name&&Number.isFinite(l.value)&&l.value>0);return i.length?i.sort((l,c)=>c.value-l.value).slice(0,9):St((r=we.value)==null?void 0:r.villageCounts).map((l,c)=>({key:l.key||`${l.name}-${c}`,name:l.name,town:"",value:Math.round(Number(l.value||0)/xt.value)})).filter(l=>l.name&&Number.isFinite(l.value)&&l.value>0).sort((l,c)=>c.value-l.value).slice(0,9)}function Mo(){if(!mt.value)return{level:"watch",title:"年度待开展",desc:"年度免疫记录暂未形成",advice:"建议先核查年度免疫计划与乡镇推进节奏。"};const i=ls.value,r=Ia.value;return Nt.value.length?{level:"watch",title:"补免待核查",desc:`乡镇覆盖${et(i)},${r.name}需补强`,advice:`优先核查${Ln(Nt.value,1)}免疫进度。`}:i>=90&&xt.value>=4?{level:"stable",title:"运行平稳",desc:`乡镇覆盖${et(i)},疫苗谱较完整`,advice:"建议保持当前免疫节奏,持续跟踪补免回访。"}:{level:"normal",title:"均衡回访",desc:`${r.name}相对偏低,适合继续跟进`,advice:`关注${r.name}补免回访,保持覆盖均衡。`}}function ko(){return[{key:"latest",name:"最近免疫",value:nn.value,desc:"最后作业时间",level:nn.value==="-"?"watch":"stable",color:"#8bf7ff"},{key:"top-town",name:"高频乡镇",value:rs.value,desc:"年度作业集中区",level:"normal",color:"#30dcff"},{key:"vaccine",name:"主用疫苗",value:is.value,desc:`${xt.value}类疫苗`,level:"normal",color:"#8bf7ff"}]}function Po(){const i=ze("headCount","totalHeads","total_heads"),r=_a.value,l=r.reduce((de,De)=>de+Number(De.headCount||0),0)||i||1,c=r[0],p=c?Number(c.headCount||0)/l*100:0,y=Li.value.filter(de=>de.name&&de.name!=="未填写").sort((de,De)=>Number(De.headCount||0)-Number(de.headCount||0)),w=y.reduce((de,De)=>de+Number(De.headCount||0),0)||i||1,T=y[0],F=T?Number(T.headCount||0)/w*100:0,A=bs.value.filter(de=>de.name&&de.name!=="未填写").sort((de,De)=>Number(De.headCount||De.recordCount||0)-Number(de.headCount||de.recordCount||0))[0],Y=ze("vehicleCount","vehicle_count","transportVehicleCount","transport_vehicle_count"),X=Y>0?i/Y:0,D=ze("outProvinceHeads","out_province_heads","aCertHeads","a_cert_heads"),Q=ze("inProvinceHeads","in_province_heads","bCertHeads","b_cert_heads"),Ne=D+Q||i||1,lt=D?D/Ne*100:0;return[{key:"town",name:"高频出栏乡镇",value:(c==null?void 0:c.displayName)||(c==null?void 0:c.name)||"暂无",desc:c?`${ie(c.headCount)}头,占${et(p)}`:"等待来源乡镇数据",level:p>=35?"high":p>=24?"watch":"normal",color:"#63d7ff"},{key:"usage",name:"交易用途集中度",value:(T==null?void 0:T.name)||"暂无",desc:T?`占${et(F)}`:"等待用途结构数据",level:F>=60?"high":F>=45?"watch":"normal",color:"#30dcff"},{key:"vehicle",name:A?"运输车辆高频":"车辆周转强度",value:A?`${ie(A.headCount||A.recordCount)}${A.headCount?"头":"条"}`:Y?`车均${K(X)}头`:"--",desc:A?"已接入车辆聚合,明细在台账核查":Y?`${K(Y)}辆参与流通`:"等待车辆聚合数据",level:A||X>=260?"watch":"normal",color:"#48cfff"},{key:"cert-dest",name:"证照/去向线索",value:D?et(lt):"--",desc:D?`省外流通${ie(D)}头`:"等待证照去向数据",level:lt>=55?"high":lt>=35?"watch":"normal",color:"#48cfff"}].map(de=>$(N({},de),{badge:de.level==="high"?"重点":de.level==="watch"?"关注":"平稳"}))}function Bi(i={}){return String(i.imagePaths||"").split(";").map(r=>r.trim()).filter(Boolean)}function Tn(i){const l=String(i||"").replace(/^images\//,"").split("/").map(encodeURIComponent).join("/");return`${Hd}/${l}`}function Co(i){Ze.value=Tn(i),Be.value=!0}function Ai(){Be.value=!1,Ze.value=""}function ae(i){return i==null||i===""?"-":i}function Fo(i){const r=String(i!=null?i:"").trim();return!!(r&&r!=="-")}function Me(i,r,l={}){return Fo(r)?N({label:i,value:r},l):null}function Rt(i){return i?String(i).slice(0,10):"-"}function Sn(i){const r=String(i||"").trim();return r?r.length<7?r:`${r.slice(0,3)}****${r.slice(-4)}`:"-"}function xo(i){const r=String(i||"").trim();return r?r.length<=4?r:`****${r.slice(-4)}`:"-"}function No(i){const r=String(i!=null?i:"").trim();if(!r)return"-";if(/kg|公斤|千克/i.test(r))return r;const l=Number(r);return Number.isFinite(l)?`${K(l)}kg`:r}function Ro(i){return String(i!=null?i:"").trim()||"-"}function Mn(i={}){return i.certScopeName||i.certType||"-"}function Io(){return he(this,null,function*(){var c,p;pt.value=!0,Ye.value="";const[i,r,l]=yield Promise.allSettled([tu(),au(),iu()]);i.status==="fulfilled"&&((c=i.value)!=null&&c.length)&&(Pt.value=Ol(i.value.map(y=>({name:gr(y.name),count:Number(y.value)})).filter(y=>y.name&&Number.isFinite(y.count)))),r.status==="fulfilled"&&((p=r.value)!=null&&p.length)&&(Ut.value=r.value.map(y=>({month:y.name,count:Number(y.value),speed:Qo(y.extra)})).filter(y=>y.month&&Number.isFinite(y.count))),l.status==="fulfilled"?(vt.value=Ko(l.value),vt.value.length||(Ye.value="结构数据暂无数据")):(Ye.value=Jo(l.reason,"结构数据异常"),vt.value=[]),pt.value=!1})}function kn(){return he(this,arguments,function*(i=ye.value){var r,l,c,p,y,w;Bt.value=!0,ot.value="";try{(l=(r=ge.value)==null?void 0:r.years)!=null&&l.length||(ge.value=yield nu());const T=mn((c=ge.value)==null?void 0:c.years),F=Number(((p=ge.value)==null?void 0:p.latestYear)||((y=ge.value)==null?void 0:y.latest_year)||T[T.length-1]),_=Number(i||ye.value||F||T[T.length-1]);ye.value=_;let A=yield vr({year:_});const Y=(w=A==null?void 0:A.hasData)!=null?w:A==null?void 0:A.has_data,X=Number((A==null?void 0:A.latestYear)||(A==null?void 0:A.latest_year)||F);Y===!1&&X&&X!==_&&(ye.value=X,A=yield vr({year:X})),te.value=A||{metrics:{},hasData:!1},yield Ei(1)}catch(T){ot.value="交易数据接口异常",te.value={metrics:{},hasData:!1},He.value=[],st.value=0}finally{Bt.value=!1}})}function Ei(){return he(this,arguments,function*(i=Xe.value){var l,c;if(!ye.value)return;const r={year:ye.value,page:i,pageSize:Hi,keyword:ii.value};try{const p=yield wr(r);He.value=wn(p.rows),st.value=Number(((l=p.page)==null?void 0:l.totalCount)||p.totalCount||He.value.length||0),Xe.value=Number(((c=p.page)==null?void 0:c.page)||i||1)}catch(p){ot.value=ot.value||"交易台账接口异常",He.value=[],st.value=0}})}function Go(i){const r=Number(i);!Number.isFinite(r)||r===Number(ye.value)||(ye.value=r,Xe.value=1,Ta.value="",ii.value="",kn(r))}function _o(i){const r=xi(i);r!==Number(ce.value)&&(ce.value=r,xe.value=1,je.value="",rt.value="",J.value=1,me.value=$a(),Gn(r))}function Pn(){ii.value=Ta.value.trim(),Ei(1)}function Cn(i){const r=Math.min(Math.max(Number(i)||1,1),Ti.value);Ei(r)}function Fn(i=null){ni.value=!0,i&&(Ma.value=i),Da(i?Xe.value:1,i)}function xn(){ni.value=!1}function Nn(){Da(1)}function Bo(){ft.value={keyword:"",startTown:"",usageType:"",certType:""},Da(1)}function Rn(i){const r=Math.min(Math.max(Number(i)||1,1),Si.value);Da(r)}function Da(){return he(this,arguments,function*(i=Et.value,r=null){var p,y;if(!ye.value)return;ri.value=!0,si.value="";const l=ft.value,c={year:ye.value,page:i,pageSize:Vr,keyword:l.keyword.trim(),startTown:l.startTown,usageType:l.usageType,certType:l.certType};try{const w=yield wr(c);At.value=wn(w.rows),Sa.value=Number(((p=w.page)==null?void 0:p.totalCount)||w.totalCount||At.value.length||0),Et.value=Number(((y=w.page)==null?void 0:y.page)||i||1);const T=r?r.certId||r.factoryCode:"",F=T?At.value.find(_=>(_.certId||_.factoryCode)===T)||r:At.value[0]||null;In(F)}catch(w){si.value="交易台账接口异常",At.value=[],Sa.value=0,Ma.value=null}finally{ri.value=!1}})}function In(i){Ma.value=i||null}function Ao(i){i!=null&&i.startTown&&(W.value="trade",Yt(()=>{var r,l,c,p,y,w;(l=(r=Ve.value)==null?void 0:r.resume)==null||l.call(r),(p=(c=Ve.value)==null?void 0:c.refreshView)==null||p.call(c),(w=(y=Ve.value)==null?void 0:y.focusTown)==null||w.call(y,Qe(i.startTown),{distanceScale:.78,duration:.8})}))}function Gn(){return he(this,arguments,function*(i=ce.value){var T;const r=xi(i),l=Ni(r);ce.value=r,M.value=!0,v.value="";const[c,p,y,w]=yield Promise.allSettled([ru(l),Yi(N({page:xe.value,pageSize:ei,keyword:rt.value},l)),su({year:r}),ou()]);if(c.status==="fulfilled"?we.value=c.value||{metrics:{}}:(v.value="防疫统计接口异常",we.value={metrics:{}}),p.status==="fulfilled"){const F=p.value||{};$e.value=_i(F.rows),nt.value=Number(((T=F.page)==null?void 0:T.totalCount)||F.totalCount||$e.value.length||0)}else v.value=v.value||"防疫台账接口异常",$e.value=[],nt.value=0;y.status==="fulfilled"?Ct.value=po(y.value):Ct.value={rows:[],year:null},w.status==="fulfilled"?it.value=fo(we.value,w.value):it.value={rows:[]},M.value=!1})}function _n(){return he(this,arguments,function*(i=xe.value){var c,p;M.value=!0,v.value="";const r=Math.min(Math.max(Number(i)||1,1),wi.value),l=Ni(ce.value);try{const y=yield Yi(N({page:r,pageSize:ei,keyword:rt.value},l));$e.value=_i(y.rows),nt.value=Number(((c=y.page)==null?void 0:c.totalCount)||y.totalCount||$e.value.length||0),xe.value=Number(((p=y.page)==null?void 0:p.page)||r||1)}catch(y){v.value="防疫台账接口异常",$e.value=[],nt.value=0,xe.value=1}finally{M.value=!1}})}function Bn(){rt.value=je.value.trim(),me.value=$(N({},$a()),{keyword:rt.value}),_n(1)}function An(i){_n(i)}function En(i=null){G.value=!0,i&&(Ce.value=i,_e.value=null),Oa(1,i)}function $n(){G.value=!1,Ai()}function Vn(){Oa(1)}function Eo(){me.value=$a(),Oa(1)}function zn(i){Oa(i)}function Oa(){return he(this,arguments,function*(i=J.value,r=null){var y,w;fe.value=!0,Ge.value="";const l=me.value,c=Ni(ce.value),p={keyword:l.keyword.trim(),town:l.town,medicine:l.medicine,startDate:l.startDate||c.startDate,endDate:l.endDate||c.endDate,page:i,pageSize:$r};try{const T=yield Yi(p);V.value=_i(T.rows),U.value=Number(((y=T.page)==null?void 0:y.totalCount)||T.totalCount||V.value.length||0),J.value=Number(((w=T.page)==null?void 0:w.page)||i||1);const F=r||V.value[0]||null;F?Dn(F):(Ce.value=null,_e.value=null)}catch(T){Ge.value="台账接口异常",V.value=[],U.value=0}finally{fe.value=!1}})}function Dn(i){return he(this,null,function*(){if(Ce.value=i,_e.value=null,!(i!=null&&i.earTag)&&!(i!=null&&i.epidemicId))return;const r=++Ca;Ke.value=!0;try{const l=yield lu(i.earTag||i.epidemicId);r===Ca&&(_e.value=vn(l)||i)}catch(l){r===Ca&&(_e.value=i)}finally{r===Ca&&(Ke.value=!1)}})}function $o(){var i;oi=new Ql,li=!1,(i=oi.ready)==null||i.then(()=>{li=!0,da()}).catch(()=>{$t.value=!0})}function da(){ca||!a.active||!li||wt||(wt=!0,Lt&&window.clearTimeout(Lt),Lt=window.setTimeout(()=>{Lt=null,On()},600))}function On(i=0){return he(this,null,function*(){var l,c;if(ca)return;if(!a.active){wt=!1;return}if(yield Yt(),!a.active){wt=!1;return}const r=Ve.value;if((l=r==null?void 0:r.loadMap)==null||l.call(r,oi),r!=null&&r.canvasMap){wt=!1,$t.value=!0,(c=r.play)==null||c.call(r);return}if(i<24){window.setTimeout(()=>On(i+1),120);return}wt=!1})}function Wn(i={}){ua.value={type:i.type||"idle",text:i.text||""}}function Vo(){oa.value=!0}function Yn(i={}){la.value={type:i.type||"idle",text:i.text||"",loaded:i.loaded,failed:i.failed,total:i.total,zoom:i.zoom,tileUrlTemplate:i.tileUrlTemplate}}function zo(){if(W.value==="epidemic"){n("module-stats",{moduleKey:"yak-management",items:[{zh:"防疫记录",value:mt.value,unit:"条"},{zh:"防疫耳标",value:bi.value,unit:"头"},{zh:"疫苗类型",value:xt.value,unit:"类"},{zh:"涉及村数",value:ns.value,unit:"个"}]});return}if(W.value==="forecast"){const i=Je.value.stock-ct;n("module-stats",{moduleKey:"yak-management",items:[{zh:"预测期末存栏",value:Je.value.stock,unit:"头"},{zh:"新生牛犊",value:Je.value.births,unit:"头"},{zh:"出栏流出",value:Je.value.outflow,unit:"头"},{zh:"预测净变化",value:i,unit:"头"}]});return}if(W.value==="trade"){n("module-stats",{moduleKey:"yak-management",items:[{zh:"流通总量",value:ze("headCount"),unit:"头"},{zh:"出证记录",value:ze("recordCount"),unit:"条"},{zh:"运输车辆",value:ze("vehicleCount"),unit:"辆"}]});return}n("module-stats",{moduleKey:"yak-management",items:[{zh:"图像识别总数",value:Wl,unit:"头"},{zh:"模型修正总数",value:Ur.value,unit:"头"},{zh:"当前存栏数量",value:ct,unit:"头"}]})}function $i(i,r,l,c={}){const p=c.labelKey||"name",y=c.colors||R,w=Math.max(...i.map(D=>Number(D[r]||0)),1),T=i.length>8,F=c.style==="ladder",_=T?F?7:6:i.length>6?11:13,A=["#30dcff","#58d9ff","#8bf7ff","#48cfff","#16b6e8","#b9fbff"],Y=c.axisTextColor||m,X=c.dimAxisTextColor||C;return{tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(D){if(c.tooltipFormatter)return c.tooltipFormatter(D[0]);const Q=i[D[0].dataIndex];return`${Q[p]}
    数值:${K(Q[r])}${l}`}}),grid:{left:T?58:74,right:T?54:58,top:T?6:16,bottom:T?8:14},xAxis:{type:"value",axisLabel:{color:X,fontSize:10,formatter:l==="%"?"{value}%":ie},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:i.map(D=>D[p]),axisLabel:{color:Y,fontSize:T?10:11,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{type:"bar",barWidth:_,barGap:"-100%",data:i.map((D,Q)=>({value:D[r],itemStyle:{borderRadius:F?[1,10,10,1]:[0,7,7,0],color:Do(F?A[Q%A.length]:y[Q%y.length],F),shadowBlur:F?3:0,shadowColor:F?"rgba(48, 220, 255, 0.16)":"transparent"}})),showBackground:!0,backgroundStyle:{color:F?"rgba(48, 220, 255, 0.05)":"rgba(48, 220, 255, 0.07)",borderRadius:F?[1,10,10,1]:[0,7,7,0]},label:{show:!0,position:"right",color:L,fontFamily:Di.number,fontSize:T?10:ur.chartLabel,fontWeight:700,formatter:({value:D})=>`${l==="%"?et(D):ie(D)}`},markLine:c.showAverage===!1?void 0:{silent:!0,symbol:"none",label:{show:!1},lineStyle:{color:"rgba(139, 247, 255, 0.22)",type:"dashed",width:1},data:[{xAxis:Math.round(w*.72)}]}},...F?[{type:"pictorialBar",symbol:"rect",symbolSize:[2,_+5],symbolOffset:[0,0],symbolPosition:"end",z:4,data:i.map((D,Q)=>({value:D[r],itemStyle:{color:L,opacity:Q<3?.82:.56,shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}))}]:[]]}}function Do(i,r=!1){return new Ae(0,0,1,0,[{offset:0,color:r?`${i}22`:"rgba(48, 220, 255, 0.12)"},{offset:.64,color:r?i:`${i}cc`},{offset:1,color:i}])}function jn(i,r,l,c=0,p=!1){return{name:i,type:"line",yAxisIndex:c,smooth:!0,symbolSize:5,data:r,lineStyle:{width:2.5,color:l},itemStyle:{color:l},areaStyle:p?{color:new Ae(0,0,0,1,[{offset:0,color:`${l}44`},{offset:1,color:`${l}05`}])}:void 0}}function Oo(i){return ui.find(r=>r.key===i)||ui[2]}function Wo(i,r="month"){if(r==="month")return Yl(i);const l=jl(i),c=Math.max(1,Math.round(Math.max(1,l-1)*30)),p=r==="week"?7:1,y=Math.ceil(c/p)+1,w=Array.from({length:y},(A,Y)=>{const X=Math.min(c,Y*p);return Hl(X)}),T=w.map((A,Y)=>{const D=Math.min(c,Y*p)/c,Q=Math.sin(Y/(r==="week"?1.8:8.5))*Math.sin(Math.PI*D)*Math.min(360,i.months*18);return Math.round(ct+(i.stock-ct)*D+Q)}),F=w.map((A,Y)=>{const X=Math.min(c,Y*p)/c;return Math.round(i.births*X)}),_=w.map((A,Y)=>{const X=Math.min(c,Y*p)/c;return Math.round(i.outflow*X)});return{labels:w,stock:T,births:F,outflow:_}}function Yo(i,r){return r==="day"?Math.max(10,Math.ceil(i/6)):r==="week"?Math.max(2,Math.ceil(i/7)):i>24?4:i>14?2:1}function jo(i,r){return r==="day"?i>700?2:i>360?3:4:r==="week"?i>110?4:6:i>24?7:10}function Ho(i){return(i.labels||[]).map((r,l)=>{var A,Y,X,D,Q,Ne;const c=Number(((A=i.stock)==null?void 0:A[Math.max(l-1,0)])||0),p=Number(((Y=i.stock)==null?void 0:Y[l])||c),y=Math.max(0,Number(((X=i.births)==null?void 0:X[l])||0)-Number(((D=i.births)==null?void 0:D[Math.max(l-1,0)])||0)),w=Math.max(0,Number(((Q=i.outflow)==null?void 0:Q[l])||0)-Number(((Ne=i.outflow)==null?void 0:Ne[Math.max(l-1,0)])||0)),T=Math.max(120,Math.round((y+w)*.18)),F=Math.max(c,p)+Math.max(T,Math.round(y*.32)),_=Math.max(0,Math.min(c,p)-Math.max(T,Math.round(w*.32)));return{label:r,open:c,close:p,low:_,high:F,birth:y,outflow:w,value:[c,p,_,F]}})}function qo(i,r){const l=new Map;return i.forEach(c=>{const p=Uo(c.name);if(!p)return;const y=l.get(p)||{name:p,value:0};y.value+=Number(c[r]||0),l.set(p,y)}),[...l.values()].sort((c,p)=>p.value-c.value)}function Uo(i){return{色地镇:"色地镇",瓦切镇:"瓦切镇",安曲镇:"安曲镇",龙日镇:"龙日镇",邛溪镇:"邛溪镇",刷经寺镇:"刷经寺镇",阿木乡:"阿木乡",查尔玛乡:"查尔玛乡",江茸乡:"江茸乡",麦洼乡:"麦洼乡"}[i]||""}function Le(i){return{trigger:"item",backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:m,fontFamily:Di.ui,fontSize:ur.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);",formatter:i}}function Vi(i){return bt.some(r=>r.key===i)?i:"structure"}function Ko(i=[]){return i.map((r,l)=>{var y,w,T,F;const c=String(r.name||r.label||r.type||`结构${l+1}`).trim(),p=Hn((w=(y=r.value)!=null?y:r.count)!=null?w:r.number);return{key:r.key||r.id||`${c}-${l}`,name:c,count:p,ratio:Number((F=(T=r.ratio)!=null?T:r.percent)!=null?F:0),source:r.source||"结构统计"}}).filter(r=>r.name&&r.count>0)}function Zo(i=[],r=[]){const l=i.some(p=>Zn(p))?i:r,c=Kn(l,r).map((p,y)=>{var F,_;const w=String(p.name||p.label||`结构${y+1}`).trim(),T=Hn((_=(F=p.count)!=null?F:p.value)!=null?_:p.number);return $(N({},p),{key:p.key||`${w}-${y}`,name:w,count:T})}).filter(p=>p.name&&p.count>0);return Xo(c,ct)}function Xo(i=[],r=ct){const l=i.reduce((y,w)=>y+Number(w.count||0),0);if(!l||!r)return i;const c=i.map((y,w)=>{const T=Number.isFinite(Number(y.ratio))&&Number(y.ratio)>0?Number(y.ratio):Number(y.count||0)/l*100,F=r*T/100;return $(N({},y),{index:w,ratio:T,count:Math.floor(F),remainder:F-Math.floor(F)})});let p=r-c.reduce((y,w)=>y+w.count,0);return c.slice().sort((y,w)=>w.remainder-y.remainder||y.index-w.index).forEach(y=>{p<=0||(y.count+=1,p-=1)}),c.map(F=>{var _=F,{index:y,remainder:w}=_,T=ar(_,["index","remainder"]);return $(N({},T),{ratio:Number(T.ratio.toFixed(1))})})}function Hn(i){const r=Number(String(i!=null?i:"").replace(/,/g,"").replace(/%/g,""));return Number.isFinite(r)&&r>0?Math.round(r):0}function Jo(i,r){const l=String((i==null?void 0:i.message)||i||"");return/未登录|401|HTTP_401/.test(l)?"结构数据未就绪":/超时|timeout/i.test(l)?"结构数据加载超时":r}function Qo(i){const r=String(i||"").match(/-?\d+(?:\.\d+)?/);return r?Number(r[0]):0}function K(i){const r=Number(i);return Number.isFinite(r)?r.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(r)?0:2}):"--"}function ie(i){const r=Number(i);return Number.isFinite(r)?Math.abs(r)>=1e4?`${(r/1e4).toFixed(Math.abs(r)>=1e5?0:1)}万`:Math.round(r).toLocaleString("zh-CN"):"--"}function Wa(i,r=2){const l=Number(i);return Number.isFinite(l)?`${(l/1e4).toFixed(r)}万`:"--"}function et(i){const r=Number(i);return Number.isFinite(r)?`${Number.isInteger(r)?r:r.toFixed(1)}%`:"--"}function Dt(i,r,l,c){const p=c*Math.PI/180;return{x:Number((i+l*Math.cos(p)).toFixed(2)),y:Number((r+l*Math.sin(p)).toFixed(2))}}function el(i,r,l,c,p,y){const w=Dt(i,r,c,p),T=Dt(i,r,c,y),F=Dt(i,r,l,y),_=Dt(i,r,l,p),A=y-p>180?1:0;return[`M ${w.x} ${w.y}`,`A ${c} ${c} 0 ${A} 1 ${T.x} ${T.y}`,`L ${F.x} ${F.y}`,`A ${l} ${l} 0 ${A} 0 ${_.x} ${_.y}`,"Z"].join(" ")}function qn(i=[]){return i.reduce((r,l)=>{const c=ba.find(p=>p.key===l);return r+Number((c==null?void 0:c.ratio)||0)},0)}function Un(){return[{key:"fertileCow",name:"适龄能繁母牛",color:"#30dcff",matcher:(i,r)=>i==="fertileCow"||r.includes("适龄能繁母牛")},{key:"meatBull",name:"麦洼公牦牛",color:"#48cfff",matcher:(i,r)=>i==="meatBull"||r.includes("肉公牛")||r.includes("麦洼公牦牛")},{key:"breedingBull",name:"种公牛",color:"#58d9ff",matcher:(i,r)=>i==="breedingBull"||r.includes("种公牛")},{key:"femaleCalf",name:"母犊牛",color:"#30dcff",matcher:(i,r)=>i==="femaleCalf"||r.includes("母犊牛")},{key:"maleCalf",name:"公犊牛",color:"#8bf7ff",matcher:(i,r)=>i==="maleCalf"||r.includes("公犊牛")},{key:"overageCow",name:"过龄能繁母牛",color:"#48cfff",matcher:(i,r)=>i==="overageCow"||r.includes("过龄能繁母牛")}]}function tl(i=[]){const r=i.reduce((c,p)=>c+Number(p.count||0),0)||1;return[{key:"female",group:"性别",name:"母牛合计",color:"#8bf7ff",matcher:(c,p)=>["fertileCow","femaleCalf","overageCow"].includes(c)||p.includes("母")},{key:"male",group:"性别",name:"公牛合计",color:"#30dcff",matcher:(c,p)=>["meatBull","breedingBull","maleCalf"].includes(c)||p.includes("公")||p.includes("肉牛")},{key:"calf",group:"阶段",name:"犊牛合计",color:"#8bf7ff",matcher:(c,p)=>["femaleCalf","maleCalf"].includes(c)||p.includes("犊牛")},{key:"breeding-cow",group:"阶段",name:"能繁母牛",color:"#48cfff",matcher:(c,p)=>["fertileCow","overageCow"].includes(c)||p.includes("能繁母牛")}].map(c=>{const p=i.filter(y=>c.matcher(String(y.key||""),String(y.name||""))).reduce((y,w)=>y+Number(w.count||0),0);return{key:c.key,group:c.group,name:c.name,color:c.color,count:p,percent:p/r*100}})}function Kn(i=[],r=[]){const c=i.some(w=>Zn(w))?i:r,p=c.reduce((w,T)=>w+Number(T.count||0),0)||ct||1;return Un().map(w=>{const T=c.filter(A=>w.matcher(String(A.key||""),String(A.name||""))),F=T.reduce((A,Y)=>A+Number(Y.count||0),0),_=T.length===1?Number(T[0].ratio):Number.NaN;return{key:w.key,name:w.name,color:w.color,count:F,percent:Number.isFinite(_)&&_>0?_:F/p*100}}).filter(w=>w.count>0||w.percent>0)}function Zn(i={}){const r=String(i.key||""),l=String(i.name||"");return Un().some(c=>c.matcher(r,l))}function al(i=[],r=[]){const c=i.some(w=>il(w))?i:r,p=c.reduce((w,T)=>w+Number(T.count||0),0)||1,y=(w,T,F,_,A)=>{const Y=c.filter(Q=>_(String(Q.key||""),String(Q.name||""))),X=Y.reduce((Q,Ne)=>Q+Number(Ne.count||0),0),D=Y.length===1?Number(Y[0].ratio):Number.NaN;return{key:w,name:T,color:F,count:X,percent:Number.isFinite(D)&&D>0?D:X/p*100,desc:A}};return[y("fertile-cow","适龄能繁母牛","#30dcff",(w,T)=>w==="fertileCow"||T.includes("适龄能繁母牛"),"繁殖基础"),y("calf","犊牛合计","#8bf7ff",(w,T)=>["femaleCalf","maleCalf"].includes(w)||T.includes("犊牛"),"新生补充"),y("overage-cow","过龄能繁母牛","#30dcff",(w,T)=>w==="overageCow"||T.includes("过龄能繁母牛"),"更新压力"),y("breeding-bull","种公牛配比","#48cfff",(w,T)=>w==="breedingBull"||T.includes("种公牛"),"配种支撑")]}function il(i={}){const r=String(i.key||""),l=String(i.name||"");return["fertileCow","femaleCalf","maleCalf","overageCow","breedingBull"].includes(r)||l.includes("适龄能繁母牛")||l.includes("犊牛")||l.includes("过龄能繁母牛")||l.includes("种公牛")}function nl(i=[]){const r=w=>{var T;return Number(((T=i.find(F=>F.key===w))==null?void 0:T.percent)||0)},l=r("fertile-cow"),c=r("calf"),p=r("overage-cow"),y=r("breeding-bull");return l>=40&&c>=25&&y>=2&&y<=5&&p<=10?{label:"结构健康",title:"繁殖基础稳定",summary:"适龄母牛足,犊牛补充稳",note:"保持适龄能繁母牛、犊牛补充与种公牛配置稳定。"}:c<25?{label:"结构健康",title:"犊牛补充需关注",summary:"繁殖基础稳定,补充端可优化",note:"关注犊牛成活和季节性补栏,保持生产连续性。"}:y<2?{label:"结构健康",title:"繁殖基础总体稳定",summary:"适龄母牛基础较稳",note:"结合实际配种需求,平稳优化公牛配置。"}:{label:"结构健康",title:"生产阶段较均衡",summary:"繁殖群和犊牛补充连续支撑",note:"延续结构管理,优先保障适龄母牛与犊牛质量。"}}function rl(i){const r=Number((i==null?void 0:i.count)||0);return Math.max(8,Math.min(100,r/Jr.value*100))}function sl(i={}){const r=ct,l=[{key:"births",name:"新生牛犊",delta:Number(i.births||0),color:"#30dcff"},{key:"outflow",name:"出栏流出",delta:-Number(i.outflow||0),color:"#48cfff"},{key:"correction",name:"修正损耗",delta:Number(i.correction||0),color:"#8bf7ff"}];let c=r;const p=[{key:"current",name:"当前存栏",type:"anchor",value:r,magnitude:r,from:r,to:r,color:"#30dcff",display:`${Wa(r,2)}头`}];l.forEach(T=>{const F=c,_=c+T.delta;c=_,p.push($(N({},T),{name:`${T.delta>=0?"+":"-"}${T.name}`,type:"delta",from:F,to:_,value:T.delta,magnitude:Math.abs(T.delta),display:`${ol(T.delta)}头`}))});const y=Number(i.stock||c);p.push({key:"final",name:"=期末预测",type:"final",value:y,magnitude:y,from:y,to:y,color:"#48cfff",display:`${Wa(y,2)}头`});const w=Math.max(...p.map(T=>Number(T.magnitude)||0),1);return p.map(T=>{const F=(Number(T.magnitude)||0)/w*100;return $(N({},T),{left:0,width:Math.max(T.type==="delta"?5:10,Math.min(100,F))})})}function Ya(i){const r=Number(i);return Number.isFinite(r)?`${r>=0?"+":"-"}${K(Math.abs(r))}`:"--"}function ol(i){const r=Number(i);return Number.isFinite(r)?`${r>=0?"+":"-"}${Wa(Math.abs(r))}`:"--"}return(i,r)=>(I(),B("div",Wu,[tt((I(),Ha(Ou,{key:qr.value,ref_key:"mapSceneRef",ref:Ve,class:"yak-map-scene","active-layer":Is.value,"map-ranking":Gs.value,"tile-url-template":Xi.value,"use-satellite-base":ci.value,"satellite-max-zoom":21,"admin-boundary-line-scale":1.35,onLayerStatus:Wn,onTileStatus:Yn},null,8,["active-layer","map-ranking","tile-url-template","use-satellite-base"])),[[hl,!Tt.value]]),Tt.value?(I(),Ha(eu,{key:Zi.value,ref_key:"yakOlMapRef",ref:sa,class:"yak-ol-map-layer",active:a.active&&Tt.value,"tile-url-template":Xi.value,center:Rs.value,"initial-zoom":Ud,"county-view-target-offset":se,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":hn.value,onReady:Vo,onLayerStatus:Wn,onTileStatus:Yn},null,8,["active","tile-url-template","center","overlay-layer"])):ke("",!0),f("div",{class:Oe(["yak-map-scrim",{"is-ol-map":Tt.value}])},null,2),_s.value?(I(),B("div",Yu,P(Bs.value),1)):ke("",!0),f("div",ju,[W.value==="trade"&&un.value.length?(I(),B("div",Hu,[r[23]||(r[23]=f("span",null,"交易年份",-1)),(I(!0),B(ne,null,pe(un.value,l=>(I(),B("button",{key:l,type:"button",class:Oe({active:Number(l)===Number(ye.value)}),onClick:c=>Go(l)},P(l),11,qu))),128))])):ke("",!0),W.value==="epidemic"&&Ue.length?(I(),B("div",Uu,[r[24]||(r[24]=f("span",null,"防疫年份",-1)),(I(),B(ne,null,pe(Ue,l=>f("button",{key:l,type:"button",class:Oe({active:Number(l)===Number(ce.value)}),onClick:c=>_o(l)},P(l),11,Ku)),64))])):ke("",!0),W.value==="forecast"?(I(),B("div",Zu,[r[25]||(r[25]=f("span",null,"预测年份",-1)),(I(!0),B(ne,null,pe(j(Gt),l=>(I(),B("button",{key:l.key,type:"button",class:Oe({active:l.key===Ee.value}),onClick:c=>ro(l.key)},P(l.shortLabel),11,Xu))),128))])):ke("",!0),f("div",Ju,[f("div",Qu,[W.value==="structure"?(I(),B(ne,{key:0},[H(le,{class:"yak-side-card left-card",title:"繁殖基础评估",width:j(s),height:u.value},{default:oe(()=>[f("div",ec,[f("div",tc,[f("strong",null,P(en.value.title)+","+P(en.value.summary),1)]),f("div",ac,[(I(!0),B(ne,null,pe(Qi.value,l=>(I(),B("div",{key:l.key,class:"breeding-health-item",style:Mt({"--health-color":l.color,"--health-width":`${Math.max(5,Math.min(100,l.percent))}%`})},[f("span",null,P(l.name),1),f("strong",null,P(et(l.percent)),1),r[26]||(r[26]=f("i",null,[f("b")],-1)),f("em",null,P(l.desc),1)],4))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"畜群结构占比",width:j(s),height:u.value},{default:oe(()=>[f("div",ic,[f("div",nc,[f("div",rc,[(I(),B("svg",sc,[f("g",oc,[(I(!0),B(ne,null,pe(Qr.value,l=>(I(),B("path",{key:l.key,class:Oe(["structure-rose-segment",{"is-active":l.index===hi.value}]),d:l.path,fill:l.color,stroke:l.color},null,10,lc))),128))]),r[27]||(r[27]=f("circle",{class:"structure-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),r[28]||(r[28]=f("circle",{class:"structure-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r[29]||(r[29]=f("text",{class:"structure-rose-center",x:"75",y:"72","text-anchor":"middle"},"结构",-1)),r[30]||(r[30]=f("text",{class:"structure-rose-center is-sub",x:"75",y:"83","text-anchor":"middle"},"占比",-1))]))]),f("div",uc,[(I(!0),B(ne,null,pe(xa.value,(l,c)=>(I(),B("div",{key:l.key||l.name,class:Oe(["structure-ratio-row",{"is-active":c===hi.value}]),style:Mt({"--row-color":l.color,"--row-percent":`${Math.max(4,l.percent)}%`})},[f("i",{style:Mt({background:l.color,color:l.color})},null,4),f("span",null,[Ot(P(l.name),1),f("small",null,P(et(l.percent)),1)]),f("strong",null,P(ie(l.count)),1),r[31]||(r[31]=f("em",null,"头",-1))],6))),128))])]),pt.value?(I(),B("div",cc,"结构数据加载中")):Ye.value?(I(),B("div",dc,P(Ye.value),1)):ke("",!0)])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"母牛/公牛年龄结构",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Es.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"牦牛乡镇分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:$s.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):W.value==="forecast"?(I(),B(ne,{key:1},[H(le,{class:"yak-side-card left-card",title:"存栏变化拆解",width:j(s),height:u.value},{default:oe(()=>[f("div",hc,[f("div",pc,[f("span",null,P(Je.value.label)+"变化路径",1),f("strong",{class:Oe({positive:di.value>0,negative:di.value<0})},[Ot(" 净变化 "+P(Ya(di.value)),1),r[32]||(r[32]=f("em",null,"头",-1))],2)]),f("div",fc,[(I(!0),B(ne,null,pe(Kr.value,l=>(I(),B("div",{key:l.key,class:Oe(["forecast-waterfall-row",[`is-${l.type}`,{positive:l.delta>0,negative:l.delta<0}]]),style:Mt({"--waterfall-left":`${l.left}%`,"--waterfall-width":`${l.width}%`,"--waterfall-color":l.color})},[f("span",null,P(l.name),1),r[33]||(r[33]=f("i",null,[f("b")],-1)),f("strong",null,P(l.display),1)],6))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"未来存栏趋势",width:j(s),height:u.value},{default:oe(()=>[f("div",mc,[f("div",gc,[(I(),B(ne,null,pe(ui,l=>f("button",{key:l.key,type:"button",class:Oe({active:l.key===kt.value}),onClick:c=>kt.value=l.key},P(l.label),11,yc)),64))]),H(j(Pe),{class:"yak-chart forecast-kline-chart",option:Os.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"月度数量预测",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ws.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"预测因子雷达",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ys.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):W.value==="epidemic"?(I(),B(ne,{key:2},[H(le,{class:"yak-side-card left-card",title:"防疫统计",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Js.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"养殖户防疫排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Qs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"防疫作业趋势",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Xs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"疫苗类型分布",width:j(s),height:u.value},{default:oe(()=>[Ra.value.length?(I(),B("div",bc,[f("div",vc,[(I(),Ha(xl,{key:ts.value,data:Ra.value,delay:3e3,colors:Fe,opacity:.62,class:"epidemic-three-pie"},{default:oe(({data:l})=>[f("div",wc,[f("strong",null,P(ie((l==null?void 0:l.count)||mt.value)),1),f("span",null,P((l==null?void 0:l.name)||"疫苗类型"),1)])]),_:1},8,["data"]))]),f("div",Lc,[(I(!0),B(ne,null,pe(Ra.value,(l,c)=>(I(),B("div",{key:l.key||l.name,class:"epidemic-three-pie-row"},[f("i",{style:Mt({borderColor:Fe[c%Fe.length]})},null,4),f("span",null,P(l.name),1),f("strong",null,P(ie(l.value)),1),f("em",null,P(l.unit),1)]))),128))])])):(I(),B("div",Tc,"暂无疫苗类型数据"))]),_:1},8,["width","height"])],64)):W.value==="trade"?(I(),B(ne,{key:3},[H(le,{class:"yak-side-card left-card",title:"交易异常关注",width:j(s),height:u.value},{default:oe(()=>[f("div",Sc,[f("div",Mc,[f("span",null,P(ye.value)+"年流通监管线索",1),f("strong",null,P(Ms.value),1)]),f("div",kc,[(I(!0),B(ne,null,pe(dn.value,l=>(I(),B("div",{key:l.key,class:Oe(["trade-risk-row",`is-${l.level}`]),style:Mt({"--risk-color":l.color})},[r[34]||(r[34]=f("i",null,null,-1)),f("span",null,[f("em",null,[f("b",null,P(l.badge),1),Ot(P(l.name),1)]),f("small",null,P(l.value)+"|"+P(l.desc),1)])],6))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"交易流通趋势",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:eo.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"来源乡镇分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:to.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"用途结构统计",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:ao.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):ke("",!0)])]),f("div",Pc,[f("div",Cc,[W.value==="structure"?(I(),B(ne,{key:0},[H(le,{class:"yak-side-card right-card",title:"乡镇存栏排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Vs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"能繁母牛与犊牛分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:zs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"出栏/交易影响",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ds.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"性别与生产阶段汇总",width:j(s),height:u.value},{default:oe(()=>[f("div",Fc,[f("div",xc,[(I(!0),B(ne,null,pe(Ji.value,l=>(I(),B("div",{key:l.key||l.name,class:"structure-summary-row",style:Mt({"--structure-color":l.color,"--structure-width":`${rl(l)}%`})},[f("span",null,[r[35]||(r[35]=f("i",null,null,-1)),Ot(P(l.name),1)]),r[37]||(r[37]=f("b",null,[f("em")],-1)),f("strong",null,[Ot(P(ie(l.count)),1),r[36]||(r[36]=f("em",null,"头",-1))]),f("small",null,P(et(l.percent)),1)],4))),128))]),pt.value?(I(),B("div",Nc,"结构数据加载中")):Ye.value?(I(),B("div",Rc,P(Ye.value),1)):ke("",!0)])]),_:1},8,["width","height"])],64)):W.value==="forecast"?(I(),B(ne,{key:1},[H(le,{class:"yak-side-card right-card",title:"乡镇预测排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:js.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"期末结构预测",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Hs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"补充/流出对比",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:qs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"预测变化热力",width:j(s),height:u.value},{default:oe(()=>[f("div",Ic,[(I(!0),B(ne,null,pe(Us.value,l=>(I(),B("div",{key:l.name,class:Oe(["heat-row",{"is-negative":l.change<0}]),style:Mt(Ks(l)),title:Zs(l)},[f("span",null,P(l.name),1),r[38]||(r[38]=f("b",null,[f("i")],-1)),f("strong",null,P(Ya(l.change)),1)],14,Gc))),128))])]),_:1},8,["width","height"])],64)):W.value==="epidemic"?(I(),Ha(le,{key:2,class:"yak-side-card right-card epidemic-ledger-card",title:"防疫记录台账",width:j(s),height:d.value},{default:oe(()=>[f("div",_c,[f("div",Bc,[f("span",null,P(ce.value)+"年 共 "+P(K(nt.value))+" 条",1),f("div",null,[tt(f("input",{"onUpdate:modelValue":r[0]||(r[0]=l=>je.value=l),type:"search",placeholder:"耳标/养殖户/疫苗",onKeyup:qa(Bn,["enter"])},null,544),[[Zt,je.value]]),f("button",{type:"button",onClick:Bn},"搜索"),f("button",{type:"button",class:"is-more",onClick:r[1]||(r[1]=l=>En())},"查看更多")])]),r[39]||(r[39]=f("div",{class:"epidemic-record-header"},[f("span",null,"电子耳标"),f("span",null,"养殖户"),f("span",null,"镇/乡"),f("span",null,"疫苗"),f("span",null,"时间")],-1)),f("div",Ac,[(I(!0),B(ne,null,pe(ps.value,l=>(I(),B("button",{key:l.epidemicId||l.earTag,type:"button",onClick:c=>En(l)},[f("span",null,P(ae(l.earTag)),1),f("span",null,P(ae(l.owner)),1),f("span",null,P(ae(l.town)),1),f("strong",null,P(ae(l.medicine)),1),f("span",null,P(Rt(l.operateTime)),1)],8,Ec))),128)),$e.value.length?ke("",!0):(I(),B("div",$c,P(M.value?"防疫台账读取中":v.value||"暂无防疫记录"),1))]),f("div",Vc,[f("span",null,"第 "+P(xe.value)+" / "+P(wi.value)+" 页",1),f("button",{type:"button",disabled:xe.value<=1,onClick:r[2]||(r[2]=l=>An(xe.value-1))},"上一页",8,zc),f("button",{type:"button",disabled:xe.value>=wi.value,onClick:r[3]||(r[3]=l=>An(xe.value+1))},"下一页",8,Dc)])])]),_:1},8,["width","height"])):W.value==="trade"?(I(),B(ne,{key:3},[H(le,{class:"yak-side-card right-card",title:"出证结构统计",width:j(s),height:u.value},{default:oe(()=>[f("div",Oc,[f("div",Wc,[f("span",null,[r[41]||(r[41]=f("em",null,"省外流通 A证",-1)),f("strong",null,[Ot(P(K(ze("outProvinceHeads","aCertHeads"))),1),r[40]||(r[40]=f("b",null,"头",-1))]),f("small",null,P(K(ze("outProvinceCount","aCertCount")))+"条记录",1)]),f("span",null,[r[43]||(r[43]=f("em",null,"省内流通 B证",-1)),f("strong",null,[Ot(P(K(ze("inProvinceHeads","bCertHeads"))),1),r[42]||(r[42]=f("b",null,"头",-1))]),f("small",null,P(K(ze("inProvinceCount","bCertCount")))+"条记录",1)])]),H(j(Pe),{class:"trade-cert-chart",option:io.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card trade-source-card",title:"出栏来源排行",width:j(s),height:h.value},{default:oe(()=>[f("div",Yc,[(I(!0),B(ne,null,pe(_a.value,(l,c)=>(I(),B("div",{key:l.name,class:"trade-dest-row",style:Mt({"--trade-ratio":`${l.ratio}%`})},[f("span",null,P(c+1),1),f("strong",null,P(l.name),1),f("em",null,P(ie(l.headCount))+"头",1)],4))),128)),_a.value.length?ke("",!0):(I(),B("div",jc,P(Bt.value?"交易数据读取中":ot.value||"暂无出栏来源数据"),1))])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card trade-ledger-card",title:"交易出证台账",width:j(s),height:g.value},{default:oe(()=>[f("div",Hc,[f("div",qc,[f("span",null,"共 "+P(K(st.value))+" 条",1),f("div",null,[tt(f("input",{"onUpdate:modelValue":r[4]||(r[4]=l=>Ta.value=l),type:"search",placeholder:"货主/车辆/检疫号/地区",onKeyup:qa(Pn,["enter"])},null,544),[[Zt,Ta.value]]),f("button",{type:"button",onClick:Pn},"搜索"),f("button",{type:"button",class:"is-more",onClick:r[5]||(r[5]=l=>Fn())},"查看更多")])]),r[44]||(r[44]=f("div",{class:"trade-ledger-header"},[f("span",null,"货主"),f("span",null,"车牌"),f("span",null,"数量"),f("span",null,"来源"),f("span",null,"用途"),f("span",null,"时间")],-1)),f("div",Uc,[(I(!0),B(ne,null,pe(cn.value,l=>(I(),B("button",{key:l.certId,type:"button",onClick:c=>Fn(l)},[f("span",null,P(ae(l.ownerName)),1),f("span",null,P(ae(l.transportNumber)),1),f("strong",null,P(K(l.amount))+"头",1),f("span",null,P(ae(l.startTown)),1),f("span",null,P(ae(l.usageTypeName)),1),f("span",null,P(Rt(l.issueTime)),1)],8,Kc))),128)),cn.value.length?ke("",!0):(I(),B("div",Zc,P(Bt.value?"交易台账读取中":ot.value||"暂无交易记录"),1))]),f("div",Xc,[f("span",null,"第 "+P(Xe.value)+" / "+P(Ti.value)+" 页",1),f("button",{type:"button",disabled:Xe.value<=1,onClick:r[6]||(r[6]=l=>Cn(Xe.value-1))},"上一页",8,Jc),f("button",{type:"button",disabled:Xe.value>=Ti.value,onClick:r[7]||(r[7]=l=>Cn(Xe.value+1))},"下一页",8,Qc)])])]),_:1},8,["width","height"])],64)):ke("",!0)])]),f("div",ed,[H(Jl,{"model-value":W.value,topics:bt,"onUpdate:modelValue":r[8]||(r[8]=l=>W.value=l)},null,8,["model-value"])])]),G.value?(I(),B("div",{key:2,class:"epidemic-ledger-modal",onClick:Ua($n,["self"])},[f("div",td,[f("div",ad,[f("div",null,[r[45]||(r[45]=f("span",null,"牦牛防疫台账",-1)),f("strong",null,P(ce.value)+"年 "+P(K(U.value))+" 条记录",1)]),f("button",{type:"button",onClick:$n},"关闭")]),f("div",id,[tt(f("input",{"onUpdate:modelValue":r[9]||(r[9]=l=>me.value.keyword=l),type:"search",placeholder:"耳标 / 养殖户 / 药品","aria-label":"耳标 / 养殖户 / 药品",onKeyup:qa(Vn,["enter"])},null,544),[[Zt,me.value.keyword]]),tt(f("select",{"onUpdate:modelValue":r[10]||(r[10]=l=>me.value.town=l)},[r[46]||(r[46]=f("option",{value:""},"全部镇/乡",-1)),(I(!0),B(ne,null,pe(ms.value,l=>(I(),B("option",{key:l,value:l},P(l),9,nd))),128))],512),[[fa,me.value.town]]),tt(f("select",{"onUpdate:modelValue":r[11]||(r[11]=l=>me.value.medicine=l)},[r[47]||(r[47]=f("option",{value:""},"全部疫苗",-1)),(I(!0),B(ne,null,pe(gs.value,l=>(I(),B("option",{key:l,value:l},P(l),9,rd))),128))],512),[[fa,me.value.medicine]]),tt(f("input",{"onUpdate:modelValue":r[12]||(r[12]=l=>me.value.startDate=l),type:"date"},null,512),[[Zt,me.value.startDate]]),tt(f("input",{"onUpdate:modelValue":r[13]||(r[13]=l=>me.value.endDate=l),type:"date"},null,512),[[Zt,me.value.endDate]]),f("button",{type:"button",onClick:Vn},"检索"),f("button",{type:"button",class:"is-ghost",onClick:Eo},"重置")]),f("div",sd,[f("div",od,[r[48]||(r[48]=f("div",{class:"epidemic-ledger-table-head"},[f("span",null,"电子耳标"),f("span",null,"养殖户"),f("span",null,"镇/乡"),f("span",null,"村"),f("span",null,"疫苗"),f("span",null,"免疫时间"),f("span",null,"图片")],-1)),(I(!0),B(ne,null,pe(V.value,l=>{var c,p;return I(),B("button",{key:l.epidemicId||l.earTag,type:"button",class:Oe({active:(((c=Ce.value)==null?void 0:c.epidemicId)||((p=Ce.value)==null?void 0:p.earTag))===(l.epidemicId||l.earTag)}),onClick:y=>Dn(l)},[f("span",null,P(ae(l.earTag)),1),f("span",null,P(ae(l.owner)),1),f("span",null,P(ae(l.town)),1),f("span",null,P(ae(l.village)),1),f("strong",null,P(ae(l.medicine)),1),f("span",null,P(Rt(l.operateTime)),1),f("span",null,P(Bi(l).length?`${Bi(l).length}张`:"无"),1)],10,ld)}),128)),V.value.length?ke("",!0):(I(),B("div",ud,P(fe.value?"台账读取中":Ge.value||"暂无匹配记录"),1))]),f("div",cd,[f("div",dd,[f("div",null,[f("span",null,P(ae(zt.value.earTag)),1),f("em",null,P(ae(zt.value.medicine||zt.value.preventionType)),1)]),f("strong",null,P(Ke.value?"加载中":Rt(zt.value.operateTime)),1)]),f("div",hd,[(I(!0),B(ne,null,pe(fs.value,l=>(I(),B("span",{key:l.label,class:Oe({"is-wide":l.wide})},[f("em",null,P(l.label),1),f("strong",null,P(l.value),1)],2))),128))]),on.value.length?(I(),B("div",pd,[r[49]||(r[49]=f("div",{class:"epidemic-detail-photo-title"},"现场照片",-1)),f("div",fd,[(I(!0),B(ne,null,pe(on.value.slice(0,6),l=>(I(),B("button",{key:l,type:"button",class:"epidemic-modal-photo-thumb",onClick:Ua(c=>Co(l),["stop"])},[f("img",{src:Tn(l),alt:"防疫照片"},null,8,gd)],8,md))),128))])])):ke("",!0)])]),f("div",yd,[f("span",null,"第 "+P(J.value)+" / "+P(sn.value)+" 页",1),f("button",{type:"button",disabled:J.value<=1,onClick:r[14]||(r[14]=l=>zn(J.value-1))},"上一页",8,bd),f("button",{type:"button",disabled:J.value>=sn.value,onClick:r[15]||(r[15]=l=>zn(J.value+1))},"下一页",8,vd)])])])):ke("",!0),ni.value?(I(),B("div",{key:3,class:"epidemic-ledger-modal trade-ledger-modal",onClick:Ua(xn,["self"])},[f("div",wd,[f("div",Ld,[f("div",null,[r[50]||(r[50]=f("span",null,"牦牛交易出证台账",-1)),f("strong",null,P(ye.value)+"年 "+P(K(Sa.value))+" 条记录",1)]),f("button",{type:"button",onClick:xn},"关闭")]),f("div",Td,[tt(f("input",{"onUpdate:modelValue":r[16]||(r[16]=l=>ft.value.keyword=l),type:"search",placeholder:"货主 / 车辆 / 检疫号 / 地区",onKeyup:qa(Nn,["enter"])},null,544),[[Zt,ft.value.keyword]]),tt(f("select",{"onUpdate:modelValue":r[17]||(r[17]=l=>ft.value.startTown=l)},[r[51]||(r[51]=f("option",{value:""},"全部来源乡镇",-1)),(I(!0),B(ne,null,pe(ws.value,l=>(I(),B("option",{key:l,value:l},P(l),9,Sd))),128))],512),[[fa,ft.value.startTown]]),tt(f("select",{"onUpdate:modelValue":r[18]||(r[18]=l=>ft.value.usageType=l)},[r[52]||(r[52]=f("option",{value:""},"全部用途",-1)),(I(!0),B(ne,null,pe(Ls.value,l=>(I(),B("option",{key:l,value:l},P(l),9,Md))),128))],512),[[fa,ft.value.usageType]]),tt(f("select",{"onUpdate:modelValue":r[19]||(r[19]=l=>ft.value.certType=l)},[r[53]||(r[53]=f("option",{value:""},"全部证书",-1)),(I(!0),B(ne,null,pe(Ts.value,l=>(I(),B("option",{key:l.value,value:l.value},P(l.label),9,kd))),128))],512),[[fa,ft.value.certType]]),f("button",{type:"button",onClick:Nn},"检索"),f("button",{type:"button",class:"is-ghost",onClick:Bo},"重置")]),f("div",Pd,[f("div",Cd,[r[54]||(r[54]=f("div",{class:"trade-ledger-modal-table-head"},[f("span",null,"货主"),f("span",null,"证书"),f("span",null,"车牌号"),f("span",null,"数量"),f("span",null,"来源"),f("span",null,"用途"),f("span",null,"出证时间"),f("span",null,"状态")],-1)),(I(!0),B(ne,null,pe(At.value,l=>(I(),B("button",{key:l.certId||l.factoryCode,type:"button",class:Oe({active:vs.value===(l.certId||l.factoryCode)}),onClick:c=>In(l)},[f("span",null,P(ae(l.ownerName)),1),f("span",null,P(ae(l.certType||l.certScopeName)),1),f("span",null,P(ae(l.transportNumber)),1),f("strong",null,P(K(l.amount))+"头",1),f("span",null,P(ae(l.startTown)),1),f("span",null,P(ae(l.usageTypeName)),1),f("span",null,P(Rt(l.issueTime)),1),f("span",null,P(ae(l.statusName)),1)],10,Fd))),128)),At.value.length?ke("",!0):(I(),B("div",xd,P(ri.value?"交易台账读取中":si.value||"暂无匹配记录"),1))]),f("div",Nd,[f("div",Rd,[f("div",null,[f("span",null,P(ae(be.value.factoryCode||be.value.certId)),1),f("em",null,P(Mn(be.value)),1)]),f("strong",null,P(Rt(be.value.issueTime)),1)]),f("div",Id,[f("span",Gd,[r[55]||(r[55]=f("em",null,"货主",-1)),f("strong",null,P(ae(be.value.ownerName)),1)]),f("span",null,[r[56]||(r[56]=f("em",null,"联系方式",-1)),f("strong",null,P(Sn(be.value.ownerPhone)),1)]),f("span",null,[r[57]||(r[57]=f("em",null,"证书类型",-1)),f("strong",null,P(Mn(be.value)),1)]),f("span",null,[r[58]||(r[58]=f("em",null,"车牌号",-1)),f("strong",null,P(ae(be.value.transportNumber)),1)]),f("span",null,[r[59]||(r[59]=f("em",null,"牦牛数量",-1)),f("strong",null,P(K(be.value.amount))+"头",1)]),f("span",null,[r[60]||(r[60]=f("em",null,"用途",-1)),f("strong",null,P(ae(be.value.usageTypeName)),1)]),f("span",null,[r[61]||(r[61]=f("em",null,"来源乡镇",-1)),f("strong",null,P(ae(be.value.startTown)),1)]),f("span",null,[r[62]||(r[62]=f("em",null,"目的省份",-1)),f("strong",null,P(ae(be.value.destProvince)),1)]),f("span",null,[r[63]||(r[63]=f("em",null,"检疫员",-1)),f("strong",null,P(ae(be.value.quarantineOfficerName)),1)]),f("span",_d,[r[64]||(r[64]=f("em",null,"状态",-1)),f("strong",null,P(ae(be.value.statusName)),1)]),f("span",Bd,[r[65]||(r[65]=f("em",null,"来源地区",-1)),f("strong",null,P(ae(be.value.startRegionFullName)),1)]),f("span",Ad,[r[66]||(r[66]=f("em",null,"目的地",-1)),f("strong",null,P(ae(be.value.destRegionFullName)),1)])]),f("button",{type:"button",class:"trade-detail-locate",disabled:!be.value.startTown,onClick:r[20]||(r[20]=l=>Ao(be.value))}," 查看乡镇位置 ",8,Ed)])]),f("div",$d,[f("span",null,"第 "+P(Et.value)+" / "+P(Si.value)+" 页",1),f("button",{type:"button",disabled:Et.value<=1,onClick:r[21]||(r[21]=l=>Rn(Et.value-1))},"上一页",8,Vd),f("button",{type:"button",disabled:Et.value>=Si.value,onClick:r[22]||(r[22]=l=>Rn(Et.value+1))},"下一页",8,zd)])])])):ke("",!0),Be.value?(I(),B("div",{key:4,class:"epidemic-image-preview-modal",onClick:Ua(Ai,["self"])},[f("div",Dd,[f("div",Od,[f("div",null,[r[67]||(r[67]=f("span",null,"防疫照片",-1)),f("strong",null,P(ae(zt.value.earTag)),1)]),f("button",{type:"button",onClick:Ai},"关闭")]),f("div",Wd,[f("div",Yd,[f("img",{src:Ze.value,alt:"防疫照片预览"},null,8,jd)])])])])):ke("",!0)]))}};export{ph as default}; diff --git a/docs/assets/index-6fef048d-balabala-1783995319167.css b/docs/assets/index-99bb110d-balabala-1784043664472.css similarity index 97% rename from docs/assets/index-6fef048d-balabala-1783995319167.css rename to docs/assets/index-99bb110d-balabala-1784043664472.css index 81b0b2f..21b6215 100644 --- a/docs/assets/index-6fef048d-balabala-1783995319167.css +++ b/docs/assets/index-99bb110d-balabala-1784043664472.css @@ -1 +1 @@ -@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1783995319167.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1783995319167.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1783995319167.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1783995319167.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} +@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} diff --git a/docs/assets/index-0cc2c5ef-1783995319167.js b/docs/assets/index-a29410f4-1784043664472.js similarity index 62% rename from docs/assets/index-0cc2c5ef-1783995319167.js rename to docs/assets/index-a29410f4-1784043664472.js index 4db385c..18a90dc 100644 --- a/docs/assets/index-0cc2c5ef-1783995319167.js +++ b/docs/assets/index-a29410f4-1784043664472.js @@ -1 +1 @@ -var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,J as w,K as h,e as S,o as _,c as f,a as e,x as V,y as g,z as y,t as b,g as k,d as p,N as B}from"./index-1783995319167.js";const D={class:"login-screen"},M={class:"login-shell"},N={class:"login-field"},R={class:"login-field"},U={key:0,class:"login-error"},q=["disabled"],C={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=S(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield B(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",D,[e("div",M,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:V(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",N,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[y,i.value,void 0,{trim:!0}]])]),e("label",R,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[y,a.value]])]),o.value?(_(),f("div",U,b(o.value),1)):k("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},b(u.value?"登录中":"登录"),9,q)],32)])]))}},P=x(C,[["__scopeId","data-v-8ebd0d6e"]]);export{P as default}; +var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,l as w,m as h,g as S,o as _,c as f,a as e,f as V,s as g,H as b,t as y,j as k,d as p,I as B}from"./index-1784043664472.js";const D={class:"login-screen"},H={class:"login-shell"},I={class:"login-field"},M={class:"login-field"},R={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=S(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield B(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",D,[e("div",H,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:V(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",I,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[b,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[b,a.value]])]),o.value?(_(),f("div",R,y(o.value),1)):k("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},y(u.value?"登录中":"登录"),9,U)],32)])]))}},P=x(q,[["__scopeId","data-v-8ebd0d6e"]]);export{P as default}; diff --git a/docs/assets/index-c36df85d-balabala-1784043664472.css b/docs/assets/index-c36df85d-balabala-1784043664472.css new file mode 100644 index 0000000..6338e3d --- /dev/null +++ b/docs/assets/index-c36df85d-balabala-1784043664472.css @@ -0,0 +1 @@ +.grass-livestock-balance{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:radial-gradient(circle at 50% 35%,rgba(63,235,219,.16),transparent 28%),radial-gradient(circle at 73% 62%,rgba(255,211,103,.08),transparent 32%),radial-gradient(circle at 22% 78%,rgba(52,152,125,.1),transparent 30%),linear-gradient(135deg,#020a12 0%,#062439 50%,#03101b 100%)}.grass-livestock-balance:before,.grass-livestock-balance:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.grass-livestock-balance:before{background:linear-gradient(rgba(89,233,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(89,233,255,.014) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(circle at 50% 47%,#000 0 48%,transparent 78%);mask-image:radial-gradient(circle at 50% 47%,#000 0 48%,transparent 78%)}.grass-livestock-balance:after{background:linear-gradient(112deg,transparent 0 35%,rgba(126,251,246,.055) 44%,transparent 54% 100%),linear-gradient(180deg,rgba(1,7,13,.18),rgba(1,7,13,.58));mix-blend-mode:screen;opacity:.78}.balance-backdrop{position:absolute;left:50%;top:104px;z-index:1;width:1740px;height:944px;transform:translate(-50%);pointer-events:none;background:radial-gradient(ellipse at 50% 30%,rgba(126,251,246,.16),transparent 34%),linear-gradient(90deg,transparent,rgba(126,251,246,.045),rgba(255,215,108,.026),transparent),linear-gradient(rgba(48,220,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.018) 1px,transparent 1px);background-size:100% 100%,100% 100%,42px 42px,42px 42px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent)}.balance-backdrop:before,.balance-backdrop:after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.5),rgba(255,215,108,.34),transparent);box-shadow:0 0 22px #7efbf633}.balance-backdrop:before{top:64px}.balance-backdrop:after{bottom:42px}.balance-energy-band{position:absolute;left:96px;right:96px;top:108px;height:460px;background:radial-gradient(ellipse at 50% 50%,rgba(36,246,196,.16),transparent 56%),linear-gradient(90deg,transparent,rgba(126,251,246,.1),rgba(255,215,108,.055),transparent),repeating-linear-gradient(90deg,transparent 0 32px,rgba(126,251,246,.04) 32px 33px);opacity:.78;transform:perspective(820px) rotateX(60deg);transform-origin:top;animation:balance-band-pulse 4.6s ease-in-out infinite}.balance-orbit{position:absolute;top:108px;width:282px;height:282px;border:1px solid rgba(126,251,246,.08);border-radius:50%;box-shadow:inset 0 0 38px #7efbf60d,0 0 36px #7efbf60a}.balance-orbit:before,.balance-orbit:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.balance-orbit:before{top:22px;right:22px;bottom:22px;left:22px;border:1px dashed rgba(126,251,246,.08)}.balance-orbit:after{top:72px;right:72px;bottom:72px;left:72px;border:1px solid rgba(255,215,108,.05)}.balance-orbit.is-left{left:285px}.balance-orbit.is-right{right:285px}.balance-screen{position:absolute;left:50%;top:128px;z-index:4;display:grid;grid-template-columns:326px 1310px;align-items:start;gap:24px;width:1660px;transform:translate(-50%);pointer-events:none}.balance-card{height:var(--balance-card-height)!important;filter:drop-shadow(0 18px 28px rgba(0,0,0,.28)) drop-shadow(0 0 24px rgba(31,209,220,.04));pointer-events:all}.balance-card .m-card-bd,.balance-card .m-card-bd-bg{height:var(--balance-card-height)!important}.balance-card .m-card-hd-bg,.balance-card .m-card-hd-zs1,.balance-card .m-card-bd-bg>svg,.balance-card .m-card-bd-bottom-left-arrow,.balance-card .m-card-bd-bottom-right-arrow,.balance-card .m-card-bd-middle-left-line,.balance-card .m-card-bd-middle-right-line{opacity:0}.balance-card .m-card-hd{height:44px;background:linear-gradient(90deg,rgba(48,220,255,.2),rgba(48,220,255,.05) 44%,transparent),linear-gradient(180deg,rgba(12,90,107,.58),rgba(4,28,44,0));clip-path:polygon(0 0,154px 0,178px 20px,100% 20px,100% 44px,0 44px)}.balance-card .m-card-hd:before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.56),rgba(255,215,108,.22),transparent 72%);box-shadow:0 0 14px #7efbf62e}.balance-card .m-card-hd:after{content:"";position:absolute;right:18px;top:10px;width:168px;height:8px;background:repeating-linear-gradient(90deg,rgba(126,251,246,.28) 0 9px,transparent 9px 15px);opacity:.58;transform:skew(28deg)}.balance-card .m-card-bd{background:radial-gradient(circle at 50% 0,rgba(126,251,246,.075),transparent 34%),linear-gradient(135deg,rgba(126,251,246,.052),transparent 24%),linear-gradient(315deg,rgba(255,215,108,.028),transparent 32%),linear-gradient(180deg,rgba(4,39,54,.5),rgba(1,16,27,.58));clip-path:polygon(0 0,calc(100% - 30px) 0,100% 30px,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%)}.balance-card .m-card-bd:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(48,220,255,.12);box-shadow:inset 0 0 40px #30dcff06,inset 0 0 1px #7efbf62e;clip-path:inherit;pointer-events:none}.balance-card .m-card-bd:after{content:"";position:absolute;top:42px;right:1px;bottom:1px;left:1px;background:linear-gradient(rgba(126,251,246,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(126,251,246,.016) 1px,transparent 1px);background-size:38px 38px;opacity:.46;pointer-events:none}.balance-card .m-card-bd-content{top:44px;bottom:10px;color:#f3feff}.balance-card .m-card-bd-bg:after{content:"";position:absolute;top:5px;right:6px;bottom:7px;left:6px;pointer-events:none;border:0;background:linear-gradient(140deg,rgba(32,199,214,.035),transparent 34%),linear-gradient(180deg,rgba(17,72,90,.025),rgba(5,28,42,.035))}.balance-sheet-card{filter:none}.balance-sheet-card .m-card-hd{background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.055) 36%,transparent 58%)}.balance-sheet-card .m-card-hd:before{right:32%;background:linear-gradient(90deg,rgba(126,251,246,.62),rgba(255,215,108,.24),transparent)}.balance-sheet-card .m-card-hd:after{display:none}.balance-sheet-card .m-card-bd{background:radial-gradient(circle at 50% 43%,rgba(36,246,196,.075),transparent 30%),linear-gradient(180deg,rgba(6,48,63,.12),rgba(1,13,23,.16))}.balance-sheet-card .m-card-bd:before{border-color:transparent;box-shadow:none}.balance-sheet-card .m-card-bd:after{opacity:.24}.balance-sheet-card .m-card-bd-bg:after{background:none}.balance-target-card{filter:drop-shadow(0 14px 24px rgba(0,0,0,.26)) drop-shadow(0 0 16px rgba(31,209,220,.04))}.balance-target-card .m-card-hd{background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04) 58%,transparent)}.balance-target-card .m-card-hd:before{right:18%}.balance-target-card .m-card-bd{background:radial-gradient(circle at 84% 18%,rgba(255,215,108,.08),transparent 28%),linear-gradient(180deg,rgba(5,42,56,.34),rgba(1,15,25,.42))}.balance-target-card .m-card-bd:before{border-color:#30dcff0e;border-left-color:#30dcff29;border-bottom-color:#30dcff1f}.balance-target-card .m-card-bd-bg:after{background:radial-gradient(circle at 82% 28%,rgba(255,215,108,.045),transparent 28%),linear-gradient(180deg,rgba(48,220,255,.018),transparent 44%)}.grass-livestock-balance .m-card-hd-title{left:22px!important;height:44px!important;line-height:38px!important;color:#fff!important;font-size:15px!important;letter-spacing:1px!important;background:none!important;-webkit-text-fill-color:#fff!important;font-weight:800!important;filter:brightness(1.2) contrast(1.08)!important;text-shadow:0 0 1px rgba(255,255,255,.96),0 0 8px rgba(255,255,255,.22)!important}.balance-selector{display:grid;grid-template-rows:40px minmax(112px,1fr) 154px;gap:16px;height:100%;padding:10px 10px 12px;box-sizing:border-box}.balance-scope-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.balance-scope-tabs button{position:relative;height:36px;min-width:0;border:0;background:linear-gradient(180deg,rgba(9,53,69,.28),rgba(4,25,39,.18)),linear-gradient(90deg,rgba(126,251,246,.04),transparent);color:#dffaffc2;font-size:12px;cursor:pointer;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);transition:color .2s ease,border-color .2s ease,background .2s ease}.balance-scope-tabs button:after{content:"";position:absolute;left:18%;right:18%;bottom:4px;height:1px;background:rgba(126,251,246,.46);opacity:0;box-shadow:0 0 10px #7efbf64d}.balance-scope-tabs button.active,.balance-scope-tabs button:hover{background:linear-gradient(90deg,rgba(20,122,128,.5),rgba(255,215,108,.12)),rgba(3,28,39,.22);color:#fff}.balance-scope-tabs button.active:after,.balance-scope-tabs button:hover:after{opacity:1}.balance-target-list{display:grid;align-content:start;gap:9px;min-height:0;overflow-y:auto;padding-right:4px}.balance-target-list::-webkit-scrollbar{width:3px}.balance-target-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.balance-target-list button{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-width:0;height:42px;padding:0 12px 0 15px;border:0;background:linear-gradient(90deg,rgba(48,220,255,.1),transparent 66%),linear-gradient(180deg,rgba(8,45,59,.22),rgba(3,20,31,.12));color:#dffaffc7;cursor:pointer;box-sizing:border-box;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%);transition:transform .18s ease,color .18s ease,background .18s ease}.balance-target-list button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-bottom:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-target-list button:after{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;background:rgba(126,251,246,.38);opacity:0}.balance-target-list button:hover{transform:translate(3px);color:#fff}.balance-target-list button:hover:before{border-color:#7efbf63d}.balance-target-list span,.balance-target-list small{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1}.balance-target-list span{font-size:14px}.balance-target-list small{color:#7efbf68f;font-size:12px;text-align:right}.balance-target-list button.active{background:linear-gradient(90deg,rgba(255,215,108,.24),rgba(31,122,130,.46) 58%,rgba(4,27,42,.14)),rgba(4,27,42,.26);color:#fff;transform:translate(5px)}.balance-target-list button.active:before{border-color:#ffd76c75;box-shadow:inset 0 0 16px #ffd76c1a}.balance-target-list button.active:after{opacity:1;background:#ffd76c;box-shadow:0 0 12px #ffd76c61}.balance-action-box{position:relative;display:grid;align-content:center;min-width:0;padding:16px;background:radial-gradient(circle at 90% 18%,rgba(255,215,108,.1),transparent 30%),linear-gradient(135deg,rgba(255,215,108,.055),transparent 42%),linear-gradient(180deg,rgba(4,27,42,.16),rgba(4,27,42,.08));box-sizing:border-box;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}.balance-action-box:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-left:1px solid rgba(48,220,255,.13);border-bottom:1px solid rgba(48,220,255,.06);clip-path:inherit;pointer-events:none}.balance-action-box:after{content:"";position:absolute;left:17px;right:17px;bottom:58px;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.38),transparent);pointer-events:none}.balance-action-box span,.balance-action-box strong,.balance-action-box small{position:relative;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1}.balance-action-box span,.balance-action-box small{color:#dffaffa3;font-size:12px}.balance-action-box strong{margin-top:8px;color:#fff;font-size:25px;line-height:32px;text-shadow:0 0 16px rgba(126,251,246,.16)}.balance-action-box small{margin-top:4px;color:#7efbf6b8}.balance-action-box button{position:relative;z-index:1;width:148px;height:42px;margin-top:18px;border:1px solid rgba(255,215,108,.38);background:linear-gradient(90deg,rgba(255,215,108,.3),rgba(48,220,255,.14)),rgba(4,27,42,.55);color:#fff;cursor:pointer;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);box-shadow:inset 0 0 16px #ffd76c14,0 0 18px #ffd76c14;transition:transform .18s ease,box-shadow .18s ease}.balance-action-box button:not(:disabled):hover{transform:translateY(-1px);box-shadow:inset 0 0 18px #ffd76c1f,0 0 22px #ffd76c24}.balance-action-box button:disabled{cursor:default;opacity:.55}.balance-sheet{position:relative;height:100%;padding:8px 18px 18px;overflow:hidden;box-sizing:border-box}.balance-sheet:before{content:"";position:absolute;left:22px;right:22px;top:9px;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.45),rgba(255,215,108,.28),transparent);animation:balance-scan 2.8s linear infinite;pointer-events:none}.balance-sheet:after{content:"";position:absolute;left:18px;right:18px;bottom:14px;height:38%;background:radial-gradient(ellipse at 50% 100%,rgba(126,251,246,.14),transparent 68%);pointer-events:none}.balance-field-lines{position:absolute;top:86px;right:70px;bottom:116px;left:70px;z-index:0;pointer-events:none}.balance-field-lines:before{content:"";position:absolute;left:4%;right:4%;top:45%;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.22),rgba(255,215,108,.14),rgba(126,251,246,.22),transparent);box-shadow:0 0 20px #7efbf614}.balance-field-lines:after{content:"";position:absolute;left:20%;right:20%;top:21%;height:330px;background:radial-gradient(ellipse at 50% 26%,rgba(36,246,196,.14),transparent 50%),repeating-linear-gradient(90deg,transparent 0 42px,rgba(126,251,246,.032) 42px 43px);transform:perspective(700px) rotateX(58deg);transform-origin:top;opacity:.86}.balance-field-lines i{position:absolute;top:44%;width:220px;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.42),transparent);transform-origin:center;animation:balance-field-drift 5.2s ease-in-out infinite}.balance-field-lines i:nth-child(1){left:12%;transform:rotate(-16deg)}.balance-field-lines i:nth-child(2){left:42%;width:280px;animation-delay:-1.4s}.balance-field-lines i:nth-child(3){right:11%;transform:rotate(16deg);animation-delay:-2.6s}.balance-waiting,.balance-running{position:relative;z-index:1;display:grid;grid-template-rows:minmax(0,1fr) 86px;gap:22px;height:100%;text-align:center}.balance-wait-core{position:relative;display:grid;justify-items:center;align-content:center;gap:20px}.balance-wait-core:before{content:"";position:absolute;width:760px;height:330px;background:radial-gradient(ellipse at 50% 38%,rgba(36,246,196,.2),transparent 52%),linear-gradient(90deg,transparent,rgba(126,251,246,.1),transparent),repeating-linear-gradient(90deg,transparent 0 34px,rgba(126,251,246,.04) 34px 35px);transform:perspective(640px) rotateX(63deg) translateY(86px);transform-origin:bottom;pointer-events:none}.balance-wait-core>*{position:relative;z-index:1}.balance-core-ring{position:relative;display:grid;place-items:center;width:178px;height:178px;border-radius:50%;background:conic-gradient(from -90deg,#24f6c4 var(--usage-angle, 0deg),rgba(48,220,255,.12) var(--usage-angle, 0deg),rgba(48,220,255,.12) 360deg);box-shadow:0 0 34px #24f6c433,0 0 82px #24f6c411,inset 0 0 32px #02101ab8}.balance-core-ring:before,.balance-core-ring:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.balance-core-ring:before{top:9px;right:9px;bottom:9px;left:9px;border:1px solid rgba(126,251,246,.24);animation:balance-rotate 8s linear infinite;box-shadow:inset 0 0 18px #7efbf60f}.balance-core-ring:after{top:-10px;right:-10px;bottom:-10px;left:-10px;border:1px dashed rgba(126,251,246,.18);animation:balance-rotate 14s linear infinite reverse}.balance-core-ring.is-empty{--usage-angle: 42deg;background:conic-gradient(from -90deg,rgba(126,251,246,.28) 0deg 42deg,rgba(48,220,255,.1) 42deg 360deg)}.balance-core-ring.is-empty .balance-core-inner strong{max-width:134px;font-size:30px;line-height:34px}.balance-core-inner{position:relative;z-index:1;display:grid;place-items:center;align-content:center;width:136px;height:136px;border-radius:50%;background:radial-gradient(circle,rgba(8,48,58,.9),rgba(2,17,27,.96) 68%),rgba(2,17,27,.92);text-align:center}.balance-core-inner span,.balance-core-inner strong,.balance-core-inner small{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-core-inner span,.balance-core-inner small{color:#dffaffa8;font-size:12px}.balance-core-inner strong{margin:8px 0 5px;color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:34px;line-height:36px;text-shadow:0 0 18px rgba(36,246,196,.35)}.balance-waiting h2{max-width:940px;margin:0;overflow:hidden;color:#fff;font-size:33px;line-height:42px;text-overflow:ellipsis;white-space:nowrap}.balance-waiting p{max-width:720px;margin:0;color:#dffaffb3;font-size:15px;line-height:24px}.balance-preflight{display:grid;grid-template-columns:112px minmax(0,1fr) 136px minmax(0,1fr) 148px;align-items:center;max-width:760px;width:100%;margin:0 auto}.balance-preflight span{position:relative;height:34px;color:#dffaff85;font-size:13px;line-height:34px;text-align:center;background:transparent;clip-path:none}.balance-preflight span:before{content:"";position:absolute;left:50%;top:-8px;width:8px;height:8px;border:1px solid rgba(126,251,246,.4);background:rgba(6,44,58,.7);transform:translate(-50%) rotate(45deg);box-shadow:0 0 12px #7efbf61a}.balance-preflight span.active{color:#7efbf6;box-shadow:none}.balance-preflight span.active:before{border-color:#ffd76c94;background:rgba(255,215,108,.28)}.balance-preflight i{height:1px;background:linear-gradient(90deg,rgba(126,251,246,.1),rgba(126,251,246,.6),rgba(255,215,108,.34))}.balance-running{grid-template-rows:238px minmax(0,1fr);text-align:left}.balance-running-head{position:relative;display:grid;grid-template-columns:238px minmax(0,1fr);align-items:center;gap:34px;padding:34px 84px 22px}.balance-running-head:before{content:"";position:absolute;left:64px;right:64px;bottom:4px;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.44),rgba(255,215,108,.28),transparent)}.balance-running-title{min-width:0}.balance-running-title span,.balance-running-title strong,.balance-running-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-running-title span{color:#7efbf6b8;font-size:16px}.balance-running-title strong{margin-top:12px;color:#fff;font-size:36px;line-height:44px;text-shadow:0 0 18px rgba(126,251,246,.14)}.balance-running-title small{margin-top:10px;color:#ffd76cb8;font-size:16px}.balance-progress-line{position:relative;height:13px;margin-top:22px;overflow:hidden;background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.05)),rgba(1,12,21,.5);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-progress-line i{display:block;height:100%;background:linear-gradient(90deg,rgba(36,246,196,.18),#24f6c4,#ffd76c);box-shadow:0 0 18px #24f6c438;transition:width .16s linear}.balance-progress-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);animation:balance-flow-light 1.4s linear infinite}.balance-live-process{display:grid;gap:11px;min-height:0;padding:0 84px 30px}.balance-live-step{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:14px;min-height:74px;padding:0 20px;background:linear-gradient(90deg,rgba(48,220,255,.075),transparent 48%),linear-gradient(180deg,rgba(6,38,51,.22),rgba(2,20,32,.08));opacity:.42;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%);transition:opacity .2s ease,transform .2s ease}.balance-live-step:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-bottom:1px solid rgba(48,220,255,.075);clip-path:inherit;pointer-events:none}.balance-live-step>span{width:32px;height:32px;border:1px solid rgba(126,251,246,.34);color:#7efbf6c7;font-family:D-DIN,Arial,sans-serif;font-size:14px;line-height:30px;text-align:center}.balance-live-step div{min-width:0}.balance-live-step strong,.balance-live-step p,.balance-live-step em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-live-step strong{display:block;color:#fff;font-size:15px}.balance-live-step p{margin:7px 0 0;color:#ffd76ca8;font-size:12px}.balance-live-step em{color:#dffaff9e;font-family:D-DIN,Arial,sans-serif;font-size:17px;font-style:normal;text-align:right}.balance-live-step.is-active,.balance-live-step.is-done{opacity:1}.balance-live-step.is-active{transform:translate(8px);background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(255,215,108,.09),transparent 66%),linear-gradient(180deg,rgba(10,58,70,.56),rgba(4,34,48,.42))}.balance-live-step.is-active:before{border-color:#7efbf66b;box-shadow:inset 0 0 18px #7efbf61a}.balance-live-step.is-active>span{background:rgba(36,246,196,.1);box-shadow:0 0 18px #24f6c41f}.balance-live-step.is-done em,.balance-live-step.is-active em{color:#7efbf6}.balance-analysis{display:grid;position:relative;z-index:1;grid-template-rows:214px 108px minmax(0,1fr);gap:15px;height:100%}.balance-dashboard{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 282px minmax(0,1fr);align-items:center;gap:24px;min-height:0;padding:18px 26px;background:radial-gradient(circle at 50% 50%,rgba(36,246,196,.2),transparent 36%),radial-gradient(ellipse at 50% 100%,rgba(48,220,255,.1),transparent 58%),linear-gradient(90deg,rgba(48,220,255,.07),rgba(2,18,30,.1) 48%,rgba(255,215,108,.055));clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,28px 100%,0 calc(100% - 28px))}.balance-dashboard:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-top:1px solid rgba(48,220,255,.12);border-bottom:1px solid rgba(48,220,255,.08);box-shadow:inset 0 0 34px #24f6c409;clip-path:inherit;pointer-events:none}.balance-dashboard:after{content:"";position:absolute;left:246px;right:246px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.42),rgba(255,215,108,.34),transparent);pointer-events:none}.balance-dashboard>*{position:relative;z-index:1}.balance-object-block,.balance-verdict-card{position:relative;z-index:1;min-width:0;padding:18px 22px;background:radial-gradient(circle at 16% 0,rgba(126,251,246,.12),transparent 38%),linear-gradient(135deg,rgba(126,251,246,.075),transparent 50%),rgba(2,21,33,.2);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}.balance-object-block:before,.balance-verdict-card:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.5),transparent)}.balance-object-block span,.balance-object-block strong,.balance-object-block small,.balance-verdict-card span,.balance-verdict-card strong,.balance-verdict-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-object-block span,.balance-object-block small,.balance-verdict-card span,.balance-verdict-card small{color:#dffaff9e;font-size:12px}.balance-object-block strong{margin-top:8px;color:#fff;font-size:38px;line-height:44px;text-shadow:0 0 18px rgba(255,255,255,.12)}.balance-verdict-card{text-align:right}.balance-verdict-card strong{margin-top:8px;color:#ffd76c;font-family:D-DIN,Arial,sans-serif;font-size:38px;line-height:44px;text-shadow:0 0 20px rgba(255,215,108,.34)}.balance-verdict-card.is-healthy strong,.balance-verdict-card.is-balanced strong,.balance-verdict-card.is-watch strong{color:#7efbf6}.balance-verdict-card.is-danger strong{color:#ff8f6b}.balance-core{position:relative;z-index:1;display:grid;justify-items:center;gap:9px}.balance-core:before{content:"";position:absolute;left:50%;top:50%;z-index:-1;width:332px;height:118px;background:radial-gradient(ellipse at 50% 50%,rgba(126,251,246,.14),transparent 70%);transform:translate(-50%,-50%);pointer-events:none}.balance-core-caption{color:#dffaff9e;font-size:12px}.balance-compare{position:relative;display:grid;align-content:center;gap:20px;padding:17px 24px;background:radial-gradient(ellipse at 50% 100%,rgba(126,251,246,.08),transparent 62%),linear-gradient(90deg,rgba(48,220,255,.08),transparent 45%,rgba(255,215,108,.065)),rgba(2,21,33,.16);clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);box-sizing:border-box}.balance-compare:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-top:1px solid rgba(48,220,255,.08);border-bottom:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-bar-row{position:relative;z-index:1;display:grid;grid-template-columns:98px minmax(0,1fr) 190px;align-items:center;gap:16px;min-width:0}.balance-bar-row span{color:#dffaffb8;font-size:13px;white-space:nowrap}.balance-bar-row div{position:relative;height:14px;overflow:hidden;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.06)),rgba(1,12,21,.56);clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%)}.balance-bar-row div:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%);animation:balance-flow-light 2.4s linear infinite}.balance-bar-row i{display:block;height:100%;background:linear-gradient(90deg,rgba(36,246,196,.2),#24f6c4);box-shadow:0 0 18px #24f6c438}.balance-bar-row strong{overflow:hidden;color:#fff;font-family:D-DIN,Arial,sans-serif;font-size:23px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.balance-bar-row em{margin-left:4px;color:#ffffff94;font-family:AlibabaPuHuiTi,Arial,sans-serif;font-size:11px;font-style:normal}.balance-bar-row.is-livestock i{background:linear-gradient(90deg,rgba(255,215,108,.18),#ffd76c);box-shadow:0 0 16px #ffd76c2e}.balance-detail{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.82fr) 248px;gap:12px;min-height:0}.balance-process,.balance-decision,.balance-overload-ranking{position:relative;min-width:0;min-height:0;padding:16px 18px 15px;background:radial-gradient(circle at 18% 0,rgba(126,251,246,.11),transparent 30%),linear-gradient(135deg,rgba(48,220,255,.08),transparent 34%),linear-gradient(315deg,rgba(255,215,108,.038),transparent 42%),rgba(2,21,33,.16);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);box-sizing:border-box}.balance-process:before,.balance-decision:before,.balance-overload-ranking:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-top:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-process:after,.balance-decision:after,.balance-overload-ranking:after{content:"";position:absolute;left:18px;right:18px;top:48px;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.32),transparent);pointer-events:none}.balance-section-title{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;height:28px}.balance-section-title span{color:#fff;font-size:16px;text-shadow:0 0 12px rgba(126,251,246,.22)}.balance-section-title small{color:#7efbf69e;font-size:12px}.balance-process{display:grid;grid-template-rows:28px 38px repeat(4,minmax(0,1fr));gap:10px}.balance-process-track{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center}.balance-process-track:before{content:"";position:absolute;left:5%;right:5%;top:50%;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.18),rgba(126,251,246,.5),rgba(255,215,108,.42))}.balance-process-track span{position:relative;z-index:1;height:28px;overflow:hidden;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(2,19,31,.9)),rgba(2,19,31,.9);color:#dffaffb8;font-size:12px;line-height:28px;text-align:center;text-overflow:ellipsis;white-space:nowrap;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-process-track .is-done,.balance-process-track .is-active{color:#7efbf6;box-shadow:inset 0 0 14px #7efbf61f}.balance-formula-row{position:relative;z-index:1;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:0 14px;background:linear-gradient(90deg,rgba(48,220,255,.07),transparent 48%),linear-gradient(180deg,rgba(6,37,49,.22),rgba(2,20,32,.08));clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);box-sizing:border-box}.balance-formula-row:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-bottom:1px solid rgba(48,220,255,.065);clip-path:inherit;pointer-events:none}.balance-formula-row>span{width:30px;height:30px;border:1px solid rgba(126,251,246,.34);color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:13px;line-height:28px;text-align:center;background:rgba(36,246,196,.055)}.balance-formula-row div{min-width:0}.balance-formula-row strong,.balance-formula-row p,.balance-formula-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-formula-row strong{display:block;color:#fff;font-size:15px}.balance-formula-row p{margin:4px 0 0;color:#ffffffc2;font-size:12px}.balance-formula-row em{color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:21px;font-style:normal;text-align:right}.balance-decision{display:grid;grid-template-rows:28px 112px minmax(0,1fr);gap:12px}.balance-overload-ranking{display:grid;grid-template-rows:28px minmax(0,1fr);gap:10px}.balance-rank-list{position:relative;z-index:1;display:grid;align-content:start;gap:5px;min-height:0;overflow:hidden}.balance-rank-row{position:relative;display:grid;grid-template-columns:24px 58px minmax(0,1fr) 50px;align-items:center;gap:7px;height:25px;min-width:0;padding:0 8px 0 6px;background:linear-gradient(90deg,rgba(48,220,255,.08),transparent 62%),rgba(4,33,46,.62);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);box-sizing:border-box}.balance-rank-row:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-rank-row>span{position:relative;z-index:1;width:20px;height:18px;color:#7efbf6e6;font-family:D-DIN,Arial,sans-serif;font-size:12px;line-height:18px;font-weight:800;text-align:center;background:rgba(126,251,246,.08)}.balance-rank-row strong{position:relative;z-index:1;min-width:0;overflow:hidden;color:#edfdffe6;font-size:12px;line-height:18px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.balance-rank-row div{position:relative;z-index:1;height:5px;overflow:hidden;background:rgba(126,251,246,.08)}.balance-rank-row div i{display:block;width:var(--rank-progress);height:100%;background:linear-gradient(90deg,rgba(126,251,246,.35),#7efbf6);box-shadow:0 0 10px #7efbf638}.balance-rank-row em{position:relative;z-index:1;color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:800;text-align:right;white-space:nowrap}.balance-rank-row.is-warning div i{background:linear-gradient(90deg,rgba(255,215,108,.32),#ffd76c);box-shadow:0 0 10px #ffd76c33}.balance-rank-row.is-warning em{color:#ffd76c}.balance-rank-row.is-alert div i{background:linear-gradient(90deg,rgba(255,143,107,.3),#ff8f6b);box-shadow:0 0 10px #ff8f6b3d}.balance-rank-row.is-alert em{color:#ffb15e}.balance-conclusion{position:relative;z-index:1;min-width:0;padding:16px 14px;background:radial-gradient(circle at 10% 0,rgba(255,215,108,.18),transparent 42%),linear-gradient(135deg,rgba(255,215,108,.13),transparent 60%),rgba(74,56,20,.14);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);box-sizing:border-box}.balance-conclusion:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(255,215,108,.2);clip-path:inherit;pointer-events:none}.balance-conclusion strong{position:relative;z-index:1;display:block;overflow:hidden;color:#ffd76c;font-size:14px;text-shadow:0 0 10px rgba(255,215,108,.18);line-height:20px;text-overflow:ellipsis;white-space:nowrap}.balance-conclusion p{position:relative;z-index:1;margin:8px 0 0;overflow:hidden;color:#ecfcffb8;font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.balance-advice-list{position:relative;z-index:1;display:grid;align-content:start;gap:11px;min-height:0;overflow:hidden}.balance-advice-item{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;min-height:43px;padding:3px 0}.balance-advice-item span{width:22px;height:22px;border:1px solid rgba(126,251,246,.44);color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:12px;line-height:20px;text-align:center}.balance-advice-item p{min-width:0;margin:0;overflow:hidden;color:#ecfcffd1;font-size:12px;line-height:19px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}@keyframes balance-scan{0%{opacity:.2;transform:translate(-28%)}50%{opacity:.8}to{opacity:.2;transform:translate(28%)}}@keyframes balance-rotate{to{transform:rotate(360deg)}}@keyframes balance-flow-light{to{transform:translate(100%)}}@keyframes balance-band-pulse{0%,to{opacity:.56;filter:saturate(.92)}50%{opacity:.86;filter:saturate(1.08)}}@keyframes balance-field-drift{0%,to{opacity:.18;transform:translate(-18px)}50%{opacity:.58;transform:translate(18px)}}.grass-livestock-balance{background:linear-gradient(rgba(31,169,190,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(31,169,190,.022) 1px,transparent 1px),radial-gradient(circle at 50% 35%,rgba(35,128,133,.1),transparent 34%),linear-gradient(135deg,#020b13 0%,#061d2b 48%,#020b13 100%);background-size:44px 44px,44px 44px,100% 100%,100% 100%}.grass-livestock-balance:before,.grass-livestock-balance:after{opacity:.26}.balance-backdrop{top:104px;height:944px;background:linear-gradient(rgba(48,220,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.016) 1px,transparent 1px);background-size:44px 44px}.balance-backdrop:before,.balance-backdrop:after{opacity:.32}.balance-orbit,.balance-energy-band,.balance-field-lines,.balance-wait-core:before,.balance-core:before{display:none}.balance-screen{top:128px}.balance-card{filter:drop-shadow(0 16px 26px rgba(0,0,0,.28))}.balance-card .m-card-hd{background:linear-gradient(90deg,rgba(24,117,135,.78),rgba(12,65,83,.52) 56%,rgba(6,32,46,.08))}.balance-card .m-card-hd:before{background:linear-gradient(90deg,#30dcff,rgba(126,251,246,.36),transparent 76%);box-shadow:none}.balance-card .m-card-bd{background:linear-gradient(180deg,rgba(8,49,64,.92),rgba(3,23,36,.92))}.balance-card .m-card-bd:before{border-color:#30dcff33;box-shadow:inset 0 0 0 1px #7efbf60a}.balance-card .m-card-bd:after{opacity:.22}.balance-sheet-card{filter:drop-shadow(0 18px 30px rgba(0,0,0,.24))}.balance-sheet-card .m-card-bd{background:linear-gradient(180deg,rgba(7,43,58,.92),rgba(2,19,31,.94))}.balance-sheet-card .m-card-bd:before{border-color:#30dcff2e;border-left-color:#30dcff47;border-bottom-color:#30dcff1f;box-shadow:inset 0 0 0 1px #7efbf609}.balance-target-card{filter:drop-shadow(0 16px 24px rgba(0,0,0,.26))}.balance-target-card .m-card-bd{background:linear-gradient(180deg,rgba(7,45,58,.9),rgba(2,20,32,.92))}.balance-target-card .m-card-bd:before{border-color:#30dcff29;border-left-color:#30dcff47;border-bottom-color:#30dcff1f}.balance-selector{grid-template-rows:40px minmax(0,1fr) 158px;gap:12px;padding:12px 12px 14px}.balance-scope-tabs button{border:1px solid rgba(48,220,255,.12);background:rgba(4,31,44,.58);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-scope-tabs button.active,.balance-scope-tabs button:hover{background:linear-gradient(180deg,rgba(19,98,112,.9),rgba(7,56,76,.86))}.balance-target-list button{background:rgba(5,39,53,.72)}.balance-target-list button:before{border:1px solid rgba(48,220,255,.1);border-left-color:#30dcff33}.balance-target-list button.active{background:linear-gradient(90deg,rgba(119,98,38,.9),rgba(7,70,77,.86))}.balance-action-box{background:rgba(3,28,40,.84)}.balance-action-box:before{border:1px solid rgba(48,220,255,.14)}.balance-sheet{padding:14px 22px 20px}.balance-sheet:before,.balance-sheet:after{display:none}.balance-waiting{grid-template-rows:minmax(0,1fr) 78px}.balance-wait-core{gap:18px;padding-top:16px}.balance-core-ring{width:164px;height:164px;box-shadow:0 0 18px #24f6c41f,inset 0 0 28px #02101abd}.balance-core-ring:after{opacity:.36}.balance-core-inner{width:126px;height:126px}.balance-core-inner strong{font-size:30px;line-height:34px;text-shadow:none}.balance-preflight span{background:rgba(4,32,45,.78);border:1px solid rgba(48,220,255,.1);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-preflight span:before{display:none}.balance-running-head{padding:30px 58px 18px}.balance-live-process{padding:0 58px 26px}.balance-live-step{background:rgba(5,36,50,.76)}.balance-live-step:before{border:1px solid rgba(48,220,255,.08)}.balance-live-step.is-active{background:linear-gradient(90deg,rgba(22,108,104,.82),rgba(7,53,66,.86))}.balance-analysis{grid-template-rows:188px 94px minmax(0,1fr);gap:12px}.balance-dashboard,.balance-compare,.balance-process,.balance-decision,.balance-overload-ranking{background:linear-gradient(180deg,rgba(7,48,62,.9),rgba(3,28,42,.9));clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}.balance-dashboard:before,.balance-compare:before,.balance-process:before,.balance-decision:before,.balance-overload-ranking:before{border:1px solid rgba(48,220,255,.12);box-shadow:none}.balance-dashboard{grid-template-columns:minmax(0,1fr) 230px minmax(0,1fr);padding:14px 20px}.balance-dashboard:after{display:none}.balance-object-block,.balance-verdict-card{background:rgba(4,31,44,.82);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}.balance-object-block strong,.balance-verdict-card strong{font-size:34px;line-height:40px;text-shadow:none}.balance-verdict-card strong,.balance-core-inner strong,.balance-formula-row em,.balance-bar-row i{text-shadow:none;box-shadow:none}.balance-core-ring:before,.balance-core-ring:after{animation:none}.balance-dashboard .balance-core-ring{width:156px;height:156px}.balance-dashboard .balance-core-inner{width:120px;height:120px}.balance-compare{gap:18px;padding:14px 20px}.balance-detail{gap:12px}.balance-process,.balance-decision,.balance-overload-ranking{padding:14px 16px}.balance-formula-row{background:rgba(4,33,46,.82)}.balance-formula-row:before{border:1px solid rgba(48,220,255,.08)}.balance-conclusion{background:rgba(70,55,22,.7)}.balance-bar-row div:after,.balance-progress-line:after{display:none}.balance-core-caption{color:#dffaffb8}.balance-sheet.is-ready{padding:18px 22px 22px}.balance-sheet.is-ready .balance-analysis{grid-template-rows:158px 84px minmax(0,1fr);gap:14px}.balance-sheet.is-ready .balance-dashboard{grid-template-columns:minmax(0,1fr) 188px minmax(0,1fr);gap:18px;padding:14px 22px}.balance-sheet.is-ready .balance-object-block,.balance-sheet.is-ready .balance-verdict-card{min-height:104px;padding:18px 20px;box-sizing:border-box}.balance-sheet.is-ready .balance-object-block strong,.balance-sheet.is-ready .balance-verdict-card strong{margin-top:7px;font-size:28px;line-height:34px}.balance-sheet.is-ready .balance-object-block small,.balance-sheet.is-ready .balance-verdict-card small{margin-top:4px}.balance-sheet.is-ready .balance-dashboard .balance-core-ring{width:132px;height:132px}.balance-sheet.is-ready .balance-dashboard .balance-core-inner{width:102px;height:102px}.balance-sheet.is-ready .balance-core-inner strong{max-width:92px;margin:5px 0 3px;font-size:26px;line-height:28px}.balance-sheet.is-ready .balance-core-inner span,.balance-sheet.is-ready .balance-core-inner small{max-width:92px;font-size:11px}.balance-sheet.is-ready .balance-core{gap:5px}.balance-sheet.is-ready .balance-core-caption{font-size:11px}.balance-sheet.is-ready .balance-compare{gap:14px;padding:12px 20px}.balance-sheet.is-ready .balance-bar-row{grid-template-columns:92px minmax(0,1fr) 178px;gap:14px}.balance-sheet.is-ready .balance-bar-row strong{font-size:20px}.balance-sheet.is-ready .balance-detail{grid-template-columns:minmax(0,1fr) minmax(318px,.78fr) 238px;gap:12px}.balance-sheet.is-ready .balance-process,.balance-sheet.is-ready .balance-decision,.balance-sheet.is-ready .balance-overload-ranking{overflow:hidden;padding:13px 15px}.balance-sheet.is-ready .balance-process{grid-template-rows:26px 32px repeat(4,minmax(58px,1fr));gap:8px}.balance-sheet.is-ready .balance-decision{grid-template-rows:26px 92px minmax(0,1fr);gap:10px}.balance-sheet.is-ready .balance-overload-ranking{grid-template-rows:26px minmax(0,1fr);gap:8px}.balance-sheet.is-ready .balance-section-title{height:26px}.balance-sheet.is-ready .balance-section-title span{font-size:15px}.balance-sheet.is-ready .balance-process-track{height:32px}.balance-sheet.is-ready .balance-process-track span{height:26px;font-size:11px;line-height:26px}.balance-sheet.is-ready .balance-formula-row{grid-template-columns:36px minmax(0,1fr);gap:10px;min-height:58px;padding:8px 12px}.balance-sheet.is-ready .balance-formula-row>span{width:27px;height:27px;font-size:12px;line-height:25px}.balance-sheet.is-ready .balance-formula-row strong{font-size:14px}.balance-sheet.is-ready .balance-formula-row p{margin-top:3px;font-size:11px;line-height:16px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.balance-sheet.is-ready .balance-conclusion{padding:13px 14px}.balance-sheet.is-ready .balance-conclusion strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.balance-sheet.is-ready .balance-conclusion p{margin-top:6px}.balance-sheet.is-ready .balance-advice-list{gap:8px;overflow:hidden}.balance-sheet.is-ready .balance-advice-item{min-height:34px;padding:1px 0}.balance-sheet.is-ready .balance-advice-item p{line-height:18px;-webkit-line-clamp:2}.balance-sheet.is-ready .balance-rank-list{gap:4px}.balance-sheet.is-ready .balance-rank-row{grid-template-columns:22px 54px minmax(0,1fr) 48px;gap:6px;height:23px;padding-right:7px} diff --git a/docs/assets/index-c7da184e-1784043664472.js b/docs/assets/index-c7da184e-1784043664472.js new file mode 100644 index 0000000..5d7ae29 --- /dev/null +++ b/docs/assets/index-c7da184e-1784043664472.js @@ -0,0 +1,2 @@ +import{H as Q}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as U}from"./index-e3442fcf-1784043664472.js";import{M as X}from"./screen2Standard-15e4461a-1784043664472.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-95a980bb-1784043664472.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,J as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1784043664472.js";import"./index-e9f36657-1784043664472.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:J()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(K=>K.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function J(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% +完成`,color:"#ffe06b",fontSize:22,lineHeight:30,fontWeight:700},data:[{value:1,itemStyle:{color:"rgba(255, 224, 107, .28)"}}]}]})}return(r,n)=>(i(),s("div",ie,[n[1]||(n[1]=t("div",{class:"guide-bg guide-bg-grid"},null,-1)),n[2]||(n[2]=t("div",{class:"guide-bg guide-bg-glow"},null,-1)),t("header",se,[n[0]||(n[0]=t("div",null,[t("div",{class:"guide-kicker"},"Chart Style System"),t("h1",null,"图表样式规范")],-1)),t("div",ue,[(i(!0),s(u,null,g(B(P),a=>(i(),s("span",{key:a,style:m({background:a})},null,4))),128))])]),t("main",ce,[t("section",de,[(i(),s(u,null,g(A,(a,c)=>L(U,{key:a.key,class:F(["guide-chart-card",`is-${a.size||"standard"}`]),width:C(a).width,height:C(a).height,title:`${D(c)} ${a.title}`,"data-unit":a.unit},{default:O(()=>[t("div",{class:F(["guide-card-content",a.visual?`is-${a.visual}`:""])},[a.option?(i(),le(B(Q),{key:0,class:"guide-chart",option:a.option,autoresize:""},null,8,["option"])):N("",!0),a.visual==="three-pie"?(i(),s(u,{key:1},[t("div",ge,[L(X,{data:b,colors:w,delay:3e3,opacity:.62,class:"guide-three-pie"},{default:O(({data:e})=>[t("div",me,[t("strong",null,l(H(e)),1),t("span",null,l((e==null?void 0:e.name)||"结构占比"),1)])]),_:1})]),t("div",pe,[(i(),s(u,null,g(b,(e,d)=>t("div",{key:e.name},[t("i",{style:m({borderColor:w[d]})},null,4),t("span",null,l(e.name),1),t("strong",null,[y(l(e.value),1),t("em",null,l(e.unit),1)])])),64))])],64)):a.visual==="structure-band"?(i(),s(u,{key:2},[t("div",he,[(i(),s(u,null,g(_,e=>t("i",{key:e.name,style:m({width:`${e.percent}%`,background:e.color})},null,4)),64))]),t("div",ve,[(i(),s(u,null,g(_,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("strong",null,l(e.percent)+"%",1)])),64))])],64)):a.visual==="rank-list"?(i(),s(u,{key:3},g(V,(e,d)=>t("div",{key:e.name,class:"guide-rank-row"},[t("span",null,l(d+1),1),t("em",null,l(e.name),1),t("i",null,[t("b",{style:m({width:`${e.percent}%`})},null,4)]),t("strong",null,l(e.value),1)])),64)):a.visual==="warning-band"?(i(),s(u,{key:4},[t("div",be,[t("strong",null,l(S.value),1),t("span",null,l(S.name),1)]),t("div",ye,[(i(),s(u,null,g(M,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("em",null,l(e.value),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)])])),64))])],64)):a.visual==="target-stack"?(i(),s(u,{key:5},g(T,e=>t("div",{key:e.name,class:"guide-target-row"},[t("span",null,l(e.name),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)]),t("strong",null,l(e.percent)+"%",1)])),64)):N("",!0)],2)]),_:2},1032,["class","width","height","title","data-unit"])),64))])])]))}},ze=re(fe,[["__scopeId","data-v-1d923a5c"]]);export{ze as default}; diff --git a/docs/assets/index-cd04b5b9-1784043664472.js b/docs/assets/index-cd04b5b9-1784043664472.js new file mode 100644 index 0000000..7f13c91 --- /dev/null +++ b/docs/assets/index-cd04b5b9-1784043664472.js @@ -0,0 +1 @@ +var Je=Object.defineProperty,We=Object.defineProperties;var Ue=Object.getOwnPropertyDescriptors;var re=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var ie=(n,i,u)=>i in n?Je(n,i,{enumerable:!0,configurable:!0,writable:!0,value:u}):n[i]=u,B=(n,i)=>{for(var u in i||(i={}))Ye.call(i,u)&&ie(n,u,i[u]);if(re)for(var u of re(i))Ge.call(i,u)&&ie(n,u,i[u]);return n},j=(n,i)=>We(n,Ue(i));var E=(n,i,u)=>new Promise((h,x)=>{var g=_=>{try{C(u.next(_))}catch(b){x(b)}},W=_=>{try{C(u.throw(_))}catch(b){x(b)}},C=_=>_.done?h(_.value):Promise.resolve(_.value).then(g,W);C((u=u.apply(n,i)).next())});import{_ as ue}from"./index-e3442fcf-1784043664472.js";import{r as Qe,n as Xe}from"./index-d0c7091a-1784043664472.js";import{a as Ze,n as ea,d as aa,f as Z,c as O,s as na,p as oe}from"./data-5c83c66b-1784043664472.js";import{g as o,q as la,h as ta,w as ce,o as y,c as f,a as e,b as ve,x as de,F as P,y as z,n as S,t as r,J as T,u as K,d as N}from"./index-1784043664472.js";import"./index-e9f36657-1784043664472.js";const ee=ia("/jsyApi"),sa="/openApi";function ra(n,i){return/^https?:\/\//.test(i)?i:`${n}${i.startsWith("/")?i:`/${i}`}`}function ia(n){const i=String(n||"/jsyApi").replace(/\/+$/,"");return i.endsWith("/api")?i:`${i}/api`}function ua(n){if((n==null?void 0:n.success)===!1||(n==null?void 0:n.code)!==void 0&&![0,200,"0","200"].includes(n.code)){const u=new Error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"接口请求失败");throw u.code=n==null?void 0:n.code,u}return Xe(n)}function J(n,i,u,h={}){return Qe(ra(n,i),{params:u,timeout:h.timeout||16e3}).then(ua)}function oa(n){return Array.isArray(n)?n:Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.list)?n.list:Array.isArray(n==null?void 0:n.data)?n.data:[]}function ca(n){return Array.isArray(n)?n.length>0:!n||typeof n!="object"?n!=null&&n!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(u=>n[u]!==void 0&&n[u]!==null&&n[u]!=="")}function va(){return E(this,arguments,function*({areaCode:n}={}){const i={areaCode:n},u=[()=>J(ee,"/ai/livestockBalance",i,{timeout:18e3}),()=>J(sa,"/ai/balance/advice",i,{timeout:18e3})];let h;for(const x of u)try{const g=yield x();if(ca(g))return g}catch(g){h=g}throw h||new Error("草畜平衡接口不可用")})}function da(n){return E(this,null,function*(){const i=[()=>J(ee,"/area/children",{areaCode:n},{timeout:12e3}),()=>J(ee,"/map/areaCode",{areaCode:n},{timeout:12e3})];let u,h=!1;for(const x of i)try{const g=oa(yield x());if(g.length)return g;h=!0}catch(g){u=g}if(h)return[];throw u||new Error("区划接口不可用")})}const ya={class:"grass-livestock-balance"},fa={class:"balance-selector"},ga={class:"balance-scope-tabs"},ma=["onClick"],ba={class:"balance-target-list"},pa=["title","onClick"],ka={class:"balance-action-box"},ha=["disabled"],wa={key:0,class:"balance-running"},_a={class:"balance-running-head"},Ra={class:"balance-core-inner"},Aa={class:"balance-running-title"},Ca={class:"balance-progress-line"},$a={class:"balance-live-process"},xa={key:1,class:"balance-waiting"},Sa={class:"balance-wait-core"},Na={class:"balance-core-ring is-empty"},Ba={class:"balance-core-inner"},Ma={class:"balance-preflight"},Ea={key:2,class:"balance-analysis"},Pa={class:"balance-dashboard"},za={class:"balance-object-block"},Ta={class:"balance-core"},qa={class:"balance-core-inner"},Ia={class:"balance-compare"},Va={class:"balance-bar-row"},Da={class:"balance-bar-row is-livestock"},Ha={class:"balance-detail"},ja={class:"balance-process"},Ka={class:"balance-section-title"},La={class:"balance-process-track"},Fa={class:"balance-decision"},Oa={class:"balance-section-title"},Ja={class:"balance-conclusion"},Wa={class:"balance-advice-list"},Ua={class:"balance-overload-ranking"},Ya={class:"balance-rank-list"},Ga=326,Qa=1310,Xa=128,Za=8,en=6200,un={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(n,{emit:i}){const u=n,h=i,x=N(typeof window=="undefined"?1080:window.innerHeight),g=o(()=>{const a=Math.max(1080,Number(x.value)||1080);return Math.max(944,a-Xa-Za)}),W=o(()=>g.value),C=N("county"),_=N(""),b=N("idle"),R=N(0),$=N(0),A=N(""),q=N({}),U=N([]);let M=!1,Y=0,L=null,D=0,I=null;const F=o(()=>[...Ze,...U.value].map(a=>ea(q.value[a.key],a))),ye=o(()=>F.value.filter(a=>a.type==="county")),G=o(()=>F.value.filter(a=>a.type==="town")),fe=o(()=>F.value.filter(a=>a.type==="village")),ge=o(()=>C.value==="town"?G.value:C.value==="village"?fe.value:ye.value),d=o(()=>F.value.find(a=>a.key===_.value)||null),k=o(()=>!!d.value),p=o(()=>b.value==="running"),m=o(()=>k.value&&b.value==="done"),c=o(()=>aa(d.value||{})),ae=o(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),me=o(()=>{var a;return((a=ae.value.find(l=>l.key===C.value))==null?void 0:a.name)||"县"}),be=o(()=>d.value?d.value.areaCode?`行政区划 ${d.value.areaCode}`:d.value.township||"核算对象":"等待选择核算对象"),pe=o(()=>A.value?A.value:k.value?m.value?"分析已完成":p.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),ke=o(()=>m.value?"草畜平衡分析舱":"草畜平衡分析"),he=o(()=>k.value?p.value?"分析中":"待开始":"待选择"),we=o(()=>k.value?p.value?`${d.value.name} 正在分析`:`${d.value.name} 待开始分析`:"先选择一个核算对象"),_e=o(()=>A.value?A.value:k.value?p.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),Re=o(()=>{const a=c.value;return a.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${a.delta>0?"超载量":"承载余量"} ${Z(Math.abs(a.delta))},承载利用率 ${O(a.usageRate)}。`}),Ae=o(()=>c.value.risk.key==="healthy"?"保持监测":c.value.risk.key==="watch"?"基本平衡":c.value.risk.key==="light"?"关注调控":c.value.delta===null?"按结果表判定":c.value.delta>0?"需调控载畜量":"承载能力可覆盖"),Ce=o(()=>c.value.risk.key==="healthy"||c.value.risk.key==="watch"?"保持监测":c.value.risk.key==="light"?"关注调控":c.value.delta===null?"结果表口径":c.value.delta>0?"需要调控":"保持监测"),$e=o(()=>{const a=Math.max(0,Math.min(130,Number(c.value.usageRate)||0));return`${Math.round(a/130*360)}deg`}),xe=o(()=>[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核定草地范围、面积和产草量等级,形成生产力基础口径。"},{key:"forage",index:"02",name:"可利用草量折算",desc:"扣除不可食草量、生态保留量和利用限制,折算可供放牧利用草量。"},{key:"livestock",index:"03",name:"载畜量折算",desc:"依据实际存栏和草畜平衡标准,统一形成载畜压力口径。"},{key:"balance",index:"04",name:"平衡判定",desc:"对比草地承载能力与载畜压力,输出平衡状态和调控方案。"}]),V=o(()=>{const a=c.value;return[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核算草地面积与产草能力",pending:"等待草地参数",plan:"核定草地范围、面积和产草量等级"},{key:"forage",index:"02",name:"可利用草量折算",desc:"折算可供放牧利用草量",pending:"等待草量折算",plan:"扣除不可食草量、生态保留量和利用限制"},{key:"livestock",index:"03",name:"载畜量折算",desc:"形成实际载畜压力口径",pending:"等待载畜折算",plan:"依据实际存栏和草畜平衡标准进行折算"},{key:"balance",index:"04",name:"平衡判定",desc:"生成结论与调控方向",pending:"等待平衡判定",plan:["healthy","watch"].includes(a.risk.key)?"判定平衡状态并生成监测方案":"判定超载风险并生成调控方案"}]}),Q=o(()=>V.value[Math.min($.value,V.value.length-1)]||V.value[0]),Se=o(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:m.value?"草地生产力核算":k.value?"等待核算":"等待选择",state:k.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:m.value?"可利用草量折算":"分析后折算",state:p.value?"active":m.value?"done":k.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:m.value?"载畜压力折算":"等待折算",state:p.value?"active":m.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:m.value?c.value.risk.label:"等待判定",state:m.value?"done":"disabled"}]),Ne=o(()=>m.value?na(d.value,c.value.risk):[]),ne=o(()=>G.value.filter(a=>Number.isFinite(Number(a.overloadRate))).slice().sort((a,l)=>Number(l.overloadRate)-Number(a.overloadRate)).slice(0,10)),Be=o(()=>Math.max(1,...ne.value.map(a=>Math.max(0,Number(a.overloadRate)||0)))),Me=o(()=>ne.value.map((a,l)=>j(B({},a),{rank:l+1})));function Ee(a){const l=Math.max(0,Number(a==null?void 0:a.overloadRate)||0);return Math.max(6,Math.min(100,l/Be.value*100))}function Pe(a){const l=Number(a==null?void 0:a.overloadRate);return Number.isFinite(l)?l>=2.5?"is-alert":l>=2?"is-warning":"is-stable":"is-empty"}function X(){x.value=typeof window=="undefined"?1080:window.innerHeight}la(()=>{X(),window.addEventListener("resize",X),h("loading-progress",{progress:100}),h("map-ready"),Ve()}),ta(()=>{M=!0,window.removeEventListener("resize",X),Y+=1,D+=1,H()}),ce(()=>{var a;return(a=d.value)==null?void 0:a.key},()=>{b.value="idle",R.value=0,$.value=0,A.value="",I=null,H()}),ce(()=>u.active,a=>{a||!p.value||(b.value="idle",R.value=0,$.value=0,A.value="",I=null,H())});function ze(a){C.value=a,_.value="",b.value="idle",A.value=""}function Te(a){a&&(C.value=["county","town","village"].includes(a.type)?a.type:"county",_.value=a.key,b.value="idle",A.value="")}function qe(){if(!u.active||!d.value||p.value)return;b.value="running",R.value=0,$.value=0,A.value="",H();const a=Date.now();let l=!1;const t=Ie().catch(s=>(l=!0,console.warn("[grassLivestockBalance] fallback balance row used",s),A.value="接口暂不可用,已使用本地兜底口径",d.value));I=t,L=window.setInterval(()=>{if(M)return;const s=I===t?92:100;R.value=Math.min(s,R.value+2),$.value=Math.min(V.value.length-1,Math.floor(R.value/25))},140),t.finally(()=>E(this,null,function*(){var v;const s=en-(Date.now()-a);if(s>0&&(yield new Promise(w=>window.setTimeout(w,s))),!(M||b.value!=="running"||I!==t)){if(I=null,H(),!d.value){R.value=0,$.value=0,b.value="idle";return}!l&&!q.value[(v=d.value)==null?void 0:v.key]&&(A.value="未查询到接口结果,已使用本地兜底口径"),R.value=100,$.value=V.value.length-1,b.value="done"}}))}function Ie(){return E(this,null,function*(){const a=d.value;if(!a)throw new Error("请先选择具体核算对象");if(q.value[a.key])return q.value[a.key];const l=++Y,t=yield va({areaCode:a.areaCode});if(M||l!==Y)return null;if(!t||typeof t!="object"||!Object.keys(t).length)throw new Error("未查询到该对象的草畜平衡结果");return q.value=j(B({},q.value),{[a.key]:t}),t})}function Ve(){return E(this,null,function*(){const a=++D,l=G.value.filter(t=>t==null?void 0:t.areaCode).map(t=>B({},t));if(l.length)try{const t=yield Promise.all(l.map(s=>E(this,null,function*(){try{const v=yield da(s.areaCode);return M||a!==D?[]:De(v,s)}catch(v){return[]}})));if(M||a!==D)return;U.value=t.flat()}catch(t){if(M||a!==D)return;U.value=[]}})}function De(a=[],l={}){const s=(Array.isArray(a)?a:[]).filter(v=>{const w=le(v),se=te(v);return!!(w||se)}).map((v,w)=>Ke(v,w,l)).filter(Boolean);return He(s,l)}function He(a=[],l={}){const t=new Map;return a.forEach(s=>{const v=je(s,l),w=t.get(v);if(!w){t.set(v,j(B({},s),{duplicateSources:[s.source].filter(Boolean)}));return}const Oe=!w.areaCode&&s.areaCode?B(B({},w),s):w;t.set(v,j(B({},Oe),{duplicateSources:[...w.duplicateSources||[],s.source].filter(Boolean)}))}),[...t.values()]}function je(a={},l={}){const t=String(a.name||"").replace(/\s+/g,"").trim();return`${String(a.township||l.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${t||a.areaCode||"unknown-village"}`}function Ke(a={},l=0,t={}){const s=le(a),v=te(a)||(s?`村级区划${s}`:"");return!s&&!v?null:{key:`village-${s||`${t.key||t.name}-${v}-${l}`}`,type:"village",name:v,areaCode:s,township:t.name,source:a,year:"2026"}}function le(a={}){return String(oe(a,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function te(a={}){return String(oe(a,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function H(){L&&(window.clearInterval(L),L=null)}function Le(a){return m.value||p.value&&a<=$.value}function Fe(a){return a<$.value||m.value?"done":a===$.value&&p.value?"active":"pending"}return(a,l)=>(y(),f("div",ya,[l[15]||(l[15]=e("div",{class:"balance-backdrop","aria-hidden":"true"},[e("div",{class:"balance-orbit is-left"}),e("div",{class:"balance-orbit is-right"}),e("div",{class:"balance-energy-band"})],-1)),e("div",{class:"balance-screen",style:T({"--balance-card-height":`${g.value}px`})},[ve(ue,{class:"balance-card balance-target-card",title:"核算对象",width:Ga,height:W.value},{default:de(()=>{var t;return[e("div",fa,[e("div",ga,[(y(!0),f(P,null,z(ae.value,s=>(y(),f("button",{key:s.key,type:"button",class:S({active:C.value===s.key}),onClick:v=>ze(s.key)},r(s.name),11,ma))),128))]),e("div",ba,[(y(!0),f(P,null,z(ge.value,s=>{var v;return y(),f("button",{key:s.key,type:"button",class:S({active:s.key===((v=d.value)==null?void 0:v.key)}),title:s.name,onClick:w=>Te(s)},[e("span",null,r(s.name),1)],10,pa)}),128))]),e("div",ka,[l[0]||(l[0]=e("span",null,"当前对象",-1)),e("strong",null,r(((t=d.value)==null?void 0:t.name)||"未选择"),1),e("small",null,r(pe.value),1),e("button",{type:"button",disabled:!k.value||p.value,onClick:qe},r(p.value?"分析中...":m.value?"重新分析":"开始分析"),9,ha)])])]}),_:1},8,["height"]),ve(ue,{class:"balance-card balance-sheet-card",title:ke.value,width:Qa,height:g.value},{default:de(()=>[e("div",{class:S(["balance-sheet",{"is-ready":m.value,"is-running":p.value}])},[l[14]||(l[14]=e("div",{class:"balance-field-lines","aria-hidden":"true"},[e("i"),e("i"),e("i")],-1)),p.value?(y(),f("section",wa,[e("div",_a,[e("div",{class:"balance-core-ring is-running",style:T({"--usage-angle":`${R.value*3.6}deg`})},[e("div",Ra,[l[1]||(l[1]=e("span",null,"分析进度",-1)),e("strong",null,r(R.value)+"%",1),e("small",null,r(Q.value.name),1)])],4),e("div",Aa,[e("span",null,r(d.value.name),1),e("strong",null,r(Q.value.desc),1),e("small",null,r(Q.value.plan),1),e("div",Ca,[e("i",{style:T({width:`${R.value}%`})},null,4)])])]),e("div",$a,[(y(!0),f(P,null,z(V.value,(t,s)=>(y(),f("div",{key:t.key,class:S(["balance-live-step",`is-${Fe(s)}`])},[e("span",null,r(t.index),1),e("div",null,[e("strong",null,r(t.name),1),e("p",null,r(Le(s)?t.plan:t.pending),1)])],2))),128))])])):m.value?(y(),f("section",Ea,[e("div",Pa,[e("div",za,[e("span",null,r(me.value)+"核算对象",1),e("strong",null,r(d.value.name),1),e("small",null,r(be.value),1)]),e("div",Ta,[e("div",{class:"balance-core-ring",style:T({"--usage-angle":$e.value})},[e("div",qa,[l[5]||(l[5]=e("span",null,"承载利用率",-1)),e("strong",null,r(K(O)(c.value.usageRate)),1),e("small",null,"超载率 "+r(K(O)(c.value.overloadRate)),1)])],4),l[6]||(l[6]=e("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),e("div",{class:S(["balance-verdict-card",`is-${c.value.risk.key}`])},[l[7]||(l[7]=e("span",null,"分析结论",-1)),e("strong",null,r(c.value.risk.label),1),e("small",null,r(Ae.value),1)],2)]),e("div",Ia,[e("div",Va,[l[8]||(l[8]=e("span",null,"理论承载力",-1)),e("div",null,[e("i",{style:T({width:`${c.value.bearingPercent}%`})},null,4)]),e("strong",null,r(K(Z)(c.value.bearing)),1)]),e("div",Da,[l[9]||(l[9]=e("span",null,"实际载畜量",-1)),e("div",null,[e("i",{style:T({width:`${c.value.livestockPercent}%`})},null,4)]),e("strong",null,r(K(Z)(c.value.livestock)),1)])]),e("div",Ha,[e("div",ja,[e("div",Ka,[l[10]||(l[10]=e("span",null,"分析过程",-1)),e("small",null,r(d.value.year||"当前年度"),1)]),e("div",La,[(y(!0),f(P,null,z(Se.value,t=>(y(),f("span",{key:`track-${t.key}`,class:S(`is-${t.state}`)},r(t.name),3))),128))]),(y(!0),f(P,null,z(xe.value,t=>(y(),f("div",{key:t.key,class:"balance-formula-row"},[e("span",null,r(t.index),1),e("div",null,[e("strong",null,r(t.name),1),e("p",null,r(t.desc),1)])]))),128))]),e("div",Fa,[e("div",Oa,[l[11]||(l[11]=e("span",null,"结论与建议",-1)),e("small",null,r(Ce.value),1)]),e("div",Ja,[e("strong",null,r(c.value.risk.description),1),e("p",null,r(Re.value),1)]),e("div",Wa,[(y(!0),f(P,null,z(Ne.value,(t,s)=>(y(),f("div",{key:`${t}-${s}`,class:"balance-advice-item"},[e("span",null,r(s+1),1),e("p",null,r(t),1)]))),128))])]),e("div",Ua,[l[13]||(l[13]=e("div",{class:"balance-section-title"},[e("span",null,"超载率排行"),e("small",null,"乡镇 Top10")],-1)),e("div",Ya,[(y(!0),f(P,null,z(Me.value,t=>(y(),f("div",{key:`overload-${t.key||t.name}`,class:S(["balance-rank-row",Pe(t)]),style:T({"--rank-progress":`${Ee(t)}%`})},[e("span",null,r(t.rank),1),e("strong",null,r(t.name),1),l[12]||(l[12]=e("div",null,[e("i")],-1)),e("em",null,r(K(O)(t.overloadRate)),1)],6))),128))])])])])):(y(),f("section",xa,[e("div",Sa,[e("div",Na,[e("div",Ba,[e("span",null,r(he.value),1),e("strong",null,r(k.value?d.value.name:"草畜平衡"),1),e("small",null,r(k.value?"待执行模型分析":"等待核算对象"),1)])]),e("h2",null,r(we.value),1),e("p",null,r(_e.value),1)]),e("div",Ma,[e("span",{class:S({active:k.value})},"对象锁定",2),l[2]||(l[2]=e("i",null,null,-1)),e("span",{class:S({active:k.value})},"等待启动分析",2),l[3]||(l[3]=e("i",null,null,-1)),l[4]||(l[4]=e("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{un as default}; diff --git a/docs/assets/index-d0c7091a-1784043664472.js b/docs/assets/index-d0c7091a-1784043664472.js new file mode 100644 index 0000000..bd4c7f9 --- /dev/null +++ b/docs/assets/index-d0c7091a-1784043664472.js @@ -0,0 +1,16 @@ +var Yt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ye=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,o,a)=>o in e?Yt(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,P=(e,o)=>{for(var a in o||(o={}))ct.call(o,a)&&ut(e,a,o[a]);if(ye)for(var a of ye(o))dt.call(o,a)&&ut(e,a,o[a]);return e},ve=(e,o)=>Qt(e,Jt(o));var mt=(e,o)=>{var a={};for(var l in e)ct.call(e,l)&&o.indexOf(l)<0&&(a[l]=e[l]);if(e!=null&&ye)for(var l of ye(e))o.indexOf(l)<0&&dt.call(e,l)&&(a[l]=e[l]);return a};var X=(e,o,a)=>new Promise((l,s)=>{var c=_=>{try{p(a.next(_))}catch(g){s(g)}},h=_=>{try{p(a.throw(_))}catch(g){s(g)}},p=_=>_.done?l(_.value):Promise.resolve(_.value).then(c,h);p((a=a.apply(e,o)).next())});import{_ as bt,o as m,c as f,a as r,t as E,r as pe,b as x,d as k,w as We,p as ft,i as ht,n as B,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Zt,m as Xt,q as ea,s as q,v as N,x as Le,F as ge,y as De,z as ta,A as Fe,B as aa,C as na,D as z,E as oa,G as H}from"./index-1784043664472.js";import{g as te}from"./index-e9f36657-1784043664472.js";const gt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg",import.meta.url).href,pt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1784043664472.svg",import.meta.url).href;/** + * @name: autofit.js + * @author: Larry Zhu + * @version: 3.2.8 + * @description: autofit.js 是迄今为止最易用的自适应工具 + * @license: MIT + */let Ie=null,ne="",ze="",He="",Pe=null,wt=null,$=1,ee=!1;const ke={isAutofitRunning:!1,init(e={},o=!0){o&&console.log("autofit.js is running");const{dw:a=1920,dh:l=1080,el:s=typeof e=="string"?e:"body",resize:c=!0,ignore:h=[],transition:p="none",delay:_=0,limit:g=.1,cssMode:v="scale",allowScroll:w=!1}=e;Ie=s;const u=document.querySelector(s);if(!u){console.error(`autofit: '${s}' is not exist`);return}const b=document.createElement("style"),M=document.createElement("style");b.lang="text/css",M.lang="text/css",b.id="autofit-style",M.id="ignoreStyle",!w&&(b.innerHTML="body {overflow: hidden;}");const V=document.querySelector("body");V.appendChild(b),V.appendChild(M),u.style.height=`${l}px`,u.style.width=`${a}px`,u.style.transformOrigin="0 0",!w&&(u.style.overflow="hidden"),qe(a,l,u,h,g,v),Pe=()=>{clearTimeout(wt),_!=0?wt=setTimeout(()=>{qe(a,l,u,h,g,v),ee&&Oe(ne,He,ze)},_):(qe(a,l,u,h,g,v),ee&&Oe(ne,He,ze))},c&&window.addEventListener("resize",Pe),this.isAutofitRunning=!0,setTimeout(()=>{u.style.transition=`${p}s`})},off(e="body"){try{window.removeEventListener("resize",Pe);const o=document.querySelector("#autofit-style");o&&o.remove();const a=document.querySelector("#ignoreStyle");a&&a.remove();const l=document.querySelector(Ie||e);l&&(l.style.cssText=""),ee&&Tt()}catch(o){console.error("autofit: Failed to remove normally",o)}this.isAutofitRunning=!1,console.log("autofit.js is off")},elRectification:null,scale:$};function Oe(e,o=!0,a=1){if(!ke.isAutofitRunning){console.error("autofit.js:(elRectification): autofit has not been initialized yet");return}Tt(),!e&&console.error(`autofit.js:elRectification bad selector: ${e}`),ne=e,ze=a,He=o;const l=Array.from(document.querySelectorAll(e));if(l.length==0){console.error(`autofit.js:elRectification found no element by selector: "${e}"`);return}for(const s of l){const c=$==1?1:Number($)*Number(a);ee||(s.originalWidth=s.clientWidth,s.originalHeight=s.clientHeight),o?(s.style.width=`${s.originalWidth*c}px`,s.style.height=`${s.originalHeight*c}px`):(s.style.width=`${100*c}%`,s.style.height=`${100*c}%`),s.style.transform=`translateZ(0) scale(${1/Number($)})`,s.style.transformOrigin="0 0"}ee=!0}function Tt(){if(ne){ee=!1;for(const e of Array.from(document.querySelectorAll(ne)))e.style.width="",e.style.height="",e.style.transform=""}}function qe(e,o,a,l,s,c="scale"){const h=document.documentElement.clientHeight,p=document.documentElement.clientWidth;$=p/hs?$:1,ke.scale=+$;const _=Math.round(h/Number($)),g=Math.round(p/Number($));a.style.height=`${_}px`,a.style.width=`${g}px`,c==="zoom"?a.style.zoom=`${$}`:a.style.transform=`translateZ(0) scale(${$})`;const v=document.querySelector("#ignoreStyle");v.innerHTML="";for(const w of l){const u=w;let b=u.el||u.dom;if(typeof u=="string"&&(b=u),!b||typeof b=="object"&&!Object.keys(b).length){console.error(`autofit: found invalid or empty selector/object: ${b}`);continue}const M=u.scale?u.scale:1/Number($),V=M!=$&&u.fontSize,I=M!=$&&u.width,U=M!=$&&u.height;v.innerHTML+=` +${b} { + transform: scale(${M})!important; + transform-origin: 0 0; + ${I?`width: ${I}!important;`:""} + ${U?`height: ${U}!important;`:""} + }`,V&&(v.innerHTML+=` +${b} div ,${b} span,${b} a,${b} * { + font-size: ${V}px; + }`)}}ke.elRectification=Oe;const ia={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},la={class:"svg-line-animation"},sa=["viewBox"],ra=["id"],ua=["stop-opacity"],ca=["stop-opacity"],da=["id"],ma=["r","fill"],fa=["begin","dur","path","keyPoints"],ha=["d","stroke","stroke-width","mask"];function ya(e,o,a,l,s,c){return m(),f("div",la,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${a.width} ${a.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("defs",null,[r("radialGradient",{id:s.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[r("stop",{offset:"0%","stop-color":"#fff","stop-opacity":a.dir[1]},null,8,ua),r("stop",{offset:"100%","stop-color":"#fff","stop-opacity":a.dir[0]},null,8,ca)],8,ra),r("mask",{id:s.maskId},[r("circle",{r:a.length,cx:"0",cy:"0",fill:`url(#${s.radialGradientId})`},[r("animateMotion",{begin:`${a.begin}s`,dur:`${a.duration}s`,path:a.path,rotate:"auto",keyPoints:`${a.dir[0]};${a.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,fa)],8,ma)],8,da)]),r("path",{class:"path-line",d:a.path,stroke:a.color,"stroke-width":a.strokeWidth,mask:`url(#${s.maskId})`},null,8,ha)],8,sa))])}const _e=bt(ia,[["render",ya]]);const va={class:"m-header"},ga={class:"m-header-wrap"},pa={class:"m-header-title"},wa={class:"m-header-subtext"},_a={class:"m-header-left",style:{color:"#fff"}},ka={class:"m-header-right"},ba={class:"m-header-line"},Sa={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(o,a)=>(m(),f("div",va,[r("div",ga,[r("div",pa,E(e.title),1),r("div",wa,E(e.subText),1)]),r("div",_a,[pe(o.$slots,"left")]),r("div",ka,[pe(o.$slots,"right")]),r("div",ba,[x(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),x(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Ta={class:"m-menu"},$a={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:o}){const a=o,l=e,s=k(l.defaultActive);return ft("updateActive",h=>{h!==s.value&&(s.value=h,a("select",h))}),ft("activeIndex",s),We(()=>l.defaultActive,h=>{h!==s.value&&(s.value=h)}),(h,p)=>(m(),f("div",Ta,[pe(h.$slots,"default")]))}},xa=["aria-current","onKeydown"],Ea={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const o=e,a=ht("updateActive"),l=ht("activeIndex"),s=()=>{a(o.index)};return(c,h)=>(m(),f("div",{class:B(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:s,onKeydown:[we(yt(s,["prevent"]),["enter"]),we(yt(s,["prevent"]),["space"])]},[pe(c.$slots,"default")],42,xa))}};let _t=0;const kt="webkit moz ms o".split(" ");let D,F;const Ma=typeof window=="undefined";if(Ma)D=function(){},F=function(){};else{D=window.requestAnimationFrame,F=window.cancelAnimationFrame;let e;for(let o=0;o{o(a+l)},l);return _t=a+l,s},F=function(o){window.clearTimeout(o)})}const Va={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,o,a,l){return a*(-Math.pow(2,-10*e/l)+1)*1024/1023+o}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=D(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){F(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,D(this.count)},reset(){this.startTime=null,F(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const o=e-this.startTime;this.remaining=this.localDuration-o,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(o,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(o,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(o/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(o/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),o1?this.decimal+o[1]:"",s=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;s.test(a);)a=a.replace(s,"$1"+this.separator+"$2");return this.prefix+a+l+this.suffix}},destroyed(){F(this.rAF)}};function Aa(e,o,a,l,s,c){return m(),f("span",null,E(s.displayValue),1)}const $t=bt(Va,[["render",Aa]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",$t);const Ra={class:"count-card-left"},Ca={class:"count-card-title"},La={class:"title-zh"},Da={key:0,class:"title-en"},Fa={class:"count-card-right"},Ia={class:"unit"},Pa={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const o=e,a=k(!0),l=k(!1),s=k(0);let c=null;const h=A(()=>o.info.duration||1800);We(()=>[o.info.value,o.info.zh],()=>{c&&window.clearTimeout(c),a.value=!0,l.value=!1,s.value+=1},{immediate:!0});function p(v){return v.toUpperCase()}function _(){a.value=!0,l.value=!1}function g(){a.value=!1,l.value=!0,c&&window.clearTimeout(c),c=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{c&&window.clearTimeout(c)}),(v,w)=>(m(),f("div",{class:B(["count-card",{"is-counting":a.value,"is-settled":l.value}])},[r("div",Ra,[r("div",{class:B(["count-card-icon","icon-"+e.info.icon])},null,2),r("div",Ca,[r("div",La,E(e.info.zh),1),e.info.en?(m(),f("div",Da,E(p(e.info.en)),1)):S("",!0)])]),r("div",Fa,[(m(),f("div",{class:"value",key:s.value},[x(R($t),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:h.value,separator:"",autoplay:!0,onMountedCallback:_,onCallback:g},null,8,["endVal","decimals","duration"])])),r("div",Ia,E(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛产业全链",bottomLabel:"产业全链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function qa(e){return ae.find(o=>o.key===e)||ae[1]}const Ne=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Na=12e3;function za(e,o={}){const a=new URLSearchParams;Object.entries(o).forEach(([s,c])=>{c!=null&&c!==""&&a.append(s,c)});const l=a.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Ha(a){return X(this,arguments,function*(e,o={}){const g=o,{params:l,timeout:s=Na}=g,c=mt(g,["params","timeout"]),h=new AbortController;let p=!1;const _=window.setTimeout(()=>{p=!0,h.abort()},s);try{const v=yield fetch(za(e,l),ve(P({credentials:"include"},c),{signal:h.signal,headers:P({Accept:"application/json"},c.headers||{})}));if(!v.ok){const u=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw u.code=`HTTP_${v.status}`,u.status=v.status,v.status===401&&vt(),u}const w=yield v.json();if((w==null?void 0:w.code)===401||(w==null?void 0:w.code)==="401"){const u=new Error((w==null?void 0:w.msg)||"用户未登录或授权已过期。");throw u.code="HTTP_401",u.status=401,vt(),u}return w}catch(v){if(h.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const u=new Error(p?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw u.code=p?"REQUEST_TIMEOUT":"REQUEST_ABORTED",u}throw v}finally{window.clearTimeout(_)}})}function Oa(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const Wa="/jsyApi",ja={}.VITE_AMAP_WEATHER_KEY||"b72b3e3b2023760dae2cdf2e00561812",Ka="513233";function Ba(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Oa(e)}function xt(e){var h,p,_,g;const o=(p=(h=e==null?void 0:e.data)!=null?h:e==null?void 0:e.result)!=null?p:e,a=Array.isArray(o)?o[0]:Array.isArray(o==null?void 0:o.rows)?o.rows[0]:Array.isArray(o==null?void 0:o.list)?o.list[0]:o;if(!a||typeof a!="object")return null;const l=(...v)=>v.find(w=>w!=null&&w!==""),s=l(a.temp,a.temperature,a.temperature_float,a.tempDay,a.temperatureDay),c=l(a.humidity,a.humidity_float,a.pop,a.relativeHumidity);return{condition:a.conditionDay||a.condition||a.weather||a.weatherText||"",temperature:s==null||s===""?"--":s,humidity:c==null||c===""?"--":c,windDirection:a.windDir||a.windDirection||"",windLevel:a.windLevel||a.windScale||a.windPower||"",icon:(g=(_=a.icon)!=null?_:a.weatherIcon)!=null?g:null}}function Ua(e){return X(this,null,function*(){const o=yield Ha(`${Wa}${e}`,{timeout:8e3});return xt(Ba(o))})}function Ga(){return new Promise((e,o)=>{const a=`__hongyuanWeather${Date.now()}${Math.random().toString(16).slice(2)}`,l=document.createElement("script"),s=()=>{window.clearTimeout(c),l.remove(),delete window[a]},c=window.setTimeout(()=>{s(),o(new Error("高德天气接口响应超时"))},8e3);window[a]=p=>{var g;const _=(g=p==null?void 0:p.lives)==null?void 0:g[0];if(s(),!_){o(new Error((p==null?void 0:p.info)||"高德天气暂无数据"));return}e(xt(_))},l.onerror=()=>{s(),o(new Error("高德天气接口加载失败"))};const h=new URLSearchParams({city:Ka,key:ja,extensions:"base",output:"JSON",callback:a});l.src=`https://restapi.amap.com/v3/weather/weatherInfo?${h}`,document.head.appendChild(l)})}function Ya(){return X(this,null,function*(){const e=["/api/home/realTimeWeather","/api/home/weatherForecast"];let o=null;for(const a of e)try{const l=yield Ua(a);if(l)return l}catch(l){o=l}try{const a=yield Ga();if(a)return a}catch(a){o=a}throw o||new Error("天气数据暂不可用")})}const Qa={key:0,class:"platform-module-pane"},Ja={key:1,class:"platform-module-pane"},Za={key:2,class:"platform-module-pane"},Xa={key:3,class:"platform-module-pane"},en={key:4,class:"platform-module-pane"},tn={key:5,class:"platform-module-pane"},an={key:6,class:"platform-module-pane"},nn={key:7,class:"platform-module-pane"},on={class:"large-screen-wrap"},ln={class:"m-header-tools"},sn=["src","alt"],rn={key:1,class:"platform-weather__fallback-icon","aria-hidden":"true"},un={class:"platform-weather__copy"},cn={class:"platform-weather__primary"},dn={key:0},mn={key:0},fn={key:0},hn={key:1,"aria-hidden":"true"},yn={key:2},vn={class:"platform-datetime","aria-label":"当前日期和时间"},gn={class:"top-menu"},pn={key:0,class:"top-menu-mid-space"},wn={key:1,class:"platform-map-tools","aria-label":"地图工具"},_n=["title","aria-label"],kn={key:2,class:"module-coming"},bn={class:"module-coming-title"},Sn={key:3,class:"bottom-tray"},Tn={class:"bottom-menu"},$n=["onClick"],xn={key:8,class:"loading platform-loading"},En={class:"loading-progress"},Mn={class:"value"},Vn=2,An=650,Rn={__name:"index",setup(e){const o=z(()=>H(()=>import("./index-4921f42e-1784043664472.js"),["./index-4921f42e-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./live-scene-1-16ce1514-1784043664472.js","./index.esm.min-c54f6e6e-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./data-3d6664cd-1784043664472.js","./TopicSwitcher-f0c08774-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./livestockData-36ec0ae2-1784043664472.js","./FeatureInfoPanel-479e79c5-1784043664472.js","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./openApi-928665d4-1784043664472.js","./geoserver-6574cb91-1784043664472.js","./featurePanelLayout-93409244-1784043664472.js","./yakApi-032bf70c-1784043664472.js","./chartTheme-95a980bb-1784043664472.js","./data-5c83c66b-1784043664472.js","./data-b0a5f9a8-1784043664472.js","./index-6fbdaf34-balabala-1784043664472.css"],import.meta.url)),a=z(()=>H(()=>import("./index-82127856-1784043664472.js"),["./index-82127856-1784043664472.js","./index-e9f36657-1784043664472.js","./assets-93f7396b-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./screen2Standard-cdb21878-balabala-1784043664472.css","./TopicSwitcher-f0c08774-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./openApi-928665d4-1784043664472.js","./geoserver-6574cb91-1784043664472.js","./featurePanelLayout-93409244-1784043664472.js","./LayerPanel-4a87f4f0-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./index-6e1f3341-balabala-1784043664472.css","./layout-b708cd9c-balabala-1784043664472.css"],import.meta.url)),l=z(()=>H(()=>import("./index-7103e996-1784043664472.js"),["./index-7103e996-1784043664472.js","./index-e9f36657-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index-148a2898-balabala-1784043664472.css","./townshipBoundaries-1b068bef-1784043664472.js","./featurePanelLayout-93409244-1784043664472.js","./assets-93f7396b-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./TopicSwitcher-f0c08774-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./LayerPanel-4a87f4f0-1784043664472.js","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./data-b5a92f08-1784043664472.js","./data-5c83c66b-1784043664472.js","./index-7c335907-balabala-1784043664472.css","./layout-b708cd9c-balabala-1784043664472.css"],import.meta.url)),s=z(()=>H(()=>import("./index-cd04b5b9-1784043664472.js"),["./index-cd04b5b9-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index-148a2898-balabala-1784043664472.css","./data-5c83c66b-1784043664472.js","./index-e9f36657-1784043664472.js","./index-c36df85d-balabala-1784043664472.css"],import.meta.url)),c=z(()=>H(()=>import("./index-98e33e33-1784043664472.js"),["./index-98e33e33-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index.esm.min-c54f6e6e-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./data-3d6664cd-1784043664472.js","./TopicSwitcher-f0c08774-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./livestockData-36ec0ae2-1784043664472.js","./geoserver-6574cb91-1784043664472.js","./assets-93f7396b-1784043664472.js","./index-0060e718-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./yakApi-032bf70c-1784043664472.js","./index-11333eca-balabala-1784043664472.css"],import.meta.url)),h=z(()=>H(()=>import("./index-8532142c-1784043664472.js"),["./index-8532142c-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./live-scene-1-16ce1514-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./LayerPanel-4a87f4f0-1784043664472.js","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./featurePanelLayout-93409244-1784043664472.js","./data-defd9b10-1784043664472.js","./livestockData-36ec0ae2-1784043664472.js","./index-41d168c2-balabala-1784043664472.css"],import.meta.url)),p=z(()=>H(()=>import("./index-d9d7aa94-1784043664472.js"),["./index-d9d7aa94-1784043664472.js","./index.esm.min-c54f6e6e-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./LayerPanel-4a87f4f0-1784043664472.js","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./TopicSwitcher-f0c08774-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./assets-93f7396b-1784043664472.js","./chartTheme-95a980bb-1784043664472.js","./data-5aa1bc1b-1784043664472.js","./livestockData-36ec0ae2-1784043664472.js","./index-5afedc21-balabala-1784043664472.css"],import.meta.url)),_=z(()=>H(()=>import("./index-e521f518-1784043664472.js"),["./index-e521f518-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./yakApi-032bf70c-1784043664472.js","./data-b0a5f9a8-1784043664472.js","./livestockData-36ec0ae2-1784043664472.js","./data-5c83c66b-1784043664472.js","./data-defd9b10-1784043664472.js","./data-b5a92f08-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./data-5aa1bc1b-1784043664472.js","./index-e9f36657-1784043664472.js","./index-089a3dd0-balabala-1784043664472.css"],import.meta.url)),g=Zt(),v=Xt(),w=re(g.query.module),u=k(w),b=k(w==="ecological-protection"?at(g.query.view):"ecological-redline"),M=k(w==="yak-management"?Re(g.query.view):"structure"),V=k({[w]:!0});let I=[w];const U=k({}),G=k(!0),Y=k(0),be=k(null),Se=k(null),je=k(null),Ke=k(null),Be=k(null),Ue=k(null),Ge=k(null),Ye=k(!1),Qe=k(""),Je=k(""),C=k({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),Q=k(!1),Te=k(!1);let J=null,$e=null,xe=null,oe=!1,ie=null;const Et=Date.now(),O={progress:0},Mt=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],Vt=new Set(W),d=A(()=>qa(u.value)),At=A(()=>`/images/weather/W${C.value.icon}.png`),Rt=A(()=>Q.value&&C.value.icon!==null&&!Te.value),Ee=A(()=>!["","--",null,void 0].includes(C.value.humidity)),le=A(()=>{const t=String(C.value.windDirection||"").trim(),n=String(C.value.windLevel||"").trim();return!t&&!n?"":`${t}${t&&n?" ":""}${n?`${n}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Ct=A(()=>!["smart-management","grass-livestock-balance"].includes(d.value.key)),Lt=A(()=>j.value.length===5&&(d.value.key==="home"||d.value.key==="ecological-protection"&&Me.value==="national-park")),Dt=A(()=>u.value==="ecological-protection"?Ne:ae),Me=A(()=>u.value==="ecological-protection"?b.value:u.value),j=A(()=>{const t=U.value[u.value];return Array.isArray(t)||t!=null&&t.length?t:ot([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});ea(()=>{Xe(),et(),$e=window.setInterval(Xe,1e3),xe=window.setInterval(et,30*60*1e3),J=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),jt(),fe(),Ce(),Nt(u.value)?zt(u.value):(oe=!0,Y.value=100,G.value=!1)}),St(()=>{var t;$e&&window.clearInterval($e),xe&&window.clearInterval(xe),de(),(t=J==null?void 0:J.off)==null||t.call(J,"#large-screen"),Kt(),te.killTweensOf(O)});function Xe(){const t=new Date,n=T=>String(T).padStart(2,"0"),i=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${n(t.getMonth()+1)}.${n(t.getDate())} ${i[t.getDay()]}`,Je.value=`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function et(){return X(this,null,function*(){try{C.value=yield Ya(),Q.value=!0,Te.value=!1}catch(t){Q.value=!1,console.warn("[platform] weather unavailable",t)}})}function Ft(){Te.value=!0}function Ve(t,n={}){const i=re(t),T=i==="home"&&!n.fromRoute;if(i==="yak-management"&&!n.fromRoute&&(M.value="structure"),i===u.value){T&&me(),se(i);return}u.value=i,Wt(i),se(i),T&&me(),Fe(Ce)}function Ae(t){re(t)==="home"&&u.value==="home"&&me()}function It(t){if(t!=null&&t.key){if(u.value==="ecological-protection"){tt(t.key);return}Ve(t.key)}}function tt(t){const n=Ne.some(i=>i.key===t)?t:"ecological-redline";n===b.value&&u.value==="ecological-protection"||(b.value=n,u.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Pt(t){const n=Re(t);n!==M.value&&(M.value=n,u.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,n])=>{const i=re(t);i==="ecological-protection"&&(b.value=at(n)),i==="yak-management"&&(M.value=Re(n)),i!==u.value&&Ve(i,{fromRoute:!0})});function se(t=u.value){const n=ve(P({},g.query),{module:t});t==="yak-management"?n.view=M.value:t==="ecological-protection"?n.view=b.value:delete n.view;const i=g.query||{},T=String(i.module||"")===String(n.module||"")&&String(i.view||"")===String(n.view||"");g.path==="/platform"&&T||v.replace({path:"/platform",query:n}).catch(()=>{})}function re(t){const n=Array.isArray(t)?t[0]:t;return ae.some(i=>i.key===n)?n:"home"}function Re(t){const n=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(n)?n:"structure"}function at(t){const n=Array.isArray(t)?t[0]:t;return Ne.some(i=>i.key===n)?n:"ecological-redline"}function K(t){const n=t.moduleKey||(t.topicKey?"forest-grass-wet":u.value);U.value=ve(P({},U.value),{[n]:ot(t.items||[])})}function ue(t={}){const n=typeof t=="number"?t:t.progress;qt(n)}function ce(){de(),te.killTweensOf(O),O.progress=100,Y.value=100;const t=Date.now()-Et,n=Math.max(80,An-t);window.setTimeout(nt,n)}function qt(t){if(!G.value)return;const n=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));n{Y.value=Math.floor(O.progress)}})}function nt(){if(!G.value||oe)return;de(),oe=!0;const t=te.timeline({onComplete:()=>{G.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function Nt(t){return Mt.has(t)}function zt(t){de();const n=t==="home"?12e3:8e3;ie=window.setTimeout(()=>{!G.value||oe||(te.killTweensOf(O),O.progress=100,Y.value=100,window.setTimeout(nt,120))},n)}function de(){ie&&(window.clearTimeout(ie),ie=null)}function ot(t=[]){const n=new Set;return t.slice(0,10).map((i,T)=>{var Z;const y=Number(i.value)||0,L={zh:i.zh||i.name||`指标${T+1}`,en:i.en||"",value:y,unit:i.unit||"",decimals:(Z=i.decimals)!=null?Z:Number.isInteger(y)?0:2},he=Ht(P(P({},i),L),T,n);return n.add(he),P({icon:he},L)})}function Ht(t={},n=0,i=new Set){const y=Ot(t,n).find(L=>Vt.has(L)&&!i.has(L));return y||W.find(L=>!i.has(L))||W[n%W.length]}function Ot(t={},n=0){const i=`${t.zh||t.name||""}${t.unit||""}`,T=[],y=(...he)=>{he.forEach(Z=>{Z&&!T.includes(Z)&&T.push(Z)})};y(t.icon),/风险|预警|告警/.test(i)&&y("risk","rate"),/模型|修正|共识|预测|变化|净/.test(i)&&y("rate","stack"),/率|占比|比例|超载/.test(i)&&y("rate","project"),/生态牧场|家庭生态/.test(i)&&y("leaf","town"),/出证|证书|证/.test(i)&&y("certificate","project"),/交易|销售/.test(i)&&y("yield","certificate"),/流通|出栏|流出/.test(i)&&y("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(i)&&y("device","length"),/工程长度|长度|公里/.test(i)&&y("length","project"),/修复项目|项目|工程|治理/.test(i)&&y("project","length"),/国家公园|保护范围|保护区|划定/.test(i)&&y("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(i)&&y("yield","leaf"),/湿地/.test(i)&&y("wetland","leaf"),/基本草原/.test(i)&&y("grass-basic","area"),/一般草原/.test(i)&&y("grass-general","area"),/林地|森林|公益林/.test(i)&&y("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(i)&&y("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(i)&&y("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(i)&&y("town","project"),/生态|林草/.test(i)&&y("leaf","wetland");const L=n%W.length;return y(...W.slice(L),...W.slice(0,L)),T}function Wt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(I=I.filter(n=>n!==t),I.push(t),I=I.slice(-Vn),V.value=Object.fromEntries(I.map(n=>[n,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function me(t=4){Fe(()=>{const n=Se.value;if(n!=null&&n.showDefaultThreeMap){n.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>me(t-1),80)})}const it=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function fe(){var i;const t=lt(),n=be.value;Ye.value=!!(n&&t&&(t===n||n.contains(t)||(i=t.contains)!=null&&i.call(t,n)))}function jt(){typeof document!="undefined"&&it.forEach(t=>document.addEventListener(t,fe))}function Kt(){typeof document!="undefined"&&it.forEach(t=>document.removeEventListener(t,fe))}function st(){var t,n;(n=(t=rt())==null?void 0:t.refreshMapView)==null||n.call(t)}function Bt(){return X(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const n=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield n==null?void 0:n.call(document)}else{const n=be.value||document.documentElement,i=n.requestFullscreen||n.webkitRequestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen;yield i==null?void 0:i.call(n)}}catch(n){console.warn("[platform] fullscreen toggle failed",n)}finally{fe(),window.setTimeout(st,80),window.setTimeout(st,280)}})}function Ut(){var t,n;(n=(t=rt())==null?void 0:t.resetMap)==null||n.call(t)}function rt(){return d.value.key==="home"?Se.value:d.value.key==="forest-grass-wet"?je.value:d.value.key==="ecological-protection"?Ke.value:d.value.key==="yak-management"?Be.value:d.value.key==="pasture-management"?Ue.value:d.value.key==="yak-industry-chain"?Ge.value:null}function Gt(){oa()}return(t,n)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:B(["large-screen platform-screen",{"is-home":d.value.key==="home","is-forest-grass-wet":d.value.key==="forest-grass-wet","is-ecological-protection":d.value.key==="ecological-protection","is-grass-livestock-balance":d.value.key==="grass-livestock-balance","is-yak-management":d.value.key==="yak-management","is-pasture-management":d.value.key==="pasture-management","is-yak-industry-chain":d.value.key==="yak-industry-chain","is-smart-management":d.value.key==="smart-management","is-ecology-national-park":d.value.key==="ecological-protection"&&Me.value==="national-park"}]),id:"large-screen"},[V.value.home?q((m(),f("div",Qa,[x(R(o),{ref_key:"homeDashboardRef",ref:Se,active:d.value.key==="home",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="home"]]):S("",!0),V.value["forest-grass-wet"]?q((m(),f("div",Ja,[x(R(a),{ref_key:"forestGrassWetRef",ref:je,active:d.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:K},null,8,["active"])],512)),[[N,d.value.key==="forest-grass-wet"]]):S("",!0),V.value["ecological-protection"]?q((m(),f("div",Za,[x(R(l),{ref_key:"ecologicalProtectionRef",ref:Ke,active:d.value.key==="ecological-protection","active-view":b.value,"show-loading":!1,onModuleStats:K,onViewChange:tt},null,8,["active","active-view"])],512)),[[N,d.value.key==="ecological-protection"]]):S("",!0),V.value["grass-livestock-balance"]?q((m(),f("div",Xa,[x(R(s),{active:d.value.key==="grass-livestock-balance",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="grass-livestock-balance"]]):S("",!0),V.value["yak-management"]?q((m(),f("div",en,[x(R(c),{ref_key:"yakManagementRef",ref:Be,active:d.value.key==="yak-management","view-key":M.value,onModuleStats:K,onViewChange:Pt},null,8,["active","view-key"])],512)),[[N,d.value.key==="yak-management"]]):S("",!0),V.value["pasture-management"]?q((m(),f("div",tn,[x(R(h),{ref_key:"pastureManagementRef",ref:Ue,active:d.value.key==="pasture-management",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="pasture-management"]]):S("",!0),V.value["yak-industry-chain"]?q((m(),f("div",an,[x(R(p),{ref_key:"yakIndustryChainRef",ref:Ge,active:d.value.key==="yak-industry-chain",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="yak-industry-chain"]]):S("",!0),V.value["smart-management"]?q((m(),f("div",nn,[x(R(_),{active:d.value.key==="smart-management"},null,8,["active"])],512)),[[N,d.value.key==="smart-management"]]):S("",!0),r("div",on,[x(Sa,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[r("div",ln,[r("div",{class:B(["platform-weather",{"is-unavailable":!Q.value}])},[Rt.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:At.value,alt:C.value.condition||"天气",onError:Ft},null,40,sn)):(m(),f("span",rn)),r("div",un,[r("div",cn,[r("strong",null,E(Q.value?C.value.condition||"实时天气":"天气暂无数据"),1),Q.value?(m(),f("em",dn,E(C.value.temperature)+"℃",1)):S("",!0)]),Ee.value||le.value?(m(),f("small",mn,[Ee.value?(m(),f("span",fn,"湿度 "+E(C.value.humidity)+"%",1)):S("",!0),Ee.value&&le.value?(m(),f("i",hn)):S("",!0),le.value?(m(),f("span",yn,E(le.value),1)):S("",!0)])):S("",!0)])],2),r("div",vn,[r("strong",null,E(Je.value),1),r("span",null,E(Qe.value),1)]),r("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Gt},[...n[0]||(n[0]=[r("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[r("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),r("path",{d:"M16 17l5-5-5-5"}),r("path",{d:"M21 12H9"})],-1)])])])]),_:1}),r("div",gn,[x($a,{"default-active":u.value,onSelect:Ve},{default:Le(()=>[(m(!0),f(ge,null,De(R(ae),(i,T)=>(m(),f(ge,{key:i.key},[x(Ea,{index:i.key,onClick:y=>Ae(i.key),onKeydown:[we(y=>Ae(i.key),["enter"]),we(y=>Ae(i.key),["space"])]},{default:Le(()=>[aa(E(i.label),1)]),_:2},1032,["index","onClick","onKeydown"]),T===3?(m(),f("div",pn)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(d.value.key)?(m(),f("div",{key:0,class:B(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Lt.value}])},[(m(!0),f(ge,null,De(j.value,i=>(m(),na(Pa,{key:i.zh,info:i},null,8,["info"]))),128))],2)):S("",!0),Ct.value?(m(),f("div",wn,[r("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Bt},[...n[1]||(n[1]=[r("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,_n),r("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Ut},[...n[2]||(n[2]=[r("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),d.value.status!=="ready"?(m(),f("div",kn,[r("div",bn,E(d.value.label),1),n[3]||(n[3]=r("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(d.value.key)?S("",!0):(m(),f("div",Sn,[x(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),x(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),n[4]||(n[4]=r("div",{class:"bottom-tray-arrow"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1)),r("div",Tn,[(m(!0),f(ge,null,De(Dt.value,i=>(m(),f("div",{key:i.key,class:B(["bottom-menu-item",{"is-active":i.key===Me.value}]),onClick:T=>It(i)},[r("span",null,E(i.bottomLabel),1)],10,$n))),128))]),n[5]||(n[5]=r("div",{class:"bottom-tray-arrow is-reverse"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1))])),n[6]||(n[6]=r("div",{class:"large-screen-left-zsline"},null,-1)),n[7]||(n[7]=r("div",{class:"large-screen-right-zsline"},null,-1))]),G.value?(m(),f("div",xn,[n[9]||(n[9]=ta('
    LOADING
    ',1)),r("div",En,[r("span",Mn,E(Y.value),1),n[8]||(n[8]=r("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Fn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));export{gt as _,pt as a,Fn as i,Oa as n,Ha as r}; diff --git a/docs/assets/index-d2259c0a-1783995319167.js b/docs/assets/index-d2259c0a-1783995319167.js deleted file mode 100644 index 2dc5f29..0000000 --- a/docs/assets/index-d2259c0a-1783995319167.js +++ /dev/null @@ -1,2 +0,0 @@ -import{b6 as $,b7 as Q,b8 as U,b9 as x,aI as h,b5 as l,aJ as b,ba as z,bb as X,bc as Y,bd as ee,be as p,bf as te,aK as ae,aE as ne,aF as le}from"./chartTheme-0e0a1707-1783995319167.js";import{_ as oe,o as i,c as s,a as t,F as u,k as g,u as B,l as m,b as L,v as O,n as F,m as re,g as N,t as r,q as y}from"./index-1783995319167.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},be={class:"guide-band-list"},ve={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=l,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Q({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:U({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:M({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:E()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:q()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:J()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:K()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],v=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:l[0]},{name:"林地",percent:24,color:l[1]},{name:"湿地",percent:14,color:l[2]},{name:"保护地",percent:10,color:l[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},T=[{name:"正常",value:"128",percent:100,color:l[0]},{name:"关注",value:"36",percent:45,color:l[2]},{name:"预警",value:"12",percent:18,color:l[4]}],D=[{name:"草地修复",percent:92,color:l[0]},{name:"湿地巡护",percent:86,color:l[1]},{name:"林地管护",percent:78,color:l[2]},{name:"风险处置",percent:94,color:l[3]}];function H(o){return`C${String(o+1).padStart(2,"0")}`}function C(o){return f[o.size||"standard"]||f.standard}function I(o={}){const n=v.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(o.value)||0)/n*100).toFixed(1)}%`}function M({rows:o=[],unit:n="",name:a="结构占比"}={}){const c=o.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:l,tooltip:b(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=o.find(j=>j.name===e),Z=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${Z}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:o.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||l[d%l.length]}}))}]})}function E(){const o=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:l,tooltip:b(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:o}]})}function q(){const o=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:l,grid:X({left:40,right:18,top:22,bottom:34}),tooltip:b(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:Y(o),yAxis:ee(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:te(l[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function J(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:l[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function K(){return h({tooltip:b(o=>`${o.marker}${o.name}:${o.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:l[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% -完成`,color:"#ffe06b",fontSize:22,lineHeight:30,fontWeight:700},data:[{value:1,itemStyle:{color:"rgba(255, 224, 107, .28)"}}]}]})}return(o,n)=>(i(),s("div",ie,[n[1]||(n[1]=t("div",{class:"guide-bg guide-bg-grid"},null,-1)),n[2]||(n[2]=t("div",{class:"guide-bg guide-bg-glow"},null,-1)),t("header",se,[n[0]||(n[0]=t("div",null,[t("div",{class:"guide-kicker"},"Chart Style System"),t("h1",null,"图表样式规范")],-1)),t("div",ue,[(i(!0),s(u,null,g(B(P),a=>(i(),s("span",{key:a,style:m({background:a})},null,4))),128))])]),t("main",ce,[t("section",de,[(i(),s(u,null,g(A,(a,c)=>L(le,{key:a.key,class:F(["guide-chart-card",`is-${a.size||"standard"}`]),width:C(a).width,height:C(a).height,title:`${H(c)} ${a.title}`,"data-unit":a.unit},{default:O(()=>[t("div",{class:F(["guide-card-content",a.visual?`is-${a.visual}`:""])},[a.option?(i(),re(B(ae),{key:0,class:"guide-chart",option:a.option,autoresize:""},null,8,["option"])):N("",!0),a.visual==="three-pie"?(i(),s(u,{key:1},[t("div",ge,[L(ne,{data:v,colors:w,delay:3e3,opacity:.62,class:"guide-three-pie"},{default:O(({data:e})=>[t("div",me,[t("strong",null,r(I(e)),1),t("span",null,r((e==null?void 0:e.name)||"结构占比"),1)])]),_:1})]),t("div",pe,[(i(),s(u,null,g(v,(e,d)=>t("div",{key:e.name},[t("i",{style:m({borderColor:w[d]})},null,4),t("span",null,r(e.name),1),t("strong",null,[y(r(e.value),1),t("em",null,r(e.unit),1)])])),64))])],64)):a.visual==="structure-band"?(i(),s(u,{key:2},[t("div",he,[(i(),s(u,null,g(_,e=>t("i",{key:e.name,style:m({width:`${e.percent}%`,background:e.color})},null,4)),64))]),t("div",be,[(i(),s(u,null,g(_,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(r(e.name),1)]),t("strong",null,r(e.percent)+"%",1)])),64))])],64)):a.visual==="rank-list"?(i(),s(u,{key:3},g(V,(e,d)=>t("div",{key:e.name,class:"guide-rank-row"},[t("span",null,r(d+1),1),t("em",null,r(e.name),1),t("i",null,[t("b",{style:m({width:`${e.percent}%`})},null,4)]),t("strong",null,r(e.value),1)])),64)):a.visual==="warning-band"?(i(),s(u,{key:4},[t("div",ve,[t("strong",null,r(S.value),1),t("span",null,r(S.name),1)]),t("div",ye,[(i(),s(u,null,g(T,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(r(e.name),1)]),t("em",null,r(e.value),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)])])),64))])],64)):a.visual==="target-stack"?(i(),s(u,{key:5},g(D,e=>t("div",{key:e.name,class:"guide-target-row"},[t("span",null,r(e.name),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)]),t("strong",null,r(e.percent)+"%",1)])),64)):N("",!0)],2)]),_:2},1032,["class","width","height","title","data-unit"])),64))])])]))}},Se=oe(fe,[["__scopeId","data-v-1d923a5c"]]);export{Se as default}; diff --git a/docs/assets/index-d9d7aa94-1784043664472.js b/docs/assets/index-d9d7aa94-1784043664472.js new file mode 100644 index 0000000..483e8f4 --- /dev/null +++ b/docs/assets/index-d9d7aa94-1784043664472.js @@ -0,0 +1,2 @@ +var Ft=Object.defineProperty,Ct=Object.defineProperties;var Pt=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Lt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var ze=(b,m,g)=>m in b?Ft(b,m,{enumerable:!0,configurable:!0,writable:!0,value:g}):b[m]=g,x=(b,m)=>{for(var g in m||(m={}))Lt.call(m,g)&&ze(b,g,m[g]);if(Ve)for(var g of Ve(m))Tt.call(m,g)&&ze(b,g,m[g]);return b},S=(b,m)=>Ct(b,Pt(m));var U=(b,m,g)=>new Promise((R,P)=>{var V=N=>{try{q(g.next(N))}catch(O){P(O)}},j=N=>{try{q(g.throw(N))}catch(O){P(O)}},q=N=>N.done?R(N.value):Promise.resolve(N.value).then(V,j);q((g=g.apply(b,m)).next())});import{H as Ke}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as De}from"./index-e3442fcf-1784043664472.js";import{M as Nt}from"./index-0060e718-1784043664472.js";import{a as Ge,_ as $t}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{_ as At}from"./LayerPanel-4a87f4f0-1784043664472.js";import{_ as Ht}from"./TopicSwitcher-f0c08774-1784043664472.js";import{A as Bt}from"./assets-93f7396b-1784043664472.js";import{g as ge}from"./townshipBoundaries-1b068bef-1784043664472.js";import{q as ee,r as Rt,s as Ie}from"./screen2Standard-15e4461a-1784043664472.js";import{w as Vt,f as zt,l as We,m as Ue,n as Kt,o as Dt,p as Gt,q as It,s as Ee,e as me}from"./chartTheme-95a980bb-1784043664472.js";import{g as Ye,a as Wt,i as Ut,b as Et,c as pe,d as we,e as Yt}from"./data-5aa1bc1b-1784043664472.js";import{g as f,w as be,q as jt,h as qt,A as le,o as i,c as u,b as ie,a as l,j as T,F as M,y as F,C as E,x as je,u as oe,n as Y,t as c,J as ue,d as C}from"./index-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./index-e9f36657-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.js";const Ot={class:"yak-industry-chain"},Jt={key:0,class:"industry-map-loading"},Xt={key:1,class:"fgw-left industry-side-panel industry-side-panel--left"},Zt={class:"fgw-side-stack industry-side-stack is-left"},Qt={key:1,class:"industry-panel-empty"},ea={key:3,class:"industry-featured-base-list"},ta=["disabled","aria-label","onClick"],aa={class:"industry-featured-base__index"},na={class:"industry-featured-base__copy"},sa={key:4,class:"industry-leadership-mode-list"},ra={key:5,class:"industry-ledger-list"},la={key:2,class:"fgw-right industry-side-panel industry-side-panel--right"},ia={class:"fgw-side-stack industry-side-stack is-right"},oa={key:1,class:"industry-panel-empty"},ua={key:3,class:"industry-featured-base-list"},ca=["disabled","aria-label","onClick"],da={class:"industry-featured-base__index"},ya={class:"industry-featured-base__copy"},fa={key:4,class:"industry-leadership-mode-list"},ha={key:5,class:"industry-ledger-list"},va={key:3,class:"industry-artificial-layer-tools"},ga={class:"industry-point-detail__head"},ma={class:"industry-point-detail__name"},pa={key:0,class:"industry-point-detail__profile"},wa={class:"industry-point-detail__profile-head"},ba=["src","alt"],_a={class:"industry-point-detail__facts"},ka={class:"industry-point-detail__highlights"},xa={class:"industry-bottom-switcher"},Da={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(b,{expose:m,emit:g}){const R=b,P=g,V=ee.sideCardWidth,j=C(typeof window=="undefined"?1080:window.innerHeight),q=ee.sideCardGap,N=ee.sidePanelTop,O=ee.sidePanelBottom,qe=ee.sideCardMinHeight,J=f(()=>Rt(j.value)),ce=f(()=>Ie(J.value,2)),Oe=f(()=>Ie(J.value,4)),y=C("family-pasture"),p=C(null),z=C(!1),h=C(null),L=C(""),X=C({x:0,y:0}),$=C(null),Z=C({x:0,y:0}),K=C(!1),D=C(["artificial-grassland-plots"]);let te=null,de=!1,G=!1,A=null,_=null,ye=!1;const I=f(()=>Ye(y.value));f(()=>y.value==="family-pasture");const Q=f(()=>y.value==="artificial-grassland"),Je=f(()=>[{key:"artificial-grassland-plots",name:"待核定种草图斑",color:"#30DCFF",stroke:"#C9FBFF"},{key:"yak-industry-points",name:"人工种草基地点",color:"#19FFC6",stroke:"#B7FFF2"}]),Xe=f(()=>[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1},{key:"artificial-grassland-base",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",selectable:!1}]),Ze=f(()=>Wt(y.value)),_e=f(()=>it(Ze.value)),ke=f(()=>{const e=_e.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Se(t,e.length))}),xe=f(()=>{const e=_e.value.right;return e.map(t=>Se(t,e.length))}),Qe=f(()=>{var n,a,s;const e=ge("yak-industry-chain","yak-industry-points");if(Q.value){const r=[];if(D.value.includes("artificial-grassland-plots")){const v=ge("yak-industry-chain","artificial-grassland-plots");v&&r.push(S(x({},v),{activeLegend:(n=v.legends)==null?void 0:n[0]}))}if(D.value.includes("yak-industry-points")&&e){const v=(a=e.legends)==null?void 0:a.find(k=>k.key==="yak-industry-artificial-grassland");r.push(S(x({},e),{showPointLabels:!1,activeLegend:v}))}if(!r.length)return null;const[d,...o]=r;return S(x({},d),{overlayLayers:o})}const t=(s=e==null?void 0:e.legends)==null?void 0:s.find(r=>{var d;return((d=r.match)==null?void 0:d.value)===y.value||r.key===`yak-industry-${y.value}`});return e&&S(x({},e),{hidePointFeatures:y.value==="family-pasture",hidePointMarkers:y.value==="family-pasture",showPointLabels:y.value==="family-pasture"?!1:e.showPointLabels,activeLegend:t||{key:`yak-industry-empty-${y.value}`,name:I.value.name,fillColor:I.value.color,strokeColor:I.value.color,match:{field:"stageKey",value:y.value}}})}),et=f(()=>Ut.map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),tt=f(()=>{const e=y.value==="family-pasture",t=Q.value&&D.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Q.value||t,showMissingTownStats:e,title:e?"家庭生态牧场":`${I.value.name}排行`,metricLabel:e?"生态牧场":I.value.metricLabel,unit:I.value.unit,rows:e?Et():[]}}),w=f(()=>{var e;return pe(S(x({},h.value||{}),{featuredBaseKey:L.value||((e=h.value)==null?void 0:e.featuredBaseKey)}))}),ae=f(()=>{const e=h.value;if(!e)return[];if(w.value){const t=w.value,n=we(e).filter(a=>["设计存栏","年出栏量"].includes(a.label));return[{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...n].filter(a=>a.value!==void 0&&a.value!==null&&String(a.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"所在乡镇",value:B(e.town)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"所属环节",value:B(e.stageName)},{label:"主体类型",value:B(e.categoryName)},{label:"所在乡镇",value:B(e.town)},{label:"能力规模",value:St(e)},{label:"运行状态",value:B(e.status)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),at=f(()=>{var e,t;return w.value?"重点示范基地":B(((e=h.value)==null?void 0:e.categoryName)||((t=h.value)==null?void 0:t.stageName))}),nt=f(()=>{var e,t;return((e=w.value)==null?void 0:e.name)||B((t=h.value)==null?void 0:t.name)}),st=f(()=>{var Re;const t=((Re=h.value)==null?void 0:Re.categoryCode)==="YC-FAMILY-PASTURE",n=ae.value.filter(Mt=>Mt.wide).length,a=Math.ceil(Math.max(0,ae.value.length-n)/2)+n,s=w.value?w.value.image?576:532:t?Math.min(400,Math.max(318,150+a*38)):Math.min(520,Math.max(252,116+ae.value.length*40)),r=24,d=28,o={x:Math.max(r,Math.min(1920-r,Number(X.value.x||0))),y:Math.max(r,Math.min(1080-r,Number(X.value.y||0)))},v=V+46,k=1920-V-46,H=Math.min(Math.max(o.x-456/2,v),k-456),W=Math.min(Math.max(o.y-s-d,128),1080-s-116),ve=Math.min(Math.max(o.x-H,34),456-34);return{left:`${H}px`,top:`${W}px`,"--point-arrow-left":`${ve}px`,"--point-arrow-top":"100%","--point-arrow-x":"-50%","--point-arrow-y":"-8px","--point-arrow-rotate":"45deg"}}),rt=f(()=>{const o={x:Math.max(452,Math.min(1468,Number(Z.value.x||960))),y:Math.max(128,Math.min(960,Number(Z.value.y||540)))},v=Math.min(Math.max(o.x-460/2,452),1468-460),k=o.y-374-26,H=k>=116,W=H?k:Math.min(Math.max(o.y+26,116),944-374),ve=Math.min(Math.max(o.x-v,26),460-26);return{left:`${v}px`,top:`${W}px`,"--feature-arrow-left":`${ve}px`,"--feature-arrow-top":H?`${374-6}px`:"-6px","--feature-arrow-rotate":H?"45deg":"225deg"}});be(y,e=>{vt(e)},{immediate:!0}),jt(()=>{fe(),window.addEventListener("resize",fe),gt()}),qt(()=>{var e,t;ye=!0,window.removeEventListener("resize",fe),A&&window.clearTimeout(A),_&&window.cancelAnimationFrame(_),(t=(e=p.value)==null?void 0:e.destroyMap)==null||t.call(e)}),be(()=>R.active,e=>{var t,n,a,s;p.value&&(e?(he(),(n=(t=p.value).resume)==null||n.call(t)):(s=(a=p.value).pause)==null||s.call(a))}),be(D,()=>{se()},{deep:!0});function lt(e){e!==y.value&&(y.value=e,se())}function it(e={}){const t=Me(e.left),n=Me(e.right);if(n.length)return{left:t,right:n};const a=[...t,...n];return a.length<=4?{left:a,right:[]}:{left:t,right:n}}function Se(e,t=0){if((e==null?void 0:e.fixedHeight)===!0)return S(x({},e),{height:J.value});if((e==null?void 0:e.fillHeight)===!0)return S(x({},e),{height:ot(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return S(x({},e),{height:ut(e)});const n=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,a=(e==null?void 0:e.keepSpanHeight)===!0;return S(x({},e),{height:t===1&&!a?Oe.value:n?ce.value:J.value})}function ot(e=1){const t=Math.max(1,Number(e)||1),a=Math.max(1080,Number(j.value)||1080)-N-O-q*Math.max(t-1,0);return Math.max(qe,Math.floor(a/t))}function ut(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return ce.value;const t=Array.isArray(e.rows)?e.rows:[],n=100,a=32,s=n+25+t.length*a;return Math.min(ce.value,Math.max(J.value,s))}function Me(e=[]){return e.filter(Boolean)}function ne(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Fe(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ce(e={}){const t=Array.isArray(e.rows)?e.rows:[],n=t.map(r=>Number(r!=null&&r.zero?0:(r==null?void 0:r.value)||0)),a=Math.max(...n,1),s=ct(t);return Vt({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:zt((r=[])=>{var W;const o=((W=(Array.isArray(r)?r:[r])[0])==null?void 0:W.data)||{},v=o.zero?"0":o.displayValue,k=o.unit||s||"",H=o.extra?`
    ${o.extra}`:"";return`${o.name||""}
    ${v}${k}${H}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:s?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${s}`,fill:We,font:`10px ${Kt}`}}]:[],xAxis:{type:"category",data:t.map(r=>(r==null?void 0:r.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:Dt,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?yt:dt}},yAxis:{type:"value",min:0,max:Math.ceil(a*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Gt,type:"dashed"}}},series:[{type:"bar",data:t.map((r,d)=>{var k;const o=!!(r!=null&&r.zero||r!=null&&r.isZero),v=o?0:Number((r==null?void 0:r.value)||0);return{name:r==null?void 0:r.name,value:v,displayValue:(k=r==null?void 0:r.displayValue)!=null?k:Pe(v),unit:(r==null?void 0:r.unit)||s||"",extra:(r==null?void 0:r.extra)||"",zero:o,itemStyle:{color:o?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?ht():ft(d,r)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:Ue,fontFamily:It,fontSize:10,fontWeight:700,formatter(r={}){var o;const d=r.data||{};return d.zero?"":(o=d.displayValue)!=null?o:Pe(Number(d.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function ct(e=[]){const t=[...new Set(e.map(n=>n==null?void 0:n.unit).filter(Boolean))];return t.length===1?t[0]:""}function dt(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` +`)}function yt(e){return Array.from(String(e||"").replace(/\s+/g,"")).slice(0,2).join("")}function ft(e,t={}){return t.color||t.fillColor?t.color||t.fillColor:Ee(me[e%me.length])}function ht(){return Ee(me[0])}function Pe(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:"--"}function fe(){j.value=typeof window=="undefined"?1080:window.innerHeight}function vt(e=y.value){const t=e||y.value;P("module-stats",{moduleKey:"yak-industry-chain",items:Yt(t)})}function gt(){var e,t,n;te=new Bt,de=!1,P("loading-progress",{progress:0}),(t=(e=te.instance)==null?void 0:e.on)==null||t.call(e,"onProgress",(a,s,r)=>{P("loading-progress",{progress:Math.floor(s/(r||1)*100),path:a,itemsLoaded:s,itemsTotal:r})}),(n=te.ready)==null||n.then(()=>{de=!0,he()}).catch(()=>{z.value=!0,P("map-ready")})}function he(){ye||!R.active||!de||G||(G=!0,A&&window.clearTimeout(A),A=window.setTimeout(()=>{A=null,Le()},600))}function Le(e=0){return U(this,null,function*(){var n,a;if(ye)return;if(!R.active){G=!1;return}if(yield le(),!R.active){G=!1;return}const t=p.value;if((n=t==null?void 0:t.loadMap)==null||n.call(t,te),t!=null&&t.canvasMap){z.value=!0,P("loading-progress",{progress:100}),P("map-ready"),(a=t.play)==null||a.call(t);return}if(e<24){window.setTimeout(()=>Le(e+1),120);return}G=!1,z.value=!0,P("map-ready")})}function mt(){A&&(window.clearTimeout(A),A=null)}function Te(){var e,t,n,a;(t=(e=p.value)==null?void 0:e.resume)==null||t.call(e),(a=(n=p.value)==null?void 0:n.refreshView)==null||a.call(n)}function pt(){var e,t;if(se(),(t=(e=p.value)==null?void 0:e.hasMap)!=null&&t.call(e)){z.value=!0,Te();return}mt(),z.value=!1,G=!1,le(()=>{he()})}m({refreshMapView:Te,resetMap:pt});function wt(e={}){var a,s,r,d;const t=e.feature||null,n=(t==null?void 0:t.properties)||{};if(((a=t==null?void 0:t.layer)==null?void 0:a.key)==="artificial-grassland-plots"){h.value=null,$.value=t;const o=e.screen||((r=(s=p.value)==null?void 0:s.getVectorFeatureScreen)==null?void 0:r.call(s,t.feature));o&&(Z.value=re(o)),K.value=!!o;return}if($.value=null,K.value=!1,n.stageKey){if(String(n.stageKey)!==String(y.value)){h.value=null,L.value="";return}L.value=((d=pe(n))==null?void 0:d.key)||"",h.value=n,X.value=re(e.screen);return}h.value=null,L.value=""}function Ne(){return U(this,arguments,function*(e={}){if(e.stageKey==="artificial-grassland"){yield bt(e);return}yield Ae(e)})}function bt(){return U(this,arguments,function*(e={}){e!=null&&e.canLocate&&(Q.value||(y.value="artificial-grassland",yield le()),h.value=null,L.value="",$.value=null,Z.value={x:960,y:510},K.value=!1,window.setTimeout(()=>$e(e),90))})}function $e(e={},t=0){var s,r,d;const n=(r=(s=p.value)==null?void 0:s.focusVectorFeature)==null?void 0:r.call(s,e);if(!(n!=null&&n.feature)){t<4&&window.setTimeout(()=>$e(e,t+1),180);return}$.value={id:((d=n.feature.properties)==null?void 0:d.id)||e.id,properties:n.feature.properties||{},feature:n.feature,layer:ge("yak-industry-chain","artificial-grassland-plots")};const a=$.value.id;window.setTimeout(()=>{var o;((o=$.value)==null?void 0:o.id)===a&&(_t(n.feature,n.screen),K.value=!0)},820)}function _t(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:s.call(a,e))||t;n&&(Z.value=re(n))}function Ae(){return U(this,arguments,function*(e={}){var a;if(!e.canLocate)return;const t=!!(e.stageKey&&e.stageKey!==y.value);t&&(y.value=e.stageKey,yield le());const n=kt(e);L.value=((a=pe(n))==null?void 0:a.key)||"",h.value=n,X.value={x:960,y:500},window.setTimeout(()=>{var r,d;const s=(d=(r=p.value)==null?void 0:r.focusYakIndustryPoint)==null?void 0:d.call(r,n);Be(n,s),xt(n)},t?320:80)})}function He(){return U(this,arguments,function*(e={}){e.point&&(L.value=e.key,yield Ae(e.point))})}function se(){var t,n,a,s;h.value=null,L.value="",$.value=null,K.value=!1,_&&(window.cancelAnimationFrame(_),_=null);const e=((n=(t=p.value)==null?void 0:t.canvasMap)==null?void 0:n.value)||((a=p.value)==null?void 0:a.canvasMap);(s=e==null?void 0:e.clearSelectedFeature)==null||s.call(e)}function kt(e={}){var a;const t=Number(e.longitude),n=Number(e.latitude);return S(x({},e),{id:e.key||e.id,name:e.fullName||e.name,stageKey:e.stageKey,stageName:e.stageName||((a=Ye(e.stageKey))==null?void 0:a.name),categoryName:e.categoryName||e.typeName,capacity:e.value,capacityUnit:e.unit,longitude:t,latitude:n,geometry:Number.isFinite(t)&&Number.isFinite(n)?{type:"Point",coordinates:[t,n]}:void 0,preferCoordinateMatch:Number.isFinite(t)&&Number.isFinite(n),status:e.status})}function Be(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getYakIndustryPointScreen)==null?void 0:s.call(a,e))||(t==null?void 0:t.screen);n&&(X.value=re(n))}function xt(e,t=920){var s,r;_&&window.cancelAnimationFrame(_);const n=((r=(s=window.performance)==null?void 0:s.now)==null?void 0:r.call(s))||Date.now(),a=()=>{var o,v;if(!h.value||h.value.id!==e.id){_=null;return}if(Be(e),(((v=(o=window.performance)==null?void 0:o.now)==null?void 0:v.call(o))||Date.now())-n{var n;return i(),u("div",Ot,[ie(Nt,{ref_key:"mapSceneRef",ref:p,class:"industry-map-scene","active-layer":Qe.value,"map-ranking":tt.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureInfo:wt},null,8,["active-layer","map-ranking"]),t[3]||(t[3]=l("div",{class:"industry-map-scrim"},null,-1)),z.value?T("",!0):(i(),u("div",Jt,"3D地图加载中")),ke.value.length?(i(),u("div",Xt,[l("div",Zt,[(i(!0),u(M,null,F(ke.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card left-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",Qt," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ea,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",aa,c(`0${r+1}`),1),l("span",na,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ta))),128))])):a.renderer==="leadershipMode"?(i(),u("div",sa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ra,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),xe.value.length?(i(),u("div",la,[l("div",ia,[(i(!0),u(M,null,F(xe.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card right-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",oa," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ua,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",da,c(`0${r+1}`),1),l("span",ya,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ca))),128))])):a.renderer==="leadershipMode"?(i(),u("div",fa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ha,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),Q.value?(i(),u("div",va,[ie(At,{modelValue:D.value,"onUpdate:modelValue":t[0]||(t[0]=a=>D.value=a),"topic-key":"yak-industry-chain",layers:Je.value,legends:Xe.value,width:248,height:430,multiple:""},null,8,["modelValue","layers","legends"])])):T("",!0),$.value&&K.value?(i(),u("div",{key:4,class:"industry-map-feature-info",style:ue(rt.value)},[ie($t,{feature:$.value,width:460,height:374},null,8,["feature"])],4)):T("",!0),h.value?(i(),u("div",{key:5,class:"industry-point-detail",style:ue(st.value)},[l("div",ga,[l("span",null,c(at.value),1),l("button",{type:"button",title:"关闭",onClick:se},"×")]),l("div",ma,c(nt.value),1),w.value?(i(),u("div",pa,[l("div",wa,[t[1]||(t[1]=l("span",null,"基地介绍",-1)),l("strong",null,c(w.value.tag),1)]),l("p",null,c(w.value.summary),1),w.value.image?(i(),u("img",{key:0,class:"industry-point-detail__image",src:w.value.image,alt:`${w.value.name}项目资料图`},null,8,ba)):T("",!0),l("div",_a,[(i(!0),u(M,null,F(w.value.facts,a=>(i(),u("div",{key:a.label},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1),l("small",null,c(a.note),1)]))),128))]),l("div",ka,[t[2]||(t[2]=l("span",null,"示范亮点",-1)),(i(!0),u(M,null,F(w.value.highlights,a=>(i(),u("i",{key:a},c(a),1))),128))])])):T("",!0),l("div",{class:Y(["industry-point-detail__grid",{"is-family-layout":((n=h.value)==null?void 0:n.categoryCode)==="YC-FAMILY-PASTURE"}])},[(i(!0),u(M,null,F(ae.value,a=>(i(),u("div",{key:a.label,class:Y(["industry-point-detail__row",{"is-wide":a.wide}])},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1)],2))),128))],2)],4)):T("",!0),l("div",xa,[ie(Ht,{"model-value":y.value,topics:et.value,"onUpdate:modelValue":lt},null,8,["model-value","topics"])])])}}};export{Da as default}; diff --git a/docs/assets/index-e174cf85-balabala-1784043664472.css b/docs/assets/index-e174cf85-balabala-1784043664472.css new file mode 100644 index 0000000..e19886f --- /dev/null +++ b/docs/assets/index-e174cf85-balabala-1784043664472.css @@ -0,0 +1 @@ +.cesium-map[data-v-8d7881df]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020b12}.cesium-map__viewer[data-v-8d7881df],.cesium-map__viewer[data-v-8d7881df] .cesium-viewer,.cesium-map__viewer[data-v-8d7881df] .cesium-viewer-cesiumWidgetContainer,.cesium-map__viewer[data-v-8d7881df] .cesium-widget,.cesium-map__viewer[data-v-8d7881df] canvas{width:100%;height:100%}.cesium-map__viewer[data-v-8d7881df] canvas{display:block;outline:none}.cesium-map__viewer[data-v-8d7881df] .cesium-viewer-bottom,.cesium-map__viewer[data-v-8d7881df] .cesium-widget-credits{display:none!important} diff --git a/docs/assets/index-e3442fcf-1784043664472.js b/docs/assets/index-e3442fcf-1784043664472.js new file mode 100644 index 0000000..55509aa --- /dev/null +++ b/docs/assets/index-e3442fcf-1784043664472.js @@ -0,0 +1,88 @@ +import{g as p,q as g,O as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,J as u,d as w}from"./index-1784043664472.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784043664472.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784043664472.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784043664472.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],O=["x1"],k=["id","x1"],D=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],J={class:"m-card-bd-content"},K={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 + L165.707 -0.207107 + L165.414 -0.5 + H165 + V0.5Z + M10 0.5 + V-0.5 + H9.58579 + L9.29289 -0.207107 + L10 0.5Z + M175 10.5 + L174.293 11.2071 + L174.586 11.5 + H175 + V10.5Z + M${l} 10.5 + H${l+1} + V9.5 + H${l} + V10.5Z + M${l} 34.5 + V35.5 + H${l+1} + V34.5 + H${l}Z + M0 34.5 + H-1 + V35.5 + H0 + V34.5Z + M0 10.5 + L-0.707107 9.79289 + L-1 10.0858 + V10.5 + H0Z + M165 -0.5 + H10 + V1.5 + H165 + V-0.5Z + M175.707 9.79289 + L165.707 -0.207107 + L164.293 1.20711 + L174.293 11.2071 + L175.707 9.79289Z + M${l} 9.5 + H175 + V11.5 + H${l} + V9.5Z + M${l+1} 34.5 + V10.5 + H397 + V34.5 + H${l+1}Z + M0 35.5 + H${l} + V33.5 + H0 + V35.5Z + M-1 10.5 + V34.5 + H1 + V10.5 + H-1Z + M9.29289 -0.207107 + L-0.707107 9.79289 + L0.707107 11.2071 + L10.7071 1.20711 + L9.29289 -0.207107Z`}),m=p(()=>{let t=s.height-156,o=s.width;return`M3.485 ${46.0565+t/2} + V${45.8735+t/2} + L3.36682 ${45.7337+t/2} + L0.5 ${42.343+t/2} + V1 + H${o-.5} + V${42.3431+t/2} + L${o-3.367} ${45.7337+t/2} + L${o-3.485} ${45.8735+t/2} + V${46.0565+t/2} + L${o-3.367} ${88.745+t/2} + L${o-.5} ${92.135+t/2} + V${155+t} + H0.5 + V${92.135+t/2} + L3.36682 ${88.745+t/2} + L3.485 ${88.605+t/2} + V${88.422+t/2} + V${46.0565+t/2}Z`}),d=p(()=>`width:${s.width}px;height:${s.height}px;`);return g(()=>{a.value="__"+y().uid}),(l,t)=>(r(),n("div",{class:"m-card",style:u(d.value)},[i("div",L,[i("div",H,[(r(),n("svg",{width:e.width,height:"36",viewBox:`0 0 ${e.width} 36`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[i("g",{"clip-path":`url(#clip0_70_69244${a.value})`},[i("rect",{y:"34.5",width:e.width,height:"1",fill:"url(#paint0_linear_70_69244)"},null,8,E),i("mask",{id:`path-2-inside-1_70_69244${a.value}`,fill:"white"},[i("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:`M10 0.5H165L175 10.5H${e.width}V34.5H0V10.5L10 0.5Z`},null,8,S)],8,M),i("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:`M10 0.5H165L175 10.5H${e.width}V34.5H0V10.5L10 0.5Z`,fill:`url(#paint1_linear_70_69244${a.value})`},null,8,Z),i("path",{d:_.value,fill:`url(#paint2_linear_70_69244${a.value})`,mask:`url(#path-2-inside-1_70_69244${a.value})`},null,8,G),t[1]||(t[1]=c('',4)),i("g",{style:{"mix-blend-mode":"plus-lighter"},"clip-path":`url(#clip1_70_69244${a.value})`},[...t[0]||(t[0]=[c('',4)])],8,C)],8,B),i("defs",null,[i("linearGradient",{id:"paint0_linear_70_69244",x1:e.width,y1:"35.5021",x2:"0",y2:"35.5021",gradientUnits:"userSpaceOnUse"},[...t[2]||(t[2]=[i("stop",{"stop-color":"#35A8EB","stop-opacity":"0.1"},null,-1),i("stop",{offset:"1","stop-color":"#30DCFF"},null,-1)])],8,O),i("linearGradient",{id:`paint1_linear_70_69244${a.value}`,x1:e.width,y1:"17.5",x2:"7.94819",y2:"17.5",gradientUnits:"userSpaceOnUse"},[...t[3]||(t[3]=[i("stop",{offset:"0.0364889","stop-color":"#35A8EB","stop-opacity":"0.11"},null,-1),i("stop",{offset:"1","stop-color":"#30C1FF","stop-opacity":"0.27"},null,-1)])],8,k),i("linearGradient",{id:`paint2_linear_70_69244${a.value}`,x1:"40.8948",y1:"13.5",x2:"40.895",y2:"-6.50005",gradientUnits:"userSpaceOnUse"},[...t[4]||(t[4]=[i("stop",{"stop-color":"#35A8EB","stop-opacity":"0"},null,-1),i("stop",{offset:"1","stop-color":"#30DCFF"},null,-1)])],8,D),t[6]||(t[6]=c('',8)),i("clipPath",{id:`clip0_70_69244${a.value}`},[i("rect",{width:e.width,height:"35",fill:"white",transform:"translate(0 0.5)"},null,8,N)],8,T),i("clipPath",{id:`clip1_70_69244${a.value}`},[...t[5]||(t[5]=[i("rect",{width:"130",height:"4",fill:"white",transform:"matrix(1 1.64302e-07 -0.0495776 -0.99877 28 4.5)"},null,-1)])],8,R)])],8,U))]),t[7]||(t[7]=i("img",{class:"m-card-hd-zs1",src:F,alt:""},null,-1)),t[8]||(t[8]=i("div",{class:"saoguang"},[i("img",{src:v,alt:""})],-1)),i("div",z,x(e.title),1),l.$slots.extra?(r(),n("div",A,[h(l.$slots,"extra")])):$("",!0)]),i("div",{class:"m-card-bd",style:u(d.value)},[i("div",{class:"m-card-bd-bg",style:u(d.value)},[(r(),n("svg",{width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[i("g",{opacity:e.bodyOpacity},[i("path",{d:m.value,fill:e.bodyFill},null,8,j),i("path",{d:m.value,stroke:"url(#paint1_linear_70_69585)"},null,8,q)],8,I),t[9]||(t[9]=i("defs",null,[i("linearGradient",{id:"paint1_linear_70_69585",x1:"199",y1:"203.499",x2:"199",y2:"0.499359",gradientUnits:"userSpaceOnUse"},[i("stop",{"stop-color":"#4FC5DD"}),i("stop",{offset:"1","stop-color":"#05839D","stop-opacity":"0"})])],-1))],8,P)),t[10]||(t[10]=i("img",{class:"m-card-bd-bottom-left-arrow",src:b,alt:""},null,-1)),t[11]||(t[11]=i("img",{class:"m-card-bd-bottom-right-arrow",src:V,alt:""},null,-1)),t[12]||(t[12]=i("img",{class:"m-card-bd-middle-left-line",src:f,alt:""},null,-1)),t[13]||(t[13]=i("img",{class:"m-card-bd-middle-right-line",src:f,alt:""},null,-1))],4),i("div",J,[h(l.$slots,"default")])],4)],4))}};export{K as _}; diff --git a/docs/assets/index-e521f518-1784043664472.js b/docs/assets/index-e521f518-1784043664472.js new file mode 100644 index 0000000..f738f48 --- /dev/null +++ b/docs/assets/index-e521f518-1784043664472.js @@ -0,0 +1,13 @@ +var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable;var kt=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t)=>{for(var s in t||(t={}))Xt.call(t,s)&&kt(e,s,t[s]);if(ht)for(var s of ht(t))Zt.call(t,s)&&kt(e,s,t[s]);return e},M=(e,t)=>Qt(e,Jt(t));var F=(e,t,s)=>new Promise((n,r)=>{var u=f=>{try{v(s.next(f))}catch(h){r(h)}},w=f=>{try{v(s.throw(f))}catch(h){r(h)}},v=f=>f.done?n(f.value):Promise.resolve(f.value).then(u,w);v((s=s.apply(e,t)).next())});import{g as it,q as te,h as ee,w as ne,o as y,c as p,z as At,F as P,y as z,n as j,a as g,t as A,j as k,C as se,u as ie,B as St,f as _t,s as ae,H as oe,e as re,D as ue,G as le,d as D,A as ce}from"./index-1784043664472.js";import{r as $t,n as Nt}from"./index-d0c7091a-1784043664472.js";import{a as de,c as me,b as fe,l as ge}from"./yakApi-032bf70c-1784043664472.js";import{h as ye,a as ve,r as Ct,b as pe,t as xt,y as be,c as we,s as he,d as ke,e as Ae}from"./data-b0a5f9a8-1784043664472.js";import{p as Se,i as _e,a as Re,b as Te,k as $e,c as Ne,d as Ce,h as xe,j as Ee,l as Me,e as De}from"./data-defd9b10-1784043664472.js";import{b as rt,e as Et,a as Le,B as Pe}from"./data-5c83c66b-1784043664472.js";import{f as Fe,h as ze,i as He,j as Oe,k as Be,l as je,p as qe,r as Ie,a as Ve}from"./data-b5a92f08-1784043664472.js";import{f as Ue,h as Ke,s as We,j as Ye,k as Ge,l as Qe,m as Je,p as Xe,n as Ze,o as tn,q as en,r as nn,t as sn,u as an}from"./data-5aa1bc1b-1784043664472.js";import"./index-e9f36657-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.js";import"./townshipBoundaries-1b068bef-1784043664472.js";const on="/openApi";function rn(e){return/^https?:\/\//.test(e)?e:`${on}${e.startsWith("/")?e:`/${e}`}`}function un(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function ln(n){return F(this,arguments,function*(e,t=window.location.hash||window.location.pathname,s="智慧管理"){const r=yield $t(rn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:s},timeout:12e3}).then(un);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(cn).filter(w=>w.rows.length)})}function cn(e,t){const s=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:dn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:mn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:s.map((n,r)=>({key:(n==null?void 0:n.key)||`${(n==null?void 0:n.name)||"row"}-${r}`,name:String((n==null?void 0:n.name)||`指标${r+1}`),value:fn(n==null?void 0:n.value),rawValue:n==null?void 0:n.value,unit:(n==null?void 0:n.unit)||(e==null?void 0:e.unit)||"",extra:(n==null?void 0:n.extra)||""})).filter(n=>n.name&&Number.isFinite(n.value))}}function dn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function mn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function fn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Rt="智慧管理",gn=80,yn=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:An},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:wn},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:Sn},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:_n},{key:"industry",label:"牦牛产业链",patterns:[/产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Rn}];function vn(s){return F(this,arguments,function*(e,t={}){var C;const n=Lt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],w=ln(n,r,Rt).catch(E=>(u.push(Pt(E,"辅助图表暂不可用")),[])),v=bn(n),f=yield Promise.all(v.map(E=>E.build(n,u))),h=Nn(f.flat()),b=yield w,$=v.length===1&&((C=v[0])==null?void 0:C.key)==="overview",H=h.length?h:$?Mt():[],Z=Mn(n,H),O={question:n,pageName:Rt,pagePath:r,scope:Z,intents:v.map(E=>({key:E.key,label:E.label})),datasets:H,charts:b,notes:Cn(H,b,u),warnings:u};return M(T({},O),{insights:xn(O)})})}function pn(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],s=Array.isArray(e.insights)?e.insights:[],n=e.scope||"红原县",r=t.slice(0,4).map(v=>v.title).filter(Boolean),u=s.slice(0,5).map(v=>`- ${v.label}:${v.value}${v.note?`(${v.note})`:""}`),w=(e.notes||[]).slice(0,3).map(v=>`- ${v}`);return["**总体情况**",`已按${n}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(v=>`- ${v}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",w.length?"**数据说明**":"",...w].filter(Boolean).join(` +`)}function bn(e){const t=yn.filter(s=>s.patterns.some(n=>n.test(e)));return t.length?t:[{key:"overview",label:"综合总览",build:()=>Mt()}]}function Mt(){return[l("home.topStats","首页核心指标",ye,"平台业务汇总数据"),l("home.heroStats","资源与草畜概览",ve,"平台业务汇总数据"),l("home.resourceComposition","资源构成",Ct,"平台业务汇总数据"),l("home.businessMatrix","业务矩阵",pe,"平台业务汇总数据"),l("home.townSynergy","乡镇林草湿与牦牛协同",xt,"平台业务汇总数据"),l("home.yakTown","首页牦牛乡镇排行",be,"平台业务汇总数据"),l("home.trade","首页交易结构",we,"平台业务汇总数据"),l("home.support","首页支撑产业",he,"平台业务汇总数据"),l("home.dataFlow","数据流汇总",ke,"平台业务汇总数据"),l("home.centerOrbit","首页中心节点",Ae,"平台业务汇总数据")]}function wn(s){return F(this,arguments,function*(e,t=[]){const[n,r,u,w]=yield Promise.allSettled([de(),me(),fe(),ge()]);J(n,t,"牦牛乡镇存栏数据暂未取得"),J(r,t,"牦牛畜群结构数据暂未取得"),J(u,t,"牦牛预测数据暂未取得"),J(w,t,"牦牛交易数据暂未取得");const v=hn(Q(n)),f=Tt(Q(r)),h=kn(Q(u)),b=Tt(Q(w));return[l("yak.town","乡镇牦牛存栏分布",v,"牦牛管理接口数据"),l("yak.structureRows","畜群结构数量",f,"牦牛管理接口数据"),l("yak.forecastRows","牦牛月度预测",h,"牦牛管理接口数据"),l("yak.tradeImpact","交易影响",b,"牦牛交易接口数据")]})}function Q(e){return e.status==="fulfilled"&&Array.isArray(e.value)?e.value:[]}function J(e,t,s){e.status==="rejected"&&t.push(Pt(e.reason,s))}function hn(e=[]){return e.map((t,s)=>{var u,w,v,f;const n=String(t.name||t.areaName||t.area_name||t.townName||t.zoneName||"").trim(),r=ut((f=(v=(w=(u=t.count)!=null?u:t.value)!=null?w:t.number)!=null?v:t.yakCount)!=null?f:t.yak_count);return{key:t.key||t.id||t.areaCode||t.area_code||`${n||"yak-town"}-${s}`,name:n,count:r,value:r,unit:t.unit||"头"}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,s)=>s.count-t.count)}function Tt(e=[]){return e.map((t,s)=>{var u,w,v,f,h;const n=String(t.name||t.label||t.type||t.key||"").trim(),r=ut((h=(f=(v=(w=(u=t.count)!=null?u:t.value)!=null?w:t.number)!=null?v:t.yakCount)!=null?f:t.headCount)!=null?h:t.amount);return{key:t.key||t.id||`${n||"yak-metric"}-${s}`,name:n,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,s)=>s.count-t.count)}function kn(e=[]){return e.map((t,s)=>{var u,w,v,f;const n=String(t.name||t.label||t.month||t.date||t.time||"").trim(),r=ut((f=(v=(w=(u=t.stock)!=null?u:t.count)!=null?w:t.value)!=null?v:t.number)!=null?f:t.yakCount);return{key:t.key||t.id||`${n||"yak-forecast"}-${s}`,name:n,label:n,stock:r,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.stock))}function An(e){const t=Tn(e),s=(t==null?void 0:t.name)||"红原县";return[l("balance.target",`${s}草畜平衡`,[t],"平台业务汇总数据"),l("balance.county","全县草畜平衡",[Et],"平台业务汇总数据"),l("balance.town","乡镇草畜平衡",rt,"平台业务汇总数据"),l("balance.fallbackRows","草畜平衡兜底数据",Le,"平台业务汇总数据"),l("balance.params","草畜平衡计算参数",[Pe],"平台业务汇总数据")]}function Sn(){return[l("pasture.core","牧户核心指标",Se,"平台业务汇总数据"),l("pasture.topStats","牧户顶部指标",_e,"平台业务汇总数据"),l("pasture.town","牧户乡镇分布",Re,"平台业务汇总数据"),l("pasture.online","牧户在线率",Te,"平台业务汇总数据"),l("pasture.structure","牧户年龄性别结构",$e,"平台业务汇总数据"),l("pasture.age","牧户年龄结构",Ne,"平台业务汇总数据"),l("pasture.gender","牧户性别结构",Ce,"平台业务汇总数据"),l("pasture.list","牧户示例列表",xe,"平台业务汇总数据"),l("pasture.grassland","牧户草场资源",Ee,"平台业务汇总数据"),l("pasture.season","牧户季节草场",Me,"平台业务汇总数据"),l("pasture.map","牧户地图统计",De,"平台业务汇总数据")]}function _n(){return[l("ecology.parkTopStats","生态保护核心指标",Fe,"平台业务汇总数据"),l("ecology.parkCore","国家公园核心指标",ze,"平台业务汇总数据"),l("ecology.parkTownRows","国家公园乡镇数据",He,"平台业务汇总数据"),l("ecology.restorationTopStats","生态修复项目汇总",Oe,"平台业务汇总数据"),l("ecology.engineeringTopStats","生态工程分析指标",Be,"平台业务汇总数据"),l("ecology.engineeringProjectFeatures","工程分析项目点",je,"平台业务汇总数据"),l("ecology.parkPanels","生态保护图表数据",at(qe),"平台业务汇总数据"),l("ecology.restorationPanels","生态修复图表数据",at(Ie),"平台业务汇总数据"),l("ecology.engineeringAnalysisPanels","工程分析图表数据",at(Ve),"平台业务汇总数据"),l("home.resourceComposition","林草湿资源构成",Ct,"平台业务汇总数据"),l("home.townSynergy","乡镇林草湿与牦牛协同",xt,"平台业务汇总数据")]}function Rn(){return[l("industry.topStats","产业链核心指标",Ue,"平台业务汇总数据"),l("industry.overview","产业链总览",Ke,"平台业务汇总数据"),l("industry.stageComposition","产业阶段构成",We,"平台业务汇总数据"),l("industry.stageRows","产业阶段说明",Ye,"平台业务汇总数据"),l("industry.breedingLevel","养殖水平",Ge,"平台业务汇总数据"),l("industry.forageSecurity","饲草保障能力",Qe,"平台业务汇总数据"),l("industry.value","产业价值指标",Je,"平台业务汇总数据"),l("industry.processingAbility","加工能力指标",Xe,"平台业务汇总数据"),l("industry.serviceCapability","服务能力指标",Ze,"平台业务汇总数据"),l("industry.financial","金融服务",tn,"平台业务汇总数据"),l("industry.supportPoints","饲草储备点位",en,"平台业务汇总数据"),l("industry.processingPoints","加工屠宰点位",nn,"平台业务汇总数据"),l("industry.points","产业链点位",sn,"平台业务汇总数据"),l("industry.list","产业链主体列表",an,"平台业务汇总数据")]}function Tn(e){return rt.find(t=>Dt(e,t.name))||Et}function l(e,t,s,n){return{id:e,title:t,suggestedView:Dn(t,s),source:{label:n||"平台展示数据"},rows:$n(s)}}function $n(e){return(Array.isArray(e)?e:[]).slice(0,gn).map(t=>ot(t)).filter(t=>t&&typeof t=="object")}function ot(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,30).map(s=>ot(s,t+1)):typeof e=="object"?Object.entries(e).reduce((s,[n,r])=>(["icon","color","tone","image","cover","component"].includes(n)||(s[n]=ot(r,t+1)),s),{}):String(e)}function Nn(e=[]){const t=new Set;return e.filter(s=>{var n;return!((n=s==null?void 0:s.rows)!=null&&n.length)||t.has(s.id)?!1:(t.add(s.id),!0)})}function Cn(e,t,s){return[...s].filter(Boolean)}function xn(e){const t=[];return(e.datasets||[]).some(s=>{const n=En(s);return n&&t.push(n),t.length>=5}),(e.charts||[]).some(s=>{var f,h;const n=(s.rows||[]).filter(b=>Number.isFinite(Number(b.value)));if(!n.length)return!1;const r=n.slice().sort((b,$)=>Number($.value||0)-Number(b.value||0)),u=s.unit==="%"||/率|占比|比例/.test(s.title||""),w=u?(f=r[0])==null?void 0:f.value:n.reduce((b,$)=>b+Number($.value||0),0),v=u&&((h=r[0])!=null&&h.name)?`${s.title||"关联图表"}:${r[0].name}`:s.title||"关联图表";return t.push({label:v,value:`${Ft(w)}${s.unit||""}`,note:n.length>1?u?"数值较高项":`覆盖 ${n.length} 项`:""}),t.length>=5}),t.slice(0,5)}function En(e){var w,v,f,h;const t=(e.rows||[]).find(Boolean);if(!t)return null;const s=t.name||t.areaName||t.zh||t.label||e.title,n=t.overloadRate!==void 0||t.overloadrate!==void 0,r=n?(w=t.overloadRate)!=null?w:t.overloadrate:(h=(f=(v=t.value)!=null?v:t.yakNumber)!=null?f:t.livestockCapacity)!=null?h:t.areaRange;if(r==null||r==="")return null;const u=t.unit||(n?"%":t.yakNumber!==void 0||t.livestockCapacity!==void 0?"头":"");return{label:n?`${s}超载率`:s,value:`${Ft(r)}${u}`,note:n&&t.level||e.title}}function at(e={}){return Object.entries(e||{}).flatMap(([t,s])=>(Array.isArray(s)?s:[]).flatMap(n=>(Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.data)?n.data:[]).map(u=>T({groupKey:t,panelKey:n.key,panelTitle:n.title},u))))}function Mn(e,t){var r,u;const s=rt.find(w=>Dt(e,w.name));if(s)return s.name;const n=(u=(r=t.find(w=>w.id==="balance.target"))==null?void 0:r.rows)==null?void 0:u[0];return n!=null&&n.name?n.name:n!=null&&n.areaName?n.areaName:"红原县"}function Dn(e,t){return!Array.isArray(t)||t.length<=1?"metrics":/结构|构成|占比|比例/.test(e)?"pie":/趋势|预测/.test(e)?"line":"bar-table"}function Dt(e,t){const s=Lt(e),n=String(t||"").replace(/(县|镇|村|乡|牧场|牧户|联户)$/g,"");return!!(t&&(s.includes(t)||n&&s.includes(n)))}function Lt(e){return String(e||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛").trim()}function Pt(e,t){const s=String((e==null?void 0:e.message)||"");return(e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"||/未登录|授权|Unauthorized|HTTP 401/i.test(s)?"当前登录状态已失效,部分接口数据未取得":/timeout|timed out|超时/i.test(s)?`${t},接口响应超时`:t}function ut(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}function Ft(e){const t=Number(String(e).replace(/,/g,""));return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:2}):e||"--"}const Ln="/openApi",Pn=12e4,Fn=8e3,zn=12,Hn=500;function On(e){return/^https?:\/\//.test(e)?e:`${Ln}${e.startsWith("/")?e:`/${e}`}`}function Bn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.message)||(e==null?void 0:e.msg)||"HTML界面生成失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function jn(){return F(this,arguments,function*({question:e,answer:t="",charts:s=[],datasets:n=[],context:r=null,pagePath:u=window.location.hash||window.location.pathname,pageName:w="智慧管理"}={}){const v=qn({question:e,answer:t,charts:s,datasets:n,context:r}),f=yield $t(On("/ai/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:e,pagePath:u,pageName:w,dataJson:v}),timeout:11e4}).then(Bn),h=String((f==null?void 0:f.provider)||""),b=String((f==null?void 0:f.model)||"");if(h.toLowerCase()!=="deepseek"||!b.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const $=Kn((f==null?void 0:f.html)||(f==null?void 0:f.content)||f);if(!$)throw new Error("代码模型没有返回完整HTML");if(Wn($))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return M(T({},f),{html:$})})}function qn({question:e,answer:t,charts:s,datasets:n,context:r}){const u={question:String(e||"").trim(),generatedAt:new Date().toISOString(),presentation:{format:"business-report",requirements:["输出应为业务报告页面,而不是原始数据表或字段清单。","不要直接展示 key、rawValue、areaCode、areaRange 等技术字段名。","页面需包含结论、关键指标、图表化对比、重点对象和工作建议。"]},answer:String(t||"").slice(0,Fn),context:In(r),datasets:[...Vn(s),...Un(n)]},w=JSON.stringify(u);if(w.length>Pn){const v=new Error("汇总数据超过120000字符,请先缩小查询范围");throw v.code="ARTIFACT_DATA_TOO_LARGE",v}return w}function In(e){if(!e||typeof e!="object")return null;const{question:t,pageName:s,pagePath:n,scope:r,intents:u,notes:w,warnings:v,insights:f}=e;return X({question:t,pageName:s,pagePath:n,scope:r,intents:u,notes:w,warnings:v,insights:f})}function Vn(e=[]){return(Array.isArray(e)?e:[]).slice(0,6).map((t,s)=>({id:(t==null?void 0:t.id)||`chart-${s+1}`,title:(t==null?void 0:t.title)||`统计数据${s+1}`,suggestedView:(t==null?void 0:t.type)||"bar",unit:(t==null?void 0:t.unit)||"",subtitle:(t==null?void 0:t.subtitle)||"",source:(t==null?void 0:t.source)||{},rows:zt(t==null?void 0:t.rows)}))}function Un(e=[]){return(Array.isArray(e)?e:[]).slice(0,zn).map((t,s)=>({id:(t==null?void 0:t.id)||`dataset-${s+1}`,title:(t==null?void 0:t.title)||(t==null?void 0:t.name)||`汇总数据${s+1}`,suggestedView:(t==null?void 0:t.suggestedView)||(t==null?void 0:t.type)||"auto",unit:(t==null?void 0:t.unit)||"",source:(t==null?void 0:t.source)||{},rows:zt((t==null?void 0:t.rows)||(t==null?void 0:t.data)||t)}))}function zt(e){return(Array.isArray(e)?e:[]).slice(0,Hn).map(t=>X(t))}function X(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,50).map(s=>X(s,t+1)):typeof e=="object"?Object.entries(e).reduce((s,[n,r])=>(s[n]=X(r,t+1),s),{}):String(e)}function Kn(e){let t=String(e||"").trim();t.startsWith("```")&&(t=t.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const s=t.match(/");return s&&n>=s.index&&(t=t.slice(s.index,n+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),n=(t.match(/s.includes(w)).length;return n>=2&&u>=4||n>=1&&u>=6}function Yn(e){const t=String(e||"").trim();if(!t||typeof DOMParser=="undefined")return"";const s=new DOMParser().parseFromString(t,"text/html"),n=s.createElement("script");return n.textContent=` + (() => { + const notify = (type, message = "") => { + window.parent.postMessage({ source: "smart-artifact", type, message: String(message).slice(0, 240) }, "*"); + }; + window.addEventListener("error", (event) => notify("runtime-error", event.message || "界面运行异常")); + window.addEventListener("unhandledrejection", (event) => notify("runtime-error", event.reason?.message || event.reason || "界面运行异常")); + window.addEventListener("DOMContentLoaded", () => notify("ready")); + })(); + `,s.head.prepend(n),` +${s.documentElement.outerHTML}`}const Gn={class:"wisdom-management"},Qn={key:0,class:"wisdom-side wisdom-side-left"},Jn={key:0,class:"wisdom-side-header"},Xn={key:0},Zn={key:1,class:"wisdom-side-metrics"},ts={key:0},es=["innerHTML"],ns={key:3,class:"wisdom-side-actions"},ss=["disabled","onClick"],is={key:1,class:"wisdom-side wisdom-side-right"},as={key:0,class:"wisdom-side-header"},os={key:0},rs={key:2,class:"wisdom-side-metrics"},us={key:0},ls=["innerHTML"],cs={key:4,class:"wisdom-side-actions"},ds=["disabled","onClick"],ms={key:2,class:"wisdom-artifact-workspace"},fs={class:"wisdom-artifact-header"},gs={class:"wisdom-artifact-heading"},ys={class:"wisdom-artifact-tools"},vs=["disabled"],ps={class:"wisdom-artifact-body"},bs={key:0,class:"wisdom-artifact-building"},ws={class:"wisdom-artifact-building__intro"},hs=["srcdoc"],ks={key:2,class:"wisdom-artifact-error"},As=["disabled"],Ss={key:0,class:"wisdom-empty-state"},_s={key:0,class:"wisdom-message-mark"},Rs={class:"wisdom-bubble"},Ts={key:0,class:"wisdom-digesting"},$s=["innerHTML"],Ns={key:2,class:"wisdom-stream-caret"},Cs={key:3,class:"wisdom-suggestion-list"},xs=["disabled","onClick"],Es={class:"wisdom-input-shell"},Ms=["disabled"],Ds=["disabled","title","aria-label"],Ls=["disabled"],Ps={key:0,class:"wisdom-button-loading"},Fs="请输入需要了解的业务事项,系统将依据平台汇总数据形成要点分析和专题页面。",Gs={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=ue({loader:()=>le(()=>import("./SmartChartRenderer-7992758b-1784043664472.js"),["./SmartChartRenderer-7992758b-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index.esm.min-c54f6e6e-1784043664472.js","./SmartChartRenderer-7a3a96b9-balabala-1784043664472.css"],import.meta.url),loadingComponent:{template:'
    正在绘制统计图表
    '}}),s=e,n=D(""),r=D([]),u=D(!1),w=D(null),v=D(null),f=D([]),h=D([]),b=D(lt()),$=it(()=>b.value.status!=="idle"),H=it(()=>["collecting","generating"].includes(b.value.status)),Z=it(()=>b.value.status==="collecting"?"汇总数据":b.value.status==="generating"?"生成页面":b.value.status==="ready"?"DeepSeek生成":b.value.status==="error"?"生成失败":b.value.status==="waiting"?"等待选择":"待生成"),O=D(!1),C=D(!1),E=D("");let q=null,x=null,B=0;const I=D(null);te(()=>{qt(),window.addEventListener("message",ft)}),ee(()=>{tt(),Y(),B+=1,window.removeEventListener("message",ft)}),ne(()=>s.active,i=>{i||(tt(),Y(),B+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?M(T({},o),{streaming:!1,digesting:!1}):o))});function W(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function lt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function Ht(i){B+=1,I.value=null,b.value=M(T({},lt()),{status:"collecting",title:ct(i),question:i})}function ct(i){const o=String(i||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function dt(i){return F(this,null,function*(){const o={question:(i==null?void 0:i.question)||b.value.question,answer:(i==null?void 0:i.answer)||"",charts:Array.isArray(i==null?void 0:i.charts)?i.charts:[],datasets:Array.isArray(i==null?void 0:i.datasets)?i.datasets:[],context:(i==null?void 0:i.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};I.value=o;const a=++B;b.value=M(T({},b.value),{status:"generating",title:ct(o.question),question:o.question,html:"",error:"",model:""});try{const c=yield jn(o);if(a!==B)return{stale:!0};const d=Yn(c.html);if(!d)throw new Error("生成页面内容为空");return b.value=M(T({},b.value),{status:"ready",html:d,error:"",model:c.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:c}}catch(c){if(a!==B)return{stale:!0};const d=bt(c,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",c),b.value=M(T({},b.value),{status:"error",html:"",error:d,model:"",renderKey:Date.now()}),{ok:!1,message:d,error:c}}})}function mt(){!I.value||H.value||dt(I.value)}function Ot(i){B+=1,b.value=M(T({},b.value),{status:"error",html:"",error:i,renderKey:Date.now()})}function Bt(){b.value.status!=="ready"&&(b.value=M(T({},b.value),{status:"ready"}))}function ft(i){var o,a;i.source!==((o=v.value)==null?void 0:o.contentWindow)||((a=i.data)==null?void 0:a.source)!=="smart-artifact"||i.data.type==="runtime-error"&&(b.value=M(T({},b.value),{status:"error",html:"",error:i.data.message||"生成界面运行异常",renderKey:Date.now()}))}function gt(i){return String(i||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function jt(i){return gt(i).trim()}function qt(){if(typeof window=="undefined")return;const i=window.SpeechRecognition||window.webkitSpeechRecognition;O.value=!!i,i&&(x=new i,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{C.value=!0,E.value=""},x.onresult=o=>{const c=Array.from(o.results||[]).map(d=>{var m;return((m=d==null?void 0:d[0])==null?void 0:m.transcript)||""}).join("").trim();c&&(n.value=c)},x.onerror=o=>{C.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{C.value=!1})}function It(){if(!(!x||u.value)){if(C.value){Y();return}try{E.value="",x.start()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入启动失败",C.value=!1}}}function Y(){if(!(!x||!C.value))try{x.stop()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入已结束"}finally{C.value=!1}}function V(){return F(this,arguments,function*(i=n.value){const o=jt(i);if(!o||u.value)return;Y();const a={id:W(),role:"user",text:o},c={id:W(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,c],n.value="",u.value=!0,Ht(o),yield wt(),yield Vt(o,c.id)})}function Vt(i,o){return F(this,null,function*(){var a;U(o,{digestText:"生成中"});try{const c=window.location.hash||window.location.pathname,d=yield vn(i,{pagePath:c}),m=pn(d),S=(a=d.insights)!=null&&a.length?d.insights:vt(d.charts||[]);U(o,{digesting:!0,digestText:"生成中",insights:S,suggestions:[],allowFollowUp:!0}),yt({question:i,answer:m,charts:d.charts||[],insights:S,suggestions:[]}),pt(o,Ut()),dt({question:i,answer:m,charts:d.charts||[],datasets:d.datasets||[],context:d})}catch(c){const d=bt(c,"上下文数据整理失败,请稍后重试。");yt({question:i,answer:d,charts:[],insights:[],suggestions:[]}),Ot(d),pt(o,d)}})}function Ut(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` +`)}function G(i){const o=Number(String(i).replace(/,/g,""));return Number.isFinite(o)?o.toLocaleString("zh-CN",{maximumFractionDigits:2}):i||"--"}function yt({question:i,answer:o,charts:a=[],insights:c=[],suggestions:d=[],aiPanels:m}={}){const S=(m==null?void 0:m.leftPanels)||[],R=(m==null?void 0:m.rightPanels)||[];if(S.length||R.length){f.value=S,h.value=R;return}const _=Kt({question:i,answer:o,charts:a,insights:c,suggestions:d});f.value=_.left,h.value=_.right}function Kt({question:i,answer:o,charts:a=[],insights:c=[],suggestions:d=[]}={}){const m=[],S=[],R=(c.length?c:vt(a)).map(_=>({label:_.label,value:_.value,note:_.note}));return!a.length&&!R.length?{left:m,right:S}:(R.length&&m.push({id:`summary-${W()}`,type:"metrics",kicker:"数据要点",title:"数据摘要",badge:"实时",items:R.slice(0,4),actions:[]}),a.slice(0,2).forEach((_,L)=>{S.push({id:`chart-${_.id||L}-${W()}`,type:"chart",kicker:L===0?"可视分析":"关联图表",title:_.title||`统计图表${L+1}`,badge:_.unit||"",chart:_,items:[],actions:[],text:""})}),{left:m.slice(0,2),right:S.slice(0,2)})}function vt(i=[]){const o=[];return i.slice(0,2).forEach(a=>{var K;const c=(a.rows||[]).map(N=>M(T({},N),{value:Number(N.value)})).filter(N=>N.name&&Number.isFinite(N.value));if(!c.length)return;const d=a.unit||((K=c.find(N=>N.unit))==null?void 0:K.unit)||"",m=c.slice().sort((N,st)=>st.value-N.value),S=c.reduce((N,st)=>N+st.value,0),R=S/c.length,_=m[0],L=m[m.length-1];o.push({label:"最高",value:`${_.name} ${G(_.value)}${d}`,note:a.title}),c.length>2&&o.push({label:a.type==="pie"?"占比项":"最低",value:`${L.name} ${G(L.value)}${d}`,note:a.type==="pie"?"最小结构项":"低值区域"}),o.push({label:"合计",value:`${G(S)}${d}`,note:c.length>1?`覆盖 ${c.length} 项`:a.title}),a.type!=="pie"&&c.length>1&&o.push({label:"均值",value:`${G(R)}${d}`,note:"按当前图表项计算"})}),o.slice(0,4)}function U(i,o,a=!0){r.value=r.value.map(c=>c.id===i?T(T({},c),o):c),a&&wt()}function pt(i,o){U(i,{digesting:!1}),Wt(i,o)}function bt(i,o){const a=String((i==null?void 0:i.message)||"");return(i==null?void 0:i.code)===401||(i==null?void 0:i.code)==="401"||(i==null?void 0:i.code)==="HTTP_401"||/未登录|授权|Unauthorized|HTTP 401/i.test(a)?"当前登录状态已失效,请重新登录后查询。":(i==null?void 0:i.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(a)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(i==null?void 0:i.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(a)?"本次分析已中断,请重新提交。":(i==null?void 0:i.code)==="HTTP_404"||(i==null?void 0:i.status)===404||/HTTP 404/i.test(a)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(a)||/[a-zA-Z]{4,}/.test(a)?o:a||o}function Wt(i,o){tt();const a=gt(o),c=a.length>1200?36:a.length>700?24:14;let d=0;U(i,{fullText:a,visibleText:"",streaming:!0,charts:[]});const m=()=>{if(d=Math.min(d+c,a.length),U(i,{visibleText:a.slice(0,d),streaming:d=a.length){q=null,u.value=!1;return}q=window.setTimeout(m,18)};q=window.setTimeout(m,0)}function tt(){q&&(window.clearTimeout(q),q=null)}function et(i){const o=Yt(i).split(/\r?\n/),a=[];let c=[],d=!1;const m=()=>{c.length&&(a.push(`<${d?"ol":"ul"}>${c.map(S=>`
  • ${nt(S)}
  • `).join("")}`),c=[],d=!1)};return o.forEach(S=>{const R=S.trim();if(!R){m();return}const _=R.match(/^#{1,4}\s+(.+)$/)||R.match(/^\*\*(.+)\*\*$/);if(_){m(),a.push(`

    ${nt(_[1])}

    `);return}const L=R.match(/^\d+[.)、]\s+(.+)$/),K=R.match(/^[-*]\s+(.+)$/);if(L||K){const N=!!L;c.length&&d!==N&&m(),d=N,c.push(L?L[1]:K[1]);return}m(),a.push(`

    ${nt(R)}

    `)}),m(),a.join("")}function nt(i){return i.replace(/\*\*([^*]+)\*\*/g,"$1")}function Yt(i){return String(i||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function wt(){return F(this,null,function*(){yield ce(),window.requestAnimationFrame(()=>{w.value&&(w.value.scrollTop=w.value.scrollHeight)})})}return(i,o)=>(y(),p("div",Gn,[o[17]||(o[17]=At('',1)),f.value.length&&!$.value?(y(),p("aside",Qn,[(y(!0),p(P,null,z(f.value,a=>{var c,d;return y(),p("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(y(),p("header",Jn,[g("div",null,[g("span",null,A(a.kicker),1),g("strong",null,A(a.title),1)]),a.badge?(y(),p("em",Xn,A(a.badge),1)):k("",!0)])),(c=a.items)!=null&&c.length?(y(),p("div",Zn,[(y(!0),p(P,null,z(a.items,m=>(y(),p("div",{key:`${a.id}-${m.label}`,class:"wisdom-side-metric"},[g("span",null,A(m.label),1),g("strong",null,A(m.value),1),m.note?(y(),p("em",ts,A(m.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(y(),p("div",{key:2,class:"wisdom-side-text",innerHTML:et(a.text)},null,8,es)):k("",!0),(d=a.actions)!=null&&d.length?(y(),p("div",ns,[(y(!0),p(P,null,z(a.actions,m=>(y(),p("button",{key:m.question,type:"button",disabled:u.value,onClick:S=>V(m.question)},A(m.label),9,ss))),128))])):k("",!0)],2)}),128))])):k("",!0),h.value.length&&!$.value?(y(),p("aside",is,[(y(!0),p(P,null,z(h.value,a=>{var c,d;return y(),p("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(y(),p("header",as,[g("div",null,[g("span",null,A(a.kicker),1),g("strong",null,A(a.title),1)]),a.badge?(y(),p("em",os,A(a.badge),1)):k("",!0)])),a.chart?(y(),se(ie(t),{key:1,class:"wisdom-side-chart",chart:a.chart},null,8,["chart"])):k("",!0),(c=a.items)!=null&&c.length?(y(),p("div",rs,[(y(!0),p(P,null,z(a.items,m=>(y(),p("div",{key:`${a.id}-${m.label}`,class:"wisdom-side-metric"},[g("span",null,A(m.label),1),g("strong",null,A(m.value),1),m.note?(y(),p("em",us,A(m.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(y(),p("div",{key:3,class:"wisdom-side-text",innerHTML:et(a.text)},null,8,ls)):k("",!0),(d=a.actions)!=null&&d.length?(y(),p("div",cs,[(y(!0),p(P,null,z(a.actions,m=>(y(),p("button",{key:m.question,type:"button",disabled:u.value,onClick:S=>V(m.question)},A(m.label),9,ds))),128))])):k("",!0)],2)}),128))])):k("",!0),$.value?(y(),p("section",ms,[g("header",fs,[g("div",gs,[o[4]||(o[4]=g("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),g("div",null,[o[3]||(o[3]=g("small",null,"专题分析",-1)),g("strong",null,A(b.value.title),1)])]),g("div",ys,[g("span",{class:j(["wisdom-artifact-status",`is-${b.value.status}`])},[o[5]||(o[5]=g("i",null,null,-1)),St(A(Z.value),1)],2),b.value.status==="ready"||b.value.status==="error"?(y(),p("button",{key:0,type:"button",disabled:H.value||!I.value,title:"重新生成当前界面",onClick:mt}," 重新生成 ",8,vs)):k("",!0)])]),g("div",ps,[H.value?(y(),p("div",bs,[g("div",ws,[o[6]||(o[6]=g("span",{class:"wisdom-artifact-building__spinner"},null,-1)),g("div",null,[g("strong",null,A(b.value.status==="collecting"?"正在汇总业务数据":"正在生成专题分析页面"),1)])]),o[7]||(o[7]=At('
    ',3))])):b.value.html?(y(),p("iframe",{key:b.value.renderKey,ref_key:"artifactFrameRef",ref:v,class:"wisdom-artifact-frame",srcdoc:b.value.html,sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:Bt},null,40,hs)):(y(),p("div",ks,[o[8]||(o[8]=g("strong",null,"专题分析页面暂未生成",-1)),g("p",null,A(b.value.error||"当前数据不足以形成专题分析页面。"),1),g("button",{type:"button",disabled:!I.value,onClick:mt},"重新生成",8,As)]))])])):k("",!0),g("main",{class:j(["wisdom-chat",{"has-artifact":$.value}])},[g("div",{ref_key:"dialogueRef",ref:w,class:j(["wisdom-dialogue",{"is-empty":!r.value.length}])},[r.value.length?k("",!0):(y(),p("section",Ss,[o[9]||(o[9]=g("div",{class:"wisdom-empty-mark"},[g("span"),g("strong",null,"AI")],-1)),o[10]||(o[10]=g("h2",null,"智慧辅助分析",-1)),g("p",null,A(Fs))])),(y(!0),p(P,null,z(r.value,a=>{var c;return y(),p("article",{key:a.id,class:j(["wisdom-message",`is-${a.role}`])},[a.role==="assistant"?(y(),p("div",_s,[...o[11]||(o[11]=[g("span",null,"智",-1)])])):k("",!0),g("div",Rs,[a.role==="user"?(y(),p(P,{key:0},[St(A(a.text),1)],64)):(y(),p(P,{key:1},[a.digesting?(y(),p("div",Ts,[o[12]||(o[12]=g("span",null,null,-1)),o[13]||(o[13]=g("span",null,null,-1)),o[14]||(o[14]=g("span",null,null,-1)),g("em",null,A(a.digestText||"正在汇总分析"),1)])):k("",!0),a.visibleText?(y(),p("div",{key:1,class:"wisdom-answer",innerHTML:et(a.visibleText)},null,8,$s)):k("",!0),a.streaming?(y(),p("span",Ns)):k("",!0),(c=a.suggestions)!=null&&c.length&&(a.allowFollowUp||!a.digesting&&!a.streaming)?(y(),p("div",Cs,[(y(!0),p(P,null,z(a.suggestions,d=>(y(),p("button",{key:d.question,type:"button",disabled:u.value,onClick:m=>V(d.question)},A(d.label),9,xs))),128))])):k("",!0)],64))])],2)}),128))],2),g("form",{class:"wisdom-input-bar",onSubmit:o[2]||(o[2]=_t(a=>V(),["prevent"]))},[g("div",Es,[o[16]||(o[16]=g("span",{class:"wisdom-input-icon"},null,-1)),ae(g("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),disabled:u.value,autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:o[1]||(o[1]=re(_t(a=>V(),["prevent"]),["enter"]))},null,40,Ms),[[oe,n.value]]),g("button",{type:"button",class:j(["wisdom-voice-button",{"is-listening":C.value}]),disabled:u.value||!O.value,title:O.value?C.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":O.value?C.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:It},[...o[15]||(o[15]=[g("span",null,null,-1)])],10,Ds),g("button",{class:"wisdom-submit-button",type:"submit",disabled:u.value||!n.value.trim()},[u.value?(y(),p("span",Ps)):k("",!0),g("span",null,A(u.value?"分析中":"发送"),1)],8,Ls)])],32)],2)]))}};export{Gs as default}; diff --git a/docs/assets/index-e9f36657-1784043664472.js b/docs/assets/index-e9f36657-1784043664472.js new file mode 100644 index 0000000..021bffc --- /dev/null +++ b/docs/assets/index-e9f36657-1784043664472.js @@ -0,0 +1,15 @@ +function mt(u){if(u===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u}function zi(u,t){u.prototype=Object.create(t.prototype),u.prototype.constructor=u,u.__proto__=t}/*! + * GSAP 3.15.0 + * https://gsap.com + * + * @license Copyright 2008-2026, GreenSock. All rights reserved. + * Subject to the terms at https://gsap.com/standard-license + * @author: Jack Doyle, jack@greensock.com +*/var nt={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},ae={duration:.5,overwrite:!1,delay:0},je,W,R,ft=1e8,M=1/ft,Ie=Math.PI*2,Dr=Ie/4,Rr=0,Fi=Math.sqrt,Ar=Math.cos,Er=Math.sin,q=function(t){return typeof t=="string"},I=function(t){return typeof t=="function"},yt=function(t){return typeof t=="number"},He=function(t){return typeof t=="undefined"},dt=function(t){return typeof t=="object"},Q=function(t){return t!==!1},Je=function(){return typeof window!="undefined"},pe=function(t){return I(t)||q(t)},Li=typeof ArrayBuffer=="function"&&ArrayBuffer.isView||function(){},$=Array.isArray,zr=/random\([^)]+\)/g,Fr=/,\s*/g,mi=/(?:-?\.?\d|\.)+/gi,Ii=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,Yt=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,Me=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,Ni=/[+-]=-?[.\d]+/,Lr=/[^,'"\[\]\s]+/gi,Ir=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,E,_t,Ne,ti,st={},ve={},Bi,Vi=function(t){return(ve=$t(t,st))&&J},ei=function(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")},oe=function(t,e){return!e&&console.warn(t)},Ui=function(t,e){return t&&(st[t]=e)&&ve&&(ve[t]=e)||st},ue=function(){return 0},Nr={suppressEvents:!0,isStart:!0,kill:!1},me={suppressEvents:!0,kill:!1},Br={suppressEvents:!0},ii={},wt=[],Be={},Yi,tt={},De={},gi=30,ge=[],ri="",ni=function(t){var e=t[0],i,r;if(dt(e)||I(e)||(t=[t]),!(i=(e._gsap||{}).harness)){for(r=ge.length;r--&&!ge[r].targetTest(e););i=ge[r]}for(r=t.length;r--;)t[r]&&(t[r]._gsap||(t[r]._gsap=new hr(t[r],i)))||t.splice(r,1);return t},Ft=function(t){return t._gsap||ni(ht(t))[0]._gsap},Xi=function(t,e,i){return(i=t[e])&&I(i)?t[e]():He(i)&&t.getAttribute&&t.getAttribute(e)||i},Z=function(t,e){return(t=t.split(",")).forEach(e)||t},V=function(t){return Math.round(t*1e5)/1e5||0},A=function(t){return Math.round(t*1e7)/1e7||0},qt=function(t,e){var i=e.charAt(0),r=parseFloat(e.substr(2));return t=parseFloat(t),i==="+"?t+r:i==="-"?t-r:i==="*"?t*r:t/r},Vr=function(t,e){for(var i=e.length,r=0;t.indexOf(e[r])<0&&++ra;)s=s._prev;return s?(e._next=s._next,s._next=e):(e._next=t[i],t[i]=e),e._next?e._next._prev=e:t[r]=e,e._prev=s,e.parent=e._dp=t,e},Oe=function(t,e,i,r){i===void 0&&(i="_first"),r===void 0&&(r="_last");var n=e._prev,s=e._next;n?n._next=s:t[i]===e&&(t[i]=s),s?s._prev=n:t[r]===e&&(t[r]=n),e._next=e._prev=e.parent=null},St=function(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove&&t.parent.remove(t),t._act=0},Lt=function(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var i=t;i;)i._dirty=1,i=i.parent;return t},Xr=function(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t},Ve=function(t,e,i,r){return t._startAt&&(W?t._startAt.revert(me):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,r))},qr=function u(t){return!t||t._ts&&u(t.parent)},vi=function(t){return t._repeat?Kt(t._tTime,t=t.duration()+t._rDelay)*t:0},Kt=function(t,e){var i=Math.floor(t=A(t/e));return t&&i===t?i-1:i},be=function(t,e){return(t-e._start)*e._ts+(e._ts>=0?0:e._dirty?e.totalDuration():e._tDur)},ke=function(t){return t._end=A(t._start+(t._tDur/Math.abs(t._ts||t._rts||M)||0))},Ce=function(t,e){var i=t._dp;return i&&i.smoothChildTiming&&t._ts&&(t._start=A(i._time-(t._ts>0?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),ke(t),i._dirty||Lt(i,t)),t},Ki=function(t,e){var i;if((e._time||!e._dur&&e._initted||e._startM)&&e.render(i,!0)),Lt(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur=0&&i.totalTime(i._tTime),i=i._dp;t._zTime=-M}},lt=function(t,e,i,r){return e.parent&&St(e),e._start=A((yt(i)?i:i||t!==E?ut(t,i,e):t._time)+e._delay),e._end=A(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),$i(t,e,"_first","_last",t._sort?"_start":0),Ue(e)||(t._recent=e),r||Ki(t,e),t._ts<0&&Ce(t,t._tTime),t},Qi=function(t,e){return(st.ScrollTrigger||ei("scrollTrigger",e))&&st.ScrollTrigger.create(e,t)},Zi=function(t,e,i,r,n){if(oi(t,e,n),!t._initted)return 1;if(!i&&t._pt&&!W&&(t._dur&&t.vars.lazy!==!1||!t._dur&&t.vars.lazy)&&Yi!==et.frame)return wt.push(t),t._lazy=[n,r],1},Wr=function u(t){var e=t.parent;return e&&e._ts&&e._initted&&!e._lock&&(e.rawTime()<0||u(e))},Ue=function(t){var e=t.data;return e==="isFromStart"||e==="isStart"},Gr=function(t,e,i,r){var n=t.ratio,s=e<0||!e&&(!t._start&&Wr(t)&&!(!t._initted&&Ue(t))||(t._ts<0||t._dp._ts<0)&&!Ue(t))?0:1,a=t._rDelay,o=0,f,h,l;if(a&&t._repeat&&(o=de(0,t._tDur,e),h=Kt(o,a),t._yoyo&&h&1&&(s=1-s),h!==Kt(t._tTime,a)&&(n=1-s,t.vars.repeatRefresh&&t._initted&&t.invalidate())),s!==n||W||r||t._zTime===M||!e&&t._zTime){if(!t._initted&&Zi(t,e,r,i,o))return;for(l=t._zTime,t._zTime=e||(i?M:0),i||(i=e&&!l),t.ratio=s,t._from&&(s=1-s),t._time=0,t._tTime=o,f=t._pt;f;)f.r(s,f.d),f=f._next;e<0&&Ve(t,e,i,!0),t._onUpdate&&!i&&it(t,"onUpdate"),o&&t._repeat&&!i&&t.parent&&it(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===s&&(s&&St(t,1),!i&&!W&&(it(t,s?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)},$r=function(t,e,i){var r;if(i>e)for(r=t._first;r&&r._start<=i;){if(r.data==="isPause"&&r._start>e)return r;r=r._next}else for(r=t._last;r&&r._start>=i;){if(r.data==="isPause"&&r._start0&&!r&&Ce(t,t._tTime=t._tDur*a),t.parent&&ke(t),i||Lt(t.parent,t),t},xi=function(t){return t instanceof K?Lt(t):Qt(t,t._dur)},Kr={_start:0,endTime:ue,totalDuration:ue},ut=function u(t,e,i){var r=t.labels,n=t._recent||Kr,s=t.duration()>=ft?n.endTime(!1):t._dur,a,o,f;return q(e)&&(isNaN(e)||e in r)?(o=e.charAt(0),f=e.substr(-1)==="%",a=e.indexOf("="),o==="<"||o===">"?(a>=0&&(e=e.replace(/=/,"")),(o==="<"?n._start:n.endTime(n._repeat>=0))+(parseFloat(e.substr(1))||0)*(f?(a<0?n:i).totalDuration()/100:1)):a<0?(e in r||(r[e]=s),r[e]):(o=parseFloat(e.charAt(a-1)+e.substr(a+1)),f&&i&&(o=o/100*($(i)?i[0]:i).totalDuration()),a>1?u(t,e.substr(0,a-1),i)+o:s+o)):e==null?s:+e},ne=function(t,e,i){var r=yt(e[1]),n=(r?2:1)+(t<2?0:1),s=e[n],a,o;if(r&&(s.duration=e[1]),s.parent=i,t){for(a=s,o=i;o&&!("immediateRender"in a);)a=o.vars.defaults||{},o=Q(o.vars.inherit)&&o.parent;s.immediateRender=Q(a.immediateRender),t<2?s.runBackwards=1:s.startAt=e[n-1]}return new U(e[0],s,e[n+1])},Ct=function(t,e){return t||t===0?e(t):e},de=function(t,e,i){return ie?e:i},G=function(t,e){return!q(t)||!(e=Ir.exec(t))?"":e[1]},Qr=function(t,e,i){return Ct(i,function(r){return de(t,e,r)})},Ye=[].slice,ji=function(t,e){return t&&dt(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&dt(t[0]))&&!t.nodeType&&t!==_t},Zr=function(t,e,i){return i===void 0&&(i=[]),t.forEach(function(r){var n;return q(r)&&!e||ji(r,1)?(n=i).push.apply(n,ht(r)):i.push(r)})||i},ht=function(t,e,i){return R&&!e&&R.selector?R.selector(t):q(t)&&!i&&(Ne||!Zt())?Ye.call((e||ti).querySelectorAll(t),0):$(t)?Zr(t,i):ji(t)?Ye.call(t,0):t?[t]:[]},Xe=function(t){return t=ht(t)[0]||oe("Invalid scope")||{},function(e){var i=t.current||t.nativeElement||t;return ht(e,i.querySelectorAll?i:i===t?oe("Invalid scope")||ti.createElement("div"):t)}},Hi=function(t){return t.sort(function(){return .5-Math.random()})},Ji=function(t){if(I(t))return t;var e=dt(t)?t:{each:t},i=It(e.ease),r=e.from||0,n=parseFloat(e.base)||0,s={},a=r>0&&r<1,o=isNaN(r)||a,f=e.axis,h=r,l=r;return q(r)?h=l={center:.5,edges:.5,end:1}[r]||0:!a&&o&&(h=r[0],l=r[1]),function(c,d,p){var _=(p||e).length,m=s[_],v,y,x,T,g,S,b,P,w;if(!m){if(w=e.grid==="auto"?0:(e.grid||[1,ft])[1],!w){for(b=-ft;b<(b=p[w++].getBoundingClientRect().left)&&w<_;);w<_&&w--}for(m=s[_]=[],v=o?Math.min(w,_)*h-.5:r%w,y=w===ft?0:o?_*l/w-.5:r/w|0,b=0,P=ft,S=0;S<_;S++)x=S%w-v,T=y-(S/w|0),m[S]=g=f?Math.abs(f==="y"?T:x):Fi(x*x+T*T),g>b&&(b=g),g_?_-1:f?f==="y"?_/w:w:Math.max(w,_/w))||0)*(r==="edges"?-1:1),m.b=_<0?n-_:n,m.u=G(e.amount||e.each)||0,i=i&&_<0?hn(i):i}return _=(m[c]-m.min)/m.max||0,A(m.b+(i?i(_):_)*m.v)+m.u}},qe=function(t){var e=Math.pow(10,((t+"").split(".")[1]||"").length);return function(i){var r=A(Math.round(parseFloat(i)/t)*t*e);return(r-r%1)/e+(yt(i)?0:G(i))}},tr=function(t,e){var i=$(t),r,n;return!i&&dt(t)&&(r=i=t.radius||ft,t.values?(t=ht(t.values),(n=!yt(t[0]))&&(r*=r)):t=qe(t.increment)),Ct(e,i?I(t)?function(s){return n=t(s),Math.abs(n-s)<=r?n:s}:function(s){for(var a=parseFloat(n?s.x:s),o=parseFloat(n?s.y:0),f=ft,h=0,l=t.length,c,d;l--;)n?(c=t[l].x-a,d=t[l].y-o,c=c*c+d*d):c=Math.abs(t[l]-a),cr?n-s:s)})},fe=function(t){return t.replace(zr,function(e){var i=e.indexOf("[")+1,r=e.substring(i||7,i?e.indexOf("]"):e.length-1).split(Fr);return er(i?r:+r[0],i?0:+r[1],+r[2]||1e-5)})},rr=function(t,e,i,r,n){var s=e-t,a=r-i;return Ct(n,function(o){return i+((o-t)/s*a||0)})},rn=function u(t,e,i,r){var n=isNaN(t+e)?0:function(d){return(1-d)*t+d*e};if(!n){var s=q(t),a={},o,f,h,l,c;if(i===!0&&(r=1)&&(i=null),s)t={p:t},e={p:e};else if($(t)&&!$(e)){for(h=[],l=t.length,c=l-2,f=1;f(a=Math.abs(a))&&(o=s,n=a);return o},it=function(t,e,i){var r=t.vars,n=r[e],s=R,a=t._ctx,o,f,h;if(n)return o=r[e+"Params"],f=r.callbackScope||t,i&&wt.length&&xe(),a&&(R=a),h=o?n.apply(f,o):n.call(f),R=s,h},ee=function(t){return St(t),t.scrollTrigger&&t.scrollTrigger.kill(!!W),t.progress()<1&&it(t,"onInterrupt"),t},Xt,nr=[],sr=function(t){if(t)if(t=!t.name&&t.default||t,Je()||t.headless){var e=t.name,i=I(t),r=e&&!i&&t.init?function(){this._props=[]}:t,n={init:ue,render:hi,add:ai,kill:xn,modifier:vn,rawVars:0},s={targetTest:0,get:0,getSetter:fi,aliases:{},register:0};if(Zt(),t!==r){if(tt[e])return;at(r,at(Te(t,n),s)),$t(r.prototype,$t(n,Te(t,s))),tt[r.prop=e]=r,t.targetTest&&(ge.push(r),ii[e]=1),e=(e==="css"?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}Ui(e,r),t.register&&t.register(J,r,j)}else nr.push(t)},C=255,ie={aqua:[0,C,C],lime:[0,C,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,C],navy:[0,0,128],white:[C,C,C],olive:[128,128,0],yellow:[C,C,0],orange:[C,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[C,0,0],pink:[C,192,203],cyan:[0,C,C],transparent:[C,C,C,0]},Re=function(t,e,i){return t+=t<0?1:t>1?-1:0,(t*6<1?e+(i-e)*t*6:t<.5?i:t*3<2?e+(i-e)*(2/3-t)*6:e)*C+.5|0},ar=function(t,e,i){var r=t?yt(t)?[t>>16,t>>8&C,t&C]:0:ie.black,n,s,a,o,f,h,l,c,d,p;if(!r){if(t.substr(-1)===","&&(t=t.substr(0,t.length-1)),ie[t])r=ie[t];else if(t.charAt(0)==="#"){if(t.length<6&&(n=t.charAt(1),s=t.charAt(2),a=t.charAt(3),t="#"+n+n+s+s+a+a+(t.length===5?t.charAt(4)+t.charAt(4):"")),t.length===9)return r=parseInt(t.substr(1,6),16),[r>>16,r>>8&C,r&C,parseInt(t.substr(7),16)/255];t=parseInt(t.substr(1),16),r=[t>>16,t>>8&C,t&C]}else if(t.substr(0,3)==="hsl"){if(r=p=t.match(mi),!e)o=+r[0]%360/360,f=+r[1]/100,h=+r[2]/100,s=h<=.5?h*(f+1):h+f-h*f,n=h*2-s,r.length>3&&(r[3]*=1),r[0]=Re(o+1/3,n,s),r[1]=Re(o,n,s),r[2]=Re(o-1/3,n,s);else if(~t.indexOf("="))return r=t.match(Ii),i&&r.length<4&&(r[3]=1),r}else r=t.match(mi)||ie.transparent;r=r.map(Number)}return e&&!p&&(n=r[0]/C,s=r[1]/C,a=r[2]/C,l=Math.max(n,s,a),c=Math.min(n,s,a),h=(l+c)/2,l===c?o=f=0:(d=l-c,f=h>.5?d/(2-l-c):d/(l+c),o=l===n?(s-a)/d+(st||v<0)&&(i+=v-e),r+=v,g=r-i,x=g-s,(x>0||y)&&(S=++l.frame,c=g-l.time*1e3,l.time=g=g/1e3,s+=x+(x>=n?4:n-x),T=1),y||(o=f(_)),T)for(d=0;d=v&&d--},_listeners:a},l}(),Zt=function(){return!he&&et.wake()},k={},sn=/^[\d.\-M][\d.\-,\s]/,an=/["']/g,on=function(t){for(var e={},i=t.substr(1,t.length-3).split(":"),r=i[0],n=1,s=i.length,a,o,f;n1&&i.config?i.config.apply(null,~t.indexOf("{")?[on(e[1])]:un(t).split(",").map(Wi)):k._CE&&sn.test(t)?k._CE("",t):i},hn=function(t){return function(e){return 1-t(1-e)}},It=function(t,e){return t&&(I(t)?t:k[t]||fn(t))||e},Bt=function(t,e,i,r){i===void 0&&(i=function(o){return 1-e(1-o)}),r===void 0&&(r=function(o){return o<.5?e(o*2)/2:1-e((1-o)*2)/2});var n={easeIn:e,easeOut:i,easeInOut:r},s;return Z(t,function(a){k[a]=st[a]=n,k[s=a.toLowerCase()]=i;for(var o in n)k[s+(o==="easeIn"?".in":o==="easeOut"?".out":".inOut")]=k[a+"."+o]=n[o]}),n},fr=function(t){return function(e){return e<.5?(1-t(1-e*2))/2:.5+t((e-.5)*2)/2}},Ae=function u(t,e,i){var r=e>=1?e:1,n=(i||(t?.3:.45))/(e<1?e:1),s=n/Ie*(Math.asin(1/r)||0),a=function(h){return h===1?1:r*Math.pow(2,-10*h)*Er((h-s)*n)+1},o=t==="out"?a:t==="in"?function(f){return 1-a(1-f)}:fr(a);return n=Ie/n,o.config=function(f,h){return u(t,f,h)},o},Ee=function u(t,e){e===void 0&&(e=1.70158);var i=function(s){return s?--s*s*((e+1)*s+e)+1:0},r=t==="out"?i:t==="in"?function(n){return 1-i(1-n)}:fr(i);return r.config=function(n){return u(t,n)},r};Z("Linear,Quad,Cubic,Quart,Quint,Strong",function(u,t){var e=t<5?t+1:t;Bt(u+",Power"+(e-1),t?function(i){return Math.pow(i,e)}:function(i){return i},function(i){return 1-Math.pow(1-i,e)},function(i){return i<.5?Math.pow(i*2,e)/2:1-Math.pow((1-i)*2,e)/2})});k.Linear.easeNone=k.none=k.Linear.easeIn;Bt("Elastic",Ae("in"),Ae("out"),Ae());(function(u,t){var e=1/t,i=2*e,r=2.5*e,n=function(a){return a0?i+(i+this._rDelay)*this._repeat:i):this.totalDuration()&&this._dur},t.totalDuration=function(i){return arguments.length?(this._dirty=0,Qt(this,this._repeat<0?i:(i-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},t.totalTime=function(i,r){if(Zt(),!arguments.length)return this._tTime;var n=this._dp;if(n&&n.smoothChildTiming&&this._ts){for(Ce(this,i),!n._dp||n.parent||Ki(n,this);n&&n.parent;)n.parent._time!==n._start+(n._ts>=0?n._tTime/n._ts:(n.totalDuration()-n._tTime)/-n._ts)&&n.totalTime(n._tTime,!0),n=n.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&i0||!this._tDur&&!i)&<(this._dp,this,this._start-this._delay)}return(this._tTime!==i||!this._dur&&!r||this._initted&&Math.abs(this._zTime)===M||!this._initted&&this._dur&&i||!i&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=i),qi(this,i,r)),this},t.time=function(i,r){return arguments.length?this.totalTime(Math.min(this.totalDuration(),i+vi(this))%(this._dur+this._rDelay)||(i?this._dur:0),r):this._time},t.totalProgress=function(i,r){return arguments.length?this.totalTime(this.totalDuration()*i,r):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.rawTime()>=0&&this._initted?1:0},t.progress=function(i,r){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&!(this.iteration()&1)?1-i:i)+vi(this),r):this.duration()?Math.min(1,this._time/this._dur):this.rawTime()>0?1:0},t.iteration=function(i,r){var n=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(i-1)*n,r):this._repeat?Kt(this._tTime,n)+1:1},t.timeScale=function(i,r){if(!arguments.length)return this._rts===-M?0:this._rts;if(this._rts===i)return this;var n=this.parent&&this._ts?be(this.parent._time,this):this._tTime;return this._rts=+i||0,this._ts=this._ps||i===-M?0:this._rts,this.totalTime(de(-Math.abs(this._delay),this.totalDuration(),n),r!==!1),ke(this),Xr(this)},t.paused=function(i){return arguments.length?(this._ps!==i&&(this._ps=i,i?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Zt(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,this.progress()===1&&Math.abs(this._zTime)!==M&&(this._tTime-=M)))),this):this._ps},t.startTime=function(i){if(arguments.length){this._start=A(i);var r=this.parent||this._dp;return r&&(r._sort||!this.parent)&<(r,this,this._start-this._delay),this}return this._start},t.endTime=function(i){return this._start+(Q(i)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},t.rawTime=function(i){var r=this.parent||this._dp;return r?i&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?be(r.rawTime(i),this):this._tTime:this._tTime},t.revert=function(i){i===void 0&&(i=Br);var r=W;return W=i,si(this)&&(this.timeline&&this.timeline.revert(i),this.totalTime(-.01,i.suppressEvents)),this.data!=="nested"&&i.kill!==!1&&this.kill(),W=r,this},t.globalTime=function(i){for(var r=this,n=arguments.length?i:r.rawTime();r;)n=r._start+n/(Math.abs(r._ts)||1),r=r._dp;return!this.parent&&this._sat?this._sat.globalTime(i):n},t.repeat=function(i){return arguments.length?(this._repeat=i===1/0?-2:i,xi(this)):this._repeat===-2?1/0:this._repeat},t.repeatDelay=function(i){if(arguments.length){var r=this._time;return this._rDelay=i,xi(this),r?this.time(r):this}return this._rDelay},t.yoyo=function(i){return arguments.length?(this._yoyo=i,this):this._yoyo},t.seek=function(i,r){return this.totalTime(ut(this,i),Q(r))},t.restart=function(i,r){return this.play().totalTime(i?-this._delay:0,Q(r)),this._dur||(this._zTime=-M),this},t.play=function(i,r){return i!=null&&this.seek(i,r),this.reversed(!1).paused(!1)},t.reverse=function(i,r){return i!=null&&this.seek(i||this.totalDuration(),r),this.reversed(!0).paused(!1)},t.pause=function(i,r){return i!=null&&this.seek(i,r),this.paused(!0)},t.resume=function(){return this.paused(!1)},t.reversed=function(i){return arguments.length?(!!i!==this.reversed()&&this.timeScale(-this._rts||(i?-M:0)),this):this._rts<0},t.invalidate=function(){return this._initted=this._act=0,this._zTime=-M,this},t.isActive=function(){var i=this.parent||this._dp,r=this._start,n;return!!(!i||this._ts&&this._initted&&i.isActive()&&(n=i.rawTime(!0))>=r&&n1?(r?(s[i]=r,n&&(s[i+"Params"]=n),i==="onUpdate"&&(this._onUpdate=r)):delete s[i],this):s[i]},t.then=function(i){var r=this,n=r._prom;return new Promise(function(s){var a=I(i)?i:Gi,o=function(){var h=r.then;r.then=null,n&&n(),I(a)&&(a=a(r))&&(a.then||a===r)&&(r.then=h),s(a),r.then=h};r._initted&&r.totalProgress()===1&&r._ts>=0||!r._tTime&&r._ts<0?o():r._prom=o})},t.kill=function(){ee(this)},u}();at(_e.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-M,_prom:0,_ps:!1,_rts:1});var K=function(u){zi(t,u);function t(i,r){var n;return i===void 0&&(i={}),n=u.call(this,i)||this,n.labels={},n.smoothChildTiming=!!i.smoothChildTiming,n.autoRemoveChildren=!!i.autoRemoveChildren,n._sort=Q(i.sortChildren),E&<(i.parent||E,mt(n),r),i.reversed&&n.reverse(),i.paused&&n.paused(!0),i.scrollTrigger&&Qi(mt(n),i.scrollTrigger),n}var e=t.prototype;return e.to=function(r,n,s){return ne(0,arguments,this),this},e.from=function(r,n,s){return ne(1,arguments,this),this},e.fromTo=function(r,n,s,a){return ne(2,arguments,this),this},e.set=function(r,n,s){return n.duration=0,n.parent=this,re(n).repeatDelay||(n.repeat=0),n.immediateRender=!!n.immediateRender,new U(r,n,ut(this,s),1),this},e.call=function(r,n,s){return lt(this,U.delayedCall(0,r,n),s)},e.staggerTo=function(r,n,s,a,o,f,h){return s.duration=n,s.stagger=s.stagger||a,s.onComplete=f,s.onCompleteParams=h,s.parent=this,new U(r,s,ut(this,o)),this},e.staggerFrom=function(r,n,s,a,o,f,h){return s.runBackwards=1,re(s).immediateRender=Q(s.immediateRender),this.staggerTo(r,n,s,a,o,f,h)},e.staggerFromTo=function(r,n,s,a,o,f,h,l){return a.startAt=s,re(a).immediateRender=Q(a.immediateRender),this.staggerTo(r,n,a,o,f,h,l)},e.render=function(r,n,s){var a=this._time,o=this._dirty?this.totalDuration():this._tDur,f=this._dur,h=r<=0?0:A(r),l=this._zTime<0!=r<0&&(this._initted||!f),c,d,p,_,m,v,y,x,T,g,S,b;if(this!==E&&h>o&&r>=0&&(h=o),h!==this._tTime||s||l){if(a!==this._time&&f&&(h+=this._time-a,r+=this._time-a),c=h,T=this._start,x=this._ts,v=!x,l&&(f||(a=this._zTime),(r||!n)&&(this._zTime=r)),this._repeat){if(S=this._yoyo,m=f+this._rDelay,this._repeat<-1&&r<0)return this.totalTime(m*100+r,n,s);if(c=A(h%m),h===o?(_=this._repeat,c=f):(g=A(h/m),_=~~g,_&&_===g&&(c=f,_--),c>f&&(c=f)),g=Kt(this._tTime,m),!a&&this._tTime&&g!==_&&this._tTime-g*m-this._dur<=0&&(g=_),S&&_&1&&(c=f-c,b=1),_!==g&&!this._lock){var P=S&&g&1,w=P===(S&&_&1);if(_=a&&r>=0)for(d=this._first;d;){if(p=d._next,(d._act||c>=d._start)&&d._ts&&y!==d){if(d.parent!==this)return this.render(r,n,s);if(d.render(d._ts>0?(c-d._start)*d._ts:(d._dirty?d.totalDuration():d._tDur)+(c-d._start)*d._ts,n,s),c!==this._time||!this._ts&&!v){y=0,p&&(h+=this._zTime=-M);break}}d=p}else{d=this._last;for(var O=r<0?r:c;d;){if(p=d._prev,(d._act||O<=d._end)&&d._ts&&y!==d){if(d.parent!==this)return this.render(r,n,s);if(d.render(d._ts>0?(O-d._start)*d._ts:(d._dirty?d.totalDuration():d._tDur)+(O-d._start)*d._ts,n,s||W&&si(d)),c!==this._time||!this._ts&&!v){y=0,p&&(h+=this._zTime=O?-M:M);break}}d=p}}if(y&&!n&&(this.pause(),y.render(c>=a?0:-M)._zTime=c>=a?1:-1,this._ts))return this._start=T,ke(this),this.render(r,n,s);this._onUpdate&&!n&&it(this,"onUpdate",!0),(h===o&&this._tTime>=this.totalDuration()||!h&&a)&&(T===this._start||Math.abs(x)!==Math.abs(this._ts))&&(this._lock||((r||!f)&&(h===o&&this._ts>0||!h&&this._ts<0)&&St(this,1),!n&&!(r<0&&!a)&&(h||a||!o)&&(it(this,h===o&&r>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(h0)&&this._prom())))}return this},e.add=function(r,n){var s=this;if(yt(n)||(n=ut(this,n,r)),!(r instanceof _e)){if($(r))return r.forEach(function(a){return s.add(a,n)}),this;if(q(r))return this.addLabel(r,n);if(I(r))r=U.delayedCall(0,r);else return this}return this!==r?lt(this,r,n):this},e.getChildren=function(r,n,s,a){r===void 0&&(r=!0),n===void 0&&(n=!0),s===void 0&&(s=!0),a===void 0&&(a=-ft);for(var o=[],f=this._first;f;)f._start>=a&&(f instanceof U?n&&o.push(f):(s&&o.push(f),r&&o.push.apply(o,f.getChildren(!0,n,s)))),f=f._next;return o},e.getById=function(r){for(var n=this.getChildren(1,1,1),s=n.length;s--;)if(n[s].vars.id===r)return n[s]},e.remove=function(r){return q(r)?this.removeLabel(r):I(r)?this.killTweensOf(r):(r.parent===this&&Oe(this,r),r===this._recent&&(this._recent=this._last),Lt(this))},e.totalTime=function(r,n){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=A(et.time-(this._ts>0?r/this._ts:(this.totalDuration()-r)/-this._ts))),u.prototype.totalTime.call(this,r,n),this._forcing=0,this):this._tTime},e.addLabel=function(r,n){return this.labels[r]=ut(this,n),this},e.removeLabel=function(r){return delete this.labels[r],this},e.addPause=function(r,n,s){var a=U.delayedCall(0,n||ue,s);return a.data="isPause",this._hasPause=1,lt(this,a,ut(this,r))},e.removePause=function(r){var n=this._first;for(r=ut(this,r);n;)n._start===r&&n.data==="isPause"&&St(n),n=n._next},e.killTweensOf=function(r,n,s){for(var a=this.getTweensOf(r,s),o=a.length;o--;)xt!==a[o]&&a[o].kill(r,n);return this},e.getTweensOf=function(r,n){for(var s=[],a=ht(r),o=this._first,f=yt(n),h;o;)o instanceof U?Vr(o._targets,a)&&(f?(!xt||o._initted&&o._ts)&&o.globalTime(0)<=n&&o.globalTime(o.totalDuration())>n:!n||o.isActive())&&s.push(o):(h=o.getTweensOf(a,n)).length&&s.push.apply(s,h),o=o._next;return s},e.tweenTo=function(r,n){n=n||{};var s=this,a=ut(s,r),o=n,f=o.startAt,h=o.onStart,l=o.onStartParams,c=o.immediateRender,d,p=U.to(s,at({ease:n.ease||"none",lazy:!1,immediateRender:!1,time:a,overwrite:"auto",duration:n.duration||Math.abs((a-(f&&"time"in f?f.time:s._time))/s.timeScale())||M,onStart:function(){if(s.pause(),!d){var m=n.duration||Math.abs((a-(f&&"time"in f?f.time:s._time))/s.timeScale());p._dur!==m&&Qt(p,m,0,1).render(p._time,!0,!0),d=1}h&&h.apply(p,l||[])}},n));return c?p.render(0):p},e.tweenFromTo=function(r,n,s){return this.tweenTo(n,at({startAt:{time:ut(this,r)}},s))},e.recent=function(){return this._recent},e.nextLabel=function(r){return r===void 0&&(r=this._time),Ti(this,ut(this,r))},e.previousLabel=function(r){return r===void 0&&(r=this._time),Ti(this,ut(this,r),1)},e.currentLabel=function(r){return arguments.length?this.seek(r,!0):this.previousLabel(this._time+M)},e.shiftChildren=function(r,n,s){s===void 0&&(s=0);var a=this._first,o=this.labels,f;for(r=A(r);a;)a._start>=s&&(a._start+=r,a._end+=r),a=a._next;if(n)for(f in o)o[f]>=s&&(o[f]+=r);return Lt(this)},e.invalidate=function(r){var n=this._first;for(this._lock=0;n;)n.invalidate(r),n=n._next;return u.prototype.invalidate.call(this,r)},e.clear=function(r){r===void 0&&(r=!0);for(var n=this._first,s;n;)s=n._next,this.remove(n),n=s;return this._dp&&(this._time=this._tTime=this._pTime=0),r&&(this.labels={}),Lt(this)},e.totalDuration=function(r){var n=0,s=this,a=s._last,o=ft,f,h,l;if(arguments.length)return s.timeScale((s._repeat<0?s.duration():s.totalDuration())/(s.reversed()?-r:r));if(s._dirty){for(l=s.parent;a;)f=a._prev,a._dirty&&a.totalDuration(),h=a._start,h>o&&s._sort&&a._ts&&!s._lock?(s._lock=1,lt(s,a,h-a._delay,1)._lock=0):o=h,h<0&&a._ts&&(n-=h,(!l&&!s._dp||l&&l.smoothChildTiming)&&(s._start+=A(h/s._ts),s._time-=h,s._tTime-=h),s.shiftChildren(-h,!1,-1/0),o=0),a._end>n&&a._ts&&(n=a._end),a=f;Qt(s,s===E&&s._time>n?s._time:n,1,1),s._dirty=0}return s._tDur},t.updateRoot=function(r){if(E._ts&&(qi(E,be(r,E)),Yi=et.frame),et.frame>=gi){gi+=nt.autoSleep||120;var n=E._first;if((!n||!n._ts)&&nt.autoSleep&&et._listeners.length<2){for(;n&&!n._ts;)n=n._next;n||et.sleep()}}},t}(_e);at(K.prototype,{_lock:0,_hasPause:0,_forcing:0});var _n=function(t,e,i,r,n,s,a){var o=new j(this._pt,t,e,0,1,mr,null,n),f=0,h=0,l,c,d,p,_,m,v,y;for(o.b=i,o.e=r,i+="",r+="",(v=~r.indexOf("random("))&&(r=fe(r)),s&&(y=[i,r],s(y,t,e),i=y[0],r=y[1]),c=i.match(Me)||[];l=Me.exec(r);)p=l[0],_=r.substring(f,l.index),d?d=(d+1)%5:_.substr(-5)==="rgba("&&(d=1),p!==c[h++]&&(m=parseFloat(c[h-1])||0,o._pt={_next:o._pt,p:_||h===1?_:",",s:m,c:p.charAt(1)==="="?qt(m,p)-m:parseFloat(p)-m,m:d&&d<4?Math.round:0},f=Me.lastIndex);return o.c=f")}),x.duration();else{g={};for(b in p)b==="ease"||b==="easeEach"||pn(b,p[b],g,p.easeEach);for(b in g)for(D=g[b].sort(function(Y,B){return Y.t-B.t}),F=0,T=0;To-M&&!h?o:rf&&(c=f)),v=this._yoyo&&p&1,v&&(c=f-c),m=Kt(this._tTime,_),c===a&&!s&&this._initted&&p===m)return this._tTime=l,this;p!==m&&this.vars.repeatRefresh&&!v&&!this._lock&&c!==_&&this._initted&&(this._lock=s=1,this.render(A(_*p),!0).invalidate()._lock=0)}if(!this._initted){if(Zi(this,h?r:c,s,n,l))return this._tTime=0,this;if(a!==this._time&&!(s&&this.vars.repeatRefresh&&p!==m))return this;if(f!==this._dur)return this.render(r,n,s)}if(this._rEase){var T=c0||!l&&this._ts<0)&&St(this,1),!n&&!(h&&!a)&&(l||a||v)&&(it(this,l===o?"onComplete":"onReverseComplete",!0),this._prom&&!(l0)&&this._prom()))}return this},e.targets=function(){return this._targets},e.invalidate=function(r){return(!r||!this.vars.runBackwards)&&(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(r),u.prototype.invalidate.call(this,r)},e.resetTo=function(r,n,s,a,o){he||et.wake(),this._ts||this.play();var f=Math.min(this._dur,(this._dp._time-this._start)*this._ts),h;return this._initted||oi(this,f),h=this._ease(f/this._dur),cn(this,r,n,s,a,h,f,o)?this.resetTo(r,n,s,a,1):(Ce(this,0),this.parent||$i(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},e.kill=function(r,n){if(n===void 0&&(n="all"),!r&&(!n||n==="all"))return this._lazy=this._pt=0,this.parent?ee(this):this.scrollTrigger&&this.scrollTrigger.kill(!!W),this;if(this.timeline){var s=this.timeline.totalDuration();return this.timeline.killTweensOf(r,n,xt&&xt.vars.overwrite!==!0)._first||ee(this),this.parent&&s!==this.timeline.totalDuration()&&Qt(this,this._dur*this.timeline._tDur/s,0,1),this}var a=this._targets,o=r?ht(r):a,f=this._ptLookup,h=this._pt,l,c,d,p,_,m,v;if((!n||n==="all")&&Yr(a,o))return n==="all"&&(this._pt=0),ee(this);for(l=this._op=this._op||[],n!=="all"&&(q(n)&&(_={},Z(n,function(y){return _[y]=1}),n=_),n=dn(a,n)),v=a.length;v--;)if(~o.indexOf(a[v])){c=f[v],n==="all"?(l[v]=n,p=c,d={}):(d=l[v]=l[v]||{},p=n);for(_ in p)m=c&&c[_],m&&((!("kill"in m.d)||m.d.kill(_)===!0)&&Oe(this,m,"_pt"),delete c[_]),d!=="all"&&(d[_]=1)}return this._initted&&!this._pt&&h&&ee(this),this},t.to=function(r,n){return new t(r,n,arguments[2])},t.from=function(r,n){return ne(1,arguments)},t.delayedCall=function(r,n,s,a){return new t(n,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:r,onComplete:n,onReverseComplete:n,onCompleteParams:s,onReverseCompleteParams:s,callbackScope:a})},t.fromTo=function(r,n,s){return ne(2,arguments)},t.set=function(r,n){return n.duration=0,n.repeatDelay||(n.repeat=0),new t(r,n)},t.killTweensOf=function(r,n,s){return E.killTweensOf(r,n,s)},t}(_e);at(U.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0});Z("staggerTo,staggerFrom,staggerFromTo",function(u){U[u]=function(){var t=new K,e=Ye.call(arguments,0);return e.splice(u==="staggerFromTo"?5:4,0,0),t[u].apply(t,e)}});var ui=function(t,e,i){return t[e]=i},dr=function(t,e,i){return t[e](i)},mn=function(t,e,i,r){return t[e](r.fp,i)},gn=function(t,e,i){return t.setAttribute(e,i)},fi=function(t,e){return I(t[e])?dr:He(t[e])&&t.setAttribute?gn:ui},pr=function(t,e){return e.set(e.t,e.p,Math.round((e.s+e.c*t)*1e6)/1e6,e)},yn=function(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},mr=function(t,e){var i=e._pt,r="";if(!t&&e.b)r=e.b;else if(t===1&&e.e)r=e.e;else{for(;i;)r=i.p+(i.m?i.m(i.s+i.c*t):Math.round((i.s+i.c*t)*1e4)/1e4)+r,i=i._next;r+=e.c}e.set(e.t,e.p,r,e)},hi=function(t,e){for(var i=e._pt;i;)i.r(t,i.d),i=i._next},vn=function(t,e,i,r){for(var n=this._pt,s;n;)s=n._next,n.p===r&&n.modifier(t,e,i),n=s},xn=function(t){for(var e=this._pt,i,r;e;)r=e._next,e.p===t&&!e.op||e.op===t?Oe(this,e,"_pt"):e.dep||(i=1),e=r;return!i},Tn=function(t,e,i,r){r.mSet(t,e,r.m.call(r.tween,i,r.mt),r)},gr=function(t){for(var e=t._pt,i,r,n,s;e;){for(i=e._next,r=n;r&&r.pr>e.pr;)r=r._next;(e._prev=r?r._prev:s)?e._prev._next=e:n=e,(e._next=r)?r._prev=e:s=e,e=i}t._pt=n},j=function(){function u(e,i,r,n,s,a,o,f,h){this.t=i,this.s=n,this.c=s,this.p=r,this.r=a||pr,this.d=o||this,this.set=f||ui,this.pr=h||0,this._next=e,e&&(e._prev=this)}var t=u.prototype;return t.modifier=function(i,r,n){this.mSet=this.mSet||this.set,this.set=Tn,this.m=i,this.mt=n,this.tween=r},u}();Z(ri+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger,easeReverse",function(u){return ii[u]=1});st.TweenMax=st.TweenLite=U;st.TimelineLite=st.TimelineMax=K;E=new K({sortChildren:!1,defaults:ae,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0});nt.stringFilter=ur;var Nt=[],ye={},bn=[],wi=0,wn=0,ze=function(t){return(ye[t]||bn).map(function(e){return e()})},Ge=function(){var t=Date.now(),e=[];t-wi>2&&(ze("matchMediaInit"),Nt.forEach(function(i){var r=i.queries,n=i.conditions,s,a,o,f;for(a in r)s=_t.matchMedia(r[a]).matches,s&&(o=1),s!==n[a]&&(n[a]=s,f=1);f&&(i.revert(),o&&e.push(i))}),ze("matchMediaRevert"),e.forEach(function(i){return i.onMatch(i,function(r){return i.add(null,r)})}),wi=t,ze("matchMedia"))},yr=function(){function u(e,i){this.selector=i&&Xe(i),this.data=[],this._r=[],this.isReverted=!1,this.id=wn++,e&&this.add(e)}var t=u.prototype;return t.add=function(i,r,n){I(i)&&(n=r,r=i,i=I);var s=this,a=function(){var f=R,h=s.selector,l;return f&&f!==s&&f.data.push(s),n&&(s.selector=Xe(n)),R=s,l=r.apply(s,arguments),I(l)&&s._r.push(l),R=f,s.selector=h,s.isReverted=!1,l};return s.last=a,i===I?a(s,function(o){return s.add(null,o)}):i?s[i]=a:a},t.ignore=function(i){var r=R;R=null,i(this),R=r},t.getTweens=function(){var i=[];return this.data.forEach(function(r){return r instanceof u?i.push.apply(i,r.getTweens()):r instanceof U&&!(r.parent&&r.parent.data==="nested")&&i.push(r)}),i},t.clear=function(){this._r.length=this.data.length=0},t.kill=function(i,r){var n=this;if(i?function(){for(var a=n.getTweens(),o=n.data.length,f;o--;)f=n.data[o],f.data==="isFlip"&&(f.revert(),f.getChildren(!0,!0,!1).forEach(function(h){return a.splice(a.indexOf(h),1)}));for(a.map(function(h){return{g:h._dur||h._delay||h._sat&&!h._sat.vars.immediateRender?h.globalTime(0):-1/0,t:h}}).sort(function(h,l){return l.g-h.g||-1/0}).forEach(function(h){return h.t.revert(i)}),o=n.data.length;o--;)f=n.data[o],f instanceof K?f.data!=="nested"&&(f.scrollTrigger&&f.scrollTrigger.revert(),f.kill()):!(f instanceof U)&&f.revert&&f.revert(i);n._r.forEach(function(h){return h(i,n)}),n.isReverted=!0}():this.data.forEach(function(a){return a.kill&&a.kill()}),this.clear(),r)for(var s=Nt.length;s--;)Nt[s].id===this.id&&Nt.splice(s,1)},t.revert=function(i){this.kill(i||{})},u}(),Pn=function(){function u(e){this.contexts=[],this.scope=e,R&&R.data.push(this)}var t=u.prototype;return t.add=function(i,r,n){dt(i)||(i={matches:i});var s=new yr(0,n||this.scope),a=s.conditions={},o,f,h;R&&!s.selector&&(s.selector=R.selector),this.contexts.push(s),r=s.add("onMatch",r),s.queries=i;for(f in i)f==="all"?h=1:(o=_t.matchMedia(i[f]),o&&(Nt.indexOf(s)<0&&Nt.push(s),(a[f]=o.matches)&&(h=1),o.addListener?o.addListener(Ge):o.addEventListener("change",Ge)));return h&&r(s,function(l){return s.add(null,l)}),this},t.revert=function(i){this.kill(i||{})},t.kill=function(i){this.contexts.forEach(function(r){return r.kill(i,!0)})},u}(),we={registerPlugin:function(){for(var t=arguments.length,e=new Array(t),i=0;i1){var r=t.map(function(h){return J.quickSetter(h,e,i)}),n=r.length;return function(h){for(var l=n;l--;)r[l](h)}}t=t[0]||{};var s=tt[e],a=Ft(t),o=a.harness&&(a.harness.aliases||{})[e]||e,f=s?function(h){var l=new s;Xt._pt=0,l.init(t,i?h+i:h,Xt,0,[t]),l.render(1,l),Xt._pt&&hi(1,Xt)}:a.set(t,o);return s?f:function(h){return f(t,o,i?h+i:h,a,1)}},quickTo:function(t,e,i){var r,n=J.to(t,at((r={},r[e]="+=0.1",r.paused=!0,r.stagger=0,r),i||{})),s=function(o,f,h){return n.resetTo(e,o,f,h)};return s.tween=n,s},isTweening:function(t){return E.getTweensOf(t,!0).length>0},defaults:function(t){return t&&t.ease&&(t.ease=It(t.ease,ae.ease)),yi(ae,t||{})},config:function(t){return yi(nt,t||{})},registerEffect:function(t){var e=t.name,i=t.effect,r=t.plugins,n=t.defaults,s=t.extendTimeline;(r||"").split(",").forEach(function(a){return a&&!tt[a]&&!st[a]&&oe(e+" effect requires "+a+" plugin.")}),De[e]=function(a,o,f){return i(ht(a),at(o||{},n),f)},s&&(K.prototype[e]=function(a,o,f){return this.add(De[e](a,dt(o)?o:(f=o)&&{},this),f)})},registerEase:function(t,e){k[t]=It(e)},parseEase:function(t,e){return arguments.length?It(t,e):k},getById:function(t){return E.getById(t)},exportRoot:function(t,e){t===void 0&&(t={});var i=new K(t),r,n;for(i.smoothChildTiming=Q(t.smoothChildTiming),E.remove(i),i._dp=0,i._time=i._tTime=E._time,r=E._first;r;)n=r._next,(e||!(!r._dur&&r instanceof U&&r.vars.onComplete===r._targets[0]))&<(i,r,r._start-r._delay),r=n;return lt(E,i,0),i},context:function(t,e){return t?new yr(t,e):R},matchMedia:function(t){return new Pn(t)},matchMediaRefresh:function(){return Nt.forEach(function(t){var e=t.conditions,i,r;for(r in e)e[r]&&(e[r]=!1,i=1);i&&t.revert()})||Ge()},addEventListener:function(t,e){var i=ye[t]||(ye[t]=[]);~i.indexOf(e)||i.push(e)},removeEventListener:function(t,e){var i=ye[t],r=i&&i.indexOf(e);r>=0&&i.splice(r,1)},utils:{wrap:tn,wrapYoyo:en,distribute:Ji,random:er,snap:tr,normalize:Jr,getUnit:G,clamp:Qr,splitColor:ar,toArray:ht,selector:Xe,mapRange:rr,pipe:jr,unitize:Hr,interpolate:rn,shuffle:Hi},install:Vi,effects:De,ticker:et,updateRoot:K.updateRoot,plugins:tt,globalTimeline:E,core:{PropTween:j,globals:Ui,Tween:U,Timeline:K,Animation:_e,getCache:Ft,_removeLinkedListItem:Oe,reverting:function(){return W},context:function(t){return t&&R&&(R.data.push(t),t._ctx=R),R},suppressOverwrites:function(t){return je=t}}};Z("to,from,fromTo,delayedCall,set,killTweensOf",function(u){return we[u]=U[u]});et.add(K.updateRoot);Xt=we.to({},{duration:0});var Sn=function(t,e){for(var i=t._pt;i&&i.p!==e&&i.op!==e&&i.fp!==e;)i=i._next;return i},On=function(t,e){var i=t._targets,r,n,s;for(r in e)for(n=i.length;n--;)s=t._ptLookup[n][r],s&&(s=s.d)&&(s._pt&&(s=Sn(s,r)),s&&s.modifier&&s.modifier(e[r],t,i[n],r))},Fe=function(t,e){return{name:t,headless:1,rawVars:1,init:function(r,n,s){s._onInit=function(a){var o,f;if(q(n)&&(o={},Z(n,function(h){return o[h]=1}),n=o),e){o={};for(f in n)o[f]=e(n[f]);n=o}On(a,n)}}}},J=we.registerPlugin({name:"attr",init:function(t,e,i,r,n){var s,a,o;this.tween=i;for(s in e)o=t.getAttribute(s)||"",a=this.add(t,"setAttribute",(o||0)+"",e[s],r,n,0,0,s),a.op=s,a.b=o,this._props.push(s)},render:function(t,e){for(var i=e._pt;i;)W?i.set(i.t,i.p,i.b,i):i.r(t,i.d),i=i._next}},{name:"endArray",headless:1,init:function(t,e){for(var i=e.length;i--;)this.add(t,i,t[i]||0,e[i],0,0,0,0,0,1)}},Fe("roundProps",qe),Fe("modifiers"),Fe("snap",tr))||we;U.version=K.version=J.version="3.15.0";Bi=1;Je()&&Zt();k.Power0;k.Power1;k.Power2;k.Power3;k.Power4;k.Linear;k.Quad;k.Cubic;k.Quart;k.Quint;k.Strong;k.Elastic;k.Back;k.SteppedEase;k.Bounce;k.Sine;k.Expo;k.Circ;/*! + * CSSPlugin 3.15.0 + * https://gsap.com + * + * Copyright 2008-2026, GreenSock. All rights reserved. + * Subject to the terms at https://gsap.com/standard-license + * @author: Jack Doyle, jack@greensock.com +*/var Pi,Tt,Wt,_i,zt,Si,li,kn=function(){return typeof window!="undefined"},vt={},Et=180/Math.PI,Gt=Math.PI/180,Ut=Math.atan2,Oi=1e8,ci=/([A-Z])/g,Cn=/(left|right|width|margin|padding|x)/i,Mn=/[\s,\(]\S/,ct={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},$e=function(t,e){return e.set(e.t,e.p,Math.round((e.s+e.c*t)*1e4)/1e4+e.u,e)},Dn=function(t,e){return e.set(e.t,e.p,t===1?e.e:Math.round((e.s+e.c*t)*1e4)/1e4+e.u,e)},Rn=function(t,e){return e.set(e.t,e.p,t?Math.round((e.s+e.c*t)*1e4)/1e4+e.u:e.b,e)},An=function(t,e){return e.set(e.t,e.p,t===1?e.e:t?Math.round((e.s+e.c*t)*1e4)/1e4+e.u:e.b,e)},En=function(t,e){var i=e.s+e.c*t;e.set(e.t,e.p,~~(i+(i<0?-.5:.5))+e.u,e)},vr=function(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)},xr=function(t,e){return e.set(e.t,e.p,t!==1?e.b:e.e,e)},zn=function(t,e,i){return t.style[e]=i},Fn=function(t,e,i){return t.style.setProperty(e,i)},Ln=function(t,e,i){return t._gsap[e]=i},In=function(t,e,i){return t._gsap.scaleX=t._gsap.scaleY=i},Nn=function(t,e,i,r,n){var s=t._gsap;s.scaleX=s.scaleY=i,s.renderTransform(n,s)},Bn=function(t,e,i,r,n){var s=t._gsap;s[e]=i,s.renderTransform(n,s)},z="transform",H=z+"Origin",Vn=function u(t,e){var i=this,r=this.target,n=r.style,s=r._gsap;if(t in vt&&n){if(this.tfm=this.tfm||{},t!=="transform")t=ct[t]||t,~t.indexOf(",")?t.split(",").forEach(function(a){return i.tfm[a]=gt(r,a)}):this.tfm[t]=s.x?s[t]:gt(r,t),t===H&&(this.tfm.zOrigin=s.zOrigin);else return ct.transform.split(",").forEach(function(a){return u.call(i,a,e)});if(this.props.indexOf(z)>=0)return;s.svg&&(this.svgo=r.getAttribute("data-svg-origin"),this.props.push(H,e,"")),t=z}(n||e)&&this.props.push(t,e,n[t])},Tr=function(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))},Un=function(){var t=this.props,e=this.target,i=e.style,r=e._gsap,n,s;for(n=0;n=0?ki[s]:"")+t},Qe=function(){kn()&&window.document&&(Pi=window,Tt=Pi.document,Wt=Tt.documentElement,zt=Ke("div")||{style:{}},Ke("div"),z=jt(z),H=z+"Origin",zt.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",wr=!!jt("perspective"),li=J.core.reverting,_i=1)},Ci=function(t){var e=t.ownerSVGElement,i=Ke("svg",e&&e.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),r=t.cloneNode(!0),n;r.style.display="block",i.appendChild(r),Wt.appendChild(i);try{n=r.getBBox()}catch(s){}return i.removeChild(r),Wt.removeChild(i),n},Mi=function(t,e){for(var i=e.length;i--;)if(t.hasAttribute(e[i]))return t.getAttribute(e[i])},Pr=function(t){var e,i;try{e=t.getBBox()}catch(r){e=Ci(t),i=1}return e&&(e.width||e.height)||i||(e=Ci(t)),e&&!e.width&&!e.x&&!e.y?{x:+Mi(t,["x","cx","x1"])||0,y:+Mi(t,["y","cy","y1"])||0,width:0,height:0}:e},Sr=function(t){return!!(t.getCTM&&(!t.parentNode||t.ownerSVGElement)&&Pr(t))},Ot=function(t,e){if(e){var i=t.style,r;e in vt&&e!==H&&(e=z),i.removeProperty?(r=e.substr(0,2),(r==="ms"||e.substr(0,6)==="webkit")&&(e="-"+e),i.removeProperty(r==="--"?e:e.replace(ci,"-$1").toLowerCase())):i.removeAttribute(e)}},bt=function(t,e,i,r,n,s){var a=new j(t._pt,e,i,0,1,s?xr:vr);return t._pt=a,a.b=r,a.e=n,t._props.push(i),a},Di={deg:1,rad:1,turn:1},Yn={grid:1,flex:1},kt=function u(t,e,i,r){var n=parseFloat(i)||0,s=(i+"").trim().substr((n+"").length)||"px",a=zt.style,o=Cn.test(e),f=t.tagName.toLowerCase()==="svg",h=(f?"client":"offset")+(o?"Width":"Height"),l=100,c=r==="px",d=r==="%",p,_,m,v;if(r===s||!n||Di[r]||Di[s])return n;if(s!=="px"&&!c&&(n=u(t,e,i,"px")),v=t.getCTM&&Sr(t),(d||s==="%")&&(vt[e]||~e.indexOf("adius")))return p=v?t.getBBox()[o?"width":"height"]:t[h],V(d?n/p*l:n/100*p);if(a[o?"width":"height"]=l+(c?s:r),_=r!=="rem"&&~e.indexOf("adius")||r==="em"&&t.appendChild&&!f?t:t.parentNode,v&&(_=(t.ownerSVGElement||{}).parentNode),(!_||_===Tt||!_.appendChild)&&(_=Tt.body),m=_._gsap,m&&d&&m.width&&o&&m.time===et.time&&!m.uncache)return V(n/m.width*l);if(d&&(e==="height"||e==="width")){var y=t.style[e];t.style[e]=l+r,p=t[h],y?t.style[e]=y:Ot(t,e)}else(d||s==="%")&&!Yn[rt(_,"display")]&&(a.position=rt(t,"position")),_===t&&(a.position="static"),_.appendChild(zt),p=zt[h],_.removeChild(zt),a.position="absolute";return o&&d&&(m=Ft(_),m.time=et.time,m.width=_[h]),V(c?p*n/l:p&&n?l/p*n:0)},gt=function(t,e,i,r){var n;return _i||Qe(),e in ct&&e!=="transform"&&(e=ct[e],~e.indexOf(",")&&(e=e.split(",")[0])),vt[e]&&e!=="transform"?(n=ce(t,r),n=e!=="transformOrigin"?n[e]:n.svg?n.origin:Se(rt(t,H))+" "+n.zOrigin+"px"):(n=t.style[e],(!n||n==="auto"||r||~(n+"").indexOf("calc("))&&(n=Pe[e]&&Pe[e](t,e,i)||rt(t,e)||Xi(t,e)||(e==="opacity"?1:0))),i&&!~(n+"").trim().indexOf(" ")?kt(t,e,n,i)+i:n},Xn=function(t,e,i,r){if(!i||i==="none"){var n=jt(e,t,1),s=n&&rt(t,n,1);s&&s!==i?(e=n,i=s):e==="borderColor"&&(i=rt(t,"borderTopColor"))}var a=new j(this._pt,t.style,e,0,1,mr),o=0,f=0,h,l,c,d,p,_,m,v,y,x,T,g;if(a.b=i,a.e=r,i+="",r+="",r.substring(0,6)==="var(--"&&(r=rt(t,r.substring(4,r.indexOf(")")))),r==="auto"&&(_=t.style[e],t.style[e]=r,r=rt(t,e)||r,_?t.style[e]=_:Ot(t,e)),h=[i,r],ur(h),i=h[0],r=h[1],c=i.match(Yt)||[],g=r.match(Yt)||[],g.length){for(;l=Yt.exec(r);)m=l[0],y=r.substring(o,l.index),p?p=(p+1)%5:(y.substr(-5)==="rgba("||y.substr(-5)==="hsla(")&&(p=1),m!==(_=c[f++]||"")&&(d=parseFloat(_)||0,T=_.substr((d+"").length),m.charAt(1)==="="&&(m=qt(d,m)+T),v=parseFloat(m),x=m.substr((v+"").length),o=Yt.lastIndex-x.length,x||(x=x||nt.units[e]||T,o===r.length&&(r+=x,a.e+=x)),T!==x&&(d=kt(t,e,_,x)||0),a._pt={_next:a._pt,p:y||f===1?y:",",s:d,c:v-d,m:p&&p<4||e==="zIndex"?Math.round:0});a.c=o-1;)a=n[f],vt[a]&&(o=1,a=a==="transformOrigin"?H:z),Ot(i,a);o&&(Ot(i,z),s&&(s.svg&&i.removeAttribute("transform"),r.scale=r.rotate=r.translate="none",ce(i,1),s.uncache=1,Tr(r)))}},Pe={clearProps:function(t,e,i,r,n){if(n.data!=="isFromStart"){var s=t._pt=new j(t._pt,e,i,0,0,Wn);return s.u=r,s.pr=-10,s.tween=n,t._props.push(i),1}}},le=[1,0,0,1,0,0],Or={},kr=function(t){return t==="matrix(1, 0, 0, 1, 0, 0)"||t==="none"||!t},Ai=function(t){var e=rt(t,z);return kr(e)?le:e.substr(7).match(Ii).map(V)},di=function(t,e){var i=t._gsap||Ft(t),r=t.style,n=Ai(t),s,a,o,f;return i.svg&&t.getAttribute("transform")?(o=t.transform.baseVal.consolidate().matrix,n=[o.a,o.b,o.c,o.d,o.e,o.f],n.join(",")==="1,0,0,1,0,0"?le:n):(n===le&&!t.offsetParent&&t!==Wt&&!i.svg&&(o=r.display,r.display="block",s=t.parentNode,(!s||!t.offsetParent&&!t.getBoundingClientRect().width)&&(f=1,a=t.nextElementSibling,Wt.appendChild(t)),n=Ai(t),o?r.display=o:Ot(t,"display"),f&&(a?s.insertBefore(t,a):s?s.appendChild(t):Wt.removeChild(t))),e&&n.length>6?[n[0],n[1],n[4],n[5],n[12],n[13]]:n)},Ze=function(t,e,i,r,n,s){var a=t._gsap,o=n||di(t,!0),f=a.xOrigin||0,h=a.yOrigin||0,l=a.xOffset||0,c=a.yOffset||0,d=o[0],p=o[1],_=o[2],m=o[3],v=o[4],y=o[5],x=e.split(" "),T=parseFloat(x[0])||0,g=parseFloat(x[1])||0,S,b,P,w;i?o!==le&&(b=d*m-p*_)&&(P=T*(m/b)+g*(-_/b)+(_*y-m*v)/b,w=T*(-p/b)+g*(d/b)-(d*y-p*v)/b,T=P,g=w):(S=Pr(t),T=S.x+(~x[0].indexOf("%")?T/100*S.width:T),g=S.y+(~(x[1]||x[0]).indexOf("%")?g/100*S.height:g)),r||r!==!1&&a.smooth?(v=T-f,y=g-h,a.xOffset=l+(v*d+y*_)-v,a.yOffset=c+(v*p+y*m)-y):a.xOffset=a.yOffset=0,a.xOrigin=T,a.yOrigin=g,a.smooth=!!r,a.origin=e,a.originIsAbsolute=!!i,t.style[H]="0px 0px",s&&(bt(s,a,"xOrigin",f,T),bt(s,a,"yOrigin",h,g),bt(s,a,"xOffset",l,a.xOffset),bt(s,a,"yOffset",c,a.yOffset)),t.setAttribute("data-svg-origin",T+" "+g)},ce=function(t,e){var i=t._gsap||new hr(t);if("x"in i&&!e&&!i.uncache)return i;var r=t.style,n=i.scaleX<0,s="px",a="deg",o=getComputedStyle(t),f=rt(t,H)||"0",h,l,c,d,p,_,m,v,y,x,T,g,S,b,P,w,O,N,F,D,L,X,Y,B,ot,Vt,Ht,Jt,Mt,pi,pt,Dt;return h=l=c=_=m=v=y=x=T=0,d=p=1,i.svg=!!(t.getCTM&&Sr(t)),o.translate&&((o.translate!=="none"||o.scale!=="none"||o.rotate!=="none")&&(r[z]=(o.translate!=="none"?"translate3d("+(o.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(o.rotate!=="none"?"rotate("+o.rotate+") ":"")+(o.scale!=="none"?"scale("+o.scale.split(" ").join(",")+") ":"")+(o[z]!=="none"?o[z]:"")),r.scale=r.rotate=r.translate="none"),b=di(t,i.svg),i.svg&&(i.uncache?(ot=t.getBBox(),f=i.xOrigin-ot.x+"px "+(i.yOrigin-ot.y)+"px",B=""):B=!e&&t.getAttribute("data-svg-origin"),Ze(t,B||f,!!B||i.originIsAbsolute,i.smooth!==!1,b)),g=i.xOrigin||0,S=i.yOrigin||0,b!==le&&(N=b[0],F=b[1],D=b[2],L=b[3],h=X=b[4],l=Y=b[5],b.length===6?(d=Math.sqrt(N*N+F*F),p=Math.sqrt(L*L+D*D),_=N||F?Ut(F,N)*Et:0,y=D||L?Ut(D,L)*Et+_:0,y&&(p*=Math.abs(Math.cos(y*Gt))),i.svg&&(h-=g-(g*N+S*D),l-=S-(g*F+S*L))):(Dt=b[6],pi=b[7],Ht=b[8],Jt=b[9],Mt=b[10],pt=b[11],h=b[12],l=b[13],c=b[14],P=Ut(Dt,Mt),m=P*Et,P&&(w=Math.cos(-P),O=Math.sin(-P),B=X*w+Ht*O,ot=Y*w+Jt*O,Vt=Dt*w+Mt*O,Ht=X*-O+Ht*w,Jt=Y*-O+Jt*w,Mt=Dt*-O+Mt*w,pt=pi*-O+pt*w,X=B,Y=ot,Dt=Vt),P=Ut(-D,Mt),v=P*Et,P&&(w=Math.cos(-P),O=Math.sin(-P),B=N*w-Ht*O,ot=F*w-Jt*O,Vt=D*w-Mt*O,pt=L*O+pt*w,N=B,F=ot,D=Vt),P=Ut(F,N),_=P*Et,P&&(w=Math.cos(P),O=Math.sin(P),B=N*w+F*O,ot=X*w+Y*O,F=F*w-N*O,Y=Y*w-X*O,N=B,X=ot),m&&Math.abs(m)+Math.abs(_)>359.9&&(m=_=0,v=180-v),d=V(Math.sqrt(N*N+F*F+D*D)),p=V(Math.sqrt(Y*Y+Dt*Dt)),P=Ut(X,Y),y=Math.abs(P)>2e-4?P*Et:0,T=pt?1/(pt<0?-pt:pt):0),i.svg&&(B=t.getAttribute("transform"),i.forceCSS=t.setAttribute("transform","")||!kr(rt(t,z)),B&&t.setAttribute("transform",B))),Math.abs(y)>90&&Math.abs(y)<270&&(n?(d*=-1,y+=_<=0?180:-180,_+=_<=0?180:-180):(p*=-1,y+=y<=0?180:-180)),e=e||i.uncache,i.x=h-((i.xPercent=h&&(!e&&i.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-h)?-50:0)))?t.offsetWidth*i.xPercent/100:0)+s,i.y=l-((i.yPercent=l&&(!e&&i.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-l)?-50:0)))?t.offsetHeight*i.yPercent/100:0)+s,i.z=c+s,i.scaleX=V(d),i.scaleY=V(p),i.rotation=V(_)+a,i.rotationX=V(m)+a,i.rotationY=V(v)+a,i.skewX=y+a,i.skewY=x+a,i.transformPerspective=T+s,(i.zOrigin=parseFloat(f.split(" ")[2])||!e&&i.zOrigin||0)&&(r[H]=Se(f)),i.xOffset=i.yOffset=0,i.force3D=nt.force3D,i.renderTransform=i.svg?$n:wr?Cr:Gn,i.uncache=0,i},Se=function(t){return(t=t.split(" "))[0]+" "+t[1]},Le=function(t,e,i){var r=G(e);return V(parseFloat(e)+parseFloat(kt(t,"x",i+"px",r)))+r},Gn=function(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,Cr(t,e)},Rt="0deg",te="0px",At=") ",Cr=function(t,e){var i=e||this,r=i.xPercent,n=i.yPercent,s=i.x,a=i.y,o=i.z,f=i.rotation,h=i.rotationY,l=i.rotationX,c=i.skewX,d=i.skewY,p=i.scaleX,_=i.scaleY,m=i.transformPerspective,v=i.force3D,y=i.target,x=i.zOrigin,T="",g=v==="auto"&&t&&t!==1||v===!0;if(x&&(l!==Rt||h!==Rt)){var S=parseFloat(h)*Gt,b=Math.sin(S),P=Math.cos(S),w;S=parseFloat(l)*Gt,w=Math.cos(S),s=Le(y,s,b*w*-x),a=Le(y,a,-Math.sin(S)*-x),o=Le(y,o,P*w*-x+x)}m!==te&&(T+="perspective("+m+At),(r||n)&&(T+="translate("+r+"%, "+n+"%) "),(g||s!==te||a!==te||o!==te)&&(T+=o!==te||g?"translate3d("+s+", "+a+", "+o+") ":"translate("+s+", "+a+At),f!==Rt&&(T+="rotate("+f+At),h!==Rt&&(T+="rotateY("+h+At),l!==Rt&&(T+="rotateX("+l+At),(c!==Rt||d!==Rt)&&(T+="skew("+c+", "+d+At),(p!==1||_!==1)&&(T+="scale("+p+", "+_+At),y.style[z]=T||"translate(0, 0)"},$n=function(t,e){var i=e||this,r=i.xPercent,n=i.yPercent,s=i.x,a=i.y,o=i.rotation,f=i.skewX,h=i.skewY,l=i.scaleX,c=i.scaleY,d=i.target,p=i.xOrigin,_=i.yOrigin,m=i.xOffset,v=i.yOffset,y=i.forceCSS,x=parseFloat(s),T=parseFloat(a),g,S,b,P,w;o=parseFloat(o),f=parseFloat(f),h=parseFloat(h),h&&(h=parseFloat(h),f+=h,o+=h),o||f?(o*=Gt,f*=Gt,g=Math.cos(o)*l,S=Math.sin(o)*l,b=Math.sin(o-f)*-c,P=Math.cos(o-f)*c,f&&(h*=Gt,w=Math.tan(f-h),w=Math.sqrt(1+w*w),b*=w,P*=w,h&&(w=Math.tan(h),w=Math.sqrt(1+w*w),g*=w,S*=w)),g=V(g),S=V(S),b=V(b),P=V(P)):(g=l,P=c,S=b=0),(x&&!~(s+"").indexOf("px")||T&&!~(a+"").indexOf("px"))&&(x=kt(d,"x",s,"px"),T=kt(d,"y",a,"px")),(p||_||m||v)&&(x=V(x+p-(p*g+_*b)+m),T=V(T+_-(p*S+_*P)+v)),(r||n)&&(w=d.getBBox(),x=V(x+r/100*w.width),T=V(T+n/100*w.height)),w="matrix("+g+","+S+","+b+","+P+","+x+","+T+")",d.setAttribute("transform",w),y&&(d.style[z]=w)},Kn=function(t,e,i,r,n){var s=360,a=q(n),o=parseFloat(n)*(a&&~n.indexOf("rad")?Et:1),f=o-r,h=r+f+"deg",l,c;return a&&(l=n.split("_")[1],l==="short"&&(f%=s,f!==f%(s/2)&&(f+=f<0?s:-s)),l==="cw"&&f<0?f=(f+s*Oi)%s-~~(f/s)*s:l==="ccw"&&f>0&&(f=(f-s*Oi)%s-~~(f/s)*s)),t._pt=c=new j(t._pt,e,i,r,f,Dn),c.e=h,c.u="deg",t._props.push(i),c},Ei=function(t,e){for(var i in e)t[i]=e[i];return t},Qn=function(t,e,i){var r=Ei({},i._gsap),n="perspective,force3D,transformOrigin,svgOrigin",s=i.style,a,o,f,h,l,c,d,p;r.svg?(f=i.getAttribute("transform"),i.setAttribute("transform",""),s[z]=e,a=ce(i,1),Ot(i,z),i.setAttribute("transform",f)):(f=getComputedStyle(i)[z],s[z]=e,a=ce(i,1),s[z]=f);for(o in vt)f=r[o],h=a[o],f!==h&&n.indexOf(o)<0&&(d=G(f),p=G(h),l=d!==p?kt(i,o,f,p):parseFloat(f),c=parseFloat(h),t._pt=new j(t._pt,a,o,l,c-l,$e),t._pt.u=p||0,t._props.push(o));Ei(a,r)};Z("padding,margin,Width,Radius",function(u,t){var e="Top",i="Right",r="Bottom",n="Left",s=(t<3?[e,i,r,n]:[e+n,e+i,r+i,r+n]).map(function(a){return t<2?u+a:"border"+a+u});Pe[t>1?"border"+u:u]=function(a,o,f,h,l){var c,d;if(arguments.length<4)return c=s.map(function(p){return gt(a,p,f)}),d=c.join(" "),d.split(c[0]).length===5?c[0]:d;c=(h+"").split(" "),d={},s.forEach(function(p,_){return d[p]=c[_]=c[_]||c[(_-1)/2|0]}),a.init(o,d,l)}});var Mr={name:"css",register:Qe,targetTest:function(t){return t.style&&t.nodeType},init:function(t,e,i,r,n){var s=this._props,a=t.style,o=i.vars.startAt,f,h,l,c,d,p,_,m,v,y,x,T,g,S,b,P,w;_i||Qe(),this.styles=this.styles||br(t),P=this.styles.props,this.tween=i;for(_ in e)if(_!=="autoRound"&&(h=e[_],!(tt[_]&&_r(_,e,i,r,t,n)))){if(d=typeof h,p=Pe[_],d==="function"&&(h=h.call(i,r,t,n),d=typeof h),d==="string"&&~h.indexOf("random(")&&(h=fe(h)),p)p(this,t,_,h,i)&&(b=1);else if(_.substr(0,2)==="--")f=(getComputedStyle(t).getPropertyValue(_)+"").trim(),h+="",Pt.lastIndex=0,Pt.test(f)||(m=G(f),v=G(h),v?m!==v&&(f=kt(t,_,f,v)+v):m&&(h+=m)),this.add(a,"setProperty",f,h,r,n,0,0,_),s.push(_),P.push(_,0,a[_]);else if(d!=="undefined"){if(o&&_ in o?(f=typeof o[_]=="function"?o[_].call(i,r,t,n):o[_],q(f)&&~f.indexOf("random(")&&(f=fe(f)),G(f+"")||f==="auto"||(f+=nt.units[_]||G(gt(t,_))||""),(f+"").charAt(1)==="="&&(f=gt(t,_))):f=gt(t,_),c=parseFloat(f),y=d==="string"&&h.charAt(1)==="="&&h.substr(0,2),y&&(h=h.substr(2)),l=parseFloat(h),_ in ct&&(_==="autoAlpha"&&(c===1&>(t,"visibility")==="hidden"&&l&&(c=0),P.push("visibility",0,a.visibility),bt(this,a,"visibility",c?"inherit":"hidden",l?"inherit":"hidden",!l)),_!=="scale"&&_!=="transform"&&(_=ct[_],~_.indexOf(",")&&(_=_.split(",")[0]))),x=_ in vt,x){if(this.styles.save(_),w=h,d==="string"&&h.substring(0,6)==="var(--"){if(h=rt(t,h.substring(4,h.indexOf(")"))),h.substring(0,5)==="calc("){var O=t.style.perspective;t.style.perspective=h,h=rt(t,"perspective"),O?t.style.perspective=O:Ot(t,"perspective")}l=parseFloat(h)}if(T||(g=t._gsap,g.renderTransform&&!e.parseTransform||ce(t,e.parseTransform),S=e.smoothOrigin!==!1&&g.smooth,T=this._pt=new j(this._pt,a,z,0,1,g.renderTransform,g,0,-1),T.dep=1),_==="scale")this._pt=new j(this._pt,g,"scaleY",g.scaleY,(y?qt(g.scaleY,y+l):l)-g.scaleY||0,$e),this._pt.u=0,s.push("scaleY",_),_+="X";else if(_==="transformOrigin"){P.push(H,0,a[H]),h=qn(h),g.svg?Ze(t,h,0,S,0,this):(v=parseFloat(h.split(" ")[2])||0,v!==g.zOrigin&&bt(this,g,"zOrigin",g.zOrigin,v),bt(this,a,_,Se(f),Se(h)));continue}else if(_==="svgOrigin"){Ze(t,h,1,S,0,this);continue}else if(_ in Or){Kn(this,g,_,c,y?qt(c,y+h):h);continue}else if(_==="smoothOrigin"){bt(this,g,"smooth",g.smooth,h);continue}else if(_==="force3D"){g[_]=h;continue}else if(_==="transform"){Qn(this,h,t);continue}}else _ in a||(_=jt(_)||_);if(x||(l||l===0)&&(c||c===0)&&!Mn.test(h)&&_ in a)m=(f+"").substr((c+"").length),l||(l=0),v=G(h)||(_ in nt.units?nt.units[_]:m),m!==v&&(c=kt(t,_,f,v)),this._pt=new j(this._pt,x?g:a,_,c,(y?qt(c,y+l):l)-c,!x&&(v==="px"||_==="zIndex")&&e.autoRound!==!1?En:$e),this._pt.u=v||0,x&&w!==h?(this._pt.b=f,this._pt.e=w,this._pt.r=An):m!==v&&v!=="%"&&(this._pt.b=f,this._pt.r=Rn);else if(_ in a)Xn.call(this,t,_,f,y?y+h:h);else if(_ in t)this.add(t,_,f||t[_],y?y+h:h,r,n);else if(_!=="parseTransform"){ei(_,h);continue}x||(_ in a?P.push(_,0,a[_]):typeof t[_]=="function"?P.push(_,2,t[_]()):P.push(_,1,f||t[_])),s.push(_)}}b&&gr(this)},render:function(t,e){if(e.tween._time||!li())for(var i=e._pt;i;)i.r(t,i.d),i=i._next;else e.styles.revert()},get:gt,aliases:ct,getSetter:function(t,e,i){var r=ct[e];return r&&r.indexOf(",")<0&&(e=r),e in vt&&e!==H&&(t._gsap.x||gt(t,"x"))?i&&Si===i?e==="scale"?In:Ln:(Si=i||{})&&(e==="scale"?Nn:Bn):t.style&&!He(t.style[e])?zn:~e.indexOf("-")?Fn:fi(t,e)},core:{_removeProperty:Ot,_getMatrix:di}};J.utils.checkPrefix=jt;J.core.getStyleSaver=br;(function(u,t,e,i){var r=Z(u+","+t+","+e,function(n){vt[n]=1});Z(t,function(n){nt.units[n]="deg",Or[n]=1}),ct[r[13]]=u+","+t,Z(i,function(n){var s=n.split(":");ct[s[1]]=r[s[0]]})})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");Z("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(u){nt.units[u]="px"});J.registerPlugin(Mr);var Zn=J.registerPlugin(Mr)||J;Zn.core.Tween;export{Zn as g}; diff --git a/docs/assets/index-f5d1da98-balabala-1783995319167.css b/docs/assets/index-f5d1da98-balabala-1783995319167.css deleted file mode 100644 index 48a4de7..0000000 --- a/docs/assets/index-f5d1da98-balabala-1783995319167.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1783995319167.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1783995319167.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1783995319167.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1783995319167.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1783995319167.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1783995319167.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1783995319167.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1783995319167.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1783995319167.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1783995319167.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1783995319167.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1783995319167.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1783995319167.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1783995319167.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1783995319167.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1783995319167.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1783995319167.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1783995319167.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1783995319167.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1783995319167.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1783995319167.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}.cesium-map[data-v-ce0e6cf5]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020b12}.cesium-map__viewer[data-v-ce0e6cf5],.cesium-map__viewer[data-v-ce0e6cf5] .cesium-viewer,.cesium-map__viewer[data-v-ce0e6cf5] .cesium-viewer-cesiumWidgetContainer,.cesium-map__viewer[data-v-ce0e6cf5] .cesium-widget,.cesium-map__viewer[data-v-ce0e6cf5] canvas{width:100%;height:100%}.cesium-map__viewer[data-v-ce0e6cf5] canvas{display:block;outline:none}.cesium-map__viewer[data-v-ce0e6cf5] .cesium-viewer-bottom,.cesium-map__viewer[data-v-ce0e6cf5] .cesium-widget-credits{display:none!important}.business-stat-list{height:100%;padding:14px 16px;box-sizing:border-box;overflow-y:auto}.business-stat-list::-webkit-scrollbar{width:3px}.business-stat-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-stat-list.is-compact{padding:6px 14px}.business-stat-list.is-compact .business-stat-row{height:30px;gap:8px;grid-template-columns:22px minmax(0,1fr) 104px}.business-stat-list.is-compact .business-stat-rank{width:19px;height:19px;font-size:11px;line-height:17px}.business-stat-list.is-compact .business-stat-name{font-size:12px}.business-stat-list.is-compact .business-stat-bar{height:4px;margin-top:5px}.business-stat-list.is-compact .business-stat-value strong{font-size:15px}.business-stat-list.is-compact .business-stat-value em,.business-stat-list.is-compact .business-stat-value span{font-size:10px}.business-stat-list.is-compact.is-dense{padding:4px 12px 6px}.business-stat-list.is-compact.is-dense .business-stat-row{height:20px;gap:6px;grid-template-columns:19px minmax(0,1fr) 92px}.business-stat-list.is-compact.is-dense .business-stat-rank{width:16px;height:16px;font-size:10px;line-height:14px}.business-stat-list.is-compact.is-dense .business-stat-name{font-size:11px;line-height:13px}.business-stat-list.is-compact.is-dense .business-stat-bar{height:3px;margin-top:2px}.business-stat-list.is-compact.is-dense .business-stat-value strong{font-size:13px;line-height:15px}.business-stat-list.is-compact.is-dense .business-stat-value em{font-size:10px}.business-stat-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#e0faffd1;font-size:14px}.business-stat-row{display:grid;grid-template-columns:28px minmax(0,1fr) 96px;align-items:center;gap:10px;height:38px;border-bottom:1px solid rgba(48,220,255,.18)}.business-stat-rank{width:22px;height:22px;border:1px solid rgba(48,220,255,.58);background:rgba(48,220,255,.18);color:#7ff7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:20px;text-align:center;box-shadow:0 0 4px #30dcff2e}.business-stat-main{min-width:0}.business-stat-name{color:#ecfcfff0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-stat-bar{height:5px;margin-top:7px;background:rgba(48,220,255,.14);overflow:hidden;box-shadow:inset 0 0 0 1px #30dcff0f}.business-stat-bar span{display:block;height:100%;background:linear-gradient(90deg,#14f1b2,#30dcff);box-shadow:0 0 6px #30dcff5c}.business-stat-value{min-width:0;text-align:right}.business-stat-value strong{color:#38f8ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:700;text-shadow:0 0 4px rgba(48,220,255,.32)}.business-stat-value em{margin-left:3px;color:#eefdffb8;font-size:11px;font-style:normal}.business-stat-value span{display:block;margin-top:2px;color:#eefdffad;font-size:10px;line-height:12px;white-space:normal}.business-stat-list,.business-stat-list span,.business-stat-list strong,.business-stat-list em,.business-stat-name,.business-stat-rank,.business-stat-empty{color:#fff!important;text-shadow:none!important}.business-panel{width:100%;min-width:0;height:100%;box-sizing:border-box;overflow:hidden}.business-chart-tooltip{position:fixed;z-index:9999;min-width:148px;max-width:220px;padding:8px 10px;pointer-events:none;color:#e5fcffe6;border:1px solid rgba(48,220,255,.44);background:linear-gradient(135deg,rgba(6,33,49,.96),rgba(2,18,30,.92)),radial-gradient(circle at 12% 0%,rgba(36,246,196,.22),transparent 54%);box-shadow:inset 0 0 12px #30dcff14,0 0 10px #30dcff24;backdrop-filter:blur(3px)}.business-chart-tooltip strong{display:block;max-width:100%;color:#fff;font-size:13px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-chart-tooltip span{display:block;margin-top:4px;color:#dcf8ffc7;font-size:12px;line-height:15px;white-space:nowrap}.business-panel-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#ffffff85;font-size:14px}@keyframes businessDataPulse{0%,to{filter:brightness(1);box-shadow:0 0 5px #24f6c414}50%{filter:brightness(1.12);box-shadow:0 0 9px #24f6c429}}@keyframes businessDataSweep{0%{transform:translate(-130%)}to{transform:translate(130%)}}@keyframes businessColumnReload{0%,8%{opacity:.46;transform:scaleY(.22);filter:saturate(.82) brightness(.72);box-shadow:0 0 4px #30dcff14}20%{opacity:.82;transform:scaleY(.72);filter:saturate(1.08) brightness(1.02);box-shadow:0 0 7px #30dcff29}34%{opacity:1;transform:scaleY(1);filter:saturate(1.12) brightness(1.06);box-shadow:0 0 9px #30dcff38}54%{opacity:1;transform:scaleY(1);filter:saturate(1.02) brightness(1.02);box-shadow:0 0 7px #30dcff29}to{opacity:.74;transform:scaleY(.9);filter:saturate(.96) brightness(.92);box-shadow:0 0 5px #30dcff1a}}@keyframes businessColumnReloadCap{0%,16%{opacity:0;transform:skew(-36deg) translateY(9px)}30%{opacity:.9;transform:skew(-36deg) translateY(0)}48%,to{opacity:0;transform:skew(-36deg) translateY(-9px)}}@keyframes businessLineFlow{to{stroke-dashoffset:-28}}@keyframes businessDotPulse{0%,to{r:3;opacity:.82}50%{r:4.8;opacity:1}}@keyframes businessActiveDotPulse{0%,to{r:5.2}50%{r:7}}.business-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;padding:8px 14px 9px;box-sizing:border-box}.business-metric-item{min-width:0;padding:8px 10px;background:linear-gradient(135deg,rgba(22,90,108,.62),rgba(5,26,40,.68));border:1px solid rgba(48,220,255,.18)}.business-metric-item span{display:block;color:#ffffff9e;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-metric-item strong{display:inline-block;margin-top:5px;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:22px;line-height:24px}.business-metric-item em{margin-left:4px;color:#ffffff94;font-size:11px;font-style:normal}.business-icon-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:8px 10px;height:100%;padding:8px 14px 9px;box-sizing:border-box;overflow:hidden}.business-icon-metric-item{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:8px;min-width:0;min-height:0;padding:7px 8px;box-sizing:border-box;overflow:hidden;border:1px solid rgba(48,220,255,.16);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02)),linear-gradient(180deg,rgba(8,41,56,.72),rgba(4,20,32,.66))}.business-icon-metric-item:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:#24f6c4;box-shadow:0 0 10px #24f6c4b3}.business-icon-metric-item.is-tone-1:before{background:#32dcff;box-shadow:0 0 10px #32dcffb3}.business-icon-metric-item.is-tone-2:before{background:rgba(48,220,255,.86);box-shadow:0 0 8px #30dcff3d}.business-icon-metric-item.is-tone-3:before{background:rgba(25,255,198,.74);box-shadow:0 0 8px #19ffc633}.business-icon-metric-mark{position:relative;display:block;width:42px;height:42px;border:1px solid rgba(48,220,255,.4);border-radius:8px;background:radial-gradient(circle at 50% 42%,rgba(36,246,196,.25),rgba(36,246,196,.04) 64%),linear-gradient(135deg,rgba(48,220,255,.22),rgba(4,24,36,.28));box-shadow:inset 0 0 16px #30dcff29,0 0 12px #30dcff24;overflow:hidden}.business-icon-metric-mark:before,.business-icon-metric-mark:after,.business-icon-metric-mark span,.business-icon-metric-mark span:before,.business-icon-metric-mark span:after{content:"";position:absolute;box-sizing:border-box}.business-icon-metric-mark.is-yield span{left:12px;right:12px;bottom:9px;height:22px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#7dfdff,#20d8ff 54%,rgba(36,246,196,.42));box-shadow:0 0 10px #20d8ff94}.business-icon-metric-mark.is-yield:before,.business-icon-metric-mark.is-yield:after{bottom:9px;width:6px;height:16px;border-radius:6px 6px 3px 3px;background:rgba(126,226,105,.72)}.business-icon-metric-mark.is-yield:before{left:7px}.business-icon-metric-mark.is-yield:after{right:7px}.business-icon-metric-mark.is-leaf span{left:10px;top:10px;width:22px;height:22px;border-radius:22px 4px;background:linear-gradient(135deg,rgba(139,247,255,.92),rgba(48,220,255,.72));transform:rotate(-24deg);box-shadow:0 0 12px #24f6c485}.business-icon-metric-mark.is-leaf span:after{left:10px;top:3px;width:2px;height:18px;border-radius:2px;background:rgba(3,45,43,.5);transform:rotate(44deg)}.business-icon-metric-mark.is-rate:before{left:9px;top:10px;width:24px;height:24px;border:4px solid rgba(50,220,255,.32);border-top-color:#ffffffe0;border-right-color:#24f6c4;border-radius:50%;transform:rotate(38deg)}.business-icon-metric-mark.is-rate span{left:20px;top:20px;width:12px;height:3px;border-radius:3px;background:#ffffff;transform:rotate(-30deg);transform-origin:left center;box-shadow:0 0 8px #fff9}.business-icon-metric-mark.is-risk:before{left:10px;top:9px;width:22px;height:22px;border-left:3px solid rgba(48,220,255,.84);border-bottom:3px solid rgba(48,220,255,.84);transform:rotate(-45deg);box-shadow:-4px 4px 8px #30dcff2e}.business-icon-metric-mark.is-risk span{left:20px;top:13px;width:3px;height:16px;border-radius:3px;background:rgba(255,255,255,.9);box-shadow:0 0 6px #30dcff38}.business-icon-metric-mark.is-town span,.business-icon-metric-mark.is-town span:before,.business-icon-metric-mark.is-town span:after,.business-icon-metric-mark.is-town:before{width:9px;height:9px;border-radius:2px;background:#32dcff;box-shadow:0 0 9px #32dcff80}.business-icon-metric-mark.is-town span{left:10px;top:10px}.business-icon-metric-mark.is-town span:before{left:13px;top:0}.business-icon-metric-mark.is-town span:after{left:0;top:13px}.business-icon-metric-mark.is-town:before{left:23px;top:23px;border:2px solid #24f6c4;background:transparent}.business-icon-metric-mark.is-area:before{left:8px;top:13px;width:26px;height:16px;border:2px solid #24f6c4;transform:skew(-18deg);background:linear-gradient(135deg,rgba(36,246,196,.34),rgba(50,220,255,.06))}.business-icon-metric-mark.is-area span{left:13px;top:19px;width:16px;height:2px;background:#32dcff;box-shadow:0 5px #32dcffb3}.business-icon-metric-mark.is-stack span,.business-icon-metric-mark.is-stack span:before,.business-icon-metric-mark.is-stack span:after{left:10px;width:22px;height:5px;border-radius:5px;background:linear-gradient(90deg,#32dcff,#24f6c4);box-shadow:0 0 9px #24f6c457}.business-icon-metric-mark.is-stack span{top:12px}.business-icon-metric-mark.is-stack span:before{top:8px}.business-icon-metric-mark.is-stack span:after{top:16px;background:linear-gradient(90deg,rgba(139,247,255,.9),rgba(48,220,255,.7))}.business-icon-metric-copy{min-width:0}.business-icon-metric-copy span{display:block;min-width:0;color:#dcf8ffc2;font-size:12px;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-icon-metric-copy strong{display:block;margin-top:3px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;line-height:22px;font-weight:800;text-shadow:0 0 14px rgba(48,220,255,.42);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.business-icon-metric-copy strong em{margin-left:3px;color:#ffffff94;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-spotlight{display:grid;grid-template-columns:142px minmax(0,1fr);gap:12px;height:100%;padding:10px 14px;box-sizing:border-box;overflow:hidden}.business-spotlight-main{position:relative;min-width:0;padding:13px 10px 10px;border:1px solid rgba(48,220,255,.22);background:radial-gradient(circle at 50% 38%,rgba(36,246,196,.26),rgba(36,246,196,.03) 62%),linear-gradient(180deg,rgba(48,220,255,.12),rgba(4,22,34,.36));text-align:center}.business-spotlight-main:before,.business-spotlight-main:after{content:"";position:absolute;left:18px;right:18px;height:1px;background:linear-gradient(90deg,rgba(48,220,255,0),rgba(48,220,255,.8),rgba(48,220,255,0))}.business-spotlight-main:before{top:8px}.business-spotlight-main:after{bottom:8px}.business-spotlight-main span,.business-spotlight-main small{display:block;overflow:hidden;color:#d2f5ffb8;font-size:12px;line-height:16px;white-space:nowrap;text-overflow:ellipsis}.business-spotlight-main strong{display:block;margin:10px 0 6px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:30px;line-height:32px;font-weight:800;text-shadow:0 0 18px rgba(48,220,255,.48);white-space:nowrap}.business-spotlight-main strong em{margin-left:4px;color:#ffffffa3;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:11px;font-style:normal;font-weight:500}.business-spotlight-main small{color:#c9fbffd1}.business-spotlight-side{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;min-width:0}.business-spotlight-chip{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-areas:"dot name" "dot value" "dot note";align-content:center;gap:1px 8px;min-width:0;padding:8px 10px;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.09),rgba(48,220,255,.02));box-sizing:border-box}.business-spotlight-chip i{grid-area:dot;align-self:center;width:8px;height:28px;border-left:3px solid #24f6c4}.business-spotlight-chip span,.business-spotlight-chip small{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.business-spotlight-chip span{grid-area:name;color:#ffffffb3;font-size:11px;line-height:14px}.business-spotlight-chip strong{grid-area:value;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:20px;white-space:nowrap}.business-spotlight-chip strong em{margin-left:3px;color:#ffffff8f;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-spotlight-chip small{grid-area:note;color:#c9fbffb8;font-size:10px;line-height:12px}.business-donut{display:grid;grid-template-columns:136px minmax(0,1fr);align-items:stretch;gap:8px;height:100%;padding:7px 13px 8px 14px;box-sizing:border-box}.business-donut.is-dense{grid-template-columns:126px minmax(0,1fr);padding:6px 12px 7px}.business-donut.is-dense .business-donut-visual{width:126px;height:120px}.business-donut.is-dense .business-donut-legend{justify-content:flex-start;gap:3px}.business-donut.is-dense .business-donut-row{min-height:20px;grid-template-columns:12px minmax(0,1fr) 52px 28px;gap:5px}.business-donut.is-dense .business-donut-row span{font-size:11px;line-height:13px}.business-donut.is-dense .business-donut-row strong{font-size:13px;line-height:15px}.business-donut.is-dense .business-donut-row em{font-size:10px}.business-donut.is-variant-ring{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:11px;padding:8px 13px 8px 15px}.business-donut.is-variant-ring .business-donut-legend{justify-content:stretch;gap:6px}.business-donut.is-variant-ring .business-donut-row{flex:1 1 0;grid-template-columns:12px minmax(0,1fr) max-content max-content;gap:5px;min-height:22px;padding:0 1px}.business-donut.is-variant-ring .business-donut-row i{width:8px;height:8px;border-width:2px;background:rgba(5,28,42,.86)}.business-donut.is-variant-ring .business-donut-row strong{font-size:16px;line-height:18px}.business-donut.is-variant-ring.is-dense{grid-template-columns:148px minmax(0,1fr);gap:10px;padding:5px 12px 6px 14px}.business-donut.is-variant-ring.is-dense .business-ring-visual{width:148px;height:148px}.business-donut.is-variant-ring.is-dense .business-ring-chart{width:144px;height:144px}.business-donut.is-variant-ring.is-dense .business-ring-inner{top:37px;right:32px;bottom:35px;left:32px}.business-donut.is-variant-ring.is-dense .business-ring-inner strong{font-size:22px;line-height:24px}.business-donut.is-variant-ring.is-dense .business-ring-inner span{max-width:74px;font-size:11px;line-height:13px}.business-donut.is-variant-ring.is-dense .business-donut-legend{align-self:center;justify-content:center;height:auto;max-height:100%;gap:5px}.business-donut.is-variant-ring.is-dense .business-donut-row{flex:1 1 0;grid-template-columns:10px minmax(0,1fr) max-content max-content;gap:5px;min-height:21px;padding:2px}.business-donut.is-variant-ring.is-dense .business-donut-row i{width:8px;height:8px;border-width:1px}.business-donut.is-variant-ring.is-dense .business-donut-row span{font-size:12px;line-height:15px}.business-donut.is-variant-ring.is-dense .business-donut-row strong{font-size:15px;line-height:17px}.business-donut.is-variant-ring.is-dense .business-donut-row em{font-size:10px}.business-donut-visual{position:relative;align-self:center;width:136px;height:136px;min-width:0}.business-rose{display:grid;grid-template-columns:158px minmax(0,1fr);align-items:center;gap:4px;height:100%;padding:4px 12px 7px 8px;box-sizing:border-box}.business-rose-visual{position:relative;width:158px;height:136px;min-width:0}.business-rose-visual svg{width:100%;height:100%;overflow:visible}.business-rose-segment{opacity:.92;stroke-width:1.5;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;transition:opacity .3s ease,filter .3s ease,transform .3s ease;filter:drop-shadow(0 2px 2px rgba(0,10,18,.34)) drop-shadow(0 0 5px rgba(48,220,255,.18))}.business-rose-segment.is-active{opacity:1;transform:scale(1.035);filter:drop-shadow(0 3px 5px rgba(0,10,18,.42)) drop-shadow(0 0 10px rgba(36,246,196,.42))}.business-rose-guides line{stroke-width:1;stroke-opacity:.5}.business-rose-labels text{fill:#e2fcffad;font-size:10px;font-weight:600;dominant-baseline:middle}.business-rose-glow{fill:#24f6c41a;stroke:#30dcff3d;stroke-width:1;filter:drop-shadow(0 0 8px rgba(36,246,196,.26))}.business-rose-hole{fill:#03121ef0;stroke:#e3fdff38;stroke-width:1.2}.business-rose-legend{gap:6px;padding-right:0}.business-rose-row{grid-template-columns:13px minmax(0,1fr) 56px 28px;gap:7px;min-height:23px}.business-rose-row i{width:10px;height:10px;border-width:1px;box-shadow:0 0 7px currentColor}.business-three-pie{width:100%;height:100%}.business-three-pie-center{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;height:auto;color:#fff;text-align:center;text-shadow:0 0 10px rgba(0,0,0,.96);pointer-events:none}.business-three-pie-center strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;line-height:22px;font-weight:800;letter-spacing:0;transform:translateY(-2px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-three-pie-center span{max-width:86px;margin-top:0;color:#fffffff5;font-size:10px;line-height:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-ring-visual{position:relative;display:flex;align-items:center;justify-content:center;width:132px;height:132px;min-width:0;isolation:isolate}.business-ring-visual:before{content:"";position:absolute;left:11px;right:11px;bottom:12px;height:24px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.24),rgba(48,220,255,0) 72%);filter:blur(2px);pointer-events:none}.business-ring-chart{position:relative;z-index:1;width:128px;height:128px;overflow:visible}.business-ring-halo{fill:#041622e0;stroke:#30dcff29;stroke-width:1;filter:none}.business-ring-track,.business-ring-segment{fill:none;transform:rotate(-90deg);transform-origin:80px 80px}.business-ring-track{stroke:#30dcff1f;stroke-width:22}.business-ring-segment{stroke-width:22;stroke-linecap:round;opacity:.9;transition:stroke-width .35s ease,opacity .35s ease,filter .35s ease;filter:none}.business-ring-segment.is-active{stroke-width:24;opacity:1;filter:none}.business-ring-inner{position:absolute;top:33px;right:30px;bottom:31px;left:30px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;text-shadow:none;pointer-events:none}.business-ring-inner strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:22px;line-height:24px;font-weight:800;letter-spacing:0}.business-ring-inner span{display:none;max-width:70px;margin-top:2px;color:#fffffff0;font-size:11px;line-height:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-donut-legend{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;gap:7px;overflow-y:auto;padding-right:2px}.business-donut-legend::-webkit-scrollbar{width:3px}.business-donut-legend::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-donut-row{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr) 58px 28px;align-items:center;gap:8px;min-height:24px;padding:0 2px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.055);transition:background .35s ease,border-color .35s ease}.business-donut-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.2;pointer-events:none}.business-donut-row i{position:relative;z-index:1;width:10px;height:10px;border:2px solid #24f6c4;border-radius:50%;box-sizing:border-box}.business-donut-row span{position:relative;z-index:1;min-width:0;color:#ffffffe0;font-size:13px;line-height:15px;font-weight:700;white-space:normal}.business-donut-row strong{position:relative;z-index:1;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:800;line-height:20px;text-align:right}.business-donut-row em{position:relative;z-index:1;color:#ffffff85;font-size:11px;font-style:normal;white-space:nowrap}.business-donut-row.is-active{border-color:#30dcff38;background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04))}.business-donut-row.is-active span,.business-donut-row.is-active strong{color:#fff}.business-donut-row.is-active i{box-shadow:none;transform:scale(1.2)}.business-structure{display:grid;grid-template-rows:32px minmax(0,1fr);gap:7px;height:100%;padding:8px 13px 9px;box-sizing:border-box;overflow:hidden}.business-structure-overview{display:flex;align-items:center;min-width:0}.business-structure-band{display:flex;align-self:center;width:100%;height:25px;padding:4px;background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(36,246,196,.035));border:1px solid rgba(48,220,255,.2);box-shadow:inset 0 0 0 1px #30dcff06}.business-structure-band i{position:relative;display:block;min-width:7px;height:100%;box-shadow:none;overflow:hidden}.business-structure-band i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);opacity:0;transform:translate(-130%)}.business-structure-band i.is-active{z-index:1}.business-structure-band i.is-active:before{opacity:1;animation:businessDataSweep 1.8s ease-in-out infinite}.business-structure-focus{min-width:0;padding:6px 8px;background:linear-gradient(135deg,rgba(36,246,196,.16),rgba(48,220,255,.05));border:1px solid rgba(48,220,255,.18)}.business-structure-focus span{display:block;color:#ffffff85;font-size:10px;line-height:12px}.business-structure-focus strong{display:block;min-width:0;margin-top:1px;color:#fff;font-size:12px;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-structure-focus em{display:inline-block;margin-top:3px;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:17px;line-height:18px;font-style:normal;font-weight:800}.business-structure-focus small{display:block;margin-top:1px;color:#c9fbffd1;font-size:11px;line-height:13px}.business-structure-list{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(22px,1fr);align-content:stretch;gap:5px;min-height:0;overflow:hidden;padding-right:0}.business-structure-list::-webkit-scrollbar{width:3px}.business-structure-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-structure-row{position:relative;display:grid;grid-template-columns:9px minmax(0,1fr) 70px 42px;align-items:center;gap:5px;min-height:0;padding:0 7px;overflow:hidden;background:rgba(48,220,255,.04);border:1px solid rgba(48,220,255,.08);transition:border-color .3s ease,background .3s ease}.business-structure-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.11;pointer-events:none}.business-structure-row i{position:relative;z-index:1;width:7px;height:7px;box-shadow:none}.business-structure-row span{position:relative;z-index:1;min-width:0;color:#ffffffc2;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-structure-row strong{position:relative;z-index:1;color:#dffcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:13px;text-align:right;white-space:nowrap}.business-structure-row strong em{margin-left:2px;color:#ffffff80;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-structure-row small{position:relative;z-index:1;color:#c9fbffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:12px;text-align:right;white-space:nowrap}.business-structure-row.is-active{background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.04));border-color:#24f6c45c}.business-structure-row.is-active span,.business-structure-row.is-active strong{color:#fff}.business-capacity{display:grid;grid-template-rows:22px 40px minmax(34px,1fr) 18px;gap:5px;height:100%;padding:8px 14px 7px;box-sizing:border-box;overflow:hidden}.business-capacity-head,.business-capacity-town{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0}.business-capacity-head{padding-bottom:3px;border-bottom:1px solid rgba(48,220,255,.12)}.business-capacity-head span,.business-capacity-town span{min-width:0;color:#dcf8ffc2;font-size:11px;line-height:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-capacity-head strong,.business-capacity-town strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:16px;font-weight:800;white-space:nowrap;text-shadow:none}.business-capacity-head strong em,.business-capacity-town strong em{margin-left:3px;color:#ffffff8f;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-capacity-band{display:flex;align-self:center;height:32px;padding:5px;border:1px solid rgba(48,220,255,.2);background:linear-gradient(90deg,rgba(48,220,255,.11),rgba(48,220,255,.03));box-shadow:inset 0 0 0 1px #30dcff08}.business-capacity-band i{position:relative;display:block;min-width:8px;height:100%;box-shadow:none;overflow:hidden}.business-capacity-band i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);opacity:0;transform:translate(-130%)}.business-capacity-band i.is-active{z-index:1}.business-capacity-band i.is-active:before{opacity:1;animation:businessDataSweep 1.8s ease-in-out infinite}.business-capacity-list{display:grid;align-content:center;gap:4px;min-height:0}.business-capacity-row{display:grid;grid-template-columns:9px minmax(0,1fr) 66px 40px;align-items:center;gap:5px;min-width:0}.business-capacity-row i{width:7px;height:7px;box-shadow:none}.business-capacity-row span{min-width:0;color:#ffffffc2;font-size:10px;line-height:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-capacity-row strong{color:#dffcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:13px;text-align:right;white-space:nowrap}.business-capacity-row strong em{margin-left:2px;color:#ffffff80;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-capacity-row small{color:#c9fbffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:12px;text-align:right;white-space:nowrap}.business-capacity-row.is-active span,.business-capacity-row.is-active strong,.business-capacity-row.is-active small{color:#fff}.business-capacity-row.is-active i{transform:scale(1.24)}.business-capacity-town{min-width:0;padding-top:3px;border-top:1px solid rgba(48,220,255,.1)}.business-capacity-town strong{color:#24f6c4;font-size:12px;line-height:13px;text-shadow:none}.business-bars{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(var(--bar-row-count, 1),minmax(0,1fr));gap:6px;width:100%;min-width:0;height:100%;padding:8px 14px 9px;box-sizing:border-box;overflow:hidden;scrollbar-width:none}.business-bars::-webkit-scrollbar{display:none}.business-bars::-webkit-scrollbar-thumb{background:transparent}.business-bars.is-dense{gap:4px;padding:5px 14px 6px}.business-bars.is-dense .business-bar-row{min-height:0}.business-bars.is-dense .business-bar-name{font-size:11px;line-height:12px}.business-bars.is-dense .business-bar-track{height:5px;margin-top:2px}.business-bars.is-long{gap:2px;padding:3px 14px 4px}.business-bars.is-long .business-bar-row{min-height:0}.business-bars.is-long .business-bar-name{font-size:10px;line-height:11px}.business-bars.is-long .business-bar-track{height:4px;margin-top:1px;padding:1px}.business-bars.is-long .business-bar-row strong{font-size:12px;line-height:12px}.business-bars.is-long .business-bar-row strong em,.business-bars.is-long .business-bar-row strong small{font-size:10px}.business-bars.is-single{gap:5px;padding:6px 14px}.business-bars.is-single .business-bar-row{min-height:22px}.business-bars.is-single .business-bar-name{font-size:11px;line-height:13px}.business-bars.is-single .business-bar-track{height:5px;margin-top:2px;padding:1px}.business-bars.is-single .business-bar-row strong{font-size:13px;line-height:14px}.business-bars.is-single .business-bar-row strong em,.business-bars.is-single .business-bar-row strong small{font-size:10px}.business-bars.is-distribution{gap:4px;padding:6px 14px 7px}.business-bars.is-distribution .business-bar-row{min-height:0;padding:0 0 2px;border-bottom:1px solid rgba(48,220,255,.07)}.business-bars.is-distribution .business-bar-name{position:relative;padding-left:11px;color:#e7faffd6;font-size:11px;line-height:13px}.business-bars.is-distribution .business-bar-name:before{content:"";position:absolute;left:0;top:4px;width:5px;height:5px;border-radius:50%;background:#24f6c4;box-shadow:none}.business-bars.is-distribution .business-bar-track{height:7px;margin-top:4px;padding:1px;border-color:#30dcff2e;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.03))}.business-bars.is-distribution .business-bar-row strong{color:#fff;font-size:12px;line-height:15px;text-shadow:none}.business-bars.is-distribution.is-long{gap:3px;padding:5px 14px 6px}.business-bars.is-distribution.is-long .business-bar-row{min-height:22px}.business-bars.is-distribution.is-long .business-bar-name{font-size:11px;line-height:12px}.business-bars.is-capacity{gap:12px;padding:12px 16px 10px;overflow:hidden}.business-bars.is-capacity .business-bar-row{grid-template-columns:minmax(0,1fr) auto;min-height:24px;padding:0;border-bottom:0}.business-bars.is-capacity .business-bar-name{padding-left:0;color:#e8faffd1;font-size:11px;line-height:13px}.business-bars.is-capacity .business-bar-name:before{display:none}.business-bars.is-capacity .business-bar-track{height:5px;margin-top:5px;padding:1px;border-color:#acbfbc38;background:rgba(115,208,255,.05)}.business-bars.is-capacity .business-bar-track i{min-width:10px;box-shadow:none}.business-bars.is-capacity .business-bar-row strong{color:#24f6c4;font-size:12px;line-height:13px;text-shadow:none}.business-bars.is-rank-bar{gap:2px;padding:3px 14px 2px;overflow:hidden}.business-bars.is-rank-bar .business-bar-row{position:relative;grid-template-columns:26px minmax(0,1fr) auto;grid-template-areas:"rank name value" "rank track track";align-items:center;min-height:18px;gap:1px 8px;padding:1px 0 2px;border-bottom:1px solid rgba(48,220,255,.075)}.business-bars.is-rank-bar .business-bar-rank{grid-area:rank;display:flex;width:18px;height:18px;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.28);background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(36,246,196,.055)),rgba(4,28,42,.52);color:#e8fcffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;font-weight:800;box-shadow:inset 0 0 10px #30dcff14}.business-bars.is-rank-bar .business-bar-name{color:#f5fdfff0;font-size:11px;line-height:13px;font-weight:700}.business-bars.is-rank-bar .business-bar-track{position:relative;height:5px;margin-top:0;padding:1px;overflow:hidden;border-color:#30dcff33;background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 28px),linear-gradient(90deg,rgba(48,220,255,.13),rgba(36,246,196,.035))}.business-bars.is-rank-bar .business-bar-track i{min-width:12px;box-shadow:inset 0 0 5px #ffffff29}.business-bars.is-rank-bar .business-bar-track i:before{content:"";position:absolute;right:0;top:-2px;width:3px;height:calc(100% + 4px);background:rgba(255,255,255,.86);box-shadow:none}.business-bars.is-rank-bar .business-bar-row strong{color:#fff;font-size:13px;line-height:14px;text-shadow:none}.business-bars.is-rank-bar .business-bar-row strong em,.business-bars.is-rank-bar .business-bar-row strong small{color:#eefdffc7;font-size:10px}.business-bars.is-rank-bar .business-bar-row.is-active .business-bar-rank{border-color:#30dcff7a;color:#c9fbff;box-shadow:inset 0 0 12px #30dcff14,0 0 3px #30dcff14}.business-bars.is-park-bar{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:16px 18px 15px;overflow:hidden}.business-bars.is-park-bar .business-bar-row{grid-template-columns:68px minmax(0,1fr) 88px;grid-template-areas:"name track value";align-items:center;min-height:32px;gap:10px;padding:0;border-bottom:0}.business-bars.is-park-bar .business-bar-name{position:relative;min-width:0;padding-left:13px;overflow:hidden;color:#f6feffeb;font-size:12px;line-height:15px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.business-bars.is-park-bar .business-bar-name:before{content:"";position:absolute;left:0;top:5px;width:6px;height:6px;background:var(--bar-color, #30dcff);box-shadow:0 0 3px var(--bar-color, #30dcff)}.business-bars.is-park-bar .business-bar-track{position:relative;height:12px;margin-top:0;padding:0;overflow:visible;border:1px solid rgba(48,220,255,.12);background:repeating-linear-gradient(90deg,rgba(216,250,255,.09) 0 1px,transparent 1px 44px),linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025));box-shadow:none}.business-bars.is-park-bar .business-bar-track i{position:relative;height:100%;min-width:14px;box-shadow:inset 0 1px #fff3}.business-bars.is-park-bar .business-bar-track i:after{content:"";position:absolute;right:-2px;top:-2px;width:4px;height:calc(100% + 4px);border-radius:2px;background:rgba(248,255,255,.82);box-shadow:0 0 4px #f8ffff38}.business-bars.is-park-bar .business-bar-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;font-weight:800;text-align:left;white-space:nowrap;text-shadow:0 0 5px rgba(255,255,255,.18)}.business-bars.is-park-bar .business-bar-row strong em{margin-left:3px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:11px;font-style:normal;font-weight:600}.business-bars.is-park-bar .business-bar-row strong small{display:block;margin-top:2px;color:#eefdff9e;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:12px;font-weight:700}.business-bars.is-park-bar .business-bar-row.is-active .business-bar-name,.business-bars.is-park-bar .business-bar-row.is-active strong{color:#fff}.business-bars.is-park-bar .business-bar-row.is-active .business-bar-track i{animation:none}.business-bars.is-race-bar{display:flex;flex-direction:column;justify-content:flex-start;gap:5px;padding:8px 10px 8px 13px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.46) rgba(48,220,255,.08)}.business-bars.is-race-bar::-webkit-scrollbar{width:4px}.business-bars.is-race-bar::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.business-bars.is-race-bar::-webkit-scrollbar-thumb{background:rgba(48,220,255,.46);border-radius:4px}.business-bars.is-race-bar .business-bar-row{grid-template-columns:112px minmax(0,1fr) 96px;grid-template-areas:"name track value";align-items:center;min-height:28px;gap:7px;padding:0;border-bottom:0}.business-bars.is-race-bar .business-bar-name{position:relative;padding-left:13px;color:#f0fdffeb;font-size:11px;line-height:12px;font-weight:700;white-space:normal;word-break:break-all;overflow:visible;text-overflow:clip}.business-bars.is-race-bar .business-bar-name:before{content:"";position:absolute;left:0;top:4px;width:7px;height:7px;background:var(--bar-color, currentColor);box-shadow:none}.business-bars.is-race-bar .business-bar-track{position:relative;height:22px;margin-top:0;padding:0;overflow:visible;border:0;background:repeating-linear-gradient(90deg,rgba(214,250,255,.12) 0 1px,transparent 1px 52px),linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025))}.business-bars.is-race-bar .business-bar-track:before{content:"";position:absolute;left:0;top:-8px;bottom:-8px;width:1px;background:rgba(213,247,255,.32)}.business-bars.is-race-bar .business-bar-track i{position:relative;height:100%;min-width:18px;box-shadow:inset 0 1px #ffffff38}.business-bars.is-race-bar .business-bar-row:nth-child(1) .business-bar-name{color:#24f6c4}.business-bars.is-race-bar .business-bar-row:nth-child(2) .business-bar-name{color:#32dcff}.business-bars.is-race-bar .business-bar-row:nth-child(3) .business-bar-name{color:#8bf7ff}.business-bars.is-race-bar .business-bar-row strong{grid-area:value;color:#fff;font-size:14px;line-height:16px;text-align:left;text-shadow:none}.business-bars.is-race-bar .business-bar-row strong em{margin-left:3px;color:#eefdffb8;font-size:11px}.business-bars.is-race-bar .business-bar-row strong small{display:block;margin:1px 0 0;color:#eefdffb8;font-size:10px;line-height:11px}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation){display:grid;grid-template-rows:repeat(var(--bar-row-count, 1),minmax(0,1fr));align-content:stretch;gap:2px;padding:5px 8px 6px 12px;overflow:hidden;scrollbar-width:none}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row{grid-template-columns:64px minmax(52px,1fr) 90px;grid-template-areas:"name track value";min-height:0;gap:5px;align-items:center}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-name{padding-left:10px;color:#f0fdffe6;font-size:10px;line-height:12px;white-space:nowrap;word-break:keep-all}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-name:before{top:3px;width:5px;height:5px}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-track{height:8px;background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.025))}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-track:before{top:-3px;bottom:-3px;background:rgba(213,247,255,.2)}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-track i{min-width:8px}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row strong{overflow:visible;color:#fff;font-size:12px;line-height:13px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row strong em,.business-bars.is-race-bar:not(.is-long):not(.is-few-rows):not(.is-degradation) .business-bar-row strong small{display:inline;margin-left:3px;color:#eefdffb8;font-size:10px;line-height:13px}.business-bars.is-race-bar.is-few-rows{display:flex;justify-content:center;gap:13px;padding:15px 12px 16px 13px}.business-bars.is-race-bar.is-few-rows .business-bar-row{min-height:42px;grid-template-columns:112px minmax(0,1fr) 96px;gap:9px}.business-bars.is-race-bar.is-few-rows .business-bar-name{padding-left:15px;font-size:12px;line-height:15px;word-break:keep-all;white-space:nowrap}.business-bars.is-race-bar.is-few-rows .business-bar-name:before{top:4px;width:8px;height:8px}.business-bars.is-race-bar.is-few-rows .business-bar-track{height:25px}.business-bars.is-race-bar.is-few-rows .business-bar-track:before{top:-9px;bottom:-9px}.business-bars.is-race-bar.is-few-rows .business-bar-row strong{font-size:15px;line-height:17px}.business-bars.is-race-bar.is-few-rows .business-bar-row strong em{font-size:11px}.business-bars.is-race-bar.is-few-rows .business-bar-row strong small{margin-top:2px;font-size:11px;line-height:12px}.business-bars.is-race-bar.is-degradation{display:flex;justify-content:flex-start;gap:10px;padding:13px 15px 9px 14px}.business-bars.is-race-bar.is-degradation .business-bar-row{grid-template-columns:118px minmax(0,1fr) 104px;min-height:38px;gap:10px}.business-bars.is-race-bar.is-degradation .business-bar-name{padding-left:14px;font-size:12px;line-height:15px;word-break:keep-all;white-space:nowrap}.business-bars.is-race-bar.is-degradation .business-bar-name:before{top:4px;width:8px;height:8px}.business-bars.is-race-bar.is-degradation .business-bar-track{height:25px;background:repeating-linear-gradient(90deg,rgba(214,250,255,.1) 0 1px,transparent 1px 44px),linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.025))}.business-bars.is-race-bar.is-degradation .business-bar-track:before{top:-6px;bottom:-6px}.business-bars.is-race-bar.is-degradation .business-bar-row strong{font-size:16px;line-height:17px}.business-bars.is-race-bar.is-degradation .business-bar-row strong em{font-size:12px}.business-bars.is-race-bar.is-degradation .business-bar-row strong small{margin-top:3px;font-size:12px;line-height:13px}.business-bars.is-race-nowrap .business-bar-row{grid-template-columns:172px minmax(0,1fr) 88px;gap:7px}.business-bars.is-race-nowrap .business-bar-name{font-size:12px;line-height:14px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:clip}.business-bars.is-race-relaxed{justify-content:center;gap:11px;padding:14px 14px 15px}.business-bars.is-race-relaxed .business-bar-row{grid-template-columns:168px minmax(0,1fr) 94px;min-height:42px;gap:8px}.business-bars.is-race-relaxed .business-bar-name{font-size:13px;line-height:16px}.business-bars.is-race-relaxed .business-bar-track{height:27px}.business-bars.is-race-relaxed .business-bar-track:before{top:-10px;bottom:-10px}.business-bars.is-race-relaxed .business-bar-row strong{font-size:15px;line-height:17px}.business-bars.is-race-relaxed .business-bar-row strong small{margin-top:2px;font-size:11px;line-height:12px}.business-bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name value" "track track";align-items:end;gap:2px 10px;min-height:0;max-height:none}.business-bar-name{grid-area:name;min-width:0;color:#ffffffc7;font-size:12px;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-bar-track{grid-area:track;height:7px;margin-top:4px;padding:2px;background:rgba(48,220,255,.08);border:1px solid rgba(48,220,255,.16)}.business-bar-track i{position:relative;display:block;height:100%;min-width:8px;box-shadow:none;overflow:hidden}.business-bar-track i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:0;transform:translate(-130%)}.business-bar-row.is-active .business-bar-track i{animation:none}.business-bar-row.is-active .business-bar-track i:after{opacity:0;animation:none}.business-bar-row.is-active .business-bar-name,.business-bar-row.is-active strong{color:#fff}.business-bar-row strong,.business-split-row strong{grid-area:value;color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;text-align:right;line-height:15px;white-space:nowrap}.business-bar-row strong em,.business-bar-row strong small,.business-split-row strong em,.business-split-row strong small{margin-left:2px;color:#ffffff8a;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-bar-row strong small,.business-split-row strong small{display:inline;margin-left:4px;line-height:15px;white-space:nowrap}.business-bar-row strong{overflow:hidden;text-overflow:ellipsis}.business-columns{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));align-items:stretch;gap:5px;height:100%;padding:32px 12px 8px;box-sizing:border-box;overflow:hidden}.business-columns:before{content:"";position:absolute;left:12px;right:12px;top:50px;bottom:41px;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(159,220,230,.22) 0 1px,transparent 1px 17px);opacity:0}.business-columns::-webkit-scrollbar{height:3px}.business-columns::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-columns.is-dense{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));grid-auto-rows:minmax(0,1fr);gap:4px;padding:34px 10px 8px}.business-columns.is-dense .business-column-item{grid-template-rows:minmax(38px,1fr) 28px;min-width:0}.business-columns.is-dense .business-column-item strong{width:100%;font-size:11px;line-height:15px;text-align:center}.business-columns.is-dense .business-column-item span{max-width:100%;font-size:10px;line-height:12px;white-space:nowrap}.business-columns.is-dense .business-column-track{width:8px;height:100%;min-height:20px}.business-columns.is-variant-pin{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:5px;padding:8px 9px 7px}.business-columns.is-variant-pin:before{opacity:.56}.business-columns.is-variant-pin .business-column-item{position:relative;z-index:1;grid-template-rows:minmax(62px,1fr) 26px}.business-columns.is-variant-pin .business-column-item strong{position:relative;z-index:2;min-width:42px;padding-bottom:2px;color:#e8fcff;font-size:11px;line-height:14px;text-shadow:0 0 9px rgba(255,255,255,.36)}.business-columns.is-variant-pin .business-column-item strong:after{content:"";position:absolute;left:50%;bottom:-4px;width:18px;height:1px;border-top:1px dashed rgba(220,250,255,.62);transform:translate(-2px) rotate(12deg);transform-origin:left center}.business-columns.is-variant-pin .business-column-item span{max-width:48px;color:#ebfcffc7;font-size:10px;line-height:11px;-webkit-line-clamp:2}.business-columns.is-variant-pin .business-column-track{width:7px;height:74px;min-height:46px;border:0;background:linear-gradient(180deg,rgba(48,220,255,.07),rgba(48,220,255,.02))}.business-columns.is-variant-pin .business-column-track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(48,220,255,.22);transform:translate(-50%)}.business-columns.is-variant-pin .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:21px;height:6px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.34),rgba(48,220,255,0) 72%);transform:translate(-50%)}.business-columns.is-variant-pin .business-column-track i{left:1px;right:1px;border-radius:6px 6px 2px 2px;box-shadow:0 0 3px #32dcff29}.business-columns.is-variant-pin .business-column-track i:before{left:50%;right:auto;top:-6px;width:9px;height:9px;border:2px solid #c9fcff;border-radius:2px;background:rgba(3,27,41,.9);box-shadow:0 0 3px #30dcff2e;transform:translate(-50%) rotate(45deg);filter:none}.business-columns.is-variant-pin .business-column-track i:after{display:none}.business-columns.is-variant-slim{grid-template-columns:repeat(auto-fit,minmax(26px,1fr));gap:6px;padding:24px 10px 6px}.business-columns.is-variant-slim.is-dense{gap:4px;padding:34px 10px 8px}.business-columns.is-variant-slim .business-column-track{width:8px}.business-columns.is-variant-slim .business-column-track i{border-radius:1px 1px 0 0}.business-columns.is-variant-water{grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:6px;padding:20px 13px 7px}.business-columns.is-variant-water:before{top:40px;bottom:38px;opacity:.52;background:repeating-linear-gradient(to bottom,rgba(117,232,255,.18) 0 1px,transparent 1px 18px)}.business-columns.is-variant-water .business-column-item{grid-template-rows:minmax(70px,1fr) 30px}.business-columns.is-variant-water .business-column-item strong{color:#f4feff;font-size:11px;line-height:15px;text-shadow:0 0 10px rgba(168,251,255,.36)}.business-columns.is-variant-water .business-column-item span{color:#ebfcffe0;font-size:10px;line-height:12px}.business-columns.is-variant-water .business-column-track{width:10px;min-height:56px;border:0;border-radius:10px 10px 3px 3px;background:linear-gradient(180deg,rgba(49,220,255,.11),rgba(47,151,255,.025)),rgba(7,35,52,.34);box-shadow:inset 0 0 10px #31dcff14,0 0 10px #31dcff14}.business-columns.is-variant-water .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:25px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(168,251,255,.34),rgba(49,220,255,0) 72%);transform:translate(-50%)}.business-columns.is-variant-water .business-column-track i{left:2px;right:2px;min-height:9px;border-radius:10px 10px 3px 3px;box-shadow:0 0 4px #31dcff29,inset 0 1px #ffffff52}.business-columns.is-variant-water .business-column-track i:before{left:50%;right:auto;top:-4px;width:15px;height:6px;border-radius:50%;background:rgba(220,255,255,.88);box-shadow:0 0 3px #a8fbff33;transform:translate(-50%);filter:none}.business-columns.is-variant-water .business-column-track i:after{display:none}.business-columns.is-variant-age{grid-template-columns:repeat(5,minmax(48px,1fr));gap:10px;padding:34px 18px 14px}.business-columns.is-variant-age:before{top:56px;bottom:46px;opacity:.36}.business-columns.is-variant-age .business-column-item{grid-template-rows:minmax(96px,1fr) 28px;min-width:0}.business-columns.is-variant-age .business-column-item strong{width:100%;color:#fff;font-size:13px;line-height:18px;text-align:center}.business-columns.is-variant-age .business-column-item span{max-width:none;color:#ffffffe6;font-size:12px;line-height:16px;white-space:nowrap;-webkit-line-clamp:1}.business-columns.is-variant-age .business-column-track{width:10px;height:92px;min-height:72px;border-color:#30dcff38;background:linear-gradient(180deg,rgba(48,220,255,.1),rgba(48,220,255,.03)),rgba(5,31,44,.38)}.business-columns.is-variant-age .business-column-track i{left:2px;right:2px;min-height:9px;border-radius:3px 3px 0 0}.business-columns.is-variant-projectYear{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:25px 14px 9px 8px}.business-columns.is-variant-projectYear:before{top:47px;bottom:43px;opacity:.42}.business-columns.is-variant-projectYear .business-column-item{grid-template-rows:minmax(90px,1fr) 26px;min-width:0}.business-columns.is-variant-projectYear .business-column-item strong{color:#fff;font-size:11px;line-height:18px;text-align:center;text-shadow:0 0 9px rgba(255,255,255,.28)}.business-columns.is-variant-projectYear .business-column-item span{max-width:none;color:#f0fdffe6;font-size:10px;line-height:15px;white-space:nowrap;-webkit-line-clamp:1}.business-columns.is-variant-projectYear .business-column-track{width:8px;height:92px;min-height:74px;border:1px solid rgba(48,220,255,.18);background:linear-gradient(180deg,rgba(48,220,255,.1),rgba(48,220,255,.025)),rgba(5,29,42,.3);box-shadow:inset 0 0 12px #30dcff14,0 0 10px #30dcff14}.business-columns.is-variant-projectYear .business-column-track:after{content:"";position:absolute;left:50%;bottom:-6px;width:18px;height:8px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.38),rgba(48,220,255,0) 72%);transform:translate(-50%)}.business-columns.is-variant-projectYear .business-column-track i{left:2px;right:2px;min-height:12px;border-radius:4px 4px 1px 1px;box-shadow:0 0 4px #24f6c429,inset 0 1px #ffffff42}.business-columns.is-variant-projectYear .business-column-track i:before{height:8px;top:-5px;transform:skew(-32deg)}.business-columns.is-variant-projectYear .business-column-track i:after{display:none}.business-columns.is-variant-compact{grid-template-columns:repeat(auto-fit,minmax(30px,1fr));gap:7px;padding:24px 12px 8px}.business-columns.is-variant-compact:before{top:44px;bottom:37px;opacity:.48}.business-columns.is-variant-compact .business-column-item{grid-template-rows:minmax(70px,1fr) 28px}.business-columns.is-variant-compact .business-column-item strong{font-size:12px;line-height:16px}.business-columns.is-variant-compact .business-column-item span{max-width:52px;font-size:10px;line-height:12px;-webkit-line-clamp:2}.business-columns.is-variant-compact .business-column-track{width:8px;min-height:56px;border-color:#24f6c42e;background:linear-gradient(180deg,rgba(36,246,196,.08),rgba(48,220,255,.02)),rgba(4,26,38,.34)}.business-columns.is-variant-compact .business-column-track i{left:2px;right:2px;min-height:10px;border-radius:3px 3px 0 0;box-shadow:0 0 4px #24f6c424,inset 0 1px #ffffff38}.business-columns.is-variant-townCompact{grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;padding:26px 10px 8px}.business-columns.is-variant-townCompact:before{top:47px;bottom:50px;opacity:.5}.business-columns.is-variant-townCompact .business-column-item{grid-template-rows:minmax(72px,1fr) 42px;min-width:0}.business-columns.is-variant-townCompact .business-column-item strong{width:max-content;max-width:46px;font-size:10px;line-height:14px;transform:translate(0)}.business-columns.is-variant-townCompact .business-column-item span{align-self:start;max-width:none;height:38px;color:#ffffffe6;font-size:11px;line-height:13px;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:0;white-space:nowrap;-webkit-line-clamp:unset}.business-columns.is-variant-townCompact .business-column-track{width:8px;min-height:54px;border-color:#24f6c42e;background:linear-gradient(180deg,rgba(36,246,196,.08),rgba(48,220,255,.02)),rgba(4,26,38,.34)}.business-columns.is-variant-townCompact .business-column-track i{left:2px;right:2px;min-height:9px;border-radius:3px 3px 0 0;box-shadow:0 0 4px #24f6c424,inset 0 1px #ffffff38}.business-columns.is-variant-plain{grid-template-columns:repeat(auto-fit,minmax(25px,1fr));gap:7px;padding:18px 14px 7px}.business-columns.is-variant-plain:before{top:37px;bottom:36px;opacity:.62}.business-columns.is-variant-plain .business-column-item{position:relative;z-index:1;grid-template-rows:minmax(70px,1fr) 28px}.business-columns.is-variant-plain .business-column-item strong{color:#f4fcffe0;font-size:11px;line-height:15px}.business-columns.is-variant-plain .business-column-item span{max-width:44px;color:#ffffffd1;font-size:10px;line-height:12px;-webkit-line-clamp:2}.business-columns.is-variant-plain .business-column-track{width:6px;height:100%;min-height:54px;border:0;background:rgba(67,130,96,.1);box-shadow:none}.business-columns.is-variant-plain .business-column-track i{left:0;right:0;min-height:7px;border-radius:2px 2px 0 0;box-shadow:0 0 3px #24f6c41f,inset 0 1px #ffffff3d}.business-columns.is-variant-plain .business-column-track i:before,.business-columns.is-variant-plain .business-column-track i:after{display:none}.business-columns.is-dense.is-scrollable{display:flex;flex-flow:row nowrap;align-items:stretch;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.46) rgba(48,220,255,.08)}.business-columns.is-dense.is-scrollable::-webkit-scrollbar{height:4px}.business-columns.is-dense.is-scrollable::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.business-columns.is-dense.is-scrollable::-webkit-scrollbar-thumb{background:rgba(48,220,255,.46);border-radius:4px}.business-columns.is-dense.is-scrollable .business-column-item{flex:0 0 54px;width:54px;min-width:54px;height:100%}.business-columns.is-dense.is-scrollable.is-variant-slim .business-column-item{flex-basis:50px;width:50px;min-width:50px}.business-columns.is-dense.is-scrollable.is-variant-plain .business-column-item{flex-basis:48px;width:48px;min-width:48px}.business-columns.has-unit-label{padding-top:44px}.business-columns.has-unit-label:before{top:60px}.business-columns.has-unit-label .business-column-unit{left:12px;right:12px;top:4px;text-align:right}.business-columns.has-unit-label.is-variant-pin{padding-top:38px}.business-columns.has-unit-label.is-variant-pin:before{top:54px}.business-columns.has-unit-label.is-variant-plain,.business-columns.has-unit-label.is-variant-slim,.business-columns.has-unit-label.is-variant-age,.business-columns.has-unit-label.is-variant-townCompact,.business-columns.has-unit-label.is-variant-compact{padding-top:42px}.business-columns.has-unit-label.is-variant-plain:before,.business-columns.has-unit-label.is-variant-slim:before,.business-columns.has-unit-label.is-variant-age:before,.business-columns.has-unit-label.is-variant-townCompact:before,.business-columns.has-unit-label.is-variant-compact:before{top:58px}.business-column-item{display:grid;grid-template-rows:minmax(70px,1fr) 38px;justify-items:center;min-width:0}.business-column-item strong{color:#d9fbff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;white-space:nowrap}.business-column-item strong em{margin-left:2px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-column-item span{align-self:center;max-width:76px;color:#ffffffa8;font-size:10px;line-height:12px;text-align:center;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.business-column-item.is-active strong,.business-column-item.is-active span{color:#fff}.business-column-item.is-active .business-column-track i{animation:none}.business-column-unit{position:absolute;right:14px;top:2px;z-index:2;padding:1px 6px;background:linear-gradient(90deg,rgba(4,23,34,0),rgba(4,23,34,.72));color:#eefdffb8;font-size:10px;line-height:14px;pointer-events:none}.business-column-trend{position:absolute;left:16px;right:16px;top:45px;bottom:48px;z-index:3;width:calc(100% - 32px);height:calc(100% - 93px);overflow:visible;pointer-events:none}.business-columns.has-unit-label .business-column-trend{top:59px;height:calc(100% - 107px)}.business-column-trend-area{fill:#8bf7ff0e;stroke:none}.business-column-trend-line{fill:none;stroke:#8bf7ffe0;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7 6;filter:none}.business-column-trend-dot{fill:#f7feff;stroke:#8bf7ff;stroke-width:1.1;filter:none}.business-columns.is-variant-slim .business-column-track i,.business-columns.is-variant-slim .business-column-item.is-active .business-column-track i{transform:scaleY(1);transform-origin:center bottom;animation:none;animation-delay:var(--column-load-delay, 0s);animation-fill-mode:both;will-change:transform,opacity,filter}.business-columns.is-variant-slim .business-column-track i:before,.business-columns.is-variant-slim .business-column-item.is-active .business-column-track i:before{animation:none;animation-delay:var(--column-load-delay, 0s);animation-fill-mode:both}.business-column-track{position:relative;width:8px;height:72px;align-self:end;background:linear-gradient(180deg,rgba(48,220,255,.08),rgba(48,220,255,.02));border:1px solid rgba(48,220,255,.14)}.business-column-track i{position:absolute;left:0;right:0;bottom:0;min-height:8px;box-shadow:0 0 3px #30dcff24}.business-column-track i:before,.business-column-track i:after{content:"";position:absolute;left:0;right:0;height:7px;background:inherit;transform:skew(-36deg)}.business-column-track i:before{top:-4px;filter:brightness(1.35)}.business-column-track i:after{bottom:-4px;filter:brightness(.72)}.business-column-track .business-column-value{position:absolute;left:50%;bottom:calc(var(--column-percent, 0%) + 8px);z-index:4;min-width:32px;max-width:58px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:14px;font-weight:800;letter-spacing:0;text-align:center;text-shadow:none;white-space:nowrap;transform:translate(-50%);pointer-events:none}.business-column-track .business-column-value em{margin-left:1px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:600}.business-table{display:grid;grid-template-rows:18px minmax(0,1fr);gap:4px;height:100%;padding:7px 12px 8px;box-sizing:border-box;overflow:hidden}.business-table-head{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:center;padding:0 5px;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.03))}.business-table-head-group{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:4px}.business-table-head-group span{color:#beebf5b3;font-size:10px;line-height:16px;white-space:nowrap}.business-table-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:3px 7px;min-height:0}.business-table-row{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:4px;min-width:0;min-height:0;padding:1px 5px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);box-sizing:border-box}.business-table-row:nth-child(2n){background:rgba(36,246,196,.035)}.business-table-row.is-active{border-color:#24f6c457;background:linear-gradient(90deg,rgba(36,246,196,.15),rgba(48,220,255,.04));animation:businessDataPulse 1.8s ease-in-out infinite}.business-table-row.is-active .business-table-name,.business-table-row.is-active strong{color:#fff}.business-table-name{min-width:0;color:#ebfcffc7;font-size:10px;line-height:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-table-row strong{display:block;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:12px;text-align:right;white-space:nowrap}.business-table-row strong em{display:none}.business-table-value{min-width:0}.business-table-value i{position:relative;display:block;height:3px;min-width:0;margin-top:2px;background:rgba(48,220,255,.08);border:1px solid rgba(48,220,255,.16);overflow:hidden}.business-table-value i b{position:relative;display:block;height:100%;min-width:5px;box-shadow:0 0 10px #30dcff61;overflow:hidden}.business-table-value i b:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);opacity:0;transform:translate(-130%)}.business-table-row.is-active .business-table-value i b:after{opacity:1;animation:businessDataSweep 1.8s ease-in-out infinite}.business-project-table{display:grid;grid-template-rows:28px minmax(0,1fr);gap:7px;height:100%;padding:7px 10px 8px;box-sizing:border-box;overflow:hidden}.business-project-table.is-without-search{grid-template-rows:minmax(0,1fr)}.business-project-table.is-fill-rows .business-project-frame{overflow:hidden}.business-project-table.is-fill-rows .business-project-frame table{height:100%}.business-project-search{min-width:0}.business-project-search input{width:100%;height:28px;padding:0 10px;border:1px solid rgba(48,220,255,.22);outline:none;color:#fff;font-size:12px;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.035));box-sizing:border-box}.business-project-search input::placeholder{color:#e8fcff8f}.business-project-search input:focus{border-color:#24f6c48a;box-shadow:0 0 14px #24f6c424}.business-project-search input::-webkit-search-decoration,.business-project-search input::-webkit-search-cancel-button{display:none}.business-project-frame{position:relative;min-height:0;border:1px solid rgba(48,220,255,.16);background:rgba(5,26,39,.26);overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.45) rgba(48,220,255,.08)}.business-project-frame::-webkit-scrollbar{width:5px}.business-project-frame::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.business-project-frame::-webkit-scrollbar-thumb{background:rgba(48,220,255,.44)}.business-project-frame table{width:100%;table-layout:fixed;border-collapse:collapse}.business-project-frame thead{position:sticky;top:0;z-index:2;background:#0d3144;box-shadow:0 1px #30dcff33}.business-project-frame th,.business-project-frame td{height:28px;padding:0 6px;color:#f6feffeb;font-size:11px;line-height:14px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid rgba(48,220,255,.09)}.business-project-frame tbody td{height:auto;min-height:32px;padding-top:3px;padding-bottom:3px;line-height:13px;white-space:normal;word-break:break-all;overflow:visible;text-overflow:clip}.business-project-frame th{height:25px;color:#beebf5c7;font-weight:500;background:linear-gradient(90deg,rgba(48,220,255,.16),rgba(48,220,255,.04))}.business-project-frame tbody tr{cursor:pointer;background:rgba(48,220,255,.025);transition:background .18s ease,box-shadow .18s ease}.business-project-frame tbody tr:nth-child(2n){background:rgba(36,246,196,.026)}.business-project-frame tbody tr:hover,.business-project-frame tbody tr:focus-visible,.business-project-frame tbody tr.is-active{outline:none;background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.055));box-shadow:inset 2px 0 #24f6c4d1}.business-project-frame td:nth-child(2),.business-project-frame td:nth-child(4),.business-project-frame th:nth-child(2),.business-project-frame th:nth-child(4){text-align:right}.business-project-frame th.is-right,.business-project-frame td.is-right{text-align:right}.business-project-frame th.is-center,.business-project-frame td.is-center{text-align:center}.business-project-frame strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:14px;white-space:nowrap}.business-project-frame em{margin-left:2px;color:#eefdffb8;font-size:10px;font-style:normal}.business-project-frame .business-project-locate{color:var(--screen-icon-primary, #30dcff);font-weight:600;text-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.business-project-frame .business-project-locate-button{display:inline-flex;width:24px;height:24px;padding:0;align-items:center;justify-content:center;border:0;color:var(--screen-icon-primary, #30dcff);cursor:pointer;background:transparent}.business-project-frame .business-project-locate-button:hover,.business-project-frame .business-project-locate-button:focus-visible{outline:none;color:#fff;filter:drop-shadow(0 0 4px var(--screen-icon-glow, rgba(48, 220, 255, .22)))}.business-project-frame .business-project-cell-icon{display:inline-flex;position:relative;width:18px;height:18px;align-items:center;justify-content:center;color:var(--screen-icon-primary, #30dcff);vertical-align:middle}.business-project-frame .business-project-cell-icon--locate{border:1.5px solid currentColor;border-radius:50%;background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.08);box-shadow:0 0 6px var(--screen-icon-glow, rgba(48, 220, 255, .22)),inset 0 0 7px #30dcff1a}.business-project-frame .business-project-cell-icon--locate:before{position:absolute;top:4px;right:4px;bottom:4px;left:4px;content:"";border:1px solid currentColor;border-radius:50%;opacity:.76}.business-project-frame .business-project-cell-icon--locate:after{position:absolute;width:3px;height:3px;content:"";border-radius:50%;background:#ffffff;box-shadow:0 0 7px #ffffffb8}.business-project-frame tbody tr.is-active .business-project-cell-icon--locate{color:var(--screen-icon-primary, #30dcff);background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.1);box-shadow:0 0 7px var(--screen-icon-glow, rgba(48, 220, 255, .22)),inset 0 0 7px #30dcff1f}.business-project-frame tbody tr.is-active .business-project-cell-icon--locate:after{background:#ffffff;box-shadow:0 0 8px #ffffffdb}.business-project-col-name{width:45%}.business-project-col-year{width:13%}.business-project-col-category{width:20%}.business-project-col-scale{width:22%}.business-project-empty{position:absolute;top:25px;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ffffff94;font-size:12px;pointer-events:none}.business-project-ledger{display:grid;grid-template-rows:28px 30px minmax(0,1fr);gap:7px;height:100%;padding:7px 10px 8px;box-sizing:border-box;overflow:hidden}.business-project-ledger__summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;min-width:0;padding:0 8px;border-left:2px solid #24f6c4;background:linear-gradient(90deg,rgba(36,246,196,.14),rgba(48,220,255,.04))}.business-project-ledger__summary-main{display:flex;align-items:baseline;min-width:0;gap:4px}.business-project-ledger__summary strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;line-height:22px;font-weight:800;text-shadow:0 0 10px rgba(36,246,196,.26)}.business-project-ledger__summary span,.business-project-ledger__summary small{overflow:hidden;color:#dff8ffad;font-size:11px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.business-project-ledger__summary small{color:#c9fbffc2}.business-project-ledger__pager{display:inline-flex;align-items:center;justify-content:end;gap:3px;min-width:0}.business-project-ledger__pager>span{min-width:26px;color:#d8f7fcb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:14px;text-align:center;white-space:nowrap}.business-project-ledger__page-button{display:inline-flex;width:18px;height:18px;padding:0;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.24);color:#d2f7ffdb;cursor:pointer;background:rgba(48,220,255,.06)}.business-project-ledger__page-button i{display:block;width:5px;height:5px;border-bottom:1px solid currentColor;border-left:1px solid currentColor;transform:rotate(45deg)}.business-project-ledger__page-button.is-next i{transform:rotate(225deg)}.business-project-ledger__page-button:hover:not(:disabled),.business-project-ledger__page-button:focus-visible:not(:disabled){outline:none;border-color:#24f6c4bd;color:#fff;background:rgba(36,246,196,.16)}.business-project-ledger__page-button:disabled{opacity:.3;cursor:default}.business-project-ledger__list{display:grid;grid-template-rows:repeat(var(--ledger-row-count, 15),minmax(0,1fr));padding-bottom:2px;overflow:hidden}.business-project-ledger__row{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;min-height:0;padding:5px 5px 5px 9px;border-bottom:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.022);box-sizing:border-box;outline:none}.business-project-ledger__row:nth-child(2n){background:rgba(36,246,196,.025)}.business-project-ledger__row.is-locatable{cursor:pointer}.business-project-ledger__row.is-locatable:hover,.business-project-ledger__row.is-locatable:focus-visible,.business-project-ledger__row.is-active{background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.055));box-shadow:inset 2px 0 #24f6c4d1}.business-project-ledger__row.is-unlocated{opacity:.66}.business-project-ledger__row .business-project-locate-button{justify-self:center}.business-project-ledger__row.is-active .business-project-cell-icon--locate{color:var(--screen-icon-primary, #30dcff);background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.1);box-shadow:0 0 7px var(--screen-icon-glow, rgba(48, 220, 255, .22)),inset 0 0 7px #30dcff1f}.business-project-ledger__row.is-active .business-project-cell-icon--locate:after{background:#ffffff;box-shadow:0 0 8px #ffffffdb}.business-project-ledger__info{display:grid;min-width:0;gap:4px}.business-project-ledger__info>strong{overflow:hidden;color:#f6fefff5;font-size:13px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.business-project-ledger__info>div{min-width:0}.business-project-ledger__info span{display:block;min-width:0;overflow:hidden;color:#cdeff8a8;font-size:11px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.business-project-ledger__unlocated{justify-self:center;color:#d6ebf17a;font-size:10px;line-height:12px;white-space:nowrap}.business-spec-grid{display:grid;grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:6px;height:100%;padding:7px 11px 9px;box-sizing:border-box;overflow:hidden}.business-spec-grid__row{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;grid-template-rows:minmax(18px,1fr) 23px;grid-template-areas:"index name count" "index specs count";column-gap:9px;align-items:center;min-width:0;padding:5px 8px 5px 7px;border:1px solid rgba(48,220,255,.16);border-left:2px solid rgba(36,246,196,.82);background:linear-gradient(90deg,rgba(22,119,135,.2),rgba(48,220,255,.025) 72%),rgba(2,23,35,.26);box-sizing:border-box}.business-spec-grid__row:nth-child(2){border-left-color:#30dcffe6}.business-spec-grid__row:nth-child(3){border-left-color:#8bf7ffc7}.business-spec-grid__index{grid-area:index;display:grid;width:24px;height:24px;place-items:center;align-self:center;border:1px solid rgba(36,246,196,.38);background:rgba(36,246,196,.08);color:#a4ffeceb;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;font-weight:800;line-height:1}.business-spec-grid__row:nth-child(2) .business-spec-grid__index{border-color:#30dcff70;background:rgba(48,220,255,.09);color:#b7f7fff2}.business-spec-grid__row:nth-child(3) .business-spec-grid__index{border-color:#8bf7ff6b;background:rgba(139,247,255,.08);color:#c9fbfff2}.business-spec-grid__name{grid-area:name;min-width:0;overflow:hidden;color:#f4fefff0;font-size:13px;line-height:17px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.business-spec-grid__count{grid-area:count;align-self:stretch;display:flex;min-width:53px;padding-left:10px;align-items:center;border-left:1px solid rgba(48,220,255,.18);color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:25px;line-height:27px;font-weight:800;text-align:right;white-space:nowrap;text-shadow:0 0 11px rgba(48,220,255,.36)}.business-spec-grid__count em{margin-left:2px;color:#e4faffa8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-spec-grid__specs{grid-area:specs;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0}.business-spec-grid__specs>span{display:flex;align-items:baseline;min-width:0;gap:4px;padding:2px 5px;background:rgba(2,33,45,.36)}.business-spec-grid__specs small,.business-spec-grid__specs strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-spec-grid__specs small{color:#d3f3faa8;font-size:10px;line-height:11px}.business-spec-grid__specs strong{color:#91faeffa;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:14px;font-weight:800}.business-spec-grid__specs strong em{margin-left:1px;color:#dcf9ff94;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-support-matrix{display:grid;grid-template-rows:16px 24px minmax(0,1fr);gap:4px;height:100%;padding:7px 11px 8px;box-sizing:border-box;overflow:hidden}.business-support-matrix__note{display:block;overflow:hidden;color:#d1f1f89e;font-size:10px;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.business-support-matrix__head,.business-support-matrix__body>div{display:grid;grid-template-columns:76px repeat(3,minmax(0,1fr));align-items:center;min-width:0}.business-support-matrix__head{border:1px solid rgba(48,220,255,.17);background:linear-gradient(90deg,rgba(48,220,255,.17),rgba(48,220,255,.06))}.business-support-matrix__head span{min-width:0;padding:0 5px;overflow:hidden;color:#e0f9ffc7;font-size:10px;line-height:13px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.business-support-matrix__head span:first-child{text-align:left}.business-support-matrix.is-with-total .business-support-matrix__head,.business-support-matrix.is-with-total .business-support-matrix__body>div{grid-template-columns:58px 50px repeat(3,minmax(0,1fr))}.business-support-matrix.is-with-total .business-support-matrix__head span:nth-child(2){color:#c9fbffdb}.business-support-matrix.is-with-total .business-support-matrix__total{color:#c9fbff;text-shadow:0 0 8px rgba(48,220,255,.2)}.business-support-matrix__body{display:grid;grid-template-rows:repeat(10,minmax(0,1fr));min-height:0;overflow:hidden;border:1px solid rgba(48,220,255,.1);border-top:0}.business-support-matrix__body>div{min-height:0;border-bottom:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.018)}.business-support-matrix__body>div:nth-child(2n){background:rgba(36,246,196,.025)}.business-support-matrix__body>div:last-child{border-bottom:0}.business-support-matrix__body span,.business-support-matrix__body strong{min-width:0;padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-support-matrix__body span{color:#edfdffd9;font-size:11px;line-height:14px}.business-support-matrix__body strong{color:#6df2e7f0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:14px;font-weight:800;text-align:center}.business-stack-columns{display:grid;grid-template-rows:24px minmax(0,1fr);gap:5px;height:100%;padding:8px 12px 6px;box-sizing:border-box;overflow:hidden}.business-stack-columns.is-dense .business-stack-chart{gap:4px}.business-stack-columns.is-dense .business-stack-track{width:18px}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-item{grid-template-rows:16px minmax(42px,1fr) 36px}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-total{grid-row:1}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-track{grid-row:2}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-item>span{grid-row:3}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-total{align-self:end;max-width:100%;overflow:hidden;color:#f5fdfff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;font-weight:800;line-height:15px;text-align:center;text-overflow:clip;white-space:nowrap;text-shadow:0 0 8px rgba(48,220,255,.3)}.business-stack-columns.is-with-values:not(.is-variant-dual) .business-stack-total em{margin-left:1px;color:#ebfcff9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-stack-columns.is-dense.is-with-values:not(.is-variant-dual) .business-stack-item{grid-template-rows:15px minmax(40px,1fr) 36px}.business-stack-columns.is-dense.is-with-values:not(.is-variant-dual) .business-stack-total{font-size:10px;line-height:14px}.business-stack-columns.is-dense.is-with-values:not(.is-variant-dual) .business-stack-total em{display:none}.business-stack-columns.is-variant-dual{grid-template-rows:24px minmax(0,1fr);gap:4px;padding:8px 14px 7px}.business-stack-columns.is-variant-dual .business-stack-legend{justify-content:center;gap:14px;padding-right:0}.business-stack-columns.is-variant-dual .business-stack-legend span{color:#f5fdffe6;font-size:11px;line-height:16px}.business-stack-columns.is-variant-dual .business-stack-legend i{width:8px;height:8px;border-radius:50%}.business-stack-columns.is-variant-dual .business-stack-chart{position:relative;grid-template-columns:repeat(auto-fit,minmax(62px,1fr));align-items:stretch;gap:14px;padding:1px 4px 0}.business-stack-columns.is-variant-dual .business-stack-chart:before{content:"";position:absolute;left:4px;right:4px;top:25px;bottom:31px;background:repeating-linear-gradient(to bottom,rgba(159,220,230,.15) 0 1px,transparent 1px 18px);pointer-events:none}.business-stack-columns.is-variant-dual .business-stack-item{position:relative;z-index:1;grid-template-rows:18px minmax(62px,1fr) 27px;justify-items:center;min-width:0}.business-stack-columns.is-variant-dual .business-stack-item.is-active .business-stack-track i{animation:businessDataPulse 1.8s ease-in-out infinite}.business-stack-columns.is-variant-dual .business-stack-item.is-active span,.business-stack-columns.is-variant-dual .business-stack-item.is-active strong{color:#fff}.business-stack-columns.is-variant-dual .business-stack-total{align-self:end;color:#f5fdffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:11px;line-height:16px;white-space:nowrap;text-shadow:0 0 8px rgba(255,255,255,.22)}.business-stack-columns.is-variant-dual .business-stack-total em{margin-left:2px;color:#f5fdffad;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-stack-columns.is-variant-dual .business-stack-track{position:relative;align-self:end;width:25px;height:100%;min-height:58px;max-height:94px;overflow:visible;border:1px solid rgba(48,220,255,.14);background:linear-gradient(180deg,rgba(48,220,255,.09),rgba(48,220,255,.025)),rgba(5,30,42,.24);box-shadow:inset 0 0 10px #30dcff0d}.business-stack-columns.is-variant-dual .business-stack-track:after{content:"";position:absolute;left:50%;bottom:-6px;width:42px;height:8px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.34),rgba(48,220,255,0) 72%);transform:translate(-50%);pointer-events:none}.business-stack-columns.is-variant-dual .business-stack-track i{position:relative;display:block;min-height:3px;box-shadow:0 0 14px color-mix(in srgb,currentColor 44%,transparent),inset 0 1px #ffffff3d}.business-stack-columns.is-variant-dual .business-stack-track i:last-child:before{content:"";position:absolute;left:0;right:0;top:-5px;height:8px;background:inherit;filter:brightness(1.22);transform:skew(-32deg);transform-origin:left bottom}.business-stack-columns.is-variant-dual .business-stack-item span{max-width:60px;color:#fafeffd1;font-size:11px;line-height:13px;white-space:nowrap;-webkit-line-clamp:1}.business-stack-columns.is-variant-parkSlim{grid-template-rows:24px minmax(0,1fr);gap:2px;padding:5px 20px 6px}.business-stack-columns.is-variant-parkSlim .business-stack-legend{justify-content:center;gap:22px;padding-right:0}.business-stack-columns.is-variant-parkSlim .business-stack-legend span{color:#f5fdffe0;font-size:11px;line-height:16px;font-weight:700}.business-stack-columns.is-variant-parkSlim .business-stack-legend i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 3px currentColor}.business-stack-columns.is-variant-parkSlim .business-stack-unit{margin-left:6px;color:#ebfcffc7;font-size:11px;font-weight:700}.business-stack-columns.is-variant-parkSlim .business-stack-chart{position:relative;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:30px;padding:1px 10px 0}.business-stack-columns.is-variant-parkSlim .business-stack-chart:before{content:"";position:absolute;left:8px;right:8px;top:26px;bottom:41px;background:repeating-linear-gradient(to bottom,rgba(194,238,246,.14) 0 1px,transparent 1px 22px);pointer-events:none}.business-stack-columns.is-variant-parkSlim .business-stack-item{position:relative;z-index:1;grid-template-rows:18px minmax(86px,1fr) 40px;min-width:0;overflow:visible}.business-stack-columns.is-variant-parkSlim .business-stack-total{align-self:end;color:#fafefff5;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:16px;font-weight:800;white-space:nowrap;text-shadow:0 0 5px rgba(255,255,255,.2)}.business-stack-columns.is-variant-parkSlim .business-stack-total em{margin-left:2px;color:#ebfcffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-stack-columns.is-variant-parkSlim .business-stack-track{position:relative;align-self:end;width:18px;height:100%;min-height:78px;max-height:118px;overflow:visible;border:0;background:linear-gradient(180deg,rgba(48,220,255,.1),rgba(48,220,255,.035));box-shadow:none}.business-stack-columns.is-variant-parkSlim .business-stack-track:before{content:"";position:absolute;left:50%;bottom:0;width:38px;height:1px;background:linear-gradient(90deg,transparent,rgba(180,248,255,.35),transparent);transform:translate(-50%)}.business-stack-columns.is-variant-parkSlim .business-stack-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:34px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.22),rgba(48,220,255,0) 72%);transform:translate(-50%);pointer-events:none}.business-stack-columns.is-variant-parkSlim .business-stack-track i{position:relative;display:block;min-height:3px;box-shadow:inset 0 1px #ffffff47,0 0 3px color-mix(in srgb,currentColor 32%,transparent)}.business-stack-columns.is-variant-parkSlim .business-stack-track i:first-child{border-radius:0 0 8px 8px}.business-stack-columns.is-variant-parkSlim .business-stack-track i:last-child{border-radius:8px 8px 0 0}.business-stack-columns.is-variant-parkSlim .business-stack-track i:last-child:before{content:"";position:absolute;left:2px;right:2px;top:-4px;height:6px;border-radius:50%;background:rgba(238,255,255,.82);box-shadow:0 0 4px #eeffff5c}.business-stack-columns.is-variant-parkSlim .business-stack-item span{align-self:center;width:18px;height:40px;color:#fafeffeb;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0;text-align:center;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;overflow:visible;-webkit-line-clamp:unset}.business-stack-columns.is-variant-parkSlim .business-stack-item.is-active .business-stack-track i{animation:none}.business-stack-columns.is-variant-parkSlim .business-stack-item.is-active span,.business-stack-columns.is-variant-parkSlim .business-stack-item.is-active strong{color:#fff}.business-stack-legend{display:flex;justify-content:center;gap:9px;min-width:0;overflow:hidden}.business-stack-legend span{display:inline-flex;align-items:center;gap:4px;min-width:0;color:#ffffffd1;font-size:10px;line-height:14px;white-space:nowrap}.business-stack-legend i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px currentColor}.business-stack-unit{align-self:center;margin-left:2px;color:#d8f7fc9e;font-size:10px;line-height:14px;white-space:nowrap}.business-stack-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(24px,1fr));align-items:stretch;gap:6px;min-height:0}.business-stack-item{display:grid;grid-template-rows:minmax(42px,1fr) 36px;justify-items:center;min-width:0}.business-stack-item span{align-self:center;max-width:100%;color:#ffffffb8;font-size:10px;line-height:12px;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-line;word-break:keep-all}.business-stack-track{display:flex;flex-direction:column-reverse;align-self:end;width:20px;height:100%;min-height:48px;max-height:96px;background:linear-gradient(180deg,rgba(48,220,255,.09),rgba(48,220,255,.02));border:1px solid rgba(48,220,255,.12);overflow:hidden}.business-stack-track i{display:block;min-height:2px;box-shadow:0 0 10px #30dcff57}.business-panel.is-column-label-standard .business-columns{grid-template-columns:repeat(auto-fit,minmax(20px,1fr));padding:20px 12px 8px}.business-panel.is-column-label-standard .business-columns.is-dense.is-scrollable{display:grid;grid-template-columns:repeat(auto-fit,minmax(20px,1fr));align-items:stretch;gap:4px;overflow-x:hidden;overflow-y:visible;overscroll-behavior-x:auto;scrollbar-width:none}.business-panel.is-column-label-standard .business-columns.is-dense.is-scrollable::-webkit-scrollbar{display:none}.business-panel.is-column-label-standard .business-columns.is-dense.is-scrollable .business-column-item{flex:none;width:auto;min-width:0;height:auto}.business-panel.is-column-label-standard .business-columns:before{top:36px;bottom:44px}.business-panel.is-column-label-standard .business-columns.is-variant-slim,.business-panel.is-column-label-standard .business-columns.is-variant-plain,.business-panel.is-column-label-standard .business-columns.is-variant-age,.business-panel.is-column-label-standard .business-columns.is-variant-water,.business-panel.is-column-label-standard .business-columns.is-variant-compact{padding-top:20px}.business-panel.is-column-label-standard .business-columns.is-dense,.business-panel.is-column-label-standard .business-columns.is-variant-slim.is-dense{padding-top:22px}.business-panel.is-column-label-standard .business-columns.has-unit-label,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-plain,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-slim,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-age,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-water,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-townCompact,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-compact{padding-top:34px}.business-panel.is-column-label-standard .business-columns.has-unit-label:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-plain:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-slim:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-age:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-water:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-townCompact:before,.business-panel.is-column-label-standard .business-columns.has-unit-label.is-variant-compact:before{top:50px}.business-panel.is-column-label-standard .business-column-item{position:relative;grid-template-rows:minmax(70px,1fr) 42px;overflow:visible}.business-panel.is-column-label-standard .business-column-item span,.business-panel.is-column-label-standard .business-stack-item span,.business-panel.is-column-label-standard .business-peak-item span{display:block;align-self:center;width:18px;height:42px;max-width:none;color:#ffffffe6;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0;text-align:center;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;overflow:hidden;text-overflow:clip;-webkit-line-clamp:unset;word-break:keep-all}.business-panel.is-column-label-standard .business-column-track{align-self:end}.business-panel.is-column-label-standard .business-column-item:after,.business-panel.is-column-label-standard .business-stack-item:after,.business-panel.is-column-label-standard .business-peak-item:after{content:attr(data-hover-value);position:absolute;left:50%;top:0;z-index:8;max-width:128px;padding:4px 8px;border:1px solid rgba(36,246,196,.46);background:rgba(3,24,36,.94);box-shadow:0 0 14px #24f6c442;color:#fff;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;pointer-events:none;transform:translate(-50%,2px);transition:opacity .16s ease,transform .16s ease}.business-panel.is-column-label-standard .business-column-item:hover:after,.business-panel.is-column-label-standard .business-stack-item:hover:after,.business-panel.is-column-label-standard .business-peak-item:hover:after{opacity:1;transform:translate(-50%)}.business-panel.is-column-label-standard .business-peaks,.business-panel.is-column-label-standard .business-peaks.is-dense{grid-template-columns:repeat(auto-fit,minmax(20px,1fr));gap:4px;padding:34px 10px 8px;overflow:hidden}.business-panel.is-column-label-standard .business-peak-item,.business-panel.is-column-label-standard .business-peaks.is-dense .business-peak-item{position:relative;grid-template-rows:minmax(44px,1fr) 42px;min-width:0;overflow:visible}.business-panel.is-column-label-standard .business-peaks.is-dense .business-peak-item span{width:18px;height:42px;max-height:none;line-height:16px;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap}.business-panel.is-column-label-standard .business-peak-stage{align-self:end;min-height:42px}.business-panel.is-column-label-standard .business-peaks.is-dense .business-peak-stage{min-height:42px}.business-panel.is-column-label-standard .business-line{grid-template-rows:minmax(0,1fr) 42px}.business-panel.is-column-label-standard .business-line-labels{align-items:start}.business-panel.is-column-label-standard .business-line-labels span{display:block;justify-self:center;width:18px;height:42px;color:#ffffffe6;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0;text-align:center;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;overflow:hidden;text-overflow:clip;word-break:keep-all}.business-panel.is-column-label-standard .business-stack-columns{grid-template-rows:22px minmax(0,1fr);padding-bottom:7px}.business-panel.is-column-label-standard .business-stack-item{position:relative;grid-template-rows:minmax(44px,1fr) 42px;overflow:visible}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns{padding-bottom:9px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-slim,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear{padding-bottom:14px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:8px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-column-item,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-plain .business-column-item{grid-template-rows:minmax(70px,1fr) 28px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear .business-column-item,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-slim .business-column-item{grid-template-rows:minmax(76px,1fr) 24px}.business-panel.is-column-label-standard.is-column-label-horizontal .business-column-item span,.business-panel.is-column-label-standard.is-column-label-horizontal .business-line-labels span{width:auto;height:auto;max-width:68px;color:#ffffffe6;font-size:12px;line-height:14px;writing-mode:horizontal-tb;text-orientation:mixed;white-space:nowrap;overflow:visible;text-overflow:clip}.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-projectYear .business-column-item span,.business-panel.is-column-label-standard.is-column-label-horizontal .business-columns.is-variant-slim .business-column-item span{max-width:72px;font-size:12px;line-height:15px}.business-peaks{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:8px;height:100%;padding:8px 15px 7px;box-sizing:border-box;overflow:hidden}.business-peak-unit{right:15px}.business-peaks.is-dense{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:8px 8px 7px}.business-peak-item{display:grid;grid-template-rows:18px minmax(0,1fr) 22px;justify-items:center;min-width:0}.business-peak-item strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:16px;text-shadow:0 0 12px rgba(48,220,255,.45);white-space:nowrap}.business-peak-item strong em{margin-left:2px;color:#eefdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:600}.business-peak-item span{align-self:center;max-width:100%;color:#ffffffad;font-size:10px;line-height:12px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-peaks.is-dense .business-peak-item{grid-template-rows:17px minmax(0,1fr) 24px}.business-peaks.is-dense .business-peak-item strong{font-size:11px;line-height:15px;transform:scale(.92);transform-origin:center top}.business-peaks.is-dense .business-peak-item span{line-height:11px;white-space:pre-line;writing-mode:horizontal-tb;max-height:24px}.business-peak-stage{position:relative;width:100%;min-height:62px;align-self:stretch}.business-peak-stage:before{content:"";position:absolute;left:8px;right:8px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.6),transparent)}.business-peak-stage i{position:absolute;left:50%;bottom:0;width:34px;height:var(--peak-height);min-height:20px;max-height:100%;transform:translate(-50%);background:radial-gradient(ellipse at 50% 100%,var(--peak-color) 0,rgba(36,246,196,.26) 22%,rgba(36,246,196,0) 62%),linear-gradient(180deg,var(--peak-color),rgba(36,246,196,.04));clip-path:polygon(50% 0,68% 32%,78% 100%,22% 100%,32% 32%);filter:drop-shadow(0 0 9px rgba(48,220,255,.42))}.business-peak-stage i:after{content:"";position:absolute;left:50%;top:0;width:5px;height:5px;border-radius:50%;background:#ffffff;box-shadow:0 0 9px var(--peak-color);transform:translate(-50%)}.business-peaks.is-dense .business-peak-stage{min-height:58px}.business-peaks.is-dense .business-peak-stage:before{left:4px;right:4px}.business-peaks.is-dense .business-peak-stage i{width:24px}.business-line{display:grid;grid-template-rows:minmax(0,1fr) 31px;gap:2px;height:100%;padding:6px 10px;box-sizing:border-box;overflow:hidden}.business-line-chart{position:relative;min-height:0;background:linear-gradient(180deg,rgba(48,220,255,.08),rgba(48,220,255,.02));border:1px solid rgba(48,220,255,.1);overflow:visible}.business-line-chart svg{width:100%;height:100%}.business-line-grid{stroke:#ffffff1a;stroke-width:1}.business-line-area{fill:#30dcff21;stroke:none}.business-line-stroke{fill:none;stroke:#8bf7ff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 7;animation:businessLineFlow 2.2s linear infinite}.business-line-dot{fill:#fff;stroke:#8bf7ff;stroke-width:1.6;animation:businessDotPulse 2.2s ease-in-out infinite;transition:r .28s ease,fill .28s ease,stroke .28s ease,stroke-width .28s ease,filter .28s ease;transform-box:fill-box;transform-origin:center}.business-line-dot.is-active{r:5.6;fill:#fff;stroke:#fff;stroke-width:2.2;filter:drop-shadow(0 0 4px rgba(255,255,255,.76)) drop-shadow(0 0 9px rgba(139,247,255,.62));animation:businessActiveDotPulse 1.35s ease-in-out infinite}.business-line-hit{fill:transparent;stroke:transparent;cursor:pointer;pointer-events:all}.business-line-hover-zones{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;z-index:1}.business-line-hover-zones i{display:block;min-width:0;cursor:pointer}.business-line-tooltip{position:absolute;z-index:3;min-width:86px;padding:5px 8px;border:1px solid rgba(48,220,255,.34);background:rgba(3,18,30,.9);box-shadow:0 0 14px #30dcff38;transform:translate(-50%,calc(-100% - 8px));pointer-events:none;transition:left .28s ease,top .28s ease,transform .28s ease}.business-line-tooltip span{display:block;color:#dcf8ffc7;font-size:10px;line-height:12px;white-space:nowrap}.business-line-tooltip strong{display:block;margin-top:2px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:16px;line-height:18px}.business-line-tooltip strong em{margin-left:3px;color:#ffffff9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-line-labels{display:grid;gap:2px;min-width:0;align-items:start;min-height:0;overflow:hidden}.business-line-labels span{min-width:0;color:#ffffff9e;font-size:10px;line-height:12px;text-align:center;overflow:visible;text-overflow:clip;white-space:pre-line;writing-mode:horizontal-tb;justify-self:center;max-height:none}.business-heat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:7px;height:100%;padding:8px 14px 9px;box-sizing:border-box;overflow:hidden}.business-heat.is-dense{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px 10px 9px}.business-heat.is-dense .business-heat-cell{grid-template-rows:12px 16px 22px;gap:2px;padding:6px 4px 5px}.business-heat.is-dense .business-heat-cell strong{font-size:14px;line-height:16px}.business-heat-cell{position:relative;display:grid;grid-template-rows:12px 16px minmax(20px,auto);align-items:center;align-content:center;justify-items:center;gap:3px;min-width:0;min-height:0;padding:6px 5px 5px;border:1px solid rgba(62,226,255,.2);background:linear-gradient(180deg,var(--heat-bg),rgba(48,220,255,.018)),rgba(6,30,45,.32);box-shadow:inset 0 0 0 1px #30dcff06;overflow:hidden}.business-heat-cell i{width:7px;height:7px;border:1px solid var(--heat-color);border-radius:50%;background:rgba(48,220,255,.08);box-shadow:none}.business-heat-cell span{max-width:100%;color:#e2f9ffc7;font-size:10px;line-height:11px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.business-heat-cell strong{max-width:100%;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-heat-cell strong em{margin-left:2px;color:#f6fdffb8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-split{display:grid;grid-template-rows:42px minmax(0,1fr);gap:10px;height:100%;padding:13px 16px;box-sizing:border-box;overflow:hidden}.business-split.is-dense{grid-template-rows:18px minmax(0,1fr);gap:4px;padding:6px 10px}.business-split.is-dense .business-split-band{height:auto}.business-split.is-dense .business-split-list{grid-auto-rows:minmax(0,1fr);height:auto;gap:2px;overflow:hidden}.business-split.is-dense .business-split-row{min-height:0;padding:0 5px}.business-split.is-dense .business-split-row span{font-size:10px;line-height:11px}.business-split.is-dense .business-split-row strong{font-size:11px;line-height:12px}.business-split-band{display:flex;height:auto;padding:3px;background:rgba(48,220,255,.07);border:1px solid rgba(62,226,255,.2)}.business-split-band i{display:block;min-width:8px;height:100%}.business-split-list{display:grid;grid-auto-rows:minmax(26px,1fr);gap:6px;min-height:0;height:auto;overflow-y:auto;padding-right:3px}.business-split-list::-webkit-scrollbar{width:3px}.business-split-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.business-split-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:26px;padding:0 9px;background:rgba(48,220,255,.035);border:1px solid rgba(62,226,255,.16)}.business-split-row span{display:flex;align-items:center;min-width:0;color:#ffffffb8;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-split-row span i{flex:0 0 auto;width:8px;height:8px;margin-right:7px}.business-panel{color:#f4feff}.business-panel-empty{color:#e0faffd1}.business-metric-item,.business-icon-metric-item,.business-spotlight-main,.business-spotlight-chip,.business-structure-focus,.business-structure-row,.business-line-chart,.business-heat-cell,.business-split-row{border-color:#3ce1ff33;background-color:#061e2d61;box-shadow:inset 0 0 0 1px #30dcff0a}.business-metric-item span,.business-icon-metric-copy span,.business-spotlight-main span,.business-spotlight-chip span,.business-donut-row span,.business-structure-focus span,.business-structure-row span,.business-bar-name,.business-column-item span,.business-peak-item span,.business-line-labels span,.business-heat-cell span,.business-split-row span{color:#ecfcffeb}.business-icon-metric-copy strong,.business-spotlight-main strong,.business-donut-row strong,.business-structure-focus strong,.business-structure-row strong,.business-column-item strong,.business-peak-item strong,.business-heat-cell strong{color:#fff;text-shadow:0 0 4px rgba(48,220,255,.28)}.business-metric-item strong,.business-spotlight-chip strong,.business-bar-row strong,.business-split-row strong,.business-structure-focus em{color:#38f8ff;text-shadow:0 0 4px rgba(48,220,255,.32)}.business-metric-item em,.business-icon-metric-copy strong em,.business-spotlight-main strong em,.business-spotlight-chip strong em,.business-donut-row em,.business-structure-row strong em,.business-bar-row strong em,.business-bar-row strong small,.business-heat-cell strong em{color:#eefdffb8}.business-spotlight-main small,.business-spotlight-chip small,.business-structure-focus small,.business-structure-row small{color:#c9fbffeb}.business-bar-track,.business-column-track,.business-split-band{border-color:#48e4ff42;background:rgba(60,225,255,.12);box-shadow:inset 0 0 0 1px #30dcff0d}.business-bar-track i,.business-column-track i,.business-split-band i{box-shadow:0 0 3px #30dcff1f}.business-bars.is-capacity .business-bar-name{color:#ecfcffeb}.business-bars.is-capacity .business-bar-row strong{color:#24f6c4;text-shadow:0 0 4px rgba(36,246,196,.3)}.business-line-grid{stroke:#d5f7ff33}.business-line-area{fill:#30dcff29}.business-line-stroke{filter:drop-shadow(0 0 2px rgba(139,247,255,.42))}.business-line-dot{filter:drop-shadow(0 0 2px rgba(48,220,255,.46))}.business-line-dot.is-active{filter:drop-shadow(0 0 4px rgba(255,255,255,.72)) drop-shadow(0 0 9px rgba(139,247,255,.62))}.business-panel,.business-panel span,.business-panel strong,.business-panel em,.business-panel small{color:#fff;text-shadow:none}.business-panel .business-bar-name,.business-panel .business-donut-row span,.business-panel .business-structure-row span,.business-panel .business-column-item span,.business-panel .business-peak-item span,.business-panel .business-line-labels span,.business-panel .business-heat-cell span,.business-panel .business-split-row span,.business-panel .business-icon-metric-copy span,.business-panel .business-spotlight-chip span,.business-panel .business-bar-row strong,.business-panel .business-split-row strong,.business-panel .business-metric-item strong,.business-panel .business-spotlight-chip strong,.business-panel .business-structure-focus em{color:#fff}.business-panel .business-bar-name,.business-panel .business-bar-row strong,.business-panel .business-bar-row strong em,.business-panel .business-bar-row strong small,.business-panel .business-column-unit,.business-panel .business-donut-row span,.business-panel .business-donut-row strong,.business-panel .business-donut-row em,.business-panel .business-icon-metric-copy span,.business-panel .business-icon-metric-copy strong,.business-panel .business-icon-metric-copy strong em,.business-panel .business-line-labels span,.business-panel .business-metric-item span,.business-panel .business-metric-item strong,.business-panel .business-metric-item em,.business-panel .business-spotlight-main span,.business-panel .business-spotlight-main strong,.business-panel .business-spotlight-main strong em,.business-panel .business-spotlight-main small,.business-panel .business-spotlight-chip span,.business-panel .business-spotlight-chip strong,.business-panel .business-spotlight-chip strong em,.business-panel .business-spotlight-chip small,.business-panel .business-structure-focus span,.business-panel .business-structure-focus strong,.business-panel .business-structure-focus em,.business-panel .business-structure-focus small,.business-panel .business-structure-row span,.business-panel .business-structure-row strong,.business-panel .business-structure-row strong em,.business-panel .business-structure-row small,.business-panel .business-column-item strong,.business-panel .business-peak-item strong,.business-panel .business-heat-cell strong,.business-panel .business-heat-cell strong em,.business-panel .business-split-row strong{color:var(--screen-color-text-strong, #ffffff)!important;text-shadow:none!important}.business-panel .business-column-item span,.business-panel .business-peak-item span,.business-panel .business-heat-cell span,.business-panel .business-split-row span{color:var(--screen-color-text-secondary, rgba(246, 253, 255, .9))!important;text-shadow:none!important}.business-panel .business-column-unit{color:var(--screen-color-text-muted, rgba(240, 252, 255, .86))!important}.business-project-frame th,.business-project-frame td{font-size:var(--screen-table-body-size, 11px)!important;line-height:13px!important}.business-project-frame strong,.business-project-ledger__info>strong,.business-support-matrix__body strong,.business-table-row strong{font-size:var(--screen-table-value-size, 12px)!important;line-height:14px!important}.business-project-ledger__summary strong{font-size:18px!important;line-height:20px!important}.business-project-ledger__info>span,.business-project-ledger__info span,.business-spec-grid__specs small,.business-support-matrix__head span,.business-support-matrix__body span,.business-table-name{font-size:10px!important;line-height:13px!important}.business-spec-grid__name{font-size:11px!important;line-height:14px!important}.business-spec-grid__index{width:22px!important;height:22px!important;font-size:11px!important}.business-spec-grid__count{min-width:46px!important;font-size:20px!important;line-height:22px!important}.business-spec-grid__specs strong{font-size:11px!important;line-height:13px!important}.business-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.business-balance-gauge-grid.is-single{grid-template-columns:minmax(0,1fr);padding:12px 16px 14px}.business-balance-gauge-grid.is-single .business-balance-gauge-card{width:min(230px,100%);justify-self:center;grid-template-rows:30px minmax(92px,1fr) 24px;padding:10px 16px 12px}.business-balance-gauge-grid.is-single .business-balance-gauge-ring{width:min(122px,56%)}.business-balance-gauge-grid.is-single .business-balance-gauge-value strong{font-size:26px;line-height:30px}.business-balance-gauge-grid.is-single .business-balance-gauge-name{font-size:16px}.business-balance-gauge-grid.is-single .business-balance-gauge-extra{display:none}.business-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:30px minmax(70px,1fr) 22px 16px;justify-items:center;padding:9px 7px 8px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.business-balance-gauge-card:before{position:absolute;top:8px;right:8px;bottom:8px;left:8px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.business-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.business-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.business-balance-gauge-head strong{width:100%;overflow:hidden;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-overflow:ellipsis;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent);white-space:nowrap}.business-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(92px,82%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.business-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.business-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.business-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.business-balance-gauge-value strong{color:#fff!important;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:22px;line-height:26px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)!important}.business-balance-gauge-value em{margin-left:2px;color:#eefdffc2!important;font-size:11px;font-style:normal;font-weight:800}.business-balance-gauge-name,.business-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.business-balance-gauge-name{color:#fff!important;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)!important}.business-balance-gauge-extra{color:#eefdffa8!important;font-size:11px;line-height:16px;font-weight:700}.business-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:100%;padding:9px 12px 8px;box-sizing:border-box;overflow:hidden}.business-gauges.is-dense{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:7px;padding:8px 12px}.business-gauge-item{position:relative;display:grid;grid-template-rows:minmax(0,1fr) 17px 14px;align-items:center;justify-items:center;min-width:0;min-height:0;padding:6px 4px 5px;border:1px solid rgba(48,220,255,.17);background:radial-gradient(circle at 50% 58%,rgba(48,220,255,.15),rgba(48,220,255,.02) 64%),linear-gradient(180deg,rgba(48,220,255,.09),rgba(5,26,39,.34));box-shadow:inset 0 0 18px #30dcff14;overflow:hidden}.business-gauge-item:before{content:"";position:absolute;left:14px;right:14px;bottom:31px;height:18px;border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--gauge-color) 48%,transparent),rgba(48,220,255,0));filter:blur(2px);opacity:.58;pointer-events:none}.business-gauge-item.is-active{border-color:color-mix(in srgb,var(--gauge-color) 58%,rgba(48,220,255,.22));box-shadow:inset 0 0 20px #30dcff1a,0 0 10px color-mix(in srgb,var(--gauge-color) 26%,transparent)}.business-gauge-item.is-alert{background:radial-gradient(circle at 50% 58%,rgba(255,191,90,.17),rgba(48,220,255,.02) 66%),linear-gradient(180deg,rgba(48,220,255,.08),rgba(5,26,39,.34))}.business-gauge-item.is-safe{background:radial-gradient(circle at 50% 58%,rgba(36,246,196,.15),rgba(48,220,255,.02) 66%),linear-gradient(180deg,rgba(48,220,255,.08),rgba(5,26,39,.34))}.business-gauge-item.is-low-rate:before{opacity:.34}.business-gauge-item.is-low-rate .business-gauge-progress{stroke-width:6;stroke-linecap:butt;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--gauge-color) 66%,transparent))}.business-gauge-item.is-low-rate .business-gauge-needle{width:18px;height:3px;opacity:.86}.business-gauge-item.is-low-rate .business-gauge-pivot{width:7px;height:7px}.business-gauge-visual{position:relative;align-self:end;width:100%;max-width:116px;height:82px;min-width:0}.business-gauge-visual svg{position:absolute;left:0;top:0;width:100%;height:72px;overflow:visible}.business-gauge-track,.business-gauge-progress,.business-gauge-glow{fill:none;stroke-linecap:round}.business-gauge-track{stroke:#aaeeff2b;stroke-width:10}.business-gauge-progress{stroke:var(--gauge-color);stroke-width:10;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--gauge-color) 72%,transparent))}.business-gauge-glow{stroke:#30dcff29;stroke-width:1.5;stroke-dasharray:3 6}.business-gauge-needle{position:absolute;left:50%;top:64px;width:42px;height:2px;border-radius:2px;background:linear-gradient(90deg,#ffffff 0%,var(--gauge-color) 76%,rgba(255,255,255,0));box-shadow:0 0 7px color-mix(in srgb,var(--gauge-color) 72%,transparent);transform:rotate(var(--needle-rotate));transform-origin:2px 50%}.business-gauge-pivot{position:absolute;left:50%;top:64px;width:9px;height:9px;border:2px solid rgba(255,255,255,.88);border-radius:50%;background:var(--gauge-color);box-shadow:0 0 8px color-mix(in srgb,var(--gauge-color) 72%,transparent);transform:translate(-50%,-50%)}.business-gauge-value{position:absolute;left:0;right:0;top:28px;text-align:center;pointer-events:none}.business-gauge-value strong{display:block;color:#fff!important;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:19px;font-weight:800;text-shadow:0 0 8px rgba(48,220,255,.42)!important;white-space:nowrap}.business-gauge-value strong em{margin-left:2px;color:#eefdffc2!important;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:500}.business-gauge-value small{display:block;margin-top:2px;color:var(--gauge-color)!important;font-size:10px;line-height:12px;white-space:nowrap}.business-gauge-name,.business-gauge-extra{position:relative;z-index:1;display:block;max-width:100%;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.business-gauge-name{color:#fff!important;font-size:12px;line-height:16px;font-weight:700}.business-gauge-extra{color:#eefdffad!important;font-size:10px;line-height:13px}.business-icon-metric-item{border-color:#30dcff29!important;background:linear-gradient(90deg,rgba(48,220,255,.075),rgba(48,220,255,.02)),linear-gradient(180deg,rgba(8,41,56,.7),rgba(4,20,32,.62))!important}.business-icon-metric-item:before{background:var(--screen-icon-primary, #30dcff)!important;box-shadow:0 0 5px var(--screen-icon-glow, rgba(48, 220, 255, .22))!important}.business-icon-metric-item.is-tone-1:before,.business-icon-metric-item.is-tone-2:before,.business-icon-metric-item.is-tone-3:before{background:var(--screen-icon-primary, #30dcff)!important;box-shadow:0 0 5px var(--screen-icon-glow, rgba(48, 220, 255, .22))!important}.business-icon-metric-mark{width:var(--screen-icon-size, 42px)!important;height:var(--screen-icon-size, 42px)!important;border-color:var(--screen-icon-border, rgba(48, 220, 255, .42))!important;background:radial-gradient(circle at 50% 42%,rgba(48,220,255,.16),rgba(48,220,255,.035) 64%),linear-gradient(135deg,rgba(48,220,255,.15),rgba(4,24,36,.24))!important;box-shadow:inset 0 0 12px #30dcff1a,0 0 5px var(--screen-icon-glow, rgba(48, 220, 255, .22))!important}.business-icon-metric-mark:before,.business-icon-metric-mark:after,.business-icon-metric-mark span,.business-icon-metric-mark span:before,.business-icon-metric-mark span:after{border-color:var(--screen-icon-primary, #30dcff)!important;background:var(--screen-icon-primary, #30dcff)!important;background-color:var(--screen-icon-primary, #30dcff)!important;box-shadow:0 0 4px #30dcff33!important}.business-icon-metric-mark.is-yield span,.business-icon-metric-mark.is-leaf span,.business-icon-metric-mark.is-stack span,.business-icon-metric-mark.is-stack span:before,.business-icon-metric-mark.is-stack span:after{background:linear-gradient(180deg,rgba(139,247,255,.96),rgba(48,220,255,.76))!important}.business-icon-metric-mark.is-rate:before{background:transparent!important;border-width:3px!important;border-color:#30dcffb8!important;border-top-color:#ffffffdb!important}.business-icon-metric-mark.is-area:before{background:linear-gradient(135deg,rgba(48,220,255,.28),rgba(48,220,255,.08))!important}.business-icon-metric-mark.is-risk:before{background:transparent!important;border-left-color:var(--screen-icon-primary, #30dcff)!important;border-bottom-color:var(--screen-icon-primary, #30dcff)!important}.business-project-cell-icon,.business-project-cell-icon--locate,tbody tr.is-active .business-project-cell-icon--locate{color:var(--screen-icon-primary, #30dcff)!important;filter:none!important}.business-project-cell-icon:hover,.business-project-cell-icon:focus-visible{color:#fff!important;filter:none!important}.business-project-cell-icon--locate,tbody tr.is-active .business-project-cell-icon--locate{background:linear-gradient(currentColor,currentColor) center top/1px 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 3px no-repeat,linear-gradient(currentColor,currentColor) left center/3px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/3px 1px no-repeat,rgba(48,220,255,.08)!important;box-shadow:0 0 5px #30dcff3d,inset 0 0 5px #30dcff1a!important}tbody tr.is-active .business-project-cell-icon--locate:after{background:#ffffff!important;box-shadow:0 0 5px #ffffff7a!important}.feature-info{display:block;height:100%;padding:10px 12px 12px;box-sizing:border-box;overflow:hidden}.feature-info-state{height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff85;font-size:14px;text-align:center}.feature-info-state.is-inline{height:190px}.feature-table{display:flex;flex-direction:column;height:100%;max-height:100%;padding-right:5px;overflow-y:auto}.feature-table::-webkit-scrollbar{width:4px}.feature-table::-webkit-scrollbar-thumb{background:rgba(48,220,255,.32)}.feature-row{display:grid;grid-template-columns:108px minmax(0,1fr);min-height:34px;align-items:stretch;border:1px solid rgba(48,220,255,.13);border-top:0;background:rgba(5,24,37,.56)}.feature-row:first-child{border-top:1px solid rgba(48,220,255,.13)}.feature-row span{display:flex;align-items:center;padding:7px 10px;border-right:1px solid rgba(48,220,255,.13);background:rgba(48,220,255,.08);color:#ffffff8f;font-size:12px;line-height:18px}.feature-row strong{display:flex;align-items:center;min-width:0;padding:7px 11px;color:#effcfff0;font-size:13px;font-weight:600;line-height:18px;word-break:break-word}.feature-row:first-child strong,.feature-row:nth-child(2) strong{color:#1afcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px}.topic-switcher{display:flex;align-items:flex-start;justify-content:center;width:600px;height:52px;padding-top:10px;background:url(./bottom-menu-bg-b465793d-balabala-1783995319167.png) no-repeat center bottom;background-size:100% 52px;pointer-events:all}.topic-switcher-arrow{display:flex;align-items:center;height:30px;margin:0 12px}.topic-switcher-arrow.is-reverse{transform:scaleX(-1)}.topic-switcher-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.topic-switcher-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.topic-switcher-menu{display:flex;gap:4px}.topic-switcher-item{position:relative;width:var(--topic-item-width, 112px);height:32px;padding:0;border:0;background:url(./bottom-menu-btn-ee5c8064-balabala-1783995319167.png) no-repeat;background-size:100% 100%;color:#fff;cursor:pointer;overflow:hidden}.topic-switcher-item:hover,.topic-switcher-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1783995319167.png) no-repeat;background-size:100% 100%}.topic-switcher .topic-name{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;padding:0 5px;text-align:center;white-space:nowrap}.topic-switcher .topic-name,.topic-switcher .topic-title,.topic-switcher .topic-name small{padding-top:0;font-size:16px;font-weight:700;line-height:18px;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-switcher .topic-name.has-sub-name{gap:1px}.topic-switcher .topic-name small{display:block;max-width:100%;overflow:hidden;font-size:10px;font-weight:600;line-height:11px;text-overflow:ellipsis}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 46%,rgba(2,13,20,.16) 76%,rgba(2,12,18,.42) 100%),linear-gradient(90deg,rgba(0,14,24,.24),transparent 22%,transparent 78%,rgba(0,14,24,.24))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:760px;transform:translate(-50%);pointer-events:auto}.home-bottom-switcher .topic-switcher{width:760px}.home-bottom-switcher .topic-switcher-menu{flex:0 0 auto}.home-bottom-switcher .topic-switcher-arrow{display:none}.home-toolbar-rotation-toggle{position:absolute;top:10px;right:72px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(48,220,255,.56);border-radius:50%;background:rgba(4,27,43,.82);box-shadow:0 0 0 1px #30dcff1f inset,0 0 16px #30dcff3d;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.home-toolbar-rotation-toggle:hover{border-color:#8bf7ffeb;background:rgba(7,42,64,.92);box-shadow:0 0 0 1px #8bf7ff33 inset,0 0 20px #30dcff5c}.home-toolbar-rotation-toggle:active{transform:scale(.94)}.home-toolbar-rotation-toggle.is-paused{border-color:#a7ff4fa3;box-shadow:0 0 0 1px #a7ff4f24 inset,0 0 16px #a7ff4f38}.home-toolbar-rotation-icon{position:relative;display:block;width:14px;height:14px}.home-toolbar-rotation-icon.is-pause:before,.home-toolbar-rotation-icon.is-pause:after{position:absolute;top:1px;bottom:1px;width:4px;border-radius:2px;background:#eaffff;content:""}.home-toolbar-rotation-icon.is-pause:before{left:2px}.home-toolbar-rotation-icon.is-pause:after{right:2px}.home-toolbar-rotation-icon.is-play:before{position:absolute;top:1px;left:3px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid #eaffff;content:""}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-video-modal-status{position:absolute;top:10px;right:10px;z-index:5;padding:3px 8px;border-left:2px solid #24f6c4;color:#b9ffe9;font-size:11px;line-height:15px;font-weight:800;background:rgba(1,28,26,.76)}.home-video-modal-item.is-offline .home-video-modal-status{border-left-color:#8bf7ff;color:#ffe6a7;background:rgba(42,31,5,.76)}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff}.layer-panel{display:grid;grid-template-rows:minmax(150px,210px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.layer-panel.is-legend-only{grid-template-rows:minmax(0,1fr);gap:0;padding:10px 12px 12px}.layer-panel.is-legend-only .layer-panel-legend{padding-top:0;border-top:0}.layer-panel.is-legend-only .layer-panel-section-title{display:none}.layer-panel.is-legend-only .layer-panel-legend-grid{grid-template-columns:1fr;justify-content:stretch;gap:8px;max-height:100%;padding-right:0;overflow:hidden}.layer-panel.is-legend-only .layer-panel-legend-row{min-height:28px;padding:4px 2px}.layer-panel.is-compact{grid-template-rows:auto auto;gap:8px;padding:8px 10px 10px}.layer-panel.is-compact .layer-panel-list{gap:5px;padding-right:0;overflow:visible}.layer-panel.is-compact .layer-panel-item{height:28px;flex-basis:28px;padding:0 9px;font-size:12px}.layer-panel.is-compact .layer-panel-legend{padding-top:7px}.layer-panel.is-compact .layer-panel-section-title{margin-bottom:5px;font-size:12px;line-height:14px}.layer-panel.is-compact .layer-panel-section-title:before{top:3px}.layer-panel.is-compact .layer-panel-legend-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;max-height:none;padding-right:0;overflow:visible}.layer-panel.is-compact .layer-panel-legend-grid.is-single{grid-template-columns:1fr}.layer-panel.is-compact .layer-panel-legend-row{min-height:22px;padding:2px 0}.layer-panel.is-compact .legend-name{line-height:14px;-webkit-line-clamp:1}.layer-panel-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto}.layer-panel-item{display:flex;align-items:center;justify-content:space-between;height:27px;flex:0 0 27px;padding:0 9px;border:1px solid rgba(48,220,255,.22);background:rgba(3,20,32,.58);color:#ffffffbd;font-size:12px;cursor:pointer}.layer-panel-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-panel-item i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.layer-panel-item.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.layer-panel-item.is-checked i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.layer-panel-item.is-checked:not(.is-active){color:#ffffffe0;border-color:#30dcff6b;background:rgba(3,20,32,.72)}.layer-panel-item.is-overlay i{border-radius:1px}.layer-panel-item.is-overlay.is-checked i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.layer-panel-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.layer-panel-section-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.layer-panel-section-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.layer-panel-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto}.layer-panel-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.layer-panel-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;background:transparent;color:inherit;text-align:left;cursor:pointer}.layer-panel-legend-row:disabled{opacity:1}.layer-panel-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.layer-panel-legend-row.is-selected{border-color:#30dcff6b;background:rgba(48,220,255,.08)}.layer-panel-legend-row.is-selected .legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffc2}.layer-panel-legend-row.is-selected .legend-check:after{opacity:1}.layer-panel-legend-row.is-disabled{cursor:default}.layer-panel .legend-swatch{width:15px;height:10px;margin-top:3px;border:1px solid;box-shadow:0 0 12px #30dcff2e}.layer-panel .legend-name{display:-webkit-box;min-width:0;color:#ffffffd1;font-size:12px;line-height:14px;overflow:hidden;word-break:break-all;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical}.layer-panel .legend-check{position:relative;width:11px;height:11px;margin-top:2px;border:1px solid rgba(255,255,255,.4);border-radius:2px}.layer-panel .legend-check:after{content:"";position:absolute;left:3px;top:1px;width:3px;height:6px;border:solid rgba(3,20,32,.95);border-width:0 1px 1px 0;opacity:0;transform:rotate(45deg)}.layer-panel-empty{color:#ffffff85;line-height:48px;text-align:center}.layer-panel-empty.is-legend{line-height:28px}.layer-panel-list,.layer-panel-legend-grid{scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.42) rgba(48,220,255,.08)}.layer-panel-list::-webkit-scrollbar,.layer-panel-legend-grid::-webkit-scrollbar{width:4px}.layer-panel-list::-webkit-scrollbar-thumb,.layer-panel-legend-grid::-webkit-scrollbar-thumb{background:rgba(48,220,255,.42)}.layer-panel-list::-webkit-scrollbar-track,.layer-panel-legend-grid::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.grassland-ndvi-timeline[data-v-86212a95]{width:680px;height:68px;box-sizing:border-box;padding:8px 12px 9px;border:1px solid rgba(72,226,255,.28);background:linear-gradient(180deg,rgba(6,36,50,.76),rgba(3,18,30,.66)),linear-gradient(90deg,rgba(28,191,255,.08),rgba(38,246,198,.12),rgba(28,191,255,.08));backdrop-filter:blur(6px);box-shadow:inset 0 1px #bbfaff1f,inset 0 0 18px #1cbfff14,0 10px 28px #000c1a57;color:#efffff;pointer-events:all}.grassland-ndvi-timeline.is-dense[data-v-86212a95]{width:740px;height:86px;padding:8px 14px 10px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-head[data-v-86212a95]{margin-bottom:5px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-body[data-v-86212a95]{align-items:start}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-track[data-v-86212a95]{height:52px;margin:0 4px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-line[data-v-86212a95],.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-fill[data-v-86212a95],.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-thumb[data-v-86212a95]{top:13px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark[data-v-86212a95]{width:70px;height:52px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark .grassland-ndvi-timeline-tick[data-v-86212a95]{top:8px;height:12px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark .grassland-ndvi-timeline-label[data-v-86212a95]{top:24px;width:68px;font-size:11px;line-height:15px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark.is-staggered .grassland-ndvi-timeline-label[data-v-86212a95]{top:38px}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark.is-active[data-v-86212a95]{z-index:4}.grassland-ndvi-timeline.is-dense .grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-label[data-v-86212a95]{width:72px;font-size:12px}.grassland-ndvi-timeline-head[data-v-86212a95]{display:flex;align-items:center;justify-content:space-between;height:18px;margin-bottom:8px}.grassland-ndvi-timeline-head span[data-v-86212a95]{position:relative;padding-left:10px;color:#e8fcffdb;font-size:13px;font-weight:700}.grassland-ndvi-timeline-head span[data-v-86212a95]:before{content:"";position:absolute;left:0;top:4px;width:4px;height:10px;background:#26f6c6;box-shadow:0 0 10px #26f6c6b8}.grassland-ndvi-timeline-head strong[data-v-86212a95]{color:#29ffcf;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;line-height:18px;letter-spacing:0;text-shadow:0 0 12px rgba(41,255,207,.42)}.grassland-ndvi-timeline-state[data-v-86212a95]{display:flex;align-items:center;justify-content:center;height:30px;color:#e4fbffad;font-size:13px}.grassland-ndvi-timeline-body[data-v-86212a95]{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:12px}.grassland-ndvi-timeline-nav[data-v-86212a95]{width:28px;height:28px;padding:0;border:1px solid rgba(72,226,255,.34);background:rgba(7,35,48,.68);color:#e6fdffe0;font-size:22px;line-height:20px;cursor:pointer;outline:none}.grassland-ndvi-timeline-nav[data-v-86212a95]:hover,.grassland-ndvi-timeline-nav[data-v-86212a95]:focus-visible{color:#fff;border-color:#30dcffc7;box-shadow:0 0 12px #30dcff42}.grassland-ndvi-timeline-track[data-v-86212a95]{position:relative;height:34px;margin:0 8px}.grassland-ndvi-timeline-line[data-v-86212a95],.grassland-ndvi-timeline-fill[data-v-86212a95]{position:absolute;left:var(--timeline-edge-offset);top:8px;height:3px;border-radius:999px}.grassland-ndvi-timeline-line[data-v-86212a95]{right:var(--timeline-edge-offset);background:rgba(90,199,228,.28);box-shadow:inset 0 0 8px #00071247}.grassland-ndvi-timeline-fill[data-v-86212a95]{right:auto;width:var(--timeline-fill-width);background:linear-gradient(90deg,#35bff8,#29ffcf);box-shadow:0 0 12px #29ffcf5c}.grassland-ndvi-timeline-thumb[data-v-86212a95]{position:absolute;z-index:3;left:var(--timeline-active-left);top:8px;width:0;height:0;pointer-events:none;transform:translate(-50%)}.grassland-ndvi-timeline-thumb i[data-v-86212a95]{content:"";position:absolute;left:-9px;top:-9px;width:18px;height:18px;box-sizing:border-box;border:2px solid rgba(240,255,255,.92);border-radius:50%;background:#29ffcf;box-shadow:0 0 0 5px #29ffcf1f,0 0 18px #29ffcfa8}.grassland-ndvi-timeline-mark[data-v-86212a95]{position:absolute;z-index:2;top:0;display:block;width:84px;height:34px;padding:0;border:0;background:transparent;color:#e8faffc2;cursor:pointer;outline:none;transform:translate(-50%)}.grassland-ndvi-timeline-mark .grassland-ndvi-timeline-tick[data-v-86212a95]{position:absolute;left:50%;top:4px;width:2px;height:11px;border-radius:999px;background:rgba(148,234,255,.74);box-shadow:0 0 8px #30dcff3d;transform:translate(-50%)}.grassland-ndvi-timeline-mark .grassland-ndvi-timeline-label[data-v-86212a95]{position:absolute;left:50%;top:18px;width:78px;box-sizing:border-box;overflow:visible;padding:0 3px;color:#e8faff9e;font-size:12px;font-weight:700;line-height:16px;text-align:center;text-overflow:clip;white-space:nowrap;transform:translate(-50%)}.grassland-ndvi-timeline-mark[data-v-86212a95]:hover,.grassland-ndvi-timeline-mark[data-v-86212a95]:focus-visible,.grassland-ndvi-timeline-mark.is-active[data-v-86212a95]{color:#fff}.grassland-ndvi-timeline-mark:hover .grassland-ndvi-timeline-tick[data-v-86212a95],.grassland-ndvi-timeline-mark:focus-visible .grassland-ndvi-timeline-tick[data-v-86212a95],.grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-tick[data-v-86212a95]{background:#29ffcf;box-shadow:0 0 12px #29ffcf94}.grassland-ndvi-timeline-mark:hover .grassland-ndvi-timeline-label[data-v-86212a95],.grassland-ndvi-timeline-mark:focus-visible .grassland-ndvi-timeline-label[data-v-86212a95],.grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-label[data-v-86212a95]{color:#fff}.grassland-ndvi-timeline-mark.is-active .grassland-ndvi-timeline-label[data-v-86212a95]{width:78px;padding:0 8px;border:1px solid rgba(41,255,207,.34);background:rgba(4,39,48,.78);box-shadow:0 0 14px #29ffcf29}.forest-grass-wet{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;overflow:clip;overscroll-behavior:none}.forest-grass-wet>.map{width:100%;height:100%}.forest-grass-wet>.map>canvas{display:block;width:100%!important;height:100%!important}.forest-grass-wet>.map>div{width:100%!important;height:100%!important}.forest-grass-wet-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.forest-grass-wet .fgw-left,.forest-grass-wet .fgw-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.forest-grass-wet .fgw-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.forest-grass-wet .fgw-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.forest-grass-wet .fgw-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.forest-grass-wet .fgw-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.forest-grass-wet .fgw-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.forest-grass-wet .fgw-side-card{flex:0 0 auto}.forest-grass-wet .fgw-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.forest-grass-wet .fgw-map-layer-tools,.forest-grass-wet .fgw-map-feature-info{position:absolute;z-index:7;pointer-events:all}.forest-grass-wet .fgw-map-layer-tools .m-card,.forest-grass-wet .fgw-map-feature-info .m-card{background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.forest-grass-wet .fgw-map-layer-tools{top:auto;right:458px;left:auto;bottom:72px;width:248px;height:430px}.forest-grass-wet .fgw-map-layer-tools .m-card{width:100%!important;height:100%!important}.forest-grass-wet .fgw-ndvi-timeline{position:absolute;left:50%;bottom:112px;z-index:7;transform:translate(-50%);pointer-events:all}.forest-grass-wet .fgw-map-feature-info{right:456px;bottom:150px}.forest-grass-wet .fgw-bottom-topic{position:absolute;left:50%;bottom:48px;z-index:8;transform:translate(-50%);pointer-events:all}.engineering-analysis-panel[data-v-96bdd213]{position:absolute;z-index:8;left:32px;top:188px;width:454px;display:grid;grid-template-rows:auto auto;gap:12px;max-height:calc(100vh - 190px);pointer-events:auto}.analysis-card[data-v-96bdd213]{position:relative;overflow:hidden;min-height:0;padding:14px 16px 16px;border:1px solid rgba(55,228,255,.28);background:linear-gradient(135deg,rgba(7,36,52,.88),rgba(4,18,29,.74)),radial-gradient(circle at 16% 4%,rgba(36,246,196,.18),transparent 38%),radial-gradient(circle at 90% 0,rgba(48,220,255,.12),transparent 34%);box-shadow:inset 0 1px #b4fcff29,inset 0 0 26px #30dcff1f,0 16px 30px #00000052;backdrop-filter:blur(4px);box-sizing:border-box}.analysis-card[data-v-96bdd213]:before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,#24f6c4,rgba(48,220,255,.18),transparent);opacity:.8}.analysis-card[data-v-96bdd213]:after{content:"";position:absolute;right:12px;top:10px;width:78px;height:18px;border-top:1px solid rgba(48,220,255,.22);background:repeating-linear-gradient(90deg,rgba(48,220,255,.18) 0 7px,transparent 7px 14px);opacity:.42;pointer-events:none}.analysis-workbench[data-v-96bdd213]{transition:border-color .2s ease,box-shadow .2s ease}.analysis-workbench.is-running[data-v-96bdd213]{border-color:#7efbf680;box-shadow:inset 0 1px #b4fcff2e,inset 0 0 30px #30dcff29,0 18px 32px #0000005c}.analysis-workbench.is-complete[data-v-96bdd213]{border-color:#24f6c46b}.analysis-card-head[data-v-96bdd213]{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;height:26px;color:#fff}.analysis-card-head span[data-v-96bdd213]{padding-left:10px;font-size:16px;font-weight:800;letter-spacing:0}.analysis-card-head span[data-v-96bdd213]:before{content:"";position:absolute;left:0;top:7px;width:3px;height:14px;background:#24f6c4;box-shadow:0 0 10px #24f6c4cc}.analysis-card-head strong[data-v-96bdd213]{color:#24f6c4;font-size:13px;font-weight:700}.analysis-operation[data-v-96bdd213]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.analysis-operation.has-boundary[data-v-96bdd213]{margin-top:10px}.analysis-operation.has-boundary .analysis-entry[data-v-96bdd213]{height:40px}.analysis-operation.has-boundary .analysis-entry span[data-v-96bdd213]{font-size:13px}.analysis-entry[data-v-96bdd213]{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-content:center;align-items:center;min-width:0;height:64px;padding:0 16px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04)),rgba(4,23,34,.62);color:#fff;text-align:left;cursor:pointer;box-sizing:border-box;box-shadow:inset 0 0 18px #30dcff14;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.analysis-entry[data-v-96bdd213]:before{content:"";grid-row:1/3;width:34px;height:34px;border:1px solid rgba(36,246,196,.42);background:linear-gradient(135deg,rgba(36,246,196,.22),rgba(48,220,255,.08)),rgba(4,23,34,.7);box-shadow:inset 0 0 12px #30dcff1f,0 0 12px #24f6c429}.analysis-entry.is-upload[data-v-96bdd213]:before{background:linear-gradient(#24f6c4 0 0) 50% 9px/2px 15px no-repeat,linear-gradient(45deg,transparent 42%,#24f6c4 43% 56%,transparent 57%) 10px 8px/8px 8px no-repeat,linear-gradient(-45deg,transparent 42%,#24f6c4 43% 56%,transparent 57%) 16px 8px/8px 8px no-repeat,linear-gradient(#24f6c4 0 0) 50% 25px/16px 2px no-repeat,linear-gradient(135deg,rgba(36,246,196,.22),rgba(48,220,255,.08)),rgba(4,23,34,.7)}.analysis-entry.is-draw[data-v-96bdd213]:before{background:radial-gradient(circle,#24f6c4 0 2px,transparent 2.5px) 21px 7px/8px 8px no-repeat,linear-gradient(135deg,transparent 42%,#24f6c4 43% 56%,transparent 57%) 9px 11px/18px 18px no-repeat,linear-gradient(#24f6c4 0 0) 9px 25px/14px 2px no-repeat,linear-gradient(135deg,rgba(36,246,196,.22),rgba(48,220,255,.08)),rgba(4,23,34,.7)}.analysis-entry[data-v-96bdd213]:after{content:"";position:absolute;right:9px;top:9px;width:18px;height:18px;border-top:1px solid rgba(36,246,196,.45);border-right:1px solid rgba(36,246,196,.45)}.analysis-entry span[data-v-96bdd213]{min-width:0;font-size:16px;font-weight:700;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-entry strong[data-v-96bdd213]{min-width:0;margin-top:2px;color:#e8fcffb8;font-size:11px;font-weight:500;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-entry input[data-v-96bdd213]{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.analysis-entry[data-v-96bdd213]:disabled,.analysis-entry.is-disabled[data-v-96bdd213]{opacity:.42;cursor:not-allowed}.analysis-entry[data-v-96bdd213]:not(:disabled):not(.is-disabled):hover{border-color:#24f6c4b8;background:linear-gradient(90deg,rgba(36,246,196,.2),rgba(48,220,255,.06)),rgba(4,23,34,.56);box-shadow:inset 0 0 20px #24f6c41a,0 0 16px #24f6c41f;transform:translateY(-1px)}.analysis-entry[data-v-96bdd213]:focus-visible{outline:2px solid rgba(139,247,255,.8);outline-offset:2px}.analysis-drawing-bar[data-v-96bdd213],.analysis-drawing-stage[data-v-96bdd213],.analysis-boundary-bar[data-v-96bdd213]{display:grid;align-items:center;gap:8px;margin-top:14px;padding:0 12px;border:1px solid rgba(36,246,196,.34);background:linear-gradient(90deg,rgba(36,246,196,.13),rgba(48,220,255,.06)),rgba(4,23,34,.58);box-sizing:border-box}.analysis-drawing-stage[data-v-96bdd213]{grid-template-columns:78px 74px 54px minmax(68px,1fr);height:70px;padding:0 12px;border-color:#7efbf675;background:linear-gradient(90deg,rgba(36,246,196,.15),rgba(48,220,255,.08)),rgba(4,23,34,.54)}.analysis-drawing-bar[data-v-96bdd213]{grid-template-columns:92px minmax(0,1fr) 66px 74px}.analysis-boundary-bar[data-v-96bdd213]{grid-template-columns:92px minmax(0,1fr) 86px;height:42px}.analysis-boundary-bar span[data-v-96bdd213]{color:#24f6c4;font-size:13px;font-weight:700}.analysis-boundary-bar strong[data-v-96bdd213]{min-width:0;overflow:hidden;color:#e8fcffb8;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.analysis-boundary-bar button[data-v-96bdd213]{height:30px;border:1px solid rgba(139,247,255,.46);background:rgba(48,220,255,.1);color:#c9fbff;font-size:13px;font-weight:700;cursor:pointer;transition:border-color .18s ease,background .18s ease}.analysis-boundary-bar button[data-v-96bdd213]:hover{border-color:#8bf7ffb8;background:rgba(48,220,255,.18)}.analysis-point-count[data-v-96bdd213]{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:3px;color:#e8fcffd1;font-size:12px}.analysis-point-count span[data-v-96bdd213]{grid-column:1/-1;color:#e8fcffb3;line-height:18px}.analysis-point-count strong[data-v-96bdd213]{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:30px;line-height:32px}.analysis-point-count em[data-v-96bdd213]{color:#e8fcffb8;font-style:normal}.analysis-point-count small[data-v-96bdd213]{grid-column:1/-1;margin-top:2px;color:#c9fbffc7;font-size:11px;line-height:14px}.analysis-control[data-v-96bdd213]{height:34px;min-width:0;padding:0 4px;border:1px solid rgba(48,220,255,.26);background:rgba(48,220,255,.08);color:#ffffffe6;font-size:12px;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.analysis-control.is-primary[data-v-96bdd213]{border-color:#24f6c4c7;background:rgba(36,246,196,.22);color:#fff;font-weight:700}.analysis-control.is-danger[data-v-96bdd213]{border-color:#8bf7ff6b;background:rgba(48,220,255,.11);color:#c9fbff}.analysis-control[data-v-96bdd213]:disabled{opacity:.42;cursor:not-allowed}.analysis-control[data-v-96bdd213]:not(:disabled):hover{border-color:#8bf7ff9e;background:rgba(48,220,255,.16);transform:translateY(-1px)}.analysis-result[data-v-96bdd213]{display:flex;flex-direction:column;gap:10px;height:clamp(500px,56vh,620px);min-height:0;max-height:calc(100vh - 350px)}.analysis-result.is-running[data-v-96bdd213]{min-height:214px;height:auto}.analysis-result.is-empty[data-v-96bdd213]{min-height:286px;height:auto}.analysis-running[data-v-96bdd213]{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;min-height:104px;padding:14px;border:1px solid rgba(126,251,246,.24);background:radial-gradient(circle at 22px 22px,rgba(126,251,246,.18),transparent 46px),linear-gradient(135deg,rgba(48,220,255,.09),rgba(4,23,34,.5));box-sizing:border-box}.analysis-running strong[data-v-96bdd213],.analysis-running span[data-v-96bdd213]{display:block;min-width:0}.analysis-running strong[data-v-96bdd213]{color:#fff;font-size:14px;line-height:22px}.analysis-running span[data-v-96bdd213]{margin-top:4px;color:#e8fcffb8;font-size:12px;line-height:18px}.analysis-running-orbit[data-v-96bdd213]{position:relative;width:42px;height:42px;border:1px solid rgba(126,251,246,.42);border-radius:50%;box-shadow:inset 0 0 12px #30dcff2e,0 0 18px #24f6c429}.analysis-running-orbit[data-v-96bdd213]:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:2px solid transparent;border-top-color:#24f6c4;border-right-color:#30dcffd6;border-radius:50%;animation:analysisSpin-96bdd213 1.1s linear infinite}.analysis-running-orbit[data-v-96bdd213]:after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#eaffff;box-shadow:0 0 12px #7efbf6cc;transform:translate(-50%,-50%)}.analysis-empty[data-v-96bdd213]{display:flex;align-items:center;justify-content:center;min-height:126px;color:#e8fcffad;font-size:13px;text-align:center}.analysis-empty.is-success[data-v-96bdd213]{min-height:64px;border:1px solid rgba(36,246,196,.18);background:rgba(36,246,196,.06);color:#24f6c4}.analysis-conclusion[data-v-96bdd213]{display:grid;gap:8px;padding:12px;border:1px solid rgba(48,220,255,.22);background:linear-gradient(135deg,rgba(48,220,255,.09),rgba(4,23,34,.48)),rgba(4,23,34,.5);box-sizing:border-box}.analysis-conclusion.is-hit[data-v-96bdd213]{border-color:#8bf7ff47;background:linear-gradient(135deg,rgba(48,220,255,.08),rgba(4,23,34,.36))}.analysis-conclusion.is-heavy[data-v-96bdd213]{border-color:#8bf7ff3d;background:linear-gradient(135deg,rgba(139,247,255,.08),rgba(4,23,34,.38))}.analysis-conclusion.is-clear[data-v-96bdd213]{border-color:#24f6c43d;background:linear-gradient(135deg,rgba(36,246,196,.08),rgba(4,23,34,.36))}.analysis-conclusion p[data-v-96bdd213],.analysis-conclusion small[data-v-96bdd213]{margin:0;color:#e8fcffc2;font-size:12px;line-height:20px}.analysis-conclusion small[data-v-96bdd213]{color:#c9fbffdb;font-weight:600}.analysis-conclusion-head[data-v-96bdd213]{display:flex;align-items:center;justify-content:space-between;gap:10px}.analysis-conclusion-head span[data-v-96bdd213]{color:#e8fcffb8;font-size:11px}.analysis-conclusion-head strong[data-v-96bdd213]{color:#24f6c4;font-size:13px;font-weight:700}.analysis-conclusion-tags[data-v-96bdd213]{display:flex;flex-wrap:wrap;gap:6px}.analysis-conclusion-tags span[data-v-96bdd213]{max-width:100%;height:24px;padding:0 9px;overflow:hidden;border:1px solid rgba(48,220,255,.2);background:rgba(48,220,255,.08);color:#e8fcffcc;font-size:11px;line-height:22px;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.analysis-project-list[data-v-96bdd213]{flex:1 1 auto;min-height:0;overflow:auto;padding-right:6px;scrollbar-color:rgba(48,220,255,.58) rgba(48,220,255,.1);scrollbar-width:thin}.analysis-project-list[data-v-96bdd213]::-webkit-scrollbar{width:4px}.analysis-project-list[data-v-96bdd213]::-webkit-scrollbar-track{background:rgba(48,220,255,.08)}.analysis-project-list[data-v-96bdd213]::-webkit-scrollbar-thumb{border-radius:0;background:linear-gradient(180deg,rgba(36,246,196,.9),rgba(48,220,255,.42))}.analysis-project-row[data-v-96bdd213]{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:7px;width:100%;min-height:86px;margin-bottom:8px;padding:10px 12px;border:1px solid rgba(48,220,255,.18);border-left-color:#24f6c48f;background:linear-gradient(90deg,rgba(36,246,196,.1),rgba(48,220,255,.04)),rgba(4,23,34,.54);color:#fff;font-size:12px;text-align:left;cursor:pointer;box-sizing:border-box;box-shadow:inset 0 0 16px #30dcff0d;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.analysis-project-row .analysis-project-name[data-v-96bdd213],.analysis-project-row b[data-v-96bdd213]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-project-row .analysis-project-name[data-v-96bdd213]{display:block;color:#fff;font-size:13px;font-weight:700;line-height:18px}.analysis-project-row .analysis-project-meta[data-v-96bdd213]{display:grid;grid-template-columns:52px 72px minmax(0,1fr);align-items:center;gap:6px;min-width:0}.analysis-project-row strong[data-v-96bdd213],.analysis-project-row em[data-v-96bdd213],.analysis-project-row small[data-v-96bdd213]{height:26px;min-width:0;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:rgba(4,23,34,.46);font-size:12px;line-height:24px;text-align:center;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.analysis-project-row strong[data-v-96bdd213]{color:#24f6c4;font-weight:700}.analysis-project-row em[data-v-96bdd213]{color:#ffffffd1;font-style:normal}.analysis-project-row small[data-v-96bdd213]{padding:0 5px;color:#c9fbffe6;text-align:right}.analysis-project-row b[data-v-96bdd213]{color:#e8fcffa8;font-size:12px;font-weight:500;line-height:16px}.analysis-project-row[data-v-96bdd213]:hover{border-color:#24f6c47a;background:linear-gradient(90deg,rgba(36,246,196,.14),rgba(48,220,255,.06)),rgba(4,23,34,.62);box-shadow:inset 0 0 18px #30dcff14,0 0 14px #24f6c414;transform:translate(2px)}.analysis-project-row.is-active[data-v-96bdd213]{border-color:#24f6c4b8;border-left-color:#24f6c4;background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(48,220,255,.08)),rgba(4,28,38,.7);box-shadow:inset 3px 0 #24f6c4e6,inset 0 0 18px #24f6c414,0 0 18px #24f6c41f}.analysis-project-row[data-v-96bdd213]:focus-visible{outline:2px solid rgba(139,247,255,.78);outline-offset:2px}@keyframes analysisSpin-96bdd213{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ecological-protection .fgw-map-layer-tools{top:auto;right:458px;bottom:132px;left:auto;width:248px;height:430px}.ecological-protection .fgw-map-layer-tools.is-analysis{top:auto;right:458px;bottom:132px;left:auto;transform:none;transform-origin:right top}.ecological-protection .fgw-map-layer-tools.is-compact{height:auto}.ecological-protection .ecological-bottom-topic{bottom:48px}.ecological-protection .ecological-bottom-topic .topic-switcher{width:820px}.ecological-protection .ecological-bottom-topic .topic-switcher-item{width:154px}.ecological-protection .ecological-bottom-topic .topic-name{font-size:15px;letter-spacing:0}.grass-livestock-balance{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:radial-gradient(circle at 50% 35%,rgba(63,235,219,.16),transparent 28%),radial-gradient(circle at 73% 62%,rgba(255,211,103,.08),transparent 32%),radial-gradient(circle at 22% 78%,rgba(52,152,125,.1),transparent 30%),linear-gradient(135deg,#020a12 0%,#062439 50%,#03101b 100%)}.grass-livestock-balance:before,.grass-livestock-balance:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.grass-livestock-balance:before{background:linear-gradient(rgba(89,233,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(89,233,255,.014) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(circle at 50% 47%,#000 0 48%,transparent 78%);mask-image:radial-gradient(circle at 50% 47%,#000 0 48%,transparent 78%)}.grass-livestock-balance:after{background:linear-gradient(112deg,transparent 0 35%,rgba(126,251,246,.055) 44%,transparent 54% 100%),linear-gradient(180deg,rgba(1,7,13,.18),rgba(1,7,13,.58));mix-blend-mode:screen;opacity:.78}.balance-backdrop{position:absolute;left:50%;top:104px;z-index:1;width:1740px;height:944px;transform:translate(-50%);pointer-events:none;background:radial-gradient(ellipse at 50% 30%,rgba(126,251,246,.16),transparent 34%),linear-gradient(90deg,transparent,rgba(126,251,246,.045),rgba(255,215,108,.026),transparent),linear-gradient(rgba(48,220,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.018) 1px,transparent 1px);background-size:100% 100%,100% 100%,42px 42px,42px 42px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent)}.balance-backdrop:before,.balance-backdrop:after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.5),rgba(255,215,108,.34),transparent);box-shadow:0 0 22px #7efbf633}.balance-backdrop:before{top:64px}.balance-backdrop:after{bottom:42px}.balance-energy-band{position:absolute;left:96px;right:96px;top:108px;height:460px;background:radial-gradient(ellipse at 50% 50%,rgba(36,246,196,.16),transparent 56%),linear-gradient(90deg,transparent,rgba(126,251,246,.1),rgba(255,215,108,.055),transparent),repeating-linear-gradient(90deg,transparent 0 32px,rgba(126,251,246,.04) 32px 33px);opacity:.78;transform:perspective(820px) rotateX(60deg);transform-origin:top;animation:balance-band-pulse 4.6s ease-in-out infinite}.balance-orbit{position:absolute;top:108px;width:282px;height:282px;border:1px solid rgba(126,251,246,.08);border-radius:50%;box-shadow:inset 0 0 38px #7efbf60d,0 0 36px #7efbf60a}.balance-orbit:before,.balance-orbit:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.balance-orbit:before{top:22px;right:22px;bottom:22px;left:22px;border:1px dashed rgba(126,251,246,.08)}.balance-orbit:after{top:72px;right:72px;bottom:72px;left:72px;border:1px solid rgba(255,215,108,.05)}.balance-orbit.is-left{left:285px}.balance-orbit.is-right{right:285px}.balance-screen{position:absolute;left:50%;top:128px;z-index:4;display:grid;grid-template-columns:326px 1310px;align-items:start;gap:24px;width:1660px;transform:translate(-50%);pointer-events:none}.balance-card{height:var(--balance-card-height)!important;filter:drop-shadow(0 18px 28px rgba(0,0,0,.28)) drop-shadow(0 0 24px rgba(31,209,220,.04));pointer-events:all}.balance-card .m-card-bd,.balance-card .m-card-bd-bg{height:var(--balance-card-height)!important}.balance-card .m-card-hd-bg,.balance-card .m-card-hd-zs1,.balance-card .m-card-bd-bg>svg,.balance-card .m-card-bd-bottom-left-arrow,.balance-card .m-card-bd-bottom-right-arrow,.balance-card .m-card-bd-middle-left-line,.balance-card .m-card-bd-middle-right-line{opacity:0}.balance-card .m-card-hd{height:44px;background:linear-gradient(90deg,rgba(48,220,255,.2),rgba(48,220,255,.05) 44%,transparent),linear-gradient(180deg,rgba(12,90,107,.58),rgba(4,28,44,0));clip-path:polygon(0 0,154px 0,178px 20px,100% 20px,100% 44px,0 44px)}.balance-card .m-card-hd:before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.56),rgba(255,215,108,.22),transparent 72%);box-shadow:0 0 14px #7efbf62e}.balance-card .m-card-hd:after{content:"";position:absolute;right:18px;top:10px;width:168px;height:8px;background:repeating-linear-gradient(90deg,rgba(126,251,246,.28) 0 9px,transparent 9px 15px);opacity:.58;transform:skew(28deg)}.balance-card .m-card-bd{background:radial-gradient(circle at 50% 0,rgba(126,251,246,.075),transparent 34%),linear-gradient(135deg,rgba(126,251,246,.052),transparent 24%),linear-gradient(315deg,rgba(255,215,108,.028),transparent 32%),linear-gradient(180deg,rgba(4,39,54,.5),rgba(1,16,27,.58));clip-path:polygon(0 0,calc(100% - 30px) 0,100% 30px,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%)}.balance-card .m-card-bd:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(48,220,255,.12);box-shadow:inset 0 0 40px #30dcff06,inset 0 0 1px #7efbf62e;clip-path:inherit;pointer-events:none}.balance-card .m-card-bd:after{content:"";position:absolute;top:42px;right:1px;bottom:1px;left:1px;background:linear-gradient(rgba(126,251,246,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(126,251,246,.016) 1px,transparent 1px);background-size:38px 38px;opacity:.46;pointer-events:none}.balance-card .m-card-bd-content{top:44px;bottom:10px;color:#f3feff}.balance-card .m-card-bd-bg:after{content:"";position:absolute;top:5px;right:6px;bottom:7px;left:6px;pointer-events:none;border:0;background:linear-gradient(140deg,rgba(32,199,214,.035),transparent 34%),linear-gradient(180deg,rgba(17,72,90,.025),rgba(5,28,42,.035))}.balance-sheet-card{filter:none}.balance-sheet-card .m-card-hd{background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.055) 36%,transparent 58%)}.balance-sheet-card .m-card-hd:before{right:32%;background:linear-gradient(90deg,rgba(126,251,246,.62),rgba(255,215,108,.24),transparent)}.balance-sheet-card .m-card-hd:after{display:none}.balance-sheet-card .m-card-bd{background:radial-gradient(circle at 50% 43%,rgba(36,246,196,.075),transparent 30%),linear-gradient(180deg,rgba(6,48,63,.12),rgba(1,13,23,.16))}.balance-sheet-card .m-card-bd:before{border-color:transparent;box-shadow:none}.balance-sheet-card .m-card-bd:after{opacity:.24}.balance-sheet-card .m-card-bd-bg:after{background:none}.balance-target-card{filter:drop-shadow(0 14px 24px rgba(0,0,0,.26)) drop-shadow(0 0 16px rgba(31,209,220,.04))}.balance-target-card .m-card-hd{background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04) 58%,transparent)}.balance-target-card .m-card-hd:before{right:18%}.balance-target-card .m-card-bd{background:radial-gradient(circle at 84% 18%,rgba(255,215,108,.08),transparent 28%),linear-gradient(180deg,rgba(5,42,56,.34),rgba(1,15,25,.42))}.balance-target-card .m-card-bd:before{border-color:#30dcff0e;border-left-color:#30dcff29;border-bottom-color:#30dcff1f}.balance-target-card .m-card-bd-bg:after{background:radial-gradient(circle at 82% 28%,rgba(255,215,108,.045),transparent 28%),linear-gradient(180deg,rgba(48,220,255,.018),transparent 44%)}.grass-livestock-balance .m-card-hd-title{left:22px!important;height:44px!important;line-height:38px!important;color:#fff!important;font-size:15px!important;letter-spacing:1px!important;background:none!important;-webkit-text-fill-color:#fff!important;font-weight:800!important;filter:brightness(1.2) contrast(1.08)!important;text-shadow:0 0 1px rgba(255,255,255,.96),0 0 8px rgba(255,255,255,.22)!important}.balance-selector{display:grid;grid-template-rows:40px minmax(112px,1fr) 154px;gap:16px;height:100%;padding:10px 10px 12px;box-sizing:border-box}.balance-scope-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.balance-scope-tabs button{position:relative;height:36px;min-width:0;border:0;background:linear-gradient(180deg,rgba(9,53,69,.28),rgba(4,25,39,.18)),linear-gradient(90deg,rgba(126,251,246,.04),transparent);color:#dffaffc2;font-size:12px;cursor:pointer;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);transition:color .2s ease,border-color .2s ease,background .2s ease}.balance-scope-tabs button:after{content:"";position:absolute;left:18%;right:18%;bottom:4px;height:1px;background:rgba(126,251,246,.46);opacity:0;box-shadow:0 0 10px #7efbf64d}.balance-scope-tabs button.active,.balance-scope-tabs button:hover{background:linear-gradient(90deg,rgba(20,122,128,.5),rgba(255,215,108,.12)),rgba(3,28,39,.22);color:#fff}.balance-scope-tabs button.active:after,.balance-scope-tabs button:hover:after{opacity:1}.balance-target-list{display:grid;align-content:start;gap:9px;min-height:0;overflow-y:auto;padding-right:4px}.balance-target-list::-webkit-scrollbar{width:3px}.balance-target-list::-webkit-scrollbar-thumb{background:rgba(48,220,255,.28)}.balance-target-list button{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-width:0;height:42px;padding:0 12px 0 15px;border:0;background:linear-gradient(90deg,rgba(48,220,255,.1),transparent 66%),linear-gradient(180deg,rgba(8,45,59,.22),rgba(3,20,31,.12));color:#dffaffc7;cursor:pointer;box-sizing:border-box;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%);transition:transform .18s ease,color .18s ease,background .18s ease}.balance-target-list button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-bottom:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-target-list button:after{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;background:rgba(126,251,246,.38);opacity:0}.balance-target-list button:hover{transform:translate(3px);color:#fff}.balance-target-list button:hover:before{border-color:#7efbf63d}.balance-target-list span,.balance-target-list small{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1}.balance-target-list span{font-size:14px}.balance-target-list small{color:#7efbf68f;font-size:12px;text-align:right}.balance-target-list button.active{background:linear-gradient(90deg,rgba(255,215,108,.24),rgba(31,122,130,.46) 58%,rgba(4,27,42,.14)),rgba(4,27,42,.26);color:#fff;transform:translate(5px)}.balance-target-list button.active:before{border-color:#ffd76c75;box-shadow:inset 0 0 16px #ffd76c1a}.balance-target-list button.active:after{opacity:1;background:#ffd76c;box-shadow:0 0 12px #ffd76c61}.balance-action-box{position:relative;display:grid;align-content:center;min-width:0;padding:16px;background:radial-gradient(circle at 90% 18%,rgba(255,215,108,.1),transparent 30%),linear-gradient(135deg,rgba(255,215,108,.055),transparent 42%),linear-gradient(180deg,rgba(4,27,42,.16),rgba(4,27,42,.08));box-sizing:border-box;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}.balance-action-box:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-left:1px solid rgba(48,220,255,.13);border-bottom:1px solid rgba(48,220,255,.06);clip-path:inherit;pointer-events:none}.balance-action-box:after{content:"";position:absolute;left:17px;right:17px;bottom:58px;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.38),transparent);pointer-events:none}.balance-action-box span,.balance-action-box strong,.balance-action-box small{position:relative;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1}.balance-action-box span,.balance-action-box small{color:#dffaffa3;font-size:12px}.balance-action-box strong{margin-top:8px;color:#fff;font-size:25px;line-height:32px;text-shadow:0 0 16px rgba(126,251,246,.16)}.balance-action-box small{margin-top:4px;color:#7efbf6b8}.balance-action-box button{position:relative;z-index:1;width:148px;height:42px;margin-top:18px;border:1px solid rgba(255,215,108,.38);background:linear-gradient(90deg,rgba(255,215,108,.3),rgba(48,220,255,.14)),rgba(4,27,42,.55);color:#fff;cursor:pointer;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);box-shadow:inset 0 0 16px #ffd76c14,0 0 18px #ffd76c14;transition:transform .18s ease,box-shadow .18s ease}.balance-action-box button:not(:disabled):hover{transform:translateY(-1px);box-shadow:inset 0 0 18px #ffd76c1f,0 0 22px #ffd76c24}.balance-action-box button:disabled{cursor:default;opacity:.55}.balance-sheet{position:relative;height:100%;padding:8px 18px 18px;overflow:hidden;box-sizing:border-box}.balance-sheet:before{content:"";position:absolute;left:22px;right:22px;top:9px;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.45),rgba(255,215,108,.28),transparent);animation:balance-scan 2.8s linear infinite;pointer-events:none}.balance-sheet:after{content:"";position:absolute;left:18px;right:18px;bottom:14px;height:38%;background:radial-gradient(ellipse at 50% 100%,rgba(126,251,246,.14),transparent 68%);pointer-events:none}.balance-field-lines{position:absolute;top:86px;right:70px;bottom:116px;left:70px;z-index:0;pointer-events:none}.balance-field-lines:before{content:"";position:absolute;left:4%;right:4%;top:45%;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.22),rgba(255,215,108,.14),rgba(126,251,246,.22),transparent);box-shadow:0 0 20px #7efbf614}.balance-field-lines:after{content:"";position:absolute;left:20%;right:20%;top:21%;height:330px;background:radial-gradient(ellipse at 50% 26%,rgba(36,246,196,.14),transparent 50%),repeating-linear-gradient(90deg,transparent 0 42px,rgba(126,251,246,.032) 42px 43px);transform:perspective(700px) rotateX(58deg);transform-origin:top;opacity:.86}.balance-field-lines i{position:absolute;top:44%;width:220px;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.42),transparent);transform-origin:center;animation:balance-field-drift 5.2s ease-in-out infinite}.balance-field-lines i:nth-child(1){left:12%;transform:rotate(-16deg)}.balance-field-lines i:nth-child(2){left:42%;width:280px;animation-delay:-1.4s}.balance-field-lines i:nth-child(3){right:11%;transform:rotate(16deg);animation-delay:-2.6s}.balance-waiting,.balance-running{position:relative;z-index:1;display:grid;grid-template-rows:minmax(0,1fr) 86px;gap:22px;height:100%;text-align:center}.balance-wait-core{position:relative;display:grid;justify-items:center;align-content:center;gap:20px}.balance-wait-core:before{content:"";position:absolute;width:760px;height:330px;background:radial-gradient(ellipse at 50% 38%,rgba(36,246,196,.2),transparent 52%),linear-gradient(90deg,transparent,rgba(126,251,246,.1),transparent),repeating-linear-gradient(90deg,transparent 0 34px,rgba(126,251,246,.04) 34px 35px);transform:perspective(640px) rotateX(63deg) translateY(86px);transform-origin:bottom;pointer-events:none}.balance-wait-core>*{position:relative;z-index:1}.balance-core-ring{position:relative;display:grid;place-items:center;width:178px;height:178px;border-radius:50%;background:conic-gradient(from -90deg,#24f6c4 var(--usage-angle, 0deg),rgba(48,220,255,.12) var(--usage-angle, 0deg),rgba(48,220,255,.12) 360deg);box-shadow:0 0 34px #24f6c433,0 0 82px #24f6c411,inset 0 0 32px #02101ab8}.balance-core-ring:before,.balance-core-ring:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.balance-core-ring:before{top:9px;right:9px;bottom:9px;left:9px;border:1px solid rgba(126,251,246,.24);animation:balance-rotate 8s linear infinite;box-shadow:inset 0 0 18px #7efbf60f}.balance-core-ring:after{top:-10px;right:-10px;bottom:-10px;left:-10px;border:1px dashed rgba(126,251,246,.18);animation:balance-rotate 14s linear infinite reverse}.balance-core-ring.is-empty{--usage-angle: 42deg;background:conic-gradient(from -90deg,rgba(126,251,246,.28) 0deg 42deg,rgba(48,220,255,.1) 42deg 360deg)}.balance-core-ring.is-empty .balance-core-inner strong{max-width:134px;font-size:30px;line-height:34px}.balance-core-inner{position:relative;z-index:1;display:grid;place-items:center;align-content:center;width:136px;height:136px;border-radius:50%;background:radial-gradient(circle,rgba(8,48,58,.9),rgba(2,17,27,.96) 68%),rgba(2,17,27,.92);text-align:center}.balance-core-inner span,.balance-core-inner strong,.balance-core-inner small{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-core-inner span,.balance-core-inner small{color:#dffaffa8;font-size:12px}.balance-core-inner strong{margin:8px 0 5px;color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:34px;line-height:36px;text-shadow:0 0 18px rgba(36,246,196,.35)}.balance-waiting h2{max-width:940px;margin:0;overflow:hidden;color:#fff;font-size:33px;line-height:42px;text-overflow:ellipsis;white-space:nowrap}.balance-waiting p{max-width:720px;margin:0;color:#dffaffb3;font-size:15px;line-height:24px}.balance-preflight{display:grid;grid-template-columns:112px minmax(0,1fr) 136px minmax(0,1fr) 148px;align-items:center;max-width:760px;width:100%;margin:0 auto}.balance-preflight span{position:relative;height:34px;color:#dffaff85;font-size:13px;line-height:34px;text-align:center;background:transparent;clip-path:none}.balance-preflight span:before{content:"";position:absolute;left:50%;top:-8px;width:8px;height:8px;border:1px solid rgba(126,251,246,.4);background:rgba(6,44,58,.7);transform:translate(-50%) rotate(45deg);box-shadow:0 0 12px #7efbf61a}.balance-preflight span.active{color:#7efbf6;box-shadow:none}.balance-preflight span.active:before{border-color:#ffd76c94;background:rgba(255,215,108,.28)}.balance-preflight i{height:1px;background:linear-gradient(90deg,rgba(126,251,246,.1),rgba(126,251,246,.6),rgba(255,215,108,.34))}.balance-running{grid-template-rows:238px minmax(0,1fr);text-align:left}.balance-running-head{position:relative;display:grid;grid-template-columns:238px minmax(0,1fr);align-items:center;gap:34px;padding:34px 84px 22px}.balance-running-head:before{content:"";position:absolute;left:64px;right:64px;bottom:4px;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.44),rgba(255,215,108,.28),transparent)}.balance-running-title{min-width:0}.balance-running-title span,.balance-running-title strong,.balance-running-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-running-title span{color:#7efbf6b8;font-size:16px}.balance-running-title strong{margin-top:12px;color:#fff;font-size:36px;line-height:44px;text-shadow:0 0 18px rgba(126,251,246,.14)}.balance-running-title small{margin-top:10px;color:#ffd76cb8;font-size:16px}.balance-progress-line{position:relative;height:13px;margin-top:22px;overflow:hidden;background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.05)),rgba(1,12,21,.5);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-progress-line i{display:block;height:100%;background:linear-gradient(90deg,rgba(36,246,196,.18),#24f6c4,#ffd76c);box-shadow:0 0 18px #24f6c438;transition:width .16s linear}.balance-progress-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);animation:balance-flow-light 1.4s linear infinite}.balance-live-process{display:grid;gap:11px;min-height:0;padding:0 84px 30px}.balance-live-step{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:14px;min-height:74px;padding:0 20px;background:linear-gradient(90deg,rgba(48,220,255,.075),transparent 48%),linear-gradient(180deg,rgba(6,38,51,.22),rgba(2,20,32,.08));opacity:.42;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%);transition:opacity .2s ease,transform .2s ease}.balance-live-step:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-bottom:1px solid rgba(48,220,255,.075);clip-path:inherit;pointer-events:none}.balance-live-step>span{width:32px;height:32px;border:1px solid rgba(126,251,246,.34);color:#7efbf6c7;font-family:D-DIN,Arial,sans-serif;font-size:14px;line-height:30px;text-align:center}.balance-live-step div{min-width:0}.balance-live-step strong,.balance-live-step p,.balance-live-step em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-live-step strong{display:block;color:#fff;font-size:15px}.balance-live-step p{margin:7px 0 0;color:#ffd76ca8;font-size:12px}.balance-live-step em{color:#dffaff9e;font-family:D-DIN,Arial,sans-serif;font-size:17px;font-style:normal;text-align:right}.balance-live-step.is-active,.balance-live-step.is-done{opacity:1}.balance-live-step.is-active{transform:translate(8px);background:linear-gradient(90deg,rgba(36,246,196,.18),rgba(255,215,108,.09),transparent 66%),linear-gradient(180deg,rgba(10,58,70,.56),rgba(4,34,48,.42))}.balance-live-step.is-active:before{border-color:#7efbf66b;box-shadow:inset 0 0 18px #7efbf61a}.balance-live-step.is-active>span{background:rgba(36,246,196,.1);box-shadow:0 0 18px #24f6c41f}.balance-live-step.is-done em,.balance-live-step.is-active em{color:#7efbf6}.balance-analysis{display:grid;position:relative;z-index:1;grid-template-rows:214px 108px minmax(0,1fr);gap:15px;height:100%}.balance-dashboard{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 282px minmax(0,1fr);align-items:center;gap:24px;min-height:0;padding:18px 26px;background:radial-gradient(circle at 50% 50%,rgba(36,246,196,.2),transparent 36%),radial-gradient(ellipse at 50% 100%,rgba(48,220,255,.1),transparent 58%),linear-gradient(90deg,rgba(48,220,255,.07),rgba(2,18,30,.1) 48%,rgba(255,215,108,.055));clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,28px 100%,0 calc(100% - 28px))}.balance-dashboard:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-top:1px solid rgba(48,220,255,.12);border-bottom:1px solid rgba(48,220,255,.08);box-shadow:inset 0 0 34px #24f6c409;clip-path:inherit;pointer-events:none}.balance-dashboard:after{content:"";position:absolute;left:246px;right:246px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(126,251,246,.42),rgba(255,215,108,.34),transparent);pointer-events:none}.balance-dashboard>*{position:relative;z-index:1}.balance-object-block,.balance-verdict-card{position:relative;z-index:1;min-width:0;padding:18px 22px;background:radial-gradient(circle at 16% 0,rgba(126,251,246,.12),transparent 38%),linear-gradient(135deg,rgba(126,251,246,.075),transparent 50%),rgba(2,21,33,.2);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}.balance-object-block:before,.balance-verdict-card:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.5),transparent)}.balance-object-block span,.balance-object-block strong,.balance-object-block small,.balance-verdict-card span,.balance-verdict-card strong,.balance-verdict-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-object-block span,.balance-object-block small,.balance-verdict-card span,.balance-verdict-card small{color:#dffaff9e;font-size:12px}.balance-object-block strong{margin-top:8px;color:#fff;font-size:38px;line-height:44px;text-shadow:0 0 18px rgba(255,255,255,.12)}.balance-verdict-card{text-align:right}.balance-verdict-card strong{margin-top:8px;color:#ffd76c;font-family:D-DIN,Arial,sans-serif;font-size:38px;line-height:44px;text-shadow:0 0 20px rgba(255,215,108,.34)}.balance-verdict-card.is-healthy strong,.balance-verdict-card.is-balanced strong,.balance-verdict-card.is-watch strong{color:#7efbf6}.balance-verdict-card.is-danger strong{color:#ff8f6b}.balance-core{position:relative;z-index:1;display:grid;justify-items:center;gap:9px}.balance-core:before{content:"";position:absolute;left:50%;top:50%;z-index:-1;width:332px;height:118px;background:radial-gradient(ellipse at 50% 50%,rgba(126,251,246,.14),transparent 70%);transform:translate(-50%,-50%);pointer-events:none}.balance-core-caption{color:#dffaff9e;font-size:12px}.balance-compare{position:relative;display:grid;align-content:center;gap:20px;padding:17px 24px;background:radial-gradient(ellipse at 50% 100%,rgba(126,251,246,.08),transparent 62%),linear-gradient(90deg,rgba(48,220,255,.08),transparent 45%,rgba(255,215,108,.065)),rgba(2,21,33,.16);clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);box-sizing:border-box}.balance-compare:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-top:1px solid rgba(48,220,255,.08);border-bottom:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-bar-row{position:relative;z-index:1;display:grid;grid-template-columns:98px minmax(0,1fr) 190px;align-items:center;gap:16px;min-width:0}.balance-bar-row span{color:#dffaffb8;font-size:13px;white-space:nowrap}.balance-bar-row div{position:relative;height:14px;overflow:hidden;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.06)),rgba(1,12,21,.56);clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%)}.balance-bar-row div:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%);animation:balance-flow-light 2.4s linear infinite}.balance-bar-row i{display:block;height:100%;background:linear-gradient(90deg,rgba(36,246,196,.2),#24f6c4);box-shadow:0 0 18px #24f6c438}.balance-bar-row strong{overflow:hidden;color:#fff;font-family:D-DIN,Arial,sans-serif;font-size:23px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.balance-bar-row em{margin-left:4px;color:#ffffff94;font-family:AlibabaPuHuiTi,Arial,sans-serif;font-size:11px;font-style:normal}.balance-bar-row.is-livestock i{background:linear-gradient(90deg,rgba(255,215,108,.18),#ffd76c);box-shadow:0 0 16px #ffd76c2e}.balance-detail{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.82fr) 248px;gap:12px;min-height:0}.balance-process,.balance-decision,.balance-overload-ranking{position:relative;min-width:0;min-height:0;padding:16px 18px 15px;background:radial-gradient(circle at 18% 0,rgba(126,251,246,.11),transparent 30%),linear-gradient(135deg,rgba(48,220,255,.08),transparent 34%),linear-gradient(315deg,rgba(255,215,108,.038),transparent 42%),rgba(2,21,33,.16);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);box-sizing:border-box}.balance-process:before,.balance-decision:before,.balance-overload-ranking:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-top:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-process:after,.balance-decision:after,.balance-overload-ranking:after{content:"";position:absolute;left:18px;right:18px;top:48px;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.32),transparent);pointer-events:none}.balance-section-title{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;height:28px}.balance-section-title span{color:#fff;font-size:16px;text-shadow:0 0 12px rgba(126,251,246,.22)}.balance-section-title small{color:#7efbf69e;font-size:12px}.balance-process{display:grid;grid-template-rows:28px 38px repeat(4,minmax(0,1fr));gap:10px}.balance-process-track{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center}.balance-process-track:before{content:"";position:absolute;left:5%;right:5%;top:50%;height:1px;background:linear-gradient(90deg,rgba(126,251,246,.18),rgba(126,251,246,.5),rgba(255,215,108,.42))}.balance-process-track span{position:relative;z-index:1;height:28px;overflow:hidden;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(2,19,31,.9)),rgba(2,19,31,.9);color:#dffaffb8;font-size:12px;line-height:28px;text-align:center;text-overflow:ellipsis;white-space:nowrap;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-process-track .is-done,.balance-process-track .is-active{color:#7efbf6;box-shadow:inset 0 0 14px #7efbf61f}.balance-formula-row{position:relative;z-index:1;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:0 14px;background:linear-gradient(90deg,rgba(48,220,255,.07),transparent 48%),linear-gradient(180deg,rgba(6,37,49,.22),rgba(2,20,32,.08));clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);box-sizing:border-box}.balance-formula-row:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-bottom:1px solid rgba(48,220,255,.065);clip-path:inherit;pointer-events:none}.balance-formula-row>span{width:30px;height:30px;border:1px solid rgba(126,251,246,.34);color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:13px;line-height:28px;text-align:center;background:rgba(36,246,196,.055)}.balance-formula-row div{min-width:0}.balance-formula-row strong,.balance-formula-row p,.balance-formula-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-formula-row strong{display:block;color:#fff;font-size:15px}.balance-formula-row p{margin:4px 0 0;color:#ffffffc2;font-size:12px}.balance-formula-row em{color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:21px;font-style:normal;text-align:right}.balance-decision{display:grid;grid-template-rows:28px 112px minmax(0,1fr);gap:12px}.balance-overload-ranking{display:grid;grid-template-rows:28px minmax(0,1fr);gap:10px}.balance-rank-list{position:relative;z-index:1;display:grid;align-content:start;gap:5px;min-height:0;overflow:hidden}.balance-rank-row{position:relative;display:grid;grid-template-columns:24px 58px minmax(0,1fr) 50px;align-items:center;gap:7px;height:25px;min-width:0;padding:0 8px 0 6px;background:linear-gradient(90deg,rgba(48,220,255,.08),transparent 62%),rgba(4,33,46,.62);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);box-sizing:border-box}.balance-rank-row:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(48,220,255,.08);clip-path:inherit;pointer-events:none}.balance-rank-row>span{position:relative;z-index:1;width:20px;height:18px;color:#7efbf6e6;font-family:D-DIN,Arial,sans-serif;font-size:12px;line-height:18px;font-weight:800;text-align:center;background:rgba(126,251,246,.08)}.balance-rank-row strong{position:relative;z-index:1;min-width:0;overflow:hidden;color:#edfdffe6;font-size:12px;line-height:18px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.balance-rank-row div{position:relative;z-index:1;height:5px;overflow:hidden;background:rgba(126,251,246,.08)}.balance-rank-row div i{display:block;width:var(--rank-progress);height:100%;background:linear-gradient(90deg,rgba(126,251,246,.35),#7efbf6);box-shadow:0 0 10px #7efbf638}.balance-rank-row em{position:relative;z-index:1;color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:800;text-align:right;white-space:nowrap}.balance-rank-row.is-warning div i{background:linear-gradient(90deg,rgba(255,215,108,.32),#ffd76c);box-shadow:0 0 10px #ffd76c33}.balance-rank-row.is-warning em{color:#ffd76c}.balance-rank-row.is-alert div i{background:linear-gradient(90deg,rgba(255,143,107,.3),#ff8f6b);box-shadow:0 0 10px #ff8f6b3d}.balance-rank-row.is-alert em{color:#ffb15e}.balance-conclusion{position:relative;z-index:1;min-width:0;padding:16px 14px;background:radial-gradient(circle at 10% 0,rgba(255,215,108,.18),transparent 42%),linear-gradient(135deg,rgba(255,215,108,.13),transparent 60%),rgba(74,56,20,.14);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);box-sizing:border-box}.balance-conclusion:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(255,215,108,.2);clip-path:inherit;pointer-events:none}.balance-conclusion strong{position:relative;z-index:1;display:block;overflow:hidden;color:#ffd76c;font-size:14px;text-shadow:0 0 10px rgba(255,215,108,.18);line-height:20px;text-overflow:ellipsis;white-space:nowrap}.balance-conclusion p{position:relative;z-index:1;margin:8px 0 0;overflow:hidden;color:#ecfcffb8;font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.balance-advice-list{position:relative;z-index:1;display:grid;align-content:start;gap:11px;min-height:0;overflow:hidden}.balance-advice-item{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;min-height:43px;padding:3px 0}.balance-advice-item span{width:22px;height:22px;border:1px solid rgba(126,251,246,.44);color:#7efbf6;font-family:D-DIN,Arial,sans-serif;font-size:12px;line-height:20px;text-align:center}.balance-advice-item p{min-width:0;margin:0;overflow:hidden;color:#ecfcffd1;font-size:12px;line-height:19px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}@keyframes balance-scan{0%{opacity:.2;transform:translate(-28%)}50%{opacity:.8}to{opacity:.2;transform:translate(28%)}}@keyframes balance-rotate{to{transform:rotate(360deg)}}@keyframes balance-flow-light{to{transform:translate(100%)}}@keyframes balance-band-pulse{0%,to{opacity:.56;filter:saturate(.92)}50%{opacity:.86;filter:saturate(1.08)}}@keyframes balance-field-drift{0%,to{opacity:.18;transform:translate(-18px)}50%{opacity:.58;transform:translate(18px)}}.grass-livestock-balance{background:linear-gradient(rgba(31,169,190,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(31,169,190,.022) 1px,transparent 1px),radial-gradient(circle at 50% 35%,rgba(35,128,133,.1),transparent 34%),linear-gradient(135deg,#020b13 0%,#061d2b 48%,#020b13 100%);background-size:44px 44px,44px 44px,100% 100%,100% 100%}.grass-livestock-balance:before,.grass-livestock-balance:after{opacity:.26}.balance-backdrop{top:104px;height:944px;background:linear-gradient(rgba(48,220,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.016) 1px,transparent 1px);background-size:44px 44px}.balance-backdrop:before,.balance-backdrop:after{opacity:.32}.balance-orbit,.balance-energy-band,.balance-field-lines,.balance-wait-core:before,.balance-core:before{display:none}.balance-screen{top:128px}.balance-card{filter:drop-shadow(0 16px 26px rgba(0,0,0,.28))}.balance-card .m-card-hd{background:linear-gradient(90deg,rgba(24,117,135,.78),rgba(12,65,83,.52) 56%,rgba(6,32,46,.08))}.balance-card .m-card-hd:before{background:linear-gradient(90deg,#30dcff,rgba(126,251,246,.36),transparent 76%);box-shadow:none}.balance-card .m-card-bd{background:linear-gradient(180deg,rgba(8,49,64,.92),rgba(3,23,36,.92))}.balance-card .m-card-bd:before{border-color:#30dcff33;box-shadow:inset 0 0 0 1px #7efbf60a}.balance-card .m-card-bd:after{opacity:.22}.balance-sheet-card{filter:drop-shadow(0 18px 30px rgba(0,0,0,.24))}.balance-sheet-card .m-card-bd{background:linear-gradient(180deg,rgba(7,43,58,.92),rgba(2,19,31,.94))}.balance-sheet-card .m-card-bd:before{border-color:#30dcff2e;border-left-color:#30dcff47;border-bottom-color:#30dcff1f;box-shadow:inset 0 0 0 1px #7efbf609}.balance-target-card{filter:drop-shadow(0 16px 24px rgba(0,0,0,.26))}.balance-target-card .m-card-bd{background:linear-gradient(180deg,rgba(7,45,58,.9),rgba(2,20,32,.92))}.balance-target-card .m-card-bd:before{border-color:#30dcff29;border-left-color:#30dcff47;border-bottom-color:#30dcff1f}.balance-selector{grid-template-rows:40px minmax(0,1fr) 158px;gap:12px;padding:12px 12px 14px}.balance-scope-tabs button{border:1px solid rgba(48,220,255,.12);background:rgba(4,31,44,.58);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-scope-tabs button.active,.balance-scope-tabs button:hover{background:linear-gradient(180deg,rgba(19,98,112,.9),rgba(7,56,76,.86))}.balance-target-list button{background:rgba(5,39,53,.72)}.balance-target-list button:before{border:1px solid rgba(48,220,255,.1);border-left-color:#30dcff33}.balance-target-list button.active{background:linear-gradient(90deg,rgba(119,98,38,.9),rgba(7,70,77,.86))}.balance-action-box{background:rgba(3,28,40,.84)}.balance-action-box:before{border:1px solid rgba(48,220,255,.14)}.balance-sheet{padding:14px 22px 20px}.balance-sheet:before,.balance-sheet:after{display:none}.balance-waiting{grid-template-rows:minmax(0,1fr) 78px}.balance-wait-core{gap:18px;padding-top:16px}.balance-core-ring{width:164px;height:164px;box-shadow:0 0 18px #24f6c41f,inset 0 0 28px #02101abd}.balance-core-ring:after{opacity:.36}.balance-core-inner{width:126px;height:126px}.balance-core-inner strong{font-size:30px;line-height:34px;text-shadow:none}.balance-preflight span{background:rgba(4,32,45,.78);border:1px solid rgba(48,220,255,.1);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.balance-preflight span:before{display:none}.balance-running-head{padding:30px 58px 18px}.balance-live-process{padding:0 58px 26px}.balance-live-step{background:rgba(5,36,50,.76)}.balance-live-step:before{border:1px solid rgba(48,220,255,.08)}.balance-live-step.is-active{background:linear-gradient(90deg,rgba(22,108,104,.82),rgba(7,53,66,.86))}.balance-analysis{grid-template-rows:188px 94px minmax(0,1fr);gap:12px}.balance-dashboard,.balance-compare,.balance-process,.balance-decision,.balance-overload-ranking{background:linear-gradient(180deg,rgba(7,48,62,.9),rgba(3,28,42,.9));clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}.balance-dashboard:before,.balance-compare:before,.balance-process:before,.balance-decision:before,.balance-overload-ranking:before{border:1px solid rgba(48,220,255,.12);box-shadow:none}.balance-dashboard{grid-template-columns:minmax(0,1fr) 230px minmax(0,1fr);padding:14px 20px}.balance-dashboard:after{display:none}.balance-object-block,.balance-verdict-card{background:rgba(4,31,44,.82);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}.balance-object-block strong,.balance-verdict-card strong{font-size:34px;line-height:40px;text-shadow:none}.balance-verdict-card strong,.balance-core-inner strong,.balance-formula-row em,.balance-bar-row i{text-shadow:none;box-shadow:none}.balance-core-ring:before,.balance-core-ring:after{animation:none}.balance-dashboard .balance-core-ring{width:156px;height:156px}.balance-dashboard .balance-core-inner{width:120px;height:120px}.balance-compare{gap:18px;padding:14px 20px}.balance-detail{gap:12px}.balance-process,.balance-decision,.balance-overload-ranking{padding:14px 16px}.balance-formula-row{background:rgba(4,33,46,.82)}.balance-formula-row:before{border:1px solid rgba(48,220,255,.08)}.balance-conclusion{background:rgba(70,55,22,.7)}.balance-bar-row div:after,.balance-progress-line:after{display:none}.balance-core-caption{color:#dffaffb8}.balance-sheet.is-ready{padding:18px 22px 22px}.balance-sheet.is-ready .balance-analysis{grid-template-rows:158px 84px minmax(0,1fr);gap:14px}.balance-sheet.is-ready .balance-dashboard{grid-template-columns:minmax(0,1fr) 188px minmax(0,1fr);gap:18px;padding:14px 22px}.balance-sheet.is-ready .balance-object-block,.balance-sheet.is-ready .balance-verdict-card{min-height:104px;padding:18px 20px;box-sizing:border-box}.balance-sheet.is-ready .balance-object-block strong,.balance-sheet.is-ready .balance-verdict-card strong{margin-top:7px;font-size:28px;line-height:34px}.balance-sheet.is-ready .balance-object-block small,.balance-sheet.is-ready .balance-verdict-card small{margin-top:4px}.balance-sheet.is-ready .balance-dashboard .balance-core-ring{width:132px;height:132px}.balance-sheet.is-ready .balance-dashboard .balance-core-inner{width:102px;height:102px}.balance-sheet.is-ready .balance-core-inner strong{max-width:92px;margin:5px 0 3px;font-size:26px;line-height:28px}.balance-sheet.is-ready .balance-core-inner span,.balance-sheet.is-ready .balance-core-inner small{max-width:92px;font-size:11px}.balance-sheet.is-ready .balance-core{gap:5px}.balance-sheet.is-ready .balance-core-caption{font-size:11px}.balance-sheet.is-ready .balance-compare{gap:14px;padding:12px 20px}.balance-sheet.is-ready .balance-bar-row{grid-template-columns:92px minmax(0,1fr) 178px;gap:14px}.balance-sheet.is-ready .balance-bar-row strong{font-size:20px}.balance-sheet.is-ready .balance-detail{grid-template-columns:minmax(0,1fr) minmax(318px,.78fr) 238px;gap:12px}.balance-sheet.is-ready .balance-process,.balance-sheet.is-ready .balance-decision,.balance-sheet.is-ready .balance-overload-ranking{overflow:hidden;padding:13px 15px}.balance-sheet.is-ready .balance-process{grid-template-rows:26px 32px repeat(4,minmax(58px,1fr));gap:8px}.balance-sheet.is-ready .balance-decision{grid-template-rows:26px 92px minmax(0,1fr);gap:10px}.balance-sheet.is-ready .balance-overload-ranking{grid-template-rows:26px minmax(0,1fr);gap:8px}.balance-sheet.is-ready .balance-section-title{height:26px}.balance-sheet.is-ready .balance-section-title span{font-size:15px}.balance-sheet.is-ready .balance-process-track{height:32px}.balance-sheet.is-ready .balance-process-track span{height:26px;font-size:11px;line-height:26px}.balance-sheet.is-ready .balance-formula-row{grid-template-columns:36px minmax(0,1fr);gap:10px;min-height:58px;padding:8px 12px}.balance-sheet.is-ready .balance-formula-row>span{width:27px;height:27px;font-size:12px;line-height:25px}.balance-sheet.is-ready .balance-formula-row strong{font-size:14px}.balance-sheet.is-ready .balance-formula-row p{margin-top:3px;font-size:11px;line-height:16px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.balance-sheet.is-ready .balance-conclusion{padding:13px 14px}.balance-sheet.is-ready .balance-conclusion strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.balance-sheet.is-ready .balance-conclusion p{margin-top:6px}.balance-sheet.is-ready .balance-advice-list{gap:8px;overflow:hidden}.balance-sheet.is-ready .balance-advice-item{min-height:34px;padding:1px 0}.balance-sheet.is-ready .balance-advice-item p{line-height:18px;-webkit-line-clamp:2}.balance-sheet.is-ready .balance-rank-list{gap:4px}.balance-sheet.is-ready .balance-rank-row{grid-template-columns:22px 54px minmax(0,1fr) 48px;gap:6px;height:23px;padding-right:7px}.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map canvas{display:block;width:100%;height:100%}.map .yak-industry-point-label{width:172px;min-height:72px;margin-bottom:28px;color:#f2feff;font-size:12px;pointer-events:none;will-change:transform}.map .yak-industry-point-label-wrap{position:relative;width:172px;padding:8px 10px 9px;border:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 56%,transparent);border-radius:4px;background:linear-gradient(120deg,rgba(6,37,49,.88),rgba(3,16,27,.76)),linear-gradient(90deg,color-mix(in srgb,var(--yak-point-color, #24f6c4) 18%,transparent),transparent 72%);box-shadow:0 0 18px color-mix(in srgb,var(--yak-point-color, #24f6c4) 26%,transparent),inset 0 0 14px #30dcff14}.map .yak-industry-point-label-wrap:after{content:"";position:absolute;left:14px;bottom:-9px;width:14px;height:14px;border-right:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);border-bottom:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);background:rgba(3,16,27,.82);transform:rotate(45deg)}.map .yak-industry-point-label-head,.map .yak-industry-point-label-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.map .yak-industry-point-label-head{color:#daf9ffb3;font-size:10px}.map .yak-industry-point-label-head i{width:7px;height:7px;border-radius:50%;background:var(--yak-point-color, #24f6c4);box-shadow:0 0 10px var(--yak-point-color, #24f6c4)}.map .yak-industry-point-label-head span,.map .yak-industry-point-label-name,.map .yak-industry-point-label-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .yak-industry-point-label-name{margin-top:5px;color:#fff;font-size:13px;font-weight:800;line-height:1.35}.map .yak-industry-point-label-meta{margin-top:5px;color:#d3f1f6ad;font-size:10px}.map .yak-industry-point-label-meta strong{flex:0 0 auto;color:#c9fbff;font-size:11px;font-weight:800}.map .info-point{color:#eaffff;font-size:13px;width:178px;min-height:82px;margin-bottom:24px;will-change:transform}.map .info-point-wrap{position:relative;width:178px;padding:8px 10px 9px;border:1px solid rgba(104,236,255,.38);border-radius:5px;background:linear-gradient(120deg,rgba(6,36,48,.92),rgba(4,18,29,.78)),rgba(2,16,25,.82);box-shadow:0 0 18px #30dcff33,inset 0 0 18px #27f0c014;transform:translate(42%,-12%)}.map .info-point-wrap-inner{position:relative}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{position:absolute;left:-18px;content:""}.map .info-point-wrap-inner:before{top:42px;width:16px;height:1px;background:linear-gradient(90deg,rgba(104,236,255,0),rgba(104,236,255,.88))}.map .info-point-wrap-inner:after{top:38px;width:7px;height:7px;border-radius:50%;background:#c9fbff;box-shadow:0 0 8px #30dcff80}.map .info-point-wrap.is-prime{border-color:#30dcff80;background:linear-gradient(120deg,rgba(12,65,83,.7),rgba(4,24,34,.82)),rgba(2,16,25,.86)}.map .info-point-head{display:flex;align-items:center;gap:7px;min-width:0}.map .info-point-head .rank{flex:0 0 auto;color:#c9fbff;font-size:12px;line-height:14px;font-weight:900}.map .info-point-head strong{overflow:hidden;color:#fff;font-size:15px;line-height:18px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .info-point-metric{margin-top:4px;overflow:hidden;color:#a6f4ffc7;font-size:11px;line-height:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.map .info-point-value{display:flex;align-items:baseline;gap:4px;margin-top:2px}.map .info-point-value span{color:#fff;font-size:25px;line-height:28px;font-weight:900;text-shadow:0 0 12px rgba(126,251,246,.6)}.map .info-point-value em{color:#ebfcffc7;font-size:11px;line-height:13px;font-style:normal;font-weight:800}.map .provinces-label-wrap{transform:translate(50%,200%);opacity:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;width:136px;min-height:58px;border:1px solid rgba(126,251,246,.22);border-radius:8px 8px 8px 0;background:rgba(1,19,30,.62);box-shadow:0 0 16px #30dcff29}.map .provinces-label .label-main{min-width:0}.map .provinces-label .label-title{max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7efbf6d1;font-size:10px;line-height:12px;font-weight:500}.map .provinces-label .number{color:#fff;font-size:21px;line-height:25px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:11px;font-weight:400;opacity:.64;padding-left:4px}.map .provinces-label .name{color:#fff;font-size:12px;line-height:14px;font-weight:700;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:22px;font-weight:700;flex:0 0 auto}.map .provinces-label.yellow .no{color:#c9fbff!important;text-shadow:0 0 5px rgba(48,220,255,.42)!important}.map .epidemic-village-label{will-change:transform}.map .epidemic-village-label .epidemic-village-card{position:relative;width:142px;padding:7px 9px 6px;border:1px solid rgba(91,236,235,.42);border-radius:4px;color:#eaffff;background:linear-gradient(90deg,rgba(5,35,45,.92),rgba(2,18,29,.78)),rgba(1,17,27,.86);box-shadow:0 0 16px #2ddeff38,inset 0 0 16px #27f0c014;transform:translate(48%,-12%)}.map .epidemic-village-label .epidemic-village-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(91,236,235,0),rgba(91,236,235,.78))}.map .epidemic-village-label .epidemic-village-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#c9fbff;box-shadow:0 0 8px #30dcff75}.map .epidemic-village-label .epidemic-village-card.is-small{transform:translate(42%,-8%) scale(.92)}.map .epidemic-village-label .village-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.map .epidemic-village-label .village-card-head strong{overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .epidemic-village-label .village-card-head span{flex:0 0 auto;padding:1px 5px 2px;border:1px solid rgba(39,240,192,.28);border-radius:2px;color:#79f8e5;font-size:10px;line-height:11px;background:rgba(39,240,192,.08)}.map .epidemic-village-label .village-card-body{display:flex;align-items:baseline;gap:3px;margin-top:4px;white-space:nowrap}.map .epidemic-village-label .village-card-body .metric{color:#c9fffbc2;font-size:10px;line-height:12px}.map .epidemic-village-label .village-card-body .number{color:#fff;font-size:20px;line-height:22px;font-weight:900;text-shadow:0 0 10px rgba(126,251,246,.7)}.map .epidemic-village-label .village-card-body .unit{color:#e8fcffcc;font-size:10px;line-height:12px;font-weight:700}.map .epidemic-village-label .village-card-foot{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:3px;color:#e2faff9e;font-size:10px;line-height:11px;white-space:nowrap}.map .trade-market-label,.map .trade-flow-label,.map .trade-national-label{color:#fff;will-change:transform;pointer-events:none}.map .trade-national-name{padding:2px 6px;border:1px solid rgba(72,231,255,.24);border-radius:3px;background:rgba(3,23,35,.42);color:#ffffff9e;font-size:10px;line-height:12px;font-weight:800;text-shadow:0 0 6px rgba(48,220,255,.42);white-space:nowrap;transform:translate(-50%,-50%)}.map .trade-market-card{position:relative;width:128px;padding:6px 8px;border:1px solid rgba(139,247,255,.52);border-radius:4px;background:linear-gradient(110deg,rgba(12,68,78,.58),rgba(4,24,34,.58)),rgba(5,20,30,.58);box-shadow:0 0 10px #30dcff24,inset 0 0 10px #30dcff0f;transform:translate(60%)}.map .trade-market-card:before{position:absolute;left:-14px;top:calc(50% - 1px);width:14px;height:1px;content:"";background:linear-gradient(90deg,rgba(255,221,117,0),rgba(255,221,117,.92))}.map .trade-market-card:after{position:absolute;left:-18px;top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;content:"";background:#fff06a;box-shadow:0 0 12px #fff06ae6}.map .trade-market-card .market-title{overflow:hidden;color:#fff;font-size:11px;line-height:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .trade-market-card .market-total{display:flex;align-items:baseline;gap:4px;margin-top:3px}.map .trade-market-card .market-total span{color:#fff;font-size:15px;line-height:18px;font-weight:900;text-shadow:0 0 10px rgba(255,221,117,.6)}.map .trade-market-card .market-total em{color:#ffffffc2;font-size:10px;line-height:12px;font-style:normal}.map .trade-flow-card{position:relative;width:96px;padding:5px 7px;border:1px solid rgba(85,226,255,.32);border-radius:3px;background:linear-gradient(105deg,rgba(4,37,50,.58),rgba(3,17,27,.48)),rgba(1,17,27,.46);box-shadow:0 0 8px #30dcff1f,inset 0 0 8px #27f0c00d;transform:translate(60%)}.map .trade-flow-card.is-left{transform:translate(-66%)}.map .trade-flow-card.is-left:before{right:-10px;left:auto;background:linear-gradient(90deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-left:after{right:-14px;left:auto}.map .trade-flow-card.is-top{transform:translateY(-108%)}.map .trade-flow-card.is-top:before{left:50%;top:auto;bottom:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-top:after{left:calc(50% - 3px);top:auto;bottom:-14px}.map .trade-flow-card.is-bottom{transform:translateY(82%)}.map .trade-flow-card.is-bottom:before{left:50%;top:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card.is-bottom:after{left:calc(50% - 3px);top:-14px}.map .trade-flow-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#30dcff;box-shadow:0 0 10px #30dcffcc}.map .trade-flow-card .flow-head{display:flex;align-items:center;gap:6px;min-width:0}.map .trade-flow-card .flow-head span{flex:0 0 auto;color:#ffe076;font-size:10px;line-height:12px;font-weight:900}.map .trade-flow-card .flow-head strong{overflow:hidden;color:#fff;font-size:10px;line-height:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .trade-flow-card .flow-body{display:flex;align-items:baseline;gap:3px;margin-top:2px}.map .trade-flow-card .flow-body em{color:#fff;font-size:13px;line-height:15px;font-style:normal;font-weight:900;text-shadow:0 0 10px rgba(48,220,255,.55)}.map .trade-flow-card .flow-body b{color:#ffffffc2;font-size:10px;line-height:12px}.map .china-label{color:#fff;font-size:14px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap}.map .china-label .town-stat-label{flex-direction:column;align-items:center;gap:4px;min-width:74px;padding:5px 8px 4px;border-color:#7efbf64d;background:linear-gradient(180deg,rgba(4,33,46,.66),rgba(3,20,32,.56));box-shadow:0 0 10px #30dcff1f;text-align:center;transform:translateY(-50%)}.map .china-label .town-name-row{display:flex;align-items:center;justify-content:center;gap:6px;min-height:18px;line-height:18px}.map .china-label .town-name{color:#fff;font-size:13px;line-height:18px;font-weight:800}.map .china-label .town-rank{display:none;flex:0 0 auto;padding:1px 5px;border:1px solid rgba(126,251,246,.32);border-radius:2px;color:#7efbf6;font-size:10px;line-height:13px;font-weight:700;text-shadow:none;background:rgba(126,251,246,.1)}.map .china-label .town-stat-row{display:none;align-items:baseline;justify-content:center;gap:3px;min-height:18px;line-height:18px}.map .china-label .town-stat-metric{max-width:72px;overflow:hidden;color:#7efbf6e6;font-size:10px;line-height:12px;font-weight:700;text-overflow:ellipsis;text-shadow:none;white-space:nowrap}.map .china-label .town-stat-value{color:#fff;font-size:18px;line-height:18px;font-weight:800;text-shadow:0 0 10px rgba(126,251,246,.72)}.map .china-label .town-stat-unit{color:#e8fcffc2;font-size:10px;line-height:12px;font-weight:600}.map .china-label .town-stat-label.has-stat{min-width:108px}.map .china-label .town-stat-label.has-stat .town-rank,.map .china-label .town-stat-label.has-stat .town-stat-row{display:flex}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.yak-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c;height:100%;overscroll-behavior:none}.yak-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;background:transparent!important}.yak-map-scene>canvas{display:block;width:100%!important;height:100%!important}.yak-map-scene>div{width:100%!important;height:100%!important}.yak-map-scene .china-label .town-stat-label{transform:translateY(-50%) scale(.92)}.yak-ol-map-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.yak-management-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.yak-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 42%,rgba(1,9,15,.22) 74%,rgba(1,8,13,.58) 100%),linear-gradient(90deg,rgba(0,12,20,.36),transparent 24%,transparent 76%,rgba(0,12,20,.36)),linear-gradient(180deg,rgba(2,16,27,.02),rgba(2,13,22,.22))}.yak-map-scrim.is-ol-map{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 58%,rgba(1,9,15,.16) 82%,rgba(1,8,13,.42) 100%),linear-gradient(90deg,rgba(0,12,20,.24),transparent 22%,transparent 78%,rgba(0,12,20,.24)),linear-gradient(180deg,rgba(2,16,27,.01),rgba(2,13,22,.12))}.yak-left,.yak-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.yak-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.yak-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.yak-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.yak-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.yak-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.yak-side-card{flex:0 0 auto}.yak-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.trade-source-card .m-card-bd-content{top:38px;bottom:8px}.yak-chart{width:100%;height:100%;box-sizing:border-box}.forecast-trend-card,.structure-chart-card{position:relative;width:100%;height:100%}.breeding-health-card{display:grid;grid-template-rows:34px minmax(0,1fr);gap:9px;height:100%;padding:10px 13px;overflow:hidden;box-sizing:border-box}.breeding-health-head{display:flex;align-items:center;min-width:0;padding:0 12px;border-left:3px solid rgba(48,220,255,.72);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.12),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.035));box-sizing:border-box}.breeding-health-head strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:16px;line-height:20px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.62)}.breeding-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;min-height:0}.breeding-health-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:18px 14px 6px;align-content:center;gap:2px 6px;min-width:0;min-height:0;padding:7px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.13);background:linear-gradient(90deg,color-mix(in srgb,var(--health-color) 16%,transparent),rgba(5,27,41,.32)),rgba(3,25,40,.18);box-sizing:border-box}.breeding-health-item span,.breeding-health-item strong,.breeding-health-item em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breeding-health-item span{color:#e5fdffd6;font-size:12px;line-height:15px;font-weight:800}.breeding-health-item strong{color:color-mix(in srgb,var(--health-color) 82%,#ffffff);font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:18px;font-weight:900;text-align:right}.breeding-health-item i{grid-column:1/3;position:relative;z-index:1;display:block;height:4px;overflow:hidden;background:rgba(48,220,255,.12)}.breeding-health-item i b{display:block;width:var(--health-width);height:100%;background:var(--health-color);box-shadow:0 0 5px color-mix(in srgb,var(--health-color) 34%,transparent)}.breeding-health-item em{grid-column:1/3;grid-row:2;color:color-mix(in srgb,var(--health-color) 74%,#ffffff);font-size:11px;line-height:13px;font-style:normal}.structure-ratio-card{display:grid;grid-template-columns:146px minmax(0,1fr);align-items:center;gap:10px;height:100%;overflow:hidden;padding:2px 10px 6px 8px;box-sizing:border-box}.structure-ratio-chart{position:relative;width:142px;height:132px;min-width:0}.structure-ratio-chart svg{width:100%;height:100%;overflow:visible}.structure-ratio-list{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;gap:5px;overflow:hidden}.structure-ratio-row{position:relative;display:grid;grid-template-columns:11px minmax(0,1fr) 50px 16px;align-items:center;gap:6px;min-width:0;min-height:22px;height:23px;padding:0 5px 0 3px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.055);color:#e1f9ffc2;font-size:10px;line-height:13px;box-sizing:border-box;transition:background .35s ease,border-color .35s ease}.structure-ratio-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.18;pointer-events:none}.structure-ratio-row i{position:relative;z-index:1;width:9px;height:9px;border:1px solid #30dcff;border-radius:50%;box-sizing:border-box;box-shadow:none}.structure-ratio-row span{position:relative;z-index:1;display:flex;align-items:baseline;gap:4px;min-width:0;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:15px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-ratio-row span small{flex:none;color:color-mix(in srgb,var(--row-color) 78%,rgba(255,255,255,.65));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;font-weight:800;line-height:12px}.structure-ratio-row strong{position:relative;z-index:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:800;line-height:20px;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-ratio-row em{position:relative;z-index:1;color:#ffffff8a;font-size:10px;font-style:normal;white-space:nowrap}.structure-ratio-row.is-active{color:var(--row-color);border-color:#30dcff38;background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04))}.structure-rose-segment{opacity:.92;stroke-width:1.5;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;transition:opacity .3s ease,filter .3s ease,transform .3s ease;filter:drop-shadow(0 2px 2px rgba(0,10,18,.34)) drop-shadow(0 0 3px rgba(48,220,255,.12))}.structure-rose-segment.is-active{opacity:1;transform:scale(1.035);filter:drop-shadow(0 3px 5px rgba(0,10,18,.42)) drop-shadow(0 0 5px rgba(48,220,255,.22))}.structure-rose-glow{fill:#30dcff12;stroke:#30dcff2e;stroke-width:1;filter:none}.structure-rose-hole{fill:#03121ef0;stroke:#e3fdff38;stroke-width:1.2}.structure-rose-center{fill:#e7feffdb;font-size:10px;font-weight:800;dominant-baseline:middle;pointer-events:none}.structure-rose-center.is-sub{fill:#e7feff8a;font-size:7px;font-weight:700}.structure-summary-card{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));align-content:center;gap:10px;height:100%;overflow:hidden;padding:15px 18px 14px;box-sizing:border-box}.structure-summary-row{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) 58px;grid-template-rows:22px 14px;align-items:center;column-gap:10px;min-width:0;min-height:0;padding:2px 0;color:#e1f9ffb8}.structure-summary-row span{grid-row:1/3;display:inline-flex;min-width:0;align-items:center;gap:8px;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:17px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-summary-row i{width:9px;height:9px;flex:0 0 auto;border-radius:2px;background:var(--structure-color);box-shadow:none}.structure-summary-row strong{grid-column:3;grid-row:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:15px;font-weight:800;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-summary-row strong em{margin-left:3px;color:#e2fcffad;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.structure-summary-row b{position:relative;grid-column:2;grid-row:1/3;height:17px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 18px),rgba(48,220,255,.05)}.structure-summary-row b em{display:block;width:var(--structure-width);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--structure-color) 20%,transparent),var(--structure-color));box-shadow:0 0 5px color-mix(in srgb,var(--structure-color) 28%,transparent)}.structure-summary-row small{grid-column:3;grid-row:2;color:color-mix(in srgb,var(--structure-color) 76%,rgba(255,255,255,.72));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:11px;font-weight:800;text-align:right;white-space:nowrap}.yak-data-status{position:absolute;left:12px;bottom:6px;z-index:2;max-width:calc(100% - 24px);padding:2px 8px;border:1px solid rgba(48,220,255,.24);border-radius:3px;color:#defaffbd;font-size:10px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.yak-data-status.is-warning{border-color:#8bf7ff47;color:#c9fbffdb;background:rgba(4,24,37,.62)}.forecast-kline-chart{padding-top:16px}.forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 6px #30dcff2e}.yak-map-loading{position:absolute;left:50%;top:50%;z-index:8;color:#dffaffa3;font-size:16px;transform:translate(-50%,-50%)}.yak-bottom-topic{position:absolute;left:50%;bottom:48px;z-index:8;transform:translate(-50%);pointer-events:all}.trade-year-switcher,.forecast-year-switcher,.epidemic-year-switcher{position:absolute;left:462px;top:218px;z-index:8;display:flex;width:78px;flex-direction:column;gap:8px;padding:10px 8px;border:1px solid rgba(139,247,255,.28);background:linear-gradient(180deg,rgba(9,42,55,.72),rgba(4,18,30,.82)),rgba(3,18,31,.62);box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d;pointer-events:all;transform:perspective(620px) rotateY(6deg);transform-origin:left center;box-sizing:border-box}.trade-year-switcher span,.forecast-year-switcher span,.epidemic-year-switcher span{color:#ffffffdb;font-size:12px;font-weight:700;line-height:14px;text-align:center;white-space:nowrap}.trade-year-switcher button,.forecast-year-switcher button,.epidemic-year-switcher button{width:100%;height:30px;border:1px solid rgba(255,255,255,.18);background:rgba(48,220,255,.08);color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;cursor:pointer;box-sizing:border-box}.trade-year-switcher button.active,.trade-year-switcher button:hover,.forecast-year-switcher button.active,.forecast-year-switcher button:hover,.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#8bf7ffb3;background:rgba(139,247,255,.18);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-year-switcher{border-color:#30dcff47;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.forecast-year-switcher button.active,.forecast-year-switcher button:hover{border-color:#30dcffb3;background:rgba(48,220,255,.16);color:#30dcff;box-shadow:0 0 7px #30dcff1f}.epidemic-year-switcher{border-color:#30dcff42;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#30dcffad;background:rgba(48,220,255,.16);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-waterfall-card{display:grid;grid-template-rows:32px minmax(0,1fr);gap:8px;height:100%;padding:9px 13px 10px;overflow:hidden;box-sizing:border-box}.forecast-waterfall-head{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 10px;border-left:3px solid rgba(48,220,255,.72);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-waterfall-head span,.forecast-waterfall-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.forecast-waterfall-head strong{color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:18px;font-weight:900;text-align:right}.forecast-waterfall-head strong.negative{color:#48cfff}.forecast-waterfall-head strong em{margin-left:2px;color:#e2fcff99;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.forecast-waterfall-list{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;min-height:0}.forecast-waterfall-row{display:grid;grid-template-columns:78px minmax(0,1fr) 76px;align-items:center;gap:8px;min-width:0;min-height:0}.forecast-waterfall-row span,.forecast-waterfall-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-row span{color:#e2fcffc7;font-size:12px;line-height:14px;font-weight:800}.forecast-waterfall-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900;text-align:right}.forecast-waterfall-row i{position:relative;display:block;height:18px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 18px),rgba(48,220,255,.045);box-sizing:border-box}.forecast-waterfall-row i:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(226,252,255,.12);transform:translateY(-50%)}.forecast-waterfall-row i b{position:absolute;left:var(--waterfall-left);top:3px;width:var(--waterfall-width);height:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--waterfall-color) 22%,transparent),var(--waterfall-color));box-shadow:0 0 5px color-mix(in srgb,var(--waterfall-color) 34%,transparent)}.forecast-waterfall-row.is-anchor span,.forecast-waterfall-row.is-final span{color:#ffffffe6}.forecast-waterfall-row.is-anchor i b,.forecast-waterfall-row.is-final i b{top:3px;height:10px;border-radius:8px;background:var(--waterfall-color)}.forecast-waterfall-row.positive strong{color:#8bf7ff}.forecast-waterfall-row.negative strong{color:#48cfff}.forecast-waterfall-row.is-final strong{color:#fff}.estimate-summary-card,.forecast-summary-card{height:100%;padding:6px 14px 8px;box-sizing:border-box}.estimate-summary-card{display:grid;grid-template-rows:minmax(58px,.88fr) minmax(86px,1.12fr);row-gap:10px;padding:7px 14px 10px;overflow:hidden}.estimate-flow-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.estimate-flow-item{min-width:0;height:100%;padding:8px 10px 7px;border-left:2px solid rgba(48,220,255,.64);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.estimate-flow-item em,.estimate-flow-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-flow-item em{color:#dffaff99;font-style:normal;font-size:11px;line-height:14px}.estimate-flow-item strong{margin-top:5px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;font-weight:900;line-height:24px}.estimate-flow-item small{margin-left:3px;color:#dffaff94;font-size:10px;font-weight:600}.estimate-flow-item.is-adjustment{border-left-color:#8bf7ffa3;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.025)),rgba(3,25,40,.18)}.estimate-flow-item.is-adjustment strong{color:#8bf7ff}.estimate-flow-item.is-adjustment strong.negative{color:#48cfff}.estimate-result-band{position:relative;min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;overflow:hidden;padding:10px 14px 9px;border:1px solid rgba(48,220,255,.18);border-left:3px solid rgba(48,220,255,.76);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.16),transparent 46%),linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04)),rgba(3,25,40,.22);box-sizing:border-box}.estimate-result-band:after{content:"";position:absolute;right:-12px;bottom:-18px;width:118px;height:76px;pointer-events:none;background:radial-gradient(circle at center,rgba(48,220,255,.16),transparent 58%),linear-gradient(135deg,transparent 0 42%,rgba(48,220,255,.12) 43% 45%,transparent 46% 100%)}.estimate-result-band span,.estimate-result-band strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-result-band span{color:#dffaffb8;font-size:13px;line-height:16px}.estimate-result-band strong{position:relative;z-index:1;margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:38px;font-weight:900;line-height:42px}.estimate-result-band em{margin-left:5px;color:#dffaff9e;font-style:normal;font-size:12px}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.forecast-simple-grid span{min-width:0;height:38px;padding:5px 7px;border-left:2px solid rgba(48,220,255,.58);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02));box-sizing:border-box}.forecast-simple-grid em,.forecast-simple-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-simple-grid em{color:#dffaff8f;font-style:normal;font-size:10px;line-height:11px}.forecast-simple-grid strong{margin-top:3px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:900;line-height:15px}.forecast-simple-grid .positive{color:#8bf7ff}.forecast-simple-grid .negative{color:#48cfff}.forecast-summary-card{display:grid;grid-template-rows:minmax(84px,1fr) minmax(44px,.55fr);row-gap:9px;padding:8px 14px 10px;overflow:hidden}.forecast-result-row{display:grid;grid-template-columns:minmax(0,1fr) 98px;align-items:center;column-gap:8px;height:100%;min-height:0}.forecast-result-main{min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;padding:10px 12px;border-left:2px solid rgba(48,220,255,.7);background:radial-gradient(circle at 22% 50%,rgba(48,220,255,.16),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.16),rgba(48,220,255,.035)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-result-main span,.forecast-result-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-result-main span{color:#dffaffa8;font-size:13px;line-height:16px}.forecast-result-main strong{margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:35px;font-weight:900;line-height:39px}.forecast-result-main strong em{margin-left:4px;color:#dffaff9e;font-style:normal;font-size:11px}.forecast-change-badge{min-width:0;height:66px;padding:11px 9px 8px;border:1px solid rgba(139,247,255,.28);background:rgba(139,247,255,.06);box-sizing:border-box}.forecast-change-badge span,.forecast-change-badge strong{display:block;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.forecast-change-badge span{color:#dffaff8c;font-size:10px;line-height:11px}.forecast-change-badge strong{margin-top:2px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;line-height:16px}.forecast-change-badge strong em{margin-left:2px;color:#dffaff94;font-style:normal;font-size:10px}.forecast-change-badge.negative{border-color:#48cfff47;background:rgba(72,207,255,.06)}.forecast-change-badge.negative strong{color:#48cfff}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:0}.forecast-simple-grid span{height:100%;min-height:42px;padding:6px 8px}.forecast-simple-grid strong{margin-top:3px;font-size:15px;line-height:17px}.forecast-heat-list{display:flex;height:100%;flex-direction:column;gap:4px;padding:8px 13px 9px;box-sizing:border-box}.heat-row{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) 60px;align-items:center;gap:8px;min-height:0;flex:1 1 0;padding:0 8px;overflow:visible;border:1px solid rgba(48,220,255,.14);background:linear-gradient(90deg,rgba(48,220,255,.08),transparent 34%,rgba(36,246,196,.04)),rgba(2,18,30,.58);box-shadow:inset 0 0 0 1px #ffffff05,inset 0 0 12px #30dcff0a}.heat-row:before{content:"";position:absolute;left:78px;right:68px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.24),transparent);transform:translateY(-50%)}.heat-row:after{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:rgba(48,220,255,.82);box-shadow:none;opacity:.78}.heat-row span,.heat-row strong,.heat-row b{position:relative;z-index:1;white-space:nowrap}.heat-row span{color:#ecfdffe6;font-size:12px;line-height:14px;font-weight:900;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row b{display:block;height:11px;padding:2px;border:1px solid rgba(48,220,255,.22);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025)),rgba(0,14,24,.66);box-shadow:inset 0 0 10px #00000057,0 0 10px #30dcff14}.heat-row b i{position:relative;display:block;width:var(--heat-width);height:100%;min-width:8px;background:linear-gradient(90deg,rgba(255,255,255,.86),var(--heat-color) 16%,rgba(48,220,255,.72) 78%,rgba(255,255,255,.9)),linear-gradient(90deg,var(--heat-color-soft),transparent);box-shadow:0 0 5px #30dcff24;overflow:visible}.heat-row b i:after{content:"";position:absolute;right:-4px;top:50%;width:7px;height:7px;border-radius:50%;background:#ffffff;box-shadow:0 0 5px #ffffff52;transform:translateY(-50%)}.heat-row b i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);opacity:.72}.heat-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;font-weight:900;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row.is-negative{border-color:#48cfff2e}.epidemic-overview-chart-card{height:100%;padding:7px 9px 5px;box-sizing:border-box}.epidemic-overview-chart{width:100%;height:100%}.epidemic-chain-chart-card{height:100%;padding:7px 8px 5px;box-sizing:border-box}.epidemic-chain-chart{width:100%;height:100%}.epidemic-chain-card{height:100%;padding:9px 13px;box-sizing:border-box}.epidemic-chain-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;column-gap:8px}.epidemic-chain-row span{min-width:0;height:48px;padding:6px;border:1px solid rgba(48,220,255,.16);background:rgba(48,220,255,.05);box-sizing:border-box}.epidemic-chain-row em,.epidemic-chain-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-chain-row em{color:#dffaff8f;font-style:normal;font-size:10px}.epidemic-chain-row strong{margin-top:5px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900}.epidemic-chain-row i{color:#8bf7ffcc;font-style:normal;text-align:center}.epidemic-chain-note{margin:8px 0;padding:7px 9px;border-left:2px solid rgba(139,247,255,.76);background:rgba(139,247,255,.06)}.epidemic-chain-note span{display:block;color:#eafcffd6;font-size:11px;line-height:17px}.epidemic-chain-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.epidemic-chain-metrics span{min-width:0;display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;border:1px solid rgba(48,220,255,.14);background:rgba(48,220,255,.04)}.epidemic-chain-metrics em{color:#dffaff94;font-style:normal;font-size:10px}.epidemic-chain-metrics strong{overflow:hidden;color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-card{display:grid;grid-template-columns:142px minmax(0,1fr);align-items:center;gap:8px;height:100%;padding:8px 12px 8px 10px;box-sizing:border-box}.epidemic-three-pie-visual{position:relative;width:136px;height:136px;min-width:0}.epidemic-three-pie{width:100%;height:100%}.epidemic-three-pie-center{position:absolute;left:0;top:0;display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;text-shadow:0 0 10px rgba(0,0,0,.96);pointer-events:none}.epidemic-three-pie-center strong{overflow:hidden;max-width:84px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;line-height:22px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-2px)}.epidemic-three-pie-center span{overflow:hidden;max-width:86px;color:#fffffff5;font-size:10px;line-height:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-legend{display:flex;min-width:0;height:100%;flex-direction:column;justify-content:center;gap:6px}.epidemic-three-pie-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;column-gap:5px;min-height:17px}.epidemic-three-pie-row i{width:8px;height:8px;border:2px solid #30dcff;border-radius:2px;box-sizing:border-box;background:rgba(3,20,31,.84)}.epidemic-three-pie-row span{overflow:hidden;color:#e2faffd1;font-size:10px;line-height:13px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:13px;font-weight:800;white-space:nowrap}.epidemic-three-pie-row em{color:#dffaff8a;font-style:normal;font-size:10px;line-height:12px;white-space:nowrap}.epidemic-record-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.epidemic-record-table.is-double{gap:5px}.epidemic-record-table.is-full{gap:6px;padding:9px 10px 10px}.epidemic-record-toolbar{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.epidemic-record-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-toolbar>div{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.epidemic-record-toolbar input,.epidemic-record-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.epidemic-record-toolbar input{padding:0 7px}.epidemic-record-toolbar input::placeholder{color:#ffffff94}.epidemic-record-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.epidemic-record-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.epidemic-record-header,.epidemic-record-rows button{display:grid;grid-template-columns:112px 56px 42px 54px 64px;column-gap:4px;align-items:center}.epidemic-record-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.epidemic-record-header span{color:#ffffffc7;font-size:10px}.epidemic-record-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.epidemic-record-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.epidemic-record-rows button:hover,.epidemic-record-rows button.active{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.epidemic-record-rows span,.epidemic-record-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-rows strong{color:#8bf7ff;font-weight:700}.epidemic-record-table.is-full .epidemic-record-rows{gap:4px}.epidemic-record-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.epidemic-record-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.epidemic-record-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.epidemic-record-pager button:disabled{opacity:.36;cursor:not-allowed}.epidemic-empty{display:flex;height:100%;align-items:center;justify-content:center;color:#dffaff8f;font-size:12px}.epidemic-detail-head{display:flex;align-items:center;justify-content:space-between;height:28px;border-bottom:1px solid rgba(48,220,255,.14)}.epidemic-detail-head span{overflow:hidden;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-head strong{color:#dffaffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;white-space:nowrap}.epidemic-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.epidemic-detail-grid span{min-width:0;height:34px;padding:4px 7px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.035);box-sizing:border-box}.epidemic-detail-grid em,.epidemic-detail-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-grid em{color:#dffaff85;font-style:normal;font-size:10px;line-height:10px}.epidemic-detail-grid strong{margin-top:4px;color:#fff;font-size:11px;line-height:12px}.epidemic-detail-grid.is-modal{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.epidemic-detail-grid.is-modal span{height:39px;padding:5px 8px}.epidemic-detail-grid.is-modal .is-wide{grid-column:1/-1}.epidemic-ledger-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:rgba(0,8,14,.68);pointer-events:all}.epidemic-ledger-dialog{width:1260px;height:724px;padding:18px;border:1px solid rgba(139,247,255,.36);background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f;box-sizing:border-box}.epidemic-ledger-dialog-head{display:flex;align-items:center;justify-content:space-between;height:42px;border-bottom:1px solid rgba(48,220,255,.18)}.epidemic-ledger-dialog-head span{display:block;color:#fff;font-size:19px;font-weight:800}.epidemic-ledger-dialog-head strong{display:block;margin-top:3px;color:#ffffffdb;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-ledger-dialog-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-ledger-filters{display:grid;grid-template-columns:220px 130px 130px 132px 132px 66px 66px;gap:10px;align-items:center;margin:16px 0 14px}.epidemic-ledger-filters input,.epidemic-ledger-filters select,.epidemic-ledger-filters button{height:32px;min-width:0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.045);color:#fff;font-size:12px;box-sizing:border-box}.epidemic-ledger-filters input::placeholder{color:#ffffff9e}.epidemic-ledger-filters select option{color:#dffcff;background:#061926}.epidemic-ledger-filters input,.epidemic-ledger-filters select{padding:0 9px}.epidemic-ledger-filters button{cursor:pointer;background:rgba(139,247,255,.13);border-color:#8bf7ff5c;color:#fff;font-weight:700}.epidemic-ledger-filters button.is-ghost{background:rgba(255,255,255,.06);border-color:#ffffff2e}.epidemic-ledger-workspace{display:grid;grid-template-columns:minmax(0,1fr) 376px;gap:14px;height:548px}.epidemic-ledger-list{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;overflow:hidden;border:1px solid rgba(139,247,255,.16);background:rgba(255,255,255,.035);box-shadow:inset 0 0 24px #8bf7ff08;box-sizing:border-box}.epidemic-ledger-table-head,.epidemic-ledger-list button{display:grid;grid-template-columns:minmax(126px,1.5fr) minmax(76px,.9fr) 72px minmax(96px,1fr) 72px 82px 42px;align-items:center;column-gap:8px}.epidemic-ledger-table-head{height:34px;padding:0 12px;border:0;border-bottom:1px solid rgba(139,247,255,.14);border-radius:0;background:rgba(255,255,255,.07)}.epidemic-ledger-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;font-weight:700;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button{position:relative;width:100%;height:30px;padding:0 10px 0 12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.045),rgba(48,220,255,.018)),rgba(255,255,255,.025);color:#ffffffe6;cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease}.epidemic-ledger-list button:before{position:absolute;left:0;top:6px;width:2px;height:18px;content:"";opacity:0;background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.epidemic-ledger-list button.active,.epidemic-ledger-list button:hover{border-color:#30dcff5c;background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05)),rgba(255,255,255,.045);color:#fff}.epidemic-ledger-list button.active:before,.epidemic-ledger-list button:hover:before{opacity:1}.epidemic-ledger-list button span,.epidemic-ledger-list button strong{overflow:hidden;font-size:10px;line-height:12px;color:#fff;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button strong{color:#c9fbff;font-weight:800}.epidemic-ledger-detail{display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px;border:1px solid rgba(48,220,255,.15);background:rgba(48,220,255,.04);box-sizing:border-box}.epidemic-detail-scroll{flex:1 1 0;min-height:0;margin-top:10px;padding-right:4px;overflow-y:auto}.epidemic-detail-section+.epidemic-detail-section{margin-top:10px}.epidemic-detail-section-title{display:flex;align-items:center;height:18px;color:#8bf7ff;font-size:12px;font-weight:700;line-height:18px}.epidemic-modal-photo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:7px;overflow:hidden}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb{position:relative;width:100%;height:96px;padding:0;overflow:hidden;border:1px solid rgba(48,220,255,.24);background:rgba(48,220,255,.04);cursor:zoom-in;box-sizing:border-box}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover{border-color:#8bf7ff94;box-shadow:0 0 7px #8bf7ff1f}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:after{position:absolute;right:0;bottom:0;left:0;height:18px;content:"";background:linear-gradient(180deg,rgba(0,12,20,0),rgba(0,12,20,.92) 52%,rgba(0,12,20,.98));pointer-events:none}.epidemic-modal-photo-strip img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover img{transform:scale(1.03)}.epidemic-modal-photo-strip span{grid-column:1/-1;display:flex;height:96px;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.12);color:#dffaff8a;font-size:11px}.epidemic-image-preview-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:48;display:flex;align-items:center;justify-content:center;padding:46px;background:rgba(0,8,14,.78);pointer-events:all;box-sizing:border-box}.epidemic-image-preview-dialog{display:flex;width:min(920px,78vw);max-height:78vh;flex-direction:column;border:1px solid rgba(139,247,255,.34);background:linear-gradient(180deg,rgba(9,38,50,.97),rgba(2,15,26,.99)),rgba(2,17,28,.98);box-shadow:0 0 34px #8bf7ff24,inset 0 0 0 1px #ffffff0e}.epidemic-image-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:0 16px 0 18px;border-bottom:1px solid rgba(48,220,255,.16);box-sizing:border-box}.epidemic-image-preview-head div{min-width:0}.epidemic-image-preview-head span,.epidemic-image-preview-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-image-preview-head span{color:#fff;font-size:16px;font-weight:800}.epidemic-image-preview-head strong{margin-top:3px;color:#8bf7ffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-image-preview-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-image-preview-body{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;padding:16px;background:rgba(0,10,17,.42)}.epidemic-image-preview-frame{position:relative;display:flex;max-width:100%;max-height:calc(78vh - 84px);align-items:center;justify-content:center;overflow:hidden}.epidemic-image-preview-frame img{display:block;max-width:100%;max-height:calc(78vh - 84px);object-fit:contain}.epidemic-image-preview-frame:after{position:absolute;right:0;bottom:0;left:0;height:38px;content:"";background:linear-gradient(180deg,rgba(0,10,17,0),rgba(0,10,17,.96) 58%,rgba(0,10,17,.99));pointer-events:none}.epidemic-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:42px}.epidemic-ledger-pager span{color:#ffffffb8;font-size:12px}.epidemic-ledger-pager button{height:26px;padding:0 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:#fff;cursor:pointer}.epidemic-ledger-pager button:disabled{opacity:.38;cursor:not-allowed}.trade-ledger-dialog{width:1260px;height:724px;border-color:#8bf7ff5c;background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f}.trade-ledger-dialog .epidemic-ledger-dialog-head strong{color:#ffffffdb}.trade-ledger-dialog .epidemic-ledger-dialog-head button{border-color:#ffffff47;background:rgba(255,255,255,.08);color:#fff}.trade-ledger-filters{grid-template-columns:260px 150px 142px 142px 70px 70px}.trade-ledger-filters input,.trade-ledger-filters select,.trade-ledger-filters button{color:#fff}.trade-ledger-filters button{color:#fff;font-weight:700}.trade-ledger-workspace{grid-template-columns:minmax(0,1fr) 376px}.trade-ledger-modal-table-head,.trade-ledger-modal-list button{display:grid;grid-template-columns:128px 84px 92px 58px 88px 90px 102px 68px;align-items:center;column-gap:10px}.trade-ledger-modal-table-head{height:34px;padding:0 12px;border-bottom:1px solid rgba(139,247,255,.14);background:rgba(255,255,255,.07)}.trade-ledger-modal-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-modal-list{border-color:#30dcff29;background:rgba(255,255,255,.035)}.trade-ledger-modal-list button{height:34px;color:#ffffffe6}.trade-ledger-modal-list button.active,.trade-ledger-modal-list button:hover{background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05));color:#fff}.trade-ledger-modal-list button span,.trade-ledger-modal-list button strong{color:#fff}.trade-ledger-modal-list button strong{color:#c9fbff}.trade-ledger-detail{display:flex;flex-direction:column;padding:0;overflow:hidden;border-color:#30dcff3d;background:linear-gradient(180deg,rgba(8,42,54,.84),rgba(3,19,30,.92)),radial-gradient(circle at 10% 0,rgba(48,220,255,.12),transparent 38%),rgba(3,25,40,.48);box-shadow:inset 0 0 22px #30dcff0e,inset 0 0 0 1px #ffffff09}.trade-ledger-detail .trade-detail-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:76px;padding:15px 16px 13px;border-bottom:1px solid rgba(48,220,255,.18);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.035)),rgba(3,26,38,.62);box-sizing:border-box}.trade-ledger-detail .trade-detail-head:before{position:absolute;left:0;top:16px;width:3px;height:44px;content:"";background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.trade-ledger-detail .trade-detail-head div{min-width:0}.trade-ledger-detail .trade-detail-head span,.trade-ledger-detail .trade-detail-head em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-detail .trade-detail-head span{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;font-weight:800;line-height:24px}.trade-ledger-detail .trade-detail-head em{margin-top:6px;color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;line-height:16px}.trade-ledger-detail .trade-detail-head strong{padding:5px 9px;border:1px solid rgba(48,220,255,.18);background:rgba(5,27,38,.58);color:#edfdffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:800;white-space:nowrap}.epidemic-ledger-record-detail .trade-detail-head em{color:#8bf7ff}.epidemic-ledger-record-detail .epidemic-detail-flat-grid{padding-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid{flex:0 0 auto;align-content:start;grid-template-columns:66px minmax(0,1fr) 66px minmax(0,1fr);gap:0;margin:0;padding:14px 16px 0;overflow:hidden;border:1px solid rgba(48,220,255,.1);border-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid span{min-width:0;height:auto;padding:0;border:0;background:transparent;box-shadow:none}.epidemic-detail-grid.is-modal.trade-detail-grid:before{display:none}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide){display:contents}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) em,.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) strong,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide em,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide strong{display:flex;min-width:0;height:30px;align-items:center;padding:0 8px;border-bottom:1px solid rgba(48,220,255,.1);box-sizing:border-box}.epidemic-detail-grid.is-modal.trade-detail-grid em{justify-content:flex-end;color:#cdeff6a3;font-size:10px;font-style:normal;line-height:14px;text-align:right;background:rgba(139,247,255,.055);border-right:1px solid rgba(48,220,255,.085)}.epidemic-detail-grid.is-modal.trade-detail-grid em:after{content:":"}.epidemic-detail-grid.is-modal.trade-detail-grid strong{min-width:0;margin-top:0;overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(255,255,255,.03)}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide):nth-child(odd) strong{border-right:1px solid rgba(48,220,255,.065)}.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide{display:grid;grid-column:1/-1;grid-template-columns:66px minmax(0,1fr)}.epidemic-detail-photos{min-height:0;margin:12px 16px 16px;padding-top:10px;border-top:1px solid rgba(48,220,255,.12)}.epidemic-detail-photo-title{height:18px;color:#8bf7ff;font-size:12px;font-weight:800;line-height:18px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip .epidemic-modal-photo-thumb{height:76px;border-color:#30dcff38;border-radius:2px;background:rgba(4,28,41,.62)}.trade-detail-locate{width:calc(100% - 32px);height:36px;margin:auto 16px 16px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(139,247,255,.08)),rgba(4,28,41,.74);color:#fff;font-size:13px;font-weight:800;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.trade-detail-locate:hover:not(:disabled){border-color:#8bf7ff85;background:linear-gradient(90deg,rgba(139,247,255,.16),rgba(48,220,255,.11)),rgba(8,36,48,.84);box-shadow:0 0 7px #8bf7ff1a}.trade-detail-locate:disabled{opacity:.38;cursor:not-allowed}.trade-overview-card{display:grid;grid-template-rows:minmax(0,1fr) 46px;row-gap:10px;height:100%;padding:14px 13px 10px;box-sizing:border-box}.trade-main-metric{display:flex;min-width:0;flex-direction:column;justify-content:center}.trade-main-metric span,.trade-main-metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-main-metric span{color:#ffffffd6;font-size:12px;line-height:14px}.trade-main-metric strong{margin-top:3px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:27px;font-weight:900;line-height:29px}.trade-main-metric strong em{margin-left:5px;color:#ffffffd1;font-style:normal;font-size:12px}.trade-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.trade-metric-grid span{min-width:0;padding:5px 7px;border-left:2px solid rgba(139,247,255,.62);background:linear-gradient(90deg,rgba(139,247,255,.11),rgba(48,220,255,.03));box-sizing:border-box}.trade-metric-grid em,.trade-metric-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-metric-grid em{color:#ffffffc7;font-style:normal;font-size:10px;line-height:11px}.trade-metric-grid strong{margin-top:4px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900}.trade-risk-card{display:grid;grid-template-rows:30px minmax(0,1fr);gap:5px;height:100%;padding:9px 12px 10px;overflow:hidden;box-sizing:border-box}.trade-risk-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:0 9px;border-left:3px solid rgba(139,247,255,.78);background:linear-gradient(90deg,rgba(139,247,255,.14),rgba(48,220,255,.025)),rgba(3,25,40,.2);box-sizing:border-box}.trade-risk-head span,.trade-risk-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.trade-risk-head strong{flex:0 0 auto;color:#8bf7ff;font-size:12px;line-height:16px;font-weight:900;text-align:right}.trade-risk-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:4px;min-height:0}.trade-risk-row{position:relative;display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:0;padding:3px 8px 3px 10px;overflow:hidden;border:1px solid rgba(48,220,255,.11);background:linear-gradient(90deg,color-mix(in srgb,var(--risk-color) 12%,transparent),rgba(48,220,255,.02)),rgba(4,24,37,.2);box-sizing:border-box}.trade-risk-row:before{content:"";position:absolute;left:0;top:50%;width:2px;height:22px;background:rgba(48,220,255,.78);box-shadow:none;transform:translateY(-50%)}.trade-risk-row i{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--risk-color);box-shadow:none}.trade-risk-row span{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;min-width:0;gap:8px}.trade-risk-row em,.trade-risk-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-row em{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0;color:#ffffffe6;font-size:11px;line-height:14px;font-style:normal;font-weight:900}.trade-risk-row em b{flex:0 0 auto;min-width:28px;height:15px;padding:0 5px;border:1px solid color-mix(in srgb,var(--risk-color) 52%,transparent);border-radius:1px;color:var(--risk-color);font-size:10px;line-height:13px;font-weight:900;text-align:center;background:color-mix(in srgb,var(--risk-color) 13%,rgba(3,25,40,.62));box-sizing:border-box}.trade-risk-row small{flex:1 1 auto;min-width:0;color:#e2fcffc2;font-size:10px;line-height:12px;text-align:right}.trade-risk-row.is-high{border-color:#48cfff3d}.trade-risk-row.is-high small{color:#c9fbffe0}.trade-risk-row.is-watch small{color:#8bf7ffd1}.trade-cert-card{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;height:100%;padding:9px 12px;box-sizing:border-box}.trade-cert-main{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:8px}.trade-cert-main span{min-width:0;padding:7px 8px;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.045)}.trade-cert-main em,.trade-cert-main strong,.trade-cert-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-cert-main em{color:#ffffffc7;font-style:normal;font-size:10px}.trade-cert-main strong{margin-top:4px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:20px;font-weight:900}.trade-cert-main strong b{margin-left:3px;color:#ffffffd1;font-size:10px;font-weight:500}.trade-cert-main small{margin-top:3px;color:#ffffffd1;font-size:10px}.trade-cert-chart{width:108px;height:100%}.trade-dest-list{display:flex;height:100%;flex-direction:column;gap:3px;padding:7px 10px 8px;box-sizing:border-box}.trade-dest-row{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 66px;align-items:center;min-height:0;flex:1 1 0;column-gap:6px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035)}.trade-dest-row:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--trade-ratio);background:linear-gradient(90deg,rgba(139,247,255,.22),rgba(48,220,255,.08))}.trade-dest-row span,.trade-dest-row strong,.trade-dest-row em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-dest-row span{padding-left:7px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;font-weight:900}.trade-dest-row strong{color:#fff;font-size:11px;line-height:13px}.trade-dest-row em{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-style:normal;font-size:11px;line-height:13px;text-align:right}.trade-ledger-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.trade-ledger-toolbar{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.trade-ledger-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-toolbar>div{display:grid;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.trade-ledger-toolbar input,.trade-ledger-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.trade-ledger-toolbar input{padding:0 7px}.trade-ledger-toolbar input::placeholder{color:#ffffff94}.trade-ledger-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.trade-ledger-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.trade-ledger-header,.trade-ledger-rows button{display:grid;grid-template-columns:98px 56px 39px 38px 34px 64px;column-gap:4px;align-items:center}.trade-ledger-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.trade-ledger-header span{color:#ffffffc7;font-size:10px}.trade-ledger-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.trade-ledger-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.trade-ledger-rows button:hover{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.trade-ledger-rows span,.trade-ledger-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-rows span:first-child{line-height:12px;white-space:normal;word-break:break-all;text-overflow:clip}.trade-ledger-rows strong{color:#8bf7ff;font-weight:700}.trade-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.trade-ledger-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.trade-ledger-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.trade-ledger-pager button:disabled{opacity:.36;cursor:not-allowed}.pasture-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.pasture-map-scene,.pasture-ol-map-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.pasture-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 58%,rgba(1,9,15,.16) 82%,rgba(1,8,13,.42) 100%),linear-gradient(90deg,rgba(0,12,20,.24),transparent 22%,transparent 78%,rgba(0,12,20,.24)),linear-gradient(180deg,rgba(2,16,27,.01),rgba(2,13,22,.12))}.pasture-map-loading{position:absolute;left:50%;top:54%;z-index:4;color:#defaffc7;font-size:14px;transform:translate(-50%,-50%)}.pasture-management-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.pasture-left,.pasture-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.pasture-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.pasture-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.pasture-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.pasture-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.pasture-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.pasture-side-card{flex:0 0 auto}.pasture-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.pasture-household-rank{display:flex;flex-direction:column;gap:4px;height:100%;padding:1px 12px 3px;box-sizing:border-box}.pasture-household-rank-row{position:relative;flex:1 1 0;min-height:24px}.pasture-household-rank-row:before{position:absolute;left:0;top:8px;width:5px;height:5px;border:1px solid var(--rank-color);border-radius:50%;content:"";background:rgba(6,28,40,.92);box-shadow:none}.pasture-household-rank-row.is-leading .pasture-rank-value{color:#fff;text-shadow:none}.pasture-rank-copy{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:7px;align-items:center;height:18px;padding-left:12px}.pasture-rank-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:15px;border:1px solid rgba(48,220,255,.24);color:var(--rank-color);font-size:10px;line-height:1;font-weight:800;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.02));box-shadow:inset 0 0 10px #30dcff1a}.pasture-rank-name{overflow:hidden;color:#e2faffe6;font-size:14px;line-height:17px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.pasture-rank-value{color:#f0fdfff0;font-size:14px;line-height:17px;font-weight:900}.pasture-rank-value em{margin-left:4px;color:#d2f2f8b8;font-size:10px;font-style:normal;font-weight:700}.pasture-rank-track{position:relative;height:6px;margin:1px 0 0 45px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02)),rgba(3,22,33,.72);box-shadow:inset 0 0 12px #0000003d}.pasture-rank-track i{display:block;width:var(--rank-rate);height:100%;background:linear-gradient(90deg,rgba(35,246,200,.18),var(--rank-color));box-shadow:0 0 3px #30dcff1f}.pasture-grassland-profile{display:grid;grid-template-rows:54px minmax(0,1fr);gap:5px;height:100%;padding:2px 11px 3px;box-sizing:border-box}.pasture-grassland-featured{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-height:0}.pasture-grassland-feature-card{position:relative;overflow:hidden;padding:5px 9px 6px;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--area-color) 14%,transparent),transparent 42%),linear-gradient(135deg,rgba(19,90,112,.24),rgba(3,28,42,.5));box-shadow:inset 0 0 0 1px #ffffff08,inset 0 -18px 28px #00000024}.pasture-grassland-feature-card:after{position:absolute;right:-18px;top:-18px;width:54px;height:54px;border:1px solid color-mix(in srgb,var(--area-color) 55%,transparent);border-radius:50%;content:"";opacity:.28;box-shadow:none}.pasture-grassland-feature-card span{display:block;color:#dcfaffd1;font-size:12px;line-height:14px;font-weight:800}.pasture-grassland-feature-card strong{display:block;margin-top:1px;color:#fff;font-size:19px;line-height:22px;font-weight:900;text-shadow:none}.pasture-grassland-feature-card em,.pasture-grassland-mini-row em{margin-left:4px;color:#d8f4fab8;font-size:10px;font-style:normal;font-weight:800}.pasture-feature-track{position:absolute;right:10px;bottom:6px;left:10px;height:3px;overflow:hidden;background:rgba(14,57,72,.72)}.pasture-feature-track i{display:block;width:var(--area-rate);height:100%;background:linear-gradient(90deg,rgba(255,255,255,.18),var(--area-color));box-shadow:0 0 3px #30dcff1f}.pasture-grassland-mini-list{display:flex;flex-direction:column;gap:3px;min-height:0}.pasture-grassland-mini-row{display:grid;grid-template-columns:64px minmax(0,1fr) 70px;gap:6px;align-items:center;min-height:14px}.pasture-grassland-mini-row span{overflow:hidden;color:#defaffd6;font-size:12px;line-height:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.pasture-grassland-mini-row strong{justify-self:end;color:#f5fdfff0;font-size:12px;line-height:14px;font-weight:900}.pasture-mini-track{height:5px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(8,39,54,.66)}.pasture-mini-track i{display:block;width:var(--area-rate);height:100%;background:linear-gradient(90deg,rgba(48,220,255,.08),var(--area-color));box-shadow:0 0 3px #30dcff1f}.pasture-video-card .m-card-bd-content{bottom:12px}.pasture-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.pasture-video-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;height:100%;min-height:0}.pasture-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.pasture-video-screen{position:relative;width:100%;height:100%;min-width:0;margin:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.pasture-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.pasture-video-screen:not(.is-active){opacity:.88}.pasture-video-screen.is-playing{background-image:none!important}.pasture-video-screen>.pasture-video-player,.pasture-video-screen [id$=-wrap],.pasture-video-screen [id$=-wrap]>.pasture-video-player>div,.pasture-video-screen [id$=-wrap]>.pasture-video-player .play-window,.pasture-video-screen [id$=-wrap]>.pasture-video-player video,.pasture-video-screen [id$=-wrap]>.pasture-video-player canvas,.pasture-video-screen [id$=-wrap]>.pasture-video-player iframe{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important}.pasture-video-screen>.pasture-video-player,.pasture-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.pasture-video-screen [id$=-wrap]>.pasture-video-player{position:relative!important;inset:auto!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.pasture-video-screen [id$=-wrap]>.pasture-video-player>div,.pasture-video-screen [id$=-wrap]>.pasture-video-player .play-window,.pasture-video-screen [id$=-wrap]>.pasture-video-player video,.pasture-video-screen [id$=-wrap]>.pasture-video-player canvas,.pasture-video-screen [id$=-wrap]>.pasture-video-player iframe{z-index:1}.pasture-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.pasture-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.pasture-video-player video{object-fit:cover}.pasture-video-screen .loading-container,.pasture-video-screen .loading-item,.pasture-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.pasture-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.pasture-video-nav:disabled{cursor:not-allowed;opacity:.38}.pasture-video-prev{left:18px}.pasture-video-next{right:18px}.pasture-video-screen:before{display:none;content:none}.pasture-video-play{position:absolute;left:50%;top:46%;z-index:4;width:30px;height:30px;border:1px solid rgba(255,255,255,.62);border-radius:50%;background:rgba(0,0,0,.36);box-shadow:none;transform:translate(-50%,-50%)}.pasture-video-play:after{position:absolute;left:12px;top:8px;width:0;height:0;content:"";border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid #ffffff}.pasture-video-point-name{position:absolute;right:10px;bottom:8px;left:10px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.pasture-video-screen.is-playing .pasture-video-point-name{z-index:2;opacity:0}.pasture-video-loading,.pasture-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.pasture-video-error{border-color:#8bf7ff6b;color:#c9fbff}.pasture-map-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;height:430px;pointer-events:all}.pasture-map-layer-tools .m-card{width:100%!important;height:100%!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.pasture-map-feature-info{position:absolute;z-index:9;width:460px;pointer-events:all}.pasture-map-feature-info .m-card{width:100%!important;background:rgba(3,18,30,.7);backdrop-filter:blur(2px)}.pasture-map-feature-close{position:absolute;top:18px;right:18px;z-index:3;width:30px;height:30px;border:1px solid rgba(64,224,255,.56);border-radius:2px;color:#e4fafff5;background:linear-gradient(135deg,rgba(37,213,255,.22),rgba(10,55,76,.72));box-shadow:inset 0 0 12px #2ad2ff2e,0 0 10px #1eb8e629;font-size:23px;line-height:26px;font-weight:400;text-align:center;cursor:pointer;pointer-events:all;transition:border-color .16s ease,color .16s ease,background .16s ease,transform .16s ease}.pasture-map-feature-close:hover{color:#fff;border-color:#34f6ffe6;background:linear-gradient(135deg,rgba(38,240,255,.34),rgba(13,75,102,.86));transform:translateY(-1px)}.pasture-management .business-bars.is-distribution{max-height:100%;padding-right:8px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.pasture-management .business-bars.is-distribution::-webkit-scrollbar{width:0;height:0}.yak-industry-chain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.industry-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.industry-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(4,18,28,0) 0%,rgba(4,18,28,.05) 37%,rgba(2,10,17,.34) 78%,rgba(1,7,12,.62) 100%),linear-gradient(90deg,rgba(0,12,20,.42),transparent 26%,transparent 74%,rgba(0,12,20,.42))}.industry-map-loading{position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);color:#dcfaffc7;font-size:18px}.industry-artificial-layer-tools{position:absolute;right:452px;bottom:122px;z-index:8;pointer-events:all}.industry-map-feature-info{position:absolute;z-index:10;pointer-events:all}.industry-map-feature-info:after{position:absolute;top:var(--feature-arrow-top);left:var(--feature-arrow-left);z-index:0;width:12px;height:12px;content:"";border-right:1px solid rgba(48,220,255,.58);border-bottom:1px solid rgba(48,220,255,.58);background:rgba(5,26,38,.94);box-shadow:3px 3px 8px #0000003d;transform:translate(-50%) rotate(var(--feature-arrow-rotate))}.industry-map-feature-info>.m-card{position:relative;z-index:1}.industry-side-panel{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.industry-side-panel--left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.industry-side-panel--right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.industry-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.industry-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.industry-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.industry-side-card{flex:0 0 auto}.industry-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.industry-side-card .industry-town-column-chart{position:relative;z-index:1;width:100%;height:100%;min-height:0}.industry-side-card .industry-panel-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#e2fbffad;font-size:13px;font-weight:600;letter-spacing:0;text-shadow:0 0 8px rgba(48,220,255,.14)}.industry-side-card .business-columns.is-variant-plain{grid-template-columns:repeat(auto-fit,minmax(34px,1fr));gap:8px;padding-right:12px;padding-left:12px}.industry-side-card .business-columns.is-variant-plain .business-column-item{grid-template-rows:16px minmax(62px,1fr) 32px}.industry-side-card .business-columns.is-variant-plain .business-column-item span{display:-webkit-box;max-width:58px;color:#f0fdffdb;line-height:13px;white-space:normal;word-break:keep-all;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-plain .business-column-track{width:6px}.industry-side-card .business-columns.is-variant-townCompact{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:35px 13px 10px}.industry-side-card .business-columns.is-variant-townCompact:before{left:13px;right:13px;top:55px;bottom:40px;opacity:.46;background:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(48,220,255,.58) calc(100% - 1px)),repeating-linear-gradient(to bottom,rgba(159,220,230,.16) 0 1px,transparent 1px 21px)}.industry-side-card .business-columns.is-variant-townCompact:after{content:"";position:absolute;left:13px;right:13px;bottom:39px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(60,244,255,.72),transparent);box-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item{position:relative;z-index:1;grid-template-rows:17px minmax(74px,1fr) 29px;min-width:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item strong{width:100%;color:#f4fcfff0;font-size:10px;line-height:14px;text-align:center;text-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item span{display:-webkit-box;align-self:start;width:100%;max-width:36px;height:25px;margin-top:3px;color:#e8fcffd1;font-size:10px;line-height:12px;text-align:center;white-space:normal;word-break:break-all;writing-mode:horizontal-tb;text-orientation:initial;letter-spacing:0;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-townCompact .business-column-track{width:8px;height:100%;min-height:74px;align-self:end;border:0;border-radius:2px 2px 0 0;background:linear-gradient(180deg,rgba(48,220,255,.12),rgba(36,246,196,.015)),linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02) 48%,rgba(48,220,255,.1)),rgba(4,26,38,.22);box-shadow:inset 0 -1px #30dcff29}.industry-side-card .business-columns.is-variant-townCompact .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:18px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.12),rgba(48,220,255,0) 68%);transform:translate(-50%)}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i{left:0;right:0;min-height:5px;border-radius:3px 3px 0 0;box-shadow:inset 0 1px #ffffff3d}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:before,.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:after{display:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero strong{opacity:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero .business-column-track i{height:4px!important;opacity:.16;box-shadow:none}.industry-side-card .business-bars.is-rank-bar{padding-right:12px;padding-left:12px}.industry-side-card .business-bars.is-rank-bar .business-bar-name{font-size:12px;line-height:14px}.industry-featured-base-list{position:relative;z-index:1;display:grid;gap:8px;height:100%;padding:2px 3px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact{display:grid;grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:2px;padding:5px 13px 8px;overflow:hidden}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-row{height:auto;min-height:0;gap:10px;grid-template-columns:25px minmax(0,1fr) 104px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-rank{width:18px;height:18px;font-size:12px;line-height:19px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-name{font-size:13px;line-height:16px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-bar{height:5px;margin-top:6px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value strong{font-size:16px;line-height:18px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value em{font-size:12px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value span{margin-top:3px;font-size:11px;line-height:13px}.industry-featured-base{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;width:100%;min-height:76px;padding:9px 28px 9px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.16);border-radius:3px;background:linear-gradient(90deg,rgba(18,88,106,.27),rgba(6,25,38,.3)),rgba(3,20,31,.46);color:inherit;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.industry-featured-base:after{content:">";position:absolute;right:10px;top:50%;color:#24f6c4e6;font-size:16px;font-weight:800;transform:translateY(-50%)}.industry-featured-base:hover,.industry-featured-base:focus-visible{border-color:#24f6c48a;background:linear-gradient(90deg,rgba(18,112,120,.38),rgba(6,31,43,.38)),rgba(3,20,31,.56);outline:0;transform:translate(2px)}.industry-featured-base.is-active{border-color:#24f6c4b8;background:linear-gradient(90deg,rgba(30,124,119,.38),rgba(7,41,48,.42)),rgba(3,26,34,.62);box-shadow:inset 3px 0 #24f6c4e6,0 0 16px #24f6c41c}.industry-featured-base.is-active:after{color:#c9fbff}.industry-featured-base:disabled{cursor:default;opacity:.58}.industry-featured-base__index{display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(48,220,255,.42);background:rgba(48,220,255,.09);color:#35f1ff;font-family:D-DIN,DIN Alternate,sans-serif;font-size:14px;font-weight:800}.industry-featured-base__copy{display:grid;min-width:0;gap:2px}.industry-featured-base__copy strong,.industry-featured-base__copy em,.industry-featured-base__copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-featured-base__copy strong{color:#f6fffff5;font-size:14px;font-weight:760;line-height:18px}.industry-featured-base__copy em{color:#24f6c4eb;font-size:11px;font-style:normal;line-height:15px}.industry-featured-base__copy small{color:#cdeef4a8;font-size:11px;line-height:15px}.industry-leadership-mode-list{position:relative;z-index:1;display:grid;gap:7px;padding:3px 5px}.industry-leadership-mode{display:grid;grid-template-columns:4px 26px minmax(0,1fr);gap:8px;align-items:center;min-height:48px;padding:5px 6px;border-bottom:1px solid rgba(48,220,255,.1)}.industry-leadership-mode>i{display:block;width:4px;height:30px;box-shadow:0 0 10px currentColor}.industry-leadership-mode>span{color:#cff7ff75;font-family:D-DIN,DIN Alternate,sans-serif;font-size:13px;font-weight:800}.industry-leadership-mode div{display:grid;min-width:0;gap:2px}.industry-leadership-mode strong{color:#f6fffff2;font-size:13px;font-weight:760}.industry-leadership-mode small{overflow:hidden;color:#cdeef4a8;font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-list{display:grid;gap:7px}.industry-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:7px 8px;border:1px solid rgba(48,220,255,.1);border-radius:4px;background:rgba(4,20,31,.42)}.industry-ledger-row div{min-width:0}.industry-ledger-row strong,.industry-ledger-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-row strong{color:#f1feffeb;font-size:13px;font-weight:760}.industry-ledger-row span{margin-top:4px;color:#c9edf494;font-size:11px}.industry-ledger-row em{color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}.industry-point-detail{position:absolute;z-index:7;width:456px;padding:18px 20px 20px;border:1px solid rgba(48,220,255,.42);background:linear-gradient(180deg,rgba(12,54,70,.86),rgba(5,24,37,.9)),radial-gradient(circle at 20% 0%,rgba(36,246,196,.18),transparent 46%);box-shadow:0 0 24px #30dcff2e,inset 0 0 18px #30dcff14;color:#efffff;box-sizing:border-box;pointer-events:all}.industry-point-detail:after{content:"";position:absolute;left:var(--point-arrow-left, 50%);top:var(--point-arrow-top, 50%);width:16px;height:16px;border-right:1px solid rgba(48,220,255,.42);border-bottom:1px solid rgba(48,220,255,.42);background:rgba(5,24,37,.9);transform:translate(var(--point-arrow-x, -50%),var(--point-arrow-y, -50%)) rotate(var(--point-arrow-rotate, 45deg))}.industry-point-detail__head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#c9fbff;font-size:16px;font-weight:700}.industry-point-detail__head button{width:26px;height:26px;border:1px solid rgba(48,220,255,.36);border-radius:0;background:rgba(6,28,43,.72);color:#efffffe0;cursor:pointer;font-size:20px;line-height:20px}.industry-point-detail__name{margin-top:12px;color:#fff;font-size:23px;font-weight:800;line-height:1.35}.industry-point-detail__profile{margin-top:12px;padding-top:11px;border-top:1px solid rgba(48,220,255,.2)}.industry-point-detail__profile-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.industry-point-detail__profile-head span{color:#caf1f8b8;font-size:13px}.industry-point-detail__profile-head strong{color:#8bf7ff;font-size:13px;font-weight:760}.industry-point-detail__profile>p{display:-webkit-box;margin:6px 0 0;overflow:hidden;color:#edfcffdb;font-size:14px;line-height:20px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-point-detail__image{display:block;width:100%;height:116px;margin-top:9px;border:1px solid rgba(48,220,255,.22);object-fit:cover;object-position:center 35%}.industry-point-detail__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.industry-point-detail__facts div{min-width:0;padding:6px 7px;border:1px solid rgba(48,220,255,.13);background:rgba(2,18,30,.3)}.industry-point-detail__facts span,.industry-point-detail__facts strong,.industry-point-detail__facts small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-point-detail__facts span,.industry-point-detail__facts small{color:#c7ecf39e;font-size:11px;line-height:14px}.industry-point-detail__facts strong{margin:1px 0;color:#c9fbff;font-family:D-DIN,DIN Alternate,sans-serif;font-size:18px;font-weight:800;line-height:20px}.industry-point-detail__highlights{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:9px}.industry-point-detail__highlights>span{margin-right:2px;color:#caf1f8ad;font-size:12px}.industry-point-detail__highlights i{padding:3px 6px;border:1px solid rgba(36,246,196,.28);background:rgba(36,246,196,.08);color:#dcffd3eb;font-size:11px;font-style:normal;line-height:15px}.industry-point-detail__grid{display:grid;gap:9px;margin-top:16px}.industry-point-detail__row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;min-height:34px;align-items:center;border-bottom:1px solid rgba(48,220,255,.12)}.industry-point-detail__row span{color:#c4edf4bd;font-size:15px}.industry-point-detail__row strong{overflow:hidden;color:#f6fffff2;font-size:16px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.industry-point-detail__grid.is-family-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-top:14px}.industry-point-detail__grid.is-family-layout .industry-point-detail__row{grid-template-columns:74px minmax(0,1fr);gap:8px;min-height:31px;padding:2px 0}.industry-point-detail__grid.is-family-layout .industry-point-detail__row.is-wide{grid-column:1/-1}.industry-point-detail__grid.is-family-layout .industry-point-detail__row span{font-size:13px;line-height:16px}.industry-point-detail__grid.is-family-layout .industry-point-detail__row strong{font-size:14px;line-height:18px}.industry-bottom-switcher{position:absolute;left:50%;bottom:48px;z-index:8;display:flex;align-items:center;justify-content:center;transform:translate(-50%);pointer-events:all}.industry-bottom-switcher .topic-switcher{width:1340px}.industry-bottom-switcher .topic-switcher-item{width:var(--topic-item-width, 112px)}.industry-bottom-switcher .topic-switcher-item .topic-name{font-size:14px}.industry-bottom-switcher .topic-switcher-item .topic-title{font-size:14px;line-height:16px}.industry-bottom-switcher .topic-switcher-item .topic-name small{font-size:10px;line-height:11px}.wisdom-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#dffaff;background:radial-gradient(circle at 50% 45%,rgba(37,161,133,.28),rgba(3,16,28,.18) 35%,rgba(2,8,18,.86) 72%),linear-gradient(180deg,#041324,#030914);pointer-events:auto}.wisdom-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.wisdom-grid{position:absolute;left:430px;right:430px;top:128px;bottom:8px;opacity:.18;background-image:linear-gradient(rgba(48,220,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.14) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at center,#000 42%,transparent 78%);mask-image:radial-gradient(circle at center,#000 42%,transparent 78%)}.wisdom-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(48,220,255,.18);border-radius:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 70px #30dcff0f,0 0 70px #20e8bc14}.wisdom-orbit-a{width:760px;height:760px;animation:wisdomOrbitSpin 24s linear infinite}.wisdom-orbit-b{width:980px;height:260px;border-color:#fad36b29;transform:translate(-50%,-48%) rotate(-9deg);animation:wisdomPulse 6s ease-in-out infinite}.wisdom-scan{position:absolute;left:50%;top:50%;width:620px;height:620px;border-radius:50%;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent,rgba(48,220,255,.2),transparent 24%);opacity:.2;animation:wisdomScanSpin 8s linear infinite}.wisdom-artifact-workspace{position:absolute;left:590px;right:36px;top:112px;bottom:18px;z-index:6;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(48,220,255,.3);background:rgba(3,17,28,.96);box-shadow:inset 0 0 40px #30dcff0d,0 18px 42px #00000047}.wisdom-artifact-header{flex:0 0 62px;min-width:0;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(48,220,255,.18);background:linear-gradient(90deg,rgba(8,48,61,.92),rgba(5,25,37,.82))}.wisdom-artifact-heading,.wisdom-artifact-tools{min-width:0;display:flex;align-items:center;gap:12px}.wisdom-artifact-mark{position:relative;flex:0 0 28px;width:28px;height:28px;border:1px solid rgba(48,220,255,.68);background:rgba(48,220,255,.08)}.wisdom-artifact-mark:before,.wisdom-artifact-mark:after{content:"";position:absolute;background:#30dcff;box-shadow:0 0 10px #30dcff99}.wisdom-artifact-mark:before{left:6px;right:6px;top:8px;height:2px}.wisdom-artifact-mark:after{left:6px;right:10px;top:16px;height:2px}.wisdom-artifact-heading small,.wisdom-artifact-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-artifact-heading small{margin-bottom:3px;color:#30dcffad;font-size:11px}.wisdom-artifact-heading strong{max-width:720px;color:#fff;font-size:17px}.wisdom-artifact-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;color:#dffaffad;font-size:12px}.wisdom-artifact-status i{width:7px;height:7px;border-radius:50%;background:#ffd76c;box-shadow:0 0 10px #ffd76c99}.wisdom-artifact-status.is-ready i{background:#27f0c0;box-shadow:0 0 10px #27f0c099}.wisdom-artifact-status.is-error i{background:#ff956e;box-shadow:0 0 10px #ff956e8f}.wisdom-artifact-tools button,.wisdom-artifact-error button{height:30px;padding:0 12px;border:1px solid rgba(48,220,255,.32);background:rgba(7,43,56,.78);color:#dffaff;font-size:12px;cursor:pointer}.wisdom-artifact-tools button:hover:not(:disabled),.wisdom-artifact-error button:hover:not(:disabled){border-color:#ffd76c9e;color:#fff}.wisdom-artifact-tools button:disabled,.wisdom-artifact-error button:disabled{cursor:not-allowed;opacity:.5}.wisdom-artifact-body{position:relative;flex:1;min-height:0;overflow:hidden}.wisdom-artifact-frame{width:100%;height:100%;display:block;border:0;background:#06131d}.wisdom-artifact-building{height:100%;overflow:hidden;padding:28px;background:linear-gradient(rgba(48,220,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(48,220,255,.04) 1px,transparent 1px),#06131d;background-size:36px 36px}.wisdom-artifact-building__intro{display:flex;align-items:center;gap:14px;margin-bottom:24px}.wisdom-artifact-building__intro strong,.wisdom-artifact-building__intro p{display:block;margin:0}.wisdom-artifact-building__intro strong{color:#fff;font-size:18px}.wisdom-artifact-building__intro p{margin-top:4px;color:#dffaff80;font-size:12px}.wisdom-artifact-building__spinner{width:30px;height:30px;border:2px solid rgba(48,220,255,.18);border-top-color:#30dcff;border-radius:50%;animation:wisdomSpin .9s linear infinite}.wisdom-artifact-skeleton{position:relative;height:190px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(8,35,47,.66)}.wisdom-artifact-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(99,239,226,.1),transparent);animation:wisdomArtifactShimmer 1.6s ease-in-out infinite}.wisdom-artifact-skeleton.is-wide{height:96px}.wisdom-artifact-skeleton.is-chart{height:260px;margin-top:14px}.wisdom-artifact-skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.wisdom-artifact-error{height:100%;display:grid;place-content:center;justify-items:center;padding:32px;text-align:center;background:#06131d}.wisdom-artifact-error strong{color:#fff;font-size:20px}.wisdom-artifact-error p{max-width:520px;margin:10px 0 18px;color:#dffaff9e;font-size:13px;line-height:1.7}.wisdom-side{position:absolute;top:112px;bottom:18px;z-index:5;width:clamp(390px,21vw,460px);overflow-y:auto;display:grid;align-content:start;gap:16px;padding:6px 0 10px;box-sizing:border-box;scrollbar-width:none}.wisdom-side::-webkit-scrollbar{width:0;height:0}.wisdom-side-left{left:clamp(24px,2.4vw,52px)}.wisdom-side-right{right:clamp(24px,2.4vw,52px)}.wisdom-side-panel{min-height:0;border:1px solid rgba(48,220,255,.22);background:linear-gradient(135deg,rgba(6,37,50,.9),rgba(4,19,32,.86)),radial-gradient(circle at 18% 0%,rgba(39,240,192,.12),transparent 34%);box-shadow:inset 0 0 24px #30dcff12,0 14px 28px #00000038;padding:15px;box-sizing:border-box}.wisdom-side-panel.is-chart{padding:0;border:0;background:transparent;box-shadow:none}.wisdom-side-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.wisdom-side-header span{display:block;margin-bottom:5px;color:#30dcffb8;font-size:12px}.wisdom-side-header strong{display:block;max-width:220px;color:#fff;font-size:17px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-header em{flex:0 0 auto;padding:3px 8px;border:1px solid rgba(255,215,108,.32);color:#ffd76c;font-size:12px;font-style:normal;background:rgba(255,215,108,.08)}.wisdom-side-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.wisdom-side-metric{min-width:0;padding:10px;border:1px solid rgba(48,220,255,.16);background:rgba(3,22,35,.58);box-sizing:border-box}.wisdom-side-metric span,.wisdom-side-metric em{display:block;color:#dffaff8c;font-size:12px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-metric strong{display:block;margin:4px 0;color:#ffd76c;font-family:D-DIN,Arial,sans-serif;font-size:17px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-text{color:#edfdffe0;font-size:13px;line-height:1.7}.wisdom-side-text h3{margin:0 0 8px;color:#fff;font-size:15px}.wisdom-side-text p{margin:7px 0}.wisdom-side-text ul,.wisdom-side-text ol{margin:8px 0 8px 18px;padding:0}.wisdom-side-text strong{color:#ffd76c}.wisdom-side-actions{display:flex;flex-wrap:wrap;gap:8px}.wisdom-side-text+.wisdom-side-actions,.wisdom-side-metrics+.wisdom-side-actions{margin-top:12px}.wisdom-side-actions button{height:30px;min-width:84px;padding:0 10px;border:1px solid rgba(48,220,255,.28);background:linear-gradient(135deg,rgba(8,48,62,.76),rgba(6,28,43,.76));color:#ffd76ce6;font-size:12px;cursor:pointer}.wisdom-side-actions button:hover:not(:disabled){border-color:#ffd76c9e;color:#fff}.wisdom-side-chart.smart-chart-card{width:100%;height:348px;margin-top:0}.wisdom-side-chart .smart-chart-header{height:58px;padding:10px 13px 0}.wisdom-side-chart .smart-chart-header strong{font-size:15px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wisdom-side-chart .smart-chart-header span,.wisdom-side-chart .smart-chart-header em{font-size:11px}.wisdom-side-chart .smart-chart{height:264px}.wisdom-avatar-ring,.wisdom-empty-mark span{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(48,220,255,.62);border-radius:50%;animation:wisdomSpin 7s linear infinite}.wisdom-avatar-ring:before,.wisdom-empty-mark span:before{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;border-radius:50%;background:#ffd76c;box-shadow:0 0 14px #ffd76ccc}.wisdom-chat{position:absolute;left:50%;top:112px;bottom:18px;z-index:4;width:clamp(720px,100% - 1040px,900px);display:flex;flex-direction:column;min-width:0;transform:translate(-50%)}.wisdom-chat.has-artifact{left:34px;right:auto;width:520px;transform:none}.wisdom-chat.has-artifact .wisdom-bubble{max-width:calc(100% - 46px)}.wisdom-dialogue{flex:1;min-height:0;overflow-y:auto;padding:8px 8px 18px;scrollbar-width:thin;scrollbar-color:rgba(48,220,255,.5) rgba(3,18,30,.3)}.wisdom-dialogue.is-empty{display:grid;place-items:center}.wisdom-empty-state{position:relative;width:560px;min-height:280px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.wisdom-empty-mark{position:relative;width:126px;height:126px;display:grid;place-items:center}.wisdom-empty-mark strong{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;color:#071520;font-family:D-DIN,Arial,sans-serif;font-size:34px;background:radial-gradient(circle at 32% 24%,#fff,#9cf8e9 48%,#2bd4cb 100%);box-shadow:0 0 42px #4ef3de61}.wisdom-empty-state h2{margin:18px 0 10px;color:#fff;font-size:28px;letter-spacing:0}.wisdom-empty-state p{margin:0;max-width:420px;color:#dffaffd1;font-size:15px;line-height:1.8}.wisdom-suggestion-list button{height:34px;border:1px solid rgba(48,220,255,.28);background:linear-gradient(135deg,rgba(8,48,62,.78),rgba(6,28,43,.78));color:#dffaffdb;font-size:13px;cursor:pointer;box-shadow:inset 0 0 16px #30dcff0f}.wisdom-suggestion-list button:hover:not(:disabled){border-color:#ffd76c9e;color:#fff;background:linear-gradient(135deg,rgba(48,220,255,.18),rgba(255,215,108,.12))}.wisdom-message{display:flex;margin:14px 0;gap:10px}.wisdom-message.is-user{justify-content:flex-end}.wisdom-message-mark{flex:0 0 36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#06151f;font-weight:800;background:linear-gradient(135deg,#dffaff,#4cf0de);box-shadow:0 0 22px #4ef3de5c}.wisdom-bubble{max-width:min(680px,100% - 48px);box-sizing:border-box;border:1px solid rgba(48,220,255,.18);background:rgba(4,22,34,.92);box-shadow:inset 0 0 24px #30dcff0f,0 14px 34px #00000057;color:#edfdffeb;font-size:14px;line-height:1.7;padding:13px 15px}.smart-chart-loading{width:min(620px,100%);height:292px;margin-top:12px;display:grid;place-items:center;box-sizing:border-box;border:1px solid rgba(48,220,255,.22);background:rgba(4,22,34,.72);color:#ffd76cdb;font-size:13px;box-shadow:inset 0 0 24px #30dcff0f}.wisdom-suggestion-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.wisdom-suggestion-list button{width:auto;min-width:86px;padding:0 12px;color:#ffd76ce6}.wisdom-message.is-user .wisdom-bubble{max-width:min(560px,76%);border-color:#ffd76c42;background:linear-gradient(135deg,rgba(50,115,106,.9),rgba(13,54,65,.86))}.wisdom-steps{display:grid;gap:8px;margin-bottom:10px}.wisdom-step{display:flex;align-items:center;gap:8px;color:#dffaffa3;font-size:13px}.wisdom-step span{width:14px;height:14px;border-radius:50%;border:1px solid rgba(48,220,255,.7);position:relative}.wisdom-step span:after{content:"";position:absolute;left:4px;top:2px;width:4px;height:7px;border-right:2px solid #30dcff;border-bottom:2px solid #30dcff;transform:rotate(40deg)}.wisdom-digesting{display:flex;align-items:center;gap:8px;color:#ffd76ce0}.wisdom-digesting span,.wisdom-button-loading{width:8px;height:8px;border-radius:50%;background:#ffd76c;animation:wisdomBounce 1s ease-in-out infinite}.wisdom-digesting span:nth-child(2){animation-delay:.14s}.wisdom-digesting span:nth-child(3){animation-delay:.28s}.wisdom-digesting em{font-style:normal}.wisdom-answer{color:#edfdfff0}.wisdom-answer h3{margin:12px 0 8px;color:#fff;font-size:17px}.wisdom-answer p{margin:8px 0}.wisdom-answer ul,.wisdom-answer ol{margin:8px 0 8px 20px;padding:0}.wisdom-answer li{margin:4px 0}.wisdom-answer strong{color:#ffd76c}.wisdom-stream-caret{display:inline-block;width:8px;height:18px;margin-left:4px;vertical-align:middle;background:#30dcff;animation:wisdomBlink .8s steps(2,start) infinite}.wisdom-input-bar{flex:0 0 64px;padding:8px 8px 0;box-sizing:border-box}.wisdom-input-shell{height:50px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(135deg,rgba(8,42,55,.92),rgba(3,18,31,.92));box-shadow:inset 0 0 24px #30dcff14,0 0 30px #30dcff1a;display:flex;align-items:center;gap:10px;padding:0 8px 0 16px;box-sizing:border-box}.wisdom-input-shell:focus-within{border-color:#7efbf6c7;box-shadow:inset 0 0 24px #30dcff1a,0 0 0 2px #7efbf61f,0 0 30px #30dcff24}.wisdom-input-icon{width:16px;height:16px;border:2px solid #30dcff;border-radius:50%;position:relative;flex:0 0 auto}.wisdom-input-icon:after{content:"";position:absolute;right:-7px;bottom:-5px;width:8px;height:2px;border-radius:2px;background:#30dcff;transform:rotate(45deg)}.wisdom-input-shell input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:15px}.wisdom-input-shell input::placeholder{color:#dffaff9e}.wisdom-submit-button{width:92px;height:36px;border:1px solid rgba(255,215,108,.46);background:linear-gradient(135deg,rgba(255,215,108,.26),rgba(48,220,255,.12));color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.wisdom-voice-button{position:relative;flex:0 0 auto;width:38px;height:36px;border:1px solid rgba(48,220,255,.32);background:rgba(6,35,49,.76);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.wisdom-voice-button span{position:relative;width:10px;height:17px;border:2px solid #30dcff;border-radius:8px;box-sizing:border-box}.wisdom-voice-button span:before{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:8px;border:2px solid #30dcff;border-top:0;border-radius:0 0 10px 10px;transform:translate(-50%)}.wisdom-voice-button span:after{content:"";position:absolute;left:50%;bottom:-12px;width:12px;height:2px;border-radius:2px;background:#30dcff;transform:translate(-50%)}.wisdom-voice-button.is-listening{border-color:#ffd76c9e;background:rgba(255,215,108,.14);box-shadow:0 0 18px #ffd76c38}.wisdom-voice-button.is-listening span,.wisdom-voice-button.is-listening span:before{border-color:#ffd76c}.wisdom-voice-button.is-listening span:after{background:#ffd76c}.wisdom-submit-button:disabled,.wisdom-voice-button:disabled{cursor:not-allowed;opacity:.62}.wisdom-submit-button:focus-visible,.wisdom-voice-button:focus-visible,.wisdom-suggestion-list button:focus-visible{outline:2px solid #7efbf6;outline-offset:2px}.wisdom-button-loading{width:12px;height:12px;border:2px solid rgba(255,255,255,.34);border-top-color:#fff;background:transparent;animation:wisdomSpin .8s linear infinite}@keyframes wisdomSpin{to{transform:rotate(360deg)}}@keyframes wisdomOrbitSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes wisdomScanSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes wisdomPulse{0%,to{opacity:.36}50%{opacity:.72}}@keyframes wisdomBounce{0%,to{transform:translateY(0);opacity:.42}50%{transform:translateY(-5px);opacity:1}}@keyframes wisdomBlink{50%{opacity:0}}@keyframes wisdomArtifactShimmer{to{transform:translate(100%)}}@media (max-width: 1480px){.wisdom-artifact-workspace{left:430px;right:20px}.wisdom-chat.has-artifact{left:20px;right:auto;width:390px}.wisdom-artifact-heading strong{max-width:520px}.wisdom-side{top:112px;bottom:16px;width:318px}.wisdom-side-left{left:20px}.wisdom-side-right{right:20px}.wisdom-side-chart.smart-chart-card{height:320px}.wisdom-side-chart .smart-chart{height:236px}.wisdom-chat{width:clamp(560px,100% - 760px,760px)}}@media (max-width: 1280px){.wisdom-side{display:none}.wisdom-chat{width:min(860px,100% - 80px)}.wisdom-artifact-workspace{left:374px;right:16px}.wisdom-chat.has-artifact{left:16px;right:auto;width:342px}.wisdom-artifact-heading strong{max-width:360px}.wisdom-artifact-tools{gap:8px}.wisdom-artifact-status{display:none}}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1783995319167.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1783995319167.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1783995319167.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1783995319167.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1783995319167.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1783995319167.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:420px;right:420px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:420px;right:420px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px}.platform-screen .top-count-card.is-four .count-card-icon{width:64px;height:78px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:390px;right:390px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:390px;right:390px;top:102px;display:flex;grid-template-columns:none;grid-auto-rows:auto;column-gap:0;row-gap:0;justify-content:space-between;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{flex:0 0 auto;width:auto;min-width:184px;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:442px;top:82px;display:grid;grid-template-columns:208px 220px 242px 168px 168px;column-gap:10px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:390px;right:430px;top:96px;display:flex;justify-content:space-between}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} diff --git a/docs/assets/index.esm.min-c54f6e6e-1784043664472.js b/docs/assets/index.esm.min-c54f6e6e-1784043664472.js new file mode 100644 index 0000000..7a11ea2 --- /dev/null +++ b/docs/assets/index.esm.min-c54f6e6e-1784043664472.js @@ -0,0 +1,17 @@ +import{P as fe,i as j,g as w,O as le,w as T,Q as Y,q as ve,h as he,R as ee,K as R,S as ge,U as pe,A as ze,V as be,u as we,W as ye}from"./index-1784043664472.js";var k=null;function me(e){return k||(k=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),k(e)}var N=null;function Ee(e){N||(N=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),N(e)}function Oe(e){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function H(e,t){t===void 0&&(t={});var r=document.createElement(e);return Object.keys(t).forEach(function(a){r[a]=t[a]}),r}function ie(e,t,r){var a=window.getComputedStyle(e,r||null)||{display:"none"};return a[t]}function q(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(ie(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var xe='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',B=0,F=null;function Ce(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=Se.bind(e));var r=e.__resize_listeners__;if(!r){if(e.__resize_listeners__=[],window.ResizeObserver){var a=e.offsetWidth,o=e.offsetHeight,n=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===a&&e.offsetHeight===o)||U(e)}),u=q(e),p=u.detached,v=u.rendered;e.__resize_observer_triggered__=p===!1&&v===!1,e.__resize_observer__=n,n.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){U(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(B||(F=Oe(xe)),je(e),e.__resize_rendered__=q(e).rendered,window.MutationObserver){var h=new MutationObserver(e.__resize_mutation_handler__);h.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=h}}e.__resize_listeners__.push(t),B++}function Le(e,t){var r=e.__resize_listeners__;if(r){if(t&&r.splice(r.indexOf(t),1),!r.length||!t){if(e.detachEvent&&e.removeEventListener){e.detachEvent("onresize",e.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);return}e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",P),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--B&&F&&F.parentNode.removeChild(F)}}function Ae(e){var t=e.__resize_last__,r=t.width,a=t.height,o=e.offsetWidth,n=e.offsetHeight;return o!==r||n!==a?{width:o,height:n}:null}function Se(){var e=q(this),t=e.rendered,r=e.detached;t!==this.__resize_rendered__&&(!r&&this.__resize_triggers__&&($(this),this.addEventListener("scroll",P,!0)),this.__resize_rendered__=t,U(this))}function P(){var e=this;$(this),this.__resize_raf__&&Ee(this.__resize_raf__),this.__resize_raf__=me(function(){var t=Ae(e);t&&(e.__resize_last__=t,U(e))})}function U(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function je(e){var t=ie(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var r=H("div",{className:"resize-triggers"}),a=H("div",{className:"resize-expand-trigger"}),o=H("div"),n=H("div",{className:"resize-contract-trigger"});a.appendChild(o),r.appendChild(a),r.appendChild(n),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:a,expandChild:o,contract:n},$(e),e.addEventListener("scroll",P,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function $(e){var t=e.__resize_triggers__,r=t.expand,a=t.expandChild,o=t.contract,n=o.scrollWidth,u=o.scrollHeight,p=r.offsetWidth,v=r.offsetHeight,h=r.scrollWidth,f=r.scrollHeight;o.scrollLeft=n,o.scrollTop=u,a.style.width=p+1+"px",a.style.height=v+1+"px",r.scrollLeft=h,r.scrollTop=f}var g=function(){return g=Object.assign||function(e){for(var t,r=1,a=arguments.length;r.map{width:100%;height:100%}.forest-grass-wet>.map>canvas{display:block;width:100%!important;height:100%!important}.forest-grass-wet>.map>div{width:100%!important;height:100%!important}.forest-grass-wet-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.forest-grass-wet .fgw-left,.forest-grass-wet .fgw-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.forest-grass-wet .fgw-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.forest-grass-wet .fgw-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.forest-grass-wet .fgw-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.forest-grass-wet .fgw-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.forest-grass-wet .fgw-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.forest-grass-wet .fgw-side-card{flex:0 0 auto}.forest-grass-wet .fgw-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.forest-grass-wet .fgw-map-layer-tools,.forest-grass-wet .fgw-map-feature-info{position:absolute;z-index:7;pointer-events:all}.forest-grass-wet .fgw-map-layer-tools .m-card,.forest-grass-wet .fgw-map-feature-info .m-card{background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.forest-grass-wet .fgw-map-layer-tools{top:auto;right:458px;left:auto;bottom:72px;width:248px;height:430px}.forest-grass-wet .fgw-map-layer-tools .m-card{width:100%!important;height:100%!important}.forest-grass-wet .fgw-ndvi-timeline{position:absolute;left:50%;bottom:112px;z-index:7;transform:translate(-50%);pointer-events:all}.forest-grass-wet .fgw-map-feature-info{right:456px;bottom:150px}.forest-grass-wet .fgw-bottom-topic{position:absolute;left:50%;bottom:48px;z-index:8;transform:translate(-50%);pointer-events:all} diff --git a/docs/assets/leaf-7be9efef-balabala-1783995319167.png b/docs/assets/leaf-7be9efef-balabala-1784043664472.png similarity index 100% rename from docs/assets/leaf-7be9efef-balabala-1783995319167.png rename to docs/assets/leaf-7be9efef-balabala-1784043664472.png diff --git a/docs/assets/left-kuang-5d6bd1ae-balabala-1783995319167.svg b/docs/assets/left-kuang-5d6bd1ae-balabala-1784043664472.svg similarity index 100% rename from docs/assets/left-kuang-5d6bd1ae-balabala-1783995319167.svg rename to docs/assets/left-kuang-5d6bd1ae-balabala-1784043664472.svg diff --git a/docs/assets/live-scene-1-16ce1514-1784043664472.js b/docs/assets/live-scene-1-16ce1514-1784043664472.js new file mode 100644 index 0000000..d29f8ab --- /dev/null +++ b/docs/assets/live-scene-1-16ce1514-1784043664472.js @@ -0,0 +1,871 @@ +var Hl=Object.getOwnPropertySymbols;var mh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable;var Vl=(ae,Je)=>{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-d0c7091a-1784043664472.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ +/* [wrapped with `+t+`] */ +`)}function Vu(e){return Fe(e)||ti(e)||!!(id&&e&&e[id])}function kn(e,t){var o=typeof e;return t=t==null?be:t,!!t&&(o=="number"||o!="symbol"&&t0.test(e))&&e>-1&&e%1==0&&e0){if(++t>=ne)return arguments[0]}else t=0;return e.apply(n,arguments)}}function br(e,t){var o=-1,c=e.length,v=c-1;for(t=t===n?c:t;++o1?e[t-1]:n;return o=typeof o=="function"?(e.pop(),o):n,pl(e,o)});function fl(e){var t=x(e);return t.__chain__=!0,t}function ep(e,t){return t(e),e}function Pr(e,t){return t(e)}var tp=Rn(function(e){var t=e.length,o=t?e[0]:0,c=this.__wrapped__,v=function(R){return oo(R,e)};return t>1||this.__actions__.length||!(c instanceof Ze)||!kn(o)?this.thru(v):(c=c.slice(o,+o+(t?1:0)),c.__actions__.push({func:Pr,args:[v],thisArg:n}),new nn(c,this.__chain__).thru(function(R){return t&&!R.length&&R.push(n),R}))});function np(){return fl(this)}function ip(){return new nn(this.value(),this.__chain__)}function rp(){this.__values__===n&&(this.__values__=_l(this.value()));var e=this.__index__>=this.__values__.length,t=e?n:this.__values__[this.__index__++];return{done:e,value:t}}function op(){return this}function ap(e){for(var t,o=this;o instanceof lr;){var c=dl(o);c.__index__=0,c.__values__=n,t?v.__wrapped__=c:t=c;var v=c;o=o.__wrapped__}return v.__wrapped__=e,t}function dp(){var e=this.__wrapped__;if(e instanceof Ze){var t=e;return this.__actions__.length&&(t=new Ze(this)),t=t.reverse(),t.__actions__.push({func:Pr,args:[No],thisArg:n}),new nn(t,this.__chain__)}return this.thru(No)}function lp(){return kd(this.__wrapped__,this.__actions__)}var sp=hr(function(e,t,o){ot.call(e,o)?++e[o]:xn(e,o,1)});function cp(e,t,o){var c=Fe(e)?Va:eu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}function up(e,t){var o=Fe(e)?Fn:pd;return o(e,Ee(t,3))}var mp=Ud(ll),pp=Ud(sl);function fp(e,t){return Rt(wr(e,t),1)}function hp(e,t){return Rt(wr(e,t),Ce)}function gp(e,t,o){return o=o===n?1:ze(o),Rt(wr(e,t),o)}function hl(e,t){var o=Fe(e)?en:Ln;return o(e,Ee(t,3))}function gl(e,t){var o=Fe(e)?F0:md;return o(e,Ee(t,3))}var vp=hr(function(e,t,o){ot.call(e,o)?e[o].push(t):xn(e,o,[t])});function yp(e,t,o,c){e=jt(e)?e:vi(e),o=o&&!c?ze(o):0;var v=e.length;return o<0&&(o=Et(v+o,0)),Rr(e)?o<=v&&e.indexOf(t,o)>-1:!!v&&oi(e,t,o)>-1}var Tp=He(function(e,t,o){var c=-1,v=typeof t=="function",R=jt(e)?Q(e.length):[];return Ln(e,function(B){R[++c]=v?Gt(t,B,o):Ri(B,t,o)}),R}),Sp=hr(function(e,t,o){xn(e,o,t)});function wr(e,t){var o=Fe(e)?gt:Td;return o(e,Ee(t,3))}function Cp(e,t,o,c){return e==null?[]:(Fe(t)||(t=t==null?[]:[t]),o=c?n:o,Fe(o)||(o=o==null?[]:[o]),Pd(e,t,o))}var bp=hr(function(e,t,o){e[o?0:1].push(t)},function(){return[[],[]]});function Pp(e,t,o){var c=Fe(e)?Zr:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,Ln)}function wp(e,t,o){var c=Fe(e)?B0:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,md)}function Ep(e,t){var o=Fe(e)?Fn:pd;return o(e,xr(Ee(t,3)))}function Ip(e){var t=Fe(e)?ld:yu;return t(e)}function xp(e,t,o){(o?Ft(e,t,o):t===n)?t=1:t=ze(t);var c=Fe(e)?qc:Tu;return c(e,t)}function _p(e){var t=Fe(e)?$c:Cu;return t(e)}function Rp(e){if(e==null)return 0;if(jt(e))return Rr(e)?di(e):e.length;var t=Dt(e);return t==Ge||t==De?e.size:mo(e).length}function kp(e,t,o){var c=Fe(e)?Jr:bu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}var Ap=He(function(e,t){if(e==null)return[];var o=t.length;return o>1&&Ft(e,t[0],t[1])?t=[]:o>2&&Ft(t[0],t[1],t[2])&&(t=[t[0]]),Pd(e,Rt(t,1),[])}),Er=uc||function(){return _t.Date.now()};function Dp(e,t){if(typeof t!="function")throw new tn(l);return e=ze(e),function(){if(--e<1)return t.apply(this,arguments)}}function vl(e,t,o){return t=o?n:t,t=e&&t==null?e.length:t,_n(e,A,n,n,n,n,t)}function yl(e,t){var o;if(typeof t!="function")throw new tn(l);return e=ze(e),function(){return--e>0&&(o=t.apply(this,arguments)),e<=1&&(t=n),o}}var Bo=He(function(e,t,o){var c=w;if(o.length){var v=zn(o,hi(Bo));c|=g}return _n(e,c,t,o,v)}),Tl=He(function(e,t,o){var c=w|z;if(o.length){var v=zn(o,hi(Tl));c|=g}return _n(t,c,e,o,v)});function Sl(e,t,o){t=o?n:t;var c=_n(e,d,n,n,n,n,n,t);return c.placeholder=Sl.placeholder,c}function Cl(e,t,o){t=o?n:t;var c=_n(e,m,n,n,n,n,n,t);return c.placeholder=Cl.placeholder,c}function bl(e,t,o){var c,v,R,B,U,G,re=0,oe=!1,le=!1,pe=!0;if(typeof e!="function")throw new tn(l);t=dn(t)||0,vt(o)&&(oe=!!o.leading,le="maxWait"in o,R=le?Et(dn(o.maxWait)||0,t):R,pe="trailing"in o?!!o.trailing:pe);function Se(Pt){var hn=c,Mn=v;return c=v=n,re=Pt,B=e.apply(Mn,hn),B}function xe(Pt){return re=Pt,U=Ni(Ve,t),oe?Se(Pt):B}function Le(Pt){var hn=Pt-G,Mn=Pt-re,Ul=t-hn;return le?At(Ul,R-Mn):Ul}function _e(Pt){var hn=Pt-G,Mn=Pt-re;return G===n||hn>=t||hn<0||le&&Mn>=R}function Ve(){var Pt=Er();if(_e(Pt))return $e(Pt);U=Ni(Ve,Le(Pt))}function $e(Pt){return U=n,pe&&c?Se(Pt):(c=v=n,B)}function qt(){U!==n&&Dd(U),re=0,c=G=v=U=n}function Bt(){return U===n?B:$e(Er())}function $t(){var Pt=Er(),hn=_e(Pt);if(c=arguments,v=this,G=Pt,hn){if(U===n)return xe(G);if(le)return Dd(U),U=Ni(Ve,t),Se(G)}return U===n&&(U=Ni(Ve,t)),B}return $t.cancel=qt,$t.flush=Bt,$t}var Mp=He(function(e,t){return ud(e,1,t)}),Np=He(function(e,t,o){return ud(e,dn(t)||0,o)});function Fp(e){return _n(e,H)}function Ir(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new tn(l);var o=function(){var c=arguments,v=t?t.apply(this,c):c[0],R=o.cache;if(R.has(v))return R.get(v);var B=e.apply(this,c);return o.cache=R.set(v,B)||R,B};return o.cache=new(Ir.Cache||In),o}Ir.Cache=In;function xr(e){if(typeof e!="function")throw new tn(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bp(e){return yl(2,e)}var zp=Pu(function(e,t){t=t.length==1&&Fe(t[0])?gt(t[0],Zt(Ee())):gt(Rt(t,1),Zt(Ee()));var o=t.length;return He(function(c){for(var v=-1,R=At(c.length,o);++v=t}),ti=gd(function(){return arguments}())?gd:function(e){return Tt(e)&&ot.call(e,"callee")&&!nd.call(e,"callee")},Fe=Q.isArray,Xp=za?Zt(za):au;function jt(e){return e!=null&&_r(e.length)&&!An(e)}function bt(e){return Tt(e)&&jt(e)}function Qp(e){return e===!0||e===!1||Tt(e)&&Nt(e)==ke}var Vn=pc||Ko,ef=ja?Zt(ja):du;function tf(e){return Tt(e)&&e.nodeType===1&&!Fi(e)}function nf(e){if(e==null)return!0;if(jt(e)&&(Fe(e)||typeof e=="string"||typeof e.splice=="function"||Vn(e)||gi(e)||ti(e)))return!e.length;var t=Dt(e);if(t==Ge||t==De)return!e.size;if(Mi(e))return!mo(e).length;for(var o in e)if(ot.call(e,o))return!1;return!0}function rf(e,t){return ki(e,t)}function of(e,t,o){o=typeof o=="function"?o:n;var c=o?o(e,t):n;return c===n?ki(e,t,n,o):!!c}function jo(e){if(!Tt(e))return!1;var t=Nt(e);return t==Yt||t==yn||typeof e.message=="string"&&typeof e.name=="string"&&!Fi(e)}function af(e){return typeof e=="number"&&rd(e)}function An(e){if(!vt(e))return!1;var t=Nt(e);return t==It||t==Ht||t==we||t==Ae}function wl(e){return typeof e=="number"&&e==ze(e)}function _r(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=be}function vt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Tt(e){return e!=null&&typeof e=="object"}var El=La?Zt(La):su;function df(e,t){return e===t||uo(e,t,_o(t))}function lf(e,t,o){return o=typeof o=="function"?o:n,uo(e,t,_o(t),o)}function sf(e){return Il(e)&&e!=+e}function cf(e){if(Zu(e))throw new Ne(a);return vd(e)}function uf(e){return e===null}function mf(e){return e==null}function Il(e){return typeof e=="number"||Tt(e)&&Nt(e)==Ct}function Fi(e){if(!Tt(e)||Nt(e)!=Oe)return!1;var t=tr(e);if(t===null)return!0;var o=ot.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Yi.call(o)==dc}var Lo=Oa?Zt(Oa):cu;function pf(e){return wl(e)&&e>=-be&&e<=be}var xl=Ua?Zt(Ua):uu;function Rr(e){return typeof e=="string"||!Fe(e)&&Tt(e)&&Nt(e)==Xe}function Kt(e){return typeof e=="symbol"||Tt(e)&&Nt(e)==P}var gi=Ha?Zt(Ha):mu;function ff(e){return e===n}function hf(e){return Tt(e)&&Dt(e)==F}function gf(e){return Tt(e)&&Nt(e)==j}var vf=Tr(po),yf=Tr(function(e,t){return e<=t});function _l(e){if(!e)return[];if(jt(e))return Rr(e)?mn(e):zt(e);if(bi&&e[bi])return q0(e[bi]());var t=Dt(e),o=t==Ge?Qr:t==De?Ki:vi;return o(e)}function Dn(e){if(!e)return e===0?e:0;if(e=dn(e),e===Ce||e===-Ce){var t=e<0?-1:1;return t*Pe}return e===e?e:0}function ze(e){var t=Dn(e),o=t%1;return t===t?o?t-o:t:0}function Rl(e){return e?Yn(ze(e),0,N):0}function dn(e){if(typeof e=="number")return e;if(Kt(e))return Ye;if(vt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=vt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=Ka(e);var o=Xs.test(e);return o||e0.test(e)?D0(e.slice(2),o?2:8):Ys.test(e)?Ye:+e}function kl(e){return Cn(e,Lt(e))}function Tf(e){return e?Yn(ze(e),-be,be):e===0?e:0}function it(e){return e==null?"":Jt(e)}var Sf=pi(function(e,t){if(Mi(t)||jt(t)){Cn(t,xt(t),e);return}for(var o in t)ot.call(t,o)&&xi(e,o,t[o])}),Al=pi(function(e,t){Cn(t,Lt(t),e)}),kr=pi(function(e,t,o,c){Cn(t,Lt(t),e,c)}),Cf=pi(function(e,t,o,c){Cn(t,xt(t),e,c)}),bf=Rn(oo);function Pf(e,t){var o=mi(e);return t==null?o:sd(o,t)}var wf=He(function(e,t){e=at(e);var o=-1,c=t.length,v=c>2?t[2]:n;for(v&&Ft(t[0],t[1],v)&&(c=1);++o1),R}),Cn(e,Io(e),o),c&&(o=rn(o,y|h|D,Nu));for(var v=t.length;v--;)yo(o,t[v]);return o});function Hf(e,t){return Ml(e,xr(Ee(t)))}var Vf=Rn(function(e,t){return e==null?{}:hu(e,t)});function Ml(e,t){if(e==null)return{};var o=gt(Io(e),function(c){return[c]});return t=Ee(t),wd(e,o,function(c,v){return t(c,v[0])})}function Wf(e,t,o){t=Un(t,e);var c=-1,v=t.length;for(v||(v=1,e=n);++ct){var c=e;e=t,t=c}if(o||e%1||t%1){var v=od();return At(e+v*(t-e+A0("1e-"+((v+"").length-1))),t)}return ho(e,t)}var t1=fi(function(e,t,o){return t=t.toLowerCase(),e+(o?Bl(t):t)});function Bl(e){return Ho(it(e).toLowerCase())}function zl(e){return e=it(e),e&&e.replace(n0,W0).replace(C0,"")}function n1(e,t,o){e=it(e),t=Jt(t);var c=e.length;o=o===n?c:Yn(ze(o),0,c);var v=o;return o-=t.length,o>=0&&e.slice(o,v)==t}function i1(e){return e=it(e),e&&st.test(e)?e.replace(Vt,G0):e}function r1(e){return e=it(e),e&&Wt.test(e)?e.replace(pt,"\\$&"):e}var o1=fi(function(e,t,o){return e+(o?"-":"")+t.toLowerCase()}),a1=fi(function(e,t,o){return e+(o?" ":"")+t.toLowerCase()}),d1=Od("toLowerCase");function l1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;if(!t||c>=t)return e;var v=(t-c)/2;return yr(or(v),o)+e+yr(rr(v),o)}function s1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;return t&&c>>0,o?(e=it(e),e&&(typeof t=="string"||t!=null&&!Lo(t))&&(t=Jt(t),!t&&ai(e))?Hn(mn(e),0,o):e.split(t,o)):[]}var g1=fi(function(e,t,o){return e+(o?" ":"")+Ho(t)});function v1(e,t,o){return e=it(e),o=o==null?0:Yn(ze(o),0,e.length),t=Jt(t),e.slice(o,o+t.length)==t}function y1(e,t,o){var c=x.templateSettings;o&&Ft(e,t,o)&&(t=n),e=it(e),t=kr({},t,c,Jd);var v=kr({},t.imports,c.imports,Jd),R=xt(v),B=Xr(v,R),U,G,re=0,oe=t.interpolate||Vi,le="__p += '",pe=eo((t.escape||Vi).source+"|"+oe.source+"|"+(oe===Si?$s:Vi).source+"|"+(t.evaluate||Vi).source+"|$","g"),Se="//# sourceURL="+(ot.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++I0+"]")+` +`;e.replace(pe,function(_e,Ve,$e,qt,Bt,$t){return $e||($e=qt),le+=e.slice(re,$t).replace(i0,Z0),Ve&&(U=!0,le+=`' + +__e(`+Ve+`) + +'`),Bt&&(G=!0,le+=`'; +`+Bt+`; +__p += '`),$e&&(le+=`' + +((__t = (`+$e+`)) == null ? '' : __t) + +'`),re=$t+_e.length,_e}),le+=`'; +`;var xe=ot.call(t,"variable")&&t.variable;if(!xe)le=`with (obj) { +`+le+` +} +`;else if(ii.test(xe))throw new Ne(s);le=(G?le.replace(ht,""):le).replace(Be,"$1").replace(tt,"$1;"),le="function("+(xe||"obj")+`) { +`+(xe?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(U?", __e = _.escape":"")+(G?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+le+`return __p +}`;var Le=Ll(function(){return nt(R,Se+"return "+le).apply(n,B)});if(Le.source=le,jo(Le))throw Le;return Le}function T1(e){return it(e).toLowerCase()}function S1(e){return it(e).toUpperCase()}function C1(e,t,o){if(e=it(e),e&&(o||t===n))return Ka(e);if(!e||!(t=Jt(t)))return e;var c=mn(e),v=mn(t),R=qa(c,v),B=$a(c,v)+1;return Hn(c,R,B).join("")}function b1(e,t,o){if(e=it(e),e&&(o||t===n))return e.slice(0,Xa(e)+1);if(!e||!(t=Jt(t)))return e;var c=mn(e),v=$a(c,mn(t))+1;return Hn(c,0,v).join("")}function P1(e,t,o){if(e=it(e),e&&(o||t===n))return e.replace(cn,"");if(!e||!(t=Jt(t)))return e;var c=mn(e),v=qa(c,mn(t));return Hn(c,v).join("")}function w1(e,t){var o=Z,c=X;if(vt(t)){var v="separator"in t?t.separator:v;o="length"in t?ze(t.length):o,c="omission"in t?Jt(t.omission):c}e=it(e);var R=e.length;if(ai(e)){var B=mn(e);R=B.length}if(o>=R)return e;var U=o-di(c);if(U<1)return c;var G=B?Hn(B,0,U).join(""):e.slice(0,U);if(v===n)return G+c;if(B&&(U+=G.length-U),Lo(v)){if(e.slice(U).search(v)){var re,oe=G;for(v.global||(v=eo(v.source,it(ga.exec(v))+"g")),v.lastIndex=0;re=v.exec(oe);)var le=re.index;G=G.slice(0,le===n?U:le)}}else if(e.indexOf(Jt(v),U)!=U){var pe=G.lastIndexOf(v);pe>-1&&(G=G.slice(0,pe))}return G+c}function E1(e){return e=it(e),e&&Ue.test(e)?e.replace(Xt,Q0):e}var I1=fi(function(e,t,o){return e+(o?" ":"")+t.toUpperCase()}),Ho=Od("toUpperCase");function jl(e,t,o){return e=it(e),t=o?n:t,t===n?K0(e)?nc(e):L0(e):e.match(t)||[]}var Ll=He(function(e,t){try{return Gt(e,n,t)}catch(o){return jo(o)?o:new Ne(o)}}),x1=Rn(function(e,t){return en(t,function(o){o=bn(o),xn(e,o,Bo(e[o],e))}),e});function _1(e){var t=e==null?0:e.length,o=Ee();return e=t?gt(e,function(c){if(typeof c[1]!="function")throw new tn(l);return[o(c[0]),c[1]]}):[],He(function(c){for(var v=-1;++vbe)return[];var o=N,c=At(e,N);t=Ee(t),e-=N;for(var v=Yr(c,t);++o0||t<0)?new Ze(o):(e<0?o=o.takeRight(-e):e&&(o=o.drop(e)),t!==n&&(t=ze(t),o=t<0?o.dropRight(-t):o.take(t-e)),o)},Ze.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Ze.prototype.toArray=function(){return this.take(N)},Sn(Ze.prototype,function(e,t){var o=/^(?:filter|find|map|reject)|While$/.test(t),c=/^(?:head|last)$/.test(t),v=x[c?"take"+(t=="last"?"Right":""):t],R=c||/^find/.test(t);v&&(x.prototype[t]=function(){var B=this.__wrapped__,U=c?[1]:arguments,G=B instanceof Ze,re=U[0],oe=G||Fe(B),le=function(Ve){var $e=v.apply(x,Bn([Ve],U));return c&&pe?$e[0]:$e};oe&&o&&typeof re=="function"&&re.length!=1&&(G=oe=!1);var pe=this.__chain__,Se=!!this.__actions__.length,xe=R&&!pe,Le=G&&!Se;if(!R&&oe){B=Le?B:new Ze(this);var _e=e.apply(B,U);return _e.__actions__.push({func:Pr,args:[le],thisArg:n}),new nn(_e,pe)}return xe&&Le?e.apply(this,U):(_e=this.thru(le),xe?c?_e.value()[0]:_e.value():_e)})}),en(["pop","push","shift","sort","splice","unshift"],function(e){var t=qi[e],o=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",c=/^(?:pop|shift)$/.test(e);x.prototype[e]=function(){var v=arguments;if(c&&!this.__chain__){var R=this.value();return t.apply(Fe(R)?R:[],v)}return this[o](function(B){return t.apply(Fe(B)?B:[],v)})}}),Sn(Ze.prototype,function(e,t){var o=x[t];if(o){var c=o.name+"";ot.call(ui,c)||(ui[c]=[]),ui[c].push({name:t,func:o})}}),ui[gr(n,z).name]=[{name:"wrapper",func:n}],Ze.prototype.clone=wc,Ze.prototype.reverse=Ec,Ze.prototype.value=Ic,x.prototype.at=tp,x.prototype.chain=np,x.prototype.commit=ip,x.prototype.next=rp,x.prototype.plant=ap,x.prototype.reverse=dp,x.prototype.toJSON=x.prototype.valueOf=x.prototype.value=lp,x.prototype.first=x.prototype.head,bi&&(x.prototype[bi]=op),x},li=ic();Jn?((Jn.exports=li)._=li,Vr._=li):_t._=li}).call(Zn)});function es(f,u){var n=u.parentNode;n.lastChild==u?n.appendChild(f):n.insertBefore(f,u.nextSibling)}var Bi=function(){function f(u,n){fe(this,f),this.id=n,this.jSPlugin=u,this.state={play:!1,loading:!1,text:""},this.loadingSetText=this.loadingSetText}return dt(f,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"setPlayStatus",value:function(n){this.state=Object.assign(this.state,n)}},{key:"loadingStart",value:function(n){var i=document.createElement("style");document.getElementsByTagName("head")[0].appendChild(i),i.innerHTML="@keyframes antRotate {to {transform: rotate(400deg);transform-origin:50% 50%;}} .loading {display: inline-block;z-index: 1000;-webkit-animation: antRotate 1s infinite linear;animation: antRotate 1s infinite linear;}";var r=n,a=document.getElementById(r),l=a.offsetWidth,s=a.offsetHeight,b=0,T=a.offsetLeft;document.getElementById("".concat(n,"-loading-id-0"))&&document.getElementById("".concat(n,"-loading-id-0")).parentNode.removeChild(document.getElementById("".concat(n,"-loading-id-0")));var C=document.createElement("div");C.setAttribute("id","".concat(n,"-loading-id-0"));var _="position:absolute;outline:none;pointer-events:none;";console.log("this.jSPlugin",this.jSPlugin),_+="width: 100%;background-size: cover; background-repeat:no-repeat;",_+="height: 100%;",_+="top:"+b+";",_+="left:"+T+"px;",C.setAttribute("style",_),C.style.height=s,C.setAttribute("class","loading-container"),es(C,a);var y=1,h=document.createElement("div"),D=document.createElement("div");h.setAttribute("class","loading-item"),h.setAttribute("id","".concat(n,"-loading-item-0"));var _="display:inline-flex;pointer-events:none;flex-direction:column;justify-content:center;align-items: center;width:100%;height:"+s+"px;outline:none;vertical-align: top;position:absolute;";_+="left:"+E(s,l,y,0).left+"px;",_+="top:"+E(s,l,y,0).top+"px;",h.setAttribute("style",_);function E(S,d,m,g){var k=parseInt(g/m,10)*(S/m),A=g%m*(d/m);return{top:k,left:A}}var w=document.createElement("div");D.innerHTML="",D.style.color="#fff",w.setAttribute("class","loading"),w.setAttribute("id","loading-icon");var z='';w.innerHTML=z,h.appendChild(w),h.appendChild(D),C.appendChild(h)}},{key:"loadingStop",value:function(n){var i=document.getElementById("".concat(n,"-loading-item-0"));i&&i.removeChild(document.getElementById("loading-icon"))}},{key:"loadingSetText",value:function(n){var i=this;if(this.loadingClearText(),document.getElementById("".concat(this.id,"-loading-item-0"))){var r=document.getElementById("".concat(this.id,"-loading-item-0")).childNodes[1];if(!r){var a=document.getElementById("".concat(this.id,"-loading-item-0"));a.style.height="100%",r=document.createElement("div"),r.innerHTML=n.text,a.appendChild(r)}r.innerHTML=n.text,r.style.fontSize="14px",r.style.color=n.color||"#FFFFFF",this.state.text=n.text,n.delayClear&&setTimeout(function(){i.loadingClearText()},parseInt(n.delayClear))}}},{key:"loadingClearText",value:function(){if(document.getElementById("".concat(this.id,"-loading-item-0"))){var n=document.getElementById("".concat(this.id,"-loading-item-0")).childNodes;n.length>1?n[1].parentNode.removeChild(n[1]):n[0]&&n[0].parentNode.removeChild(n[0])}}},{key:"loadingClear",value:function(){if(document.getElementById("".concat(this.id,"-loading-item-0"))){for(var n=document.getElementById("".concat(this.id,"-loading-item-0")).childNodes,i=n.length-1;i>=0;i--)n[i].parentNode.removeChild(n[i]);document.getElementById("".concat(this.id,"-loading-id-0"))&&(document.getElementById("".concat(this.id,"-loading-id-0")).style.background="none"),document.getElementById("loading-icon")&&document.getElementById("loading-icon").parentNode.removeChild(document.getElementById("loading-icon"))}}},{key:"loadingEnd",value:function(){var n=document.getElementById("".concat(this.id,"-loading-item-0"));if(n){n.parentNode.removeChild(n);var i=document.getElementById("".concat(this.id,"-loading-id-0"));i&&i.children.length===0&&i.parentNode.removeChild(i)}document.getElementById("".concat(this.id,"-loading-item-0")).style.background="none"}}]),f}(),ts=function(){function f(u,n){fe(this,f),this.id=n,this.jSPlugin=u,this.timer=null,this.state={play:!1,loading:!1}}return dt(f,[{key:"default",value:function(n){var i=this,r="msgId";document.getElementById("".concat(this.id,"-").concat(r))&&document.getElementById("".concat(this.id,"-wrap")).removeChild(document.getElementById("".concat(this.id,"-").concat(r)));var a=document.createElement("div");a.id="".concat(this.id,"-").concat(r),a.style="position: absolute;top: 50%;left:calc(50% - ".concat(n.length*14/2,"px);padding: 4px 16px;background: #00000080;color: #FFFFFF;font-size: 14px"),a.innerHTML=n,document.getElementById("".concat(this.id,"-wrap")).appendChild(a),this.timer&&clearTimeout(this.timer),this.timer=setTimeout(function(){document.getElementById("".concat(i.id,"-wrap")).removeChild(document.getElementById("".concat(i.id,"-").concat(r)))},2e3)}}]),f}(),ns=[{moduleCode:"",detailCode:"405984",description:"",solution:"",updateTime:1559564188e3},{moduleCode:"",detailCode:"10035",description:"获取子账户AccessToken异常,子账户不存在或子账户不属于该开发者",solution:"",updateTime:1559551958e3},{moduleCode:"",detailCode:"1052674",description:"获取本地录像失败",solution:"",updateTime:1558579653e3},{moduleCode:"",detailCode:"395547",description:"",solution:"",updateTime:1557367296e3},{moduleCode:"",detailCode:"12",description:"",solution:"",updateTime:1557229476e3},{moduleCode:"",detailCode:"10052",description:"余额不足",solution:"",updateTime:1557121463e3},{moduleCode:"",detailCode:"20108",description:"当前用户和所添加用户不是好友关系",solution:"",updateTime:1556541725e3},{moduleCode:"",detailCode:"10009",description:"",solution:"",updateTime:1556422452e3},{moduleCode:"",detailCode:"320001",description:"通道不存在",solution:"请检查录像机的关联状态是否正常,没有摄像头的通道无法播放",updateTime:1556419044e3},{moduleCode:"",detailCode:"120001",description:"通道不存在",solution:"请检查录像机的关联状态是否正常,没有摄像头的通道无法播放",updateTime:155641903e4},{moduleCode:"",detailCode:"320049",description:"",solution:"",updateTime:1556272984e3},{moduleCode:"",detailCode:"380227",description:"",solution:"",updateTime:1556264379e3},{moduleCode:"",detailCode:"10033",description:"policy参数信息异常",solution:"",updateTime:1555922124e3},{moduleCode:"",detailCode:"10065",description:"weakAppKey 不属于accessToken对应的用户",solution:"",updateTime:1555497522e3},{moduleCode:"",detailCode:"100001",description:"",solution:"",updateTime:1555141776e3},{moduleCode:"",detailCode:"395558",description:"",solution:"",updateTime:1554987121e3},{moduleCode:"",detailCode:"70001",description:"智能家居买断用户设备受到限制,建议合理选择pagestart和pageSize",solution:"",updateTime:1554691023e3},{moduleCode:"",detailCode:"170001",description:"",solution:"",updateTime:1554691023e3},{moduleCode:"",detailCode:"1012",description:"重置失败",solution:"",updateTime:1554645841e3},{moduleCode:"",detailCode:"1043",description:"重置失败",solution:"",updateTime:1554645834e3},{moduleCode:"",detailCode:"60060",description:"直播功能未开通",solution:"通道未开通直播功能,请先开通直播",updateTime:1554346018e3},{moduleCode:"",detailCode:"380203",description:"",solution:"",updateTime:1554093666e3},{moduleCode:"",detailCode:"399048",description:"免费版并发数达到上限,请升级企业版使用多并发能力",solution:"升级成为企业版套餐即可取消并发数限制",updateTime:1553839878e3},{moduleCode:"",detailCode:"60007",description:"预置点个数超过最大值",solution:"",updateTime:1553671316e3},{moduleCode:"",detailCode:"1005",description:"",solution:"",updateTime:1553513701e3},{moduleCode:"",detailCode:"20605",description:"其他用户正在认证中",solution:"",updateTime:1552976317e3},{moduleCode:"",detailCode:"90004",description:"当前型号设备暂时不支持AI任务:CS-C3W-3B1WFR-YGL",solution:"",updateTime:1552898525e3},{moduleCode:"",detailCode:"60046",description:"添加的设备的IP和本设备的IP冲突",solution:"",updateTime:1552872372e3},{moduleCode:"",detailCode:"3",description:"修改视频清晰度失败!",solution:"",updateTime:1552440229e3},{moduleCode:"",detailCode:"1013",description:"",solution:"",updateTime:1552035069e3},{moduleCode:"",detailCode:"370007",description:"",solution:"",updateTime:1551852327e3},{moduleCode:"",detailCode:"-1",description:"",solution:"",updateTime:1551752889e3},{moduleCode:"",detailCode:"30005",description:"弱账户不存在",solution:"",updateTime:1551422358e3},{moduleCode:"",detailCode:"90006",description:"用户操作AI任务受限",solution:"",updateTime:155107332e4},{moduleCode:"",detailCode:"60203",description:"未开通相关服务",solution:"",updateTime:155062307e4},{moduleCode:"",detailCode:"10002",description:"accessToken过期或异常",solution:"",updateTime:1550300346e3},{moduleCode:"",detailCode:"380339",description:"",solution:"",updateTime:1549889458e3},{moduleCode:"",detailCode:"90002",description:"AI任务设备配置数达到上限:3",solution:"",updateTime:1549071664e3},{moduleCode:"",detailCode:"380008",description:"",solution:"",updateTime:1549005979e3},{moduleCode:"",detailCode:"320227",description:"",solution:"",updateTime:1548739731e3},{moduleCode:"",detailCode:"60059",description:"ezopen地址均不可用",solution:"",updateTime:154839535e4},{moduleCode:"",detailCode:"10005",description:"appKey异常",solution:"",updateTime:1548317858e3},{moduleCode:"",detailCode:"60045",description:"添加的设备的IP和其他通道的IP冲突",solution:"",updateTime:1548155085e3},{moduleCode:"",detailCode:"60047",description:"码流类型不支持",solution:"",updateTime:1547962108e3},{moduleCode:"",detailCode:"60041",description:"添加的设备被其他设备关联或响应超时",solution:"",updateTime:154796098e4},{moduleCode:"",detailCode:"110029",description:"个人用户接口调用频率超限",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1547606859e3},{moduleCode:"",detailCode:"380355",description:"设备直连推流异常结束",solution:"",updateTime:1547106294e3},{moduleCode:"",detailCode:"320081",description:"",solution:"",updateTime:1547106279e3},{moduleCode:"",detailCode:"60035",description:"购买云存储服务失败",solution:"",updateTime:1547026959e3},{moduleCode:"",detailCode:"90005",description:"设备已存在:C75714141",solution:"",updateTime:1546940622e3},{moduleCode:"",detailCode:"1053445",description:"该时间段没有录像片段",solution:"",updateTime:1546935727e3},{moduleCode:"",detailCode:"90007",description:"设备未加入到AI任务",solution:"",updateTime:1546932948e3},{moduleCode:"",detailCode:"326000",description:"",solution:"",updateTime:1546823143e3},{moduleCode:"",detailCode:"1021",description:"重置失败",solution:"",updateTime:1546781152e3},{moduleCode:"",detailCode:"2001",description:"删除设备失败!",solution:"",updateTime:1546422886e3},{moduleCode:"",detailCode:"380425",description:"",solution:"",updateTime:1546407694e3},{moduleCode:"",detailCode:"120097",description:"",solution:"",updateTime:1546085995e3},{moduleCode:"",detailCode:"10059",description:"requestId已存在",solution:"",updateTime:1545824509e3},{moduleCode:"",detailCode:"1154723",description:"",solution:"",updateTime:1545795209e3},{moduleCode:"",detailCode:"60043",description:"添加的设备超出最大数量",solution:"",updateTime:1545493607e3},{moduleCode:"",detailCode:"1152677",description:"",solution:"",updateTime:1545313404e3},{moduleCode:"",detailCode:"20097",description:"设备添加异常,设备验证码为ABCDEF或设备被N1,R1关联",solution:"",updateTime:1545310795e3},{moduleCode:"",detailCode:"10060",description:"设备不支持该云存储类型",solution:"",updateTime:1545309064e3},{moduleCode:"",detailCode:"20102",description:"无相应邀请信息,无法接受邀请",solution:"",updateTime:1545204966e3},{moduleCode:"",detailCode:"10053",description:"云存储开通中",solution:"",updateTime:1545100293e3},{moduleCode:"",detailCode:"20401",description:"用户云空间信息不存在",solution:"",updateTime:154501788e4},{moduleCode:"",detailCode:"20600",description:"临时密码数已达上限",solution:"",updateTime:1544873457e3},{moduleCode:"",detailCode:"901",description:"",solution:"",updateTime:1544693519e3},{moduleCode:"",detailCode:"60210",description:"图片数据错误",solution:"",updateTime:1544604457e3},{moduleCode:"",detailCode:"10013",description:"您的应用没有权限调用",solution:"",updateTime:1544416237e3},{moduleCode:"",detailCode:"70007",description:"授权码不存在",solution:"",updateTime:1544179533e3},{moduleCode:"",detailCode:"10015",description:"授权地址不存在",solution:"",updateTime:154416324e4},{moduleCode:"",detailCode:"320423",description:"",solution:"",updateTime:1544100685e3},{moduleCode:"",detailCode:"370009",description:"",solution:"",updateTime:1544077151e3},{moduleCode:"",detailCode:"10031",description:"子账户或萤石用户没有权限",solution:"",updateTime:1543990462e3},{moduleCode:"",detailCode:"10055",description:"设备不支持试用云存储服务",solution:"",updateTime:1543986292e3},{moduleCode:"",detailCode:"60042",description:"添加的设备密码错误",solution:"",updateTime:1543710913e3},{moduleCode:"",detailCode:"60082",description:"设备正在响应本次声源定位",solution:"",updateTime:1543647426e3},{moduleCode:"",detailCode:"10056",description:"设备不支持云存储服务转出",solution:"",updateTime:1543558342e3},{moduleCode:"",detailCode:"20104",description:"好友不存在",solution:"",updateTime:1543492403e3},{moduleCode:"",detailCode:"20111",description:"好友不是等待验证状态,无法接受邀请",solution:"",updateTime:1543492365e3},{moduleCode:"",detailCode:"20107",description:"不能添加自己为好友",solution:"",updateTime:1543480986e3},{moduleCode:"",detailCode:"1",description:"设备返回其他错误",solution:"",updateTime:1543459921e3},{moduleCode:"",detailCode:"60084",description:"当前正在关闭隐私遮蔽",solution:"",updateTime:1543456515e3},{moduleCode:"",detailCode:"380255",description:"",solution:"",updateTime:1543411652e3},{moduleCode:"",detailCode:"20015",description:"设备不支持",solution:"",updateTime:1543390936e3},{moduleCode:"",detailCode:"30003",description:"手机验证码错误",solution:"",updateTime:1543389137e3},{moduleCode:"",detailCode:"20615",description:"锁用户已存在",solution:"",updateTime:1543388325e3},{moduleCode:"",detailCode:"60061",description:"账户流量已超出或未购买,限制开通",solution:"",updateTime:1543372581e3},{moduleCode:"",detailCode:"60020",description:"设备不支持该信令",solution:"",updateTime:1543321636e3},{moduleCode:"",detailCode:"320146",description:"",solution:"",updateTime:1543318472e3},{moduleCode:"",detailCode:"60018",description:"设备升级失败",solution:"",updateTime:1543304928e3},{moduleCode:"",detailCode:"60044",description:"添加的设备网络不可达超时",solution:"",updateTime:1543304102e3},{moduleCode:"",detailCode:"20619",description:"主用户无法删除",solution:"",updateTime:1543290219e3},{moduleCode:"",detailCode:"20608",description:"锁用户不存在",solution:"",updateTime:154328195e4},{moduleCode:"",detailCode:"20609",description:"设备响应超时,门锁通信故障或者电量不足,请重试.",solution:"",updateTime:1543281601e3},{moduleCode:"",detailCode:"1049954",description:"升级设备失败",solution:"",updateTime:1543279264e3},{moduleCode:"",detailCode:"60009",description:"正在调用预置点",solution:"",updateTime:1543238114e3},{moduleCode:"",detailCode:"1052677",description:"获取本地录像失败",solution:"",updateTime:1543207604e3},{moduleCode:"",detailCode:"327000",description:"",solution:"",updateTime:1543196609e3},{moduleCode:"",detailCode:"20021",description:"设备在线,未被用户添加",solution:"",updateTime:1543193436e3},{moduleCode:"",detailCode:"20202",description:"操作留言信息失败",solution:"",updateTime:1543191562e3},{moduleCode:"",detailCode:"1052678",description:"获取本地录像失败",solution:"",updateTime:1543132218e3},{moduleCode:"",detailCode:"1054723",description:"格式化设备失败",solution:"",updateTime:1543129833e3},{moduleCode:"",detailCode:"20109",description:"对应分享不存在",solution:"",updateTime:1543129111e3},{moduleCode:"",detailCode:"60026",description:"设备处于隐私遮蔽状态",solution:"",updateTime:1543110403e3},{moduleCode:"",detailCode:"60083",description:"当前正在开启隐私遮蔽",solution:"",updateTime:1543071148e3},{moduleCode:"",detailCode:"60001",description:"用户无云台控制权限",solution:"",updateTime:1543059167e3},{moduleCode:"",detailCode:"2003",description:"设备不在线",solution:"",updateTime:1543051046e3},{moduleCode:"",detailCode:"-24",description:"设置设备enable错误",solution:"",updateTime:1543042701e3},{moduleCode:"",detailCode:"10018",description:"",solution:"",updateTime:1543041564e3},{moduleCode:"",detailCode:"20103",description:"好友已存在",solution:"",updateTime:154303843e4},{moduleCode:"",detailCode:"70010",description:"授权异常请重试",solution:"",updateTime:154303559e4},{moduleCode:"",detailCode:"60056",description:"删除设备失败",solution:"",updateTime:1543031275e3},{moduleCode:"",detailCode:"60040",description:"添加的设备不在同一局域网",solution:"",updateTime:154303121e4},{moduleCode:"",detailCode:"60019",description:"加密已开启",solution:"",updateTime:1543029931e3},{moduleCode:"",detailCode:"1054722",description:"格式化设备失败",solution:"",updateTime:1543028537e3},{moduleCode:"",detailCode:"20016",description:"当前设备正在格式化",solution:"",updateTime:1543028537e3},{moduleCode:"",detailCode:"10024",description:"透明通道权限校验不通过",solution:"",updateTime:154302554e4},{moduleCode:"",detailCode:"6002",description:"删除设备失败!",solution:"",updateTime:1543025026e3},{moduleCode:"",detailCode:"1011",description:"验证码错误!",solution:"",updateTime:1543016865e3},{moduleCode:"",detailCode:"60032",description:"卡密已使用",solution:"",updateTime:1543006668e3},{moduleCode:"",detailCode:"10034",description:"子账号已存在",solution:"",updateTime:1542989194e3},{moduleCode:"",detailCode:"20301",description:"根据uuid查询联动信息不存在",solution:"",updateTime:1542988651e3},{moduleCode:"",detailCode:"1041",description:"获取验证码过于频繁",solution:"",updateTime:1542980953e3},{moduleCode:"",detailCode:"10012",description:"该appkey下已绑定重复的phone!",solution:"",updateTime:15429808e5},{moduleCode:"",detailCode:"1008",description:"phone不合法!",solution:"",updateTime:1542979812e3},{moduleCode:"",detailCode:"60023",description:"订阅操作失败",solution:"",updateTime:1542979006e3},{moduleCode:"",detailCode:"5",description:"设备返回其他错误",solution:"",updateTime:1542977828e3},{moduleCode:"",detailCode:"60006",description:"云台当前操作失败",solution:"",updateTime:1542977598e3},{moduleCode:"",detailCode:"131",description:"修改视频清晰度失败!",solution:"",updateTime:1542977246e3},{moduleCode:"",detailCode:"10019",description:"密码错误",solution:"",updateTime:1542976628e3},{moduleCode:"",detailCode:"10004",description:"用户不存在",solution:"",updateTime:1542976268e3},{moduleCode:"",detailCode:"20201",description:"操作报警信息失败",solution:"",updateTime:1542975906e3},{moduleCode:"",detailCode:"20024",description:"设备不在线,已经被别的用户添加",solution:"",updateTime:1542975858e3},{moduleCode:"",detailCode:"60004",description:"设备云台旋转达到左限位",solution:"",updateTime:1542975207e3},{moduleCode:"",detailCode:"1052679",description:"修改视频清晰度失败!",solution:"",updateTime:1542974886e3},{moduleCode:"",detailCode:"20031",description:"请在萤石客户端关闭终端绑定",solution:"",updateTime:1542974756e3},{moduleCode:"",detailCode:"1053825",description:"获取本地录像失败",solution:"",updateTime:1542974692e3},{moduleCode:"",detailCode:"60011",description:"预置点不存在",solution:"",updateTime:1542974414e3},{moduleCode:"",detailCode:"1052936",description:"修改视频清晰度失败!",solution:"",updateTime:154297439e4},{moduleCode:"",detailCode:"1016",description:"",solution:"",updateTime:1542974273e3},{moduleCode:"",detailCode:"10032",description:"子账号不存在",solution:"",updateTime:1542973906e3},{moduleCode:"",detailCode:"20013",description:"设备已被别人添加",solution:"",updateTime:1542973817e3},{moduleCode:"",detailCode:"50000",description:"服务器错误!",solution:"",updateTime:1542973801e3},{moduleCode:"",detailCode:"60010",description:"该预置点已经是当前位置",solution:"",updateTime:15429738e5},{moduleCode:"",detailCode:"60003",description:"设备云台旋转达到下限位",solution:"",updateTime:154297377e4},{moduleCode:"",detailCode:"4",description:"设备返回其他错误",solution:"",updateTime:1542973755e3},{moduleCode:"",detailCode:"60016",description:"加密未开启,无需关闭",solution:"",updateTime:1542973753e3},{moduleCode:"",detailCode:"60002",description:"设备云台旋转达到上限位",solution:"",updateTime:1542973742e3},{moduleCode:"",detailCode:"20023",description:"设备不在线,未被用户添加",solution:"",updateTime:1542973685e3},{moduleCode:"",detailCode:"10008",description:"",solution:"",updateTime:1542973676e3},{moduleCode:"",detailCode:"20010",description:"设备验证码错误",solution:"",updateTime:1542973658e3},{moduleCode:"",detailCode:"60005",description:"设备云台旋转达到右限位",solution:"",updateTime:1542973657e3},{moduleCode:"",detailCode:"20017",description:"设备已经被自己添加",solution:"",updateTime:1542973648e3},{moduleCode:"",detailCode:"20020",description:"设备在线,已经被自己添加",solution:"",updateTime:1542973533e3},{moduleCode:"",detailCode:"20029",description:"设备不在线,已经被自己添加",solution:"",updateTime:154297353e4},{moduleCode:"",detailCode:"10014",description:"APPKEY下对应的第三方userId和phone未绑定!",solution:"",updateTime:1542973499e3},{moduleCode:"",detailCode:"20002",description:"设备不存在",solution:"",updateTime:1542973499e3},{moduleCode:"",detailCode:"10030",description:"appkey和appsecret不匹配",solution:"",updateTime:154297349e4},{moduleCode:"",detailCode:"20022",description:"设备在线,已经被别的用户添加",solution:"",updateTime:1542973486e3},{moduleCode:"",detailCode:"20008",description:"设备响应超时",solution:"",updateTime:1542973484e3},{moduleCode:"",detailCode:"20032",description:"该用户下通道不存在",solution:"",updateTime:1542973481e3},{moduleCode:"",detailCode:"20006",description:"网络异常",solution:"",updateTime:1542973475e3},{moduleCode:"",detailCode:"20014",description:"deviceSerial不合法!",solution:"",updateTime:1542973454e3},{moduleCode:"",detailCode:"20007",description:"设备不在线",solution:"",updateTime:1542973454e3},{moduleCode:"",detailCode:"20018",description:"该用户不拥有该设备",solution:"",updateTime:1542973453e3},{moduleCode:"",detailCode:"10010",description:"",solution:"",updateTime:1542973453e3},{moduleCode:"",detailCode:"10011",description:"未绑定!",solution:"",updateTime:1542973453e3},{moduleCode:"",detailCode:"20001",description:"通道不存在!",solution:"",updateTime:1542973452e3},{moduleCode:"",detailCode:"10017",description:"appKey不存在",solution:"",updateTime:1542973451e3},{moduleCode:"",detailCode:"400259",description:"",solution:"",updateTime:1542875643e3},{moduleCode:"",detailCode:"400004",description:"",solution:"",updateTime:1542873364e3},{moduleCode:"",detailCode:"3840",description:"",solution:"",updateTime:154186e7},{moduleCode:"",detailCode:"-1017",description:"",solution:"",updateTime:1541733663e3},{moduleCode:"",detailCode:"320025",description:"",solution:"",updateTime:1541078281e3},{moduleCode:"",detailCode:"320024",description:"",solution:"",updateTime:1540801374e3},{moduleCode:"",detailCode:"321002",description:"",solution:"",updateTime:1540631734e3},{moduleCode:"",detailCode:"321000",description:"",solution:"",updateTime:1540609178e3},{moduleCode:"",detailCode:"321022",description:"",solution:"",updateTime:1540548345e3},{moduleCode:"",detailCode:"321016",description:"",solution:"",updateTime:1540287187e3},{moduleCode:"",detailCode:"320023",description:"",solution:"",updateTime:1539825993e3},{moduleCode:"",detailCode:"-1016",description:"",solution:"",updateTime:1539584931e3},{moduleCode:"",detailCode:"8",description:"",solution:"",updateTime:1539391812e3},{moduleCode:"",detailCode:"1075127593",description:"",solution:"",updateTime:1538959251e3},{moduleCode:"",detailCode:"380421",description:"",solution:"",updateTime:1537288465e3},{moduleCode:"",detailCode:"322000",description:"麦克风权限未开启",solution:"",updateTime:1536820136e3},{moduleCode:"",detailCode:"1152678",description:"",solution:"",updateTime:1536738348e3},{moduleCode:"",detailCode:"320047",description:"",solution:"",updateTime:1536664472e3},{moduleCode:"",detailCode:"327006",description:"",solution:"",updateTime:153613612e4},{moduleCode:"",detailCode:"1074807593",description:"",solution:"",updateTime:1536135035e3},{moduleCode:"",detailCode:"320291",description:"",solution:"",updateTime:1536110836e3},{moduleCode:"",detailCode:"320045",description:"",solution:"",updateTime:1535963775e3},{moduleCode:"",detailCode:"370004",description:"",solution:"",updateTime:1535883699e3},{moduleCode:"",detailCode:"1149954",description:"",solution:"",updateTime:1535700674e3},{moduleCode:"",detailCode:"320053",description:"",solution:"",updateTime:1535681079e3},{moduleCode:"",detailCode:"400000",description:"",solution:"",updateTime:1535532332e3},{moduleCode:"",detailCode:"110028",description:"个人版抓图接口日调用次数超出限制",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1535348756e3},{moduleCode:"",detailCode:"110027",description:"个人版帐号数量超出安全限制,无法调用",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1535348734e3},{moduleCode:"",detailCode:"110026",description:"设备数量超出个人版限制,当前设备无法操作",solution:"请升级企业版:https://open.ys7.com/price.html",updateTime:1535348588e3},{moduleCode:"",detailCode:"100000",description:"",solution:"",updateTime:1534980008e3},{moduleCode:"",detailCode:"324004",description:"",solution:"",updateTime:1534927762e3},{moduleCode:"",detailCode:"360104",description:"",solution:"",updateTime:1534761006e3},{moduleCode:"",detailCode:"320204",description:"",solution:"",updateTime:1534584221e3},{moduleCode:"",detailCode:"380001",description:"",solution:"",updateTime:1534404715e3},{moduleCode:"",detailCode:"380204",description:"",solution:"",updateTime:1534401682e3},{moduleCode:"",detailCode:"328006",description:"",solution:"",updateTime:1534144407e3},{moduleCode:"",detailCode:"321703",description:"",solution:"",updateTime:1534127274e3},{moduleCode:"",detailCode:"321510",description:"",solution:"",updateTime:1533428892e3},{moduleCode:"",detailCode:"321006",description:"",solution:"",updateTime:1533036916e3},{moduleCode:"",detailCode:"50009",description:"",solution:"",updateTime:1532078548e3},{moduleCode:"",detailCode:"50007",description:"",solution:"",updateTime:153199172e4},{moduleCode:"",detailCode:"50018",description:"",solution:"",updateTime:1531912829e3},{moduleCode:"",detailCode:"380451",description:"",solution:"",updateTime:15316157e5},{moduleCode:"",detailCode:"380336",description:"",solution:"",updateTime:1531231721e3},{moduleCode:"",detailCode:"360020",description:"",solution:"",updateTime:1531117554e3},{moduleCode:"",detailCode:"380418",description:"",solution:"",updateTime:153110707e4},{moduleCode:"",detailCode:"1153445",description:"设备在该时间段内没有录像",solution:"",updateTime:1530944007e3},{moduleCode:"",detailCode:"110007",description:"调用接口总次数达到上限",solution:"请升级企业版,获取更高能力",updateTime:1530935584e3},{moduleCode:"",detailCode:"360019",description:"",solution:"",updateTime:1530869771e3},{moduleCode:"",detailCode:"360100",description:"",solution:"",updateTime:1530786188e3},{moduleCode:"",detailCode:"380042",description:"",solution:"",updateTime:1530775199e3},{moduleCode:"",detailCode:"320355",description:"",solution:"",updateTime:1530716074e3},{moduleCode:"",detailCode:"100003",description:"",solution:"",updateTime:1530232541e3},{moduleCode:"",detailCode:"371026",description:"",solution:"",updateTime:15301926e5},{moduleCode:"",detailCode:"102",description:"",solution:"",updateTime:1529895641e3},{moduleCode:"",detailCode:"380201",description:"",solution:"",updateTime:1529740929e3},{moduleCode:"",detailCode:"320054",description:"",solution:"",updateTime:1529544875e3},{moduleCode:"",detailCode:"500101",description:"",solution:"",updateTime:1529485953e3},{moduleCode:"",detailCode:"321001",description:"",solution:"",updateTime:1529411048e3},{moduleCode:"",detailCode:"321508",description:"",solution:"",updateTime:1529393279e3},{moduleCode:"",detailCode:"405991",description:"",solution:"",updateTime:1529380238e3},{moduleCode:"",detailCode:"380461",description:"",solution:"",updateTime:1529130941e3},{moduleCode:"",detailCode:"-1019",description:"",solution:"",updateTime:1529057245e3},{moduleCode:"",detailCode:"322009",description:"",solution:"",updateTime:1528965717e3},{moduleCode:"",detailCode:"324005",description:"",solution:"",updateTime:1528950153e3},{moduleCode:"",detailCode:"325000",description:"",solution:"",updateTime:1528947143e3},{moduleCode:"",detailCode:"326032",description:"",solution:"",updateTime:1528872971e3},{moduleCode:"",detailCode:"325032",description:"",solution:"",updateTime:1528863189e3},{moduleCode:"",detailCode:"328000",description:"",solution:"",updateTime:1528794505e3},{moduleCode:"",detailCode:"53",description:"",solution:"",updateTime:1528693249e3},{moduleCode:"",detailCode:"-1020",description:"",solution:"",updateTime:152849944e4},{moduleCode:"",detailCode:"329032",description:"",solution:"",updateTime:1528446301e3},{moduleCode:"",detailCode:"-1202",description:"",solution:"",updateTime:152843982e4},{moduleCode:"",detailCode:"2",description:"",solution:"",updateTime:1528434175e3},{moduleCode:"",detailCode:"1152936",description:"",solution:"",updateTime:1528345986e3},{moduleCode:"",detailCode:"328011",description:"",solution:"",updateTime:15283386e5},{moduleCode:"",detailCode:"28",description:"",solution:"",updateTime:152833753e4},{moduleCode:"",detailCode:"320356",description:"",solution:"",updateTime:1528188693e3},{moduleCode:"",detailCode:"320357",description:"",solution:"",updateTime:1528188517e3},{moduleCode:"",detailCode:"405800",description:"",solution:"",updateTime:1528168732e3},{moduleCode:"",detailCode:"405996",description:"",solution:"",updateTime:1528168686e3},{moduleCode:"",detailCode:"380357",description:"",solution:"",updateTime:1528011565e3},{moduleCode:"",detailCode:"328022",description:"",solution:"",updateTime:1527929065e3},{moduleCode:"",detailCode:"380003",description:"",solution:"",updateTime:1527927819e3},{moduleCode:"",detailCode:"50004",description:"",solution:"",updateTime:1527770643e3},{moduleCode:"",detailCode:"50011",description:"",solution:"",updateTime:1527770635e3},{moduleCode:"",detailCode:"370017",description:"",solution:"",updateTime:1527739514e3},{moduleCode:"",detailCode:"327032",description:"",solution:"",updateTime:1527726704e3},{moduleCode:"",detailCode:"324001",description:"",solution:"",updateTime:1527681892e3},{moduleCode:"",detailCode:"405997",description:"",solution:"",updateTime:1527653408e3},{moduleCode:"",detailCode:"405995",description:"",solution:"",updateTime:1527647283e3},{moduleCode:"",detailCode:"1153825",description:"",solution:"",updateTime:1527601747e3},{moduleCode:"",detailCode:"328002",description:"",solution:"",updateTime:1527495292e3},{moduleCode:"",detailCode:"1152679",description:"",solution:"",updateTime:1527486665e3},{moduleCode:"",detailCode:"380356",description:"",solution:"",updateTime:1527125669e3},{moduleCode:"",detailCode:"328032",description:"",solution:"",updateTime:1527069382e3},{moduleCode:"",detailCode:"22",description:"",solution:"",updateTime:1527049826e3},{moduleCode:"",detailCode:"9",description:"",solution:"",updateTime:1527006778e3},{moduleCode:"",detailCode:"89",description:"",solution:"",updateTime:1526622784e3},{moduleCode:"",detailCode:"328016",description:"",solution:"",updateTime:1526452365e3},{moduleCode:"",detailCode:"368005",description:"",solution:"",updateTime:1525921264e3},{moduleCode:"",detailCode:"0",description:"",solution:"",updateTime:1525920242e3},{moduleCode:"",detailCode:"380006",description:"",solution:"",updateTime:1525918868e3},{moduleCode:"",detailCode:"310",description:"",solution:"",updateTime:1525834436e3},{moduleCode:"",detailCode:"360011",description:"",solution:"",updateTime:1525681552e3},{moduleCode:"",detailCode:"170005",description:"",solution:"",updateTime:15254339e5},{moduleCode:"",detailCode:"50023",description:"",solution:"",updateTime:1525403338e3},{moduleCode:"",detailCode:"100131",description:"",solution:"",updateTime:1525229691e3},{moduleCode:"",detailCode:"-1018",description:"",solution:"",updateTime:1525142341e3},{moduleCode:"",detailCode:"362026",description:"",solution:"",updateTime:1524882677e3},{moduleCode:"",detailCode:"368007",description:"",solution:"",updateTime:1524832269e3},{moduleCode:"",detailCode:"54",description:"",solution:"",updateTime:1524793646e3},{moduleCode:"",detailCode:"1154722",description:"",solution:"",updateTime:1524620807e3},{moduleCode:"",detailCode:"320229",description:"",solution:"",updateTime:1524551682e3},{moduleCode:"",detailCode:"360012",description:"",solution:"",updateTime:1524472094e3},{moduleCode:"",detailCode:"380229",description:"",solution:"",updateTime:1524110755e3},{moduleCode:"",detailCode:"360016",description:"",solution:"",updateTime:1523933518e3},{moduleCode:"",detailCode:"-1003",description:"",solution:"",updateTime:1523584804e3},{moduleCode:"",detailCode:"410026",description:"",solution:"",updateTime:152351743e4},{moduleCode:"",detailCode:"360102",description:"TTS初始化失败",solution:"",updateTime:1523503528e3},{moduleCode:"",detailCode:"360013",description:"设备开启了隐私保护",solution:"",updateTime:1523503507e3},{moduleCode:"",detailCode:"360010",description:"设备正在对讲中",solution:"",updateTime:1523503491e3},{moduleCode:"",detailCode:"360007",description:"TTS关闭了与客户端的连接",solution:"",updateTime:1523503475e3},{moduleCode:"",detailCode:"360006",description:"客户端接收发生错误",solution:"",updateTime:1523503457e3},{moduleCode:"",detailCode:"360005",description:"客户端发送的消息错误",solution:"",updateTime:1523503437e3},{moduleCode:"",detailCode:"360004",description:"TTS内部发生错误",solution:"",updateTime:1523503421e3},{moduleCode:"",detailCode:"360003",description:"TTS的设备端发生错误",solution:"",updateTime:1523503397e3},{moduleCode:"",detailCode:"360002",description:"对讲发起超时",solution:"",updateTime:1523503376e3},{moduleCode:"",detailCode:"360001",description:"客户端请求超时",solution:"",updateTime:1523503357e3},{moduleCode:"",detailCode:"320077",description:"",solution:"",updateTime:1523444274e3},{moduleCode:"",detailCode:"370047",description:"",solution:"",updateTime:152344048e4},{moduleCode:"",detailCode:"100002",description:"",solution:"",updateTime:1523413964e3},{moduleCode:"",detailCode:"-1004",description:"",solution:"",updateTime:1523336653e3},{moduleCode:"",detailCode:"380000",description:"",solution:"",updateTime:1523180856e3},{moduleCode:"",detailCode:"380213",description:"",solution:"",updateTime:1523180623e3},{moduleCode:"",detailCode:"380101",description:"",solution:"",updateTime:1522834231e3},{moduleCode:"",detailCode:"50047",description:"",solution:"",updateTime:1522833243e3},{moduleCode:"",detailCode:"-999",description:"",solution:"",updateTime:1522831034e3},{moduleCode:"",detailCode:"320418",description:"",solution:"",updateTime:1522829072e3},{moduleCode:"",detailCode:"-1009",description:"",solution:"",updateTime:1522746247e3},{moduleCode:"",detailCode:"320209",description:"",solution:"",updateTime:1522744395e3},{moduleCode:"",detailCode:"368006",description:"",solution:"",updateTime:15227443e5},{moduleCode:"",detailCode:"369003",description:"",solution:"",updateTime:1522736355e3},{moduleCode:"",detailCode:"405989",description:"",solution:"",updateTime:1522726571e3},{moduleCode:"",detailCode:"-1012",description:"",solution:"",updateTime:1522726203e3},{moduleCode:"",detailCode:"322016",description:"",solution:"",updateTime:1522722918e3},{moduleCode:"",detailCode:"500103",description:"",solution:"",updateTime:1522655556e3},{moduleCode:"",detailCode:"405999",description:"",solution:"",updateTime:1522654716e3},{moduleCode:"",detailCode:"321032",description:"",solution:"",updateTime:1522647732e3},{moduleCode:"",detailCode:"381101",description:"",solution:"",updateTime:1522392414e3},{moduleCode:"",detailCode:"399999",description:"",solution:"",updateTime:1522379834e3},{moduleCode:"",detailCode:"380103",description:"",solution:"",updateTime:1522312724e3},{moduleCode:"",detailCode:"360014",description:"",solution:"",updateTime:1522304341e3},{moduleCode:"",detailCode:"-1005",description:"",solution:"",updateTime:1522288195e3},{moduleCode:"",detailCode:"100005",description:"",solution:"",updateTime:1522218849e3},{moduleCode:"",detailCode:"100004",description:"",solution:"",updateTime:1522209053e3},{moduleCode:"",detailCode:"106002",description:"",solution:"",updateTime:15222062e5},{moduleCode:"",detailCode:"410030",description:"",solution:"",updateTime:1522162252e3},{moduleCode:"",detailCode:"-1002",description:"",solution:"",updateTime:152215069e4},{moduleCode:"",detailCode:"-1200",description:"",solution:"",updateTime:1522139025e3},{moduleCode:"",detailCode:"-1001",description:"",solution:"",updateTime:1522046436e3},{moduleCode:"",detailCode:"-1011",description:"",solution:"",updateTime:1522045931e3},{moduleCode:"",detailCode:"381102",description:"",solution:"",updateTime:1522044953e3},{moduleCode:"",detailCode:"381103",description:"",solution:"",updateTime:1522044953e3},{moduleCode:"",detailCode:"391205",description:"vtdu解析服务器ip失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391206",description:"vtdu描述符select失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391207",description:"vtdu文件描述符不在可读中",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391208",description:"vtdu网络发生错误getsockopt",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"391209",description:"vtdu描述符select超时",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395000",description:"cas回复信令,发现内存已经释放(和设备之间异常断开)",msg:"播放失败请重试",solution:"检查设备网络;刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395400",description:"私有化协议vtm检测私有化协议中码流类型小于0或者设备序列号为空等非法参数场景返回(app不重试取流)",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395402",description:"回放找不到录像文件",msg:"回放找不到录像文件,本地存储请检查存储卡是否接触良好",solution:"检查是否有存储卡并且接触良好",updateTime:1522034841e3},{moduleCode:"",detailCode:"395403",description:"操作码或信令密钥与设备不匹配",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395404",description:"设备不在线",solution:"检查设备网络;重启设备接入萤石云",msg:"设备不在线,请检查设备网络或重启设备接入萤石云",updateTime:1522034841e3},{moduleCode:"",detailCode:"395405",description:"流媒体向设备发送或接受信令超时/cas响应超时",msg:"播放失败,请检查设备网络或重启设备",solution:"检查设备网络;重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"395406",description:"token失效",msg:"播放失败请重试或重启设备",solution:"刷新重试或者重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"395407",description:"客户端的URL格式错误",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395409",description:"预览开启隐私保护",msg:"播放失败请关闭隐私遮蔽",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395410",description:"设备达到最大连接数",solution:"请升级设备固件版本",updateTime:1522034841e3},{moduleCode:"",detailCode:"395411",description:"token无权限",msg:"播放失败",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395412",description:"session不存在",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395413",description:"验证token的他异常(不具体) ",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395415",description:"设备通道错",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395416",description:"设备资源受限",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395451",description:"设备不支持的码流类型",msg:"播放失败请重试或切换设备码流",solution:"刷新重试或者切换到高清模式",updateTime:1522034841e3},{moduleCode:"",detailCode:"395452",description:"设备链接流媒体服务器失败",msg:"播放失败,请检查设备网络或重启设备或重新加载",solution:"检查设备网络,重启设备,刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395454",description:"流媒体中关于设备取流会话不存在",msg:"播放失败请重试",solution:"流媒体中关于设备取流会话不存在",updateTime:152222018e4},{moduleCode:"",detailCode:"395455",description:"设备通道未关联",msg:"播放失败,请检查设备通道是否关联",solution:"检查设备通道是否关联",updateTime:152222018e4},{moduleCode:"",detailCode:"395456",description:"设备通道关联设备不在线",msg:"播放失败,请检查设备通道是否上线",solution:"检查设备通道是否上线",updateTime:152222018e4},{moduleCode:"",detailCode:"395457",description:"客户端不支持端到端加密",msg:"播放失败",solution:"客户端不支持端到端加密",updateTime:152222018e4},{moduleCode:"",detailCode:"395458",description:"设备不支持当前并发ECDH密",msg:"客户端不支持端到端加密",solution:"设备不支持当前并发ECDH密",updateTime:152222018e4},{moduleCode:"",detailCode:"395459",description:"VTDU 处理ECDH 加密失败",msg:"播放失败",solution:"VTDU 处理ECDH 加密失败",updateTime:152222018e4},{moduleCode:"",detailCode:"395460",description:"流媒体中关于设备取流会话不存在",msg:"播放失败请重试",solution:"流媒体中关于设备取流会话不存在",updateTime:152222018e4},{moduleCode:"",detailCode:"395492",description:"设备不支持的命令",msg:"操作失败,设备不支持",solution:"",updateTime:152222018e4},{moduleCode:"",detailCode:"395500",description:"服务器处理失败",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395501",description:"流媒体vtdu达到最大负载,请扩容",msg:"播放失败请重试",solution:"服务器负载达到上限,请稍后重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395503",description:"vtm返回分配vtdu失败",msg:"播放失败请重试",solution:"vtdu服务异常,请请稍后重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395504",description:"流媒体vtdu达到最大负载",msg:"播放失败请重试",solution:"服务器负载达到上限,请稍后重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395505",description:"vtm ecdh解密失败",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395506",description:"vtm 返回IPC不支持取流(需要IPC添加NVR后支持)",msg:"播放失败,请绑定NVR使用",solution:"IPC绑定NVR使用",updateTime:1522034841e3},{moduleCode:"",detailCode:"395544",description:"设备返回无视频源",msg:"播放失败,请检查设备接触情况",solution:"设备是否接触良好; 如果一直无法解决,请联系技术支持",updateTime:1522034841e3},{moduleCode:"",detailCode:"395545",description:"视频分享时间已经结束",msg:"视频分享时间已结束",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395546",description:"vtdu返回达到取流并发路数限制",msg:"并发上限,请升级为企业版",solution:"请升级为企业版,放开并发限制",updateTime:1522034841e3},{moduleCode:"",detailCode:"395547",description:"vtdu返回开放平台用户并发限制",msg:"并发上限,请升级为企业版",solution:"请确定开放平台用户预览是否超过用户并发数量限制",updateTime:1522034841e3},{moduleCode:"",detailCode:"395556",description:"ticket校验失败",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395557",description:"回放服务器等待流头超时",msg:"播放失败请重试",solution:"刷新重试,检测设备网络,重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"395558",description:"查找录像开始时间错误",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395560",description:"群组分享取流二次验证失败",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395561",description:"分享群组用户被锁住",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395562",description:"群组分享用户权限变更",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395563",description:"认证服务连接失败",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395564",description:"认证超时",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395566",description:"不在分享时间内预览",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395567",description:"分享通道被锁定",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395568",description:"未找到认证类型",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395569",description:"认证返回的参数异常",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395600",description:"分享设备不在分享时间内",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395601",description:"群组分享用户没权限",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395602",description:"群组分享权限变更",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395610",description:"接收流头失败",msg:"播放失败请重试并检查设备网络情况以及设备配置",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395620",description:"心跳超时",msg:"播放失败请重试并检查设备网络情况以及设备配置",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"395530",description:"机房故障不可用",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395701",description:"cas信令返回格式错误",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395702",description:"SPGW请求Cas、Status透传超时",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"395703",description:"SPGW请求http不通",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396001",description:"客户端参数出错",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396099",description:"客户端默认错误",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396101",description:"不支持的命令",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396102",description:"设备流头发送失败",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396103",description:"cas/设备返回错误1",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396104",description:"cas/设备返回错误-1",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396105",description:"设备返回错误码3",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396106",description:"设备返回错误码4",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396107",description:"设备返回错误码5",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396108",description:"cas信令回应重复",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396109",description:"视频广场取消分享",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396110",description:"设备信令默认错误",msg:"播放失败请重试",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396501",description:"设备数据链路和实际链路不匹配",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396502",description:"设备数据链路重复建立连接",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396503",description:"设备数据链路端口不匹配",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396504",description:"缓存设备数据链路失败(内存块不足)",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396505",description:"设备发送确认头消息重复",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396506",description:"设备数据先于确定头部到达",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396508",description:"设备数据头部长度非法",msg:"播放失败请重试或重启设备",solution:"刷新重试,或者重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"396509",description:"索引找不到设备数据管理块",msg:"播放失败请重试",solution:"刷新重试",updateTime:1522034841e3},{moduleCode:"",detailCode:"396510",description:"设备数据链路vtdu内存块协议状态不匹配",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396511",description:"设备数据头部没有streamkey错误",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396512",description:"设备数据头部非法(较笼统)",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396513",description:"设备数据长度过小",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396514",description:"设备老协议推流头部没有streamkey错误",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396515",description:"设备老协议推流数据非法",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396516",description:"设备老协议索引找不到内存管理块",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396517",description:"设备老协议推流数据非法",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396518",description:"设备数据包过大",msg:"播放失败请重试或重启设备",solution:"刷新重试,或者重启设备",updateTime:1522034841e3},{moduleCode:"",detailCode:"396519",description:"设备推流链路网络不稳定",msg:"播放失败,请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396520",description:"设备推流链路网络不稳定(默认)",msg:"播放失败请重试或重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396700",description:"异常数据包",msg:"播放失败,设备重启",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"396701",description:"回放结束数据包",msg:"回放结束",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397001",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397002",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397003",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397004",description:"与相应服务连接失败",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397005",description:"VTDU连接失败,或VTDU侧断开连接",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397006",description:"vtm断开连接(无需 关注)",msg:"播放失败请重试,请检查设备网络情况以及连接情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"397007",description:"客户端发送缓冲区满(上行带宽太小)",msg:"播放失败,上行带宽过小请检查设备网络情况",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"399000",description:"无效包,包过大",msg:" 检查设备重启设备",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"399001",description:"地址不合法",msg:"播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"399002",description:"缺少端口",msg:" 播放失败",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"170003",description:"refreshToken不存在",solution:"建议用户重新调用logout接口,然后调用openLoginPage接口重新启动登录页面登录",updateTime:1522034841e3},{moduleCode:"",detailCode:"170004",description:"refreshToken已过期",solution:"建议用户重新调用logout接口,然后调用openLoginPage接口重新启动登录页面登录",updateTime:1522034841e3},{moduleCode:"",detailCode:"380011",description:"设备隐私保护中",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380045",description:"设备直连取流连接数量过大",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380047",description:"设备不支持该命令",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380077",description:"设备正在对讲中",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380102",description:"数据接收异常",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380205",description:"设备检测入参异常",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380209",description:"网络连接超时",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"380212",description:"设备端网络连接超时",solution:"",updateTime:1522034841e3},{moduleCode:"",detailCode:"101007",description:"手机号未注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120503",description:"正在响铃",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390016",description:"vtdu成功响应未携带流头",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101008",description:"手机号码不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120504",description:"室内机正在通话",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390017",description:"无数据流,尚未使用",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101009",description:"用户名与手机不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120505",description:"设备操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390018",description:"信令消息体PB解析失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101010",description:"获取验证码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120506",description:"非法命令",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390019",description:"信令消息体PB封装失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101011",description:"验证码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120507",description:"智能锁密码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390020",description:"申请系统内存资源失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101012",description:"验证码失效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120508",description:"开关锁失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390021",description:"vtdu地址尚未获取到",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101013",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120509",description:"开关锁超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390022",description:"客户端尚未支持",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101014",description:"密码不正确或者appKey不正确",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120510",description:"智能锁设备繁忙",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390023",description:"获取系统socket资源失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101015",description:"用户被锁住",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120511",description:"远程开锁功能未打开",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390024",description:"上层填充的StreamSsnId不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101021",description:"验证参数异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120600",description:"临时密码数已达上限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390025",description:"链接服务器失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101026",description:"邮箱已经被注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120601",description:"添加临时密码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390026",description:"客户端请求未收到服务端应答",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101031",description:"邮箱未注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120602",description:"删除临时密码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390027",description:"链路断开",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101032",description:"邮箱不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120603",description:"该临时密码不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390028",description:"没有取流链接",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101041",description:"获取验证码过于频繁",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120604",description:"指纹锁射频通信失败,请稍后再试",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390029",description:"流成功停止",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101043",description:"手机验证码输入错误超过规定次数",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120605",description:"其他用户正在认证中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390030",description:"客户端防串流校验失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102000",description:"设备不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120606",description:"验证已启动,请在120s内进行本地验证和调用添加设备接口",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390031",description:"应用层tcp粘包处理缓冲区满",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102001",description:"摄像机不存在",solution:"摄像机未注册到萤石云平台,请仔细检查摄像机的网络配置,确保连接到网络",updateTime:152203484e4},{moduleCode:"",detailCode:"120607",description:"删除用户失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390032",description:"无效状态迁移",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102003",description:"设备不在线",solution:"参考服务中心排查方法",updateTime:152203484e4},{moduleCode:"",detailCode:"120608",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390033",description:"无效客户端状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102004",description:"设备异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120609",description:"设备响应超时,门锁通信故障或者电量不足,请重试.",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390034",description:"向vtm取流流媒体信息请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102007",description:"设备序列号不正确",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120610",description:"获取临时密码列表失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390035",description:"向代理取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"102009",description:"设备请求响应超时异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130001",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390036",description:"向代理保活取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"105000",description:"设备已被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130002",description:"手机号码已经注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390037",description:"向vtdu取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"105001",description:"设备已被别人添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130003",description:"手机验证码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390038",description:"向vtdu保活取流请求超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"105002",description:"设备验证码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"130004",description:"终端绑定操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391001",description:"vtm地址或端口非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107001",description:"邀请不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"149999",description:"数据异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391002",description:"vtm生成文件描述符失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107002",description:"邀请验证失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"150000",description:"服务器异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391003",description:"vtm设置文件描述符非阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107003",description:"邀请用户不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160000",description:"设备不支持云台控制",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391004",description:"vtm设置文件描述符阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107004",description:"云存储连接失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160001",description:"用户无云台控制权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391005",description:"vtm解析服务器ip失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"7005",description:"VTDU主动断开连接",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107005",description:"VTDU主动断开连接",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160002",description:"设备云台旋转达到上限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391006",description:"vtm描述符select失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107006",description:"不能邀请自己",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160003",description:"设备云台旋转达到下限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391007",description:"vtm文件描述符不在可读中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"107007",description:"重复邀请",solution:"分享和删除分享必须全部由接口形式操作,如果与萤石客户端混用会造成这个问题,解决办法:在萤石客户端清空所有相关分享数据并重新添加设备,再通过接口操作即可",updateTime:152203484e4},{moduleCode:"",detailCode:"160004",description:"设备云台旋转达到左限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391008",description:"vtm网络发生错误getsockopt",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110001",description:"参数错误",solution:"参数为空或者格式不对",updateTime:152203484e4},{moduleCode:"",detailCode:"160005",description:"设备云台旋转达到右限位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391009",description:"vtm描述符select超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110002",description:"accessToken异常或过期",solution:"accessToken有效期为七天,建议在accessToken即将过期或者出现10002错误码的时候重新获取accessToken",updateTime:152203484e4},{moduleCode:"",detailCode:"160006",description:"云台当前操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391101",description:"proxy地址或端口非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110004",description:"用户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160007",description:"预置点个数超过最大值",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391102",description:"proxy生成文件描述符失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110005",description:"appKey异常",solution:"确认appKey状态,不通过或者冻结状态会返回该错误码",updateTime:152203484e4},{moduleCode:"",detailCode:"160009",description:"正在调用预置点",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391103",description:"proxy设置文件描述符非阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110006",description:"ip受限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160010",description:"该预置点已经是当前位置",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391104",description:"proxy设置文件描述符阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160011",description:"预置点不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391105",description:"proxy解析服务器ip失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110008",description:"签名错误",solution:"①获取签名方式详见apidemo及[旧]API文档 ②注意编码格式为UTF-8",updateTime:152203484e4},{moduleCode:"",detailCode:"160013",description:"设备版本已是最新",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391106",description:"proxy描述符select失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110009",description:"签名参数错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160014",description:"设备正在升级",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391107",description:"proxy文件描述符不在可读中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110010",description:"签名超时",solution:"请调用同步服务器时间接口进行校时",updateTime:152203484e4},{moduleCode:"",detailCode:"160015",description:"设备正在重启",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391108",description:"proxy网络发生错误getsockopt",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110011",description:"未开通萤石云服务",solution:"参照绑定流程",updateTime:152203484e4},{moduleCode:"",detailCode:"160016",description:"加密未开启,无须关闭",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391109",description:"proxy描述符select超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110012",description:"第三方账户与萤石账号已经绑定",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160017",description:"设备抓图失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391201",description:"vtdu地址或端口非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110013",description:"应用没有权限调用此接口",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160018",description:"设备升级失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391202",description:"vtdu生成文件描述符失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110014",description:"APPKEY下对应的第三方userId和phone未绑定",solution:"获取AccessToken时所用appKey与SDK所用appKey不一致",updateTime:152203484e4},{moduleCode:"",detailCode:"160019",description:"加密已开启",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"391203",description:"vtdu设置文件描述符非阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110017",description:"appKey不存在",solution:"请填写在官网申请的应用秘钥",updateTime:152203484e4},{moduleCode:"",detailCode:"160020",description:"不支持该命令",solution:"请确认设备是否支持该命令",updateTime:152203484e4},{moduleCode:"",detailCode:"391204",description:"vtdu设置文件描述符阻塞失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110018",description:"AccessToken与Appkey不匹配",solution:"请检查获取accessToken对应的appKey和SDK中设置的appKey是否一致",updateTime:152203484e4},{moduleCode:"",detailCode:"160023",description:"订阅操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110019",description:"密码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160024",description:"取消订阅操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110020",description:"请求方法为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160025",description:"客流统计配置失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110021",description:"ticket校验失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160026",description:"设备处于隐私遮蔽状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110022",description:"透传目的地非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160027",description:"设备正在镜像操作",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110024",description:"无透传权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160028",description:"设备正在键控动作",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110025",description:"appKey被禁止使用通明通道",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160029",description:"设备处于语音对讲状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160030",description:"卡密输入错误次数过多,24小时后再输入",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160031",description:"卡密信息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160032",description:"卡密状态不对或已过期",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160033",description:"卡密非卖品,只能开通对应的绑定设备",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110030",description:"appKey和appSecret不匹配",solution:"请检查appKey和appSecret是否对应",updateTime:152203484e4},{moduleCode:"",detailCode:"160035",description:"购买云存储服务失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110031",description:"子账户或萤石用户没有权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160040",description:"添加的设备不在同一局域网",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110032",description:"子账户不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160041",description:"添加的设备被其他设备关联或响应超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110033",description:"子账户未设置授权策略",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160042",description:"添加的设备密码错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110034",description:"子账户已存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160043",description:"添加的设备超出最大数量",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110035",description:"获取子账户AccessToken异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160044",description:"添加的设备网络不可达超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110036",description:"子账户被禁用",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160045",description:"添加的设备的IP和其他通道的IP冲突",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"110051",description:"无权限进行抓图",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160046",description:"添加的设备的IP和本设备的IP冲突",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160047",description:"码流类型不支持",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120002",description:"设备不存在",solution:"①设备没有注册到萤石云平台,请检查下设备网络参数,确保能正常连接网络②设备序列号不存在",updateTime:152203484e4},{moduleCode:"",detailCode:"160048",description:"带宽超出系统接入带宽",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120003",description:"参数异常,SDK版本过低",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160049",description:"IP或者端口不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120004",description:"参数异常,SDK版本过低",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160050",description:"添加的设备版本不支持需要升级才能接入",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120005",description:"安全认证失败,需进行SDK安全认证",solution:"已去掉安全验证",updateTime:152203484e4},{moduleCode:"",detailCode:"160051",description:"添加的设备不支持接入",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120006",description:"网络异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160052",description:"添加的设备通道号出错",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120007",description:"设备不在线",solution:"参考服务中心排查方法",updateTime:152203484e4},{moduleCode:"",detailCode:"160053",description:"添加的设备分辨率不支持",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120008",description:"设备响应超时",solution:"设备响应超时,请检测设备网络或重试",updateTime:152203484e4},{moduleCode:"",detailCode:"160054",description:"添加的设备账号被锁定",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120009",description:"子账号不能添加设备",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160055",description:"添加的设备取码流出错",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120010",description:"设备验证码错误",solution:"验证码在设备标签上,六位大写字母,注意大小写",updateTime:152203484e4},{moduleCode:"",detailCode:"160056",description:"删除设备失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120012",description:"设备添加失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160057",description:"删除的设备未关联",solution:"检查IPC与NVR是否有关联关系",updateTime:152203484e4},{moduleCode:"",detailCode:"120013",description:"设备已被别人添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160060",description:"地址未绑定",solution:"请前往官网设置直播",updateTime:152203484e4},{moduleCode:"",detailCode:"120014",description:"设备序列号不正确",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160061",description:"账户流量已超出或未购买,限制开通",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120015",description:"设备不支持该功能",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160062",description:"该通道直播已开通",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120016",description:"当前设备正在格式化",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160063",description:"直播未使用或直播已关闭",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120017",description:"设备已被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160070",description:"设备不能转移给自己",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120018",description:"该用户不拥有该设备",solution:"确认设备是否属于用户",updateTime:152203484e4},{moduleCode:"",detailCode:"160071",description:"设备不能转移,设备与其他设备存在关联关系",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400001",description:"参数为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120019",description:"设备不支持云存储服务",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160072",description:"设备不能转移,通道被分享给其他用户或者分享到视频广场",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400002",description:"参数错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120020",description:"设备在线,被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160073",description:"云存储转移失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400025",description:"设备不支持对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120021",description:"设备在线,但是未被用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160080",description:"当前正在声源定位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400029",description:"没有初始化或资源被释放",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120022",description:"设备在线,但是已经被别的用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160081",description:"当前正在轨迹巡航",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400030",description:"json解析异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120023",description:"设备不在线,未被用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160082",description:"设备正在响应本次声源定位",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400031",description:"网络异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120024",description:"设备不在线,但是已经被别的用户添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"160083",description:"当前正在开启隐私遮蔽",solution:"设备正在操作隐私遮蔽,无法进行当前操作",updateTime:152203484e4},{moduleCode:"",detailCode:"400032",description:"设备信息异常为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120025",description:"重复申请分享",solution:"确认设备是否由添加过该设备且申请过分享的账户下是否还存在分享记录",updateTime:152203484e4},{moduleCode:"",detailCode:"160084",description:"当前正在关闭隐私遮蔽",solution:"设备正在操作隐私遮蔽,无法进行当前操作",updateTime:152203484e4},{moduleCode:"",detailCode:"400034",description:"取流超时",solution:"一般是由于网络状况不好导致,可以尝试下让用户重新播放",updateTime:152203484e4},{moduleCode:"",detailCode:"120026",description:"视频广场不存在该视频",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"380290",description:" 连接CAS服务器失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400035",description:"设备已加密,需要输入验证码",solution:"收到此错误码,需要让用户输入验证码后,调用EZPlayer.setPlayKey传入验证码,并重新调用播放函数",updateTime:152203484e4},{moduleCode:"",detailCode:"120027",description:"视频转码失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361001",description:"对讲服务端排队超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400036",description:"播放验证码错误",solution:"收到此错误码,需要让用户输入验证码后,调用EZPlayer.setPlayKey传入验证码,并重新调用播放函数",updateTime:152203484e4},{moduleCode:"",detailCode:"120028",description:"设备固件升级包不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361002",description:"对讲服务端处理超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400037",description:"surfacehold错误",solution:"请检查是否是播放之前销毁了surface,收到此错误也可以重新建立surface后播放",updateTime:152203484e4},{moduleCode:"",detailCode:"120029",description:"设备不在线,但是已经被自己添加",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361003",description:"设备链接对讲服务器超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400100",description:"未知错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120030",description:"该用户不拥有该视频广场视频",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361004",description:"服务器内部错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400200",description:"player sdk出错,这种错误一般开发者也是无法解决,不具体分类传出,传一个统一的inner错误码出去",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120031",description:"开启终端绑定,硬件特征码验证失败",solution:"请在萤石客户端关闭终端绑定,参考此步骤",updateTime:152203484e4},{moduleCode:"",detailCode:"361005",description:"解析消息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400300",description:"内存溢出",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120032",description:"该用户下通道不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361006",description:"请求重定向--需要向其他服务申请对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400901",description:"设备不在线,可以提示用户",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120033",description:"无法收藏自己分享的视频",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361007",description:"请求url非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400902",description:"accesstoken异常或失效,需要重新获取accesstoken,并传入到sdk",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120034",description:"该用户下无设备",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361008",description:"token失效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400903",description:"当前账号开启了终端绑定,只允许指定设备登录操作,提示用户登录i.ys7.com解除终端绑定",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120090",description:"用户反馈失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361009",description:"设备验证码或者通信秘钥不匹配",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400904",description:"设备正在对讲中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120095",description:"APP包下载失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361010",description:"设备已经在对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"400905",description:"设备开启了隐私保护,不允许预览、对讲等",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120096",description:"APP包信息删除失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361011",description:"设备10s响应超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120101",description:"视频不支持分享给本人",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361012",description:"设备不在线",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320002",description:"参数无效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120102",description:"无相应邀请信息",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361013",description:"设备开启隐私保护拒绝对讲",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320003",description:"暂不支持此操作",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120103",description:"好友已存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361014",description:"token无权限",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320004",description:"内存溢出",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120104",description:"好友不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361015",description:"设备返回session不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320005",description:"创建CAS session失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120105",description:"好友状态错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361016",description:"验证token其他异常错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320006",description:"创建cloud session失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120106",description:"对应群组不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361017",description:"服务端监听设备建立端口超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320007",description:"token失效",solution:"重新设置token后再重试",updateTime:152203484e4},{moduleCode:"",detailCode:"120107",description:"不能添加自己为好友",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361018",description:"设备链路异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320008",description:"token池里面没有token,请传入token",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120108",description:"当前用户和所添加用户不是好友关系",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361019",description:"对讲服务端不支持的信令消息",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320009",description:"传入新的INIT_PARAM并reset(保留,目前未用)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120109",description:"对应分享不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361020",description:"对讲服务端解析对讲请求未携带会话描述能力集",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320010",description:"请重试",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120110",description:"好友群组不属于当前用户",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361021",description:"对讲服务端优先能力集结果为空",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320011",description:"500毫秒后请重试",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120111",description:"好友不是等待验证状态",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361022",description:"cas链路异常",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320012",description:"token池已满",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120112",description:"添加应用下的用户为好友失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361023",description:"对讲服务端分配对讲会话资源失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320013",description:"P2P client超过限制",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120201",description:"操作报警信息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"361024",description:"对讲服务端解析信令消息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320014",description:"sdk未初始化",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120202",description:"操作留言信息失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390001",description:"通用错误返回",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320015",description:"超时",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120301",description:"根据UUID查询报警消息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390002",description:"入参为空指针",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320016",description:"正在打洞中",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120302",description:"根据UUID查询图片不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390003",description:"入参值无效",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320017",description:"没有视频文件头(播放器层面产生和处理此错误)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120303",description:"根据FID查询图片不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390004",description:"信令消息解析非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320018",description:"解码错误/超时(播放器层面产生和处理此错误)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120305",description:"设备ip解析错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390005",description:"内存资源不足",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320019",description:"取消(保留,用户不用处理)",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120401",description:"用户云空间信息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390006",description:"协议格式不对或者消息体长度超过STREAM_MAX_MSGBODY_LEN",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320020",description:"播放过程中预连接被用户清除预操作信息",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120402",description:"云空间操作失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390007",description:"设备序列号长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320021",description:"流加密码不对",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120403",description:"用户目录不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390008",description:"取流url长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"320022",description:"未传入播放窗口",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120404",description:"要操作的目标目录不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390009",description:"解析vtm返回vtdu地址不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"100200",description:"操作成功",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120405",description:"要删除的文件信息不存在",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390010",description:"解析vtm返回级联vtdu地址不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101001",description:"用户名不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120406",description:"已开通云存储",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390011",description:"解析vtm返回会话标识长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101002",description:"用户名已被占用",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120407",description:"开通记录失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390012",description:"vtdu返回流头长度不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101003",description:"密码不合法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120500",description:"获取数据错误",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390013",description:"vtdu会话长度非法",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101004",description:"密码为同一字符",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120501",description:"开锁失败",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390014",description:"回调函数未注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"101006",description:"手机号码已经被注册",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"120502",description:"室内机未收到呼叫",solution:"",updateTime:152203484e4},{moduleCode:"",detailCode:"390015",description:"vtdu成功响应未携带会话标识",solution:"",updateTime:152203484e4}],is="200",rs="操作成功!",Yo={data:ns,code:is,msg:rs},Xo=function(){function f(u,n){fe(this,f),this.coreX=u,this.coreY=n,console.log("ErrorCode",Yo)}return dt(f,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"matchErrorInfo",value:function(n){return Yo.data.find(function(i){return i.detailCode.substr(-4)==n})}}]),f}(),os={color:"red",backgroundColor:"red",activeColor:"red",btnList:[{btnKey:"ade5d065a113432e8091a1c5bc819c57-934f270c08b14e928bf0c2ae8e1a937d-header-0",iconId:"deviceID",part:"left",defaultActive:1,isrender:1,themeId:"934f270c08b14e928bf0c2ae8e1a937d"},{btnKey:"ade5d065a113432e8091a1c5bc819c57-934f270c08b14e928bf0c2ae8e1a937d-header-1",iconId:"deviceName",part:"left",defaultActive:1,isrender:1,themeId:"934f270c08b14e928bf0c2ae8e1a937d"}]},as={color:"blue",backgroundColor:"blue",activeColor:"blue",btnList:[{btnKey:"ade5d065a113432e8091a1c5bc819c57-934f270c08b14e928bf0c2ae8e1a937d-footer-0",iconId:"play",part:"left",defaultActive:0,isrender:0,themeId:"934f270c08b14e928bf0c2ae8e1a937d"}]},Qo={header:os,footer:as},ds=function f(u){this.jsPlugin=u;var n={isMouseDown:!1,isOver:!1,mousePosition:null,oldTime:null,nowTime:null,moved:null,hoverTime:"2018-12-07 12:00:00",hoverLeft:0,timeTipShow:!1,randomNum:123,timeWidthTbls:[60,1800,3600,86400],timeUnits:["范围: 1分钟; 单位: 秒","范围: 30分钟; 单位: 分钟","范围: 1小时; 单位: 分钟","范围: 1天; 单位: 小时","范围: 3天; 单位: 小时"],drawPen:null,timeSection:[],canvasWidth:null,canvasHeight:null,timeTips:null},i=this;Object.keys(n).forEach(function(r){i[r]=n[r]}),this.options={width:this.canvasWidth,height:48,time:new Date().getTime(),timeSection:[],timeWidth:0},f.prototype.subTime=function(r){return r<10?"0"+r:r},f.prototype.tranTime=function(r){var a=r;if(r){var l=new Date(r);a=l.getFullYear()+"/"+(l.getMonth()+1)+"/"+l.getDate()+" "+this.subTime(l.getHours())+":"+this.subTime(l.getMinutes())+":"+this.subTime(l.getSeconds())}return a},f.prototype.init=function(r){r.width&&document.getElementById(r.id).setAttribute("width",parseInt(r.width,10)+"px");var a=this,l=this.options;a.randomNum=(Math.random()+"").split(".").join(""),a.timeWidthTblIndex=l.timeWidth;var s=document.querySelector("#".concat(this.jsPlugin.id,"-canvas"));a.drawPen=s.getContext("2d"),a.nowTime=l.time||Date.now(),a.timeSection=l.timeSection||[],a.canvasWidth=s.offsetWidth,a.canvasHeight=s.offsetHeight,a.updata(),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mousemove",function(b){a.options.readOnly||a.mousemove(b)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mouseover",function(b){a.options.readOnly||a.mouseover(b)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mouseleave",function(b){a.options.readOnly||a.mouseleave(b)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mousedown",function(b){a.options.readOnly||a.mousedown(b)}),document.getElementById("".concat(this.jsPlugin.id,"-canvas")).addEventListener("mouseup",function(b){if(!a.options.readOnly){var T=r.onChange;a.mouseUpFn(b,T)}})},f.prototype.setWidth=function(r){var a=this,l=this;r.width&&(document.getElementById(this.jsPlugin.id).style.width=r.width,document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.width=r.width,document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).style.width=r.width,l.canvasWidth=r.width,setTimeout(function(){a.updata({time:new Date})},500))},f.prototype.mousemove=function(r){if(this.isMouseDown&&this.isOver){var a=this.mousePosition-r.pageX;if(a===0)return;var l=0;switch(this.timeWidth){case 60:l=1/10;break;case 1800:l=1/20*60;break;case 3600:l=1/20*60;break;case 86400:l=1/30*60*60;break}var s=new Date(this.oldTime).getTime()+a*l*1e3;this.updata({time:s}),this.moved=!0}else{var b=parseInt(document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).offsetLeft,10);this.mousePosition=r.pageX-b,this.updata()}},f.prototype.mousedown=function(r){this.isMouseDown=!0,this.mousePosition=r.pageX,this.oldTime=this.nowTime},f.prototype.mouseover=function(r){this.isOver=!0},f.prototype.mouseleave=function(r){this.isOver=!1,this.isMouseDown=!1,this.updata()},f.prototype.changeSize=function(r){console.log("changeSize",r),this.options.timeWidth=r,this.updata({timeWidth:r})},f.prototype.mouseUpFn=function(r,a){if(this.isMouseDown&&(this.isMouseDown=!1,this.moved)){this.moved=!1;var l=this.subTime(new Date(this.nowTime).getHours())+":"+this.subTime(new Date(this.nowTime).getMinutes())+":"+this.subTime(new Date(this.nowTime).getSeconds()),s=new Date(this.oldTime).getFullYear()+"/"+(new Date(this.oldTime).getMonth()+1)+"/"+new Date(this.oldTime).getDate();this.nowTime=new Date("".concat(s," ").concat(l)),this.updata({time:this.nowTime}),this.oldTime=this.nowTime,console.log("nowTime",new Date(this.nowTime),"".concat(s," ").concat(l)),a(this.nowTime)}},f.prototype.readOnly=function(r){console.log("更改为只读"),this.options.readOnly=!0,document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.cursor="not-allowed"},f.prototype.unReadOnly=function(r){console.log("更改为只读"),this.options.readOnly=!1,document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.cursor="pointer"},f.prototype.run=function(r){this.isMouseDown||this.updata(r)},f.prototype.getTime=function(r){console.log("this",this),console.log("当前时间",new Date(this.nowTime))},f.prototype.updata=function(r){var a=this;r=r||{},a.nowTime=r.time||a.nowTime,a.timeSection=r.timeSection||a.timeSection,a.timeWidthTblIndex=r.timeWidth||a.timeWidthTblIndex,a.timeWidth=a.timeWidthTbls[r.timeWidth||a.timeWidthTblIndex],a.timeUnit=a.timeUnits[r.timeWidth||a.timeWidthTblIndex],r.timeWidth===0&&(a.timeWidthTblIndex=0,a.timeWidth=a.timeWidthTbls[0],a.timeUnit=a.timeUnits[0]),a.drawPen.fillStyle="#000000",a.drawPen.fillRect(0,0,a.canvasWidth,a.canvasHeight),a.drawScale(),a.drawRecord(),a.drawOtherMsg(),document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).style.width=a.options.width+"px",document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.width=a.options.width+"px",document.getElementById("".concat(this.jsPlugin.id,"-canvas-container")).style.height=a.options.height+"px",document.getElementById("".concat(this.jsPlugin.id,"-canvas")).style.height=a.options.height+"px"},f.prototype.drawSolidLine=function(r,a,l,s,b,T){this.drawPen.save(),this.drawPen.strokeStyle=T,this.drawPen.lineWidth=b,this.drawPen.beginPath(),this.drawPen.moveTo(r,a),this.drawPen.lineTo(l,s),this.drawPen.stroke(),this.drawPen.restore()},f.prototype.drawString=function(r,a,l,s,b){this.drawPen.font="12px serif",this.drawPen.fillStyle="#ffffff",this.drawPen.textAlign=s||"left",this.drawPen.fillText(r,a,l+10)},f.prototype.drawScale=function(){var r=this,a="rgba(255,255,255)",l=new Date(r.nowTime),s=l.getFullYear(),b=l.getSeconds(),T=l.getMinutes(),C=l.getHours(),y=l.getDate(),h=0;switch(r.timeWidth){case 60:{var D=parseInt(r.canvasWidth/10);l.setSeconds(l.getSeconds()-parseInt(D/2,10)),y=l.getDate(),C=l.getHours(),T=l.getMinutes(),b=l.getSeconds();for(var _=0;_a.canvasWidth&&(_=a.canvasWidth),_<=0&&(_=0),_}},f.prototype.drawOtherMsg=function(){this.drawSolidLine(this.canvasWidth/2,0,this.canvasWidth/2,this.canvasHeight,2,"#1890FF"),this.drawPen.shadowBlur=0,this.isOver&&!this.isMouseDown?(this.mouseTime=this.mousePosition/this.canvasWidth*this.timeWidth*1e3+this.nowTime-this.timeWidth/2*1e3,this.mouseString=this.tranTime(this.mouseTime),this.hoverTime=this.mouseString,this.hoverLeft=this.mousePosition-60,this.timeTipShow=!0):this.timeTipShow=!1}},ls=function(){function f(u){if(fe(this,f),this.jSPlugin=u,!document.getElementById("".concat(this.jSPlugin.id,"-audioControls")))return!1;this.currentTimeWidth=0,this.date=new Date,this.datepickerVisible=!1,this.seekTimer=null,this.disabled=!1,this.seekFrequency=2e3,this.jSPlugin.params&&this.jSPlugin.params.seekFrequency&&(this.seekFrequency=this.jSPlugin.params.seekFrequency),this.recInit()}return dt(f,[{key:"recInit",value:function(){var n=this;this.currentTimeWidth=0;var i=parseInt(getComputedStyle(document.getElementById(this.jSPlugin.id)).width,10)-100,r=document.createElement("div");r.style="display:inline-block;height:48px;",r.id=this.jSPlugin.id+"-canvas-container";var a=document.createElement("canvas");a.id=this.jSPlugin.id+"-canvas",a.className="time-line-body",a.height="48",a.width=i,a.style="display:inline-block;",a.innerHTML="该浏览器不支持canvas",r.appendChild(a),Wn(r,document.getElementById("".concat(this.jSPlugin.id,"-audioControls")));var l=document.createElement("div");l.className="timeline-controls",l.style="display:flex;width:100px;height:48px;text-align:center;line-height: 48px;vertical-align: top;background: #000000;";var s=` +
    + + + add + + + + + + + + + + + + + + reduce + + + + + + + + +
    + + +`);l.innerHTML=s,Wn(l,r),this.timeLine=new ds(this.jSPlugin),this.timeLine.init({id:this.jSPlugin.id+"-canvas",width:i,onChange:function(h){console.log("time",h,new Date(h).Format("yyyyMMddhhmmss"));var D=new Date(h).Format("yyyyMMddhhmmss");if(console.log("----------------this.jSPlugin.url",n.jSPlugin.url),Ke(n.jSPlugin.url).type==="cloud.rec"||n.jSPlugin.capacity&&n.jSPlugin.capacity.support_seek_playback=="1"){var _=function(){n.jSPlugin.seek(D.substr(8,6),"235959"),n.unSyncTimeLine(),setTimeout(function(){n.syncTimeLine()},6e3)};n.seekTimer?clearTimeout(n.seekTimer):_(),n.seekTimer=setTimeout(function(){_(),clearTimeout(n.seekTimer),n.seekTimer=null},n.seekFrequency)}else{var E=function(){setTimeout(function(){n.disabled=!1},n.seekFrequency)},w=function(S){n.disabled=!0,n.jSPlugin.pause().then(function(){console.log("暂停成功"),n.jSPlugin.resume(D).then(function(d){console.log("恢复成功:",d),n.jSPlugin.Theme&&n.jSPlugin.Theme.setDecoderState({play:!0}),n.jSPlugin.Theme&&n.jSPlugin.Theme.decoderState.state.sound&&n.jSPlugin.openSound(),S&&S()}).catch(function(d){console.log("恢复失败",d)})}).catch(function(){console.log("暂停失败"),n.jSPlugin.resume(D).then(function(d){console.log("恢复成功"),n.jSPlugin.Theme&&n.jSPlugin.Theme.setDecoderState({play:!0}),S&&S()}).catch(function(d){console.log("恢复失败",d)})})};n.disabled?(console.log("操作频繁,等待2秒后执行"),n.seekTimer&&clearTimeout(n.seekTimer),n.seekTimer=setTimeout(function(){w(E)},n.seekFrequency)):w(E)}}}),this.syncTimeLine(),Mt("".concat(this.jSPlugin.staticPath,"/rec/datepicker.min.css")),ut("".concat(this.jSPlugin.staticPath,"/rec/jquery.min.js"),function(){ut("".concat(n.jSPlugin.staticPath,"/rec/datepicker.js"),function(){ut("".concat(n.jSPlugin.staticPath,"/rec/datepicker.zh-CN.js"),function(){!document.getElementsByClassName("datepicker-container")[0]&&$("#".concat(n.jSPlugin.id,"-datepicker")).datepicker&&$("#".concat(n.jSPlugin.id,"-datepicker")).datepicker({autoShow:!1,autoHide:!0,autoPick:!0,language:"zh-CN",date:new Date(et("begin",n.jSPlugin.params.url).replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"))||new Date,format:"yyyy-mm-dd",endDate:new Date,inline:!0,container:document.getElementById("".concat(n.jSPlugin.id,"-wrap"))}),document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"),n.datepickerVisible=!1,$("#".concat(n.jSPlugin.id,"-datepicker")).on("pick.datepicker",function(y){console.log("重新选择日期",y.date,new Date(y.date).Format("yyyyMMdd"),new Date(document.getElementById("".concat(n.jSPlugin.id,"-datepicker")).value).Format("yyyyMMdd")),y.date>new Date||new Date(y.date).Format("yyyyMMdd")===new Date(document.getElementById("".concat(n.jSPlugin.id,"-datepicker")).value).Format("yyyyMMdd")?y.preventDefault():(document.getElementById("".concat(n.jSPlugin.id,"-datepicker")).value=new Date(y.date).Format("yyyy-MM-dd"),n.renderRec(y.date),n.jSPlugin.decoderState&&n.jSPlugin.decoderState.state?n.jSPlugin.decoderState.state.cloudRec?n.jSPlugin.changePlayUrl({begin:new Date(y.date).Format("yyyyMMdd"),type:"cloud.rec"}):n.jSPlugin.decoderState.state.rec?n.jSPlugin.changePlayUrl({begin:new Date(y.date).Format("yyyyMMdd"),type:"rec"}):n.jSPlugin.changePlayUrl({begin:new Date(y.date).Format("yyyyMMdd")}):n.jSPlugin.changePlayUrl({begin:new Date(y.date).Format("yyyyMMdd")})),document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"),n.datepickerVisible=!1,n.jSPlugin.decoderState&&n.jSPlugin.decoderState&&n.jSPlugin.decoderState.state&&n.jSPlugin.decoderState.state.zoom&&(n.jSPlugin.setDecoderState({zoom:!1}),n.jSPlugin.Zoom.stopZoom())}),$("#".concat(n.jSPlugin.id,"-datepicker")).off("click").on("click",function(y){console.log("点击日期"),n.datepickerVisible?document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"):document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="inline"),n.datepickerVisible=!n.datepickerVisible})})})}),document.getElementById("".concat(this.jSPlugin.id,"-timeline-scale-add")).onclick=function(){var y=n.currentTimeWidth;y<3&&n.timeLine.changeSize(++n.currentTimeWidth)},document.getElementById("".concat(this.jSPlugin.id,"-timeline-scale-sub")).onclick=function(){var y=n.currentTimeWidth;y>0&&n.timeLine.changeSize(--n.currentTimeWidth)};var b=et("begin",this.jSPlugin.url)||new Date().Format("yyyyMMdd");this.renderRec("".concat(b.slice(0,4),"-").concat(b.slice(4,6),"-").concat(b.slice(6,8))),this.observer=new MutationObserver(function(y,h){n.recAutoSize()});var T={attributes:!0,attributeOldValue:!0,attributeFilter:["style"]},C=document.getElementById("".concat(this.jSPlugin.id));this.observer.observe(C,T)}},{key:"setDatepickerDate",value:function(n){if(document.getElementsByClassName("datepicker-container")[0]){var i=document.getElementsByClassName("datepicker-container")[0],r=i.parentNode;r.removeChild(i),document.getElementById("".concat(this.jSPlugin.id,"-datepicker")).value=n.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"),$("#".concat(this.jSPlugin.id,"-datepicker")).datepicker({autoShow:!1,autoHide:!0,autoPick:!0,language:"zh-CN",defaultDate:n,format:"yyyy-mm-dd",endDate:new Date,inline:!0,container:document.getElementById("".concat(this.jSPlugin.id,"-wrap"))})}}},{key:"datepickerHide",value:function(){document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="none"),this.datepickerVisible=!1}},{key:"datepickerShow",value:function(){document.getElementsByClassName("datepicker-container")[0]&&(document.getElementsByClassName("datepicker-container")[0].style.display="inline"),this.datepickerVisible=!0}},{key:"recAutoSize",value:function(){var n=this;if(document.getElementById("".concat(this.jSPlugin.id,"-canvas"))){var i=parseInt(getComputedStyle(document.getElementById(this.jSPlugin.id)).width,10)-100;i!==parseInt(document.getElementById("".concat(this.jSPlugin.id,"-canvas")).width)&&(document.getElementById("".concat(this.jSPlugin.id,"-canvas")).width=i,this.timeLine.init({id:"".concat(this.jSPlugin.id,"-canvas"),width:i,onChange:function(a){console.log("time",a,new Date(a).Format("yyyyMMddhhmmss")),console.log("jSPlugin",n.jSPlugin);var l=new Date(a).Format("yyyyMMddhhmmss");n.jSPlugin.changePlayUrl({begin:l})}}),this.renderRec(this.date),this.syncTimeLine())}}},{key:"syncTimeLine",value:function(){var n=this;this.jSPlugin.recTimer&&clearInterval(this.jSPlugin.recTimer),this.jSPlugin.recTimer=setInterval(function(){var i=n.jSPlugin.getOSDTime();i.then(function(r){var a=r.data;a===-1?console.log("获取播放时间错误"):a>0&&n.timeLine.run({time:new Date(a>1e12?a:a*1e3)})}).catch(function(r){})},1e3)}},{key:"unSyncTimeLine",value:function(){this.jSPlugin.recTimer&&clearInterval(this.jSPlugin.recTimer)}},{key:"renderRec",value:function(n){var i=this;this.date=n;var r=this,a=new Date(new Date(n).Format("yyyy-MM-dd 00:00:00").replace(/-/g,"/")).getTime(),l=new Date(new Date(n).Format("yyyy-MM-dd 23:59:59").replace(/-/g,"/")).getTime();this.timeLine.getRecord([],a,l),console.log("-----------233---------this.jSPlugin.url",this.jSPlugin.url);var s={accessToken:this.jSPlugin.accessToken,recType:Ke(this.jSPlugin.url).type==="cloud.rec"?1:2,deviceSerial:Ke(this.jSPlugin.url).deviceSerial,channelNo:Ke(this.jSPlugin.url).channelNo,startTime:a,endTime:l,version:"2.0"},b=function(y){if(y.data&&y.data.files&&y.data.files.length>0){var h=y.data.files,D=new Date().getTime(),_=y.data.isAll;if(_)i.timeLine.getRecord(h,a,l);else{var E=function w(){function z(S){S.data&&S.data.files&&S.data.files.length>0?S.data.isAll==!1?(S.data.files&&(h=h.concat(S.data.files)),D=S.data.nextFileTime>0?S.data.nextFileTime:new Date().getTime(),w()):(console.log("云存储执行渲染片段"),r.timeLine.getRecord(h,a,l)):r.timeLine.getRecord(h,a,l)}s.startTime=D,Gn(this.jSPlugin.env.domain+"/api/lapp/video/by/time","POST",s,"",z)};E()}i.timeLine.run({time:new Date(a)})}else y.data&&y.data.length>0&&(console.log("获取本地录像片段成功",y),r.timeLine.getRecord(y.data,a,l),r.timeLine.run({time:new Date(a)}))},T=this.jSPlugin.env.domain+"/api/lapp/video/by/time";Gn(T,"POST",s,"",b)}}]),f}(),sn=function(u){console.log("执行TimeLine - params",u),this.state={id:u.id,start:"00:00:00",end:"24:00:00",current:0,timelag:30,timeArr:[],availTimeLine:[],scrollTop:0,index:0,date:"",noTimeLineTxt:"",disabled:!1};var n=this;this.setState=function(i){Object.keys(i).forEach(function(r){n.state[r]=i[r],r==="scrollTop"&&document.getElementById("time-line-item").parentNode.scrollTo(0,i[r]),r==="current"&&(document.getElementById("time-line-current").innerHTML=i[r])})},this.setDisabled=function(i){this.setState({disabled:i}),document.getElementById("time-line-item").parentNode.style.overflowY=i?"hidden":"scroll"},this.timeToSecond=function(i){var r=i.split(":"),a=Number(r[0]),l=Number(r[1]),s=Number(r[2]);return a*60*60+l*60+(s||0)},this.minuteToTime=function(i){var r=Math.floor(i/60),a=i%60;return(r>9?r:"0"+r)+":"+(a>9?a:"0"+a)},this.timeToMinute=function(i){var r=i.split(":"),a=Number(r[0]),l=Number(r[1]);return a*60+l},this.getPalyParam=u.getPalyParam,document.getElementById("time-line-item").parentNode.ontouchstart=function(){if(n.state.disabled)return!1;u.ontouchstart()},document.getElementById("time-line-item").parentNode.ontouchmove=function(){if(n.state.disabled)return!1;u.ontouchmove()},document.getElementById("time-line-item").parentNode.ontouchend=function(){if(n.state.disabled)return!1;var i,r=new Promise(function(a,l){var s=-1;i=setInterval(function(){var b=document.getElementById("time-line-item").parentNode.scrollTop;b!==s?(console.log("scolling",b,s),s=b):(console.log("scoll stop",b,s),clearInterval(i),a(b))},100)});r.then(function(a){console.log("scollPromise: then",a,n),n.rectTopTotime(a),console.log("页面滚动实际高度",a,n.state),n.getPalyParam({current:n.state.current})}),u.ontouchend()},this.matchTimeDot()};sn.prototype.changeScale=function(f){this.setState({timelag:f}),this.matchTimeDot()},sn.prototype.setDateLine=function(f,u){f.length>0?(typeof u=="undefined"&&(u=f.length-1),this.setState({availTimeLine:f,start:f[u].st,end:f[u].et,current:f[u].st}),console.log("this.state",this.state),this.matchRecTimeDot(),this.primaryOffsetH()):(this.setState({availTimeLine:[]}),console.log("this.state",this.state),this.matchRecTimeDot())},sn.prototype.matchTimeDot=function(){var f=this.state,u=f.start,n=f.end,i=f.timelag;f.availTimeLine,console.log("start",u,"end",n);var r=[],a=this.timeToMinute(n);a=Math.floor(a/i)*i;for(var l=a;l>=0;){var s=0,b=0,T=[];l==a&&(s=70),l==0&&(b=230);var C=this.minuteToTime(l);r.push({id:l,current:C,label:"a"+l,marginTop:s,marginBottom:b,recArr:T}),l=l-i}this.setState({timeArr:r}),this.renderDateLine()},sn.prototype.matchRecTimeDot=function(){var f=this.state,u=f.start,n=f.end,i=f.timelag,r=f.availTimeLine,a=f.timeArr;console.log("start",u,"end",n);var l=[],s=r.length;if(s===0)for(var b=0;b_&&a[b].id')}),b+="
    ').concat(r.current,"
    "),l.innerHTML=b,i.appendChild(l)})},sn.prototype.primaryOffsetH=function(){var f=this.state,u=f.start,n=f.timelag,i=f.timeArr,r=i[0].current,a=this.timeToSecond(r),l=this.timeToSecond(u),s=a-l,b=Math.ceil(s/n)+60;this.setState({scrollTop:b}),console.log("起始偏移量",b)},sn.prototype.currentOffsetH=function(){var f=this.state,u=f.current,n=f.timelag,i=f.timeArr,r=i[0].current,a=this.timeToSecond(r),l=this.timeToSecond(u),s=a-l,b=Math.ceil(s/n)+60;this.setState({scrollTop:b})},sn.prototype.rectTopTotime=function(f){var u=this.state.timelag,n=Math.floor(f/60),i=f-n*60,r,a;if(console.log("index:",n,"offsetH:",i),i==0)r=this.state.timeArr[n-1].current,a=0;else{var l=this.state.timeArr[n].current,s=this.timeToMinute(l),b=60-i,T=b*u,C=Math.floor(T/60)+s,y=Math.floor(T/60)*60;a=Math.ceil(T-y),r=this.minuteToTime(C)}this.setState({current:r+":"+(a>9?a:"0"+a),scrollTop:f})},sn.prototype.stepScrollTimeLine=function(f){this.setState({current:f}),this.currentOffsetH()},sn.prototype.secondCountDown=function(f){var u=this.state.current,n=u.split(":"),i=Number(n[0]),r=Number(n[1]),a=Number(n[2]),l=i*60*60+r*60+a+1,s=Math.floor(l/3600),b=Math.floor((l-s*3600)/60),T=l-s*3600-b*60;this.setState({current:(s>9?s:"0"+s)+":"+(b>9?b:"0"+b)+":"+(T>9?T:"0"+T)})};var ss=sn;Date.prototype.Format=function(f){var u={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(f)&&(f=f.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var n in u)new RegExp("("+n+")").test(f)&&(f=f.replace(RegExp.$1,RegExp.$1.length==1?u[n]:("00"+u[n]).substr((""+u[n]).length)));return f};function ea(f){var u=new Date(f),n=u.getHours(),i=u.getMinutes(),r=u.getSeconds();return(n>9?n:"0"+n)+":"+(i>9?i:"0"+i)+":"+(r>9?r:"0"+r)}var cs=function(){function f(u,n,i){var r=this;fe(this,f),this.changeRecSpeed=n,this.resetMobileZoomStatus=i,this.isMobile=!0,this.jSPlugin=u,this.timer=null,this.date=new Date().Format("yyyy-MM-dd"),this.begin=(new Date().Format("yyyy-MM-dd")+" 00:00:00").replace(/-/g,"/"),this.end=(new Date().Format("yyyy-MM-dd")+" 23:59:59").replace(/-/g,"/"),this.initBegin=null,this.initEnd=null,this.type=Ke(this.jSPlugin.url).type,this.operating=!1,this.seekTimer=null,this.disabled=!1,this.seekFrequency=2e3,this.jSPlugin.params&&this.jSPlugin.params.seekFrequency&&(this.seekFrequency=this.jSPlugin.params.seekFrequency);var a=document.createElement("style");if(a.innerHTML=` + body{ + padding: 0; + margin: 0; + } + .time-line-container { + text-align: left; + height: 300px; + /* outline: 1px solid red; */ + /* background: gray; */ + position: relative; + /* padding-top: 60px; */ + margin-top: 20px; + } + + .time-line-container .time-line-item-container { + display: inline-block; + /* height: 400px; */ + width: 30%; + /* background: indianred; */ + overflow-y: scroll; + overflow-x: hidden; + /* padding-top: 60px; */ + height: 300px; + box-sizing: border-box; + white-space: nowrap; + position: relative; + } + + .time-line-container .time-line-item-container::-webkit-scrollbar { + width: 0px; + /*滚动条宽度*/ + height: 0px; + /*滚动条高度*/ + } + + .time-line-item .time-item { + position: relative; + box-sizing: border-box; + height: 60px; + font-size: 12px; + color: rgb(150, 150, 150); + border-right: 6px solid; + border-right-color: #ddd; + } + + .time-line-item .time-item .scale { + width: 6px; + height: 9px; + border-bottom: 1px solid #ccc; + float: right; + clear: both; + } + + .time-line-item .time-item .item-unavail { + width: 6px; + position: absolute; + left: 100%; + background-color: #ddd; + } + + .time-line-container .current-time { + position: absolute; + left: 0; + top: 40px; + height: 29px; + /* line-height: 58px; */ + border-bottom: 1px solid #648FFC; + width: 60%; + margin-left: 26%; + } + + .time-line-container .current-time .current-time-bg { + position: relative; + top: 15px; + width: 100px; + height: 29px; + line-height: 29px; + left: -70px; + font-size: 12px; + color: #2C2C2C; + } + + .time-line-container .current-time .current-time-bg::before { + content: ''; + display: inline-block; + width: 6px; + height: 6px; + border-radius: 100%; + background: #648FFC; + top: 11px; + position: absolute; + right: 30px; + } + + .date-switch-container { + height: 40px; + position: relative; + text-align: center; + margin: 20px 10px; + } + + .date-switch-container .current-date { + line-height: 40px; + height: 22px; + font-size: 16px; + color: #2C2C2C; + text-align: center; + font-weight: bold; + } + + .date-container { + width: 40px; + height: 40px; + position: absolute; + right: 0; + top: 0; + } + + .rec-type-container { + display: flex; + justify-content: space-between; + } + + .rec-type-container .rec-type-text { + padding: 0 15px; + font-size: 12px; + color: #2C2C2C; + } + + .rec-type-container .rec-type-switch { + padding: 0 20px; + } + + .date-container input { + position: absolute; + opacity: 0; + display: inline-block; + width: 40px; + height: 40px; + z-index: 10; + left: 0; + } + + .date-container label { + position: absolute; + left: 0; + top: 0; + /* display: none; */ + z-index: 0; + } + + .date-icon { + display: inline-block; + width: 40px; + height: 40px; + background: url('https://resource.eziot.com/group2/M00/00/6A/CtwQF2F6VieAQrU9AAABP-_Nsqo949.png') no-repeat 100% 100%; + } + .select-container { + padding: 10px; + display: flex; + justify-content: space-between; + } + + .advice { + height: 24px; + width: 70px; + display: flex; + justify-content: space-between; + line-height: 24px; + background: #F8F8F8; + border-radius: 8px; + } + + .advice span { + width: 40px; + display: inline-block; + } + + input[type="checkbox"]:not(:checked)+.advice span:first-child { + box-shadow: 0px 2px 5px 0px rgb(23 45 101 / 20%); + border-radius: 8px; + text-align: center; + + } + + input[type="checkbox"]:checked+.advice span:last-child { + box-shadow: 0px 2px 5px 0px rgb(23 45 101 / 20%); + border-radius: 8px; + text-align: center; + } + + input[type="checkbox"]:not(:checked)+.advice span:first-child svg { + fill: #648FFC !important; + } + + input[type="checkbox"]:checked+.advice span:last-child svg { + fill: #648FFC !important; + }`,document.getElementsByTagName("head")[0].appendChild(a),et("begin",this.jSPlugin.url)){var l=et("begin",this.jSPlugin.url);this.date=l.slice(0,4)+"/"+l.slice(4,6)+"/"+l.slice(6,8),this.begin=this.date+" ".concat(l.slice(8,10)||"00",":").concat(l.slice(10,12)||"00",":").concat(l.slice(12,14)||"00"),this.end=this.date+" 23:59:59",this.initBegin=this.begin}if(et("end",this.jSPlugin.url)){var s=et("end",this.jSPlugin.url);this.end=this.date+" ".concat(s.slice(8,10)||"23",":").concat(s.slice(10,12)||"59",":").concat(s.slice(12,14)||"59"),this.initEnd=this.end}var b=document.createElement("div");b.id="date-switch-container-wrap",b.className="date-switch-container-wrap",b.style="",b.innerHTML=` +
    +
    今日录像
    +
    + + +
    +
    + `,Wn(b,document.getElementById("".concat(this.jSPlugin.id,"-wrap")));var T=document.createElement("div");T.id="rec-type-container-wrap",T.className="rec-type-container-wrap",T.style="",T.innerHTML=` +
    +
    0个录像
    +
    + +
    +
    + `,Wn(T,b);var C=document.createElement("div");C.id="mobile-rec-wrap",C.className="mobileRec-wrap",C.style="",C.innerHTML=` +
    +
    +
    2020-01-01 00:00:00
    +
    +
    +
    +
    +
    +
    + `,Wn(C,T);var y=function(w){console.log("子组件传值到父组件",w,w.current);var z=w.current,S=new Date(r.date).Format("yyyyMMdd").substr(0,8)+(w.current?z.replace(/:/g,""):w.current.replace(/:/g,""));if(r.initBegin&&new Date("".concat(r.date," ").concat(w.current)).getTime()new Date(r.initEnd).getTime()&&(console.log("超过限制最高值"),S=new Date(r.initBegin).Format("yyyyMMddhhmmss")),r.type==="cloud.rec"){var d=function(){r.jSPlugin.seek(S.substr(8,6),"235959"),setTimeout(function(){r.syncTimeLine()},6e3)};r.seekTimer?clearTimeout(r.seekTimer):d(),console.log("this.jsPlug",r.jSPlugin.params),r.seekTimer=setTimeout(function(){d(),clearTimeout(r.seekTimer),r.seekTimer=null},r.seekFrequency)}else{var m=function(){setTimeout(function(){r.disabled=!1},r.seekFrequency)},g=function(A){r.disabled=!0,r.jSPlugin.pause().then(function(){console.log("暂停成功"),r.jSPlugin.resume(S).then(function(O){console.log("恢复成功"),r.jSPlugin.Theme&&r.jSPlugin.Theme.setDecoderState({play:!0}),r.jSPlugin.Theme&&r.jSPlugin.Theme.decoderState.state.sound&&r.jSPlugin.openSound(),r.syncTimeLine(),A&&A()})}).catch(function(){console.log("暂停失败"),r.jSPlugin.resume(S).then(function(O){console.log("恢复成功"),r.jSPlugin.Theme&&r.jSPlugin.Theme.setDecoderState({play:!0}),r.syncTimeLine(),A&&A()})})};r.disabled?(console.log("操作频繁,等待2秒后执行"),r.seekTimer&&clearTimeout(r.seekTimer),r.seekTimer=setTimeout(function(){g(m)},r.seekFrequency)):g(m)}},h=function(){r.operating=!0,r.unSyncTimeLine()},D=function(){},_=function(){r.operating=!1,console.log("ontouchend")};this.TimeLineOBJ=new ss({id:"time-line-item",getPalyParam:y,ontouchstart:h,ontouchmove:D,ontouchend:_}),this.fetchDeviceRec(),document.getElementById("date").addEventListener("change",function(E){if(console.log("日期变化",E.target.value),r.initBegin||r.initEnd)return console.log("您开启了时间限制,无法切换日期"),!1;r.date=new Date(E.target.value).Format("yyyy/MM/dd"),r.begin=r.date+" 00:00:00",r.end=r.date+" 23:59:59",r.fetchDeviceRec(),r.jSPlugin.changePlayUrl({type:r.type,begin:"".concat(new Date(r.date).Format("yyyyMMdd"),"000000")}),r.changeRecSpeed(1),r.resetMobileZoomStatus()}),document.getElementById("cloudType").checked=this.type==="rec",document.getElementById("cloudType").addEventListener("change",function(E){var w=E.target.checked?2:1;r.type=E.target.checked?"rec":"cloud.rec",console.log("recType",w),r.fetchDeviceRec(),r.jSPlugin.changePlayUrl({type:r.type,begin:"".concat(new Date(r.date).Format("yyyyMMdd"),"000000")}).then(function(){console.log("切换类型成功"),r.syncTimeLine(),r.changeRecSpeed(1),r.resetMobileZoomStatus()},function(z){console.log("err",z)}).catch(function(z){console.log(z)})}),this.syncTimeLine()}return dt(f,[{key:"fetchDeviceRec",value:function(){var n=this,i=function(l){var s=l.length;document.getElementById("recCount").innerHTML=s;for(var b=[],T=s-1;T>=0;T--){var C=l[T],y=ea(C.endTime),h=ea(C.startTime);b.push({st:h,et:y})}n.TimeLineOBJ.setDateLine(b)},r=new FormData;r.append("deviceSerial",Ke(this.jSPlugin.url).deviceSerial),r.append("channelNo",Ke(this.jSPlugin.url).channelNo),r.append("accessToken",this.jSPlugin.accessToken),r.append("recType",this.type==="cloud.rec"?1:2),r.append("startTime",new Date(this.begin).getTime()),r.append("endTime",new Date(this.end).getTime()),fetch(this.jSPlugin.env.domain+"/api/lapp/video/by/time",{method:"POST",body:r}).then(function(a){return a.json()}).then(function(a){if(a.code==200&&a.data){var l=[];l=a.data,i(l)}else i([])})}},{key:"syncTimeLine",value:function(){var n=this,i=function(a){var l=new Date(a),s=l.getHours(),b=l.getMinutes(),T=l.getSeconds();return(s>9?s:"0"+s)+":"+(b>9?b:"0"+b)+":"+(T>9?T:"0"+T)};this.timer&&clearInterval(this.timer),this.timer=setInterval(function(){if(n.operating)return console.log("操作中"),!1;n.jSPlugin.getOSDTime().then(function(r){r.data>0?n.TimeLineOBJ.stepScrollTimeLine(i(r.data*1e3)):(console.log("未找到当前获取播放时间,等待中..."),console.log("res:-----------------",r))}).catch(function(r){console.log("err:-----",r),console.log("未找到当前获取播放时间,等待中...")})},1e3)}},{key:"unSyncTimeLine",value:function(){this.timer&&clearInterval(this.timer)}}]),f}(),us=[{code:200,msg:"",desc:"请求成功",text:"操作成功",type:"ptzStart"},{code:10001,msg:"操作失败",desc:"参数为空或格式不正确",text:"参数错误",type:"ptzStart"},{code:10002,msg:"账号异常,操作失败",desc:"重新获取accessToken",text:"accessToken异常或过期",type:"ptzStart"},{code:10005,msg:"账号异常,操作失败",desc:"appKey被冻结",text:"appKey异常",type:"ptzStart"},{code:20002,msg:"设备不存在,请检查设备连接情况",desc:"",text:"设备不存在",type:"ptzStart"},{code:20006,msg:"操作失败,请检查设备网络情况",desc:"检查设备网络状况,稍后再试",text:"网络异常",type:"ptzStart"},{code:20007,msg:"操作失败,请检查设备在线情况",desc:"检查设备是否在线",text:"设备不在线",type:"ptzStart"},{code:20008,msg:"操作过于频繁,稍后再试",desc:"操作过于频繁,稍后再试",text:"设备响应超时",type:"ptzStart"},{code:20014,msg:"操作失败",desc:"",text:"deviceSerial不合法",type:"ptzStart"},{code:20032,msg:"通道不存在请检查设备连接情况",desc:"该用户下通道不存在",text:"该用户下通道不存在",type:"ptzStart"},{code:49999,msg:"操作失败,请重试",desc:"接口调用异常",text:"数据异常",type:"ptzStart"},{code:6e4,msg:"操作失败,设备不支持该操作",desc:"",text:"设备不支持云台控制",type:"ptzStart"},{code:60001,msg:"操作失败,用户无权限",desc:"",text:"用户无云台控制权限",type:"ptzStart"},{code:60002,msg:"设备已旋转到上限位",desc:"",text:"设备云台旋转达到上限位",type:"ptzStart"},{code:60003,msg:"设备已旋转到下限位",desc:"",text:"设备云台旋转达到下限位",type:"ptzStart"},{code:60004,msg:"设备已旋转到左限位",desc:"",text:"设备云台旋转达到左限位",type:"ptzStart"},{code:60005,msg:"设备已旋转到右限位",desc:"",text:"设备云台旋转达到右限位",type:"ptzStart"},{code:60006,msg:"操作失败,请重试",desc:"稍候再试",text:"云台当前操作失败",type:"ptzStart"},{code:60009,msg:"设备正在操作中",desc:"",text:"正在调用预置点",type:"ptzStart"},{code:60020,msg:"操作失败",desc:"确认设备是否支持该操作",text:"不支持该命令",type:"ptzStart"}],ms=[{code:200,msg:"",desc:"请求成功",text:"操作成功",type:"ptzStop"},{code:10001,msg:"操作失败",desc:"参数为空或格式不正确",text:"参数错误",type:"ptzStop"},{code:10002,msg:"账号异常,操作失败",desc:"重新获取accessToken",text:"accessToken异常或过期",type:"ptzStop"},{code:10005,msg:"账号异常,操作失败",desc:"appKey被冻结",text:"appKey异常",type:"ptzStop"},{code:20002,msg:"设备不存在,请检查设备连接情况",desc:"",text:"设备不存在",type:"ptzStop"},{code:20006,msg:"操作失败,请检查设备网络情况",desc:"检查设备网络状况,稍后再试",text:"网络异常",type:"ptzStop"},{code:20007,msg:"操作失败,请检查设备在线情况",desc:"检查设备是否在线",text:"设备不在线",type:"ptzStop"},{code:20008,msg:"操作过于频繁,稍后再试",desc:"操作过于频繁,稍后再试",text:"设备响应超时",type:"ptzStop"},{code:20014,msg:"操作失败",desc:"",text:"deviceSerial不合法",type:"ptzStop"},{code:20032,msg:"通道不存在请检查设备连接情况",desc:"该用户下通道不存在",text:"该用户下通道不存在",type:"ptzStop"},{code:49999,msg:"操作失败,请重试",desc:"接口调用异常",text:"数据异常",type:"ptzStop"},{code:6e4,msg:"操作失败,设备不支持该操作",desc:"",text:"设备不支持云台控制",type:"ptzStop"},{code:60001,msg:"操作失败,用户无权限",desc:"",text:"用户无云台控制权限",type:"ptzStop"},{code:60006,msg:"操作失败,请重试",desc:"稍候再试",text:"云台当前操作失败",type:"ptzStop"},{code:60009,msg:"设备正在操作中",desc:"",text:"正在调用预置点",type:"ptzStop"},{code:60020,msg:"操作失败",desc:"确认设备是否支持该操作",text:"不支持该命令",type:"ptzStop"}],ps=[{code:200,msg:"",desc:"请求成功",text:"操作成功",type:"talk"},{code:10001,msg:"播放失败",desc:"参数为空或格式不正确",text:"参数错误",type:"talk"},{code:10002,msg:"账号异常,操作失败",desc:"",text:"accessToken异常或过期",type:"talk"},{code:10031,msg:"账号异常,操作失败",desc:"",text:"子账户或萤石用户没有权限",type:"talk"},{code:20002,msg:"设备不存在请检查设备连接情况",desc:"设备序列号输入有误或者设备未被添加或者通道异常",text:"设备不存在",type:"talk"},{code:60059,msg:"播放失败",desc:"",text:"ezopen地址均不可用",type:"talk"}],fs=[{code:200,msg:"",desc:"",text:"操作成功",type:"time"},{code:10001,msg:"播放失败",desc:"参数为空或格式不正确",text:"参数错误",type:"time"},{code:10002,msg:"账号异常,播放失败",desc:"",text:"accessToken异常或过期",type:"time"},{code:10004,msg:"账号异常,播放失败",desc:"",text:"用户不存在",type:"time"},{code:10005,msg:"账号异常,播放失败",desc:"",text:"appKey异常",type:"time"},{code:10011,msg:"播放失败",desc:"设备对应用户未注册至应用下",text:"未开通萤石服务",type:"time"},{code:10013,msg:"账号异常,播放失败",desc:"",text:"非开发者账号无权限调用",type:"time"},{code:10030,msg:"播放失败",desc:"",text:"appkey和appsecret不匹配",type:"time"},{code:20002,msg:"设备不存在请检查设备连接情况",desc:"设备序列号输入有误或者设备未被添加或者通道异常",text:"设备不存在",type:"time"},{code:20014,msg:"播放失败",desc:"",text:"deviceSerial不合法",type:"time"},{code:20032,msg:"设备不存在请检查设备连接情况",desc:"",text:"该用户下通道不存在",type:"time"},{code:60024,msg:"播放失败请重试",desc:"",text:"取消订阅操作失败",type:"time"},{code:49999,msg:"播放失败请重试",desc:"",text:"操作异常",type:"time"}],Fr={ptzStart:us,ptzStop:ms,talk:ps,time:fs},ta=function(){function f(u,n){fe(this,f),this.coreX=u,this.coreY=n,console.log("uikitCode",Fr)}return dt(f,[{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"matchInfo",value:function(n,i){if(Fr[i]){var r={};return Fr[i].map(function(a){a.code==n&&(r=a)}),r}else return{code:500,msg:"未知错误",desc:"未知的错误码,或错误码类型有误",text:"",type:i}}}]),f}(),hs=function(){function f(u){var n=this;if(fe(this,f),this.jSPlugin=u,this.codeHandler=new ta,this.pluginStatus=new Bi(this,this.jSPlugin.id),console.log("云台初始化"),document.getElementById(this.jSPlugin.id+"-ez-ptz-item"))return!1;var i=document.createElement("div");i.id=this.jSPlugin.id+"-ez-ptz-item",i.className="ez-ptz-wrap",i.style="display:none";var r=document.createElement("style");r.innerHTML=` + .ez-ptz-container { + position: relative; + width: 80px; + height: 80px; + background: rgba(255, 255, 255, 0.80); + box-shadow: 0px 0px 33px 4px rgb(0 0 0 / 15%); + border: 1px solid rgba(255, 255, 255, 0.80); + border-radius: 100%; + cursor: pointer; + overflow: hidden; + user-select: none; + } + .ez-ptz-container .ez-ptz-icon.top { + width: 0; + height: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 6px solid #333333; + position: absolute; + display: inline-block; + left: calc(50% - 3px); + top: 2px; + } + + .ez-ptz-container .ez-ptz-icon.top.active { + border-bottom-color: #1890FF; + } + + .ez-ptz-container .ez-ptz-icon.bottom { + width: 0; + height: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 6px solid #333333; + position: absolute; + display: inline-block; + left: calc(50% - 3px); + bottom: 2px; + } + + .ez-ptz-container .ez-ptz-icon.bottom.active { + border-top-color: #1890FF; + } + + .ez-ptz-container .ez-ptz-icon.right { + width: 0; + height: 0; + border-top: 3px solid transparent; + border-bottom: 3px solid transparent; + border-left: 6px solid #333333; + position: absolute; + display: inline-block; + top: calc(50% - 3px); + right: 2px; + } + + .ez-ptz-container .ez-ptz-icon.right.active { + border-left-color: #1890FF; + } + + .ez-ptz-container .ez-ptz-icon.left { + width: 0; + height: 0; + border-top: 3px solid transparent; + border-bottom: 3px solid transparent; + border-right: 6px solid #333333; + position: absolute; + display: inline-block; + top: calc(50% - 3px); + left: 2px; + } + + .ez-ptz-container .ez-ptz-icon.left.active { + border-right-color: #1890FF; + } + + .ez-ptz-container .ez-ptz-main.center { + width: 23px; + height: 23px; + background: #1890FF; + border-radius: 100%; + top: calc(50% - 12.3px); + left: calc(50% - 12.3px); + position: absolute; + } + + .ez-ptz-wrap { + position: absolute; + right: 20px; + top: calc(50% - 50px); + width: 100px; + height: 100px; + z-index: 999; + } + + .ez-ptz-close { + position: absolute; + color: #FFFFFF; + top: 0; + right: 0px; + }`,document.getElementsByTagName("head")[0].appendChild(r),i.innerHTML=` +
    +
    +
    +
    +
    +
    + `),document.getElementById("".concat(u.id,"-wrap")).appendChild(i),document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).onmousedown=function(a){a.preventDefault(),console.log("触摸开始"),n._handlePtzTouch(a,"start")},document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).onmouseup=function(a){a.preventDefault(),console.log("触摸结束"),n._handlePtzTouch(a,"stop")},document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).ontouchstart=function(a){a.preventDefault(),console.log("触摸开始"),n._handlePtzTouch(a,"start")},document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).ontouchend=function(a){a.preventDefault(),console.log("触摸结束",a),n._handlePtzTouch(a,"stop")}}return dt(f,[{key:"show",value:function(){document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-item")).style="display: inline-block"}},{key:"hide",value:function(){document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-item")).style="display: none"}},{key:"_handlePtzTouch",value:function(n,i){var r=this,a=document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).getBoundingClientRect(),l=a.left+41,s=a.top+41,b=n.x||n.changedTouches[0].clientX,T=n.y||n.changedTouches[0].clientY,C=b-l,y=T-s,h=0,D=this.jSPlugin.env.domain+"/api/lapp/device/ptz/start";if(Math.abs(C)>Math.abs(y)?C>0?h=3:h=2:y>0?h=1:h=0,/^rotate\(90/.test(document.getElementById("".concat(this.jSPlugin.id,"-wrap")).style.transform))switch(h){case 0:h=2;break;case 1:h=3;break;case 2:h=1;break;case 3:h=0;break}document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).style="background-image:linear-gradient(".concat(h===0?180:h===1?0:h===2?90:270,"deg, #1d8dd8 0%, rgba(100,143,252,0.00) 30%)"),i==="stop"&&(D=this.jSPlugin.env.domain+"/api/lapp/device/ptz/stop",document.getElementById("".concat(this.jSPlugin.id,"-ez-ptz-container")).style="");var _=new FormData;_.append("deviceSerial",Ke(this.jSPlugin.url).deviceSerial),_.append("channelNo",Ke(this.jSPlugin.url).channelNo),_.append("speed",1),_.append("direction",h),_.append("accessToken",this.jSPlugin.accessToken),fetch(D,{method:"POST",body:_}).then(function(E){return E.json()}).then(function(E){E.code==200||(console.log(E.code,r.codeHandler.matchInfo(E.code,i==="start"?"ptzStart":"ptzStop")),r.pluginStatus.loadingSetText({text:r.codeHandler.matchInfo(E.code,i==="start"?"ptzStart":"ptzStop").msg,color:"red",delayClear:2e3}),(E.code==60005||E.code==60002||E.code==60003||E.code==60004)&&(document.getElementById("".concat(r.jSPlugin.id,"-ez-ptz-container")).style="background-image:linear-gradient(".concat(h===0?180:h===1?0:h===2?90:270,"deg, #f45656 0%, rgba(100,143,252,0.00) 30%)")))}).catch(function(E){console.log("云台调用异常",E)})}}]),f}();(function(f){if(ue(Je)==="object")ae.exports=f();else{var u;typeof window!="undefined"?u=window:typeof Ar!="undefined"?u=Ar:typeof self!="undefined"?u=self:u=this,u.adapter=f()}})(function(){return function(){function f(u,n,i){function r(s,b){if(!n[s]){if(!u[s]){var T=typeof Dr=="function"&&Dr;if(!b&&T)return T(s,!0);if(a)return a(s,!0);var C=new Error("Cannot find module '"+s+"'");throw C.code="MODULE_NOT_FOUND",C}var y=n[s]={exports:{}};u[s][0].call(y.exports,function(h){var D=u[s][1][h];return r(D||h)},y,y.exports,f,u,n,i)}return n[s].exports}for(var a=typeof Dr=="function"&&Dr,l=0;l0&&arguments[0]!==void 0?arguments[0]:{},S=z.window,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0},m=r.log,g=r.detectBrowser(S),k={browserDetails:g,commonShim:_,extractVersion:r.extractVersion,disableLog:r.disableLog,disableWarnings:r.disableWarnings};switch(g.browser){case"chrome":if(!l||!l.shimPeerConnection||!d.shimChrome)return m("Chrome shim is not included in this adapter release."),k;m("adapter.js shimming chrome."),k.browserShim=l,l.shimGetUserMedia(S),l.shimMediaStream(S),l.shimPeerConnection(S),l.shimOnTrack(S),l.shimAddTrackRemoveTrack(S),l.shimGetSendersWithDtmf(S),l.shimGetStats(S),l.shimSenderReceiverGetStats(S),l.fixNegotiationNeeded(S),_.shimRTCIceCandidate(S),_.shimConnectionState(S),_.shimMaxMessageSize(S),_.shimSendThrowTypeError(S),_.removeAllowExtmapMixed(S);break;case"firefox":if(!C||!C.shimPeerConnection||!d.shimFirefox)return m("Firefox shim is not included in this adapter release."),k;m("adapter.js shimming firefox."),k.browserShim=C,C.shimGetUserMedia(S),C.shimPeerConnection(S),C.shimOnTrack(S),C.shimRemoveStream(S),C.shimSenderGetStats(S),C.shimReceiverGetStats(S),C.shimRTCDataChannel(S),C.shimAddTransceiver(S),C.shimCreateOffer(S),C.shimCreateAnswer(S),_.shimRTCIceCandidate(S),_.shimConnectionState(S),_.shimMaxMessageSize(S),_.shimSendThrowTypeError(S);break;case"edge":if(!b||!b.shimPeerConnection||!d.shimEdge)return m("MS edge shim is not included in this adapter release."),k;m("adapter.js shimming edge."),k.browserShim=b,b.shimGetUserMedia(S),b.shimGetDisplayMedia(S),b.shimPeerConnection(S),b.shimReplaceTrack(S),_.shimMaxMessageSize(S),_.shimSendThrowTypeError(S);break;case"safari":if(!h||!d.shimSafari)return m("Safari shim is not included in this adapter release."),k;m("adapter.js shimming safari."),k.browserShim=h,h.shimRTCIceServerUrls(S),h.shimCreateOfferLegacy(S),h.shimCallbacksAPI(S),h.shimLocalStreamsAPI(S),h.shimRemoteStreamsAPI(S),h.shimTrackEventTransceiver(S),h.shimGetUserMedia(S),_.shimRTCIceCandidate(S),_.shimMaxMessageSize(S),_.shimSendThrowTypeError(S),_.removeAllowExtmapMixed(S);break;default:m("Unsupported browser!");break}return k}},{"./chrome/chrome_shim":3,"./common_shim":6,"./edge/edge_shim":7,"./firefox/firefox_shim":11,"./safari/safari_shim":14,"./utils":15}],3:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetDisplayMedia=n.shimGetUserMedia=void 0;var i=typeof Symbol=="function"&&ue(Symbol.iterator)==="symbol"?function(d){return ue(d)}:function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":ue(d)},r=f("./getusermedia");Object.defineProperty(n,"shimGetUserMedia",{enumerable:!0,get:function(){return r.shimGetUserMedia}});var a=f("./getdisplaymedia");Object.defineProperty(n,"shimGetDisplayMedia",{enumerable:!0,get:function(){return a.shimGetDisplayMedia}}),n.shimMediaStream=C,n.shimOnTrack=y,n.shimGetSendersWithDtmf=h,n.shimGetStats=D,n.shimSenderReceiverGetStats=_,n.shimAddTrackRemoveTrackWithNative=E,n.shimAddTrackRemoveTrack=w,n.shimPeerConnection=z,n.fixNegotiationNeeded=S;var l=f("../utils.js"),s=b(l);function b(d){if(d&&d.__esModule)return d;var m={};if(d!=null)for(var g in d)Object.prototype.hasOwnProperty.call(d,g)&&(m[g]=d[g]);return m.default=d,m}function T(d,m,g){return m in d?Object.defineProperty(d,m,{value:g,enumerable:!0,configurable:!0,writable:!0}):d[m]=g,d}function C(d){d.MediaStream=d.MediaStream||d.webkitMediaStream}function y(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection&&!("ontrack"in d.RTCPeerConnection.prototype)){Object.defineProperty(d.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(k){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=k)},enumerable:!0,configurable:!0});var m=d.RTCPeerConnection.prototype.setRemoteDescription;d.RTCPeerConnection.prototype.setRemoteDescription=function(){var k=this;return this._ontrackpoly||(this._ontrackpoly=function(A){A.stream.addEventListener("addtrack",function(O){var H=void 0;d.RTCPeerConnection.prototype.getReceivers?H=k.getReceivers().find(function(X){return X.track&&X.track.id===O.track.id}):H={track:O.track};var Z=new Event("track");Z.track=O.track,Z.receiver=H,Z.transceiver={receiver:H},Z.streams=[A.stream],k.dispatchEvent(Z)}),A.stream.getTracks().forEach(function(O){var H=void 0;d.RTCPeerConnection.prototype.getReceivers?H=k.getReceivers().find(function(X){return X.track&&X.track.id===O.id}):H={track:O};var Z=new Event("track");Z.track=O,Z.receiver=H,Z.transceiver={receiver:H},Z.streams=[A.stream],k.dispatchEvent(Z)})},this.addEventListener("addstream",this._ontrackpoly)),m.apply(this,arguments)}}else s.wrapPeerConnectionEvent(d,"track",function(g){return g.transceiver||Object.defineProperty(g,"transceiver",{value:{receiver:g.receiver}}),g})}function h(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection&&!("getSenders"in d.RTCPeerConnection.prototype)&&"createDTMFSender"in d.RTCPeerConnection.prototype){var m=function(X,ne){return{track:ne,get dtmf(){return this._dtmf===void 0&&(ne.kind==="audio"?this._dtmf=X.createDTMFSender(ne):this._dtmf=null),this._dtmf},_pc:X}};if(!d.RTCPeerConnection.prototype.getSenders){d.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};var g=d.RTCPeerConnection.prototype.addTrack;d.RTCPeerConnection.prototype.addTrack=function(X,ne){var Y=g.apply(this,arguments);return Y||(Y=m(this,X),this._senders.push(Y)),Y};var k=d.RTCPeerConnection.prototype.removeTrack;d.RTCPeerConnection.prototype.removeTrack=function(X){k.apply(this,arguments);var ne=this._senders.indexOf(X);ne!==-1&&this._senders.splice(ne,1)}}var A=d.RTCPeerConnection.prototype.addStream;d.RTCPeerConnection.prototype.addStream=function(X){var ne=this;this._senders=this._senders||[],A.apply(this,[X]),X.getTracks().forEach(function(Y){ne._senders.push(m(ne,Y))})};var O=d.RTCPeerConnection.prototype.removeStream;d.RTCPeerConnection.prototype.removeStream=function(X){var ne=this;this._senders=this._senders||[],O.apply(this,[X]),X.getTracks().forEach(function(Y){var me=ne._senders.find(function(ge){return ge.track===Y});me&&ne._senders.splice(ne._senders.indexOf(me),1)})}}else if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection&&"getSenders"in d.RTCPeerConnection.prototype&&"createDTMFSender"in d.RTCPeerConnection.prototype&&d.RTCRtpSender&&!("dtmf"in d.RTCRtpSender.prototype)){var H=d.RTCPeerConnection.prototype.getSenders;d.RTCPeerConnection.prototype.getSenders=function(){var X=this,ne=H.apply(this,[]);return ne.forEach(function(Y){return Y._pc=X}),ne},Object.defineProperty(d.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function D(d){if(d.RTCPeerConnection){var m=d.RTCPeerConnection.prototype.getStats;d.RTCPeerConnection.prototype.getStats=function(){var k=this,A=Array.prototype.slice.call(arguments),O=A[0],H=A[1],Z=A[2];if(arguments.length>0&&typeof O=="function")return m.apply(this,arguments);if(m.length===0&&(arguments.length===0||typeof O!="function"))return m.apply(this,[]);var X=function(ge){var ve={},Ce=ge.result();return Ce.forEach(function(be){var Pe={id:be.id,timestamp:be.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[be.type]||be.type};be.names().forEach(function(Ye){Pe[Ye]=be.stat(Ye)}),ve[Pe.id]=Pe}),ve},ne=function(ge){return new Map(Object.keys(ge).map(function(ve){return[ve,ge[ve]]}))};if(arguments.length>=2){var Y=function(ge){H(ne(X(ge)))};return m.apply(this,[Y,O])}return new Promise(function(me,ge){m.apply(k,[function(ve){me(ne(X(ve)))},ge])}).then(H,Z)}}}function _(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection&&d.RTCRtpSender&&d.RTCRtpReceiver){if(!("getStats"in d.RTCRtpSender.prototype)){var m=d.RTCPeerConnection.prototype.getSenders;m&&(d.RTCPeerConnection.prototype.getSenders=function(){var H=this,Z=m.apply(this,[]);return Z.forEach(function(X){return X._pc=H}),Z});var g=d.RTCPeerConnection.prototype.addTrack;g&&(d.RTCPeerConnection.prototype.addTrack=function(){var H=g.apply(this,arguments);return H._pc=this,H}),d.RTCRtpSender.prototype.getStats=function(){var H=this;return this._pc.getStats().then(function(Z){return s.filterStats(Z,H.track,!0)})}}if(!("getStats"in d.RTCRtpReceiver.prototype)){var k=d.RTCPeerConnection.prototype.getReceivers;k&&(d.RTCPeerConnection.prototype.getReceivers=function(){var H=this,Z=k.apply(this,[]);return Z.forEach(function(X){return X._pc=H}),Z}),s.wrapPeerConnectionEvent(d,"track",function(O){return O.receiver._pc=O.srcElement,O}),d.RTCRtpReceiver.prototype.getStats=function(){var H=this;return this._pc.getStats().then(function(Z){return s.filterStats(Z,H.track,!1)})}}if("getStats"in d.RTCRtpSender.prototype&&"getStats"in d.RTCRtpReceiver.prototype){var A=d.RTCPeerConnection.prototype.getStats;d.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof d.MediaStreamTrack){var H=arguments[0],Z=void 0,X=void 0,ne=void 0;return this.getSenders().forEach(function(Y){Y.track===H&&(Z?ne=!0:Z=Y)}),this.getReceivers().forEach(function(Y){return Y.track===H&&(X?ne=!0:X=Y),Y.track===H}),ne||Z&&X?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):Z?Z.getStats():X?X.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return A.apply(this,arguments)}}}}function E(d){d.RTCPeerConnection.prototype.getLocalStreams=function(){var H=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(function(Z){return H._shimmedLocalStreams[Z][0]})};var m=d.RTCPeerConnection.prototype.addTrack;d.RTCPeerConnection.prototype.addTrack=function(H,Z){if(!Z)return m.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};var X=m.apply(this,arguments);return this._shimmedLocalStreams[Z.id]?this._shimmedLocalStreams[Z.id].indexOf(X)===-1&&this._shimmedLocalStreams[Z.id].push(X):this._shimmedLocalStreams[Z.id]=[Z,X],X};var g=d.RTCPeerConnection.prototype.addStream;d.RTCPeerConnection.prototype.addStream=function(H){var Z=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{},H.getTracks().forEach(function(Y){var me=Z.getSenders().find(function(ge){return ge.track===Y});if(me)throw new DOMException("Track already exists.","InvalidAccessError")});var X=this.getSenders();g.apply(this,arguments);var ne=this.getSenders().filter(function(Y){return X.indexOf(Y)===-1});this._shimmedLocalStreams[H.id]=[H].concat(ne)};var k=d.RTCPeerConnection.prototype.removeStream;d.RTCPeerConnection.prototype.removeStream=function(H){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[H.id],k.apply(this,arguments)};var A=d.RTCPeerConnection.prototype.removeTrack;d.RTCPeerConnection.prototype.removeTrack=function(H){var Z=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},H&&Object.keys(this._shimmedLocalStreams).forEach(function(X){var ne=Z._shimmedLocalStreams[X].indexOf(H);ne!==-1&&Z._shimmedLocalStreams[X].splice(ne,1),Z._shimmedLocalStreams[X].length===1&&delete Z._shimmedLocalStreams[X]}),A.apply(this,arguments)}}function w(d){if(!d.RTCPeerConnection)return;var m=s.detectBrowser(d);if(d.RTCPeerConnection.prototype.addTrack&&m.version>=65)return E(d);var g=d.RTCPeerConnection.prototype.getLocalStreams;d.RTCPeerConnection.prototype.getLocalStreams=function(){var Y=this,me=g.apply(this);return this._reverseStreams=this._reverseStreams||{},me.map(function(ge){return Y._reverseStreams[ge.id]})};var k=d.RTCPeerConnection.prototype.addStream;d.RTCPeerConnection.prototype.addStream=function(Y){var me=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},Y.getTracks().forEach(function(ve){var Ce=me.getSenders().find(function(be){return be.track===ve});if(Ce)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[Y.id]){var ge=new d.MediaStream(Y.getTracks());this._streams[Y.id]=ge,this._reverseStreams[ge.id]=Y,Y=ge}k.apply(this,[Y])};var A=d.RTCPeerConnection.prototype.removeStream;d.RTCPeerConnection.prototype.removeStream=function(Y){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},A.apply(this,[this._streams[Y.id]||Y]),delete this._reverseStreams[this._streams[Y.id]?this._streams[Y.id].id:Y.id],delete this._streams[Y.id]},d.RTCPeerConnection.prototype.addTrack=function(Y,me){var ge=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var ve=[].slice.call(arguments,1);if(ve.length!==1||!ve[0].getTracks().find(function(Ye){return Ye===Y}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");var Ce=this.getSenders().find(function(Ye){return Ye.track===Y});if(Ce)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};var be=this._streams[me.id];if(be)be.addTrack(Y),Promise.resolve().then(function(){ge.dispatchEvent(new Event("negotiationneeded"))});else{var Pe=new d.MediaStream([Y]);this._streams[me.id]=Pe,this._reverseStreams[Pe.id]=me,this.addStream(Pe)}return this.getSenders().find(function(Ye){return Ye.track===Y})};function O(ne,Y){var me=Y.sdp;return Object.keys(ne._reverseStreams||[]).forEach(function(ge){var ve=ne._reverseStreams[ge],Ce=ne._streams[ve.id];me=me.replace(new RegExp(Ce.id,"g"),ve.id)}),new RTCSessionDescription({type:Y.type,sdp:me})}function H(ne,Y){var me=Y.sdp;return Object.keys(ne._reverseStreams||[]).forEach(function(ge){var ve=ne._reverseStreams[ge],Ce=ne._streams[ve.id];me=me.replace(new RegExp(ve.id,"g"),Ce.id)}),new RTCSessionDescription({type:Y.type,sdp:me})}["createOffer","createAnswer"].forEach(function(ne){var Y=d.RTCPeerConnection.prototype[ne],me=T({},ne,function(){var ge=this,ve=arguments,Ce=arguments.length&&typeof arguments[0]=="function";return Ce?Y.apply(this,[function(be){var Pe=O(ge,be);ve[0].apply(null,[Pe])},function(be){ve[1]&&ve[1].apply(null,be)},arguments[2]]):Y.apply(this,arguments).then(function(be){return O(ge,be)})});d.RTCPeerConnection.prototype[ne]=me[ne]});var Z=d.RTCPeerConnection.prototype.setLocalDescription;d.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?Z.apply(this,arguments):(arguments[0]=H(this,arguments[0]),Z.apply(this,arguments))};var X=Object.getOwnPropertyDescriptor(d.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(d.RTCPeerConnection.prototype,"localDescription",{get:function(){var Y=X.get.apply(this);return Y.type===""?Y:O(this,Y)}}),d.RTCPeerConnection.prototype.removeTrack=function(Y){var me=this;if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!Y._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");var ge=Y._pc===this;if(!ge)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};var ve=void 0;Object.keys(this._streams).forEach(function(Ce){var be=me._streams[Ce].getTracks().find(function(Pe){return Y.track===Pe});be&&(ve=me._streams[Ce])}),ve&&(ve.getTracks().length===1?this.removeStream(this._reverseStreams[ve.id]):ve.removeTrack(Y.track),this.dispatchEvent(new Event("negotiationneeded")))}}function z(d){var m=s.detectBrowser(d);if(!d.RTCPeerConnection&&d.webkitRTCPeerConnection&&(d.RTCPeerConnection=d.webkitRTCPeerConnection),!!d.RTCPeerConnection){m.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(k){var A=d.RTCPeerConnection.prototype[k],O=T({},k,function(){return arguments[0]=new(k==="addIceCandidate"?d.RTCIceCandidate:d.RTCSessionDescription)(arguments[0]),A.apply(this,arguments)});d.RTCPeerConnection.prototype[k]=O[k]});var g=d.RTCPeerConnection.prototype.addIceCandidate;d.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?m.version<78&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():g.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}}function S(d){s.wrapPeerConnectionEvent(d,"negotiationneeded",function(m){var g=m.target;if(g.signalingState==="stable")return m})}},{"../utils.js":15,"./getdisplaymedia":4,"./getusermedia":5}],4:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetDisplayMedia=i;function i(r,a){if(!(r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices)&&r.navigator.mediaDevices){if(typeof a!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}r.navigator.mediaDevices.getDisplayMedia=function(s){return a(s).then(function(b){var T=s.video&&s.video.width,C=s.video&&s.video.height,y=s.video&&s.video.frameRate;return s.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:b,maxFrameRate:y||3}},T&&(s.video.mandatory.maxWidth=T),C&&(s.video.mandatory.maxHeight=C),r.navigator.mediaDevices.getUserMedia(s)})}}}},{}],5:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0});var i=typeof Symbol=="function"&&ue(Symbol.iterator)==="symbol"?function(T){return ue(T)}:function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":ue(T)};n.shimGetUserMedia=b;var r=f("../utils.js"),a=l(r);function l(T){if(T&&T.__esModule)return T;var C={};if(T!=null)for(var y in T)Object.prototype.hasOwnProperty.call(T,y)&&(C[y]=T[y]);return C.default=T,C}var s=a.log;function b(T){var C=T&&T.navigator;if(C.mediaDevices){var y=a.detectBrowser(T),h=function(S){if((typeof S=="undefined"?"undefined":i(S))!=="object"||S.mandatory||S.optional)return S;var d={};return Object.keys(S).forEach(function(m){if(!(m==="require"||m==="advanced"||m==="mediaSource")){var g=i(S[m])==="object"?S[m]:{ideal:S[m]};g.exact!==void 0&&typeof g.exact=="number"&&(g.min=g.max=g.exact);var k=function(H,Z){return H?H+Z.charAt(0).toUpperCase()+Z.slice(1):Z==="deviceId"?"sourceId":Z};if(g.ideal!==void 0){d.optional=d.optional||[];var A={};typeof g.ideal=="number"?(A[k("min",m)]=g.ideal,d.optional.push(A),A={},A[k("max",m)]=g.ideal,d.optional.push(A)):(A[k("",m)]=g.ideal,d.optional.push(A))}g.exact!==void 0&&typeof g.exact!="number"?(d.mandatory=d.mandatory||{},d.mandatory[k("",m)]=g.exact):["min","max"].forEach(function(O){g[O]!==void 0&&(d.mandatory=d.mandatory||{},d.mandatory[k(O,m)]=g[O])})}}),S.advanced&&(d.optional=(d.optional||[]).concat(S.advanced)),d},D=function(S,d){if(y.version>=61)return d(S);if(S=JSON.parse(JSON.stringify(S)),S&&i(S.audio)==="object"){var m=function(H,Z,X){Z in H&&!(X in H)&&(H[X]=H[Z],delete H[Z])};S=JSON.parse(JSON.stringify(S)),m(S.audio,"autoGainControl","googAutoGainControl"),m(S.audio,"noiseSuppression","googNoiseSuppression"),S.audio=h(S.audio)}if(S&&i(S.video)==="object"){var g=S.video.facingMode;g=g&&((typeof g=="undefined"?"undefined":i(g))==="object"?g:{ideal:g});var k=y.version<66;if(g&&(g.exact==="user"||g.exact==="environment"||g.ideal==="user"||g.ideal==="environment")&&!(C.mediaDevices.getSupportedConstraints&&C.mediaDevices.getSupportedConstraints().facingMode&&!k)){delete S.video.facingMode;var A=void 0;if(g.exact==="environment"||g.ideal==="environment"?A=["back","rear"]:(g.exact==="user"||g.ideal==="user")&&(A=["front"]),A)return C.mediaDevices.enumerateDevices().then(function(O){O=O.filter(function(Z){return Z.kind==="videoinput"});var H=O.find(function(Z){return A.some(function(X){return Z.label.toLowerCase().includes(X)})});return!H&&O.length&&A.includes("back")&&(H=O[O.length-1]),H&&(S.video.deviceId=g.exact?{exact:H.deviceId}:{ideal:H.deviceId}),S.video=h(S.video),s("chrome: "+JSON.stringify(S)),d(S)})}S.video=h(S.video)}return s("chrome: "+JSON.stringify(S)),d(S)},_=function(S){return y.version>=64?S:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[S.name]||S.name,message:S.message,constraint:S.constraint||S.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},E=function(S,d,m){D(S,function(g){C.webkitGetUserMedia(g,d,function(k){m&&m(_(k))})})};if(C.getUserMedia=E.bind(C),C.mediaDevices.getUserMedia){var w=C.mediaDevices.getUserMedia.bind(C.mediaDevices);C.mediaDevices.getUserMedia=function(z){return D(z,function(S){return w(S).then(function(d){if(S.audio&&!d.getAudioTracks().length||S.video&&!d.getVideoTracks().length)throw d.getTracks().forEach(function(m){m.stop()}),new DOMException("","NotFoundError");return d},function(d){return Promise.reject(_(d))})})}}}}},{"../utils.js":15}],6:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0});var i=typeof Symbol=="function"&&ue(Symbol.iterator)==="symbol"?function(E){return ue(E)}:function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":ue(E)};n.shimRTCIceCandidate=C,n.shimMaxMessageSize=y,n.shimSendThrowTypeError=h,n.shimConnectionState=D,n.removeAllowExtmapMixed=_;var r=f("sdp"),a=T(r),l=f("./utils"),s=b(l);function b(E){if(E&&E.__esModule)return E;var w={};if(E!=null)for(var z in E)Object.prototype.hasOwnProperty.call(E,z)&&(w[z]=E[z]);return w.default=E,w}function T(E){return E&&E.__esModule?E:{default:E}}function C(E){if(!(!E.RTCIceCandidate||E.RTCIceCandidate&&"foundation"in E.RTCIceCandidate.prototype)){var w=E.RTCIceCandidate;E.RTCIceCandidate=function(S){if((typeof S=="undefined"?"undefined":i(S))==="object"&&S.candidate&&S.candidate.indexOf("a=")===0&&(S=JSON.parse(JSON.stringify(S)),S.candidate=S.candidate.substr(2)),S.candidate&&S.candidate.length){var d=new w(S),m=a.default.parseCandidate(S.candidate),g=Object.assign(d,m);return g.toJSON=function(){return{candidate:g.candidate,sdpMid:g.sdpMid,sdpMLineIndex:g.sdpMLineIndex,usernameFragment:g.usernameFragment}},g}return new w(S)},E.RTCIceCandidate.prototype=w.prototype,s.wrapPeerConnectionEvent(E,"icecandidate",function(z){return z.candidate&&Object.defineProperty(z,"candidate",{value:new E.RTCIceCandidate(z.candidate),writable:"false"}),z})}}function y(E){if(E.RTCPeerConnection){var w=s.detectBrowser(E);"sctp"in E.RTCPeerConnection.prototype||Object.defineProperty(E.RTCPeerConnection.prototype,"sctp",{get:function(){return typeof this._sctp=="undefined"?null:this._sctp}});var z=function(A){if(!A||!A.sdp)return!1;var O=a.default.splitSections(A.sdp);return O.shift(),O.some(function(H){var Z=a.default.parseMLine(H);return Z&&Z.kind==="application"&&Z.protocol.indexOf("SCTP")!==-1})},S=function(A){var O=A.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(O===null||O.length<2)return-1;var H=parseInt(O[1],10);return H!==H?-1:H},d=function(A){var O=65536;return w.browser==="firefox"&&(w.version<57?A===-1?O=16384:O=2147483637:w.version<60?O=w.version===57?65535:65536:O=2147483637),O},m=function(A,O){var H=65536;w.browser==="firefox"&&w.version===57&&(H=65535);var Z=a.default.matchPrefix(A.sdp,"a=max-message-size:");return Z.length>0?H=parseInt(Z[0].substr(19),10):w.browser==="firefox"&&O!==-1&&(H=2147483637),H},g=E.RTCPeerConnection.prototype.setRemoteDescription;E.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,w.browser==="chrome"&&w.version>=76){var A=this.getConfiguration(),O=A.sdpSemantics;O==="plan-b"&&Object.defineProperty(this,"sctp",{get:function(){return typeof this._sctp=="undefined"?null:this._sctp},enumerable:!0,configurable:!0})}if(z(arguments[0])){var H=S(arguments[0]),Z=d(H),X=m(arguments[0],H),ne=void 0;Z===0&&X===0?ne=Number.POSITIVE_INFINITY:Z===0||X===0?ne=Math.max(Z,X):ne=Math.min(Z,X);var Y={};Object.defineProperty(Y,"maxMessageSize",{get:function(){return ne}}),this._sctp=Y}return g.apply(this,arguments)}}}function h(E){if(!(E.RTCPeerConnection&&"createDataChannel"in E.RTCPeerConnection.prototype))return;function w(S,d){var m=S.send;S.send=function(){var k=arguments[0],A=k.length||k.size||k.byteLength;if(S.readyState==="open"&&d.sctp&&A>d.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+d.sctp.maxMessageSize+" bytes)");return m.apply(S,arguments)}}var z=E.RTCPeerConnection.prototype.createDataChannel;E.RTCPeerConnection.prototype.createDataChannel=function(){var d=z.apply(this,arguments);return w(d,this),d},s.wrapPeerConnectionEvent(E,"datachannel",function(S){return w(S.channel,S.target),S})}function D(E){if(!(!E.RTCPeerConnection||"connectionState"in E.RTCPeerConnection.prototype)){var w=E.RTCPeerConnection.prototype;Object.defineProperty(w,"connectionState",{get:function(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(w,"onconnectionstatechange",{get:function(){return this._onconnectionstatechange||null},set:function(S){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),S&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=S)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(function(z){var S=w[z];w[z]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=function(d){var m=d.target;if(m._lastConnectionState!==m.connectionState){m._lastConnectionState=m.connectionState;var g=new Event("connectionstatechange",d);m.dispatchEvent(g)}return d},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),S.apply(this,arguments)}})}}function _(E){if(E.RTCPeerConnection){var w=s.detectBrowser(E);if(!(w.browser==="chrome"&&w.version>=71)){var z=E.RTCPeerConnection.prototype.setRemoteDescription;E.RTCPeerConnection.prototype.setRemoteDescription=function(d){return d&&d.sdp&&d.sdp.indexOf(` +a=extmap-allow-mixed`)!==-1&&(d.sdp=d.sdp.split(` +`).filter(function(m){return m.trim()!=="a=extmap-allow-mixed"}).join(` +`)),z.apply(this,arguments)}}}}},{"./utils":15,sdp:17}],7:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetDisplayMedia=n.shimGetUserMedia=void 0;var i=f("./getusermedia");Object.defineProperty(n,"shimGetUserMedia",{enumerable:!0,get:function(){return i.shimGetUserMedia}});var r=f("./getdisplaymedia");Object.defineProperty(n,"shimGetDisplayMedia",{enumerable:!0,get:function(){return r.shimGetDisplayMedia}}),n.shimPeerConnection=h,n.shimReplaceTrack=D;var a=f("../utils"),l=y(a),s=f("./filtericeservers"),b=f("rtcpeerconnection-shim"),T=C(b);function C(_){return _&&_.__esModule?_:{default:_}}function y(_){if(_&&_.__esModule)return _;var E={};if(_!=null)for(var w in _)Object.prototype.hasOwnProperty.call(_,w)&&(E[w]=_[w]);return E.default=_,E}function h(_){var E=l.detectBrowser(_);if(_.RTCIceGatherer&&(_.RTCIceCandidate||(_.RTCIceCandidate=function(d){return d}),_.RTCSessionDescription||(_.RTCSessionDescription=function(d){return d}),E.version<15025)){var w=Object.getOwnPropertyDescriptor(_.MediaStreamTrack.prototype,"enabled");Object.defineProperty(_.MediaStreamTrack.prototype,"enabled",{set:function(d){w.set.call(this,d);var m=new Event("enabled");m.enabled=d,this.dispatchEvent(m)}})}_.RTCRtpSender&&!("dtmf"in _.RTCRtpSender.prototype)&&Object.defineProperty(_.RTCRtpSender.prototype,"dtmf",{get:function(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=new _.RTCDtmfSender(this):this.track.kind==="video"&&(this._dtmf=null)),this._dtmf}}),_.RTCDtmfSender&&!_.RTCDTMFSender&&(_.RTCDTMFSender=_.RTCDtmfSender);var z=(0,T.default)(_,E.version);_.RTCPeerConnection=function(d){return d&&d.iceServers&&(d.iceServers=(0,s.filterIceServers)(d.iceServers,E.version),l.log("ICE servers after filtering:",d.iceServers)),new z(d)},_.RTCPeerConnection.prototype=z.prototype}function D(_){_.RTCRtpSender&&!("replaceTrack"in _.RTCRtpSender.prototype)&&(_.RTCRtpSender.prototype.replaceTrack=_.RTCRtpSender.prototype.setTrack)}},{"../utils":15,"./filtericeservers":8,"./getdisplaymedia":9,"./getusermedia":10,"rtcpeerconnection-shim":16}],8:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.filterIceServers=l;var i=f("../utils"),r=a(i);function a(s){if(s&&s.__esModule)return s;var b={};if(s!=null)for(var T in s)Object.prototype.hasOwnProperty.call(s,T)&&(b[T]=s[T]);return b.default=s,b}function l(s,b){var T=!1;return s=JSON.parse(JSON.stringify(s)),s.filter(function(C){if(C&&(C.urls||C.url)){var y=C.urls||C.url;C.url&&!C.urls&&r.deprecated("RTCIceServer.url","RTCIceServer.urls");var h=typeof y=="string";return h&&(y=[y]),y=y.filter(function(D){if(D.indexOf("stun:")===0)return!1;var _=D.startsWith("turn")&&!D.startsWith("turn:[")&&D.includes("transport=udp");return _&&!T?(T=!0,!0):_&&!T}),delete C.url,C.urls=h?y[0]:y,!!y.length}})}},{"../utils":15}],9:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetDisplayMedia=i;function i(r){"getDisplayMedia"in r.navigator&&r.navigator.mediaDevices&&(r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices||(r.navigator.mediaDevices.getDisplayMedia=r.navigator.getDisplayMedia.bind(r.navigator)))}},{}],10:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetUserMedia=i;function i(r){var a=r&&r.navigator,l=function(T){return{name:{PermissionDeniedError:"NotAllowedError"}[T.name]||T.name,message:T.message,constraint:T.constraint,toString:function(){return this.name}}},s=a.mediaDevices.getUserMedia.bind(a.mediaDevices);a.mediaDevices.getUserMedia=function(b){return s(b).catch(function(T){return Promise.reject(l(T))})}}},{}],11:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetDisplayMedia=n.shimGetUserMedia=void 0;var i=typeof Symbol=="function"&&ue(Symbol.iterator)==="symbol"?function(d){return ue(d)}:function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":ue(d)},r=f("./getusermedia");Object.defineProperty(n,"shimGetUserMedia",{enumerable:!0,get:function(){return r.shimGetUserMedia}});var a=f("./getdisplaymedia");Object.defineProperty(n,"shimGetDisplayMedia",{enumerable:!0,get:function(){return a.shimGetDisplayMedia}}),n.shimOnTrack=C,n.shimPeerConnection=y,n.shimSenderGetStats=h,n.shimReceiverGetStats=D,n.shimRemoveStream=_,n.shimRTCDataChannel=E,n.shimAddTransceiver=w,n.shimCreateOffer=z,n.shimCreateAnswer=S;var l=f("../utils"),s=b(l);function b(d){if(d&&d.__esModule)return d;var m={};if(d!=null)for(var g in d)Object.prototype.hasOwnProperty.call(d,g)&&(m[g]=d[g]);return m.default=d,m}function T(d,m,g){return m in d?Object.defineProperty(d,m,{value:g,enumerable:!0,configurable:!0,writable:!0}):d[m]=g,d}function C(d){(typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCTrackEvent&&"receiver"in d.RTCTrackEvent.prototype&&!("transceiver"in d.RTCTrackEvent.prototype)&&Object.defineProperty(d.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})}function y(d){var m=s.detectBrowser(d);if(!((typeof d=="undefined"?"undefined":i(d))!=="object"||!(d.RTCPeerConnection||d.mozRTCPeerConnection))){if(!d.RTCPeerConnection&&d.mozRTCPeerConnection&&(d.RTCPeerConnection=d.mozRTCPeerConnection),m.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(O){var H=d.RTCPeerConnection.prototype[O],Z=T({},O,function(){return arguments[0]=new(O==="addIceCandidate"?d.RTCIceCandidate:d.RTCSessionDescription)(arguments[0]),H.apply(this,arguments)});d.RTCPeerConnection.prototype[O]=Z[O]}),m.version<68){var g=d.RTCPeerConnection.prototype.addIceCandidate;d.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?arguments[0]&&arguments[0].candidate===""?Promise.resolve():g.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}var k={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},A=d.RTCPeerConnection.prototype.getStats;d.RTCPeerConnection.prototype.getStats=function(){var H=Array.prototype.slice.call(arguments),Z=H[0],X=H[1],ne=H[2];return A.apply(this,[Z||null]).then(function(Y){if(m.version<53&&!X)try{Y.forEach(function(me){me.type=k[me.type]||me.type})}catch(me){if(me.name!=="TypeError")throw me;Y.forEach(function(ge,ve){Y.set(ve,Object.assign({},ge,{type:k[ge.type]||ge.type}))})}return Y}).then(X,ne)}}}function h(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection&&d.RTCRtpSender&&!(d.RTCRtpSender&&"getStats"in d.RTCRtpSender.prototype)){var m=d.RTCPeerConnection.prototype.getSenders;m&&(d.RTCPeerConnection.prototype.getSenders=function(){var A=this,O=m.apply(this,[]);return O.forEach(function(H){return H._pc=A}),O});var g=d.RTCPeerConnection.prototype.addTrack;g&&(d.RTCPeerConnection.prototype.addTrack=function(){var A=g.apply(this,arguments);return A._pc=this,A}),d.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}}function D(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection&&d.RTCRtpSender&&!(d.RTCRtpSender&&"getStats"in d.RTCRtpReceiver.prototype)){var m=d.RTCPeerConnection.prototype.getReceivers;m&&(d.RTCPeerConnection.prototype.getReceivers=function(){var k=this,A=m.apply(this,[]);return A.forEach(function(O){return O._pc=k}),A}),s.wrapPeerConnectionEvent(d,"track",function(g){return g.receiver._pc=g.srcElement,g}),d.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function _(d){!d.RTCPeerConnection||"removeStream"in d.RTCPeerConnection.prototype||(d.RTCPeerConnection.prototype.removeStream=function(g){var k=this;s.deprecated("removeStream","removeTrack"),this.getSenders().forEach(function(A){A.track&&g.getTracks().includes(A.track)&&k.removeTrack(A)})})}function E(d){d.DataChannel&&!d.RTCDataChannel&&(d.RTCDataChannel=d.DataChannel)}function w(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection){var m=d.RTCPeerConnection.prototype.addTransceiver;m&&(d.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];var k=arguments[1],A=k&&"sendEncodings"in k;A&&k.sendEncodings.forEach(function(X){if("rid"in X){var ne=/^[a-z0-9]{0,16}$/i;if(!ne.test(X.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in X&&!(parseFloat(X.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in X&&!(parseFloat(X.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});var O=m.apply(this,arguments);if(A){var H=O.sender,Z=H.getParameters();"encodings"in Z||(Z.encodings=k.sendEncodings,this.setParametersPromises.push(H.setParameters(Z).catch(function(){})))}return O})}}function z(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection){var m=d.RTCPeerConnection.prototype.createOffer;d.RTCPeerConnection.prototype.createOffer=function(){var k=this,A=arguments;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return m.apply(k,A)}).finally(function(){k.setParametersPromises=[]}):m.apply(this,arguments)}}}function S(d){if((typeof d=="undefined"?"undefined":i(d))==="object"&&d.RTCPeerConnection){var m=d.RTCPeerConnection.prototype.createAnswer;d.RTCPeerConnection.prototype.createAnswer=function(){var k=this,A=arguments;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return m.apply(k,A)}).finally(function(){k.setParametersPromises=[]}):m.apply(this,arguments)}}}},{"../utils":15,"./getdisplaymedia":12,"./getusermedia":13}],12:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0}),n.shimGetDisplayMedia=i;function i(r,a){r.navigator.mediaDevices&&"getDisplayMedia"in r.navigator.mediaDevices||r.navigator.mediaDevices&&(r.navigator.mediaDevices.getDisplayMedia=function(s){if(!(s&&s.video)){var b=new DOMException("getDisplayMedia without video constraints is undefined");return b.name="NotFoundError",b.code=8,Promise.reject(b)}return s.video===!0?s.video={mediaSource:a}:s.video.mediaSource=a,r.navigator.mediaDevices.getUserMedia(s)})}},{}],13:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0});var i=typeof Symbol=="function"&&ue(Symbol.iterator)==="symbol"?function(b){return ue(b)}:function(b){return b&&typeof Symbol=="function"&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":ue(b)};n.shimGetUserMedia=s;var r=f("../utils"),a=l(r);function l(b){if(b&&b.__esModule)return b;var T={};if(b!=null)for(var C in b)Object.prototype.hasOwnProperty.call(b,C)&&(T[C]=b[C]);return T.default=b,T}function s(b){var T=a.detectBrowser(b),C=b&&b.navigator,y=b&&b.MediaStreamTrack;if(C.getUserMedia=function(w,z,S){a.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),C.mediaDevices.getUserMedia(w).then(z,S)},!(T.version>55&&"autoGainControl"in C.mediaDevices.getSupportedConstraints())){var h=function(z,S,d){S in z&&!(d in z)&&(z[d]=z[S],delete z[S])},D=C.mediaDevices.getUserMedia.bind(C.mediaDevices);if(C.mediaDevices.getUserMedia=function(w){return(typeof w=="undefined"?"undefined":i(w))==="object"&&i(w.audio)==="object"&&(w=JSON.parse(JSON.stringify(w)),h(w.audio,"autoGainControl","mozAutoGainControl"),h(w.audio,"noiseSuppression","mozNoiseSuppression")),D(w)},y&&y.prototype.getSettings){var _=y.prototype.getSettings;y.prototype.getSettings=function(){var w=_.apply(this,arguments);return h(w,"mozAutoGainControl","autoGainControl"),h(w,"mozNoiseSuppression","noiseSuppression"),w}}if(y&&y.prototype.applyConstraints){var E=y.prototype.applyConstraints;y.prototype.applyConstraints=function(w){return this.kind==="audio"&&(typeof w=="undefined"?"undefined":i(w))==="object"&&(w=JSON.parse(JSON.stringify(w)),h(w,"autoGainControl","mozAutoGainControl"),h(w,"noiseSuppression","mozNoiseSuppression")),E.apply(this,[w])}}}}},{"../utils":15}],14:[function(f,u,n){Object.defineProperty(n,"__esModule",{value:!0});var i=typeof Symbol=="function"&&ue(Symbol.iterator)==="symbol"?function(E){return ue(E)}:function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":ue(E)};n.shimLocalStreamsAPI=s,n.shimRemoteStreamsAPI=b,n.shimCallbacksAPI=T,n.shimGetUserMedia=C,n.shimConstraints=y,n.shimRTCIceServerUrls=h,n.shimTrackEventTransceiver=D,n.shimCreateOfferLegacy=_;var r=f("../utils"),a=l(r);function l(E){if(E&&E.__esModule)return E;var w={};if(E!=null)for(var z in E)Object.prototype.hasOwnProperty.call(E,z)&&(w[z]=E[z]);return w.default=E,w}function s(E){if(!((typeof E=="undefined"?"undefined":i(E))!=="object"||!E.RTCPeerConnection)){if("getLocalStreams"in E.RTCPeerConnection.prototype||(E.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in E.RTCPeerConnection.prototype)){var w=E.RTCPeerConnection.prototype.addTrack;E.RTCPeerConnection.prototype.addStream=function(S){var d=this;this._localStreams||(this._localStreams=[]),this._localStreams.includes(S)||this._localStreams.push(S),S.getAudioTracks().forEach(function(m){return w.call(d,m,S)}),S.getVideoTracks().forEach(function(m){return w.call(d,m,S)})},E.RTCPeerConnection.prototype.addTrack=function(S){var d=arguments[1];return d&&(this._localStreams?this._localStreams.includes(d)||this._localStreams.push(d):this._localStreams=[d]),w.apply(this,arguments)}}"removeStream"in E.RTCPeerConnection.prototype||(E.RTCPeerConnection.prototype.removeStream=function(S){var d=this;this._localStreams||(this._localStreams=[]);var m=this._localStreams.indexOf(S);if(m!==-1){this._localStreams.splice(m,1);var g=S.getTracks();this.getSenders().forEach(function(k){g.includes(k.track)&&d.removeTrack(k)})}})}}function b(E){if(!((typeof E=="undefined"?"undefined":i(E))!=="object"||!E.RTCPeerConnection)&&("getRemoteStreams"in E.RTCPeerConnection.prototype||(E.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in E.RTCPeerConnection.prototype))){Object.defineProperty(E.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(S){var d=this;this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=S),this.addEventListener("track",this._onaddstreampoly=function(m){m.streams.forEach(function(g){if(d._remoteStreams||(d._remoteStreams=[]),!d._remoteStreams.includes(g)){d._remoteStreams.push(g);var k=new Event("addstream");k.stream=g,d.dispatchEvent(k)}})})}});var w=E.RTCPeerConnection.prototype.setRemoteDescription;E.RTCPeerConnection.prototype.setRemoteDescription=function(){var S=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(d){d.streams.forEach(function(m){if(S._remoteStreams||(S._remoteStreams=[]),!(S._remoteStreams.indexOf(m)>=0)){S._remoteStreams.push(m);var g=new Event("addstream");g.stream=m,S.dispatchEvent(g)}})}),w.apply(S,arguments)}}}function T(E){if(!((typeof E=="undefined"?"undefined":i(E))!=="object"||!E.RTCPeerConnection)){var w=E.RTCPeerConnection.prototype,z=w.createOffer,S=w.createAnswer,d=w.setLocalDescription,m=w.setRemoteDescription,g=w.addIceCandidate;w.createOffer=function(O,H){var Z=arguments.length>=2?arguments[2]:arguments[0],X=z.apply(this,[Z]);return H?(X.then(O,H),Promise.resolve()):X},w.createAnswer=function(O,H){var Z=arguments.length>=2?arguments[2]:arguments[0],X=S.apply(this,[Z]);return H?(X.then(O,H),Promise.resolve()):X};var k=function(O,H,Z){var X=d.apply(this,[O]);return Z?(X.then(H,Z),Promise.resolve()):X};w.setLocalDescription=k,k=function(O,H,Z){var X=m.apply(this,[O]);return Z?(X.then(H,Z),Promise.resolve()):X},w.setRemoteDescription=k,k=function(O,H,Z){var X=g.apply(this,[O]);return Z?(X.then(H,Z),Promise.resolve()):X},w.addIceCandidate=k}}function C(E){var w=E&&E.navigator;if(w.mediaDevices&&w.mediaDevices.getUserMedia){var z=w.mediaDevices,S=z.getUserMedia.bind(z);w.mediaDevices.getUserMedia=function(d){return S(y(d))}}!w.getUserMedia&&w.mediaDevices&&w.mediaDevices.getUserMedia&&(w.getUserMedia=function(m,g,k){w.mediaDevices.getUserMedia(m).then(g,k)}.bind(w))}function y(E){return E&&E.video!==void 0?Object.assign({},E,{video:a.compactObject(E.video)}):E}function h(E){var w=E.RTCPeerConnection;E.RTCPeerConnection=function(S,d){if(S&&S.iceServers){for(var m=[],g=0;g=m&&parseInt(g[m],10)}function b(S,d,m){if(S.RTCPeerConnection){var g=S.RTCPeerConnection.prototype,k=g.addEventListener;g.addEventListener=function(O,H){if(O!==d)return k.apply(this,arguments);var Z=function(ne){var Y=m(ne);Y&&H(Y)};return this._eventMap=this._eventMap||{},this._eventMap[H]=Z,k.apply(this,[O,Z])};var A=g.removeEventListener;g.removeEventListener=function(O,H){if(O!==d||!this._eventMap||!this._eventMap[H])return A.apply(this,arguments);var Z=this._eventMap[H];return delete this._eventMap[H],A.apply(this,[O,Z])},Object.defineProperty(g,"on"+d,{get:function(){return this["_on"+d]},set:function(H){this["_on"+d]&&(this.removeEventListener(d,this["_on"+d]),delete this["_on"+d]),H&&this.addEventListener(d,this["_on"+d]=H)},enumerable:!0,configurable:!0})}}function T(S){return typeof S!="boolean"?new Error("Argument type: "+(typeof S=="undefined"?"undefined":i(S))+". Please use a boolean."):(a=S,S?"adapter.js logging disabled":"adapter.js logging enabled")}function C(S){return typeof S!="boolean"?new Error("Argument type: "+(typeof S=="undefined"?"undefined":i(S))+". Please use a boolean."):(l=!S,"adapter.js deprecation warnings "+(S?"disabled":"enabled"))}function y(){if((typeof window=="undefined"?"undefined":i(window))==="object"){if(a)return;typeof console!="undefined"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function h(S,d){l&&console.warn(S+" is deprecated, please use "+d+" instead.")}function D(S){var d=S.navigator,m={browser:null,version:null};if(typeof S=="undefined"||!S.navigator)return m.browser="Not a browser.",m;if(d.mozGetUserMedia)m.browser="firefox",m.version=s(d.userAgent,/Firefox\/(\d+)\./,1);else if(d.webkitGetUserMedia||S.isSecureContext===!1&&S.webkitRTCPeerConnection&&!S.RTCIceGatherer)m.browser="chrome",m.version=s(d.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(d.mediaDevices&&d.userAgent.match(/Edge\/(\d+).(\d+)$/))m.browser="edge",m.version=s(d.userAgent,/Edge\/(\d+).(\d+)$/,2);else if(S.RTCPeerConnection&&d.userAgent.match(/AppleWebKit\/(\d+)\./))m.browser="safari",m.version=s(d.userAgent,/AppleWebKit\/(\d+)\./,1),m.supportsUnifiedPlan=S.RTCRtpTransceiver&&"currentDirection"in S.RTCRtpTransceiver.prototype;else return m.browser="Not a supported browser.",m;return m}function _(S){return Object.prototype.toString.call(S)==="[object Object]"}function E(S){return _(S)?Object.keys(S).reduce(function(d,m){var g=_(S[m]),k=g?E(S[m]):S[m],A=g&&!Object.keys(k).length;return k===void 0||A?d:Object.assign(d,r({},m,k))},{}):S}function w(S,d,m){!d||m.has(d.id)||(m.set(d.id,d),Object.keys(d).forEach(function(g){g.endsWith("Id")?w(S,S.get(d[g]),m):g.endsWith("Ids")&&d[g].forEach(function(k){w(S,S.get(k),m)})}))}function z(S,d,m){var g=m?"outbound-rtp":"inbound-rtp",k=new Map;if(d===null)return k;var A=[];return S.forEach(function(O){O.type==="track"&&O.trackIdentifier===d.id&&A.push(O)}),A.forEach(function(O){S.forEach(function(H){H.type===g&&H.trackId===O.id&&w(S,H,k)})}),k}},{}],16:[function(f,u,n){var i=f("sdp");function r(y){return{inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[y.type]||y.type}function a(y,h,D,_,E){var w=i.writeRtpDescription(y.kind,h);if(w+=i.writeIceParameters(y.iceGatherer.getLocalParameters()),w+=i.writeDtlsParameters(y.dtlsTransport.getLocalParameters(),D==="offer"?"actpass":E||"active"),w+="a=mid:"+y.mid+`\r +`,y.rtpSender&&y.rtpReceiver?w+=`a=sendrecv\r +`:y.rtpSender?w+=`a=sendonly\r +`:y.rtpReceiver?w+=`a=recvonly\r +`:w+=`a=inactive\r +`,y.rtpSender){var z=y.rtpSender._initialTrackId||y.rtpSender.track.id;y.rtpSender._initialTrackId=z;var S="msid:"+(_?_.id:"-")+" "+z+`\r +`;w+="a="+S,w+="a=ssrc:"+y.sendEncodingParameters[0].ssrc+" "+S,y.sendEncodingParameters[0].rtx&&(w+="a=ssrc:"+y.sendEncodingParameters[0].rtx.ssrc+" "+S,w+="a=ssrc-group:FID "+y.sendEncodingParameters[0].ssrc+" "+y.sendEncodingParameters[0].rtx.ssrc+`\r +`)}return w+="a=ssrc:"+y.sendEncodingParameters[0].ssrc+" cname:"+i.localCName+`\r +`,y.rtpSender&&y.sendEncodingParameters[0].rtx&&(w+="a=ssrc:"+y.sendEncodingParameters[0].rtx.ssrc+" cname:"+i.localCName+`\r +`),w}function l(y,h){var D=!1;return y=JSON.parse(JSON.stringify(y)),y.filter(function(_){if(_&&(_.urls||_.url)){var E=_.urls||_.url;_.url&&!_.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var w=typeof E=="string";return w&&(E=[E]),E=E.filter(function(z){var S=z.indexOf("turn:")===0&&z.indexOf("transport=udp")!==-1&&z.indexOf("turn:[")===-1&&!D;return S?(D=!0,!0):z.indexOf("stun:")===0&&h>=14393&&z.indexOf("?transport=udp")===-1}),delete _.url,_.urls=w?E[0]:E,!!E.length}})}function s(y,h){var D={codecs:[],headerExtensions:[],fecMechanisms:[]},_=function(z,S){z=parseInt(z,10);for(var d=0;d0;A--)this._iceGatherers.push(new y.RTCIceGatherer({iceServers:m.iceServers,gatherPolicy:m.iceTransportPolicy}));else m.iceCandidatePoolSize=0;this._config=m,this.transceivers=[],this._sdpSessionId=i.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(w.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(w.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),w.prototype.onicecandidate=null,w.prototype.onaddstream=null,w.prototype.ontrack=null,w.prototype.onremovestream=null,w.prototype.onsignalingstatechange=null,w.prototype.oniceconnectionstatechange=null,w.prototype.onconnectionstatechange=null,w.prototype.onicegatheringstatechange=null,w.prototype.onnegotiationneeded=null,w.prototype.ondatachannel=null,w.prototype._dispatchEvent=function(d,m){this._isClosed||(this.dispatchEvent(m),typeof this["on"+d]=="function"&&this["on"+d](m))},w.prototype._emitGatheringStateChange=function(){var d=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",d)},w.prototype.getConfiguration=function(){return this._config},w.prototype.getLocalStreams=function(){return this.localStreams},w.prototype.getRemoteStreams=function(){return this.remoteStreams},w.prototype._createTransceiver=function(d,m){var g=this.transceivers.length>0,k={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:d,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&g)k.iceTransport=this.transceivers[0].iceTransport,k.dtlsTransport=this.transceivers[0].dtlsTransport;else{var A=this._createIceAndDtlsTransports();k.iceTransport=A.iceTransport,k.dtlsTransport=A.dtlsTransport}return m||this.transceivers.push(k),k},w.prototype.addTrack=function(d,m){if(this._isClosed)throw C("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var g=this.transceivers.find(function(O){return O.track===d});if(g)throw C("InvalidAccessError","Track already exists.");for(var k,A=0;A=15025)d.getTracks().forEach(function(k){m.addTrack(k,d)});else{var g=d.clone();d.getTracks().forEach(function(k,A){var O=g.getTracks()[A];k.addEventListener("enabled",function(H){O.enabled=H.enabled})}),g.getTracks().forEach(function(k){m.addTrack(k,g)})}},w.prototype.removeTrack=function(d){if(this._isClosed)throw C("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(d instanceof y.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var m=this.transceivers.find(function(A){return A.rtpSender===d});if(!m)throw C("InvalidAccessError","Sender was not created by this connection.");var g=m.stream;m.rtpSender.stop(),m.rtpSender=null,m.track=null,m.stream=null;var k=this.transceivers.map(function(A){return A.stream});k.indexOf(g)===-1&&this.localStreams.indexOf(g)>-1&&this.localStreams.splice(this.localStreams.indexOf(g),1),this._maybeFireNegotiationNeeded()},w.prototype.removeStream=function(d){var m=this;d.getTracks().forEach(function(g){var k=m.getSenders().find(function(A){return A.track===g});k&&m.removeTrack(k)})},w.prototype.getSenders=function(){return this.transceivers.filter(function(d){return!!d.rtpSender}).map(function(d){return d.rtpSender})},w.prototype.getReceivers=function(){return this.transceivers.filter(function(d){return!!d.rtpReceiver}).map(function(d){return d.rtpReceiver})},w.prototype._createIceGatherer=function(d,m){var g=this;if(m&&d>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var k=new y.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(k,"state",{value:"new",writable:!0}),this.transceivers[d].bufferedCandidateEvents=[],this.transceivers[d].bufferCandidates=function(A){var O=!A.candidate||Object.keys(A.candidate).length===0;k.state=O?"completed":"gathering",g.transceivers[d].bufferedCandidateEvents!==null&&g.transceivers[d].bufferedCandidateEvents.push(A)},k.addEventListener("localcandidate",this.transceivers[d].bufferCandidates),k},w.prototype._gather=function(d,m){var g=this,k=this.transceivers[m].iceGatherer;if(!k.onlocalcandidate){var A=this.transceivers[m].bufferedCandidateEvents;this.transceivers[m].bufferedCandidateEvents=null,k.removeEventListener("localcandidate",this.transceivers[m].bufferCandidates),k.onlocalcandidate=function(O){if(!(g.usingBundle&&m>0)){var H=new Event("icecandidate");H.candidate={sdpMid:d,sdpMLineIndex:m};var Z=O.candidate,X=!Z||Object.keys(Z).length===0;if(X)(k.state==="new"||k.state==="gathering")&&(k.state="completed");else{k.state==="new"&&(k.state="gathering"),Z.component=1,Z.ufrag=k.getLocalParameters().usernameFragment;var ne=i.writeCandidate(Z);H.candidate=Object.assign(H.candidate,i.parseCandidate(ne)),H.candidate.candidate=ne,H.candidate.toJSON=function(){return{candidate:H.candidate.candidate,sdpMid:H.candidate.sdpMid,sdpMLineIndex:H.candidate.sdpMLineIndex,usernameFragment:H.candidate.usernameFragment}}}var Y=i.getMediaSections(g._localDescription.sdp);X?Y[H.candidate.sdpMLineIndex]+=`a=end-of-candidates\r +`:Y[H.candidate.sdpMLineIndex]+="a="+H.candidate.candidate+`\r +`,g._localDescription.sdp=i.getDescription(g._localDescription.sdp)+Y.join("");var me=g.transceivers.every(function(ge){return ge.iceGatherer&&ge.iceGatherer.state==="completed"});g.iceGatheringState!=="gathering"&&(g.iceGatheringState="gathering",g._emitGatheringStateChange()),X||g._dispatchEvent("icecandidate",H),me&&(g._dispatchEvent("icecandidate",new Event("icecandidate")),g.iceGatheringState="complete",g._emitGatheringStateChange())}},y.setTimeout(function(){A.forEach(function(O){k.onlocalcandidate(O)})},0)}},w.prototype._createIceAndDtlsTransports=function(){var d=this,m=new y.RTCIceTransport(null);m.onicestatechange=function(){d._updateIceConnectionState(),d._updateConnectionState()};var g=new y.RTCDtlsTransport(m);return g.ondtlsstatechange=function(){d._updateConnectionState()},g.onerror=function(){Object.defineProperty(g,"state",{value:"failed",writable:!0}),d._updateConnectionState()},{iceTransport:m,dtlsTransport:g}},w.prototype._disposeIceAndDtlsTransports=function(d){var m=this.transceivers[d].iceGatherer;m&&(delete m.onlocalcandidate,delete this.transceivers[d].iceGatherer);var g=this.transceivers[d].iceTransport;g&&(delete g.onicestatechange,delete this.transceivers[d].iceTransport);var k=this.transceivers[d].dtlsTransport;k&&(delete k.ondtlsstatechange,delete k.onerror,delete this.transceivers[d].dtlsTransport)},w.prototype._transceive=function(d,m,g){var k=s(d.localCapabilities,d.remoteCapabilities);m&&d.rtpSender&&(k.encodings=d.sendEncodingParameters,k.rtcp={cname:i.localCName,compound:d.rtcpParameters.compound},d.recvEncodingParameters.length&&(k.rtcp.ssrc=d.recvEncodingParameters[0].ssrc),d.rtpSender.send(k)),g&&d.rtpReceiver&&k.codecs.length>0&&(d.kind==="video"&&d.recvEncodingParameters&&h<15019&&d.recvEncodingParameters.forEach(function(A){delete A.rtx}),d.recvEncodingParameters.length?k.encodings=d.recvEncodingParameters:k.encodings=[{}],k.rtcp={compound:d.rtcpParameters.compound},d.rtcpParameters.cname&&(k.rtcp.cname=d.rtcpParameters.cname),d.sendEncodingParameters.length&&(k.rtcp.ssrc=d.sendEncodingParameters[0].ssrc),d.rtpReceiver.receive(k))},w.prototype.setLocalDescription=function(d){var m=this;if(["offer","answer"].indexOf(d.type)===-1)return Promise.reject(C("TypeError",'Unsupported type "'+d.type+'"'));if(!b("setLocalDescription",d.type,m.signalingState)||m._isClosed)return Promise.reject(C("InvalidStateError","Can not set local "+d.type+" in state "+m.signalingState));var g,k;if(d.type==="offer")g=i.splitSections(d.sdp),k=g.shift(),g.forEach(function(O,H){var Z=i.parseRtpParameters(O);m.transceivers[H].localCapabilities=Z}),m.transceivers.forEach(function(O,H){m._gather(O.mid,H)});else if(d.type==="answer"){g=i.splitSections(m._remoteDescription.sdp),k=g.shift();var A=i.matchPrefix(k,"a=ice-lite").length>0;g.forEach(function(O,H){var Z=m.transceivers[H],X=Z.iceGatherer,ne=Z.iceTransport,Y=Z.dtlsTransport,me=Z.localCapabilities,ge=Z.remoteCapabilities,ve=i.isRejected(O)&&i.matchPrefix(O,"a=bundle-only").length===0;if(!ve&&!Z.rejected){var Ce=i.getIceParameters(O,k),be=i.getDtlsParameters(O,k);A&&(be.role="server"),(!m.usingBundle||H===0)&&(m._gather(Z.mid,H),ne.state==="new"&&ne.start(X,Ce,A?"controlling":"controlled"),Y.state==="new"&&Y.start(be));var Pe=s(me,ge);m._transceive(Z,Pe.codecs.length>0,!1)}})}return m._localDescription={type:d.type,sdp:d.sdp},d.type==="offer"?m._updateSignalingState("have-local-offer"):m._updateSignalingState("stable"),Promise.resolve()},w.prototype.setRemoteDescription=function(d){var m=this;if(["offer","answer"].indexOf(d.type)===-1)return Promise.reject(C("TypeError",'Unsupported type "'+d.type+'"'));if(!b("setRemoteDescription",d.type,m.signalingState)||m._isClosed)return Promise.reject(C("InvalidStateError","Can not set remote "+d.type+" in state "+m.signalingState));var g={};m.remoteStreams.forEach(function(ne){g[ne.id]=ne});var k=[],A=i.splitSections(d.sdp),O=A.shift(),H=i.matchPrefix(O,"a=ice-lite").length>0,Z=i.matchPrefix(O,"a=group:BUNDLE ").length>0;m.usingBundle=Z;var X=i.matchPrefix(O,"a=ice-options:")[0];return X?m.canTrickleIceCandidates=X.substr(14).split(" ").indexOf("trickle")>=0:m.canTrickleIceCandidates=!1,A.forEach(function(ne,Y){var me=i.splitLines(ne),ge=i.getKind(ne),ve=i.isRejected(ne)&&i.matchPrefix(ne,"a=bundle-only").length===0,Ce=me[0].substr(2).split(" ")[2],be=i.getDirection(ne,O),Pe=i.parseMsid(ne),Ye=i.getMid(ne)||i.generateIdentifier();if(ve||ge==="application"&&(Ce==="DTLS/SCTP"||Ce==="UDP/DTLS/SCTP")){m.transceivers[Y]={mid:Ye,kind:ge,protocol:Ce,rejected:!0};return}!ve&&m.transceivers[Y]&&m.transceivers[Y].rejected&&(m.transceivers[Y]=m._createTransceiver(ge,!0));var N,K,te,ce,he,Re,we,ke,We,yn=i.parseRtpParameters(ne),Yt,It;ve||(Yt=i.getIceParameters(ne,O),It=i.getDtlsParameters(ne,O),It.role="client"),we=i.parseRtpEncodingParameters(ne);var Ht=i.parseRtcpParameters(ne),Ge=i.matchPrefix(ne,"a=end-of-candidates",O).length>0,Ct=i.matchPrefix(ne,"a=candidate:").map(function(ye){return i.parseCandidate(ye)}).filter(function(ye){return ye.component===1});if((d.type==="offer"||d.type==="answer")&&!ve&&Z&&Y>0&&m.transceivers[Y]&&(m._disposeIceAndDtlsTransports(Y),m.transceivers[Y].iceGatherer=m.transceivers[0].iceGatherer,m.transceivers[Y].iceTransport=m.transceivers[0].iceTransport,m.transceivers[Y].dtlsTransport=m.transceivers[0].dtlsTransport,m.transceivers[Y].rtpSender&&m.transceivers[Y].rtpSender.setTransport(m.transceivers[0].dtlsTransport),m.transceivers[Y].rtpReceiver&&m.transceivers[Y].rtpReceiver.setTransport(m.transceivers[0].dtlsTransport)),d.type==="offer"&&!ve){N=m.transceivers[Y]||m._createTransceiver(ge),N.mid=Ye,N.iceGatherer||(N.iceGatherer=m._createIceGatherer(Y,Z)),Ct.length&&N.iceTransport.state==="new"&&(Ge&&(!Z||Y===0)?N.iceTransport.setRemoteCandidates(Ct):Ct.forEach(function(ye){T(N.iceTransport,ye)})),ke=y.RTCRtpReceiver.getCapabilities(ge),h<15019&&(ke.codecs=ke.codecs.filter(function(ye){return ye.name!=="rtx"})),Re=N.sendEncodingParameters||[{ssrc:(2*Y+2)*1001}];var kt=!1;if(be==="sendrecv"||be==="sendonly"){if(kt=!N.rtpReceiver,he=N.rtpReceiver||new y.RTCRtpReceiver(N.dtlsTransport,ge),kt){var Oe;We=he.track,Pe&&Pe.stream==="-"||(Pe?(g[Pe.stream]||(g[Pe.stream]=new y.MediaStream,Object.defineProperty(g[Pe.stream],"id",{get:function(){return Pe.stream}})),Object.defineProperty(We,"id",{get:function(){return Pe.track}}),Oe=g[Pe.stream]):(g.default||(g.default=new y.MediaStream),Oe=g.default)),Oe&&(D(We,Oe),N.associatedRemoteMediaStreams.push(Oe)),k.push([We,he,Oe])}}else N.rtpReceiver&&N.rtpReceiver.track&&(N.associatedRemoteMediaStreams.forEach(function(ye){var De=ye.getTracks().find(function(Xe){return Xe.id===N.rtpReceiver.track.id});De&&_(De,ye)}),N.associatedRemoteMediaStreams=[]);N.localCapabilities=ke,N.remoteCapabilities=yn,N.rtpReceiver=he,N.rtcpParameters=Ht,N.sendEncodingParameters=Re,N.recvEncodingParameters=we,m._transceive(m.transceivers[Y],!1,kt)}else if(d.type==="answer"&&!ve){N=m.transceivers[Y],K=N.iceGatherer,te=N.iceTransport,ce=N.dtlsTransport,he=N.rtpReceiver,Re=N.sendEncodingParameters,ke=N.localCapabilities,m.transceivers[Y].recvEncodingParameters=we,m.transceivers[Y].remoteCapabilities=yn,m.transceivers[Y].rtcpParameters=Ht,Ct.length&&te.state==="new"&&((H||Ge)&&(!Z||Y===0)?te.setRemoteCandidates(Ct):Ct.forEach(function(ye){T(N.iceTransport,ye)})),(!Z||Y===0)&&(te.state==="new"&&te.start(K,Yt,"controlling"),ce.state==="new"&&ce.start(It));var rt=s(N.localCapabilities,N.remoteCapabilities),Ae=rt.codecs.filter(function(ye){return ye.name.toLowerCase()==="rtx"}).length;!Ae&&N.sendEncodingParameters[0].rtx&&delete N.sendEncodingParameters[0].rtx,m._transceive(N,be==="sendrecv"||be==="recvonly",be==="sendrecv"||be==="sendonly"),he&&(be==="sendrecv"||be==="sendonly")?(We=he.track,Pe?(g[Pe.stream]||(g[Pe.stream]=new y.MediaStream),D(We,g[Pe.stream]),k.push([We,he,g[Pe.stream]])):(g.default||(g.default=new y.MediaStream),D(We,g.default),k.push([We,he,g.default]))):delete N.rtpReceiver}}),m._dtlsRole===void 0&&(m._dtlsRole=d.type==="offer"?"active":"passive"),m._remoteDescription={type:d.type,sdp:d.sdp},d.type==="offer"?m._updateSignalingState("have-remote-offer"):m._updateSignalingState("stable"),Object.keys(g).forEach(function(ne){var Y=g[ne];if(Y.getTracks().length){if(m.remoteStreams.indexOf(Y)===-1){m.remoteStreams.push(Y);var me=new Event("addstream");me.stream=Y,y.setTimeout(function(){m._dispatchEvent("addstream",me)})}k.forEach(function(ge){var ve=ge[0],Ce=ge[1];Y.id===ge[2].id&&E(m,ve,Ce,[Y])})}}),k.forEach(function(ne){ne[2]||E(m,ne[0],ne[1],[])}),y.setTimeout(function(){m&&m.transceivers&&m.transceivers.forEach(function(ne){ne.iceTransport&&ne.iceTransport.state==="new"&&ne.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),ne.iceTransport.addRemoteCandidate({}))})},4e3),Promise.resolve()},w.prototype.close=function(){this.transceivers.forEach(function(d){d.iceTransport&&d.iceTransport.stop(),d.dtlsTransport&&d.dtlsTransport.stop(),d.rtpSender&&d.rtpSender.stop(),d.rtpReceiver&&d.rtpReceiver.stop()}),this._isClosed=!0,this._updateSignalingState("closed")},w.prototype._updateSignalingState=function(d){this.signalingState=d;var m=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",m)},w.prototype._maybeFireNegotiationNeeded=function(){var d=this;this.signalingState!=="stable"||this.needNegotiation===!0||(this.needNegotiation=!0,y.setTimeout(function(){if(d.needNegotiation){d.needNegotiation=!1;var m=new Event("negotiationneeded");d._dispatchEvent("negotiationneeded",m)}},0))},w.prototype._updateIceConnectionState=function(){var d,m={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(k){k.iceTransport&&!k.rejected&&m[k.iceTransport.state]++}),d="new",m.failed>0?d="failed":m.checking>0?d="checking":m.disconnected>0?d="disconnected":m.new>0?d="new":m.connected>0?d="connected":m.completed>0&&(d="completed"),d!==this.iceConnectionState){this.iceConnectionState=d;var g=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",g)}},w.prototype._updateConnectionState=function(){var d,m={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(k){k.iceTransport&&k.dtlsTransport&&!k.rejected&&(m[k.iceTransport.state]++,m[k.dtlsTransport.state]++)}),m.connected+=m.completed,d="new",m.failed>0?d="failed":m.connecting>0?d="connecting":m.disconnected>0?d="disconnected":m.new>0?d="new":m.connected>0&&(d="connected"),d!==this.connectionState){this.connectionState=d;var g=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",g)}},w.prototype.createOffer=function(){var d=this;if(d._isClosed)return Promise.reject(C("InvalidStateError","Can not call createOffer after close"));var m=d.transceivers.filter(function(H){return H.kind==="audio"}).length,g=d.transceivers.filter(function(H){return H.kind==="video"}).length,k=arguments[0];if(k){if(k.mandatory||k.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");k.offerToReceiveAudio!==void 0&&(k.offerToReceiveAudio===!0?m=1:k.offerToReceiveAudio===!1?m=0:m=k.offerToReceiveAudio),k.offerToReceiveVideo!==void 0&&(k.offerToReceiveVideo===!0?g=1:k.offerToReceiveVideo===!1?g=0:g=k.offerToReceiveVideo)}for(d.transceivers.forEach(function(H){H.kind==="audio"?(m--,m<0&&(H.wantReceive=!1)):H.kind==="video"&&(g--,g<0&&(H.wantReceive=!1))});m>0||g>0;)m>0&&(d._createTransceiver("audio"),m--),g>0&&(d._createTransceiver("video"),g--);var A=i.writeSessionBoilerplate(d._sdpSessionId,d._sdpSessionVersion++);d.transceivers.forEach(function(H,Z){var X=H.track,ne=H.kind,Y=H.mid||i.generateIdentifier();H.mid=Y,H.iceGatherer||(H.iceGatherer=d._createIceGatherer(Z,d.usingBundle));var me=y.RTCRtpSender.getCapabilities(ne);h<15019&&(me.codecs=me.codecs.filter(function(ve){return ve.name!=="rtx"})),me.codecs.forEach(function(ve){ve.name==="H264"&&ve.parameters["level-asymmetry-allowed"]===void 0&&(ve.parameters["level-asymmetry-allowed"]="1"),H.remoteCapabilities&&H.remoteCapabilities.codecs&&H.remoteCapabilities.codecs.forEach(function(Ce){ve.name.toLowerCase()===Ce.name.toLowerCase()&&ve.clockRate===Ce.clockRate&&(ve.preferredPayloadType=Ce.payloadType)})}),me.headerExtensions.forEach(function(ve){var Ce=H.remoteCapabilities&&H.remoteCapabilities.headerExtensions||[];Ce.forEach(function(be){ve.uri===be.uri&&(ve.id=be.id)})});var ge=H.sendEncodingParameters||[{ssrc:(2*Z+1)*1001}];X&&h>=15019&&ne==="video"&&!ge[0].rtx&&(ge[0].rtx={ssrc:ge[0].ssrc+1}),H.wantReceive&&(H.rtpReceiver=new y.RTCRtpReceiver(H.dtlsTransport,ne)),H.localCapabilities=me,H.sendEncodingParameters=ge}),d._config.bundlePolicy!=="max-compat"&&(A+="a=group:BUNDLE "+d.transceivers.map(function(H){return H.mid}).join(" ")+`\r +`),A+=`a=ice-options:trickle\r +`,d.transceivers.forEach(function(H,Z){A+=a(H,H.localCapabilities,"offer",H.stream,d._dtlsRole),A+=`a=rtcp-rsize\r +`,H.iceGatherer&&d.iceGatheringState!=="new"&&(Z===0||!d.usingBundle)&&(H.iceGatherer.getLocalCandidates().forEach(function(X){X.component=1,A+="a="+i.writeCandidate(X)+`\r +`}),H.iceGatherer.state==="completed"&&(A+=`a=end-of-candidates\r +`))});var O=new y.RTCSessionDescription({type:"offer",sdp:A});return Promise.resolve(O)},w.prototype.createAnswer=function(){var d=this;if(d._isClosed)return Promise.reject(C("InvalidStateError","Can not call createAnswer after close"));if(!(d.signalingState==="have-remote-offer"||d.signalingState==="have-local-pranswer"))return Promise.reject(C("InvalidStateError","Can not call createAnswer in signalingState "+d.signalingState));var m=i.writeSessionBoilerplate(d._sdpSessionId,d._sdpSessionVersion++);d.usingBundle&&(m+="a=group:BUNDLE "+d.transceivers.map(function(A){return A.mid}).join(" ")+`\r +`),m+=`a=ice-options:trickle\r +`;var g=i.getMediaSections(d._remoteDescription.sdp).length;d.transceivers.forEach(function(A,O){if(!(O+1>g)){if(A.rejected){A.kind==="application"?A.protocol==="DTLS/SCTP"?m+=`m=application 0 DTLS/SCTP 5000\r +`:m+="m=application 0 "+A.protocol+` webrtc-datachannel\r +`:A.kind==="audio"?m+=`m=audio 0 UDP/TLS/RTP/SAVPF 0\r +a=rtpmap:0 PCMU/8000\r +`:A.kind==="video"&&(m+=`m=video 0 UDP/TLS/RTP/SAVPF 120\r +a=rtpmap:120 VP8/90000\r +`),m+=`c=IN IP4 0.0.0.0\r +a=inactive\r +a=mid:`+A.mid+`\r +`;return}if(A.stream){var H;A.kind==="audio"?H=A.stream.getAudioTracks()[0]:A.kind==="video"&&(H=A.stream.getVideoTracks()[0]),H&&h>=15019&&A.kind==="video"&&!A.sendEncodingParameters[0].rtx&&(A.sendEncodingParameters[0].rtx={ssrc:A.sendEncodingParameters[0].ssrc+1})}var Z=s(A.localCapabilities,A.remoteCapabilities),X=Z.codecs.filter(function(ne){return ne.name.toLowerCase()==="rtx"}).length;!X&&A.sendEncodingParameters[0].rtx&&delete A.sendEncodingParameters[0].rtx,m+=a(A,Z,"answer",A.stream,d._dtlsRole),A.rtcpParameters&&A.rtcpParameters.reducedSize&&(m+=`a=rtcp-rsize\r +`)}});var k=new y.RTCSessionDescription({type:"answer",sdp:m});return Promise.resolve(k)},w.prototype.addIceCandidate=function(d){var m=this,g;return d&&!(d.sdpMLineIndex!==void 0||d.sdpMid)?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise(function(k,A){if(m._remoteDescription)if(!d||d.candidate==="")for(var O=0;O0?i.parseCandidate(d.candidate):{};if(ne.protocol==="tcp"&&(ne.port===0||ne.port===9)||ne.component&&ne.component!==1)return k();if((H===0||H>0&&X.iceTransport!==m.transceivers[0].iceTransport)&&!T(X.iceTransport,ne))return A(C("OperationError","Can not add ICE candidate"));var Y=d.candidate.trim();Y.indexOf("a=")===0&&(Y=Y.substr(2)),g=i.getMediaSections(m._remoteDescription.sdp),g[H]+="a="+(ne.type?Y:"end-of-candidates")+`\r +`,m._remoteDescription.sdp=i.getDescription(m._remoteDescription.sdp)+g.join("")}else return A(C("OperationError","Can not add ICE candidate"))}else return A(C("InvalidStateError","Can not add ICE candidate without a remote description"));k()})},w.prototype.getStats=function(d){if(d&&d instanceof y.MediaStreamTrack){var m=null;if(this.transceivers.forEach(function(k){k.rtpSender&&k.rtpSender.track===d?m=k.rtpSender:k.rtpReceiver&&k.rtpReceiver.track===d&&(m=k.rtpReceiver)}),!m)throw C("InvalidAccessError","Invalid selector.");return m.getStats()}var g=[];return this.transceivers.forEach(function(k){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(A){k[A]&&g.push(k[A].getStats())})}),Promise.all(g).then(function(k){var A=new Map;return k.forEach(function(O){O.forEach(function(H){A.set(H.id,H)})}),A})};var z=["RTCRtpSender","RTCRtpReceiver","RTCIceGatherer","RTCIceTransport","RTCDtlsTransport"];z.forEach(function(d){var m=y[d];if(m&&m.prototype&&m.prototype.getStats){var g=m.prototype.getStats;m.prototype.getStats=function(){return g.apply(this).then(function(k){var A=new Map;return Object.keys(k).forEach(function(O){k[O].type=r(k[O]),A.set(O,k[O])}),A})}}});var S=["createOffer","createAnswer"];return S.forEach(function(d){var m=w.prototype[d];w.prototype[d]=function(){var g=arguments;return typeof g[0]=="function"||typeof g[1]=="function"?m.apply(this,[arguments[2]]).then(function(k){typeof g[0]=="function"&&g[0].apply(null,[k])},function(k){typeof g[1]=="function"&&g[1].apply(null,[k])}):m.apply(this,arguments)}}),S=["setLocalDescription","setRemoteDescription","addIceCandidate"],S.forEach(function(d){var m=w.prototype[d];w.prototype[d]=function(){var g=arguments;return typeof g[1]=="function"||typeof g[2]=="function"?m.apply(this,arguments).then(function(){typeof g[1]=="function"&&g[1].apply(null)},function(k){typeof g[2]=="function"&&g[2].apply(null,[k])}):m.apply(this,arguments)}}),["getStats"].forEach(function(d){var m=w.prototype[d];w.prototype[d]=function(){var g=arguments;return typeof g[1]=="function"?m.apply(this,arguments).then(function(){typeof g[1]=="function"&&g[1].apply(null)}):m.apply(this,arguments)}}),w}},{sdp:17}],17:[function(f,u,n){var i={};i.generateIdentifier=function(){return Math.random().toString(36).substr(2,10)},i.localCName=i.generateIdentifier(),i.splitLines=function(r){return r.trim().split(` +`).map(function(a){return a.trim()})},i.splitSections=function(r){var a=r.split(` +m=`);return a.map(function(l,s){return(s>0?"m="+l:l).trim()+`\r +`})},i.getDescription=function(r){var a=i.splitSections(r);return a&&a[0]},i.getMediaSections=function(r){var a=i.splitSections(r);return a.shift(),a},i.matchPrefix=function(r,a){return i.splitLines(r).filter(function(l){return l.indexOf(a)===0})},i.parseCandidate=function(r){var a;r.indexOf("a=candidate:")===0?a=r.substring(12).split(" "):a=r.substring(10).split(" ");for(var l={foundation:a[0],component:parseInt(a[1],10),protocol:a[2].toLowerCase(),priority:parseInt(a[3],10),ip:a[4],address:a[4],port:parseInt(a[5],10),type:a[7]},s=8;s0?a[0].split("/")[1]:"sendrecv",uri:a[1]}},i.writeExtmap=function(r){return"a=extmap:"+(r.id||r.preferredId)+(r.direction&&r.direction!=="sendrecv"?"/"+r.direction:"")+" "+r.uri+`\r +`},i.parseFmtp=function(r){for(var a={},l,s=r.substr(r.indexOf(" ")+1).split(";"),b=0;b-1?(l.attribute=r.substr(a+1,s-a-1),l.value=r.substr(s+1)):l.attribute=r.substr(a+1),l},i.parseSsrcGroup=function(r){var a=r.substr(13).split(" ");return{semantics:a.shift(),ssrcs:a.map(function(l){return parseInt(l,10)})}},i.getMid=function(r){var a=i.matchPrefix(r,"a=mid:")[0];if(a)return a.substr(6)},i.parseFingerprint=function(r){var a=r.substr(14).split(" ");return{algorithm:a[0].toLowerCase(),value:a[1]}},i.getDtlsParameters=function(r,a){var l=i.matchPrefix(r+a,"a=fingerprint:");return{role:"auto",fingerprints:l.map(i.parseFingerprint)}},i.writeDtlsParameters=function(r,a){var l="a=setup:"+a+`\r +`;return r.fingerprints.forEach(function(s){l+="a=fingerprint:"+s.algorithm+" "+s.value+`\r +`}),l},i.getIceParameters=function(r,a){var l=i.splitLines(r);l=l.concat(i.splitLines(a));var s={usernameFragment:l.filter(function(b){return b.indexOf("a=ice-ufrag:")===0})[0].substr(12),password:l.filter(function(b){return b.indexOf("a=ice-pwd:")===0})[0].substr(10)};return s},i.writeIceParameters=function(r){return"a=ice-ufrag:"+r.usernameFragment+`\r +a=ice-pwd:`+r.password+`\r +`},i.parseRtpParameters=function(r){for(var a={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},l=i.splitLines(r),s=l[0].split(" "),b=3;b0?"9":"0",l+=" UDP/TLS/RTP/SAVPF ",l+=a.codecs.map(function(b){return b.preferredPayloadType!==void 0?b.preferredPayloadType:b.payloadType}).join(" ")+`\r +`,l+=`c=IN IP4 0.0.0.0\r +`,l+=`a=rtcp:9 IN IP4 0.0.0.0\r +`,a.codecs.forEach(function(b){l+=i.writeRtpMap(b),l+=i.writeFmtp(b),l+=i.writeRtcpFb(b)});var s=0;return a.codecs.forEach(function(b){b.maxptime>s&&(s=b.maxptime)}),s>0&&(l+="a=maxptime:"+s+`\r +`),l+=`a=rtcp-mux\r +`,a.headerExtensions&&a.headerExtensions.forEach(function(b){l+=i.writeExtmap(b)}),l},i.parseRtpEncodingParameters=function(r){var a=[],l=i.parseRtpParameters(r),s=l.fecMechanisms.indexOf("RED")!==-1,b=l.fecMechanisms.indexOf("ULPFEC")!==-1,T=i.matchPrefix(r,"a=ssrc:").map(function(_){return i.parseSsrcMedia(_)}).filter(function(_){return _.attribute==="cname"}),C=T.length>0&&T[0].ssrc,y,h=i.matchPrefix(r,"a=ssrc-group:FID").map(function(_){var E=_.substr(17).split(" ");return E.map(function(w){return parseInt(w,10)})});h.length>0&&h[0].length>1&&h[0][0]===C&&(y=h[0][1]),l.codecs.forEach(function(_){if(_.name.toUpperCase()==="RTX"&&_.parameters.apt){var E={ssrc:C,codecPayloadType:parseInt(_.parameters.apt,10)};C&&y&&(E.rtx={ssrc:y}),a.push(E),s&&(E=JSON.parse(JSON.stringify(E)),E.fec={ssrc:C,mechanism:b?"red+ulpfec":"red"},a.push(E))}}),a.length===0&&C&&a.push({ssrc:C});var D=i.matchPrefix(r,"b=");return D.length&&(D[0].indexOf("b=TIAS:")===0?D=parseInt(D[0].substr(7),10):D[0].indexOf("b=AS:")===0?D=parseInt(D[0].substr(5),10)*1e3*.95-50*40*8:D=void 0,a.forEach(function(_){_.maxBitrate=D})),a},i.parseRtcpParameters=function(r){var a={},l=i.matchPrefix(r,"a=ssrc:").map(function(T){return i.parseSsrcMedia(T)}).filter(function(T){return T.attribute==="cname"})[0];l&&(a.cname=l.value,a.ssrc=l.ssrc);var s=i.matchPrefix(r,"a=rtcp-rsize");a.reducedSize=s.length>0,a.compound=s.length===0;var b=i.matchPrefix(r,"a=rtcp-mux");return a.mux=b.length>0,a},i.parseMsid=function(r){var a,l=i.matchPrefix(r,"a=msid:");if(l.length===1)return a=l[0].substr(7).split(" "),{stream:a[0],track:a[1]};var s=i.matchPrefix(r,"a=ssrc:").map(function(b){return i.parseSsrcMedia(b)}).filter(function(b){return b.attribute==="msid"});if(s.length>0)return a=s[0].value.split(" "),{stream:a[0],track:a[1]}},i.parseSctpDescription=function(r){var a=i.parseMLine(r),l=i.matchPrefix(r,"a=max-message-size:"),s;l.length>0&&(s=parseInt(l[0].substr(19),10)),isNaN(s)&&(s=65536);var b=i.matchPrefix(r,"a=sctp-port:");if(b.length>0)return{port:parseInt(b[0].substr(12),10),protocol:a.fmt,maxMessageSize:s};var T=i.matchPrefix(r,"a=sctpmap:");if(T.length>0){var C=i.matchPrefix(r,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(C[0],10),protocol:C[1],maxMessageSize:s}}},i.writeSctpDescription=function(r,a){var l=[];return r.protocol!=="DTLS/SCTP"?l=["m="+r.kind+" 9 "+r.protocol+" "+a.protocol+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctp-port:"+a.port+`\r +`]:l=["m="+r.kind+" 9 "+r.protocol+" "+a.port+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctpmap:"+a.port+" "+a.protocol+` 65535\r +`],a.maxMessageSize!==void 0&&l.push("a=max-message-size:"+a.maxMessageSize+`\r +`),l.join("")},i.generateSessionId=function(){return Math.random().toString().substr(2,21)},i.writeSessionBoilerplate=function(r,a,l){var s,b=a!==void 0?a:2;r?s=r:s=i.generateSessionId();var T=l||"thisisadapterortc";return`v=0\r +o=`+T+" "+s+" "+b+` IN IP4 127.0.0.1\r +s=-\r +t=0 0\r +`},i.writeMediaSection=function(r,a,l,s){var b=i.writeRtpDescription(r.kind,a);if(b+=i.writeIceParameters(r.iceGatherer.getLocalParameters()),b+=i.writeDtlsParameters(r.dtlsTransport.getLocalParameters(),l==="offer"?"actpass":"active"),b+="a=mid:"+r.mid+`\r +`,r.direction?b+="a="+r.direction+`\r +`:r.rtpSender&&r.rtpReceiver?b+=`a=sendrecv\r +`:r.rtpSender?b+=`a=sendonly\r +`:r.rtpReceiver?b+=`a=recvonly\r +`:b+=`a=inactive\r +`,r.rtpSender){var T="msid:"+s.id+" "+r.rtpSender.track.id+`\r +`;b+="a="+T,b+="a=ssrc:"+r.sendEncodingParameters[0].ssrc+" "+T,r.sendEncodingParameters[0].rtx&&(b+="a=ssrc:"+r.sendEncodingParameters[0].rtx.ssrc+" "+T,b+="a=ssrc-group:FID "+r.sendEncodingParameters[0].ssrc+" "+r.sendEncodingParameters[0].rtx.ssrc+`\r +`)}return b+="a=ssrc:"+r.sendEncodingParameters[0].ssrc+" cname:"+i.localCName+`\r +`,r.rtpSender&&r.sendEncodingParameters[0].rtx&&(b+="a=ssrc:"+r.sendEncodingParameters[0].rtx.ssrc+" cname:"+i.localCName+`\r +`),b},i.getDirection=function(r,a){for(var l=i.splitLines(r),s=0;s=26&&f<=u?!0:p.extension.isInstalled()}else return!0};var na={extensionId:"hapfgfdkleiggjjpfpenajgdnfckjpaj",isInstalled:function(){return document.querySelector("#janus-extension-installed")!==null},getScreen:function(u){var n=window.setTimeout(function(){var i=new Error("NavigatorUserMediaError");return i.name='The required Chrome extension is not installed: click here to install it. (NOTE: this will need you to refresh the page)',u(i)},1e3);this.cache[n]=u,window.postMessage({type:"janusGetScreen",id:n},"*")},init:function(){var u={};this.cache=u,window.addEventListener("message",function(n){if(n.origin==window.location.origin)if(n.data.type=="janusGotScreen"&&u[n.data.id]){var i=u[n.data.id];if(delete u[n.data.id],n.data.sourceId===""){var r=new Error("NavigatorUserMediaError");r.name="You cancelled the request for permission, giving up...",i(r)}else i(null,n.data.sourceId)}else n.data.type=="janusGetScreenPending"&&(console.log("clearing ",n.data.id),window.clearTimeout(n.data.id))})}};p.useDefaultDependencies=function(f){var u=f&&f.fetch||fetch,n=f&&f.Promise||Promise,i=f&&f.WebSocket||WebSocket;return{newWebSocket:function(a,l){return new i(a,l)},extension:f&&f.extension||na,isArray:function(a){return Array.isArray(a)},webRTCAdapter:f&&f.adapter||window.adapter,httpAPICall:function(a,l){var s={method:l.verb,headers:{Accept:"application/json, text/plain, */*"},cache:"no-cache"};l.verb==="POST"&&(s.headers["Content-Type"]="application/json"),l.withCredentials!==void 0&&(s.credentials=l.withCredentials===!0?"include":l.withCredentials?l.withCredentials:"omit"),l.body!==void 0&&(s.body=JSON.stringify(l.body));var b=u(a,s).catch(function(C){return n.reject({message:"Probably a network error, is the server down?",error:C})});if(l.timeout!==void 0){var T=new n(function(C,y){var h=setTimeout(function(){return clearTimeout(h),y({message:"Request timed out",timeout:l.timeout})},l.timeout)});b=n.race([b,T])}return b.then(function(C){if(C.ok){if(ue(l.success)===ue(p.noop))return C.json().then(function(y){l.success(y)}).catch(function(y){return n.reject({message:"Failed to parse response body",error:y,response:C})})}else return n.reject({message:"API call failed",response:C})}).catch(function(C){ue(l.error)===ue(p.noop)&&l.error(C.message||"<< internal error >>",C)}),b}}},p.useOldDependencies=function(f){var u=f&&f.jQuery||jQuery,n=f&&f.WebSocket||WebSocket;return{newWebSocket:function(r,a){return new n(r,a)},isArray:function(r){return u.isArray(r)},extension:f&&f.extension||na,webRTCAdapter:f&&f.adapter||adapter,httpAPICall:function(r,a){var l=a.body!==void 0?{contentType:"application/json",data:JSON.stringify(a.body)}:{},s=a.withCredentials!==void 0?{xhrFields:{withCredentials:a.withCredentials}}:{};return u.ajax(u.extend(l,s,{url:r,type:a.verb,cache:!1,dataType:"json",async:a.async,timeout:a.timeout,success:function(T){ue(a.success)===ue(p.noop)&&a.success(T)},error:function(T,C,y){ue(a.error)===ue(p.noop)&&a.error(C,y)}}))}}},p.noop=function(){},p.dataChanDefaultLabel="JanusDataChannel",p.endOfCandidates=null,p.init=function(f){if(f=f||{},f.callback=typeof f.callback=="function"?f.callback:p.noop,p.initDone===!0)f.callback();else{if((typeof console=="undefined"||typeof console.log=="undefined")&&(console={log:function(){}}),p.trace=p.noop,p.debug=p.noop,p.vdebug=p.noop,p.log=p.noop,p.warn=p.noop,p.error=p.noop,f.debug===!0||f.debug==="all")p.trace=console.trace.bind(console),p.debug=console.debug.bind(console),p.vdebug=console.debug.bind(console),p.log=console.log.bind(console),p.warn=console.warn.bind(console),p.error=console.error.bind(console);else if(Array.isArray(f.debug))for(var u in f.debug){var n=f.debug[u];switch(n){case"trace":p.trace=console.trace.bind(console);break;case"debug":p.debug=console.debug.bind(console);break;case"vdebug":p.vdebug=console.debug.bind(console);break;case"log":p.log=console.log.bind(console);break;case"warn":p.warn=console.warn.bind(console);break;case"error":p.error=console.error.bind(console);break;default:console.error("Unknown debugging option '"+n+"' (supported: 'trace', 'debug', 'vdebug', 'log', warn', 'error')");break}}p.log("Initializing library");var i=f.dependencies||p.useDefaultDependencies();p.isArray=i.isArray,p.webRTCAdapter=i.webRTCAdapter,p.httpAPICall=i.httpAPICall,p.newWebSocket=i.newWebSocket,p.extension=i.extension,p.extension.init(),p.listDevices=function(C,y){C=typeof C=="function"?C:p.noop,y==null&&(y={audio:!0,video:!0}),p.isGetUserMediaAvailable()?navigator.mediaDevices.getUserMedia(y).then(function(h){navigator.mediaDevices.enumerateDevices().then(function(D){p.debug(D),C(D);try{var _=h.getTracks();for(var E in _){var w=_[E];w!=null&&w.stop()}}catch(z){}})}).catch(function(h){p.error(h),C([])}):(p.warn("navigator.mediaDevices unavailable"),C([]))},p.attachMediaStream=function(C,y){if(p.webRTCAdapter.browserDetails.browser==="chrome"){var h=p.webRTCAdapter.browserDetails.version;h>=52?C.srcObject=y:p.error("Error attaching stream to element")}else C.srcObject=y},p.reattachMediaStream=function(C,y){if(p.webRTCAdapter.browserDetails.browser==="chrome"){var h=p.webRTCAdapter.browserDetails.version;h>=52?C.srcObject=y.srcObject:typeof C.src!="undefined"?C.src=y.src:p.error("Error reattaching stream to element")}else C.srcObject=y.srcObject};var r=["iPad","iPhone","iPod"].indexOf(navigator.platform)>=0,a=r?"pagehide":"beforeunload",l=window["on"+a];if(window.addEventListener(a,function(C){p.log("Closing window");for(var y in p.sessions)p.sessions[y]!==null&&p.sessions[y]!==void 0&&p.sessions[y].destroyOnUnload&&(p.log("Destroying session "+y),p.sessions[y].destroy({asyncRequest:!1,notifyDestroyed:!1}));l&&typeof l=="function"&&l()}),p.safariVp8=!1,p.webRTCAdapter.browserDetails.browser==="safari"&&p.webRTCAdapter.browserDetails.version>=605)if(RTCRtpSender&&RTCRtpSender.getCapabilities&&RTCRtpSender.getCapabilities("video")&&RTCRtpSender.getCapabilities("video").codecs&&RTCRtpSender.getCapabilities("video").codecs.length){for(var u in RTCRtpSender.getCapabilities("video").codecs){var s=RTCRtpSender.getCapabilities("video").codecs[u];if(s&&s.mimeType&&s.mimeType.toLowerCase()==="video/vp8"){p.safariVp8=!0;break}}p.safariVp8?p.log("This version of Safari supports VP8"):p.warn("This version of Safari does NOT support VP8: if you're using a Technology Preview, try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu")}else{var b=new RTCPeerConnection({},{});b.createOffer({offerToReceiveVideo:!0}).then(function(C){p.safariVp8=C.sdp.indexOf("VP8")!==-1,p.safariVp8?p.log("This version of Safari supports VP8"):p.warn("This version of Safari does NOT support VP8: if you're using a Technology Preview, try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu"),b.close(),b=null})}if(p.unifiedPlan=!1,p.webRTCAdapter.browserDetails.browser==="firefox"&&p.webRTCAdapter.browserDetails.version>=59)p.unifiedPlan=!0;else if(p.webRTCAdapter.browserDetails.browser==="chrome"&&p.webRTCAdapter.browserDetails.version<72)p.unifiedPlan=!1;else if(typeof RTCRtpTransceiver!="undefined"&&!("currentDirection"in RTCRtpTransceiver.prototype))p.unifiedPlan=!1;else{var T=new RTCPeerConnection;try{T.addTransceiver("audio"),p.unifiedPlan=!0}catch(C){}T.close()}p.initDone=!0,f.callback()}},p.isWebrtcSupported=function(){return window.RTCPeerConnection!==void 0&&window.RTCPeerConnection!==null},p.isGetUserMediaAvailable=function(){return navigator.mediaDevices!==void 0&&navigator.mediaDevices!==null&&navigator.mediaDevices.getUserMedia!==void 0&&navigator.mediaDevices.getUserMedia!==null},p.randomString=function(f){for(var u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n="",i=0;i3){d=!1,f.error("Lost connection to the server (is it down?)");return}H()}})}}function Z(P,M){if(A=0,!u&&m!==void 0&&m!==null&&M!==!0&&H(),!u&&p.isArray(P)){for(var F=0;F data channel: "+Qe),Qe==="open"){if(V.dataChannel[se].pending&&V.dataChannel[se].pending.length>0){p.log("Sending pending messages on <"+se+">:",V.dataChannel[se].pending.length);for(var mt in V.dataChannel[se].pending){var Ie=V.dataChannel[se].pending[mt];p.log("Sending string on data channel <"+se+">: "+Ie),V.dataChannel[se].send(Ie)}V.dataChannel[se].pending=[]}I.ondataopen(se)}},q=function(ee){p.error("Got error on data channel:",ee)};F?V.dataChannel[M]=F:V.dataChannel[M]=V.pc.createDataChannel(M,{ordered:!1}),V.dataChannel[M].onmessage=L,V.dataChannel[M].onopen=J,V.dataChannel[M].onclose=J,V.dataChannel[M].onerror=q,V.dataChannel[M].pending=[],j&&V.dataChannel[M].pending.push(j)}function be(P,M){M=M||{},M.success=typeof M.success=="function"?M.success:p.noop,M.error=typeof M.error=="function"?M.error:p.noop;var F=g[P];if(F==null||F.webrtcStuff===null||F.webrtcStuff===void 0){p.warn("Invalid handle"),M.error("Invalid handle");return}var j=F.webrtcStuff,I=M.text;if(I==null){p.warn("Invalid text"),M.error("Invalid text");return}var V=M.label?M.label:p.dataChanDefaultLabel;if(!j.dataChannel[V]){Ce(P,V,!1,I),M.success();return}if(j.dataChannel[V].readyState!=="open"){j.dataChannel[V].pending.push(I),M.success();return}p.log("Sending string on data channel <"+V+">: "+I),j.dataChannel[V].send(I),M.success()}function Pe(P,M){M=M||{},M.success=typeof M.success=="function"?M.success:p.noop,M.error=typeof M.error=="function"?M.error:p.noop;var F=g[P];if(F==null||F.webrtcStuff===null||F.webrtcStuff===void 0){p.warn("Invalid handle"),M.error("Invalid handle");return}var j=F.webrtcStuff;if(j.dtmfSender===null||j.dtmfSender===void 0){if(j.pc!==void 0&&j.pc!==null){var I=j.pc.getSenders(),V=I.find(function(ee){return ee.track&&ee.track.kind==="audio"});if(!V){p.warn("Invalid DTMF configuration (no audio track)"),M.error("Invalid DTMF configuration (no audio track)");return}j.dtmfSender=V.dtmf,j.dtmfSender&&(p.log("Created DTMF Sender"),j.dtmfSender.ontonechange=function(ee){p.debug("Sent DTMF tone: "+ee.tone)})}if(j.dtmfSender===null||j.dtmfSender===void 0){p.warn("Invalid DTMF configuration"),M.error("Invalid DTMF configuration");return}}var L=M.dtmf;if(L==null){p.warn("Invalid DTMF parameters"),M.error("Invalid DTMF parameters");return}var J=L.tones;if(J==null){p.warn("Invalid DTMF string"),M.error("Invalid DTMF string");return}var q=L.duration;q==null&&(q=500);var de=L.gap;de==null&&(de=50),p.debug("Sending DTMF string "+J+" (duration "+q+"ms, gap "+de+"ms)"),j.dtmfSender.insertDTMF(J,q,de),M.success()}function Ye(P,M){M=M||{},M.success=typeof M.success=="function"?M.success:p.noop,M.error=typeof M.error=="function"?M.error:p.noop;var F=!0;M.asyncRequest!==void 0&&M.asyncRequest!==null&&(F=M.asyncRequest===!0);var j=!0;M.noRequest!==void 0&&M.noRequest!==null&&(j=M.noRequest===!0),p.log("Destroying handle "+P+" (async="+F+")"),It(P);var I=g[P];if(I==null||I.detached){delete g[P],M.success();return}if(j){delete g[P],M.success();return}if(!d){p.warn("Is the server down? (connected=false)"),M.error("Is the server down? (connected=false)");return}var V={rtcgw:"detach",transaction:p.randomString(12)};if(I.token!==null&&I.token!==void 0&&(V.token=I.token),E!=null&&(V.apisecret=E),u){V.session_id=m,V.handle_id=P,n.send(JSON.stringify(V)),delete g[P],M.success();return}p.httpAPICall(s+"/"+m+"/"+P,{verb:"POST",async:F,withCredentials:h,body:V,success:function(J){p.log("Destroyed handle:"),p.debug(J),J.rtcgw!=="success"&&p.error("Ooops: "+J.error.code+" "+J.error.reason),delete g[P],M.success()},error:function(J,q){p.error(J+":",q),delete g[P],M.success()}})}function N(P,M,F,j,I){var V=g[P];if(V==null||V.webrtcStuff===null||V.webrtcStuff===void 0){p.warn("Invalid handle"),j.error("Invalid handle");return}var L=V.webrtcStuff;p.debug("streamsDone:",I),I&&(p.debug(" -- Audio tracks:",I.getAudioTracks()),p.debug(" -- Video tracks:",I.getVideoTracks()));var J=!1;if(!L.myStream||!F.update||L.streamExternal)L.myStream=I,J=!0;else{if((!F.update&&Ge(F)||F.update&&(F.addAudio||F.replaceAudio))&&I.getAudioTracks()&&I.getAudioTracks().length)if(L.myStream.addTrack(I.getAudioTracks()[0]),p.unifiedPlan){p.log((F.replaceAudio?"Replacing":"Adding")+" audio track:",I.getAudioTracks()[0]);var q=null,de=L.pc.getTransceivers();if(de&&de.length>0)for(var ee in de){var se=de[ee];if(se.sender&&se.sender.track&&se.sender.track.kind==="audio"||se.receiver&&se.receiver.track&&se.receiver.track.kind==="audio"){q=se;break}}q&&q.sender?q.sender.replaceTrack(I.getAudioTracks()[0]):L.pc.addTrack(I.getAudioTracks()[0],I)}else p.log((F.replaceAudio?"Replacing":"Adding")+" audio track:",I.getAudioTracks()[0]),L.pc.addTrack(I.getAudioTracks()[0],I);if((!F.update&&Oe(F)||F.update&&(F.addVideo||F.replaceVideo))&&I.getVideoTracks()&&I.getVideoTracks().length)if(L.myStream.addTrack(I.getVideoTracks()[0]),p.unifiedPlan){p.log((F.replaceVideo?"Replacing":"Adding")+" video track:",I.getVideoTracks()[0]);var Qe=null,de=L.pc.getTransceivers();if(de&&de.length>0)for(var ee in de){var se=de[ee];if(se.sender&&se.sender.track&&se.sender.track.kind==="video"||se.receiver&&se.receiver.track&&se.receiver.track.kind==="video"){Qe=se;break}}Qe&&Qe.sender?Qe.sender.replaceTrack(I.getVideoTracks()[0]):L.pc.addTrack(I.getVideoTracks()[0],I)}else p.log((F.replaceVideo?"Replacing":"Adding")+" video track:",I.getVideoTracks()[0]),L.pc.addTrack(I.getVideoTracks()[0],I)}if(!L.pc){var mt={iceServers:b,iceTransportPolicy:T,bundlePolicy:C};p.webRTCAdapter.browserDetails.browser==="chrome"&&(mt.sdpSemantics=p.webRTCAdapter.browserDetails.version<72?"plan-b":"unified-plan");var Ie={optional:[{DtlsSrtpKeyAgreement:!0}]};if(y===!0&&Ie.optional.push({googIPv6:!0}),j.rtcConstraints&&ue(j.rtcConstraints)==="object"){p.debug("Adding custom PeerConnection constraints:",j.rtcConstraints);for(var ee in j.rtcConstraints)Ie.optional.push(j.rtcConstraints[ee])}p.webRTCAdapter.browserDetails.browser==="edge"&&(mt.bundlePolicy="max-bundle"),p.log("Creating PeerConnection"),p.debug(Ie),L.pc=new RTCPeerConnection(mt,Ie),p.debug(L.pc),L.pc.getStats&&(L.volume={},L.bitrate.value="0 kbits/sec"),p.log("Preparing local SDP and gathering candidates (trickle="+L.trickle+")"),L.pc.oniceconnectionstatechange=function(Be){L.pc&&V.iceState(L.pc.iceConnectionState)},L.pc.onicecandidate=function(Be){if(Be.candidate==null||p.webRTCAdapter.browserDetails.browser==="edge"&&Be.candidate.candidate.indexOf("endOfCandidates")>0)p.log("End of candidates."),L.iceDone=!0,L.trickle===!0?ve(P,{completed:!0}):Re(P,j);else{var tt={candidate:Be.candidate.candidate,sdpMid:Be.candidate.sdpMid,sdpMLineIndex:Be.candidate.sdpMLineIndex};L.trickle===!0&&ve(P,tt)}},L.pc.ontrack=function(Be){p.log("Handling Remote Track"),p.debug(Be),Be.streams&&(L.remoteStream=Be.streams[0],V.onremotestream(L.remoteStream),!Be.track.onended&&(p.log("Adding onended callback to track:",Be.track),Be.track.onended=function(tt){p.log("Remote track muted/removed:",tt),L.remoteStream&&(L.remoteStream.removeTrack(tt.target),V.onremotestream(L.remoteStream))},Be.track.onmute=Be.track.onended,Be.track.onunmute=function(tt){p.log("Remote track flowing again:",tt);try{L.remoteStream.addTrack(tt.target),V.onremotestream(L.remoteStream)}catch(Xt){p.error(Xt)}}))}}if(J&&I!==null&&I!==void 0){p.log("Adding local stream");var ht=j.simulcast2===!0;I.getTracks().forEach(function(Be){if(p.log("Adding local track:",Be),!ht)L.pc.addTrack(Be,I);else if(Be.kind==="audio")L.pc.addTrack(Be,I);else{p.log("Enabling rid-based simulcasting:",Be);var tt=S(j.simulcastMaxBitrates);L.pc.addTransceiver(Be,{direction:"sendrecv",streams:[I],sendEncodings:[{rid:"h",active:!0,maxBitrate:tt.high},{rid:"m",active:!0,maxBitrate:tt.medium,scaleResolutionDownBy:2},{rid:"l",active:!0,maxBitrate:tt.low,scaleResolutionDownBy:4}]})}})}De(F)&&!L.dataChannel[p.dataChanDefaultLabel]&&(p.log("Creating data channel"),Ce(P,p.dataChanDefaultLabel,!1),L.pc.ondatachannel=function(Be){p.log("Data channel created by Janus:",Be),Ce(P,Be.channel.label,Be.channel)}),L.myStream&&V.onlocalstream(L.myStream),M==null?ce(P,F,j):L.pc.setRemoteDescription(M).then(function(){if(p.log("Remote description accepted!"),L.remoteSdp=M.sdp,L.candidates&&L.candidates.length>0){for(var Be=0;Be=26&&Si<=ji?(ht={video:{mandatory:{googLeakyBucket:!0,maxWidth:window.screen.width,maxHeight:window.screen.height,minFrameRate:I.screenshareFrameRate,maxFrameRate:I.screenshareFrameRate,chromeMediaSource:"screen"}},audio:Ge(I)&&!I.keepAudio},Ti(ht,Nn)):p.extension.getScreen(function(yt,pt){if(yt)return V.consentDialog(!1),F.error(yt);ht={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",maxWidth:window.screen.width,maxHeight:window.screen.height,minFrameRate:I.screenshareFrameRate,maxFrameRate:I.screenshareFrameRate},optional:[{googLeakyBucket:!0},{googTemporalLayeredScreencast:!0}]}},ht.video.mandatory.chromeMediaSourceId=pt,Ti(ht,Nn,Ge(I)&&!I.keepAudio)})}else if(p.webRTCAdapter.browserDetails.browser==="firefox")if(p.webRTCAdapter.browserDetails.version>=33)ht={video:{mozMediaSource:I.video,mediaSource:I.video},audio:Ge(I)&&!I.keepAudio},Ti(ht,function(yt,pt){if(Nn(yt,pt),!yt)var Wt=pt.currentTime,cn=window.setInterval(function(){pt||window.clearInterval(cn),pt.currentTime==Wt&&(window.clearInterval(cn),pt.onended&&pt.onended()),Wt=pt.currentTime},500)});else{var Li=new Error("NavigatorUserMediaError");Li.name="Your version of Firefox does not support screen sharing, please install Firefox 33 (or more recent versions)",V.consentDialog(!1),F.error(Li);return}return}}(I==null||I.video!=="screen")&&navigator.mediaDevices.enumerateDevices().then(function(yt){var pt=yt.some(function(un){return un.kind==="audioinput"}),Wt=ye(I)||yt.some(function(un){return un.kind==="videoinput"}),cn=Ge(I),Tn=Oe(I),ni=Ct(I),Oi=rt(I);if(cn||Tn||ni||Oi){var Ui=cn?pt:!1,Hi=Tn?Wt:!1;if(!Ui&&!Hi)return V.consentDialog(!1),F.error("No capture device found"),!1;if(!Ui&&ni)return V.consentDialog(!1),F.error("Audio capture is required, but no capture device found"),!1;if(!Hi&&Oi)return V.consentDialog(!1),F.error("Video capture is required, but no capture device found"),!1}var ii={audio:pt&&!I.keepAudio?Be:!1,video:Wt&&!I.keepVideo?tt:!1};p.debug("getUserMedia constraints",ii),!ii.audio&&!ii.video?(V.consentDialog(!1),N(P,j,I,F,se)):navigator.mediaDevices.getUserMedia(ii).then(function(un){V.consentDialog(!1),N(P,j,I,F,un)}).catch(function(un){V.consentDialog(!1),F.error({code:un.code,name:un.name,message:un.message})})}).catch(function(yt){V.consentDialog(!1),F.error("enumerateDevices error",yt)})}else N(P,j,I,F)}function te(P,M){M=M||{},M.success=typeof M.success=="function"?M.success:p.noop,M.error=typeof M.error=="function"?M.error:Yt;var F=M.jsep,j=g[P];if(j==null||j.webrtcStuff===null||j.webrtcStuff===void 0){p.warn("Invalid handle"),M.error("Invalid handle");return}var I=j.webrtcStuff;if(F!=null){if(I.pc===null){p.warn("Wait, no PeerConnection?? if this is an answer, use createAnswer and not handleRemoteJsep"),M.error("No PeerConnection: if this is an answer, use createAnswer and not handleRemoteJsep");return}I.pc.setRemoteDescription(F).then(function(){if(p.log("Remote description accepted!"),I.remoteSdp=F.sdp,I.candidates&&I.candidates.length>0){for(var V=0;V0)for(var ee in de){var se=de[ee];if(se.sender&&se.sender.track&&se.sender.track.kind==="audio"||se.receiver&&se.receiver.track&&se.receiver.track.kind==="audio"){J||(J=se);continue}if(se.sender&&se.sender.track&&se.sender.track.kind==="video"||se.receiver&&se.receiver.track&&se.receiver.track.kind==="video"){q||(q=se);continue}}var Qe=Ge(M),mt=kt(M);!Qe&&!mt?M.removeAudio&&J&&(J.setDirection?J.setDirection("inactive"):J.direction="inactive",p.log("Setting audio transceiver to inactive:",J)):Qe&&mt?J&&(J.setDirection?J.setDirection("sendrecv"):J.direction="sendrecv",p.log("Setting audio transceiver to sendrecv:",J)):Qe&&!mt?J&&(J.setDirection?J.setDirection("sendonly"):J.direction="sendonly",p.log("Setting audio transceiver to sendonly:",J)):!Qe&&mt&&(J?(J.setDirection?J.setDirection("recvonly"):J.direction="recvonly",p.log("Setting audio transceiver to recvonly:",J)):(J=I.pc.addTransceiver("audio",{direction:"recvonly"}),p.log("Adding recvonly audio transceiver:",J)));var Ie=Oe(M),ht=Ae(M);!Ie&&!ht?M.removeVideo&&q&&(q.setDirection?q.setDirection("inactive"):q.direction="inactive",p.log("Setting video transceiver to inactive:",q)):Ie&&ht?q&&(q.setDirection?q.setDirection("sendrecv"):q.direction="sendrecv",p.log("Setting video transceiver to sendrecv:",q)):Ie&&!ht?q&&(q.setDirection?q.setDirection("sendonly"):q.direction="sendonly",p.log("Setting video transceiver to sendonly:",q)):!Ie&&ht&&(q?(q.setDirection?q.setDirection("recvonly"):q.direction="recvonly",p.log("Setting video transceiver to recvonly:",q)):(q=I.pc.addTransceiver("video",{direction:"recvonly"}),p.log("Adding recvonly video transceiver:",q)))}else L.offerToReceiveAudio=kt(M),L.offerToReceiveVideo=Ae(M);var Be=F.iceRestart===!0;Be&&(L.iceRestart=!0),p.debug(L);var tt=Oe(M);if(tt&&V&&p.webRTCAdapter.browserDetails.browser==="firefox"){p.log("Enabling Simulcasting for Firefox (RID)");var Xt=I.pc.getSenders().find(function(st){return st.track.kind=="video"});if(Xt){var Vt=Xt.getParameters();Vt||(Vt={});var Ue=S(F.simulcastMaxBitrates);Vt.encodings=[{rid:"h",active:!0,maxBitrate:Ue.high},{rid:"m",active:!0,maxBitrate:Ue.medium,scaleResolutionDownBy:2},{rid:"l",active:!0,maxBitrate:Ue.low,scaleResolutionDownBy:4}],Xt.setParameters(Vt)}}I.pc.createOffer(L).then(function(st){p.debug(st);var Nn={type:st.type,sdp:st.sdp};if(F.customizeSdp(Nn),st.sdp=Nn.sdp,p.log("Setting local description"),tt&&V&&(p.webRTCAdapter.browserDetails.browser==="chrome"||p.webRTCAdapter.browserDetails.browser==="safari"?(p.log("Enabling Simulcasting for Chrome (SDP munging)"),st.sdp=Ht(st.sdp)):p.webRTCAdapter.browserDetails.browser!=="firefox"&&p.warn("simulcast=true, but this is not Chrome nor Firefox, ignoring")),I.mySdp=st.sdp,I.pc.setLocalDescription(st).catch(F.error),I.mediaConstraints=L,!I.iceDone&&!I.trickle){p.log("Waiting for all candidates...");return}p.log("Offer ready"),p.debug(F),F.success(st)},F.error)}function he(P,M,F){F=F||{},F.success=typeof F.success=="function"?F.success:p.noop,F.error=typeof F.error=="function"?F.error:p.noop,F.customizeSdp=typeof F.customizeSdp=="function"?F.customizeSdp:p.noop;var j=g[P];if(j==null||j.webrtcStuff===null||j.webrtcStuff===void 0){p.warn("Invalid handle"),F.error("Invalid handle");return}var I=j.webrtcStuff,V=F.simulcast===!0;V?p.log("Creating answer (iceDone="+I.iceDone+", simulcast="+V+")"):p.log("Creating answer (iceDone="+I.iceDone+")");var L=null;if(p.unifiedPlan){L={};var J=null,q=null,de=I.pc.getTransceivers();if(de&&de.length>0)for(var ee in de){var se=de[ee];if(se.sender&&se.sender.track&&se.sender.track.kind==="audio"||se.receiver&&se.receiver.track&&se.receiver.track.kind==="audio"){J||(J=se);continue}if(se.sender&&se.sender.track&&se.sender.track.kind==="video"||se.receiver&&se.receiver.track&&se.receiver.track.kind==="video"){q||(q=se);continue}}var Qe=Ge(M),mt=kt(M);if(!Qe&&!mt){if(M.removeAudio&&J)try{J.setDirection?J.setDirection("inactive"):J.direction="inactive",p.log("Setting audio transceiver to inactive:",J)}catch(Ue){p.error(Ue)}}else if(Qe&&mt){if(J)try{J.setDirection?J.setDirection("sendrecv"):J.direction="sendrecv",p.log("Setting audio transceiver to sendrecv:",J)}catch(Ue){p.error(Ue)}}else if(Qe&&!mt)try{J&&(J.setDirection?J.setDirection("sendonly"):J.direction="sendonly",p.log("Setting audio transceiver to sendonly:",J))}catch(Ue){p.error(Ue)}else if(!Qe&&mt)if(J)try{J.setDirection?J.setDirection("recvonly"):J.direction="recvonly",p.log("Setting audio transceiver to recvonly:",J)}catch(Ue){p.error(Ue)}else J=I.pc.addTransceiver("audio",{direction:"recvonly"}),p.log("Adding recvonly audio transceiver:",J);var Ie=Oe(M),ht=Ae(M);if(!Ie&&!ht){if(M.removeVideo&&q)try{q.setDirection?q.setDirection("inactive"):q.direction="inactive",p.log("Setting video transceiver to inactive:",q)}catch(Ue){p.error(Ue)}}else if(Ie&&ht){if(q)try{q.setDirection?q.setDirection("sendrecv"):q.direction="sendrecv",p.log("Setting video transceiver to sendrecv:",q)}catch(Ue){p.error(Ue)}}else if(Ie&&!ht){if(q)try{q.setDirection?q.setDirection("sendonly"):q.direction="sendonly",p.log("Setting video transceiver to sendonly:",q)}catch(Ue){p.error(Ue)}}else if(!Ie&&ht)if(q)try{q.setDirection?q.setDirection("recvonly"):q.direction="recvonly",p.log("Setting video transceiver to recvonly:",q)}catch(Ue){p.error(Ue)}else q=I.pc.addTransceiver("video",{direction:"recvonly"}),p.log("Adding recvonly video transceiver:",q)}else p.webRTCAdapter.browserDetails.browser=="firefox"||p.webRTCAdapter.browserDetails.browser=="edge"?L={offerToReceiveAudio:kt(M),offerToReceiveVideo:Ae(M)}:L={mandatory:{OfferToReceiveAudio:kt(M),OfferToReceiveVideo:Ae(M)}};p.debug(L);var Be=Oe(M);if(Be&&V&&p.webRTCAdapter.browserDetails.browser==="firefox"){p.log("Enabling Simulcasting for Firefox (RID)");var tt=I.pc.getSenders()[1];p.log(tt);var Xt=tt.getParameters();p.log(Xt);var Vt=S(F.simulcastMaxBitrates);tt.setParameters({encodings:[{rid:"high",active:!0,priority:"high",maxBitrate:Vt.high},{rid:"medium",active:!0,priority:"medium",maxBitrate:Vt.medium},{rid:"low",active:!0,priority:"low",maxBitrate:Vt.low}]})}I.pc.createAnswer(L).then(function(Ue){p.debug(Ue);var st={type:Ue.type,sdp:Ue.sdp};if(F.customizeSdp(st),Ue.sdp=st.sdp,p.log("Setting local description"),Be&&V&&(p.webRTCAdapter.browserDetails.browser==="chrome"?p.warn("simulcast=true, but this is an answer, and video breaks in Chrome if we enable it"):p.webRTCAdapter.browserDetails.browser!=="firefox"&&p.warn("simulcast=true, but this is not Chrome nor Firefox, ignoring")),I.mySdp=Ue.sdp,I.pc.setLocalDescription(Ue).catch(F.error),I.mediaConstraints=L,!I.iceDone&&!I.trickle){p.log("Waiting for all candidates...");return}F.success(Ue)},F.error)}function Re(P,M){M=M||{},M.success=typeof M.success=="function"?M.success:p.noop,M.error=typeof M.error=="function"?M.error:p.noop;var F=g[P];if(F==null||F.webrtcStuff===null||F.webrtcStuff===void 0){p.warn("Invalid handle, not sending anything");return}var j=F.webrtcStuff;if(p.log("Sending offer/answer SDP..."),j.mySdp===null||j.mySdp===void 0){p.warn("Local SDP instance is invalid, not sending anything...");return}j.mySdp={type:j.pc.localDescription.type,sdp:j.pc.localDescription.sdp},j.trickle===!1&&(j.mySdp.trickle=!1),p.debug(M),j.sdpSent=!0,M.success(j.mySdp)}function we(P,M){var F=g[P];if(F==null||F.webrtcStuff===null||F.webrtcStuff===void 0)return p.warn("Invalid handle"),0;var j=M?"remote":"local",I=F.webrtcStuff;return I.volume[j]||(I.volume[j]={value:0}),I.pc.getStats&&p.webRTCAdapter.browserDetails.browser==="chrome"?M&&(I.remoteStream===null||I.remoteStream===void 0)?(p.warn("Remote stream unavailable"),0):!M&&(I.myStream===null||I.myStream===void 0)?(p.warn("Local stream unavailable"),0):I.volume[j].timer===null||I.volume[j].timer===void 0?(p.log("Starting "+j+" volume monitor"),I.volume[j].timer=setInterval(function(){I.pc.getStats(function(V){for(var L=V.result(),J=0;J-1)&&I.type==="inbound-rtp"&&I.id.indexOf("rtcp")<0||I.type=="ssrc"&&I.bytesReceived&&(I.googCodecName==="VP8"||I.googCodecName===""))&&(V=!0),V)if(F.bitrate.bsnow=I.bytesReceived,F.bitrate.tsnow=I.timestamp,F.bitrate.bsbefore===null||F.bitrate.tsbefore===null)F.bitrate.bsbefore=F.bitrate.bsnow,F.bitrate.tsbefore=F.bitrate.tsnow;else{var L=F.bitrate.tsnow-F.bitrate.tsbefore;p.webRTCAdapter.browserDetails.browser=="safari"&&(L=L/1e3);var J=Math.round((F.bitrate.bsnow-F.bitrate.bsbefore)*8/L);p.webRTCAdapter.browserDetails.browser==="safari"&&(J=parseInt(J/1e3)),F.bitrate.value=J+" kbits/sec",F.bitrate.bsbefore=F.bitrate.bsnow,F.bitrate.tsbefore=F.bitrate.tsnow}}})})},1e3),"0 kbits/sec"):F.bitrate.value:(p.warn("Getting the video bitrate unsupported by browser"),"Feature unsupported by browser")}function Yt(P){p.error("WebRTC error:",P)}function It(P,M){p.log("Cleaning WebRTC stuff");var F=g[P];if(F!=null){var j=F.webrtcStuff;if(j!=null){if(M===!0){var I={rtcgw:"hangup",transaction:p.randomString(12)};F.token!==null&&F.token!==void 0&&(I.token=F.token),E!=null&&(I.apisecret=E),p.debug("Sending hangup request (handle="+P+"):"),p.debug(I),u?(I.session_id=m,I.handle_id=P,n.send(JSON.stringify(I))):p.httpAPICall(s+"/"+m+"/"+P,{verb:"POST",withCredentials:h,body:I})}j.remoteStream=null,j.volume&&(j.volume.local&&j.volume.local.timer&&clearInterval(j.volume.local.timer),j.volume.remote&&j.volume.remote.timer&&clearInterval(j.volume.remote.timer)),j.volume={},j.bitrate.timer&&clearInterval(j.bitrate.timer),j.bitrate.timer=null,j.bitrate.bsnow=null,j.bitrate.bsbefore=null,j.bitrate.tsnow=null,j.bitrate.tsbefore=null,j.bitrate.value=null;try{if(!j.streamExternal&&j.myStream!==null&&j.myStream!==void 0){p.log("Stopping local stream tracks");var V=j.myStream.getTracks();for(var L in V){var J=V[L];p.log(J),J!=null&&J.stop()}}}catch(q){}j.streamExternal=!1,j.myStream=null;try{j.pc.close()}catch(q){}j.pc=null,j.candidates=null,j.mySdp=null,j.remoteSdp=null,j.iceDone=!1,j.dataChannel={},j.dtmfSender=null}F.oncleanup()}}function Ht(P){for(var M=P.split(`\r +`),F=!1,j=[-1],I=[-1],V=null,L=null,J=null,q=null,de=-1,ee=0;ee-1){de=ee;break}continue}if(F){var mt=M[ee].match(/a=ssrc-group:FID (\d+) (\d+)/);if(mt){j[0]=mt[1],I[0]=mt[2],M.splice(ee,1),ee--;continue}if(j[0]){var Ie=M[ee].match("a=ssrc:"+j[0]+" cname:(.+)");if(Ie&&(V=Ie[1]),Ie=M[ee].match("a=ssrc:"+j[0]+" msid:(.+)"),Ie&&(L=Ie[1]),Ie=M[ee].match("a=ssrc:"+j[0]+" mslabel:(.+)"),Ie&&(J=Ie[1]),Ie=M[ee].match("a=ssrc:"+j[0]+" label:(.+)"),Ie&&(q=Ie[1]),M[ee].indexOf("a=ssrc:"+I[0])===0){M.splice(ee,1),ee--;continue}if(M[ee].indexOf("a=ssrc:"+j[0])===0){M.splice(ee,1),ee--;continue}}if(M[ee].length==0){M.splice(ee,1),ee--;continue}}}if(j[0]<0){de=-1,F=!1;for(var ee=0;ee-1){de=ee;break}continue}if(F){if(j[0]<0){var ht=M[ee].match(/a=ssrc:(\d+)/);if(ht){j[0]=ht[1],M.splice(ee,1),ee--;continue}}else{var Ie=M[ee].match("a=ssrc:"+j[0]+" cname:(.+)");if(Ie&&(V=Ie[1]),Ie=M[ee].match("a=ssrc:"+j[0]+" msid:(.+)"),Ie&&(L=Ie[1]),Ie=M[ee].match("a=ssrc:"+j[0]+" mslabel:(.+)"),Ie&&(J=Ie[1]),Ie=M[ee].match("a=ssrc:"+j[0]+" label:(.+)"),Ie&&(q=Ie[1]),M[ee].indexOf("a=ssrc:"+I[0])===0){M.splice(ee,1),ee--;continue}if(M[ee].indexOf("a=ssrc:"+j[0])===0){M.splice(ee,1),ee--;continue}}if(M[ee].length==0){M.splice(ee,1),ee--;continue}}}}if(j[0]<0)return p.warn("Couldn't find the video SSRC, simulcasting NOT enabled"),P;de<0&&(de=M.length),j[1]=Math.floor(Math.random()*4294967295),j[2]=Math.floor(Math.random()*4294967295),I[1]=Math.floor(Math.random()*4294967295),I[2]=Math.floor(Math.random()*4294967295);for(var ee=0;ee +
    +
    +
    +
    +
    +
    + `,document.getElementById("mobile-ez-ptz-item")||r.appendChild(s),Wn(r,document.getElementById("".concat(this.jSPlugin.id,"-wrap"))),document.getElementById("mobile-ez-ptz-item").ontouchstart=function(b){b.preventDefault(),console.log("触摸开始"),n._handlePtzTouch(b,"start")},document.getElementById("mobile-ez-ptz-item").ontouchend=function(b){b.preventDefault(),console.log("触摸结束",b),n._handlePtzTouch(b,"stop")},document.getElementById("mobile-ez-ptz-item").onmousedown=function(b){b.preventDefault(),console.log("触摸开始"),n._handlePtzTouch(b,"start")},document.getElementById("mobile-ez-ptz-item").onmouseup=function(b){b.preventDefault(),console.log("触摸结束",b),n._handlePtzTouch(b,"stop")}}return dt(f,[{key:"show",value:function(){document.getElementById("mobile-ez-ptz-item").style="display: inline-block"}},{key:"hide",value:function(){document.getElementById("mobile-ez-ptz-item").style="display: none"}},{key:"_handlePtzTouch",value:function(n,i){var r=document.getElementById("mobile-ez-ptz-item").getBoundingClientRect(),a=r.left+130,l=r.top+130,s=n.x||n.changedTouches[0].clientX,b=n.y||n.changedTouches[0].clientY,T=s-a,C=b-l,y=0,h=this.jSPlugin.env.domain+"/api/lapp/device/ptz/start";Math.abs(T)>Math.abs(C)?T>0?(y=3,document.getElementsByClassName("mobile-ez-ptz-icon")[3].className=document.getElementsByClassName("mobile-ez-ptz-icon")[3].className.replace("default","active")):(y=2,document.getElementsByClassName("mobile-ez-ptz-icon")[1].className=document.getElementsByClassName("mobile-ez-ptz-icon")[1].className.replace("default","active")):C>0?(y=1,document.getElementsByClassName("mobile-ez-ptz-icon")[2].className=document.getElementsByClassName("mobile-ez-ptz-icon")[2].className.replace("default","active")):(y=0,document.getElementsByClassName("mobile-ez-ptz-icon")[0].className=document.getElementsByClassName("mobile-ez-ptz-icon")[0].className.replace("default","active")),document.getElementById("mobile-ez-ptz-item").style="background-image:linear-gradient(".concat(y===0?180:y===1?0:y===2?90:270,"deg, #c0ddf1 0%, rgba(100,143,252,0.00) 50%)"),i==="stop"&&(h=this.jSPlugin.env.domain+"/api/lapp/device/ptz/stop",document.getElementById("mobile-ez-ptz-item").style="",document.getElementsByClassName("mobile-ez-ptz-icon")[3].className=document.getElementsByClassName("mobile-ez-ptz-icon")[3].className.replace("active","default"),document.getElementsByClassName("mobile-ez-ptz-icon")[1].className=document.getElementsByClassName("mobile-ez-ptz-icon")[1].className.replace("active","default"),document.getElementsByClassName("mobile-ez-ptz-icon")[2].className=document.getElementsByClassName("mobile-ez-ptz-icon")[2].className.replace("active","default"),document.getElementsByClassName("mobile-ez-ptz-icon")[0].className=document.getElementsByClassName("mobile-ez-ptz-icon")[0].className.replace("active","default"));var D=new FormData;D.append("deviceSerial",Ke(this.jSPlugin.url).deviceSerial),D.append("channelNo",Ke(this.jSPlugin.url).channelNo),D.append("speed",1),D.append("direction",y),D.append("accessToken",this.jSPlugin.accessToken),fetch(h,{method:"POST",body:D}).then(function(_){return _.json()}).then(function(_){_.code==200||(_.code==60005||_.code==60002||_.code==60003||_.code==60004)&&(document.getElementById("mobile-ez-ptz-item").style="background-image:linear-gradient(".concat(y===0?180:y===1?0:y===2?90:270,"deg, #f45656 0%, rgba(100,143,252,0.00) 50%)"))}).catch(function(_){console.log("云台调用异常",_)})}}]),f}(),ys=0,Ts="成功",Ss={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-0",iconId:"deviceID",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-1",iconId:"deviceName",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-2",iconId:"cloudRec",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-3",iconId:"rec",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"}]},footer:{color:"#FFFFFF",backgroundColor:"rgb(0 0 0 / 0%)",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-0",iconId:"play",part:"left",defaultActive:1,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-1",iconId:"capturePicture",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-2",iconId:"sound",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-3",iconId:"pantile",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-4",iconId:"recordvideo",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-5",iconId:"talk",part:"left",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-6",iconId:"hd",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-7",iconId:"webExpend",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-footer-8",iconId:"expend",part:"right",defaultActive:0,isrender:0,themeId:"f7896c8942c9476fb439370dd974f1c0"}]}},Cs={retcode:ys,msg:Ts,data:Ss},bs={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},ra={data:bs},Ps={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:1},{iconId:"rec",part:"right",defaultActive:0,isrender:1}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"speed",part:"right",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},oa={data:Ps},ws={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-0",iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-1",iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-2",iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-3",iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:1},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"speed",part:"right",defaultActive:0,isrender:0},{iconId:"hd",part:"right",defaultActive:0,isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,isrender:1},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},aa={data:ws},Es={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-0",iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-1",iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-2",iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{btnKey:"c1cbc1d4e86d49a0981f54beea95280a-f7896c8942c9476fb439370dd974f1c0-header-3",iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},da={data:Es},Is={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:0},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"sound",part:"left",defaultActive:1,isrender:0},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:0},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:0}]}},la={data:Is},xs={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:0},{iconId:"rec",part:"right",defaultActive:0,isrender:0}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:0},{iconId:"talk",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:0},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"zoom",part:"left",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:0},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},sa={data:xs},_s={header:{color:"#FFFFFF",backgroundColor:"#000000",activeColor:"#1890FF",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,isrender:1},{iconId:"deviceName",part:"left",defaultActive:0,isrender:1},{iconId:"cloudRec",part:"right",defaultActive:0,isrender:1},{iconId:"rec",part:"right",defaultActive:0,isrender:1}]},footer:{color:"#FFFFFF",backgroundColor:"#00000080",activeColor:"#1890FF",btnList:[{iconId:"play",part:"left",defaultActive:1,isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,isrender:1},{iconId:"sound",part:"left",defaultActive:1,isrender:1},{iconId:"pantile",part:"left",defaultActive:0,isrender:0},{iconId:"recordvideo",part:"left",defaultActive:0,isrender:1},{iconId:"zoom",part:"left",defaultActive:0,isrender:1},{iconId:"speed",part:"right",defaultActive:0,isrender:1},{iconId:"hd",part:"right",defaultActive:0,isrender:0},{iconId:"webExpend",part:"right",defaultActive:0,isrender:1},{iconId:"expend",part:"right",defaultActive:0,isrender:1}]}},ca={data:_s},ua=[{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"pcLive",themeIntro:"PC直播全量版",themeName:"PC直播全量版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:aa.data.header,footer:aa.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"security",themeIntro:"PC直播安防版",themeName:"PC直播安防版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:da.data.header,footer:da.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"voice",themeIntro:"PC直播语音版",themeName:"PC直播语音版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:sa.data.header,footer:sa.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"simple",themeIntro:"PC直播极简版",themeName:"PC直播极简版",themeType:"webLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"",header:la.data.header,footer:la.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"pcRec",themeIntro:"PC回放全量版",themeName:"PC回放全量版",themeType:"webRec",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_DmANlElAAA-xyivSaw030.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:ca.data.header,footer:ca.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"mobileLive",themeIntro:"Mobile直播全量版",themeName:"Mobile直播全量版",themeType:"mobileLive",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_GmAL5IhAABZs1vUK0s564.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:ra.data.header,footer:ra.data.footer},{autoFocus:5,createTime:"2021-06-14T08:04:37.000Z",themeId:"mobileRec",themeIntro:"Mobile回放全量版",themeName:"Mobile回放全量版",themeType:"mobileRec",updateTime:"2021-06-14T08:04:37.000Z",label:"官方",labelPic:"https://resource.eziot.com/group1/M00/00/8A/CtwQEmLr_GmAL5IhAABZs1vUK0s564.png",poster:"https://resource.eziot.com/group1/M00/00/89/CtwQEmLl8r-AZU7wAAETKlvgerU237.png",header:oa.data.header,footer:oa.data.footer}],Rs=function(){function f(u){var n=this;fe(this,f),this.jSPlugin=u,this.enableZoom=!1,this.isMouseDown=!1,this.videoWidth=1920,this.videoHeight=1080,this.currentScale=1,this.currentPosition={x:0,y:0,xPercent:.1,yPercent:.1,xCurrentVideo:0,yCurrentVideo:0,left:0,top:0,right:1920,bottom:1080},this.DOM=document.getElementById(u.id),this.clientRect=document.getElementById(u.id).getBoundingClientRect();var i=document.createElement("div");i.id="".concat(u.id,"-zoom-container"),i.style=`position: absolute; + display:none; + left: 12px; + bottom: 80px;`;var r=` +
    +
    2.0X
    +
    + + + 放大 + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + 缩小 + + + + + + + + + + +
    +
    + `);i.innerHTML=r,document.getElementById("".concat(u.id,"-audioControls-left")).parentNode.appendChild(i),document.getElementById("".concat(u.id,"-addScale")).onclick=function(){n.addScale()},document.getElementById("".concat(u.id,"-subScale")).onclick=function(){n.subScale()}}return dt(f,[{key:"onMouseDown",value:function(n){this.currentPosition,this.currentScale;var i=this.enableZoom;if(!i)return!1;this.moveX=n.clientX,this.moveY=n.clientY,this.isMouseDown=!0}},{key:"onMouseUp",value:function(n){var i=this.currentPosition,r=this.enableZoom;if(!r)return!1;this.isMouseDown=!1,i.left=i.left-(n.clientX-this.moveX),i.top=i.top-(n.clientY-this.moveY),this.doScale()}},{key:"onMouseOut",value:function(n){var i=this.enableZoom;if(!i)return!1;this.isMouseDown&&(console.log("鼠标按上",n),this.isMouseDown=!1),this.isMouseDown=!1}},{key:"renderDot",value:function(){var n=this.currentScale;document.getElementById("".concat(this.jSPlugin.id,"-scale-value")).innerHTML="".concat(n,".0X"),document.getElementById("".concat(this.jSPlugin.id,"-line-dot")).style.height="".concat((n-1)/7*100,"%"),document.getElementById("".concat(this.jSPlugin.id,"-scale-body-line-dot")).style.bottom="calc(".concat((n-1)/7*100,"% - 6px)")}},{key:"startZoom",value:function(){var n=this,i=this.jSPlugin.jSPlugin._JSPlayM4_GetFrameInfo(0);this.videoWidth=i.width,this.videoHeight=i.height,this.currentPosition.right=i.width,this.currentPosition.bottom=i.height,this.currentScale=1,document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="block",this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),this.renderDot(),this.enableZoom=!0,document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0"))?(document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0")).addEventListener("mousedown",function(r){return n.onMouseDown(r)}),document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0")).addEventListener("mouseup",function(r){return n.onMouseUp(r)}),document.getElementById("".concat(this.jSPlugin.id,"canvas_draw0")).addEventListener("mouseout",function(r){return n.onMouseOut(r)})):document.getElementById("".concat(this.jSPlugin.id,"-player"))&&(document.getElementById("".concat(this.jSPlugin.id,"-player")).addEventListener("mousedown",function(r){return n.onMouseDown(r)}),document.getElementById("".concat(this.jSPlugin.id,"-player")).addEventListener("mouseup",function(r){return n.onMouseUp(r)}),document.getElementById("".concat(this.jSPlugin.id,"-player")).addEventListener("mouseout",function(r){return n.onMouseOut(r)}))}},{key:"stopZoom",value:function(){var n=this;this.currentScale=1,this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="none",this.renderDot(),this.enableZoom=!1,document.getElementById(this.jSPlugin.id).removeEventListener("mousedown",function(i){return n.onMouseDown(i)}),document.getElementById(this.jSPlugin.id).removeEventListener("mouseup",function(i){return n.onMouseUp(i)}),document.getElementById(this.jSPlugin.id).removeEventListener("mouseout",function(i){return n.onMouseOut(i)})}},{key:"doScale",value:function(){console.log("执行放大");var n=this.currentPosition,i=this.currentScale;n.left=n.left+n.xPercent*(n.right-n.left)-1/2*(this.videoWidth/i),n.left<0?n.left=0:n.left>this.videoWidth-this.videoWidth/i&&(n.left=this.videoWidth-this.videoWidth/i),n.right=n.left+this.videoWidth/i,n.top=n.top+n.yPercent*(n.bottom-n.top)-1/2*(this.videoHeight/i),n.top<0?n.top=0:n.top>this.videoHeight-this.videoHeight/i&&(n.top=this.videoHeight-this.videoHeight/i),n.bottom=n.top+this.videoHeight/i,n.left=parseInt(n.left,10),n.right=parseInt(n.right,10),n.top=parseInt(n.top,10),n.bottom=parseInt(n.bottom,10),console.log("计算后,",this.jSPlugin.jSPlugin,n.left,n.right,n.top,n.bottom,n.xPercent,n.yPercent),this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(n.left,n.right,n.top,n.bottom),this.renderDot()}},{key:"calCurrentPosition",value:function(n){var i=this.currentPosition,r=this.clientRect;i.x=n.clientX,i.y=n.clientY,i.xPercent=(n.clientX-r.x)/r.width,i.yPercent=(n.clientY-r.y)/r.height,this.doScale()}},{key:"addScale",value:function(){var n=this.currentScale,i=this.currentPosition;if(n>=8)return console.log("达到最大倍率了"),this.jSPlugin.Message&&this.jSPlugin.Message.default("已经放大到最大倍数8.0X"),!1;this.currentScale++,i.xPercent=.5,i.yPercent=.5,this.doScale()}},{key:"subScale",value:function(){var n=this.currentScale,i=this.currentPosition;if(n<=1)return console.log("达到最小倍率了"),!1;this.currentScale--,i.xPercent=.5,i.yPercent=.5,this.doScale()}}]),f}();function ma(f,u){return Math.abs(u.clientX-f.clientX)*Math.abs(u.clientX-f.clientX)+Math.abs(u.clientY-f.clientY)*Math.abs(u.clientY-f.clientY)}var ks=function(){function f(u){var n=this;fe(this,f),this.jSPlugin=u,this.enableZoom=!1,this.isDubboTouch=!1,this.videoWidth=0,this.videoHeight=0,this.currentScale=1,this.currentPosition={x:0,y:0,xPercent:.1,yPercent:.1,xCurrentVideo:0,yCurrentVideo:0,left:0,top:0,right:1920,bottom:1080},this.DOM=document.getElementById(u.id),this.clientRect=document.getElementById(u.id).getBoundingClientRect(),this.point1={clientX:0,clientY:0},this.point2={clientX:0,clientY:0},this.touchLineLength=0,this.inited=!1;var i=document.createElement("div");i.id="".concat(u.id,"-zoom-container"),i.style=`display:none; + position: absolute; + left: 10px; + top: -30px; + border: 1px solid rgba(0,0,0,0.6); + color: #FFFFFF; + background: rgba(0,0,0,0.6); + border-radius: 10px; + width: 36px; + font-size: 12px; + text-align: center; + height: 22px; + line-height: 22px;`;var r="1X";i.innerHTML=r,document.getElementById("".concat(u.id,"-audioControls-left")).parentNode.appendChild(i),document.getElementById(this.jSPlugin.id).addEventListener("touchstart",function(a){return n.onTouchstart(a)}),document.getElementById(this.jSPlugin.id).addEventListener("touchmove",function(a){return n.onTouchmove(a)})}return dt(f,[{key:"onTouchstart",value:function(n){var i=this.jSPlugin.beforeMobileZoomVerify();if(!i)return!1;if(!this.inited){var r=this.jSPlugin.jSPlugin._JSPlayM4_GetFrameInfo(0);this.videoWidth=r.width,this.videoHeight=r.height,this.currentPosition.right=r.width,this.currentPosition.bottom=r.height,this.inited=!0}var a=this.currentPosition;this.currentScale,console.log("双指按下",a);var l=n.touches,s=l[0],b=l[1];s&&(this.point1.clientX=s.clientX,this.point1.clientY=s.clientY),b&&(this.point2.clientX=b.clientX,this.point2.clientY=b.clientY,this.touchLineLength=ma(this.point1,this.point2),this.isDubboTouch=!0,this.moveX=s.clientX,this.moveY=s.clientY),console.log("双指按下2",a)}},{key:"onTouchmove",value:function(n){var i=this.isDubboTouch,r=this.currentPosition,a=this.clientRect,l=this.jSPlugin.beforeMobileZoomVerify();if(!l)return!1;if(n.touches.length===1){var b=n.touches[0];return r.xPercent=r.xPercent+(this.point1.clientX-b.clientX)/a.width/this.currentScale,r.yPercent=r.yPercent+(this.point1.clientY-b.clientY)/a.height/this.currentScale,this.doScale(),this.point1.clientX=b.clientX,this.point1.clientY=b.clientY,!1}if(!i)return!1;var s=n.touches,b=s[0],T=s[1];if(b&&(this.point1.clientX=b.clientX,this.point1.clientY=b.clientY),T){this.point2.clientX=T.clientX,this.point2.clientY=T.clientY;var C=ma(this.point1,this.point2);C!==this.touchLineLength&&(C>this.touchLineLength?this.currentScale<8?(++this.currentScale,r.xPercent=(this.point1.clientX+this.point2.clientX)/2/a.width,r.yPercent=(this.point1.clientY+this.point2.clientY)/2/a.height,this.doScale()):console.log("已经是最大8倍率了"):this.currentScale>1?(--this.currentScale,r.xPercent=(this.point1.clientX+this.point2.clientX)/2/a.width,r.yPercent=(this.point1.clientY+this.point2.clientY)/2/a.height,this.doScale()):console.log("已经是最小1倍率了"),this.isDubboTouch=!1)}}},{key:"startZoom",value:function(){var n=this.jSPlugin.jSPlugin._JSPlayM4_GetFrameInfo(0);this.videoWidth=n.width,this.videoHeight=n.height,this.currentPosition.right=n.width,this.currentPosition.bottom=n.height,this.currentScale=1,document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="block",this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),this.renderDot()}},{key:"stopZoom",value:function(){this.currentScale=1,this.jSPlugin.jSPlugin._JSPlayM4_SetDisplayRegion(0,this.videoWidth,0,this.videoHeight),document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="none",this.renderDot()}},{key:"resetZoom",value:function(){this.currentScale=1,document.getElementById("".concat(this.jSPlugin.id,"-zoom-container")).style.display="none"}},{key:"doScale",value:function(){var n=this.currentPosition,i=this.currentScale;n.left=n.left+n.xPercent*(n.right-n.left)-1/2*(this.videoWidth/i),n.left<0?n.left=0:n.left>this.videoWidth-this.videoWidth/i&&(n.left=this.videoWidth-this.videoWidth/i),n.right=n.left+this.videoWidth/i,n.top=n.top+n.yPercent*(n.bottom-n.top)-1/2*(this.videoHeight/i),n.top<0?n.top=0:n.top>this.videoHeight-this.videoHeight/i&&(n.top=this.videoHeight-this.videoHeight/i),n.bottom=n.top+this.videoHeight/i,n.left=parseInt(n.left,10),n.right=parseInt(n.right,10),n.top=parseInt(n.top,10),n.bottom=parseInt(n.bottom,10),console.log("视频宽高",this.videoWidth,this.videoHeight),console.log("计算后,",n.left,n.right,n.top,n.bottom,n.xPercent,n.yPercent),n.left0&&(this.autoFocus=parseInt(this.themeData.autoFocus),this.startAutoFocus(),document.getElementById("".concat(this.jSPlugin.id,"-wrap")).addEventListener("click",function(){n.stopAutoFocus()})),this.setDecoderState({cloudRec:Ke(this.jSPlugin.url).type==="cloud.rec",rec:Ke(this.jSPlugin.url).type==="rec",type:Ke(this.jSPlugin.url).type});else if(!this.themeInited)var l=setInterval(function(){window.EZUIKit[n.jSPlugin.id].state.EZUIKitPlayer.init&&(clearInterval(l),n.jSPlugin.play(),n.themeInited=!0)},50);var s=Ut.findIndex(this.themeData.footer.btnList,function(T){return T.iconId==="zoom"&&T.isrender>0})>=0;s&&(this.isMobile?(this.jSPlugin.beforeMobileZoomVerify=function(){var T=n.decoderState.state.play;return console.log("手机端电子放大前校验回调play------------",T),!!T},this.jSPlugin.Zoom=new ks(this.jSPlugin)):this.jSPlugin.Zoom=new Rs(this.jSPlugin));var b=setInterval(function(){window.EZUIKit[n.jSPlugin.id].state.EZUIKitPlayer.init&&(clearInterval(b),n.jSPlugin.reSize(n.jSPlugin.params.width,n.jSPlugin.params.height))},50)}},{key:"setDecoderState",value:function(n){var i=this,r=this.themeData,a=r.header,l=r.footer;Object.keys(n).map(function(s,b){var T="#FFFFFF",C="#FFFFFF",y=a.btnList.findIndex(function(h){return h.iconId===s});switch(y===-1?(T=l.color.replace("-diy",""),C=l.activeColor.replace("-diy","")):(T=a.color.replace("-diy",""),C=l.activeColor.replace("-diy","")),s){case"play":n[s]?document.getElementById("".concat(i.jSPlugin.id,"-play"))&&(document.getElementById("".concat(i.jSPlugin.id,"-play-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-play-content")).children[0].children[1].style="display:none",document.getElementById("".concat(i.jSPlugin.id,"-play")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-play-content")).childNodes[0].children[0].style.fill=n[s]?C:T):document.getElementById("".concat(i.jSPlugin.id,"-play"))&&(document.getElementById("".concat(i.jSPlugin.id,"-play-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-play-content")).children[0].children[0].style="display:none",document.getElementById("".concat(i.jSPlugin.id,"-play")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-play-content")).childNodes[0].children[1].style.fill=n[s]?C:T);break;case"sound":document.getElementById("".concat(i.jSPlugin.id,"-sound"))&&(n[s]?(document.getElementById("".concat(i.jSPlugin.id,"-sound-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-sound-content")).children[0].children[0].style="display:none",document.getElementById("".concat(i.jSPlugin.id,"-sound")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-sound-content")).childNodes[0].children[1].style.fill=n[s]?C:T):(document.getElementById("".concat(i.jSPlugin.id,"-sound-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-sound-content")).children[0].children[1].style="display:none",document.getElementById("".concat(i.jSPlugin.id,"-sound")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-sound-content")).childNodes[0].children[0].style.fill=n[s]?C:T));break;case"recordvideo":document.getElementById("".concat(i.jSPlugin.id,"-recordvideo"))&&(document.getElementById("".concat(i.jSPlugin.id,"-recordvideo")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-recordvideo-content")).childNodes[0].style.fill=n[s]?C:T,n[s]?i.countTime("add",0):i.countTime("destroy",0));break;case"talk":document.getElementById("".concat(i.jSPlugin.id,"-talk"))&&(document.getElementById("".concat(i.jSPlugin.id,"-talk")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-talk-content")).childNodes[1].style.fill=n[s]?C:T);break;case"zoom":document.getElementById("".concat(i.jSPlugin.id,"-zoom"))&&(document.getElementById("".concat(i.jSPlugin.id,"-zoom")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-zoom-content")).childNodes[1].style.fill=n[s]?C:T);break;case"pantile":document.getElementById("".concat(i.jSPlugin.id,"-pantile"))&&(document.getElementById("".concat(i.jSPlugin.id,"-pantile")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-pantile-content")).childNodes[0].style.fill=n[s]?C:T);break;case"webExpend":n[s]?(document.getElementById("".concat(i.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-webExpend-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-webExpend-content")).children[0].children[0].style="display:none"),document.getElementById("".concat(i.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-expend")).className="disabled")):(document.getElementById("".concat(i.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-webExpend-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-webExpend-content")).children[0].children[1].style="display:none"),document.getElementById("".concat(i.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-expend")).className="")),document.getElementById("".concat(i.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-webExpend")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-webExpend-content")).childNodes[0].childNodes[0].style.fill=n[s]?C:T,document.getElementById("".concat(i.jSPlugin.id,"-webExpend-content")).childNodes[0].childNodes[1].style.fill=n[s]?C:T);break;case"capturePicture":document.getElementById("".concat(i.jSPlugin.id,"-capturePicture"))&&(document.getElementById("".concat(i.jSPlugin.id,"-capturePicture")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-capturePicture-content")).childNodes[0].style.fill=n[s]?C:T);break;case"expend":n[s]?(document.getElementById("".concat(i.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-expend-content")).children[0].children[1].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-expend-content")).children[0].children[0].style="display:none"),document.getElementById("".concat(i.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-webExpend")).className="disabled")):(document.getElementById("".concat(i.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-expend-content")).children[0].children[0].style="display:inline-block",document.getElementById("".concat(i.jSPlugin.id,"-expend-content")).children[0].children[1].style="display:none"),document.getElementById("".concat(i.jSPlugin.id,"-webExpend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-webExpend")).className="")),document.getElementById("".concat(i.jSPlugin.id,"-expend"))&&(document.getElementById("".concat(i.jSPlugin.id,"-expend")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-expend-content")).childNodes[0].childNodes[0].style.fill=n[s]?C:T,document.getElementById("".concat(i.jSPlugin.id,"-expend-content")).childNodes[0].childNodes[1].style.fill=n[s]?C:T);break;case"hd":n[s]?document.getElementById("".concat(i.jSPlugin.id,"-hd"))&&(document.getElementById("".concat(i.jSPlugin.id,"-hd-content")).children[1].children[0].style="display:block",document.getElementById("".concat(i.jSPlugin.id,"-hd-content")).children[1].children[1].style="display:none"):document.getElementById("".concat(i.jSPlugin.id,"-hd"))&&(document.getElementById("".concat(i.jSPlugin.id,"-hd-content")).children[1].children[1].style="display:block",document.getElementById("".concat(i.jSPlugin.id,"-hd-content")).children[1].children[0].style="display:none");break;case"speed":document.getElementById("".concat(i.jSPlugin.id,"-speed"))&&(document.getElementById("".concat(i.jSPlugin.id,"-speed-content")).children[1].children[0].style.color=n[s]?C:T,document.getElementById("".concat(i.jSPlugin.id,"-speed-content")).children[1].children[0].style.borderColor=n[s]?C:T),document.getElementById("".concat(i.jSPlugin.id,"-select-mask"))&&(i.isMobile&&n[s]?document.getElementById("".concat(i.jSPlugin.id,"-select-mask")).style.display="block":document.getElementById("".concat(i.jSPlugin.id,"-select-mask")).style.display="none");break;case"cloudRec":document.getElementById("".concat(i.jSPlugin.id,"-cloudRec"))&&(console.log("document.getElementById(`${this.jSPlugin.id}-cloudRec-content`)",document.getElementById("".concat(i.jSPlugin.id,"-cloudRec"))),document.getElementById("".concat(i.jSPlugin.id,"-cloudRec")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-cloudRec-content")).children[0].children[0].style.fill=n[s]?C:T),document.getElementById("".concat(i.jSPlugin.id,"-rec"))&&(document.getElementById("".concat(i.jSPlugin.id,"-rec")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-rec-content")).children[0].children[0].style.fill=n[s]?T:C);break;case"rec":document.getElementById("".concat(i.jSPlugin.id,"-cloudRec"))&&(document.getElementById("".concat(i.jSPlugin.id,"-cloudRec")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-cloudRec-content")).children[0].children[0].style.fill=n[s]?T:C),document.getElementById("".concat(i.jSPlugin.id,"-rec"))&&(document.getElementById("".concat(i.jSPlugin.id,"-rec")).className=n[s]?"active":"",document.getElementById("".concat(i.jSPlugin.id,"-rec-content")).children[0].children[0].style.fill=n[s]?C:T);break}i.decoderState.state=Object.assign(i.decoderState.state,n)})}},{key:"startAutoFocus",value:function(){var n=this,i=this.autoFocus;this.autoFocusTimer&&clearTimeout(this.autoFocusTimer),this.autoFocusTimer=setTimeout(function(){document.getElementById("".concat(n.jSPlugin.id,"-audioControls"))&&(document.getElementById("".concat(n.jSPlugin.id,"-audioControls")).style.opacity=0,document.getElementById("".concat(n.jSPlugin.id,"-audioControls")).style.pointerEvents="none")},i*1e3)}},{key:"stopAutoFocus",value:function(){document.getElementById("".concat(this.jSPlugin.id,"-audioControls"))&&(document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.opacity=1,document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.pointerEvents="all"),this.autoFocusTimer&&clearTimeout(this.autoFocusTimer),this.startAutoFocus()}},{key:"toString",value:function(){return"".concat(this.coreX,"-").concat(this.coreY)}},{key:"renderFooter",value:function(n,i){var r=this,a=this.matchBtn(n);if(this.isMobile&&a.id==="zoom")return!1;var l=document.createElement("div");l.className="theme-icon-item",l.innerHTML="".concat('')+'
    ')).concat(a.domString,"
    ")+"
    ",l.onclick=function(C){if(r.decoderState.state.isEditing)return!1;a.onclick(C)},a.onmouseenter&&(l.onmouseenter=function(C){if(r.decoderState.state.isEditing)return!1;a.onmouseenter(C)}),a.onmouseleave&&(l.onmouseleave=function(C){if(r.decoderState.state.isEditing)return!1;a.onmouseleave(C)});var s=document.createElement("span");s.className="icon-move left",s.innerHTML=''),s.onclick=function(){r.editIcon(a.id,"left","footer")},l.appendChild(s);var b=document.createElement("span");b.className="icon-move right",b.innerHTML=''),b.onclick=function(){r.editIcon(a.id,"right","footer")},l.appendChild(b);var T=document.createElement("span");T.className="icon-move close",T.innerHTML='')+'',T.onclick=function(){r.editIcon(a.id,"delete","footer")},l.appendChild(T),i==="left"?document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).childNodes[0].appendChild(l):document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).childNodes[1].appendChild(l)}},{key:"editIcon",value:function(n,i,r){console.log("编辑组件",n,i,r);var a=this.themeData;console.log("themeData",this.themeData);var l=this.themeData[r].btnList,s=Ut.findIndex(l,function(D){return D.iconId===n}),b=l[s];switch(i){case"delete":if(n==="rec"){if(Ut.findIndex(l,function(D){return D.iconId==="cloudRec"&&D.isrender==1})===-1)return this.jSPlugin.Message&&this.jSPlugin.Message.default("必须选中一种存储介质"),!1}else if(n==="cloudRec"&&Ut.findIndex(l,function(D){return D.iconId==="rec"&&D.isrender==1})===-1)return this.jSPlugin.Message&&this.jSPlugin.Message.default("必须选中一种存储介质"),!1;l[s].isrender=0;break;case"right":for(var T=-1,C=s+1;C=0;h--)if(l[h].part===l[s].part&&l[h].isrender==1){y=h;break}y!==-1&&(l[s]=l[y],l[y]=b);break}console.log("new btnList",l),a[r].btnList=l,this.changeTheme(a)}},{key:"renderHeader",value:function(n,i){var r=this,a=this.matchBtn(n),l=document.createElement("div");l.className="theme-icon-item",l.style="max-width:50%;",l.innerHTML="".concat('')+'')).concat(a.domString,"")+'',l.onclick=function(b){if(r.decoderState.state.isEditing)return!1;a.onclick(b)};var s=document.createElement("span");s.className="icon-move close",s.innerHTML='')+'',s.onclick=function(){r.editIcon(a.id,"delete","header")},l.appendChild(s),i==="left"?document.getElementById("".concat(this.jSPlugin.id,"-headControl")).childNodes[0].appendChild(l):document.getElementById("".concat(this.jSPlugin.id,"-headControl")).childNodes[1].appendChild(l)}},{key:"countTime",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=this;if(!document.getElementById(this.jSPlugin.id+"time-area")){var a=document.createElement("div");a.id=this.jSPlugin.id+"time-area",a.className="time-area",a.innerHTML='00:00',document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container"))&&document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).appendChild(a)}if(this.countTimer&&clearInterval(this.countTimer),n==="add"){var l=i;document.getElementById(r.jSPlugin.id+"time-area").style.display="flex",this.countTimer=setInterval(function(){++l,document.getElementById(r.jSPlugin.id+"time-area").children[1].innerHTML=s(l)},1e3)}else n==="destroy"&&(this.countTimer&&clearInterval(this.countTimer),this.countTimer=void 0,document.getElementById(r.jSPlugin.id+"time-area")&&(document.getElementById(r.jSPlugin.id+"time-area").children[1].innerHTML="00:00",document.getElementById(r.jSPlugin.id+"time-area").style.display="none"));function s(b){var T=parseInt(b),C=0,y=0,h="00",D="00",_="00";return T>59&&(C=parseInt(T/60),T=parseInt(T%60),C>59&&(y=parseInt(C/60),C=parseInt(C%60))),h=parseInt(T)>9?parseInt(T):"0"+parseInt(T),D=parseInt(C)>9?parseInt(C):"0"+parseInt(C),_=parseInt(y)>9?parseInt(y):"0"+parseInt(y),y>0?_+":"+D+":"+h:C>0?D+":"+h:"00:"+h}}},{key:"setDisabled",value:function(n){var i=this.decoderState.state,r=i.sound,a=i.hd;document.getElementById(r?"".concat(this.jSPlugin.id,"-sound-icon"):"".concat(this.jSPlugin.id,"-nosound-icon"))!=null&&document.getElementById(r?"".concat(this.jSPlugin.id,"-sound-icon"):"".concat(this.jSPlugin.id,"-nosound-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-recordvideo-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-recordvideo-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-capturePicture-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-capturePicture-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-talk-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-talk-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-zoom-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-zoom-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-pantile-icon"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-pantile-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById(a?"".concat(this.jSPlugin.id,"-hdSelect-icon"):"".concat(this.jSPlugin.id,"-sdSelect-icon"))!=null&&document.getElementById(a?"".concat(this.jSPlugin.id,"-hdSelect-icon"):"".concat(this.jSPlugin.id,"-sdSelect-icon")).setAttribute("style",n?"cursor: not-allowed;fill: gray":"cursor: default"),document.getElementById("".concat(this.jSPlugin.id,"-speed-text"))!=null&&document.getElementById("".concat(this.jSPlugin.id,"-speed-text")).setAttribute("style",document.getElementById("".concat(this.jSPlugin.id,"-speed-text")).getAttribute("style")+";"+(n?"cursor: not-allowed;color: gray;border-color: gray;":"cursor: default;color: #ffffff;border-color: #ffffff;"))}},{key:"matchBtn",value:function(n){var i=this,r=this.themeData,a=r.header,l=r.footer,s={title:"",id:"",domString:"",color:"#FFFFFF",activeColor:"#FFFFFF",onclick:function(){},onmoveleft:function(){},onmoveright:function(){},onremove:function(){}},b=a.btnList.findIndex(function(T){return T.iconId===n});switch(b===-1?(s.color=l.color,s.backgroundColor=l.backgroundColor,s.activeColor=l.activeColor):(s.color=a.color,s.backgroundColor=a.backgroundColor,s.activeColor=a.activeColor),n){case"play":return s.title="播放/结束播放",s.id=n,s.domString='
    '+'`)+'')+'
    ',s.onclick=function(){var T=i.decoderState.state,C=T.play,y=T.isEditing,h=T.rec,D=T.cloudRec,_=T.recordvideo;if(y)return!1;C?(h||D?i.jSPlugin.pause():i.jSPlugin.stop(),_&&i.setDecoderState({recordvideo:!1}),i.jSPlugin.Zoom.stopZoom()):(h||D?i.jSPlugin.resume():i.jSPlugin.play(),i.resetMobileZoomStatus()),i.setDecoderState({zoom:!1,play:!C}),i.setDisabled(C)},s;case"sound":return s.title="声音",s.id=n,s.domString=''+'`)+' + + + + + `)+"",s.onclick=function(){var T=i.decoderState.state,C=T.play,y=T.sound,h=T.talk;C&&(y?(i.jSPlugin.closeSound(),i.setDecoderState({sound:!1})):h||(i.jSPlugin.openSound(),i.setDecoderState({sound:!0})))},s;case"recordvideo":return s.title="录屏",s.id=n,s.domString='')+'',s.onclick=function(){var T=i.decoderState.state,C=T.play,y=T.recordvideo;C&&(y?(i.jSPlugin.stopSave(),i.setDecoderState({recordvideo:!1})):(i.jSPlugin.startSave("".concat(new Date().getTime())),i.setDecoderState({recordvideo:!0})))},s;case"capturePicture":return s.title="截图",s.id=n,s.domString='')+'',s.onclick=function(){var T=i.decoderState.state.play;T?i.jSPlugin.capturePicture("".concat(new Date().getTime())):console.log("视频未播放,无法截图")},s;case"talk":return s.title="对讲",s.id=n,s.domString="
    "+'')+'',s.onclick=function(){var T=i.decoderState.state,C=T.talk,y=T.sound,h=T.play;if(h)if(C){console.log("结束对讲"),i.setDecoderState({talk:!1}),i.jSPlugin.Talk.stopTalk();var D=Ut.findIndex(i.themeData.footer.btnList,function(_){return _.iconId==="sound"&&_.isrender===1&&_.defaultActive===1})>-1;i.themeData&&D&&(i.jSPlugin.openSound(),i.setDecoderState({sound:!0}))}else console.log("开始对讲"),i.setDecoderState({talk:!0}),y&&(i.jSPlugin.closeSound(),i.setDecoderState({sound:!1})),i.jSPlugin.Talk.startTalk()},s;case"zoom":return s.title="电子放大",s.id=n,s.domString="
    "+' + + + + + `),s.onclick=function(){var T=i.decoderState.state,C=T.zoom,y=T.play;if(!y)return!1;C?(console.log("结束电子放大"),i.setDecoderState({zoom:!1}),i.jSPlugin.Zoom.stopZoom()):(console.log("开始电子放大"),i.jSPlugin.Zoom.startZoom(),i.setDecoderState({zoom:!0}))},s;case"pantile":return s.title="云台控制",s.id=n,s.domString='')+'',s.onclick=function(){var T=i.decoderState.state,C=T.play,y=T.pantile,h=T.expend;if(C)if(y)console.log("隐藏云台"),i.Ptz.hide(),i.setDecoderState({pantile:!1});else{if(console.log("显示云台"),i.isMobile&&!h)return console.log("移动端,非全屏状态不展示云台"),!1;i.Ptz.show(),i.setDecoderState({pantile:!0})}},s;case"expend":return s.title="全局全屏",s.id=n,s.domString='')+''+' + `),s.onclick=function(){var T=i.decoderState.state,C=T.webExpend,y=T.expend;T.play;var h=T.pantile;if(C)return console.log("正在网站全屏"),!1;if(y)if(i.isMobile){var D=parseInt(getComputedStyle(document.getElementById("".concat(i.jSPlugin.id,"-wrap"))).height,10)-parseInt(getComputedStyle(document.getElementById(i.jSPlugin.id)).height,10);document.getElementById("".concat(i.jSPlugin.id,"-ez-iframe-footer-container"))&&(document.getElementById("".concat(i.jSPlugin.id,"-ez-iframe-footer-container")).style.marginTop="-32px"),document.getElementById("".concat(i.jSPlugin.id,"-headControl"))&&(document.getElementById("".concat(i.jSPlugin.id,"-headControl")).style.position="relative"),Kl(document.getElementById("".concat(i.jSPlugin.id,"-wrap")),i.jSPlugin.width,i.jSPlugin.height+D),i.jSPlugin.jSPlugin.JS_Resize(i.jSPlugin.width,i.jSPlugin.height),h&&(i.Ptz.hide(),i.setDecoderState({pantile:!1}))}else{console.log("取消全局全屏");var z=Nr();z.then(function(S){console.log("取消全屏",S,i.jSPlugin),i.jSPlugin.jSPlugin.JS_Resize(i.jSPlugin.width,i.jSPlugin.height)})}else if(console.log("执行全局全屏"),i.isMobile){var D=parseInt(getComputedStyle(document.getElementById("".concat(i.jSPlugin.id,"-wrap"))).height,10)-parseInt(getComputedStyle(document.getElementById(i.jSPlugin.id)).height,10);$o(document.getElementById("".concat(i.jSPlugin.id,"-wrap"))),setTimeout(function(){var S=document.documentElement.clientWidth,d=document.documentElement.clientHeight;document.getElementById("".concat(i.jSPlugin.id)).style["backface-visibility"]="hidden",i.jSPlugin.jSPlugin.JS_Resize(d,S-D)},100)}else{var _=window.screen.width,E=window.screen.height,w=yi(document.getElementById("".concat(i.jSPlugin.id)));w.then(function(S){i.jSPlugin.jSPlugin.JS_Resize(_,E)}).catch(function(S){console.log(S)})}i.setDecoderState({expend:!y})},s;case"webExpend":return s.title="网页全屏",s.id=n,s.domString='')+''+'",s.onclick=function(){var T=i.decoderState.state,C=T.webExpend,y=T.expend;if(T.play,y)return console.log("正在全局全屏"),!1;if(i.jSPlugin.recTimer&&clearInterval(i.jSPlugin.recTimer),C){console.log("取消网页全屏");var S=Nr();S.then(function(d){i.jSPlugin.jSPlugin.JS_Resize(i.jSPlugin.width,i.jSPlugin.height),i.jSPlugin.Theme.Rec&&i.jSPlugin.Theme.Rec.recAutoSize()})}else{console.log("执行网页全屏");var h=0,D=0,_=i;["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(d){window.addEventListener(d,function(g){var k=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;return k?document.getElementById("".concat(_.jSPlugin.id,"-loading-item-0"))&&(document.getElementById("".concat(_.jSPlugin.id,"-loading-item-0")).style.height=window.screen.height-parseInt(window.getComputedStyle(document.getElementById("".concat(_.jSPlugin.id,"-headControl"))).height,10)+"px"):document.getElementById("".concat(_.jSPlugin.id,"-loading-item-0"))&&(document.getElementById("".concat(_.jSPlugin.id,"-loading-item-0")).style.height=_.jSPlugin.height+parseInt(window.getComputedStyle(document.getElementById("".concat(_.jSPlugin.id,"-headControl"))).height,10)+"px"),k})});var E=window.screen.width,w=window.screen.height,z=yi(document.getElementById("".concat(i.jSPlugin.id,"-wrap")));z.then(function(d){document.getElementById("".concat(i.jSPlugin.id,"-canvas-container"))&&(h=parseInt(window.getComputedStyle(document.getElementById("".concat(i.jSPlugin.id,"-canvas-container"))).height,10)),document.getElementById("".concat(i.jSPlugin.id,"-headControl"))&&(D=parseInt(window.getComputedStyle(document.getElementById("".concat(i.jSPlugin.id,"-headControl"))).height,10)),i.jSPlugin.jSPlugin.JS_Resize(E,w-h-D),i.jSPlugin.Theme.Rec&&i.jSPlugin.Theme.Rec.recAutoSize()}).catch(function(d){console.log(d)})}i.setDecoderState({webExpend:!C})},s;case"hd":return s.title="画面清晰度",s.id=n,s.domString='"+'')+''+' + `)+`')+"",s.onclick=function(T){var C=i.decoderState.state,y=C.hd,h=C.expend,D=C.recordvideo,_=C.play;_&&(y&&T.target.id==="".concat(i.jSPlugin.id,"-select-sd")?(console.log("切换到标清"),i.jSPlugin.changeVideoLevel(0),i.setDecoderState({hd:!1}),i.resetMobileZoomStatus(),D&&i.setDecoderState({recordvideo:!1}),i.setDecoderState({zoom:!1}),i.jSPlugin.Zoom.stopZoom()):!y&&T.target.id==="".concat(i.jSPlugin.id,"-select-hd")&&(i.jSPlugin.changeVideoLevel(1),i.setDecoderState({hd:!0}),i.resetMobileZoomStatus(),D&&i.setDecoderState({recordvideo:!1}),i.setDecoderState({zoom:!1}),i.jSPlugin.Zoom.stopZoom()),i.showHD=!i.showHD,document.getElementById("".concat(i.jSPlugin.id,"-hdSelect"))&&(document.getElementById("".concat(i.jSPlugin.id,"-hdSelect")).style.display=document.getElementById("".concat(i.jSPlugin.id,"-hdSelect")).style.display==="none"?"block":"none",i.isMobile&&(document.getElementById("".concat(i.jSPlugin.id,"-select-hd-mask")).style.display=document.getElementById("".concat(i.jSPlugin.id,"-select-hd-mask")).style.display==="none"?"block":"none")),i.isMobile&&h&&i.showHD?document.getElementById("".concat(i.jSPlugin.id,"-hdSelect")).className="hd speed-select mobile expend":document.getElementById("".concat(i.jSPlugin.id,"-hdSelect")).className=i.isMobile?"hd speed-select mobile":"speed-select")},s;case"speed":return s.title="回放倍速",s.id=n,s.domString='"+` +
    `).concat(this.nextRate===1?"倍速":"".concat(this.nextRate,"倍").replace("3","0.5"),`
    + `)+`')+"
    ",this.isMobile||(s.onmouseenter=function(T){var C=i.decoderState.state.play;if(!C)return!1;console.log("鼠标移入",T),i.setDecoderState({speed:!0}),document.getElementById("".concat(i.jSPlugin.id,"-speedSelect"))&&(document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).style.display="block")},s.onmouseleave=function(T){var C=i.decoderState.state.play;if(!C)return!1;console.log("鼠标移出",T),i.setDecoderState({speed:!1}),document.getElementById("".concat(i.jSPlugin.id,"-speedSelect"))&&(document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).style.display="none")}),s.onclick=function(T){var C=i.decoderState.state,y=C.speed,h=C.expend,D=C.play;if(!D)return!1;if(!y&&i.isMobile&&(document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).className=h?"speed speed-select mobile expend":"speed speed-select mobile"),i.nextRate=1,T.target.id)switch(T.target.id){case"".concat(i.jSPlugin.id,"-select-speed1"):console.log("倍速1"),i.nextRate=1,i.jSPlugin.jSPlugin.JS_Speed(i.nextRate),i.changeRecSpeed(1),i.jSPlugin.speed=1,i.setDecoderState({speed:!y});break;case"".concat(i.jSPlugin.id,"-select-speed2"):console.log("倍速2"),i.nextRate=2,i.jSPlugin.jSPlugin.JS_Speed(i.nextRate),i.changeRecSpeed(2),i.jSPlugin.speed=2,i.setDecoderState({speed:!y});break;case"".concat(i.jSPlugin.id,"-select-speed4"):console.log("倍速4"),i.nextRate=4,i.jSPlugin.jSPlugin.JS_Speed(i.nextRate),i.changeRecSpeed(4),i.jSPlugin.speed=4,i.setDecoderState({speed:!y});break;case"".concat(i.jSPlugin.id,"-select-speed05"):console.log("倍速05"),i.nextRate=3,i.jSPlugin.jSPlugin.JS_Speed(i.nextRate),i.changeRecSpeed(.5),i.jSPlugin.speed=.5,i.setDecoderState({speed:!y});break;default:i.isMobile?i.setDecoderState({speed:!y}):i.setDecoderState({speed:!0});break}!i.isMobile&&T.target.id==="".concat(i.jSPlugin.id,"-speed-text")?document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).style.display="block":document.getElementById("".concat(i.jSPlugin.id,"-speedSelect"))&&(document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).style.display=document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).style.display==="none"?"block":"none")},s;case"deviceName":return s.title="设备名称",s.id=n,s.domString="设备名称",s.onclick=function(){},s;case"deviceID":return s.title="设备序列号",s.id=n,s.domString="设备序列号",s.onclick=function(){},s;case"cloudRec":return s.title="云存储回放",s.id=n,s.domString=` + + + + + + + + `),s.onclick=function(){console.log("点击云回放"),i.setDecoderState({type:"cloud.rec",cloudRec:!0,rec:!1}),i.jSPlugin.changePlayUrl({type:"cloud.rec"},function(){console.log(i.jSPlugin);var T=et("begin",i.jSPlugin.url)||new Date().Format("yyyyMMdd");i.Rec.renderRec("".concat(T.slice(0,4),"-").concat(T.slice(4,6),"-").concat(T.slice(6,8)));var C=i.decoderState.state.zoom;C&&(i.setDecoderState({zoom:!1}),i.jSPlugin.Zoom.stopZoom())}),console.log(i.jSPlugin)},s;case"rec":return s.title="本地存储",s.id=n,s.domString=` + + + + + + + + + `),s.onclick=function(){console.log("点击本地回放"),i.setDecoderState({type:"rec",cloudRec:!1,rec:!0}),i.jSPlugin.changePlayUrl({type:"rec"},function(){console.log("---------本地回放"),console.log(i.jSPlugin);var T=et("begin",i.jSPlugin.url)||new Date().Format("yyyyMMdd");i.Rec.renderRec("".concat(T.slice(0,4),"-").concat(T.slice(4,6),"-").concat(T.slice(6,8)));var C=i.decoderState.state.zoom;C&&(i.setDecoderState({zoom:!1}),i.jSPlugin.Zoom.stopZoom())}),console.log(i.jSPlugin)},s;default:return s}}},{key:"changeRecSpeed",value:function(n){var i=this,r=function(s){if(console.log("setLiActive",s),!document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")))return!1;document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[0].className=document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[0].className.replace("active","default"),document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[1].className=document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[1].className.replace("active","default"),document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[2].className=document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[2].className.replace("active","default"),document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[3].className=document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[3].className.replace("active","default"),document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[s].className=document.getElementById("".concat(i.jSPlugin.id,"-speedSelect")).childNodes[s].className.replace("default","active")},a="1";switch(n){case 1:r(2),a="倍速";break;case 2:r(1),a="".concat(n,"倍");break;case 4:r(0),a="".concat(n,"倍");break;case .5:r(3),a="".concat(n,"倍");break;default:r(2),a="".concat(n,"倍");break}document.getElementById("".concat(this.jSPlugin.id,"-speed-text"))&&(document.getElementById("".concat(this.jSPlugin.id,"-speed-text")).innerHTML=a)}},{key:"initThemeData",value:function(){var n=this,i=this.themeData,r=i.header,a=i.footer,l=this.jSPlugin.id;if(this.header=Qo.header,this.footer=Qo.footer,this.isNeedRenderHeader=Ut.findIndex(r.btnList,function(w){return w.isrender>0})>=0,this.isMobile&&(this.isNeedRenderHeader=Ut.findIndex(r.btnList,function(w){return w.isrender>0&&w.iconId==="deviceID"||w.isrender>0&&w.iconId==="deviceName"})>=0),this.isNeedRenderFooter=Ut.findIndex(a.btnList,function(w){return w.isrender>0})>=0,this.isNeedRenderTimeLine=Ut.findIndex(r.btnList,function(w){return w.iconId==="cloudRec"&&w.isrender===1||w.iconId==="rec"&&w.isrender===1})>=0&&!this.jSPlugin.disabledTimeLine,["date-switch-container-wrap","rec-type-container-wrap","mobile-rec-wrap","mobile-ez-ptz-container"].forEach(function(w,z){document.getElementById(w)&&document.getElementById(w).parentElement.removeChild(document.getElementById(w))}),this.isNeedRenderHeader)if(document.getElementById("".concat(this.jSPlugin.id,"-headControl")))document.getElementById("".concat(this.jSPlugin.id,"-headControl")).innerHTML="
    ");else{var s=document.createElement("div");s.setAttribute("id","".concat(this.jSPlugin.id,"-headControl")),s.setAttribute("class","header-controls"),s.innerHTML="
    `);var b={height:this.jSPlugin.width>Me?"48px":"32px","line-height":this.jSPlugin.width>Me?"48px":"32px",display:"flex","justify-content":"space-between",top:0,"z-index":1,background:"#000000",color:"#FFFFFF",width:"100%"};s.style=pa(b),document.getElementById("".concat(l,"-wrap")).insertBefore(s,document.getElementById(l));var T=setInterval(function(){window.EZUIKit[n.jSPlugin.id].state.EZUIKitPlayer.init&&clearInterval(T)},50)}else document.getElementById("".concat(this.jSPlugin.id,"-headControl"))&&document.getElementById("".concat(this.jSPlugin.id,"-headControl")).parentElement.removeChild(document.getElementById("".concat(this.jSPlugin.id,"-headControl")));if(this.isNeedRenderFooter)if(document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")))document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container"))&&(document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).style.marginTop="-".concat(this.jSPlugin.width>Me?48:32,"px"),document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).innerHTML='`));else{var C=document.createElement("div");C.setAttribute("id","".concat(this.jSPlugin.id,"-ez-iframe-footer-container")),C.setAttribute("class","ez-iframe-footer-container");var y={"min-height":this.jSPlugin.width>Me?"48px":"32px","max-height":this.jSPlugin.width>Me?"96px":"80px",position:"relative","margin-top":this.jSPlugin.width>Me?"-48px":"-32px",display:"flex","flex-wrap":"wrap","justify-content":"space-between","z-index":999,top:0,color:"#FFFFFF",width:"100%"};C.style=pa(y),C.innerHTML='`),Wn(C,document.getElementById(l))}else document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container"))&&document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")).parentElement.removeChild(document.getElementById("".concat(this.jSPlugin.id,"-ez-iframe-footer-container")));if(this.isNeedRenderHeader&&document.getElementById("".concat(this.jSPlugin.id,"-headControl"))&&(document.getElementById("".concat(this.jSPlugin.id,"-headControl")).style.background=r.backgroundColor,document.getElementById("".concat(this.jSPlugin.id,"-headControl")).style.color=r.color,r.btnList.map(function(w,z){w.isrender&&n.renderHeader(w.iconId,w.part)})),this.isNeedRenderFooter&&document.getElementById("".concat(this.jSPlugin.id,"-audioControls"))&&(document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.background=a.backgroundColor,document.getElementById("".concat(this.jSPlugin.id,"-audioControls")).style.color=a.color,a.btnList.map(function(w,z){w.isrender&&n.renderFooter(w.iconId,w.part)})),this.isNeedRenderTimeLine)if(this.isMobile)document.getElementById("".concat(this.jSPlugin.id,"-headControl-right"))&&(document.getElementById("".concat(this.jSPlugin.id,"-headControl-right")).style.display="none"),this.Rec=new cs(this.jSPlugin,this.changeRecSpeed,this.resetMobileZoomStatus);else{this.Rec?(this.Rec.unSyncTimeLine(),this.Rec.recInit()):(this.jSPlugin.decoderState=this.decoderState,this.jSPlugin.setDecoderState=this.setDecoderState,this.Rec=new ls(this.jSPlugin));var h=setInterval(function(){window.EZUIKit[n.jSPlugin.id].state.EZUIKitPlayer.init&&clearInterval(h)},50)}var D=Ut.findIndex(this.themeData.footer.btnList,function(w){return w.iconId==="pantile"&&w.isrender===1})>=0&&!this.jSPlugin.disabledPTZ;D&&(this.isMobile&&(this.MobilePtz=new vs(this.jSPlugin)),this.Ptz=new hs(this.jSPlugin));var _=function(){var z=n.decoderState.state,S=z.expend,d=z.webExpend,m=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;m||(n.jSPlugin.jSPlugin.JS_Resize(n.jSPlugin.width,n.jSPlugin.height),S&&n.setDecoderState({expend:!1}),d&&n.setDecoderState({webExpend:!1})),n.jSPlugin.Theme.Rec&&n.jSPlugin.Theme.Rec.recAutoSize()};if(["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(w){window.addEventListener(w,function(z){return _()})}),this.themeData.poster){this.jSPlugin.poster=this.themeData.poster;var E=setInterval(function(){window.EZUIKit[n.jSPlugin.id].state.EZUIKitPlayer.init&&(clearInterval(E),n.jSPlugin.setPoster(n.themeData.poster))},50)}this.inited=!0,this.getDeviceInfo()}},{key:"resetMobileZoomStatus",value:function(){if(this.isMobile){var n=document.getElementById("".concat(this.jSPlugin.id,"-zoom-container"));n&&n.style&&n.style.display!="none"&&(console.log("结束电子放大"),n.style.display="none"),this.jSPlugin.Zoom.resetZoom()}}},{key:"getDeviceInfo",value:function(){var n=this,i=function(a){a.code==200&&a.data&&(a.data.isEncrypt&&setTimeout(function(){n.pluginStatus.loadingClear(),n.pluginStatus.loadingSetText({text:"设备已加密",color:"red"})},1500),document.getElementById("".concat(n.jSPlugin.id,"-deviceName-content"))&&(document.getElementById("".concat(n.jSPlugin.id,"-deviceName-content")).style.maxWidth="100%",document.getElementById("".concat(n.jSPlugin.id,"-deviceName-content")).style.overflow="hidden",document.getElementById("".concat(n.jSPlugin.id,"-deviceName-content")).style.textOverflow="ellipsis",document.getElementById("".concat(n.jSPlugin.id,"-deviceName-content")).style.whiteSpace="nowrap",document.getElementById("".concat(n.jSPlugin.id,"-deviceName-content")).innerHTML=a.data.deviceName),document.getElementById("".concat(n.jSPlugin.id,"-deviceID-content"))&&(document.getElementById("".concat(n.jSPlugin.id,"-deviceID-content")).style.maxWidth="100%",document.getElementById("".concat(n.jSPlugin.id,"-deviceID-content")).style.overflow="hidden",document.getElementById("".concat(n.jSPlugin.id,"-deviceID-content")).style.textOverflow="ellipsis",document.getElementById("".concat(n.jSPlugin.id,"-deviceID-content")).style.whiteSpace="nowrap",document.getElementById("".concat(n.jSPlugin.id,"-deviceID-content")).innerHTML=Ke(n.jSPlugin.url).deviceSerial))};Gn(this.jSPlugin.env.domain+"/api/lapp/device/info","POST",{accessToken:this.jSPlugin.accessToken,deviceSerial:Ke(this.jSPlugin.url).deviceSerial},"",i)}},{key:"editStart",value:function(n){var i=document.getElementById("".concat(this.jSPlugin.id,"-audioControls")),r=document.getElementById("".concat(this.jSPlugin.id,"-headControl"));r&&r.setAttribute("class","header-controls themeEditing"),i&&i.setAttribute("class","footer-controls themeEditing"),this.setDecoderState({isEditing:!0})}},{key:"editEnd",value:function(n){var i=document.getElementById("".concat(this.jSPlugin.id,"-audioControls")),r=document.getElementById("".concat(this.jSPlugin.id,"-headControl"));r&&r.setAttribute("class","header-controls"),i&&i.setAttribute("class","footer-controls"),this.setDecoderState({isEditing:!1})}},{key:"webExpend",value:function(){var n=this,i=this.decoderState.state;i.webExpend;var r=i.expend,a=i.play;if(!a)return!1;if(r)return console.log("正在全局全屏"),!1;console.log("执行网页全屏");var l=0,s=0,b=yi(document.getElementById("".concat(this.jSPlugin.id,"-wrap")));b.then(function(T){console.log("全屏promise",window.screen.width),document.getElementById("".concat(n.jSPlugin.id,"-canvas-container"))&&(l=parseInt(window.getComputedStyle(document.getElementById("".concat(n.jSPlugin.id,"-canvas-container"))).height,10)),document.getElementById("".concat(n.jSPlugin.id,"-headControl"))&&(s=parseInt(window.getComputedStyle(document.getElementById("".concat(n.jSPlugin.id,"-headControl"))).height,10)),console.log("this.jSPlugin.JS_Resiz",l,s,document.body.clientWidth),n.jSPlugin.jSPlugin.JS_Resize(window.screen.width,window.screen.height-l-s)}).catch(function(T){console.log(T)})}},{key:"expend",value:function(){var n=this,i=this.decoderState.state,r=i.webExpend;i.expend;var a=i.play;if(i.pantile,!a)return!1;if(r)return console.log("正在网站全屏"),!1;if(console.log("执行全局全屏"),this.isMobile){var l=parseInt(getComputedStyle(document.getElementById("".concat(this.jSPlugin.id,"-wrap"))).height,10)-parseInt(getComputedStyle(document.getElementById(this.jSPlugin.id)).height,10);$o(document.getElementById("".concat(this.jSPlugin.id,"-wrap"))),setTimeout(function(){var b=document.documentElement.clientWidth,T=document.documentElement.clientHeight;document.getElementById("".concat(n.jSPlugin.id)).style["backface-visibility"]="hidden",n.jSPlugin.jSPlugin.JS_Resize(T,b-l)},100)}else{var s=yi(document.getElementById("".concat(this.jSPlugin.id)));s.then(function(b){n.jSPlugin.jSPlugin.JS_Resize(window.screen.width,window.screen.height)}).catch(function(b){console.log(b)})}}}]),f}();Date.prototype.Format=function(f){var u={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(f)&&(f=f.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var n in u)new RegExp("("+n+")").test(f)&&(f=f.replace(RegExp.$1,RegExp.$1.length==1?u[n]:("00"+u[n]).substr((""+u[n]).length)));return f};var Ds=function(){function f(u,n){if(fe(this,f),this.params=u,this.state={},this.jsPlugin=n,this.url="https://log.ys7.com/statistics.do?",u.env)switch(u.env){case"test12":this.url="https://test12dclog.ys7.com/statistics.do?";break;case"online":break;default:this.url=u.env;break}}return dt(f,[{key:"uuid",value:function(){for(var n=[],i="0123456789abcdef",r=0;r<36;r++)n[r]=i.substr(Math.floor(Math.random()*16),1);n[14]="4",n[19]=i.substr(n[19]&3|8,1),n[8]=n[13]=n[18]=n[23]="-";var a=n.join("");return a}},{key:"dclog",value:function(n){var i=this.url,r=Object.assign({},{systemName:"open_website_monitor"},{bn:"ezuikit-js"},n,{un:n.url},{st:new Date().getTime(),h:window.location.pathname});Object.keys(r).forEach(function(l,s){var b=r[l];typeof r[l]=="string"&&(b=r[l].replace("%","%25")),typeof r[l]!="undefined"&&(i+="".concat(s===0?"":"&").concat(l,"=").concat(encodeURIComponent(b)))});var a=new Image;a.src=i}},{key:"localInfoLog",value:function(n){var i=this.url,r=window.location.protocol+"//"+window.location.host,a={systemName:"open_netstream_localinfo",Ver:"v6.0.0",PlatAddr:r,ExterVer:"v6.0.0",OpId:this.uuid(),CltType:102,AppId:"",playurl:encodeURIComponent(this.jsPlugin.url),StartTime:new Date().Format("yyyy-MM-dd hh:mm:ss.S"),OS:navigator.platform};a=Object.assign(a,n),Object.keys(a).forEach(function(s,b){var T=a[s];typeof a[s]=="string"&&(T=a[s].replace("%","%25")),typeof a[s]!="undefined"&&(i+="".concat(b===0?"":"&").concat(s,"=").concat(encodeURIComponent(T)))});var l=new Image;l.src=i}},{key:"playLog",value:function(n){var i=this.url,r=i,a={systemName:"open_netstream_play_main",playurl:encodeURIComponent(this.jsPlugin.url),Time:new Date().Format("yyyy-MM-dd hh:mm:ss.S"),Via:2,OpId:this.uuid()};a=Object.assign(a,n),Object.keys(a).forEach(function(s,b){var T=a[s];typeof a[s]=="string"&&(T=a[s].replace("%","%25")),typeof a[s]!="undefined"&&(r+="".concat(b===0?"":"&").concat(s,"=").concat(encodeURIComponent(T)))});var l=new Image;l.src=r}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n;function i(y,h){for(var D=document.getElementsByTagName("head")[0].getElementsByTagName("script"),_=!1,E=0;E0&&(O=h.controls.join(","),A+="&controls="+O)),h.websocketParams&&(A+="&websocketParams="+JSON.stringify(h.websocketParams)),A;case"standard":return s+"/ezopen/h5/iframe?bSupporDoubleClickFull=0&url="+g.opt.url.replace("?","&")+"&autoplay="+g.opt.autoplay+"&audio="+g.opt.audio+"&accessToken="+h.accessToken+"&templete=1&id="+D+"&decoderVersion="+g.opt.decoderVersion;case"security":return s+"/ezopen/h5/iframe_se?bSupporDoubleClickFull=0&url="+g.opt.url.replace("?","&")+"&autoplay="+g.opt.autoplay+"&audio="+g.opt.audio+"&accessToken="+h.accessToken+"&templete=0&id="+D+"&decoderVersion="+g.opt.decoderVersion;case"theme":return A=s+"/jssdk/theme.html?url=".concat(h.url,"&accessToken=").concat(h.accessToken,"&id=").concat(D,"&isMobile=").concat(h.isMobile),typeof h.isMobile!="undefined"&&(A+="&isMobile="+h.isMobile),typeof h.autoplay!="undefined"&&(A+="&autoplay="+h.autoplay),typeof h.domain!="undefined"&&h.domain=="https://test12open.ys7.com"&&(A+="&env=test12"),typeof h.env!="undefined"&&typeof h.env.domain!="undefined"&&h.env.domain=="https://test12open.ys7.com"&&(A+="&env=test12"),typeof h.header!="undefined"&&(A+="&header="+h.header),A;default:return s+"/ezopen/h5/iframe?bSupporDoubleClickFull=0&url="+g.opt.url.replace("?","&")+"&autoplay="+g.opt.autoplay+"&audio="+g.opt.audio+"&accessToken="+h.accessToken+"&templete=0&id="+D+"&decoderVersion="+g.opt.decoderVersion}}E.src=w();var z=document.getElementById(D).offsetHeight,S=document.getElementById(D).offsetWidth;h.height&&(z=parseInt(h.height),/\%$/.test(h.height)&&(S=document.getElementById(D).offsetWidth*(parseInt(h.height)/100))),h.width&&(S=parseInt(h.width),/\%$/.test(h.width)&&(S=document.getElementById(D).offsetWidth*(parseInt(h.width)/100))),E.width=S,E.height=z,E.id="EZUIKitPlayer-"+D,E.setAttribute("allowfullscreen",!0),E.setAttribute("allow","autoplay"),E.setAttribute("frameborder",0),_.appendChild(E);var d=g.opt.filePath+"/js/jquery.js",m="https://open.ys7.com/assets/layer/layer.js";i(d,function(){i(m,function(){if(ge().headerContainer){var A=document.createElement("div");A.setAttribute("class","panel-top");var O=document.createElement("div");if(O.setAttribute("class","contros"),A.appendChild(O),_.insertBefore(A,E),ge().capturePictureModule){var H=document.createElement("span");H.innerHTML=' ',H.onclick=function(){g.capturePicture()},O.appendChild(H)}if(console.log("matchHeaderOpt().saveModule",ge().saveModule),ge().saveModule){var Z=document.createElement("span");Z.innerHTML=' ',Z.onclick=function(){g.startSave(),document.getElementById("startSave").setAttribute("class","icon hide"),document.getElementById("stopSave").setAttribute("class","icon")},O.appendChild(Z);var X=document.createElement("span");X.innerHTML=' ',X.onclick=function(){g.stopSave(),document.getElementById("stopSave").setAttribute("class","icon hide"),document.getElementById("startSave").setAttribute("class","icon")},O.appendChild(X)}if(ge().zoomModule){var ne=document.createElement("span");ne.innerHTML=' ',ne.onclick=function(){g.enableZoom(),document.getElementById("enableZoom").setAttribute("class","icon hide"),document.getElementById("closeZoom").setAttribute("class","icon")},O.appendChild(ne);var Y=document.createElement("span");Y.innerHTML=' ',Y.onclick=function(){g.closeZoom(),document.getElementById("closeZoom").setAttribute("class","icon hide"),document.getElementById("enableZoom").setAttribute("class","icon")},O.appendChild(Y)}}function me(){var rt={footerContainer:!1,talkModule:!1,broadcastModule:!1,hdModule:!1,fullScreenModule:!1},Ae=g.opt.template;switch(Ae){case"simple":if(h.footer&&h.footer instanceof Array){var ye=h.footer;rt={footerContainer:!0,talkModule:ye.indexOf("talk")!==-1,broadcastModule:ye.indexOf("broadcast")!==-1,hdModule:ye.indexOf("hd")!==-1,fullScreenModule:ye.indexOf("fullScreen")!==-1}}break;case"standard":if(h.footer&&h.footer instanceof Array){var ye=h.footer;rt={footerContainer:!0,talkModule:ye.indexOf("talk")!==-1,broadcastModule:ye.indexOf("broadcast")!==-1,hdModule:ye.indexOf("hd")!==-1,fullScreenModule:ye.indexOf("fullScreen")!==-1}}break;case"security":break;case"voice":rt={footerContainer:!0,talkModule:!0,broadcastModule:!0,hdModule:!0,fullScreenModule:!0};break}return rt}function ge(){var rt={headerContainer:!1,capturePictureModule:!1,saveModule:!1,zoomModule:!1},Ae=g.opt.template;switch(Ae){case"simple":if(h.header&&h.header instanceof Array){var ye=h.header;rt={headerContainer:!0,capturePictureModule:ye.indexOf("capturePicture")!==-1,saveModule:ye.indexOf("save")!==-1,zoomModule:ye.indexOf("zoom")!==-1}}break;case"standard":break;case"security":break;case"voice":rt={headerContainer:!0,capturePictureModule:!0,saveModule:!0,zoomModule:!0};break}return rt}if(me().footerContainer||g.opt.plugin.indexOf("talk")!==-1){var ve=g.opt.filePath+"/npm/css/recoder.css",Ce=g.opt.filePath+"/npm/js/recoder.js",be=g.opt.filePath+"/recorder.js";if(r(ve,function(){}),i(Ce,function(){i(be,function(){})}),g.opt.plugin.indexOf("talk")!==-1||me().talkModule){var Pe=function(Ae){if(console.log("data",Ae),Ae.code==200){var ye=Ae.data;if(ye){var De=ye.rtcUrl;De.indexOf("ws")===-1&&(De=De.replace("https","wss").replace("rtcgw","rtcgw-ws")),g.opt.rtcUrl=De,g.opt.ttsUrl="tts://"+ye.ttsUrl;var Xe="talk://"+g.opt.deviceSerial+":0:"+g.opt.channelNo+":cas.ys7.com:6500";if(g.opt.talkLink=g.opt.ttsUrl+"/"+Xe,g.opt.stream=ye.stream,console.log("_this.opt",g.opt),!g.opt.isReliesReady){var P=g.opt.filePath+"/npm/js/adapeter.js",M=g.opt.filePath+"/npm/js/janus.js",F=g.opt.filePath+"/npm/js/tts.js";console.log("加载jquery.js"),i(P,function(){console.log("加载adapeter.js"),i(M,function(){console.log("加载janus.js"),i(F,function(){console.log("加载tts.js"),g.opt.isReliesReady=!0})})},function(){return!!f.adapter})}if(!document.getElementById("audioleft")){var j=document.createElement("div");j.style.display="none",j.id="audioleft",document.body.appendChild(j)}if(!document.getElementById("audioright")){var I=document.createElement("div");I.style.display="none",I.id="audioright",document.body.appendChild(I)}}}l.opt=g.opt,f.EZUIKit&&(f.EZUIKit.opt=g.opt)};a(g.opt.apiDomain,"POST",{accessToken:g.opt.accessToken,deviceSerial:g.opt.deviceSerial,channelNo:g.opt.channelNo},"",Pe)}if(me().footerContainer){var Ye=function(Ae,ye){if(clearInterval(l.state.countTimer),Ae==="add"){var De=ye;l.state.countTimer=setInterval(function(){++De,document.getElementById("time-area").innerHTML=Xe(De)},1e3)}else if(Ae==="sub"){var De=ye;l.state.countTimer=setInterval(function(){De>0?(De--,document.getElementById("time-area").innerHTML=Xe(De)):(clearInterval(l.state.countTimer),l.state.countTimer=void 0,console.log("倒计时结束,开启声音"))},1e3)}else Ae==="destory"&&(clearInterval(l.state.countTimer),l.state.countTimer=void 0,document.getElementById("time-area").innerHTML="00:00");function Xe(P){var M=parseInt(P),F=0,j=0,I="00",V="00",L="00";return M>59&&(F=parseInt(M/60),M=parseInt(M%60),F>59&&(j=parseInt(F/60),F=parseInt(F%60))),I=parseInt(M)>9?parseInt(M):"0"+parseInt(M),V=parseInt(F)>9?parseInt(F):"0"+parseInt(F),L=parseInt(j)>9?parseInt(j):"0"+parseInt(j),j>0?L+":"+V+":"+I:F>0?V+":"+I:"00:"+I}},N=document.createElement("div");if(N.setAttribute("class","audio-controls"),_.appendChild(N),me().hdModule||me().fullScreenModule){var K=document.createElement("div");if(K.setAttribute("class","contros"),N.appendChild(K),me().hdModule){var te=document.createElement("span");te.setAttribute("id","video-hd"),te.innerHTML=g.opt.url.indexOf(".hd")===-1?"标清":"高清",te.onclick=function(){if(g.opt.videoLoading)return layer.msg("视频加载中,请稍后"),!1;var rt=g.stop();g.opt.videoLoading=!0,rt.then(function(Ae){g.opt.videoLoading=!1,g.opt.url.indexOf(".hd")===-1?(g.opt.url=g.opt.url.replace(".live",".hd.live"),te.innerHTML=g.opt.url.indexOf(".hd")===-1?"标清":"高清"):(g.opt.url=g.opt.url.replace(".hd.live",".live"),te.innerHTML=g.opt.url.indexOf(".hd")===-1?"标清":"高清"),g.play(g.opt.url)}).catch(function(Ae){console.log("error",Ae)})},K.appendChild(te)}if(me().fullScreenModule){var ce=document.createElement("span");ce.setAttribute("class","hide"),ce.setAttribute("id","ezuikit-open-sound"),ce.setAttribute("title","打开声音"),ce.setAttribute("style","vertical-align: top;"),ce.innerHTML='',ce.onclick=function(){g.openSound(0),ce.setAttribute("class","hide"),he.setAttribute("class","")};var he=document.createElement("span");ce.setAttribute("id","ezuikit-close-sound"),he.setAttribute("class","hide"),he.setAttribute("title","关闭声音"),he.setAttribute("style","vertical-align: top;"),he.innerHTML='',he.onclick=function(){g.closeSound(0),ce.setAttribute("class",""),he.setAttribute("class","hide")},K.appendChild(ce),K.appendChild(he)}if(g.opt.audio==1?he.setAttribute("class",""):(ce.setAttribute("class",""),g.closeSound(0)),me().fullScreenModule){var Re=document.createElement("span");Re.setAttribute("title","全屏"),Re.setAttribute("style","vertical-align: top;"),Re.innerHTML=' ',Re.onclick=function(){g.fullScreen()},K.appendChild(Re)}}if(me().talkModule){var we=document.createElement("div"),ke=document.createElement("div");we.setAttribute("class","ptp-talk off"),we.innerHTML=' 开启对讲',we.onclick=function(){if(console.log("EZUIKit.state.countTimer",l.state.countTimer),l.state.countTimer)return f.layer.msg("语音设备正忙,请稍后重试"),!1;Ye("add",0),console.log("开始对讲,关闭声音"),g.closeSound(0),console.log(g.opt),g.startTalk(),this.setAttribute("class","ptp-talk off hide"),ke.setAttribute("class","ptp-talk on")},ke.setAttribute("class","ptp-talk on hide"),ke.innerHTML=' 关闭对讲',ke.onclick=function(){console.log(g.opt),g.stopTalk(),Ye("destory",0),g.openSound(0),this.setAttribute("class","ptp-talk on hide"),we.setAttribute("class","ptp-talk off")},N.appendChild(we),N.appendChild(ke)}if(me().broadcastModule){var We=function rt(Ae){function ye(De){console.log("data",De),De.code==200&&(yn(De.data,5),l.state.page=De.page.page,Ae==0&&De.data.length==0&&!l.state.fetchDefaultList&&(l.state.fetchDefaultList=!0,rt(0)))}a(s+"/api/lapp/voice/query","POST",{accessToken:g.opt.accessToken,pageStart:Ae,pageSize:l.state.pageSize,default:l.state.fetchDefaultList?"true":"false"},"",ye)},yn=function(Ae){if(console.log("renderVoliceList",Ae),Ae&&Ae.length>0){for(var ye=0;ye"+(Ae[ye].voiceName.length>10?Ae[ye].voiceName.substr(0,10)+"...":Ae[ye].voiceName)+"",document.getElementsByClassName("voice-list-ul")[0].append(De),De.onclick=function(Xe){console.log("点击元素",Xe.target,Xe.target.dataset.url);var P=Xe.target.dataset.url,M=Xe.target.dataset.time;Yt(P,M)}}Ae.length===l.state.pageSize?document.getElementById("voice-list-end").innerHTML="向下滚动加载更多":document.getElementById("voice-list-end").innerHTML="没有更多数据了"}},Yt=function(Ae,ye){console.log("播放语音",Ae,ye);function De(Xe){console.log("data.data",Xe.data),Xe.code==200?Ye("sub",parseInt(ye)):Xe.code=="10001"?f.layer.msg("未找到当前语音"):f.layer.msg(Xe.msg||"发送失败,请稍后再试")}a(s+"/api/lapp/voice/send","POST",{accessToken:g.opt.accessToken,deviceSerial:g.opt.deviceSerial,channelNo:g.opt.channelNo,fileUrl:Ae},"",De)},It=document.createElement("div"),Ht=document.createElement("div");It.setAttribute("class","broadcast off"),Ht.setAttribute("class","broadcast on hide"),It.innerHTML=' 语音播报',It.onclick=function(){this.setAttribute("class","broadcast off hide"),Ht.setAttribute("class","broadcast on")},Ht.innerHTML='
    自定义语音
    语音播报',Ht.onclick=function(){this.setAttribute("class","broadcast on hide"),It.setAttribute("class","broadcast off")},N.appendChild(It),N.appendChild(Ht),document.getElementById("voice-custom").onclick=function(){console.log("显示自定义语音"),Ge.setAttribute("class","speak off")},We(0);var Ge=document.createElement("div"),Ct=document.createElement("div");Ge.setAttribute("class","speak off hide"),Ct.setAttribute("class","speak on hide"),Ge.setAttribute("id","startSpeak"),Ct.setAttribute("id","stopSpeak"),Ge.innerHTML=' 按住说话',Ct.innerHTML=' 松开发送',N.appendChild(Ge),N.appendChild(Ct),document.getElementById("voice-list").onscroll=function(rt){var Ae=this.scrollHeight;console.log("sum",Ae,this.scrollTop,document.getElementById("voice-list").clientHeight),Ae<=this.scrollTop+this.clientHeight&&(console.log("拖动到底,执行加载",l.state.page),We(++l.state.page))};var kt=document.createElement("div");kt.setAttribute("class","time-area"),kt.setAttribute("id","time-area"),kt.innerHTML="00:00",N.appendChild(kt);var Oe;document.getElementById("startSpeak").onmousedown=function(){if(l.state.countTimer)return f.layer.msg("语音设备正忙,请稍后重试"),!1;console.log("按住说话"),Ge.setAttribute("class","speak off hide"),Ct.setAttribute("class","speak on"),De(),Ye("add",0),setTimeout(function(){l.state.recodeTime=0,ye()},1e3),l.state.recodeTimer&&clearInterval(l.state.recodeTimer),l.state.recodeTimer=setInterval(function(){l.state.recodeTime>=59?(g.stopTalk(),Ye("destory",0),this.setAttribute("class","ptp-talk on hide"),we.setAttribute("class","ptp-talk off"),f.layer.msg("不超过1分钟")):l.state.recodeTime=l.state.recodeTime+1},1e3);var rt;function Ae(Xe){var P=rt.createMediaStreamSource(Xe);Oe=new f.Recorder(P)}function ye(){Oe&&Oe.record()}function De(){console.log("run init");try{f.AudioContext=f.AudioContext||f.webkitAudioContext,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia,f.URL=f.URL||f.webkitURL,rt=new AudioContext,console.log("Audio context set up."),console.log("navigator.getUserMedia "+(navigator.getUserMedia?"available.":"not present!"))}catch(Xe){console.log("err",Xe),f.layer.msg("No web audio support in this browser!")}navigator.getUserMedia({audio:!0},Ae,function(Xe){console.log("No live audio input: "+Xe)})}},document.getElementById("stopSpeak").onmouseup=function(){console.log("松开发送"),Ct.setAttribute("class","speak on hide"),rt();function rt(){if(Ye("destory",0),l.state.recodeTime<1)return f.layer.msg("说话时间过短"),clearInterval(l.state.recodeTimer),!1;clearInterval(l.state.recodeTimer),Ae()}function Ae(){try{Oe&&Oe.stop(),Oe&&Oe.exportWAV(function(ye){if(console.log("wav_file",ye),ye.size<1e3)return f.layer.msg("录音失败,请重试"),l.state.recodeTime=0,!1;Ye("sub",l.state.recodeTime+2);var De=new FormData;De.append("voiceFile",ye),De.append("accessToken",g.opt.accessToken),De.append("deviceSerial",g.opt.deviceSerial),De.append("channelNo",g.opt.channelNo);function Xe(M){console.log("data.data",M.data),M.code==200?Ye("sub",l.state.recodeTime+2):M.code=="10001"?f.layer.msg("未找到当前语音"):f.layer.msg(M.msg||"发送失败,请稍后再试")}function P(M){console.log("err",M)}a(s+"/api/lapp/voice/sendonce","POST",{voiceFile:ye,accessToken:g.opt.accessToken,deviceSerial:g.opt.deviceSerial,channelNo:g.opt.channelNo},"",Xe,P)}),Oe&&Oe.clear()}catch(ye){console.log(ye)}}}}}}})});var g=this;f.addEventListener("message",function(A){A.origin;var O=g.opt.id;if(A.data.type)switch(A.data.type){case"openSound":O==A.data.id&&h.openSoundCallBack&&h.openSoundCallBack(A.data);break;case"closeSound":O==A.data.id&&h.closeSoundCallBack&&h.closeSoundCallBack(A.data);break;case"capturePicture":O==A.data.id&&h.capturePictureCallBack&&h.capturePictureCallBack(A.data);break;case"startSave":O==A.data.id&&h.startSaveCallBack&&h.startSaveCallBack(A.data);break;case"stopSave":O==A.data.id&&h.stopSaveCallBack&&h.stopSaveCallBack(A.data);break;case"fullScreen":O==A.data.id&&h.fullScreenCallBack&&h.fullScreenCallBack(A.data);break;case"getOSDTime":O==A.data.id&&h.getOSDTimeCallBack&&h.getOSDTimeCallBack(A.data);break;case"handleSuccess":O==A.data.id&&h.handleSuccess&&h.handleSuccess(A.data);break;case"handleError":O==A.data.id&&h.handleError&&h.handleError(A.data);break;case"dblclick":O==A.data.id&&g.opt.bSupporDoubleClickFull&&(g.opt.fullScreenStatus===0?g.fullScreen():g.cancelFullScreen());break;case"startTalk":g.startTalk(),g.closeSound();break;case"stopTalk":g.stopTalk(),g.openSound();break;case"clickEventHandle":console.log("event.data",A.data),h.clickEventHandle&&h.clickEventHandle(A.data);break;case"removeEventHandle":h.removeEventHandle&&h.removeEventHandle(A.data);break;case"esc":h.clickEventHandle&&h.clickEventHandle(A.data);break;case"iframeFullScreen":if(O==A.data.id){var H=function(X){var ne=X.requestFullScreen||X.webkitRequestFullScreen||X.mozRequestFullScreen||X.msRequestFullScreen;if(ne)ne.call(X);else if(typeof f.ActiveXObject!="undefined"){var Y=new ActiveXObject("WScript.Shell");Y!==null&&Y.SendKeys("{F11}")}};H(document.getElementById("EZUIKitPlayer-"+A.data.id))}break}});function k(A){g.opt.fullScreenStatus=A?1:0,h.fullScreenChangeCallBack&&h.fullScreenChangeCallBack({data:A,id:g.opt.id})}typeof document.fullScreen!="undefined"?document.addEventListener("fullscreenchange",function(){var A=document.fullscreen||!1;k(A)}):typeof document.webkitIsFullScreen!="undefined"?document.addEventListener("webkitfullscreenchange",function(){var A=document.webkitIsFullScreen||!1;k(A)}):typeof document.mozFullScreen!="undefined"&&document.addEventListener("mozfullscreenchange",function(){var A=document.mozFullScreen||!1;k(A)})};T.prototype.play=function(y){var h="EZUIKitPlayer-"+this.opt.id,D=document.getElementById(h).contentWindow;ue(y)==="object"&&y.url&&(this.opt.url=y.url),ue(y)==="object"&&y.accessToken&&(this.opt.accessToken=y.accessToken),typeof y=="string"&&(this.opt.url=y),D.postMessage({action:"play",accessToken:this.opt.accessToken,url:this.opt.url},s+"/ezopen/h5/iframe");var _=this;this.opt.videoLoading=!0;var E=new Promise(function(w,z){f.addEventListener("message",function(S){var d=_.opt.id;d==S.data.id&&S.data.type==="handleSuccess"&&(setTimeout(function(){_.opt.videoLoading=!1},1e3),w(S.data))})});return E},T.prototype.stop=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("stop",s+"/ezopen/h5/iframe");var D=this,_=new Promise(function(E,w){f.addEventListener("message",function(z){var S=D.opt.id;S==z.data.id&&z.data.type==="stop"&&E(z.data)})});return _},T.prototype.openSound=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("openSound",s+"/ezopen/h5/iframe");var D=this,_=new Promise(function(E,w){f.addEventListener("message",function(z){var S=D.opt.id;S==z.data.id&&z.data.type==="openSound"&&E(z.data)})});return _},T.prototype.closeSound=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("closeSound",s+"/ezopen/h5/iframe");var D=this,_=new Promise(function(E,w){f.addEventListener("message",function(z){var S=D.opt.id;S==z.data.id&&z.data.type==="closeSound"&&E(z.data)})});return _},T.prototype.startSave=function(y){var h="EZUIKitPlayer-"+this.opt.id,D=document.getElementById(h).contentWindow;D.postMessage({action:"startSave",fileName:y||"default"},s+"/ezopen/h5/iframe");var _=this,E=new Promise(function(w,z){f.addEventListener("message",function(S){var d=_.opt.id;d==S.data.id&&S.data.type==="startSave"&&w(S.data)})});return E},T.prototype.stopSave=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("stopSave",s+"/ezopen/h5/iframe");var D=this,_=new Promise(function(E,w){f.addEventListener("message",function(z){var S=D.opt.id;S==z.data.id&&z.data.type==="stopSave"&&E(z.data)})});return _},T.prototype.fullScreen=function(){if(this.opt.fullScreenStatus===1)return!1;var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;if(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)){var D=document.documentElement.clientWidth,_=document.documentElement.clientHeight,E=document.body;E=document.getElementById(y);var w="";w+="width:"+_+"px;",w+="height:"+D+"px;",w+="-webkit-transform: rotate(90deg); transform: rotate(90deg);",w+="-webkit-transform-origin: "+D/2+"px "+D/2+"px;",w+="transform-origin: "+D/2+"px "+D/2+"px;",w+="position: fixed;top: 0;left: 0;z-index:10",E.style.cssText=w,setTimeout(function(){h.postMessage("autoResize",s+"/ezopen/h5/iframe")},500)}else{var z=function(d){var m=d.requestFullScreen||d.webkitRequestFullScreen||d.mozRequestFullScreen||d.msRequestFullScreen;if(m)m.call(d);else if(typeof f.ActiveXObject!="undefined"){var g=new ActiveXObject("WScript.Shell");g!==null&&g.SendKeys("{F11}")}};z(document.getElementById(y))}this.params.fullScreenCallBack&&this.params.fullScreenCallBack(this.opt.id),this.opt.fullScreenStatus=1},T.prototype.cancelFullScreen=function(){if(this.opt.fullScreenStatus===0)return!1;var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;if(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)){var D=document.getElementById(y).width,_=document.getElementById(y).height,E=document.body;E=document.getElementById(y);var w="";w+="width:"+D+"px;",w+="height:"+_+"px;",w+="-webkit-transform: none; transform: none;",w+="-webkit-transform-origin: 0 0;",w+="transform-origin: 0 0;",E.style.cssText=w,setTimeout(function(){h.postMessage("autoResize",s+"/ezopen/h5/iframe")},500);var z=y+"cancel-full-screen",S=document.getElementById(z);S&&document.body.removeChild(S)}else document.exitFullscreen?document.exitFullscreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.mozCancelFullScreen&&document.mozCancelFullScreen();this.params.cancelFullScreenCallBack&&this.params.cancelFullScreenCallBack(this.opt.id),this.opt.fullScreenStatus=0},T.prototype.capturePicture=function(y,h){var D="EZUIKitPlayer-"+this.opt.id,_=document.getElementById(D).contentWindow;_.postMessage({action:"capturePicture",fileName:y||"default",isUndownload:h},s+"/ezopen/h5/iframe");var E=this,w=new Promise(function(z,S){f.addEventListener("message",function(d){var m=E.opt.id;m==d.data.id&&d.data.type==="capturePicture"&&z(d.data)})});return w},T.prototype.enableZoom=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("enableZoom",s+"/ezopen/h5/iframe")},T.prototype.closeZoom=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("closeZoom",s+"/ezopen/h5/iframe")},T.prototype.getOSDTime=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("getOSDTime",s+"/ezopen/h5/iframe");var D=this,_=new Promise(function(E,w){f.addEventListener("message",function(z){var S=D.opt.id;S==z.data.id&&z.data.type==="getOSDTime"&&E(z.data)})});return _},T.prototype.autoResize=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("autoResize",s+"/ezopen/h5/iframe")},T.prototype.reSize=function(y,h){var D="EZUIKitPlayer-"+this.opt.id,_=document.getElementById(D).contentWindow,E=document.getElementById(this.opt.id);E.style.width=y+"px",E.style.height=h+"px",document.getElementById(this.opt.id).style.width=y+"px",document.getElementById(this.opt.id).style.height=h+"px";var w=document.getElementById(D);w.setAttribute("width",y),w.setAttribute("height",h),w.style.width=y+"px",w.style.height=h+"px",setTimeout(function(){_.postMessage({action:"autoResize"},s+"/ezopen/h5/iframe")},500)},T.prototype.startTalk=function(){console.log("执行开始对讲"),console.log(this.opt);var y=this;l.opt=this.opt,f.EZUIKit&&(f.EZUIKit.opt=this.opt);var h=function(_){if(_.code==200){var E=_.data;if(E){var w=E.rtcUrl;w.indexOf("ws")===-1&&(w=w.replace("https","wss").replace("rtcgw","rtcgw-ws")),y.opt.rtcUrl=w,y.opt.ttsUrl="tts://"+E.ttsUrl;var z="talk://"+y.opt.deviceSerial+":0:"+y.opt.channelNo+":cas.ys7.com:6500";y.opt.talkLink=y.opt.ttsUrl+"/"+z,y.opt.stream=E.stream,f.startTalk()}}};a(y.opt.apiDomain,"POST",{accessToken:y.opt.accessToken,deviceSerial:y.opt.deviceSerial,channelNo:y.opt.channelNo},"",h)},T.prototype.stopTalk=function(){console.log("执行结束对讲"),f.stopTalk()},T.prototype.edit=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage("edit",s+"/ezopen/h5/iframe")},T.prototype.btnReRender=function(y){var h="EZUIKitPlayer-"+this.opt.id,D=document.getElementById(h).contentWindow;D.postMessage({action:"btnReRender",data:y},s+"/ezopen/h5/iframe")},T.prototype.changePlayUrl=function(y){y.deviceSerial&&(this.opt.deviceSerial=y.deviceSerial),y.channelNo&&(this.opt.channelNo=y.channelNo),y.accessToken&&(this.opt.accessToken=y.accessToken);var h="EZUIKitPlayer-"+this.opt.id,D=document.getElementById(h).contentWindow;D.postMessage({action:"changePlayUrl",data:y},s+"/ezopen/h5/iframe")},T.prototype.fetchThemeData=function(){var y="EZUIKitPlayer-"+this.opt.id,h=document.getElementById(y).contentWindow;h.postMessage({action:"fetchThemeData"},s+"/ezopen/h5/iframe")},T.prototype.setThemeData=function(y,h,D){var _="EZUIKitPlayer-"+this.opt.id,E=document.getElementById(_).contentWindow;E.postMessage({action:"setThemeData",data:{accessToken:y,header:h,footer:D}},s+"/ezopen/h5/iframe")},l.EZUIKitPlayer=T,f.EZUIKitV3=l;var C=l;return C});var Ms=EZUIKitV3,Br=function(u){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=void 0,a=void 0,l=void 0,s=[];return function(){var C=Ns(n),y=new Date().getTime(),h=!r||y-r>C;r=y;for(var D=arguments.length,_=Array(D),E=0;E>>0)+"_",he=0;return K}),a("Symbol.iterator",function(N){if(N)return N;N=Symbol("Symbol.iterator");for(var K="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),te=0;te0&&r>0){var l=u.left/i,s=u.top/r,b=u.right/i,T=u.bottom/r;a=new Float32Array([b,s,l,s,b,T,l,T])}else a=new Float32Array([1,0,0,0,1,1,0,1]);var C=this.texturePosBuffer;n.bindBuffer(n.ARRAY_BUFFER,C),n.bufferSubData(n.ARRAY_BUFFER,0,a),n.bindBuffer(n.ARRAY_BUFFER,null)},f.prototype.SR_Destroy=function(){var u=this.contextGL,n=this.YUVProgram;u.deleteProgram(n);var i=this.vertexPosBuffer,r=this.texturePosBuffer;u.deleteBuffer(i),u.deleteBuffer(r);var a=this.yTextureRef,l=this.uTextureRef,s=this.vTextureRef;u.deleteTexture(a),u.deleteTexture(l),u.deleteTexture(s)},f});var fa="https://open.ys7.com",Os="".concat(fa,"/console/ezuikit_static/v66/v2"),Us="".concat(fa,"/console/ezuikit_static/v66/v1"),ha=function(u,n){var i=["theme","standard"],r=["pcLive","pcRec","mobileLive","mobileRec","noData","security","voice","simple"];if(typeof u=="undefined")return n.themeData?{templateType:"themeData",templateId:"themeData"}:{templateType:"local",templateId:""};if(typeof u=="string"){if(u.length===32)return{templateType:"remote",templateId:u};if(i.indexOf(u)!==-1)return u==="simple"&&typeof n.header=="undefined"&&typeof n.footer=="undefined"?{templateType:"local",templateId:""}:{templateType:"iframe",templateId:u};if(r.indexOf(u)!==-1)return{templateType:"local",templateId:u}}},lt=function(){var u=window.navigator.userAgent.toLowerCase(),n={sa:/version.*safari/.test(u),ch:/chrome/.test(u),ff:/gecko/.test(u)&&!/webkit/.test(u)},i=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);if(i)return!1;if(n.ch){var r=function(){for(var l=window.navigator.userAgent.split(" "),s="",b=0;b91&&!!window.SharedArrayBuffer}return!1},Hs=function(){function f(u){var n=this;fe(this,f),this.isStoping=!1;var i=u.autoplay,r=i===void 0?!0:i;if((u.template||u.themeData)&&(r=!1),this.params=u,this.autoplay=r,window.EZUIKit[u.id]={state:{EZUIKitPlayer:{init:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.init||!1,themeInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.themeInit||!1,talkInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.talkInit||!1}}},ha(this.params.template,u).templateType!=="iframe"){this.Monitor=new Ds({env:typeof u.disableMonitor!="undefined"&&u.disableMonitor?"test12":"online"},this),this.id=u.id,this.width=u.width,this.height=u.height,this.url=u.url,this.accessToken=u.accessToken,this.themeId=ha(u.template,u).templateId,this.id=u.id,this.audio=!0,this.poster=u.poster,this.speed=1,this.disabledTimeLine=!1,this.disabledPTZ=!1,this.enableSharedArrayBufferGuide=!1,this.capacity={},this.playTimer=null,this.env={domain:"https://open.ys7.com"};var a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);this.isMobile=a,document.getElementById("".concat(this.id,"-wrap"))&&(document.getElementById("".concat(this.id,"-wrap")).innerHTML="",document.getElementById("".concat(this.id,"-wrap")).id=this.id),this.staticPath=lt()?Os:Us,typeof u.staticPath=="string"&&(u.staticPath.startsWith("http")?this.staticPath=u.staticPath:this.staticPath=window.location.protocol+"//"+window.location.host+u.staticPath,lt()?this.staticPath+="/v2":this.staticPath+="/v1"),typeof u.audio!="undefined"&&(this.audio=u.audio),typeof u.env!="undefined"&&(this.env=Object.assign(this.env,u.env)),typeof u.isMobile!="undefined"&&(this.isMobile=u.isMobile),typeof u.disabledTimeLine!="undefined"&&(this.disabledTimeLine=u.disabledTimeLine),typeof u.disabledPTZ!="undefined"&&(this.disabledPTZ=u.disabledPTZ),typeof u.enableSharedArrayBufferGuide!="undefined"&&(this.enableSharedArrayBufferGuide=u.enableSharedArrayBufferGuide);var l="".concat(this.staticPath,"/js/jsPluginV1-1.0.0.min.js"),s=function(){if(window.addPluginUrlIng=!0,lt())console.log("启用多线程解析视频"),l="".concat(n.staticPath,"/js/jsPluginV2-2.0.1.min.js");else{var C=function(){for(var w=navigator.userAgent.split(" "),z="",S=0;S0&&(l=T.width),!n.height&&T.height>0&&(b=T.height)}if(!document.getElementById("".concat(r,"-wrap"))){var C=document.createElement("div");C.id="".concat(r,"-wrap"),C.style="display:inline-block;width:".concat(l,"px;position:relative;vertical-align: bottom;"),document.getElementById(r).parentNode.insertBefore(C,document.getElementById(r)),document.getElementById(r).parentNode.removeChild(document.getElementById(r)),C.innerHTML="
    "),document.getElementById(r).style="display:inline-block;width:".concat(l,"px;height:").concat(b,"px;"),document.getElementById(r).style.verticalAlign="top"}this.themeId&&(this.Theme=new As(this,n.id),window.EZUIKit[n.id].state.EZUIKitPlayer.themeInit=!0,this.Monitor.dclog({url:this.url,action:2,text:this.themeId}),typeof this.params.handleThemeChange=="function"&&(this.handleThemeChange=this.params.handleThemeChange));var y=new ts(this,r);this.Message=y;var h=function(E,w){var z;if(lt()){z=new window.JSPluginV2({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},openStreamCallback:function(){console.log("开启取流"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z;var S=setInterval(function(){window.JSPlayerModuleLoaded&&(clearInterval(S),typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"))},50)}else z=new window.JSPluginV1({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={openStreamCallback:function(){console.log("开启取流---v1"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})},loadEventHandler:function(){},zoomEventResponse:function(){},windowEventSelect:function(m){},pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},windowEventOver:function(m){},windowEventOut:function(m){},windowEventUp:function(m){},windowFullCcreenChange:function(m){},firstFrameDisplay:function(m,g,k){console.log(g,k),z.JS_SetCanFullScreen(!1)},performanceLack:function(){},mouseEvent:function(m,g,k){}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z,typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec")},D=new Promise(h);return D}},{key:"_getRealUrlPromise",value:function(n,i){var r=this;console.log("获取播放地址 url => ".concat(i," ").concat(this.accessToken)),console.log("开始获取wsurl"),this.startGetWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:222,text:"startGetWsUrl",isVersion2Available:lt()?1:0});var a=this.env.domain;this.env&&(a=this.env.domain);var l=function(C,y){var h="",D=a+"/api/lapp/live/url/ezopen",_=new FormData;_.append("ezopen",i),_.append("isFlv",!1),_.append("userAgent",window.navigator.userAgent),_.append("isHttp",!1),_.append("accessToken",n),fetch(D,{method:"POST",body:_}).then(function(E){return E.json()}).then(function(E){if(E.code==200||E.retcode==0){var w="",z="";E.ext&&E.ext.token?(h+=E.data,z=E.ext.token,w=E.data):E.data&&E.data.token&&(h+=E.data.url,z=E.data.token,w=E.data.url);var S=i.indexOf("live")!==-1?"live":"playback";S==="live"?h=h+"&ssn="+z+"&auth=1&biz=4&cln=100":h=h+"&ssn="+z+"&auth=1&cln=100",console.log(h);var d=et("checkCode",h);if(d&&(typeof r.jSPlugin.decoderVersion!="undefined"&&r.jSPlugin.decoderVersion==="2.0"?r.validateCode=d:(console.log("设置密钥",d),r.jSPlugin.JS_SetSecretKey(0,d))),h.indexOf("playback")!==-1){var m=et("begin",w)||et("begin",i),g=et("end",w)||et("end",i);if(m)h=h.replace("&begin="+et("begin",w),"&begin="+s(m,"000000")),et("begin",h)||(h+="&begin="+s(m,"000000"));else{var k=new Date;h=h+"&begin="+k.Format("yyyyMMdd")+"T000000Z"}if(g?(h=h.replace("&end="+et("end",w),"&end="+s(g,"235959")),et("end",h)||(h+="&end="+s(g,"235959"))):h=h+"&end="+s(et("begin",h).substr(0,8),"235959"),et("stream",w)||(h=h.replace("stream","&stream")),i.indexOf(".cloud")!==-1){var A=function(Ce){if(Ce.code==200){var be=[];if(Ce.data&&Ce.data.files&&Ce.data.files.length>0){var Pe=Ce.data.files,Ye=new Date().getTime(),N=Ce.data.isAll;if(N){be=ce(Pe);var K=JSON.stringify(be).replace("\\","");h+="&recSlice="+K.replace("\\","")+"&r="+Math.random(),C(h)}else{var te=function he(){function Re(we){if(we.data&&we.data.files&&we.data.files.length>0)if(we.data.isAll==!1)we.data.files&&(Pe=Pe.concat(we.data.files)),Ye=we.data.nextFileTime>0?we.data.nextFileTime:new Date().getTime(),he();else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}}Y.startTime=Ye,Gn(ne,"POST",Y,"",Re)};te()}}else y({retcode:-1,msg:"未找到录像片段"})}else y({retcode:-1,msg:"未找到录像片段"});function ce(he){var Re=[];return he.forEach(function(we,ke){Re.length==0||we.downloadPath!==Re[Re.length-1].downloadPath?Re.push({downloadPath:we.downloadPath,ownerId:we.ownerId,iStorageVersion:we.iStorageVersion,videoType:we.videoType,iPlaySpeed:0,startTime:we.startTime,endTime:we.endTime}):Re[Re.length-1].endTime=we.endTime}),Re}},O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/time",Y={accessToken:r.accessToken,recType:1,deviceSerial:Z,channelNo:X,startTime:O,endTime:H,version:"2.0"};Gn(ne,"POST",Y,"",A)}else if(i.indexOf("alarmId")!==-1){var me=function(te){if(te.code==200){var ce=[];if(te.data){ce=Re([te.data]);var he=JSON.stringify(ce).replace("\\","");h+="&recSlice="+he.replace("\\",""),console.log("realUrl",h,te.data.recType),te.data.recType==1?h=h.replace("/playback","/cloudplayback"):h=h.replace("/cloudplayback","/playback"),C(h)}}function Re(we){var ke=[];return we.forEach(function(We,yn){ke.length==0||We.downloadPath!==ke[ke.length-1].downloadPath?ke.push({downloadPath:We.downloadPath,ownerId:We.ownerId,iStorageVersion:We.iStorageVersion,videoType:We.videoType,iPlaySpeed:0,startTime:We.startTime,endTime:We.endTime}):ke[ke.length-1].endTime=We.endTime}),console.log("downloadPathArr",ke),ke}};console.log("进入alarmId回放");var ge=et("alarmId",h),O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/id",Y={accessToken:r.accessToken,deviceSerial:Z,channelNo:X,alarmId:ge};Gn(ne,"POST",Y,"",me)}else C(h)}else C(h)}else r.Theme&&r.Theme.setDisabled(!0),r.pluginStatus.loadingClear(),r.pluginStatus.loadingSetText({text:E.msg,color:"red"}),typeof r.params.handleError=="function"&&r.params.handleError({retcode:E.code,msg:E.msg,id:r.params.id,type:"handleError"}),y(E)})};return new Promise(function(T,C){return l(T,C)});function s(T,C){var y=/^[0-9]{8}T[0-9]{6}Z$/;if(y.test(T))return T;if(/[0-9]{8,14}/.test(T)){var h=6-(14-T.length),D=C.length,_=T+C.substring(h,D);return _.slice(0,8)+"T"+_.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}function b(T){var C=T.slice(0,4),y=T.slice(4,6),h=T.slice(6,8),D=T.slice(9,11),_=T.slice(11,13),E=T.slice(13,15),w=C+"-"+y+"-"+h+" "+D+":"+_+":"+E;return new Date(w.replace(/-/g,"/")).getTime()}}},{key:"_pluginPlay",value:function(n,i,r){var a=this;if(console.log("执行播放 _pluginPlay",n),!n)return!1;function l(C){var y=C.split("?")[0].replace("/live","").replace("/playback",""),h=(C.indexOf("/live")===-1?C.indexOf("cloudplayback")!==-1?"/cloudplayback?":"/playback?":"/live?")+C.split("?")[1];return h.indexOf("/playback")!==-1&&(h=h.replace("stream=2","stream=1")),{websocketConnectUrl:y,websocketStreamingParam:h}}var s=l(n).websocketConnectUrl;this.env&&this.env.wsUrl&&(s=this.env.wsUrl),this.gotWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:223,d:this.gotWsUrlTime-this.startGetWsUrlTime,text:"getWsUrlSuccess",isVersion2Available:lt()?1:0});var b={playURL:l(n).websocketStreamingParam};console.log("播放前 stop 阶段 结束"),this.isStoping=!1;var T=Date.now();console.log("执行播放 ... this.jSPlugin.JS_Play at ",T),this.jSPlugin.JS_Play(s,b,0).then(function(){if(console.log("执行播放 ... this.jSPlugin.JS_Play 播放成功",s,b),console.log("执行播放耗时 ",Date.now()-T),a.isStoping){console.log("现在在播放前 stop 阶段,此次应为无效播放成功触发。不执行后续回调, 此次耗时无效");return}if(a.validateCode&&typeof a.jSPlugin.decoderVersion!="undefined"&&a.jSPlugin.decoderVersion==="2.0"&&a.jSPlugin.JS_SetSecretKey(0,a.validateCode),a.pluginStatus.loadingClear(),a.pluginStatus.setPlayStatus({play:!0,loading:!1}),a.Theme){a.Theme.setDecoderState({play:!0});var C=Ut.findIndex(a.Theme.themeData.footer.btnList,function(y){return y.iconId==="sound"&&y.isrender===1&&y.defaultActive===1})>-1;a.audio=C}a.audio&&setTimeout(function(){a.openSound()},500),typeof a.params.handleSuccess=="function"&&a.params.handleSuccess({retcode:0,id:a.params.id,type:"handleSuccess"}),i(b),a.Monitor.dclog({url:a.url,action:211,d:new Date().getTime()-a.playStartTime,text:"startPlaySuccess"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:0,Cost:new Date().getTime()-a.playStartTime,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})},function(C){console.log("err",C);var y="播放失败,请检查设备及客户端网络",h=-1;if(a.jSPlugin.bPlay)return!1;if(C&&C.errorCode){var D=a.errorHander.matchErrorInfo(C.errorCode);a.Theme&&a.Theme.setDisabled(!0),D&&D.msg?y=D.msg:D&&D.description?y=D.description:y="播放失败,请检查设备及客户端网络",h=C.errorCode}a.pluginStatus.loadingClear(),a.pluginStatus.loadingSetText({text:y,color:"red"}),typeof a.params.handleError=="function"&&a.params.handleError({retcode:h,msg:y,id:a.params.id,type:"handleError"}),r(),a.Monitor.dclog({url:a.url,action:411,d:new Date().getTime()-a.playStartTime,text:"startPlayError"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:h,Cost:-1,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})})}},{key:"_play",value:function(n){var i=this;console.log("执行播放 play options.url =>",n),this.pluginStatus.setPlayStatus({play:!1,loading:!0}),this.playStartTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:1,d:new Date().getTime()-this.initTime,text:"startPlay"}),n&&(typeof n=="string"&&(this.url=n),typeof n.url=="string"&&(this.url=n.url),typeof n.accessToken=="string"&&(this.accessToken=n.accessToken),this.Theme&&(typeof n.url=="string"||typeof n.accessToken=="string")&&this.Theme.getDeviceInfo());var r=new Promise(function(a,l){console.log("执行 播放前 stop"),i.isStoping=!0,i.jSPlugin.JS_Stop(0).then(function(){console.log("播放前 stop 执行成功 this.url => ".concat(i.url," ").concat(i.accessToken)),i._getRealUrlPromise(i.accessToken,i.url).then(function(s){i._pluginPlay(s,function(b){a(!0)},function(){return l(!1)})}).catch(function(s){var b=s.msg?s.msg:"播放失败,请检查设备及客户端网络";i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:b,color:"red"}),typeof i.params.handleError=="function"&&i.params.handleError({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"}),l({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"})})})});return r}},{key:"stop",value:function(){var n=this;return this.pluginStatus.setPlayStatus({loading:!0}),this.reSetTheme(),this.jSPlugin.JS_Stop(0).then(function(){console.log("停止成功"),n.pluginStatus.setPlayStatus({play:!1,loading:!1}),n.Theme&&n.Theme.setDecoderState({play:!1})})}},{key:"changeVideoLevel",value:function(n){var i=this,r=this.url,a=n?r.replace(".live",".hd.live"):r.replace(".hd.live",".live");this.jSPlugin.playURL=n?this.jSPlugin.playURL.replace("stream=2","stream=1"):this.jSPlugin.playURL.replace("stream=1","stream=2"),console.log("changeVideoLevel",a,this.jSPlugin.playURL),this.url=a;var l=new Promise(function(s,b){i.pause().then(function(){console.log("暂停成功"),i.resume().then(function(T){console.log("恢复成功")})}).catch(function(){console.log("暂停失败"),i.resume().then(function(T){console.log("恢复成功")})})});return l}},{key:"reSetTheme",value:function(){this.Theme&&this.Theme.Ptz&&(this.Theme.setDecoderState({pantile:!1}),this.Theme.Ptz.hide()),this.Theme&&this.Theme.decoderState.state.recordvideo&&this.Theme.setDecoderState({recordvideo:!1}),this.Theme&&this.Theme.decoderState.state.zoom&&(this.Zoom.stopZoom(),this.Theme.setDecoderState({zoom:!1})),this.Theme&&this.Theme.decoderState.state.talk&&(this.stopTalk(),this.Theme.setDecoderState({talk:!1})),this.Theme&&this.Theme.Rec&&!this.Theme.isMobile&&this.Theme.Rec.datepickerHide(),this.Theme&&this.Theme.Rec&&(this.Theme.changeRecSpeed(1),this.Theme.nextRate=1,this.speed=1,this.Theme.setDecoderState({speed:!1}))}},{key:"_changePlayUrl",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};console.log("_changePlayUrl"),console.log(n),this.reSetTheme(),this.getDeviceCapacity({accessToken:n.accessToken,deviceSerial:n.deviceSerial});var a=this.url,l=b(a,n);n.accessToken&&(this.accessToken=n.accessToken),this.url=l,r(),this.pluginStatus.loadingStart(this.id),this.pluginStatus.loadingSetText({text:"加载中,请稍后"});var s=new Promise(function(T,C){var y={url:l};return n.accessToken&&(y.accessToken=n.accessToken),console.log("切换播放地址 参数 ",y),i.play(y).then(function(){console.log("切换播放地址 play 执行成功 ",i.url,i.accessToken),i.Theme&&i.Theme.decoderState.state.webExpend&&i.Theme.webExpend(),i.Theme&&i.Theme.decoderState.state.expend&&i.Theme.expend(),n.type?n.type=="rec"||n.type=="cloud.rec"?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"):i.url.indexOf(".rec")>-1?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"),n&&n.begin&&n.deviceSerial&&i.Theme.Rec.setDatepickerDate(n.begin),i.Theme.setDisabled(!1),T(l)}).catch(function(h){C(l),h&&h.msg&&(i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:h.msg,color:"red"}))})});function b(T,C){if(C.url)return C.url;console.log("--------------matchInitUrl",T);var y=T.split("/")[4].split(".")[T.split("/")[4].split(".").length-1].split("?")[0];y==="rec"&&T.indexOf(".cloud.rec")!==-1&&(y="cloud.rec"),C.type&&(y=C.type);var h=T.split("/")[3];C.deviceSerial&&(h=C.deviceSerial);var D=T.split("/")[4].split(".")[0];C.channelNo&&(D=C.channelNo);var _=T.split("/")[2].split("@").length===2?T.split("/")[2].split("@")[0]:"";typeof C.validCode!="undefined"&&(_=C.validCode);var E=typeof C.hd=="undefined"?T.indexOf(".hd")!==-1:C.hd,w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D).concat(E?".hd":"",".").concat(y);return y==="live"||(w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D,".").concat(y),C.begin&&C.end?w+="?begin=".concat(C.begin,"&end=").concat(C.end):C.begin?w+="?begin=".concat(C.begin):et("begin",T)&&(w+="?begin=".concat(et("begin",T)))),w}return s}},{key:"getOSDTime",value:function(){var n=this,i=new Promise(function(r,a){n.jSPlugin.JS_GetOSDTime(0).then(function(l){r({code:0,retcode:0,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:0,data:l})}).catch(function(l){a({code:-1,retcode:-1,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:-1,data:-1})})});return i}},{key:"capturePicture",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.jSPlugin.JS_CapturePicture(0,n,"JPEG",r,!!r);return ln(a)?(typeof this.params.capturePictureCallBack=="function"&&a.then(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:0})}).catch(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:-1})}),a):new Promise(function(l){l(a)})}},{key:"startSave",value:function(n){var i=this,r=this.jSPlugin.JS_StartSave(0,n);return ln(r)?(typeof this.params.startSaveCallBack=="function"&&r.then(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:0})}).catch(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:-1})}),r):(this.Theme&&this.Theme.setDecoderState({recordvideo:!0}),new Promise(function(a){a(r)}))}},{key:"stopSave",value:function(){var n=this,i=this.jSPlugin.JS_StopSave(0);return ln(i)?(typeof this.params.startSaveCallBack=="function"&&i.then(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:0})}).catch(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:-1})}),i):(this.Theme&&this.Theme.setDecoderState({recordvideo:!1}),new Promise(function(r){r(i)}))}},{key:"openSound",value:function(){var n=this.jSPlugin.JS_OpenSound(0);return console.log("打开声音",n),ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!0}),typeof this.params.openSoundCallBack=="function"&&this.params.openSoundCallBack({id:this.id,type:"openSound",code:n}),new Promise(function(i){i(n)}))}},{key:"closeSound",value:function(){var n=this.jSPlugin.JS_CloseSound(0);return ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!1}),typeof this.params.closeSoundCallBack=="function"&&this.params.closeSoundCallBack({id:this.id,type:"closeSound",code:n}),new Promise(function(i){i(n)}))}},{key:"enableZoom",value:function(){var n=this.jSPlugin.JS_EnableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"closeZoom",value:function(){var n=this.jSPlugin.JS_DisableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"setPoster",value:function(n){lt()?document.getElementById("".concat(this.id))&&(document.getElementById("".concat(this.id)).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id)).style.backgroundSize="100% 100%"):document.getElementById("".concat(this.id,"canvas0"))&&(document.getElementById("".concat(this.id,"canvas0")).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id,"canvas0")).style.backgroundSize="cover")}},{key:"reSize",value:function(n,i){var r=0,a=0;if(this.params.height=i,this.params.width=n,this.Theme&&this.Theme.isNeedRenderHeader&&document.getElementById("".concat(this.id,"-headControl"))&&(r=parseInt(document.getElementById("".concat(this.id,"-headControl")).style.height,10)),this.Theme&&this.Theme.isNeedRenderTimeLine&&!this.isMobile&&(a=48),i=i-r-a,this.width=n,this.height=i,document.getElementById("".concat(this.id,"-wrap")).style="width:".concat(n,"px;position:relative;display:inline-block;vertical-align: bottom;"),document.getElementById("".concat(this.id)).style.width=n+"px",document.getElementById("".concat(this.id)).style.height=i+"px",this.jSPlugin&&this.jSPlugin.bPlay)this.jSPlugin&&(this.jSPlugin.iHeight=i,this.jSPlugin.iWidth=n),this.jSPlugin.JS_Resize(n,i);else{document.getElementById("".concat(this.id,"-player"))&&(document.getElementById("".concat(this.id,"-player")).width=n,document.getElementById("".concat(this.id,"-player")).height=i,document.getElementById("".concat(this.id,"-player")).style.width=n+"px",document.getElementById("".concat(this.id,"-player")).style.height=i+"px");var l=1;if(document.getElementById("".concat(this.id,"canvas0"))){var s=navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);s&&(l=2),document.getElementById("".concat(this.id,"canvas0")).style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas0")).width=n*l,document.getElementById("".concat(this.id,"canvas0")).height=i*l,document.getElementById("".concat(this.id,"canvas0")).parentNode.style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).parentNode.style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas_draw0")).height=i*l}this.jSPlugin&&(this.jSPlugin.iHeight=i*l,this.jSPlugin.iWidth=n*l)}}},{key:"fast",value:function(n){var i=this,r=this.speed;if(n)var a=this.jSPlugin.JS_Fast(0,n);else{if(r===1)r=2;else if(r===2)r=4;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最大为4倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(s,b){i.speed=r,b({code:-1,data:{speed:r,result:"播放速度最大为4倍速度"}})});var a=this.jSPlugin.JS_Fast(0)}return new Promise(function(l){i.speed=r,l({code:0,data:{speed:r,result:a}})})}},{key:"slow",value:function(){var n=this,i=this.speed;if(i===4)i=2;else if(i===2)i=1;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最小为1倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(a,l){n.speed=i,l({code:-1,data:{speed:i,result:"播放速度最小为1倍速度"}})});var r=this.jSPlugin.JS_Slow(0);return new Promise(function(a){n.speed=i,a({code:0,data:{speed:i,result:r}})})}},{key:"seek",value:function(n,i){var r=this.url,a=(et("begin",r)||new Date().Format("yyyyMMdd")).substr(0,8);if(i=l(a,"235959"),n.length===6)n=l(a,n);else if(n.length===16){if(n.substr(0,8)!==a)return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间不能跨日期",retcode:-1,id:this.id,type:"handleError"}),!1}else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间格式错误",retcode:-1,id:this.id,type:"handleError"}),!1;function l(b,T){var C=/^[0-9]{8}T[0-9]{6}Z$/;if(C.test(b))return b;if(/[0-9]{8,14}/.test(b)){var y=6-(14-b.length),h=T.length,D=b+T.substring(y,h);return D.slice(0,8)+"T"+D.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}var s=this.jSPlugin.JS_Seek(0,n,i);return console.log("seekRT",s),ln(s)?s:new Promise(function(b){b(s)})}},{key:"fullScreen",value:function(){var n=this,i=yi(document.getElementById("".concat(this.id)));i.then(function(a){console.log("全屏promise",window.screen.availWidth),n.jSPlugin.JS_Resize(window.screen.availWidth,window.screen.availHeight),typeof n.params.fullScreenCallBack=="function"&&n.params.fullScreenCallBack({id:n.id,type:"fullScreen",code:0})});var r=function(){var l=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;l||n.jSPlugin.JS_Resize(n.width,n.height),typeof n.params.fullScreenChangeCallBack=="function"&&n.params.fullScreenChangeCallBack({id:n.id,type:"fullScreen",code:l})};["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(a){window.addEventListener(a,function(l){return r()})})}},{key:"cancelFullScreen",value:function(){var n=this,i=Nr();i.then(function(r){console.log("取消全屏",r,n.jSPlugin),n.jSPlugin.JS_Resize(n.width,n.height)})}},{key:"startTalk",value:function(){this.Talk.startTalk()}},{key:"stopTalk",value:function(){this.Talk.stopTalk()}},{key:"destroy",value:function(){var n=this.jSPlugin.JS_DestroyWorker(0);return this.Theme&&(this.Theme=null,window.EZUIKit[this.params.id].state.EZUIKitPlayer.themeInit=!1),ln(n)?n:new Promise(function(i){i(n)})}},{key:"getDeviceCapacity",value:function(n){var i=this,r=this.env.domain;this.env&&(r=this.env.domain);var a=r+"/api/lapp/device/capacity",l=function(T){T.code==200&&T.data&&(i.capacity=T.data)},s=n||{accessToken:this.accessToken,deviceSerial:Ke(this.url).deviceSerial};Gn(a,"POST",s,"",l)}},{key:"pause",value:function(){var n=this;return new Promise(function(i,r){n.jSPlugin.JS_CloseSound(0),n.jSPlugin.JS_Pause(0,function(a){n.setPoster(a.base64)}).then(function(a){n.Theme&&n.Theme.setDecoderState({play:!1}),i()}).catch(function(a){console.log(a),r(a)})})}},{key:"_resume",value:function(n){var i=this;return new Promise(function(r,a){i.pluginStatus.setPlayStatus({play:!1,loading:!0}),i.jSPlugin.JS_Resume(n).then(function(l){if(setTimeout(function(){i.url.indexOf(".rec")!==-1&&i.speed!=1&&i.jSPlugin.JS_Speed(i.speed)},500),i.Theme){i.Theme.setDecoderState({play:!0,speed:i.speed});var s=i.Theme.decoderState.state.sound;s&&setTimeout(function(){i.openSound()},500)}r(l)}).catch(function(l){console.log("resume err",l),a(l)})})}}]),f}(),qe=null;function Vs(f,u,n,i){return new WebControl({szPluginContainer:f,iServicePortStart:14510,iServicePortEnd:14519,cbConnectSuccess:u,cbConnectError:n,cbConnectClose:i})}function Ws(){qe!=null&&(qe.JS_DestroyWnd().then(function(){console.log("JS_DestroyWnd")},function(){}),qe.JS_StopService("window").then(function(){qe.JS_Disconnect().then(function(){console.log("JS_Disconnect")},function(){})}))}function Gs(f){f.responseMsg.eventName,console.log(f.responseMsg)}function Zs(){qe.JS_SetWindowControlCallback({cbIntegrationCallBack:Gs}),qe.JS_StartService("window",{dllPath:"./chain/cloudTransform.dll"}).then(function(){qe.JS_CreateWnd("playWnd",900,500).then(function(){console.log("JS_CreateWnd success")})})}function Js(){console.log("cbConnectError"),qe=null,console.error("确认本地进程是否已安装并开启成功!")}function Ks(f){console.log("cbConnectClose"),qe=null}window.onscroll=function(){qe!=null&&qe.JS_Resize(900,500)},window.onresize=function(){qe!=null&&qe.JS_Resize(900,500)},window.onunload=function(){try{qe.JS_HideWnd(),Ws()}catch(f){console.error(f)}},window.onpagehide=function(){try{qe.JS_HideWnd()}catch(f){console.error(f)}};var qs=function(){function f(u){var n=this;fe(this,f),je(this,"changeModel",function(i,r){var a=n;n.switchVideo=parseInt(i),qe&&qe.JS_RequestInterface({funcName:"ChangeModel",arguments:encodeURI(JSON.stringify({model:i}))}).then(function(l){i==0?a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode}):a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode,startTime:r.startTime,endTime:r.endTime})})}),je(this,"init",function(i){var r,a=n;if(!i.appKey||!i.accessToken){a.showTips(!1,"请输入appkey和token");return}typeof i.appKey!="undefined"&&(n.appKey=i.appKey),typeof i.accessToken!="undefined"&&(n.accessToken=i.accessToken),typeof i.platformId!="undefined"&&(n.platformId=i.platformId);var l=(r={layout:+a.layout,userName:"",waterMark:""},je(r,"waterMark","1"),je(r,"iWndType",0),je(r,"intelligenceEnable",1),je(r,"isRecord",1),je(r,"isSetPos",1),je(r,"motionDetectEnable",0),je(r,"playBackAlarmOverlyingEnable",0),je(r,"response",{code:0,message:null,data:{appKey:i.appKey,ezvizToken:i.accessToken,videoLevel:0,logLevel:3,showMainTool:1,showSubTool:1,waterMark:"1",userName:"openteam",platformId:i.platformId}}),r);console.log("初始化入参",l),qe.JS_RequestInterface({funcName:"Init",arguments:encodeURI(JSON.stringify(l))}).then(function(s){console.log(s.responseMsg),a.showTips(!0,"视频初始化成功!")})}),je(this,"play",function(i){var r=n;if(!(!i.deviceSerial||!i.channelNo)){typeof i.deviceSerial!="undefined"&&(n.deviceSerial=i.deviceSerial),typeof i.channelNo!="undefined"&&(n.channelNo=i.channelNo),typeof i.startTime!="undefined"&&i.startTime&&(n.startTime=i.startTime+" 00:00:00"),typeof i.endTime!="undefined"&&i.endTime&&(n.endTime=i.endTime+" 23:59:59"),typeof i.validateCode!="undefined"&&i.validateCode&&(n.validateCode=i.validateCode);var a={response:{code:0,message:null,data:{deviceSerial:i.deviceSerial,channelCode:i.channelNo,channelNo:+i.channelNo,codeIsEncrypt:0,validateCode:i.validateCode,deviceClass:r.deviceClass,deviceType:"10222",channelId:"2222222222",channelName:"channelNameTest",storeName:"storeName",storeId:"storeid",startTime:n.startTime,endTime:n.endTime}}};r.deviceClass==="1"?(a.response.data.channelCode=r.channelNo,a.response.data.platformId=r.platformId):a.response.data.channelNo=+r.channelNo,n.switchVideo===1&&(n.startTime&&(a.response.data.startTime=n.startTime),n.endTime&&(a.response.data.endTime=n.endTime)),console.log("预览/回放入参",a),qe.JS_RequestInterface({funcName:n.switchVideo===0?"StartPreview":"StartPlayback",arguments:encodeURI(JSON.stringify(a))}).then(function(l){console.log(l.responseMsg),r.showTips(!0,"预览/回放成功!")}).catch(function(l){console.log("开始播放:",l)})}}),je(this,"showCBInfo",function(i){n.callbackMessage=n.callbackMessage+JSON.stringify(i)+` + +`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1784043664472.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; diff --git a/docs/assets/live-scene-1-786cdd0a-balabala-1783995319167.png b/docs/assets/live-scene-1-786cdd0a-balabala-1784043664472.png similarity index 100% rename from docs/assets/live-scene-1-786cdd0a-balabala-1783995319167.png rename to docs/assets/live-scene-1-786cdd0a-balabala-1784043664472.png diff --git a/docs/assets/livestockData-36ec0ae2-1784043664472.js b/docs/assets/livestockData-36ec0ae2-1784043664472.js new file mode 100644 index 0000000..5e97aba --- /dev/null +++ b/docs/assets/livestockData-36ec0ae2-1784043664472.js @@ -0,0 +1 @@ +var w=Object.defineProperty,O=Object.defineProperties;var R=Object.getOwnPropertyDescriptors;var m=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable;var i=(e,n,a)=>n in e?w(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,u=(e,n)=>{for(var a in n||(n={}))C.call(n,a)&&i(e,a,n[a]);if(m)for(var a of m(n))N.call(n,a)&&i(e,a,n[a]);return e},d=(e,n)=>O(e,R(n));var T=(e,n)=>{var a={};for(var o in e)C.call(e,o)&&n.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&m)for(var o of m(e))n.indexOf(o)<0&&N.call(e,o)&&(a[o]=e[o]);return a};const f=458230,Y=450817,b=7413;function p(e,n,a="count"){const o=e.reduce((s,c)=>s+(Number(c[a])||0),0);if(!o||!n)return e.map(s=>d(u({},s),{[a]:0}));const t=e.map(s=>d(u({},s),{[a]:Math.round((Number(s[a])||0)/o*n)})),r=n-t.reduce((s,c)=>s+(Number(c[a])||0),0);return r&&t[0]&&(t[0][a]+=r),t}const l={herdsmanCount:129,grasslandArea:7563700,wetArea:2918200,yakCount:458230,projectCount:17,baseCount:12},h=[{zoneName:"色地镇",grasslandArea:1463044,yakCount:11704},{zoneName:"麦洼乡",grasslandArea:660352,yakCount:5283},{zoneName:"阿木乡",grasslandArea:1115947,yakCount:8928},{zoneName:"瓦切镇",grasslandArea:1111492,yakCount:8892},{zoneName:"查尔玛乡",grasslandArea:858500,yakCount:6868},{zoneName:"江茸乡",grasslandArea:644761,yakCount:5158},{zoneName:"龙日镇",grasslandArea:874234,yakCount:6994},{zoneName:"安曲镇",grasslandArea:1165634,yakCount:9325},{zoneName:"刷经寺镇",grasslandArea:62465,yakCount:500},{zoneName:"邛溪镇",grasslandArea:1166721,yakCount:9334}],E=[{zoneName:"色地镇",grasslandArea:350788,wetArea:166983},{zoneName:"麦洼乡",grasslandArea:162198,wetArea:71501},{zoneName:"阿木乡",grasslandArea:305522,wetArea:89411},{zoneName:"瓦切镇",grasslandArea:264640,wetArea:128717},{zoneName:"查尔玛乡",grasslandArea:286159,wetArea:17664},{zoneName:"江茸乡",grasslandArea:175840,wetArea:52341},{zoneName:"龙日镇",grasslandArea:222346,wetArea:87046},{zoneName:"安曲镇",grasslandArea:304970,wetArea:107548},{zoneName:"刷经寺镇",grasslandArea:22107,wetArea:7002},{zoneName:"邛溪镇",grasslandArea:318316,wetArea:94587}],I=[{month:"1月",count:458230,speed:0},{month:"2月",count:458860,speed:630},{month:"3月",count:459520,speed:660},{month:"4月",count:460180,speed:660},{month:"5月",count:461260,speed:1080},{month:"6月",count:462050,speed:790},{month:"7月",count:462850,speed:800},{month:"8月",count:463160,speed:310},{month:"9月",count:463520,speed:360},{month:"10月",count:463940,speed:420},{month:"11月",count:464350,speed:410},{month:"12月",count:464760,speed:410}],y=[{name:"色地镇",count:131983,devices:25},{name:"瓦切镇",count:126611,devices:24},{name:"安曲镇",count:99331,devices:20},{name:"邛溪镇",count:81727,devices:18},{name:"麦洼乡",count:78489,devices:16},{name:"龙日镇",count:66846,devices:15},{name:"阿木乡",count:64176,devices:14},{name:"查尔玛乡",count:47958,devices:11},{name:"江茸乡",count:34576,devices:9},{name:"刷经寺镇",count:30407,devices:8}],z=p(y,450817),_=new Map(p(y,458230).map(e=>[e.name,e.count])),L=h.map(e=>d(u({},e),{yakCount:_.get(e.zoneName)||e.yakCount}));z.reduce((e,n)=>e+n.count,0);const g=458230;l.yakCount=g;function k(e,n){const a=e.map((t,r)=>{const s=n*t.ratio/100;return d(u({},t),{index:r,exact:s,count:Math.floor(s),remainder:s-Math.floor(s)})});let o=n-a.reduce((t,r)=>t+r.count,0);return a.slice().sort((t,r)=>r.remainder-t.remainder||t.index-r.index).forEach(t=>{o<=0||(t.count+=1,o-=1)}),a.map(v=>{var A=v,{index:t,exact:r,remainder:s}=A,c=T(A,["index","exact","remainder"]);return d(u({},c),{count:Math.round(c.count)})})}k([{key:"fertileCow",name:"适龄能繁母牛",ratio:44.8},{key:"meatBull",name:"麦洼公牦牛",ratio:15.2},{key:"breedingBull",name:"种公牛",ratio:3.1},{key:"femaleCalf",name:"母犊牛",ratio:14.9},{key:"maleCalf",name:"公犊牛",ratio:15.1},{key:"overageCow",name:"过龄能繁母牛",ratio:6.9}],g);const S=[{label:"屠宰出栏",value:1706,yoy:6},{label:"活畜交易",value:1043,yoy:-3},{label:"外运销售",value:624,yoy:12},{label:"其他出栏",value:299,yoy:-9}],x=[{name:"饲草储备库",value:7,capacity:10500,unit:"座"},{name:"加工企业",value:7,capacity:13e3,unit:"家"},{name:"工程数量",value:l.projectCount,capacity:17,unit:"个"},{name:"基地数量",value:l.baseCount,capacity:12,unit:"个"}];export{Y,b as a,f as b,z as c,L as d,g as e,E as g,l as h,x as s,S as t,I as y}; diff --git a/docs/assets/menu-btn-91a961cf-balabala-1783995319167.png b/docs/assets/menu-btn-91a961cf-balabala-1784043664472.png similarity index 100% rename from docs/assets/menu-btn-91a961cf-balabala-1783995319167.png rename to docs/assets/menu-btn-91a961cf-balabala-1784043664472.png diff --git a/docs/assets/menu-btn-hover-62eba0bb-balabala-1783995319167.png b/docs/assets/menu-btn-hover-62eba0bb-balabala-1784043664472.png similarity index 100% rename from docs/assets/menu-btn-hover-62eba0bb-balabala-1783995319167.png rename to docs/assets/menu-btn-hover-62eba0bb-balabala-1784043664472.png diff --git a/docs/assets/ocean-bg-8c848b8f-balabala-1783995319167.png b/docs/assets/ocean-bg-8c848b8f-balabala-1784043664472.png similarity index 100% rename from docs/assets/ocean-bg-8c848b8f-balabala-1783995319167.png rename to docs/assets/ocean-bg-8c848b8f-balabala-1784043664472.png diff --git a/docs/assets/openApi-928665d4-1784043664472.js b/docs/assets/openApi-928665d4-1784043664472.js new file mode 100644 index 0000000..14499df --- /dev/null +++ b/docs/assets/openApi-928665d4-1784043664472.js @@ -0,0 +1 @@ +var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var Ee=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,b=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&Ee(e,a,n[a]);if(Ce)for(var a of Ce(n))rn.call(n,a)&&Ee(e,a,n[a]);return e},h=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=i=>{try{o(a.next(i))}catch(u){r(u)}},l=i=>{try{o(a.throw(i))}catch(u){r(u)}},o=i=>i.done?t(i.value):Promise.resolve(i.value).then(s,l);o((a=a.apply(e,n)).next())});import{n as g,r as Ge}from"./index-d0c7091a-1784043664472.js";import{g as Ye}from"./geoserver-6574cb91-1784043664472.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-1b068bef-1784043664472.js";const ln="/openApi",Z=756.37,_e=297.29,B=291.82,on=16.47,un=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(oe),de=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Oe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Ge(Oe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function P(e,n){return Ge(Oe(e),{params:n})}function qe(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function jn(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/woodland/detail",{wkt:e}));return qe(n,["woodland"])})}function Un(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/basic_grassland/detail",{wkt:e}));return qe(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function A(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=A(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=A(e),r=A(n),s=A(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const o=w(r/l*t);return[o,w(Math.max(t-o,0))]}function G(e,n){const a=A(e),t=A(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function ve(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:G(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var o,i;return h(b(b({},s),e[l]||{}),{name:((o=e[l])==null?void 0:o.name)||s.name,unit:((i=e[l])==null?void 0:i.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=h(b({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:B,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,o=e.map((i,u)=>{const c=w(d(i,t)),v={key:d(i,["key","code","townCode"])||`${d(i,a)||u}-${u}`,name:d(i,a)||`第${u+1}项`,value:c,unit:r,percent:w(d(i,["percent","areaPercent","basicRatio","generalRatio"])),source:i};return l?h(b({},v),{extra:l(i)}):v}).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?o.slice(0,s):o}function we(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((o,i)=>{const u=d(o,t),c=w(r==="万亩"?A(u)/1e4:u),v=d(o,a)||`第${i+1}项`;return{key:d(o,["key","code"])||`${v}-${i}`,name:v,value:c,unit:r,source:o}}).filter(o=>Number(o.value)>0).sort((o,i)=>(Number(i.value)||0)-(Number(o.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function p(e,n,a,t="rank",r={}){return b({key:e,title:n,type:t,rows:a||[]},r)}function ge(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(o=>[o.areaName,o]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:o=>{const i=l.get(o.areaName),u=w(d(i,["yield","value"])),c=d(i,["unit"])||"斤";return s&&u!==void 0?`亩产 ${u} ${c}`:""}})}function oe(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(oe(a==null?void 0:a.name)),s=n.get(oe(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function Se(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function pe(e){return Se(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const o=oe(d(s,a)),i=w(d(s,t));return!o||i===void 0?null:{key:d(s,["key","code","townCode"])||`${o}-${l}`,name:o,value:i,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const o=oe(d(l,a)),i=A(d(l,t));if(!o||i===void 0)return;const u=s.get(o)||{key:d(l,["townCode","code"])||o,name:o,value:0,unit:d(l,["unit"])||r,source:[]};u.value+=i,u.source.push(l),s.set(o,u)}),Array.from(s.values()).map(l=>h(b({},l),{value:w(l.value)})).sort((l,o)=>(Number(o.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const o=r.filter(i=>(i==null?void 0:i.name)&&i.value!==void 0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0)).map((i,u)=>h(b({},i),{unit:i.unit||t,rank:u+1}));return{status:o.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:o}}function fe(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const o=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),i=new Map;return((o==null?void 0:o.features)||[]).forEach(u=>{const c=u.properties||{},v=String(c.xiang||""),m=Ke(v),y=A(c.acreage);if(!m||y===void 0)return;const N=i.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,i.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(i.values()).map(u=>h(b({},u),{value:w(u.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=g(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function Be(e,n,a,t){return f(this,null,function*(){const r=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return oe(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],o=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],i=yield Ye(a.layerName,{propertyName:o,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=A(d(v,l));if(!m||y===void 0)return;const N=u.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(u.values()).map(c=>h(b({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>h(b({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>h(b({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function hn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function Rn(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?hn(e,n,a):e==="grassland"&&n==="grassland-type"?Rn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ye(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=g(yield P(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function F(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const o=[],i=[];if(s.forEach((m,y)=>{const N=G(m.value,l);y=t)?o.push(m):i.push(m)}),!i.length)return o;const u=i.reduce((m,y)=>m+(Number(y.value)||0),0);return[...o,{key:`${r}-${i.length}`,name:r,value:w(u),unit:((c=i[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(G(u,l))}%`}]}function O(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function D(e=[],n=O(e),a=""){return e.map(t=>{const r=w(G(t.value,n));return h(b({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,o=A(n);if(o===void 0)return e;const i=O(e),u=w(o-i);if(u===void 0||u<=.01)return e;const c=[...e,{key:t,name:r,value:u,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=A(n),t=O(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const o=l===e.length-1,i=w(o?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(i)||0,h(b({},s),{value:i})})}function K(e=[],n=[]){return n.length?e.map((a,t)=>h(b({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function $e(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function z(e=[],n=[],a=4){const t=[],r=new Set,s=o=>{!o||r.has(o.key)||(r.add(o.key),t.push(o))},l=[...e,...n];return l.filter($e).forEach(s),l.filter(o=>o&&!$e(o)).forEach(s),t.slice(0,a)}function Mn(e,n,a={}){return e&&b(h(b({},e),{type:n}),a)}function _(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(o=>!t.has(o))||r.type;return t.add(l),Mn(r,l,{variant:l===r.type?r.variant:void 0})})}function De(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(u=>(u==null?void 0:u.name)&&Number(u.value)>0);if(!s.length)return[];const l=s.slice(0,a),o=s.slice(a),i=(u,c)=>{var v,m;return{key:u,name:u,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[i(t,l),o.length?i(r,o):null].filter(u=>u&&Number(u.value)>0)}function ie(e,n,a){var o,i,u,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((o=e==null?void 0:e.layerPanels)==null?void 0:o[a])||((i=e==null?void 0:e.layerPanels)==null?void 0:i[t]);if(!r)return e;const s=(u=r.leftPanels)!=null&&u.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return h(b({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=A(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=i=>i,filter:s,extra:l}=n,o=new Map;return e.forEach(i=>{if(s&&!s(i))return;const u=d(i,a),c=r(u,i),v=Xe(i,t);if(!c||v===void 0)return;const m=o.get(c)||{key:d(i,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(i),o.set(c,m)}),Array.from(o.values()).map(i=>{const u=h(b({},i),{value:w(i.value)});return l?h(b({},u),{extra:l(u)}):u}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0))}function Ie(e){return String(e||"").replace(/草原/g,"湿地")}function Wn(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=A(e==null?void 0:e.xc))!=null?l:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(G(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(G(s,t))}%`}].filter(o=>o.value!==void 0)}function xn(e={},n=[],a=[]){var i;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(i=A(e==null?void 0:e.xc))!=null?i:O(a),s=A(e==null?void 0:e.edibleXc),l=O(n),o=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return h(b({},e),{xc:w(r),edibleXc:w(o),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:o,edibleMuRows:i,typeTownRows:u,levelTownRows:c,minTownRows:v}){const m=p("wetland-town-area","湿地面积分布",K(me(n),de),"column",{span:1,variant:"plain"}),y=p("wetland-type","湿地类型结构",K(a,de),"donut",{span:1}),N=p("wetland-level-proportion","湿地级占比",K(D(t),de),"donut",{span:1,variant:"ring"}),T=p("wetland-min-type","湿地优势小类",K(F(s,6),de),"bar",{span:1,variant:"raceBarNoWrap"}),W=p("wetland-yield-capacity","湿地产能结构",Wn(e,r),"structure",{span:1}),x=p("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),L=p("wetland-edible-yield","可食鲜草产量",F(o,U.length),"column",{span:1,variant:"slim"}),E=p("wetland-mu-yield","湿地亩产效率",F(l,U.length),"heat",{span:1,limit:U.length}),$=p("wetland-level","湿地级别面积",t,"column",{span:1}),C=p("wetland-level-town","1级湿地分布",F(c,U.length),"bar",{span:1,variant:"distribution"}),q=p("wetland-type-town","湿地类型乡镇分布",F(u,U.length),"bar",{span:1,variant:"distribution"}),Y=p("wetland-edible-mu","可食鲜草亩产",F(i,U.length),"bar",{span:1}),J=p("wetland-min-town","优势小类乡镇分布",F(v,U.length),"bar",{span:1,variant:"distribution"}),S=_([m,y,N,T]),I=_([L,x,E,W]);return{leftPanels:S,rightPanels:I,left:S[0],right:I[0],layerPanels:An({townAreaPanel:m,typePanel:y,yieldCapacityPanel:W,yieldPanel:x,levelPanel:$,levelTownPanel:C,muYieldPanel:E,levelStructurePanel:N,typeTownPanel:q,minTypePanel:T,edibleYieldPanel:L,edibleMuPanel:Y,minTownPanel:J})}}function An(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:o,levelStructurePanel:i,typeTownPanel:u,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-level":{leftPanels:_([i,s,l,a].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-type":{leftPanels:_([a,u,c,y].filter(Boolean)),rightPanels:_([v,r,m,t].filter(Boolean))},"wetland-yield":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))}}}function Ln(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t={leftPanels:_(n.filter(Boolean)),rightPanels:_(a.filter(Boolean))};return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:o=[],canopyRows:i=[],forestTypeRows:u=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:T=De(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:W=De(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const x=p("woodland-town","林地面积分布",K(me(e),ee),"column",{span:1,variant:"plain",lineOverlay:!0}),L=p("woodland-type","林地类型结构",K(n,ee),"donut",{span:1,variant:"ring"}),E=p("woodland-protection","公益林保护等级",K(D(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),$=p("woodland-ownership","林地权属结构",K(D(r),ee),"structure",{span:1}),C=p("woodland-quality","优势树种面积",F(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=p("woodland-origin","林地起源结构",D(l),"structure",{span:1}),Y=p("woodland-age","林龄组结构",F(o,6),"column",{span:1}),J=p("woodland-canopy","郁闭度结构",K(F(i,6),ee),"donut",{span:1,fixedType:!0}),S=p("woodland-area-scale","林地图斑规模",a,"column",{span:1}),I=p("woodland-forest-type","森林类别结构",F(u,6),"bar",{span:1}),V=p("woodland-manage-level","管护等级分布",F(c,6),"bar",{span:1}),ae=p("woodland-public-rank","公益林面积排行",F(v,6),"bar",{span:1,variant:"distribution"}),M=p("woodland-owner-rank","权属单位排行",F(m,6),"bar",{span:1}),X=p("woodland-type-town","乡镇类型构成",F(y,6),"bar",{span:1,variant:"distribution"}),he=p("woodland-quality-level","林地质量等级",D(N),"donut",{span:1}),xe=p("woodland-town-concentration","林地集中度",K(D(T),ee),"structure",{span:1}),Ae=p("woodland-type-concentration","类型集中度",K(D(W),ee),"rose",{span:1}),Le=_(z([x,L,E,$],[S,M,I,C])),Fe=_(z([C,q,Y,J],[S,M,I,ae,xe,Ae]));return{leftPanels:Le,rightPanels:Fe,left:Le[0],right:Fe[0],layerPanels:Fn({townPanel:x,typePanel:L,scalePanel:S,protectionPanel:E,ownershipPanel:$,qualityPanel:C,originPanel:q,agePanel:Y,canopyPanel:J,forestTypePanel:I,manageLevelPanel:V,regionPanel:ae,ownerPanel:M,typeTownPanel:X,qualityLevelPanel:he,townConcentrationPanel:xe,typeConcentrationPanel:Ae})}}function Fn(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:o,agePanel:i,canopyPanel:u,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:T,townConcentrationPanel:W,typeConcentrationPanel:x}=e;return{"woodland-distribution":{leftPanels:_(z([n,a,r,s],[t,c,y])),rightPanels:_(z([l,o,i,u],[t,y,m,W,x,T]))},"woodland-protection":{leftPanels:_(z([r,c,v,n],[a,s,t])),rightPanels:_(z([m,l,o,s],[y,a,t]))},"woodland-type":{leftPanels:_(z([a,n,N,t],[r,s,c])),rightPanels:_(z([l,o,r,s],[i,u,y,x]))},"woodland-quality":{leftPanels:_(z([l,o,i,u],[T,t,a])),rightPanels:_(z([n,a,r,s],[c,y,t]))},"woodland-ownership":{leftPanels:_(z([s,y,n,a],[t,r,l])),rightPanels:_(z([r,l,o,t],[c,i,u]))}}}function Cn(e=cn){const n=e.map(s=>h(b({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-O(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return D(n.sort((s,l)=>{const o=r.indexOf(s.name),i=r.indexOf(l.name);return(o===-1?99:o)-(i===-1?99:i)}),Z)}function En(){return f(this,null,function*(){return We()})}function He(e=[],n={},a=[]){var r;const t=(r=A(n==null?void 0:n.xc))!=null?r:O(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function Bn(e={},n=[]){return h(b({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function $n(e=[]){const n=O(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>h(b({},a),{color:Dn(a.name),extra:w(G(a.value,n))?`${w(G(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Dn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var o;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(o=A(e==null?void 0:e.xc))!=null?o:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(i=>Number(i.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(G(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(G(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(G(l==null?void 0:l.value,t))}].filter(i=>i.value!==void 0)}function We(){return{levelRows:Cn(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function ze(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),o=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),i=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=We().levelRows,v=D([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=D([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),T=Ze({core:r,townRows:s,grassTypeRows:o,grassLevelRows:v,healthRows:m,productivityRows:i,edibleYieldRows:N,forageRows:y,degradationRows:c}),W=h(b({status:"fallback"},T),{top:He(r,{xc:_e,unit:"万吨"},l)});return ie(W,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:B,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],B,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],o=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),B),i=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),u=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:on,unit:"万吨"},townAreaRows:o,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:i,muYieldRows:l,edibleYieldRows:u,edibleMuRows:c,typeTownRows:o,levelTownRows:o,minTownRows:o}),m=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ie(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),u=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},u);return ie(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function R(e,n=[]){return e().catch(()=>n)}function Re(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=i=>i,max:l=Number.POSITIVE_INFINITY}=n,o=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(i=>h(b({},i),{name:s(i.name)}));return D(o).filter(i=>Number(i.value)>0).slice(0,l)}function In(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function zn(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:o,degradationRows:i}){const u=p("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=p("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=p("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=p("grassland-edible-yield","可食鲜草产量分布",F(l,10),"column",{span:1,variant:"slim"}),y=p("grassland-degradation","草地退化统计",$n(i),"bar",{span:1,variant:"degradation"}),N=p("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),T=p("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),W=p("grassland-forage-capacity","饲草供给",o,"bar",{span:1,variant:"capacity"}),x=_([u,v,y,T]),L=_([m,c,N,W]);return{core:e,leftPanels:x,rightPanels:L,left:x[0],right:L[0],layerPanels:Ln({leftPanels:x,rightPanels:L})}}function Gn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],o=n.edibleRows||[],i=n.edibleMuRows||[],u=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(we(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=ge(r,n.muYieldRows||[],{showMuYieldExtra:!1}),T=we(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),W=le(we(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(M=>h(b({},M),{name:Ie(M.name)})),B,{key:"wetland-level-unclassified",name:"未分级湿地"}),x=se(le(gn(l),B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),L=ge(o,i,{showMuYieldExtra:!1}),E=we(i,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(i==null?void 0:i[0],["unit"])||"斤",max:U.length}),$=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),C=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.length)||0}类`}}),B),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),Y=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:M=>Ie(d(M,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.filter(he=>Xe(he,["acreage","areaWanMu","value"])>0).length)||0}型`}}),B),S=xn(m,L,N),I=ne(a,"wetland"),V=W.find(M=>/^1级/.test(M.name))||W[0],ae=je({yieldSummary:S,townAreaRows:$,typeRows:y,levelRows:W,yieldRows:N,minTypeRows:x,muYieldRows:T,edibleYieldRows:L,edibleMuRows:E,typeTownRows:C,levelTownRows:Y.length?Y:q,minTownRows:J});return b({core:I,top:[I[0],I[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Yn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function Kn(e,n=[]){const a=new Set(n);return Yn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=Kn(e,n);return b(h(b({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function ue(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function On(e,n,a){var W,x,L,E,$;const t=ue(e,["grassland-area","grassland-total-area","草地面积"]),r=ue(n,["wetland-area","湿地面积"]),s=ue(a,["woodland-area","林地总面积"]),[l,o]=Me(Z,637.13,119.31),i=ue(e,["basic-grassland","basic-grassland-area","基本草原"]),u=ue(e,["general-grassland","general-grassland-area","一般草原"]),c=D([{key:"overview-basic-grassland",name:"基本草原",value:w((W=i==null?void 0:i.value)!=null?W:l),unit:(i==null?void 0:i.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((x=u==null?void 0:u.value)!=null?x:o),unit:(u==null?void 0:u.unit)||"万亩",color:"#FFE06B"}]),v=D([{key:"overview-grassland-area",name:"草地资源",value:w((L=t==null?void 0:t.value)!=null?L:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((E=r==null?void 0:r.value)!=null?E:B),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w(($=s==null?void 0:s.value)!=null?$:un),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","column",{variant:"water"}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"plain",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[p("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),p("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],T=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(O(v)),unit:"万亩"},h(b({},v[0]),{name:"草地面积"}),h(b({},v[1]),{name:"湿地面积"}),h(b({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(C=>(C==null?void 0:C.status)==="error")?"fallback":"success",core:T,top:T,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return On(t,r,s)}if(e==="woodland"){const[t,r,s,l,o]=yield Promise.all([Q("/woodland/distribution").then(g),R(()=>f(this,null,function*(){return g(yield Q("/woodland/types"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/protection"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/quality"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/ownership"))}),{})]),i=ne(wn(t),e),u=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[i[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:G(c,u)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),T=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),W=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),x=k((o==null?void 0:o.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,u)}),L=k((o==null?void 0:o.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),E=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),$=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),C=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),Y=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>{const X=w(d(M,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(M)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),I=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:T,ownershipRows:L,qualityRows:W,originRows:q,ageRows:Y,canopyRows:J,forestTypeRows:E,manageLevelRows:$,regionRows:C,ownerRows:x,typeTownRows:I,qualityLevelRows:S}),ae=b({status:"success",core:i,top:v},V);return ie(ae,e,n)}if(e==="grassland"){const[t,r,s,l,o,i,u,c,v]=yield Promise.all([P("/basic_grassland/overview").then(g),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/yieldProportion"))}),{}),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return En()}),We()),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_health/proportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/edibleXcDistribution"))}))]),m=o.levelRows||[],y=ne(fn(t),e),N=ge(s||[],l||[],{showMuYieldExtra:!1}),T=Bn(r,N),W=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),x=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),L=Re(Qe(i||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Se}),E=Re(u||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:In}),$=Re(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:zn}),C=ge(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:x,grassTypeRows:L,grassLevelRows:E,healthRows:$,productivityRows:W,edibleYieldRows:C,forageRows:Je(T,N),degradationRows:m}),Y=h(b({status:"success"},q),{top:He(y,T,N)});return ie(Y,e,n)}if(e==="wetland"){const[t,r,s,l,o,i,u,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland_grassland_level"}))})]),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcMuDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/yieldProportion"))}),{})]),T=Gn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:o,minTypeRows:i,edibleRows:u,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),W=h(b({status:"success"},T),{left:T.leftPanels[0],right:T.rightPanels[0]});return ie(W,e,n)}return ze(e,n)}catch(t){return h(b({},ze(e,n)),{status:"error",error:t})}})}function Hn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield Be(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ye(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield Be(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ye(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ye(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ye(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{jn as a,Hn as b,Un as c,ke as g}; diff --git a/docs/assets/park-ee0533e0-balabala-1783995319167.png b/docs/assets/park-ee0533e0-balabala-1784043664472.png similarity index 100% rename from docs/assets/park-ee0533e0-balabala-1783995319167.png rename to docs/assets/park-ee0533e0-balabala-1784043664472.png diff --git a/docs/assets/pathLine2-d4134d4b-balabala-1783995319167.png b/docs/assets/pathLine2-d4134d4b-balabala-1784043664472.png similarity index 100% rename from docs/assets/pathLine2-d4134d4b-balabala-1783995319167.png rename to docs/assets/pathLine2-d4134d4b-balabala-1784043664472.png diff --git a/docs/assets/right-kuang-b1937caf-balabala-1783995319167.svg b/docs/assets/right-kuang-b1937caf-balabala-1784043664472.svg similarity index 100% rename from docs/assets/right-kuang-b1937caf-balabala-1783995319167.svg rename to docs/assets/right-kuang-b1937caf-balabala-1784043664472.svg diff --git a/docs/assets/ring2-a1b91808-balabala-1783995319167.png b/docs/assets/ring2-a1b91808-balabala-1784043664472.png similarity index 100% rename from docs/assets/ring2-a1b91808-balabala-1783995319167.png rename to docs/assets/ring2-a1b91808-balabala-1784043664472.png diff --git a/docs/assets/ring3-fe0f60d7-balabala-1783995319167.png b/docs/assets/ring3-fe0f60d7-balabala-1784043664472.png similarity index 100% rename from docs/assets/ring3-fe0f60d7-balabala-1783995319167.png rename to docs/assets/ring3-fe0f60d7-balabala-1784043664472.png diff --git a/docs/assets/ring4-f2e324d6-balabala-1783995319167.png b/docs/assets/ring4-f2e324d6-balabala-1784043664472.png similarity index 100% rename from docs/assets/ring4-f2e324d6-balabala-1783995319167.png rename to docs/assets/ring4-f2e324d6-balabala-1784043664472.png diff --git a/docs/assets/rotationBorder1-2ce8e0ef-balabala-1783995319167.png b/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784043664472.png similarity index 100% rename from docs/assets/rotationBorder1-2ce8e0ef-balabala-1783995319167.png rename to docs/assets/rotationBorder1-2ce8e0ef-balabala-1784043664472.png diff --git a/docs/assets/rotationBorder2-7496b968-balabala-1783995319167.png b/docs/assets/rotationBorder2-7496b968-balabala-1784043664472.png similarity index 100% rename from docs/assets/rotationBorder2-7496b968-balabala-1783995319167.png rename to docs/assets/rotationBorder2-7496b968-balabala-1784043664472.png diff --git a/docs/assets/saoguang-ccf84a88-balabala-1783995319167.svg b/docs/assets/saoguang-ccf84a88-balabala-1784043664472.svg similarity index 100% rename from docs/assets/saoguang-ccf84a88-balabala-1783995319167.svg rename to docs/assets/saoguang-ccf84a88-balabala-1784043664472.svg diff --git a/docs/assets/screen2Standard-15e4461a-1784043664472.js b/docs/assets/screen2Standard-15e4461a-1784043664472.js new file mode 100644 index 0000000..5c22f5b --- /dev/null +++ b/docs/assets/screen2Standard-15e4461a-1784043664472.js @@ -0,0 +1,3764 @@ +var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1784043664472.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784043664472.js";/** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + */const ha="161",qn={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Yn={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},ah=0,Ha=1,oh=2,jl=1,lh=2,sn=3,bn=0,Pe=1,ke=2,yn=0,vi=1,Va=2,Ga=3,ka=4,ch=5,On=100,hh=101,uh=102,Wa=103,Xa=104,dh=200,fh=201,ph=202,mh=203,Js=204,$s=205,gh=206,_h=207,vh=208,xh=209,yh=210,Mh=211,Sh=212,Eh=213,bh=214,Th=0,Ah=1,wh=2,Hr=3,Rh=4,Ch=5,Ph=6,Lh=7,ua=0,Dh=1,Ih=2,Mn=0,Nh=1,Uh=2,Oh=3,Fh=4,Bh=5,zh=6,qa="attached",Hh="detached",Zl=300,yi=301,Mi=302,Qs=303,ta=304,Qr=306,Vr=1e3,We=1001,ea=1002,_e=1003,Ya=1004,Pi=1005,we=1006,us=1007,Bn=1008,Sn=1009,Vh=1010,Gh=1011,da=1012,Kl=1013,vn=1014,je=1015,Yi=1016,Jl=1017,$l=1018,zn=1020,kh=1021,Oe=1023,Wh=1024,Xh=1025,Hn=1026,Si=1027,qh=1028,Ql=1029,Yh=1030,tc=1031,ec=1033,ds=33776,fs=33777,ps=33778,ms=33779,ja=35840,Za=35841,Ka=35842,Ja=35843,nc=36196,$a=37492,Qa=37496,to=37808,eo=37809,no=37810,io=37811,ro=37812,so=37813,ao=37814,oo=37815,lo=37816,co=37817,ho=37818,uo=37819,fo=37820,po=37821,gs=36492,mo=36494,go=36495,jh=36283,_o=36284,vo=36285,xo=36286,Gr=2300,kr=2301,_s=2302,yo=2400,Mo=2401,So=2402,Zh=2500,l0=0,c0=1,h0=2,ic=3e3,Vn=3001,Kh=3200,Jh=3201,fa=0,$h=1,Fe="",ve="srgb",on="srgb-linear",pa="display-p3",ts="display-p3-linear",Wr="linear",ne="srgb",Xr="rec709",qr="p3",jn=7680,Eo=519,Qh=512,tu=513,eu=514,rc=515,nu=516,iu=517,ru=518,su=519,na=35044,bo="300 es",ia=1035,an=2e3,Yr=2001;class Xn{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;const n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const r=this._listeners[t];if(r!==void 0){const s=r.indexOf(e);s!==-1&&r.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const n=this._listeners[t.type];if(n!==void 0){t.target=this;const r=n.slice(0);for(let s=0,o=r.length;s>8&255]+Se[i>>16&255]+Se[i>>24&255]+"-"+Se[t&255]+Se[t>>8&255]+"-"+Se[t>>16&15|64]+Se[t>>24&255]+"-"+Se[e&63|128]+Se[e>>8&255]+"-"+Se[e>>16&255]+Se[e>>24&255]+Se[n&255]+Se[n>>8&255]+Se[n>>16&255]+Se[n>>24&255]).toLowerCase()}function ue(i,t,e){return Math.max(t,Math.min(e,i))}function ma(i,t){return(i%t+t)%t}function au(i,t,e,n,r){return n+(i-t)*(r-n)/(e-t)}function ou(i,t,e){return i!==t?(e-i)/(t-i):0}function ki(i,t,e){return(1-e)*i+e*t}function lu(i,t,e,n){return ki(i,t,1-Math.exp(-e*n))}function cu(i,t=1){return t-Math.abs(ma(i,t*2)-t)}function hu(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*(3-2*i))}function uu(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*i*(i*(i*6-15)+10))}function du(i,t){return i+Math.floor(Math.random()*(t-i+1))}function fu(i,t){return i+Math.random()*(t-i)}function pu(i){return i*(.5-Math.random())}function mu(i){i!==void 0&&(To=i);let t=To+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function gu(i){return i*Gi}function _u(i){return i*Ei}function ra(i){return(i&i-1)===0&&i!==0}function vu(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function jr(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function xu(i,t,e,n,r){const s=Math.cos,o=Math.sin,a=s(e/2),l=o(e/2),c=s((t+n)/2),h=o((t+n)/2),u=s((t-n)/2),d=o((t-n)/2),m=s((n-t)/2),g=o((n-t)/2);switch(r){case"XYX":i.set(a*h,l*u,l*d,a*c);break;case"YZY":i.set(l*d,a*h,l*u,a*c);break;case"ZXZ":i.set(l*u,l*d,a*h,a*c);break;case"XZX":i.set(a*h,l*g,l*m,a*c);break;case"YXY":i.set(l*m,a*h,l*g,a*c);break;case"ZYZ":i.set(l*g,l*m,a*h,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Xe(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array:return i/255;case Int32Array:return Math.max(i/2147483647,-1);case Int16Array:return Math.max(i/32767,-1);case Int8Array:return Math.max(i/127,-1);default:throw new Error("Invalid component type.")}}function Jt(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error("Invalid component type.")}}const yu={DEG2RAD:Gi,RAD2DEG:Ei,generateUUID:Be,clamp:ue,euclideanModulo:ma,mapLinear:au,inverseLerp:ou,lerp:ki,damp:lu,pingpong:cu,smoothstep:hu,smootherstep:uu,randInt:du,randFloat:fu,randFloatSpread:pu,seededRandom:mu,degToRad:gu,radToDeg:_u,isPowerOfTwo:ra,ceilPowerOfTwo:vu,floorPowerOfTwo:jr,setQuaternionFromProperEuler:xu,normalize:Jt,denormalize:Xe};class tt{constructor(t=0,e=0){tt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6],this.y=r[1]*e+r[4]*n+r[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ue(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),r=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*n-o*r+t.x,this.y=s*r+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Xt{constructor(t,e,n,r,s,o,a,l,c){Xt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,n,r,s,o,a,l,c)}set(t,e,n,r,s,o,a,l,c){const h=this.elements;return h[0]=t,h[1]=r,h[2]=a,h[3]=e,h[4]=s,h[5]=l,h[6]=n,h[7]=o,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,r=e.elements,s=this.elements,o=n[0],a=n[3],l=n[6],c=n[1],h=n[4],u=n[7],d=n[2],m=n[5],g=n[8],x=r[0],f=r[3],p=r[6],E=r[1],_=r[4],b=r[7],I=r[2],L=r[5],P=r[8];return s[0]=o*x+a*E+l*I,s[3]=o*f+a*_+l*L,s[6]=o*p+a*b+l*P,s[1]=c*x+h*E+u*I,s[4]=c*f+h*_+u*L,s[7]=c*p+h*b+u*P,s[2]=d*x+m*E+g*I,s[5]=d*f+m*_+g*L,s[8]=d*p+m*b+g*P,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8];return e*o*h-e*a*c-n*s*h+n*a*l+r*s*c-r*o*l}invert(){const t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8],u=h*o-a*c,d=a*l-h*s,m=c*s-o*l,g=e*u+n*d+r*m;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/g;return t[0]=u*x,t[1]=(r*c-h*n)*x,t[2]=(a*n-r*o)*x,t[3]=d*x,t[4]=(h*e-r*l)*x,t[5]=(r*s-a*e)*x,t[6]=m*x,t[7]=(n*l-c*e)*x,t[8]=(o*e-n*s)*x,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,r,s,o,a){const l=Math.cos(s),c=Math.sin(s);return this.set(n*l,n*c,-n*(l*o+c*a)+o+t,-r*c,r*l,-r*(-c*o+l*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(vs.makeScale(t,e)),this}rotate(t){return this.premultiply(vs.makeRotation(-t)),this}translate(t,e){return this.premultiply(vs.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let r=0;r<9;r++)if(e[r]!==n[r])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const vs=new Xt;function sc(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function ji(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function Mu(){const i=ji("canvas");return i.style.display="block",i}const Ao={};function Gn(i){i in Ao||(Ao[i]=!0,console.warn(i))}const wo=new Xt().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),Ro=new Xt().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),rr={[on]:{transfer:Wr,primaries:Xr,toReference:i=>i,fromReference:i=>i},[ve]:{transfer:ne,primaries:Xr,toReference:i=>i.convertSRGBToLinear(),fromReference:i=>i.convertLinearToSRGB()},[ts]:{transfer:Wr,primaries:qr,toReference:i=>i.applyMatrix3(Ro),fromReference:i=>i.applyMatrix3(wo)},[pa]:{transfer:ne,primaries:qr,toReference:i=>i.convertSRGBToLinear().applyMatrix3(Ro),fromReference:i=>i.applyMatrix3(wo).convertLinearToSRGB()}},Su=new Set([on,ts]),Qt={enabled:!0,_workingColorSpace:on,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(i){if(!Su.has(i))throw new Error(`Unsupported working color space, "${i}".`);this._workingColorSpace=i},convert:function(i,t,e){if(this.enabled===!1||t===e||!t||!e)return i;const n=rr[t].toReference,r=rr[e].fromReference;return r(n(i))},fromWorkingColorSpace:function(i,t){return this.convert(i,this._workingColorSpace,t)},toWorkingColorSpace:function(i,t){return this.convert(i,t,this._workingColorSpace)},getPrimaries:function(i){return rr[i].primaries},getTransfer:function(i){return i===Fe?Wr:rr[i].transfer}};function xi(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function xs(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}let Zn;class ac{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement=="undefined")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{Zn===void 0&&(Zn=ji("canvas")),Zn.width=t.width,Zn.height=t.height;const n=Zn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=Zn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){const e=ji("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const r=n.getImageData(0,0,t.width,t.height),s=r.data;for(let o=0;o0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==Zl)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Vr:t.x=t.x-Math.floor(t.x);break;case We:t.x=t.x<0?0:1;break;case ea:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Vr:t.y=t.y-Math.floor(t.y);break;case We:t.y=t.y<0?0:1;break;case ea:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Gn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===ve?Vn:ic}set encoding(t){Gn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===Vn?ve:Fe}}xe.DEFAULT_IMAGE=null;xe.DEFAULT_MAPPING=Zl;xe.DEFAULT_ANISOTROPY=1;class ee{constructor(t=0,e=0,n=0,r=1){ee.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=r}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,r){return this.x=t,this.y=e,this.z=n,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){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: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,r=this.z,s=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*r+o[12]*s,this.y=o[1]*e+o[5]*n+o[9]*r+o[13]*s,this.z=o[2]*e+o[6]*n+o[10]*r+o[14]*s,this.w=o[3]*e+o[7]*n+o[11]*r+o[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,r,s;const l=t.elements,c=l[0],h=l[4],u=l[8],d=l[1],m=l[5],g=l[9],x=l[2],f=l[6],p=l[10];if(Math.abs(h-d)<.01&&Math.abs(u-x)<.01&&Math.abs(g-f)<.01){if(Math.abs(h+d)<.1&&Math.abs(u+x)<.1&&Math.abs(g+f)<.1&&Math.abs(c+m+p-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const _=(c+1)/2,b=(m+1)/2,I=(p+1)/2,L=(h+d)/4,P=(u+x)/4,V=(g+f)/4;return _>b&&_>I?_<.01?(n=0,r=.707106781,s=.707106781):(n=Math.sqrt(_),r=L/n,s=P/n):b>I?b<.01?(n=.707106781,r=0,s=.707106781):(r=Math.sqrt(b),n=L/r,s=V/r):I<.01?(n=.707106781,r=.707106781,s=0):(s=Math.sqrt(I),n=P/s,r=V/s),this.set(n,r,s,e),this}let E=Math.sqrt((f-g)*(f-g)+(u-x)*(u-x)+(d-h)*(d-h));return Math.abs(E)<.001&&(E=1),this.x=(f-g)/E,this.y=(u-x)/E,this.z=(d-h)/E,this.w=Math.acos((c+m+p-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Tu extends Xn{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new ee(0,0,t,e),this.scissorTest=!1,this.viewport=new ee(0,0,t,e);const r={width:t,height:e,depth:1};n.encoding!==void 0&&(Gn("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===Vn?ve:Fe),n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:we,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},n),this.texture=new xe(r,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps,this.texture.internalFormat=n.internalFormat,this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.depthTexture=n.depthTexture,this.samples=n.samples}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;const e=Object.assign({},t.texture.image);return this.texture.source=new oc(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class kn extends Tu{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}}class lc extends xe{constructor(t=null,e=1,n=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:r},this.magFilter=_e,this.minFilter=_e,this.wrapR=We,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Au extends xe{constructor(t=null,e=1,n=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:r},this.magFilter=_e,this.minFilter=_e,this.wrapR=We,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Tn{constructor(t=0,e=0,n=0,r=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=r}static slerpFlat(t,e,n,r,s,o,a){let l=n[r+0],c=n[r+1],h=n[r+2],u=n[r+3];const d=s[o+0],m=s[o+1],g=s[o+2],x=s[o+3];if(a===0){t[e+0]=l,t[e+1]=c,t[e+2]=h,t[e+3]=u;return}if(a===1){t[e+0]=d,t[e+1]=m,t[e+2]=g,t[e+3]=x;return}if(u!==x||l!==d||c!==m||h!==g){let f=1-a;const p=l*d+c*m+h*g+u*x,E=p>=0?1:-1,_=1-p*p;if(_>Number.EPSILON){const I=Math.sqrt(_),L=Math.atan2(I,p*E);f=Math.sin(f*L)/I,a=Math.sin(a*L)/I}const b=a*E;if(l=l*f+d*b,c=c*f+m*b,h=h*f+g*b,u=u*f+x*b,f===1-a){const I=1/Math.sqrt(l*l+c*c+h*h+u*u);l*=I,c*=I,h*=I,u*=I}}t[e]=l,t[e+1]=c,t[e+2]=h,t[e+3]=u}static multiplyQuaternionsFlat(t,e,n,r,s,o){const a=n[r],l=n[r+1],c=n[r+2],h=n[r+3],u=s[o],d=s[o+1],m=s[o+2],g=s[o+3];return t[e]=a*g+h*u+l*m-c*d,t[e+1]=l*g+h*d+c*u-a*m,t[e+2]=c*g+h*m+a*d-l*u,t[e+3]=h*g-a*u-l*d-c*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,r=t._y,s=t._z,o=t._order,a=Math.cos,l=Math.sin,c=a(n/2),h=a(r/2),u=a(s/2),d=l(n/2),m=l(r/2),g=l(s/2);switch(o){case"XYZ":this._x=d*h*u+c*m*g,this._y=c*m*u-d*h*g,this._z=c*h*g+d*m*u,this._w=c*h*u-d*m*g;break;case"YXZ":this._x=d*h*u+c*m*g,this._y=c*m*u-d*h*g,this._z=c*h*g-d*m*u,this._w=c*h*u+d*m*g;break;case"ZXY":this._x=d*h*u-c*m*g,this._y=c*m*u+d*h*g,this._z=c*h*g+d*m*u,this._w=c*h*u-d*m*g;break;case"ZYX":this._x=d*h*u-c*m*g,this._y=c*m*u+d*h*g,this._z=c*h*g-d*m*u,this._w=c*h*u+d*m*g;break;case"YZX":this._x=d*h*u+c*m*g,this._y=c*m*u+d*h*g,this._z=c*h*g-d*m*u,this._w=c*h*u-d*m*g;break;case"XZY":this._x=d*h*u-c*m*g,this._y=c*m*u-d*h*g,this._z=c*h*g+d*m*u,this._w=c*h*u+d*m*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],r=e[4],s=e[8],o=e[1],a=e[5],l=e[9],c=e[2],h=e[6],u=e[10],d=n+a+u;if(d>0){const m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-l)*m,this._y=(s-c)*m,this._z=(o-r)*m}else if(n>a&&n>u){const m=2*Math.sqrt(1+n-a-u);this._w=(h-l)/m,this._x=.25*m,this._y=(r+o)/m,this._z=(s+c)/m}else if(a>u){const m=2*Math.sqrt(1+a-n-u);this._w=(s-c)/m,this._x=(r+o)/m,this._y=.25*m,this._z=(l+h)/m}else{const m=2*Math.sqrt(1+u-n-a);this._w=(o-r)/m,this._x=(s+c)/m,this._y=(l+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ue(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(n===0)return this;const r=Math.min(1,e/n);return this.slerp(t,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,r=t._y,s=t._z,o=t._w,a=e._x,l=e._y,c=e._z,h=e._w;return this._x=n*h+o*a+r*c-s*l,this._y=r*h+o*l+s*a-n*c,this._z=s*h+o*c+n*l-r*a,this._w=o*h-n*a-r*l-s*c,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const n=this._x,r=this._y,s=this._z,o=this._w;let a=o*t._w+n*t._x+r*t._y+s*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=r,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const m=1-e;return this._w=m*o+e*this._w,this._x=m*n+e*this._x,this._y=m*r+e*this._y,this._z=m*s+e*this._z,this.normalize(),this}const c=Math.sqrt(l),h=Math.atan2(c,a),u=Math.sin((1-e)*h)/c,d=Math.sin(e*h)/c;return this._w=o*u+this._w*d,this._x=n*u+this._x*d,this._y=r*u+this._y*d,this._z=s*u+this._z*d,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),r=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(r),n*Math.sin(s),n*Math.cos(s),e*Math.sin(r))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class C{constructor(t=0,e=0,n=0){C.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Co.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Co.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*r,this.y=s[1]*e+s[4]*n+s[7]*r,this.z=s[2]*e+s[5]*n+s[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,r=this.z,s=t.elements,o=1/(s[3]*e+s[7]*n+s[11]*r+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*r+s[12])*o,this.y=(s[1]*e+s[5]*n+s[9]*r+s[13])*o,this.z=(s[2]*e+s[6]*n+s[10]*r+s[14])*o,this}applyQuaternion(t){const e=this.x,n=this.y,r=this.z,s=t.x,o=t.y,a=t.z,l=t.w,c=2*(o*r-a*n),h=2*(a*e-s*r),u=2*(s*n-o*e);return this.x=e+l*c+o*u-a*h,this.y=n+l*h+a*c-s*u,this.z=r+l*u+s*h-o*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*r,this.y=s[1]*e+s[5]*n+s[9]*r,this.z=s[2]*e+s[6]*n+s[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,r=t.y,s=t.z,o=e.x,a=e.y,l=e.z;return this.x=r*l-s*a,this.y=s*o-n*l,this.z=n*a-r*o,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Ms.copy(this).projectOnVector(t),this.sub(Ms)}reflect(t){return this.sub(Ms.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ue(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const r=Math.sin(e)*t;return this.x=r*Math.sin(n),this.y=Math.cos(e)*t,this.z=r*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-hs(t,2));return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ms=new C,Co=new Tn;class wn{constructor(t=new C(1/0,1/0,1/0),e=new C(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,He),He.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Li),ar.subVectors(this.max,Li),Kn.subVectors(t.a,Li),Jn.subVectors(t.b,Li),$n.subVectors(t.c,Li),hn.subVectors(Jn,Kn),un.subVectors($n,Jn),Ln.subVectors(Kn,$n);let e=[0,-hn.z,hn.y,0,-un.z,un.y,0,-Ln.z,Ln.y,hn.z,0,-hn.x,un.z,0,-un.x,Ln.z,0,-Ln.x,-hn.y,hn.x,0,-un.y,un.x,0,-Ln.y,Ln.x,0];return!Ss(e,Kn,Jn,$n,ar)||(e=[1,0,0,0,1,0,0,0,1],!Ss(e,Kn,Jn,$n,ar))?!1:(or.crossVectors(hn,un),e=[or.x,or.y,or.z],Ss(e,Kn,Jn,$n,ar))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,He).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(He).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:($e[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),$e[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),$e[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),$e[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),$e[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),$e[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),$e[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),$e[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints($e),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const $e=[new C,new C,new C,new C,new C,new C,new C,new C],He=new C,sr=new wn,Kn=new C,Jn=new C,$n=new C,hn=new C,un=new C,Ln=new C,Li=new C,ar=new C,or=new C,Dn=new C;function Ss(i,t,e,n,r){for(let s=0,o=i.length-3;s<=o;s+=3){Dn.fromArray(i,s);const a=r.x*Math.abs(Dn.x)+r.y*Math.abs(Dn.y)+r.z*Math.abs(Dn.z),l=t.dot(Dn),c=e.dot(Dn),h=n.dot(Dn);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>a)return!1}return!0}const wu=new wn,Di=new C,Es=new C;class ln{constructor(t=new C,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;e!==void 0?n.copy(e):wu.setFromPoints(t).getCenter(n);let r=0;for(let s=0,o=t.length;sthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Di.subVectors(t,this.center);const e=Di.lengthSq();if(e>this.radius*this.radius){const n=Math.sqrt(e),r=(n-this.radius)*.5;this.center.addScaledVector(Di,r/n),this.radius+=r}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(Es.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Di.copy(t.center).add(Es)),this.expandByPoint(Di.copy(t.center).sub(Es))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Qe=new C,bs=new C,lr=new C,dn=new C,Ts=new C,cr=new C,As=new C;class Ti{constructor(t=new C,e=new C(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Qe)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Qe.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Qe.copy(this.origin).addScaledVector(this.direction,e),Qe.distanceToSquared(t))}distanceSqToSegment(t,e,n,r){bs.copy(t).add(e).multiplyScalar(.5),lr.copy(e).sub(t).normalize(),dn.copy(this.origin).sub(bs);const s=t.distanceTo(e)*.5,o=-this.direction.dot(lr),a=dn.dot(this.direction),l=-dn.dot(lr),c=dn.lengthSq(),h=Math.abs(1-o*o);let u,d,m,g;if(h>0)if(u=o*l-a,d=o*a-l,g=s*h,u>=0)if(d>=-g)if(d<=g){const x=1/h;u*=x,d*=x,m=u*(u+o*d+2*a)+d*(o*u+d+2*l)+c}else d=s,u=Math.max(0,-(o*d+a)),m=-u*u+d*(d+2*l)+c;else d=-s,u=Math.max(0,-(o*d+a)),m=-u*u+d*(d+2*l)+c;else d<=-g?(u=Math.max(0,-(-o*s+a)),d=u>0?-s:Math.min(Math.max(-s,-l),s),m=-u*u+d*(d+2*l)+c):d<=g?(u=0,d=Math.min(Math.max(-s,-l),s),m=d*(d+2*l)+c):(u=Math.max(0,-(o*s+a)),d=u>0?s:Math.min(Math.max(-s,-l),s),m=-u*u+d*(d+2*l)+c);else d=o>0?-s:s,u=Math.max(0,-(o*d+a)),m=-u*u+d*(d+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),r&&r.copy(bs).addScaledVector(lr,d),m}intersectSphere(t,e){Qe.subVectors(t.center,this.origin);const n=Qe.dot(this.direction),r=Qe.dot(Qe)-n*n,s=t.radius*t.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=n-o,l=n+o;return l<0?null:a<0?this.at(l,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,r,s,o,a,l;const c=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,d=this.origin;return c>=0?(n=(t.min.x-d.x)*c,r=(t.max.x-d.x)*c):(n=(t.max.x-d.x)*c,r=(t.min.x-d.x)*c),h>=0?(s=(t.min.y-d.y)*h,o=(t.max.y-d.y)*h):(s=(t.max.y-d.y)*h,o=(t.min.y-d.y)*h),n>o||s>r||((s>n||isNaN(n))&&(n=s),(o=0?(a=(t.min.z-d.z)*u,l=(t.max.z-d.z)*u):(a=(t.max.z-d.z)*u,l=(t.min.z-d.z)*u),n>l||a>r)||((a>n||n!==n)&&(n=a),(l=0?n:r,e)}intersectsBox(t){return this.intersectBox(t,Qe)!==null}intersectTriangle(t,e,n,r,s){Ts.subVectors(e,t),cr.subVectors(n,t),As.crossVectors(Ts,cr);let o=this.direction.dot(As),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;dn.subVectors(this.origin,t);const l=a*this.direction.dot(cr.crossVectors(dn,cr));if(l<0)return null;const c=a*this.direction.dot(Ts.cross(dn));if(c<0||l+c>o)return null;const h=-a*dn.dot(As);return h<0?null:this.at(h/o,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Yt{constructor(t,e,n,r,s,o,a,l,c,h,u,d,m,g,x,f){Yt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,n,r,s,o,a,l,c,h,u,d,m,g,x,f)}set(t,e,n,r,s,o,a,l,c,h,u,d,m,g,x,f){const p=this.elements;return p[0]=t,p[4]=e,p[8]=n,p[12]=r,p[1]=s,p[5]=o,p[9]=a,p[13]=l,p[2]=c,p[6]=h,p[10]=u,p[14]=d,p[3]=m,p[7]=g,p[11]=x,p[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Yt().fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,r=1/Qn.setFromMatrixColumn(t,0).length(),s=1/Qn.setFromMatrixColumn(t,1).length(),o=1/Qn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*r,e[1]=n[1]*r,e[2]=n[2]*r,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,r=t.y,s=t.z,o=Math.cos(n),a=Math.sin(n),l=Math.cos(r),c=Math.sin(r),h=Math.cos(s),u=Math.sin(s);if(t.order==="XYZ"){const d=o*h,m=o*u,g=a*h,x=a*u;e[0]=l*h,e[4]=-l*u,e[8]=c,e[1]=m+g*c,e[5]=d-x*c,e[9]=-a*l,e[2]=x-d*c,e[6]=g+m*c,e[10]=o*l}else if(t.order==="YXZ"){const d=l*h,m=l*u,g=c*h,x=c*u;e[0]=d+x*a,e[4]=g*a-m,e[8]=o*c,e[1]=o*u,e[5]=o*h,e[9]=-a,e[2]=m*a-g,e[6]=x+d*a,e[10]=o*l}else if(t.order==="ZXY"){const d=l*h,m=l*u,g=c*h,x=c*u;e[0]=d-x*a,e[4]=-o*u,e[8]=g+m*a,e[1]=m+g*a,e[5]=o*h,e[9]=x-d*a,e[2]=-o*c,e[6]=a,e[10]=o*l}else if(t.order==="ZYX"){const d=o*h,m=o*u,g=a*h,x=a*u;e[0]=l*h,e[4]=g*c-m,e[8]=d*c+x,e[1]=l*u,e[5]=x*c+d,e[9]=m*c-g,e[2]=-c,e[6]=a*l,e[10]=o*l}else if(t.order==="YZX"){const d=o*l,m=o*c,g=a*l,x=a*c;e[0]=l*h,e[4]=x-d*u,e[8]=g*u+m,e[1]=u,e[5]=o*h,e[9]=-a*h,e[2]=-c*h,e[6]=m*u+g,e[10]=d-x*u}else if(t.order==="XZY"){const d=o*l,m=o*c,g=a*l,x=a*c;e[0]=l*h,e[4]=-u,e[8]=c*h,e[1]=d*u+x,e[5]=o*h,e[9]=m*u-g,e[2]=g*u-m,e[6]=a*h,e[10]=x*u+d}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Ru,t,Cu)}lookAt(t,e,n){const r=this.elements;return De.subVectors(t,e),De.lengthSq()===0&&(De.z=1),De.normalize(),fn.crossVectors(n,De),fn.lengthSq()===0&&(Math.abs(n.z)===1?De.x+=1e-4:De.z+=1e-4,De.normalize(),fn.crossVectors(n,De)),fn.normalize(),hr.crossVectors(De,fn),r[0]=fn.x,r[4]=hr.x,r[8]=De.x,r[1]=fn.y,r[5]=hr.y,r[9]=De.y,r[2]=fn.z,r[6]=hr.z,r[10]=De.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,r=e.elements,s=this.elements,o=n[0],a=n[4],l=n[8],c=n[12],h=n[1],u=n[5],d=n[9],m=n[13],g=n[2],x=n[6],f=n[10],p=n[14],E=n[3],_=n[7],b=n[11],I=n[15],L=r[0],P=r[4],V=r[8],lt=r[12],y=r[1],A=r[5],Z=r[9],rt=r[13],D=r[2],z=r[6],O=r[10],Y=r[14],X=r[3],k=r[7],$=r[11],K=r[15];return s[0]=o*L+a*y+l*D+c*X,s[4]=o*P+a*A+l*z+c*k,s[8]=o*V+a*Z+l*O+c*$,s[12]=o*lt+a*rt+l*Y+c*K,s[1]=h*L+u*y+d*D+m*X,s[5]=h*P+u*A+d*z+m*k,s[9]=h*V+u*Z+d*O+m*$,s[13]=h*lt+u*rt+d*Y+m*K,s[2]=g*L+x*y+f*D+p*X,s[6]=g*P+x*A+f*z+p*k,s[10]=g*V+x*Z+f*O+p*$,s[14]=g*lt+x*rt+f*Y+p*K,s[3]=E*L+_*y+b*D+I*X,s[7]=E*P+_*A+b*z+I*k,s[11]=E*V+_*Z+b*O+I*$,s[15]=E*lt+_*rt+b*Y+I*K,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],r=t[8],s=t[12],o=t[1],a=t[5],l=t[9],c=t[13],h=t[2],u=t[6],d=t[10],m=t[14],g=t[3],x=t[7],f=t[11],p=t[15];return g*(+s*l*u-r*c*u-s*a*d+n*c*d+r*a*m-n*l*m)+x*(+e*l*m-e*c*d+s*o*d-r*o*m+r*c*h-s*l*h)+f*(+e*c*u-e*a*m-s*o*u+n*o*m+s*a*h-n*c*h)+p*(-r*a*h-e*l*u+e*a*d+r*o*u-n*o*d+n*l*h)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const r=this.elements;return t.isVector3?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8],u=t[9],d=t[10],m=t[11],g=t[12],x=t[13],f=t[14],p=t[15],E=u*f*c-x*d*c+x*l*m-a*f*m-u*l*p+a*d*p,_=g*d*c-h*f*c-g*l*m+o*f*m+h*l*p-o*d*p,b=h*x*c-g*u*c+g*a*m-o*x*m-h*a*p+o*u*p,I=g*u*l-h*x*l-g*a*d+o*x*d+h*a*f-o*u*f,L=e*E+n*_+r*b+s*I;if(L===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const P=1/L;return t[0]=E*P,t[1]=(x*d*s-u*f*s-x*r*m+n*f*m+u*r*p-n*d*p)*P,t[2]=(a*f*s-x*l*s+x*r*c-n*f*c-a*r*p+n*l*p)*P,t[3]=(u*l*s-a*d*s-u*r*c+n*d*c+a*r*m-n*l*m)*P,t[4]=_*P,t[5]=(h*f*s-g*d*s+g*r*m-e*f*m-h*r*p+e*d*p)*P,t[6]=(g*l*s-o*f*s-g*r*c+e*f*c+o*r*p-e*l*p)*P,t[7]=(o*d*s-h*l*s+h*r*c-e*d*c-o*r*m+e*l*m)*P,t[8]=b*P,t[9]=(g*u*s-h*x*s-g*n*m+e*x*m+h*n*p-e*u*p)*P,t[10]=(o*x*s-g*a*s+g*n*c-e*x*c-o*n*p+e*a*p)*P,t[11]=(h*a*s-o*u*s-h*n*c+e*u*c+o*n*m-e*a*m)*P,t[12]=I*P,t[13]=(h*x*r-g*u*r+g*n*d-e*x*d-h*n*f+e*u*f)*P,t[14]=(g*a*r-o*x*r-g*n*l+e*x*l+o*n*f-e*a*f)*P,t[15]=(o*u*r-h*a*r+h*n*l-e*u*l-o*n*d+e*a*d)*P,this}scale(t){const e=this.elements,n=t.x,r=t.y,s=t.z;return e[0]*=n,e[4]*=r,e[8]*=s,e[1]*=n,e[5]*=r,e[9]*=s,e[2]*=n,e[6]*=r,e[10]*=s,e[3]*=n,e[7]*=r,e[11]*=s,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],r=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,r))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),r=Math.sin(e),s=1-n,o=t.x,a=t.y,l=t.z,c=s*o,h=s*a;return this.set(c*o+n,c*a-r*l,c*l+r*a,0,c*a+r*l,h*a+n,h*l-r*o,0,c*l-r*a,h*l+r*o,s*l*l+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,r,s,o){return this.set(1,n,s,0,t,1,o,0,e,r,1,0,0,0,0,1),this}compose(t,e,n){const r=this.elements,s=e._x,o=e._y,a=e._z,l=e._w,c=s+s,h=o+o,u=a+a,d=s*c,m=s*h,g=s*u,x=o*h,f=o*u,p=a*u,E=l*c,_=l*h,b=l*u,I=n.x,L=n.y,P=n.z;return r[0]=(1-(x+p))*I,r[1]=(m+b)*I,r[2]=(g-_)*I,r[3]=0,r[4]=(m-b)*L,r[5]=(1-(d+p))*L,r[6]=(f+E)*L,r[7]=0,r[8]=(g+_)*P,r[9]=(f-E)*P,r[10]=(1-(d+x))*P,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}decompose(t,e,n){const r=this.elements;let s=Qn.set(r[0],r[1],r[2]).length();const o=Qn.set(r[4],r[5],r[6]).length(),a=Qn.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),t.x=r[12],t.y=r[13],t.z=r[14],Ve.copy(this);const c=1/s,h=1/o,u=1/a;return Ve.elements[0]*=c,Ve.elements[1]*=c,Ve.elements[2]*=c,Ve.elements[4]*=h,Ve.elements[5]*=h,Ve.elements[6]*=h,Ve.elements[8]*=u,Ve.elements[9]*=u,Ve.elements[10]*=u,e.setFromRotationMatrix(Ve),n.x=s,n.y=o,n.z=a,this}makePerspective(t,e,n,r,s,o,a=an){const l=this.elements,c=2*s/(e-t),h=2*s/(n-r),u=(e+t)/(e-t),d=(n+r)/(n-r);let m,g;if(a===an)m=-(o+s)/(o-s),g=-2*o*s/(o-s);else if(a===Yr)m=-o/(o-s),g=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=h,l[9]=d,l[13]=0,l[2]=0,l[6]=0,l[10]=m,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,n,r,s,o,a=an){const l=this.elements,c=1/(e-t),h=1/(n-r),u=1/(o-s),d=(e+t)*c,m=(n+r)*h;let g,x;if(a===an)g=(o+s)*u,x=-2*u;else if(a===Yr)g=s*u,x=-1*u;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-d,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-m,l[2]=0,l[6]=0,l[10]=x,l[14]=-g,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let r=0;r<16;r++)if(e[r]!==n[r])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Qn=new C,Ve=new Yt,Ru=new C(0,0,0),Cu=new C(1,1,1),fn=new C,hr=new C,De=new C,Po=new Yt,Lo=new Tn;class es{constructor(t=0,e=0,n=0,r=es.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=r}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,r=this._order){return this._x=t,this._y=e,this._z=n,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const r=t.elements,s=r[0],o=r[4],a=r[8],l=r[1],c=r[5],h=r[9],u=r[2],d=r[6],m=r[10];switch(e){case"XYZ":this._y=Math.asin(ue(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,c),this._z=0);break;case"YXZ":this._x=Math.asin(-ue(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-u,s),this._z=0);break;case"ZXY":this._x=Math.asin(ue(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,m),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-ue(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(ue(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-u,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-ue(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,c),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Po.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Po,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Lo.setFromEuler(this),this.setFromQuaternion(Lo,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}es.DEFAULT_ORDER="XYZ";class ga{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(t),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(t)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(t.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(n.geometries=a),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),d.length>0&&(n.skeletons=d),m.length>0&&(n.animations=m),g.length>0&&(n.nodes=g)}return n.object=r,n;function o(a){const l=[];for(const c in a){const h=a[c];delete h.metadata,l.push(h)}return l}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(t,e,n,r,s){Ge.subVectors(r,e),en.subVectors(n,e),ws.subVectors(t,e);const o=Ge.dot(Ge),a=Ge.dot(en),l=Ge.dot(ws),c=en.dot(en),h=en.dot(ws),u=o*c-a*a;if(u===0)return s.set(0,0,0),null;const d=1/u,m=(c*l-a*h)*d,g=(o*h-a*l)*d;return s.set(1-m-g,g,m)}static containsPoint(t,e,n,r){return this.getBarycoord(t,e,n,r,nn)===null?!1:nn.x>=0&&nn.y>=0&&nn.x+nn.y<=1}static getInterpolation(t,e,n,r,s,o,a,l){return this.getBarycoord(t,e,n,r,nn)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,nn.x),l.addScaledVector(o,nn.y),l.addScaledVector(a,nn.z),l)}static isFrontFacing(t,e,n,r){return Ge.subVectors(n,e),en.subVectors(t,e),Ge.cross(en).dot(r)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,r){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[r]),this}setFromAttributeAndIndices(t,e,n,r){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,r),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Ge.subVectors(this.c,this.b),en.subVectors(this.a,this.b),Ge.cross(en).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return qe.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return qe.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,r,s){return qe.getInterpolation(t,this.a,this.b,this.c,e,n,r,s)}containsPoint(t){return qe.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return qe.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,r=this.b,s=this.c;let o,a;ei.subVectors(r,n),ni.subVectors(s,n),Rs.subVectors(t,n);const l=ei.dot(Rs),c=ni.dot(Rs);if(l<=0&&c<=0)return e.copy(n);Cs.subVectors(t,r);const h=ei.dot(Cs),u=ni.dot(Cs);if(h>=0&&u<=h)return e.copy(r);const d=l*u-h*c;if(d<=0&&l>=0&&h<=0)return o=l/(l-h),e.copy(n).addScaledVector(ei,o);Ps.subVectors(t,s);const m=ei.dot(Ps),g=ni.dot(Ps);if(g>=0&&m<=g)return e.copy(s);const x=m*c-l*g;if(x<=0&&c>=0&&g<=0)return a=c/(c-g),e.copy(n).addScaledVector(ni,a);const f=h*g-m*u;if(f<=0&&u-h>=0&&m-g>=0)return Oo.subVectors(s,r),a=(u-h)/(u-h+(m-g)),e.copy(r).addScaledVector(Oo,a);const p=1/(f+x+d);return o=x*p,a=d*p,e.copy(n).addScaledVector(ei,o).addScaledVector(ni,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const cc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},pn={h:0,s:0,l:0},dr={h:0,s:0,l:0};function Ls(i,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?i+(t-i)*6*e:e<1/2?t:e<2/3?i+(t-i)*6*(2/3-e):i}class Ut{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){const r=t;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=ve){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,Qt.toWorkingColorSpace(this,e),this}setRGB(t,e,n,r=Qt.workingColorSpace){return this.r=t,this.g=e,this.b=n,Qt.toWorkingColorSpace(this,r),this}setHSL(t,e,n,r=Qt.workingColorSpace){if(t=ma(t,1),e=ue(e,0,1),n=ue(n,0,1),e===0)this.r=this.g=this.b=n;else{const s=n<=.5?n*(1+e):n+e-n*e,o=2*n-s;this.r=Ls(o,s,t+1/3),this.g=Ls(o,s,t),this.b=Ls(o,s,t-1/3)}return Qt.toWorkingColorSpace(this,r),this}setStyle(t,e=ve){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(t)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,e);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,e);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(t)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,e);if(o===6)return this.setHex(parseInt(s,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=ve){const n=cc[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=xi(t.r),this.g=xi(t.g),this.b=xi(t.b),this}copyLinearToSRGB(t){return this.r=xs(t.r),this.g=xs(t.g),this.b=xs(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=ve){return Qt.fromWorkingColorSpace(Ee.copy(this),t),Math.round(ue(Ee.r*255,0,255))*65536+Math.round(ue(Ee.g*255,0,255))*256+Math.round(ue(Ee.b*255,0,255))}getHexString(t=ve){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Qt.workingColorSpace){Qt.fromWorkingColorSpace(Ee.copy(this),e);const n=Ee.r,r=Ee.g,s=Ee.b,o=Math.max(n,r,s),a=Math.min(n,r,s);let l,c;const h=(a+o)/2;if(a===o)l=0,c=0;else{const u=o-a;switch(c=h<=.5?u/(o+a):u/(2-o-a),o){case n:l=(r-s)/u+(r0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const r=this[e];if(r===void 0){console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[e]=n}}toJSON(t){const e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==vi&&(n.blending=this.blending),this.side!==bn&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==Js&&(n.blendSrc=this.blendSrc),this.blendDst!==$s&&(n.blendDst=this.blendDst),this.blendEquation!==On&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==Hr&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Eo&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==jn&&(n.stencilFail=this.stencilFail),this.stencilZFail!==jn&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==jn&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function r(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(e){const s=r(t.textures),o=r(t.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(e!==null){const r=e.length;n=new Array(r);for(let s=0;s!==r;++s)n[s]=e[s].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}}class _a extends cn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const he=new C,fr=new tt;class ze{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=je,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let r=0,s=this.itemSize;r0&&(t.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const l in n){const c=n[l];t.data.attributes[l]=c.toJSON(t.data)}const r={};let s=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],h=[];for(let u=0,d=c.length;u0&&(r[l]=h,s=!0)}s&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;n!==null&&this.setIndex(n.clone(e));const r=t.attributes;for(const c in r){const h=r[c];this.setAttribute(c,h.clone(e))}const s=t.morphAttributes;for(const c in s){const h=[],u=s[c];for(let d=0,m=u.length;d0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;shs(t.far-t.near,2)))&&(Fo.copy(s).invert(),In.copy(t.ray).applyMatrix4(Fo),!(n.boundingBox!==null&&In.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,In)))}_computeIntersections(t,e,n){let r;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,c=s.attributes.uv,h=s.attributes.uv1,u=s.attributes.normal,d=s.groups,m=s.drawRange;if(a!==null)if(Array.isArray(o))for(let g=0,x=d.length;ge.far?null:{distance:c,point:yr.clone(),object:i}}function Mr(i,t,e,n,r,s,o,a,l,c){i.getVertexPosition(a,ri),i.getVertexPosition(l,si),i.getVertexPosition(c,ai);const h=Fu(i,t,e,n,ri,si,ai,xr);if(h){r&&(gr.fromBufferAttribute(r,a),_r.fromBufferAttribute(r,l),vr.fromBufferAttribute(r,c),h.uv=qe.getInterpolation(xr,ri,si,ai,gr,_r,vr,new tt)),s&&(gr.fromBufferAttribute(s,a),_r.fromBufferAttribute(s,l),vr.fromBufferAttribute(s,c),h.uv1=qe.getInterpolation(xr,ri,si,ai,gr,_r,vr,new tt),h.uv2=h.uv1),o&&(zo.fromBufferAttribute(o,a),Ho.fromBufferAttribute(o,l),Vo.fromBufferAttribute(o,c),h.normal=qe.getInterpolation(xr,ri,si,ai,zo,Ho,Vo,new C),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const u={a,b:l,c,normal:new C,materialIndex:0};qe.getNormal(ri,si,ai,u.normal),h.face=u}return h}class $i extends ye{constructor(t=1,e=1,n=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const l=[],c=[],h=[],u=[];let d=0,m=0;g("z","y","x",-1,-1,n,e,t,o,s,0),g("z","y","x",1,-1,n,e,-t,o,s,1),g("x","z","y",1,1,t,n,e,r,o,2),g("x","z","y",1,-1,t,n,-e,r,o,3),g("x","y","z",1,-1,t,e,n,r,s,4),g("x","y","z",-1,-1,t,e,-n,r,s,5),this.setIndex(l),this.setAttribute("position",new oe(c,3)),this.setAttribute("normal",new oe(h,3)),this.setAttribute("uv",new oe(u,2));function g(x,f,p,E,_,b,I,L,P,V,lt){const y=b/P,A=I/V,Z=b/2,rt=I/2,D=L/2,z=P+1,O=V+1;let Y=0,X=0;const k=new C;for(let $=0;$0?1:-1,h.push(k.x,k.y,k.z),u.push(mt/P),u.push(1-$/V),Y+=1}}for(let $=0;$0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const r in this.extensions)this.extensions[r]===!0&&(n[r]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class fc extends ae{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Yt,this.projectionMatrix=new Yt,this.projectionMatrixInverse=new Yt,this.coordinateSystem=an}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const mn=new C,Go=new tt,ko=new tt;class Re extends fc{constructor(t=50,e=1,n=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=r,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=Ei*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(Gi*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Ei*2*Math.atan(Math.tan(Gi*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){mn.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(mn.x,mn.y).multiplyScalar(-t/mn.z),mn.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(mn.x,mn.y).multiplyScalar(-t/mn.z)}getViewSize(t,e){return this.getViewBounds(t,Go,ko),e.subVectors(ko,Go)}setViewOffset(t,e,n,r,s,o){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(Gi*.5*this.fov)/this.zoom,n=2*e,r=this.aspect*n,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,c=o.fullHeight;s+=o.offsetX*r/l,e-=o.offsetY*n/c,r*=o.width/l,n*=o.height/c}const a=this.filmOffset;a!==0&&(s+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const oi=-90,li=1;class Gu extends ae{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Re(oi,li,t,e);r.layers=this.layers,this.add(r);const s=new Re(oi,li,t,e);s.layers=this.layers,this.add(s);const o=new Re(oi,li,t,e);o.layers=this.layers,this.add(o);const a=new Re(oi,li,t,e);a.layers=this.layers,this.add(a);const l=new Re(oi,li,t,e);l.layers=this.layers,this.add(l);const c=new Re(oi,li,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,r,s,o,a,l]=e;for(const c of e)this.remove(c);if(t===an)n.up.set(0,1,0),n.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(t===Yr)n.up.set(0,-1,0),n.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:r}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,c,h]=this.children,u=t.getRenderTarget(),d=t.getActiveCubeFace(),m=t.getActiveMipmapLevel(),g=t.xr.enabled;t.xr.enabled=!1;const x=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,r),t.render(e,s),t.setRenderTarget(n,1,r),t.render(e,o),t.setRenderTarget(n,2,r),t.render(e,a),t.setRenderTarget(n,3,r),t.render(e,l),t.setRenderTarget(n,4,r),t.render(e,c),n.texture.generateMipmaps=x,t.setRenderTarget(n,5,r),t.render(e,h),t.setRenderTarget(u,d,m),t.xr.enabled=g,n.texture.needsPMREMUpdate=!0}}class pc extends xe{constructor(t,e,n,r,s,o,a,l,c,h){t=t!==void 0?t:[],e=e!==void 0?e:yi,super(t,e,n,r,s,o,a,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class ku extends kn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},r=[n,n,n,n,n,n];e.encoding!==void 0&&(Gn("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===Vn?ve:Fe),this.texture=new pc(r,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:we}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},r=new $i(5,5,5),s=new An({name:"CubemapFromEquirect",uniforms:bi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Pe,blending:yn});s.uniforms.tEquirect.value=e;const o=new Ce(r,s),a=e.minFilter;return e.minFilter===Bn&&(e.minFilter=we),new Gu(1,10,this).update(t,o),e.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(t,e,n,r){const s=t.getRenderTarget();for(let o=0;o<6;o++)t.setRenderTarget(this,o),t.clear(e,n,r);t.setRenderTarget(s)}}const Ns=new C,Wu=new C,Xu=new Xt;class _n{constructor(t=new C(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,r){return this.normal.set(t,e,n),this.constant=r,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const r=Ns.subVectors(n,e).cross(Wu.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Ns),r=this.normal.dot(n);if(r===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;const s=-(t.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:e.copy(t.start).addScaledVector(n,s)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Xu.getNormalMatrix(t),r=this.coplanarPoint(Ns).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Nn=new ln,Sr=new C;class va{constructor(t=new _n,e=new _n,n=new _n,r=new _n,s=new _n,o=new _n){this.planes=[t,e,n,r,s,o]}set(t,e,n,r,s,o){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=an){const n=this.planes,r=t.elements,s=r[0],o=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],m=r[8],g=r[9],x=r[10],f=r[11],p=r[12],E=r[13],_=r[14],b=r[15];if(n[0].setComponents(l-s,d-c,f-m,b-p).normalize(),n[1].setComponents(l+s,d+c,f+m,b+p).normalize(),n[2].setComponents(l+o,d+h,f+g,b+E).normalize(),n[3].setComponents(l-o,d-h,f-g,b-E).normalize(),n[4].setComponents(l-a,d-u,f-x,b-_).normalize(),e===an)n[5].setComponents(l+a,d+u,f+x,b+_).normalize();else if(e===Yr)n[5].setComponents(a,u,x,_).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Nn.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Nn.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Nn)}intersectsSprite(t){return Nn.center.set(0,0,0),Nn.radius=.7071067811865476,Nn.applyMatrix4(t.matrixWorld),this.intersectsSphere(Nn)}intersectsSphere(t){const e=this.planes,n=t.center,r=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,Sr.y=r.normal.y>0?t.max.y:t.min.y,Sr.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(Sr)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function mc(){let i=null,t=!1,e=null,n=null;function r(s,o){e(s,o),n=i.requestAnimationFrame(r)}return{start:function(){t!==!0&&e!==null&&(n=i.requestAnimationFrame(r),t=!0)},stop:function(){i.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){i=s}}}function qu(i,t){const e=t.isWebGL2,n=new WeakMap;function r(c,h){const u=c.array,d=c.usage,m=u.byteLength,g=i.createBuffer();i.bindBuffer(h,g),i.bufferData(h,u,d),c.onUploadCallback();let x;if(u instanceof Float32Array)x=i.FLOAT;else if(u instanceof Uint16Array)if(c.isFloat16BufferAttribute)if(e)x=i.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=i.UNSIGNED_SHORT;else if(u instanceof Int16Array)x=i.SHORT;else if(u instanceof Uint32Array)x=i.UNSIGNED_INT;else if(u instanceof Int32Array)x=i.INT;else if(u instanceof Int8Array)x=i.BYTE;else if(u instanceof Uint8Array)x=i.UNSIGNED_BYTE;else if(u instanceof Uint8ClampedArray)x=i.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+u);return{buffer:g,type:x,bytesPerElement:u.BYTES_PER_ELEMENT,version:c.version,size:m}}function s(c,h,u){const d=h.array,m=h._updateRange,g=h.updateRanges;if(i.bindBuffer(u,c),m.count===-1&&g.length===0&&i.bufferSubData(u,0,d),g.length!==0){for(let x=0,f=g.length;x 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,cd=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,hd=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,ud=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,dd=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,fd=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,pd=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,md=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,gd=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,_d=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,vd=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,xd=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,yd=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,Md=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,Sd=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,Ed="gl_FragColor = linearToOutputTexel( gl_FragColor );",bd=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return 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 ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,Td=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,Ad=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,wd=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,Rd=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,Cd=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,Pd=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,Ld=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,Dd=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,Id=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,Nd=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,Ud=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,Od=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,Fd=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,Bd=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,zd=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( LEGACY_LIGHTS ) + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #else + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,Hd=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,Vd=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,Gd=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,kd=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Wd=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,Xd=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,qd=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,Yd=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,jd=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,Zd=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,Kd=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,Jd=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,$d=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,Qd=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,tf=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,ef=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,nf=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,rf=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,sf=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,af=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,of=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,lf=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,cf=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,hf=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,uf=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,df=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,ff=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,pf=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,mf=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,gf=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,_f=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,vf=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,xf=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,yf=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,Mf=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,Sf=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,Ef=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,bf=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,Tf=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,Af=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,wf=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,Rf=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,Cf=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,Pf=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,Lf=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,Df=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,If=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Nf=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,Uf=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,Of=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,Ff=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,Bf=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,zf=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,Hf=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,Vf=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,Gf=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,kf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Wf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Xf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,qf=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const Yf=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,jf=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Zf=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,Kf=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Jf=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,$f=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,Qf=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,tp=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,ep=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,np=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,ip=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,rp=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,sp=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,ap=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,op=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,lp=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,cp=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,hp=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,up=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,dp=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,fp=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,pp=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,mp=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,gp=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,_p=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,vp=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,xp=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,yp=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,Mp=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,Sp=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,Ep=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,bp=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,Tp=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,Ap=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Vt={alphahash_fragment:Yu,alphahash_pars_fragment:ju,alphamap_fragment:Zu,alphamap_pars_fragment:Ku,alphatest_fragment:Ju,alphatest_pars_fragment:$u,aomap_fragment:Qu,aomap_pars_fragment:td,batching_pars_vertex:ed,batching_vertex:nd,begin_vertex:id,beginnormal_vertex:rd,bsdfs:sd,iridescence_fragment:ad,bumpmap_pars_fragment:od,clipping_planes_fragment:ld,clipping_planes_pars_fragment:cd,clipping_planes_pars_vertex:hd,clipping_planes_vertex:ud,color_fragment:dd,color_pars_fragment:fd,color_pars_vertex:pd,color_vertex:md,common:gd,cube_uv_reflection_fragment:_d,defaultnormal_vertex:vd,displacementmap_pars_vertex:xd,displacementmap_vertex:yd,emissivemap_fragment:Md,emissivemap_pars_fragment:Sd,colorspace_fragment:Ed,colorspace_pars_fragment:bd,envmap_fragment:Td,envmap_common_pars_fragment:Ad,envmap_pars_fragment:wd,envmap_pars_vertex:Rd,envmap_physical_pars_fragment:Hd,envmap_vertex:Cd,fog_vertex:Pd,fog_pars_vertex:Ld,fog_fragment:Dd,fog_pars_fragment:Id,gradientmap_pars_fragment:Nd,lightmap_fragment:Ud,lightmap_pars_fragment:Od,lights_lambert_fragment:Fd,lights_lambert_pars_fragment:Bd,lights_pars_begin:zd,lights_toon_fragment:Vd,lights_toon_pars_fragment:Gd,lights_phong_fragment:kd,lights_phong_pars_fragment:Wd,lights_physical_fragment:Xd,lights_physical_pars_fragment:qd,lights_fragment_begin:Yd,lights_fragment_maps:jd,lights_fragment_end:Zd,logdepthbuf_fragment:Kd,logdepthbuf_pars_fragment:Jd,logdepthbuf_pars_vertex:$d,logdepthbuf_vertex:Qd,map_fragment:tf,map_pars_fragment:ef,map_particle_fragment:nf,map_particle_pars_fragment:rf,metalnessmap_fragment:sf,metalnessmap_pars_fragment:af,morphcolor_vertex:of,morphnormal_vertex:lf,morphtarget_pars_vertex:cf,morphtarget_vertex:hf,normal_fragment_begin:uf,normal_fragment_maps:df,normal_pars_fragment:ff,normal_pars_vertex:pf,normal_vertex:mf,normalmap_pars_fragment:gf,clearcoat_normal_fragment_begin:_f,clearcoat_normal_fragment_maps:vf,clearcoat_pars_fragment:xf,iridescence_pars_fragment:yf,opaque_fragment:Mf,packing:Sf,premultiplied_alpha_fragment:Ef,project_vertex:bf,dithering_fragment:Tf,dithering_pars_fragment:Af,roughnessmap_fragment:wf,roughnessmap_pars_fragment:Rf,shadowmap_pars_fragment:Cf,shadowmap_pars_vertex:Pf,shadowmap_vertex:Lf,shadowmask_pars_fragment:Df,skinbase_vertex:If,skinning_pars_vertex:Nf,skinning_vertex:Uf,skinnormal_vertex:Of,specularmap_fragment:Ff,specularmap_pars_fragment:Bf,tonemapping_fragment:zf,tonemapping_pars_fragment:Hf,transmission_fragment:Vf,transmission_pars_fragment:Gf,uv_pars_fragment:kf,uv_pars_vertex:Wf,uv_vertex:Xf,worldpos_vertex:qf,background_vert:Yf,background_frag:jf,backgroundCube_vert:Zf,backgroundCube_frag:Kf,cube_vert:Jf,cube_frag:$f,depth_vert:Qf,depth_frag:tp,distanceRGBA_vert:ep,distanceRGBA_frag:np,equirect_vert:ip,equirect_frag:rp,linedashed_vert:sp,linedashed_frag:ap,meshbasic_vert:op,meshbasic_frag:lp,meshlambert_vert:cp,meshlambert_frag:hp,meshmatcap_vert:up,meshmatcap_frag:dp,meshnormal_vert:fp,meshnormal_frag:pp,meshphong_vert:mp,meshphong_frag:gp,meshphysical_vert:_p,meshphysical_frag:vp,meshtoon_vert:xp,meshtoon_frag:yp,points_vert:Mp,points_frag:Sp,shadow_vert:Ep,shadow_frag:bp,sprite_vert:Tp,sprite_frag:Ap},ht={common:{diffuse:{value:new Ut(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Xt},alphaMap:{value:null},alphaMapTransform:{value:new Xt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Xt}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Xt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Xt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Xt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Xt},normalScale:{value:new tt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Xt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Xt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Xt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Xt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ut(16777215)}},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:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{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:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ut(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Xt},alphaTest:{value:0},uvTransform:{value:new Xt}},sprite:{diffuse:{value:new Ut(16777215)},opacity:{value:1},center:{value:new tt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Xt},alphaMap:{value:null},alphaMapTransform:{value:new Xt},alphaTest:{value:0}}},Ye={basic:{uniforms:Ae([ht.common,ht.specularmap,ht.envmap,ht.aomap,ht.lightmap,ht.fog]),vertexShader:Vt.meshbasic_vert,fragmentShader:Vt.meshbasic_frag},lambert:{uniforms:Ae([ht.common,ht.specularmap,ht.envmap,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.fog,ht.lights,{emissive:{value:new Ut(0)}}]),vertexShader:Vt.meshlambert_vert,fragmentShader:Vt.meshlambert_frag},phong:{uniforms:Ae([ht.common,ht.specularmap,ht.envmap,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.fog,ht.lights,{emissive:{value:new Ut(0)},specular:{value:new Ut(1118481)},shininess:{value:30}}]),vertexShader:Vt.meshphong_vert,fragmentShader:Vt.meshphong_frag},standard:{uniforms:Ae([ht.common,ht.envmap,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.roughnessmap,ht.metalnessmap,ht.fog,ht.lights,{emissive:{value:new Ut(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Vt.meshphysical_vert,fragmentShader:Vt.meshphysical_frag},toon:{uniforms:Ae([ht.common,ht.aomap,ht.lightmap,ht.emissivemap,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.gradientmap,ht.fog,ht.lights,{emissive:{value:new Ut(0)}}]),vertexShader:Vt.meshtoon_vert,fragmentShader:Vt.meshtoon_frag},matcap:{uniforms:Ae([ht.common,ht.bumpmap,ht.normalmap,ht.displacementmap,ht.fog,{matcap:{value:null}}]),vertexShader:Vt.meshmatcap_vert,fragmentShader:Vt.meshmatcap_frag},points:{uniforms:Ae([ht.points,ht.fog]),vertexShader:Vt.points_vert,fragmentShader:Vt.points_frag},dashed:{uniforms:Ae([ht.common,ht.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Vt.linedashed_vert,fragmentShader:Vt.linedashed_frag},depth:{uniforms:Ae([ht.common,ht.displacementmap]),vertexShader:Vt.depth_vert,fragmentShader:Vt.depth_frag},normal:{uniforms:Ae([ht.common,ht.bumpmap,ht.normalmap,ht.displacementmap,{opacity:{value:1}}]),vertexShader:Vt.meshnormal_vert,fragmentShader:Vt.meshnormal_frag},sprite:{uniforms:Ae([ht.sprite,ht.fog]),vertexShader:Vt.sprite_vert,fragmentShader:Vt.sprite_frag},background:{uniforms:{uvTransform:{value:new Xt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Vt.background_vert,fragmentShader:Vt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Vt.backgroundCube_vert,fragmentShader:Vt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Vt.cube_vert,fragmentShader:Vt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Vt.equirect_vert,fragmentShader:Vt.equirect_frag},distanceRGBA:{uniforms:Ae([ht.common,ht.displacementmap,{referencePosition:{value:new C},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Vt.distanceRGBA_vert,fragmentShader:Vt.distanceRGBA_frag},shadow:{uniforms:Ae([ht.lights,ht.fog,{color:{value:new Ut(0)},opacity:{value:1}}]),vertexShader:Vt.shadow_vert,fragmentShader:Vt.shadow_frag}};Ye.physical={uniforms:Ae([Ye.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Xt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Xt},clearcoatNormalScale:{value:new tt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Xt},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Xt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Xt},sheen:{value:0},sheenColor:{value:new Ut(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Xt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Xt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Xt},transmissionSamplerSize:{value:new tt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Xt},attenuationDistance:{value:0},attenuationColor:{value:new Ut(0)},specularColor:{value:new Ut(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Xt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Xt},anisotropyVector:{value:new tt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Xt}}]),vertexShader:Vt.meshphysical_vert,fragmentShader:Vt.meshphysical_frag};const Er={r:0,b:0,g:0};function wp(i,t,e,n,r,s,o){const a=new Ut(0);let l=s===!0?0:1,c,h,u=null,d=0,m=null;function g(f,p){let E=!1,_=p.isScene===!0?p.background:null;_&&_.isTexture&&(_=(p.backgroundBlurriness>0?e:t).get(_)),_===null?x(a,l):_&&_.isColor&&(x(_,1),E=!0);const b=i.xr.getEnvironmentBlendMode();b==="additive"?n.buffers.color.setClear(0,0,0,1,o):b==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,o),(i.autoClear||E)&&i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Qr)?(h===void 0&&(h=new Ce(new $i(1,1,1),new An({name:"BackgroundCubeMaterial",uniforms:bi(Ye.backgroundCube.uniforms),vertexShader:Ye.backgroundCube.vertexShader,fragmentShader:Ye.backgroundCube.fragmentShader,side:Pe,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(I,L,P){this.matrixWorld.copyPosition(P.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=p.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,h.material.toneMapped=Qt.getTransfer(_.colorSpace)!==ne,(u!==_||d!==_.version||m!==i.toneMapping)&&(h.material.needsUpdate=!0,u=_,d=_.version,m=i.toneMapping),h.layers.enableAll(),f.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(c===void 0&&(c=new Ce(new Qi(2,2),new An({name:"BackgroundMaterial",uniforms:bi(Ye.background.uniforms),vertexShader:Ye.background.vertexShader,fragmentShader:Ye.background.fragmentShader,side:bn,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=_,c.material.uniforms.backgroundIntensity.value=p.backgroundIntensity,c.material.toneMapped=Qt.getTransfer(_.colorSpace)!==ne,_.matrixAutoUpdate===!0&&_.updateMatrix(),c.material.uniforms.uvTransform.value.copy(_.matrix),(u!==_||d!==_.version||m!==i.toneMapping)&&(c.material.needsUpdate=!0,u=_,d=_.version,m=i.toneMapping),c.layers.enableAll(),f.unshift(c,c.geometry,c.material,0,0,null))}function x(f,p){f.getRGB(Er,dc(i)),n.buffers.color.setClear(Er.r,Er.g,Er.b,p,o)}return{getClearColor:function(){return a},setClearColor:function(f,p=1){a.set(f),l=p,x(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(f){l=f,x(a,l)},render:g}}function Rp(i,t,e,n){const r=i.getParameter(i.MAX_VERTEX_ATTRIBS),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),o=n.isWebGL2||s!==null,a={},l=f(null);let c=l,h=!1;function u(D,z,O,Y,X){let k=!1;if(o){const $=x(Y,O,z);c!==$&&(c=$,m(c.object)),k=p(D,Y,O,X),k&&E(D,Y,O,X)}else{const $=z.wireframe===!0;(c.geometry!==Y.id||c.program!==O.id||c.wireframe!==$)&&(c.geometry=Y.id,c.program=O.id,c.wireframe=$,k=!0)}X!==null&&e.update(X,i.ELEMENT_ARRAY_BUFFER),(k||h)&&(h=!1,V(D,z,O,Y),X!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.get(X).buffer))}function d(){return n.isWebGL2?i.createVertexArray():s.createVertexArrayOES()}function m(D){return n.isWebGL2?i.bindVertexArray(D):s.bindVertexArrayOES(D)}function g(D){return n.isWebGL2?i.deleteVertexArray(D):s.deleteVertexArrayOES(D)}function x(D,z,O){const Y=O.wireframe===!0;let X=a[D.id];X===void 0&&(X={},a[D.id]=X);let k=X[z.id];k===void 0&&(k={},X[z.id]=k);let $=k[Y];return $===void 0&&($=f(d()),k[Y]=$),$}function f(D){const z=[],O=[],Y=[];for(let X=0;X=0){const G=X[mt];let nt=k[mt];if(nt===void 0&&(mt==="instanceMatrix"&&D.instanceMatrix&&(nt=D.instanceMatrix),mt==="instanceColor"&&D.instanceColor&&(nt=D.instanceColor)),G===void 0||G.attribute!==nt||nt&&G.data!==nt.data)return!0;$++}return c.attributesNum!==$||c.index!==Y}function E(D,z,O,Y){const X={},k=z.attributes;let $=0;const K=O.getAttributes();for(const mt in K)if(K[mt].location>=0){let G=k[mt];G===void 0&&(mt==="instanceMatrix"&&D.instanceMatrix&&(G=D.instanceMatrix),mt==="instanceColor"&&D.instanceColor&&(G=D.instanceColor));const nt={};nt.attribute=G,G&&G.data&&(nt.data=G.data),X[mt]=nt,$++}c.attributes=X,c.attributesNum=$,c.index=Y}function _(){const D=c.newAttributes;for(let z=0,O=D.length;z=0){let Lt=X[K];if(Lt===void 0&&(K==="instanceMatrix"&&D.instanceMatrix&&(Lt=D.instanceMatrix),K==="instanceColor"&&D.instanceColor&&(Lt=D.instanceColor)),Lt!==void 0){const G=Lt.normalized,nt=Lt.itemSize,gt=e.get(Lt);if(gt===void 0)continue;const Mt=gt.buffer,bt=gt.type,xt=gt.bytesPerElement,Ot=n.isWebGL2===!0&&(bt===i.INT||bt===i.UNSIGNED_INT||Lt.gpuType===Kl);if(Lt.isInterleavedBufferAttribute){const At=Lt.data,R=At.stride,ct=Lt.offset;if(At.isInstancedInterleavedBuffer){for(let W=0;W0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";P="mediump"}return P==="mediump"&&i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext!="undefined"&&i.constructor.name==="WebGL2RenderingContext";let a=e.precision!==void 0?e.precision:"highp";const l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const c=o||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,u=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),d=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=i.getParameter(i.MAX_TEXTURE_SIZE),g=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),x=i.getParameter(i.MAX_VERTEX_ATTRIBS),f=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),p=i.getParameter(i.MAX_VARYING_VECTORS),E=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),_=d>0,b=o||t.has("OES_texture_float"),I=_&&b,L=o?i.getParameter(i.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:c,getMaxAnisotropy:r,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:g,maxAttributes:x,maxVertexUniforms:f,maxVaryings:p,maxFragmentUniforms:E,vertexTextures:_,floatFragmentTextures:b,floatVertexTextures:I,maxSamples:L}}function Lp(i){const t=this;let e=null,n=0,r=!1,s=!1;const o=new _n,a=new Xt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(u,d){const m=u.length!==0||d||n!==0||r;return r=d,n=u.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(u,d){e=h(u,d,0)},this.setState=function(u,d,m){const g=u.clippingPlanes,x=u.clipIntersection,f=u.clipShadows,p=i.get(u);if(!r||g===null||g.length===0||s&&!f)s?h(null):c();else{const E=s?0:n,_=E*4;let b=p.clippingState||null;l.value=b,b=h(g,d,_,m);for(let I=0;I!==_;++I)b[I]=e[I];p.clippingState=b,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=E}};function c(){l.value!==e&&(l.value=e,l.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(u,d,m,g){const x=u!==null?u.length:0;let f=null;if(x!==0){if(f=l.value,g!==!0||f===null){const p=m+x*4,E=d.matrixWorldInverse;a.getNormalMatrix(E),(f===null||f.length0){const c=new ku(l.height);return c.fromEquirectangularTexture(i,o),t.set(o,c),o.addEventListener("dispose",r),e(c.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const l=t.get(a);l!==void 0&&(t.delete(a),l.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}class gc extends fc{constructor(t=-1,e=1,n=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,r,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=n-t,o=n+t,a=r+e,l=r-e;if(this.view!==null&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=c*this.view.offsetX,o=s+c*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}}const mi=4,Wo=[.125,.215,.35,.446,.526,.582],Fn=20,Us=new gc,Xo=new Ut;let Os=null,Fs=0,Bs=0;const Un=(1+Math.sqrt(5))/2,ci=1/Un,qo=[new C(1,1,1),new C(-1,1,1),new C(1,1,-1),new C(-1,1,-1),new C(0,Un,ci),new C(0,Un,-ci),new C(ci,0,Un),new C(-ci,0,Un),new C(Un,ci,0),new C(-Un,ci,0)];class Yo{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,r=100){Os=this._renderer.getRenderTarget(),Fs=this._renderer.getActiveCubeFace(),Bs=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,r,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Ko(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Zo(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?_:0,_,_),h.setRenderTarget(r),x&&h.render(g,a),h.render(t,a)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=d,h.autoClear=u,t.background=f}_textureToCubeUV(t,e){const n=this._renderer,r=t.mapping===yi||t.mapping===Mi;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=Ko()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Zo());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new Ce(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=t;const l=this._cubeSize;br(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(o,Us)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let r=1;rFn&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${Fn}`);const p=[];let E=0;for(let P=0;P_-mi?r-_+mi:0),L=4*(this._cubeSize-b);br(e,I,L,3*b,2*b),l.setRenderTarget(e),l.render(u,Us)}}function Ip(i){const t=[],e=[],n=[];let r=i;const s=i-mi+1+Wo.length;for(let o=0;oi-mi?l=Wo[o-i+mi-1]:o===0&&(l=0),n.push(l);const c=1/(a-2),h=-c,u=1+c,d=[h,h,u,h,u,u,h,h,u,u,h,u],m=6,g=6,x=3,f=2,p=1,E=new Float32Array(x*g*m),_=new Float32Array(f*g*m),b=new Float32Array(p*g*m);for(let L=0;L2?0:-1,lt=[P,V,0,P+2/3,V,0,P+2/3,V+1,0,P,V,0,P+2/3,V+1,0,P,V+1,0];E.set(lt,x*g*L),_.set(d,f*g*L);const y=[L,L,L,L,L,L];b.set(y,p*g*L)}const I=new ye;I.setAttribute("position",new ze(E,x)),I.setAttribute("uv",new ze(_,f)),I.setAttribute("faceIndex",new ze(b,p)),t.push(I),r>mi&&r--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function jo(i,t,e){const n=new kn(i,t,e);return n.texture.mapping=Qr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function br(i,t,e,n,r){i.viewport.set(t,e,n,r),i.scissor.set(t,e,n,r)}function Np(i,t,e){const n=new Float32Array(Fn),r=new C(0,1,0);return new An({name:"SphericalGaussianBlur",defines:{n:Fn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:xa(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:yn,depthTest:!1,depthWrite:!1})}function Zo(){return new An({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:xa(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:yn,depthTest:!1,depthWrite:!1})}function Ko(){return new An({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:xa(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:yn,depthTest:!1,depthWrite:!1})}function xa(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function Up(i){let t=new WeakMap,e=null;function n(a){if(a&&a.isTexture){const l=a.mapping,c=l===Qs||l===ta,h=l===yi||l===Mi;if(c||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let u=t.get(a);return e===null&&(e=new Yo(i)),u=c?e.fromEquirectangular(a,u):e.fromCubemap(a,u),t.set(a,u),u.texture}else{if(t.has(a))return t.get(a).texture;{const u=a.image;if(c&&u&&u.height>0||h&&u&&r(u)){e===null&&(e=new Yo(i));const d=c?e.fromEquirectangular(a):e.fromCubemap(a);return t.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function r(a){let l=0;const c=6;for(let h=0;ht.maxTextureSize&&(y=Math.ceil(lt/t.maxTextureSize),lt=t.maxTextureSize);const A=new Float32Array(lt*y*4*g),Z=new lc(A,lt,y,g);Z.type=je,Z.needsUpdate=!0;const rt=V*4;for(let z=0;z0)return i;const r=t*e;let s=Jo[r];if(s===void 0&&(s=new Float32Array(r),Jo[r]=s),t!==0){n.toArray(s,0);for(let o=1,a=0;o!==t;++o)a+=e,i[o].toArray(s,a)}return s}function de(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e":" "} ${a}: ${e[o]}`)}return n.join(` +`)}function Fm(i){const t=Qt.getPrimaries(Qt.workingColorSpace),e=Qt.getPrimaries(i);let n;switch(t===e?n="":t===qr&&e===Xr?n="LinearDisplayP3ToLinearSRGB":t===Xr&&e===qr&&(n="LinearSRGBToLinearDisplayP3"),i){case on:case ts:return[n,"LinearTransferOETF"];case ve:case pa:return[n,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",i),[n,"LinearTransferOETF"]}}function rl(i,t,e){const n=i.getShaderParameter(t,i.COMPILE_STATUS),r=i.getShaderInfoLog(t).trim();if(n&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return e.toUpperCase()+` + +`+r+` + +`+Om(i.getShaderSource(t),o)}else return r}function Bm(i,t){const e=Fm(t);return`vec4 ${i}( vec4 value ) { return ${e[0]}( ${e[1]}( value ) ); }`}function zm(i,t){let e;switch(t){case Nh:e="Linear";break;case Uh:e="Reinhard";break;case Oh:e="OptimizedCineon";break;case Fh:e="ACESFilmic";break;case zh:e="AgX";break;case Bh:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+i+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Hm(i){return[i.extensionDerivatives||i.envMapCubeUVHeight||i.bumpMap||i.normalMapTangentSpace||i.clearcoatNormalMap||i.flatShading||i.alphaToCoverage||i.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(i.extensionFragDepth||i.logarithmicDepthBuffer)&&i.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",i.extensionDrawBuffers&&i.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(i.extensionShaderTextureLOD||i.envMap||i.transmission)&&i.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(gi).join(` +`)}function Vm(i){return[i.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",i.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(gi).join(` +`)}function Gm(i){const t=[];for(const e in i){const n=i[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(` +`)}function km(i,t){const e={},n=i.getProgramParameter(t,i.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function sa(i){return i.replace(Wm,qm)}const Xm=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function qm(i,t){let e=Vt[t];if(e===void 0){const n=Xm.get(t);if(n!==void 0)e=Vt[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,n);else throw new Error("Can not resolve #include <"+t+">")}return sa(e)}const Ym=/#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 ol(i){return i.replace(Ym,jm)}function jm(i,t,e,n){let r="";for(let s=parseInt(t);s0&&(p+=` +`),E=[m,"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,x].filter(gi).join(` +`),E.length>0&&(E+=` +`)):(p=[ll(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,x,e.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",e.batching?"#define USE_BATCHING":"",e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.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_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," 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",` +`].filter(gi).join(` +`),E=[m,ll(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,x,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+h:"",e.envMap?"#define "+u:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Mn?"#define TONE_MAPPING":"",e.toneMapping!==Mn?Vt.tonemapping_pars_fragment:"",e.toneMapping!==Mn?zm("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Vt.colorspace_pars_fragment,Bm("linearToOutputTexel",e.outputColorSpace),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` +`].filter(gi).join(` +`)),o=sa(o),o=sl(o,e),o=al(o,e),a=sa(a),a=sl(a,e),a=al(a,e),o=ol(o),a=ol(a),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(_=`#version 300 es +`,p=[g,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+p,E=["precision mediump sampler2DArray;","#define varying in",e.glslVersion===bo?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===bo?"":"#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(` +`)+` +`+E);const b=_+p+o,I=_+E+a,L=il(r,r.VERTEX_SHADER,b),P=il(r,r.FRAGMENT_SHADER,I);r.attachShader(f,L),r.attachShader(f,P),e.index0AttributeName!==void 0?r.bindAttribLocation(f,0,e.index0AttributeName):e.morphTargets===!0&&r.bindAttribLocation(f,0,"position"),r.linkProgram(f);function V(Z){if(i.debug.checkShaderErrors){const rt=r.getProgramInfoLog(f).trim(),D=r.getShaderInfoLog(L).trim(),z=r.getShaderInfoLog(P).trim();let O=!0,Y=!0;if(r.getProgramParameter(f,r.LINK_STATUS)===!1)if(O=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(r,f,L,P);else{const X=rl(r,L,"vertex"),k=rl(r,P,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(f,r.VALIDATE_STATUS)+` + +Material Name: `+Z.name+` +Material Type: `+Z.type+` + +Program Info Log: `+rt+` +`+X+` +`+k)}else rt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",rt):(D===""||z==="")&&(Y=!1);Y&&(Z.diagnostics={runnable:O,programLog:rt,vertexShader:{log:D,prefix:p},fragmentShader:{log:z,prefix:E}})}r.deleteShader(L),r.deleteShader(P),lt=new zr(r,f),y=km(r,f)}let lt;this.getUniforms=function(){return lt===void 0&&V(this),lt};let y;this.getAttributes=function(){return y===void 0&&V(this),y};let A=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return A===!1&&(A=r.getProgramParameter(f,Nm)),A},this.destroy=function(){n.releaseStatesOfProgram(this),r.deleteProgram(f),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=Um++,this.cacheKey=t,this.usedTimes=1,this.program=f,this.vertexShader=L,this.fragmentShader=P,this}let eg=0;class ng{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,r=this._getShaderStage(e),s=this._getShaderStage(n),o=this._getShaderCacheForMaterial(t);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return n===void 0&&(n=new ig(t),e.set(t,n)),n}}class ig{constructor(t){this.id=eg++,this.code=t,this.usedTimes=0}}function rg(i,t,e,n,r,s,o){const a=new ga,l=new ng,c=new Set,h=[],u=r.isWebGL2,d=r.logarithmicDepthBuffer,m=r.vertexTextures;let g=r.precision;const x={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"};function f(y){return c.add(y),y===0?"uv":`uv${y}`}function p(y,A,Z,rt,D){const z=rt.fog,O=D.geometry,Y=y.isMeshStandardMaterial?rt.environment:null,X=(y.isMeshStandardMaterial?e:t).get(y.envMap||Y),k=X&&X.mapping===Qr?X.image.height:null,$=x[y.type];y.precision!==null&&(g=r.getMaxPrecision(y.precision),g!==y.precision&&console.warn("THREE.WebGLProgram.getParameters:",y.precision,"not supported, using",g,"instead."));const K=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,mt=K!==void 0?K.length:0;let Lt=0;O.morphAttributes.position!==void 0&&(Lt=1),O.morphAttributes.normal!==void 0&&(Lt=2),O.morphAttributes.color!==void 0&&(Lt=3);let G,nt,gt,Mt;if($){const qt=Ye[$];G=qt.vertexShader,nt=qt.fragmentShader}else G=y.vertexShader,nt=y.fragmentShader,l.update(y),gt=l.getVertexShaderID(y),Mt=l.getFragmentShaderID(y);const bt=i.getRenderTarget(),xt=D.isInstancedMesh===!0,Ot=D.isBatchedMesh===!0,At=!!y.map,R=!!y.matcap,ct=!!X,W=!!y.aoMap,at=!!y.lightMap,q=!!y.bumpMap,Et=!!y.normalMap,ft=!!y.displacementMap,M=!!y.emissiveMap,v=!!y.metalnessMap,N=!!y.roughnessMap,et=y.anisotropy>0,J=y.clearcoat>0,j=y.iridescence>0,yt=y.sheen>0,ut=y.transmission>0,_t=et&&!!y.anisotropyMap,Ct=J&&!!y.clearcoatMap,Ft=J&&!!y.clearcoatNormalMap,Q=J&&!!y.clearcoatRoughnessMap,jt=j&&!!y.iridescenceMap,Gt=j&&!!y.iridescenceThicknessMap,It=yt&&!!y.sheenColorMap,wt=yt&&!!y.sheenRoughnessMap,pt=!!y.specularMap,zt=!!y.specularColorMap,w=!!y.specularIntensityMap,ot=ut&&!!y.transmissionMap,dt=ut&&!!y.thicknessMap,Rt=!!y.gradientMap,T=!!y.alphaMap,st=y.alphaTest>0,it=!!y.alphaHash,St=!!y.extensions;let Pt=Mn;y.toneMapped&&(bt===null||bt.isXRRenderTarget===!0)&&(Pt=i.toneMapping);const Zt={isWebGL2:u,shaderID:$,shaderType:y.type,shaderName:y.name,vertexShader:G,fragmentShader:nt,defines:y.defines,customVertexShaderID:gt,customFragmentShaderID:Mt,isRawShaderMaterial:y.isRawShaderMaterial===!0,glslVersion:y.glslVersion,precision:g,batching:Ot,instancing:xt,instancingColor:xt&&D.instanceColor!==null,supportsVertexTextures:m,outputColorSpace:bt===null?i.outputColorSpace:bt.isXRRenderTarget===!0?bt.texture.colorSpace:on,alphaToCoverage:!!y.alphaToCoverage,map:At,matcap:R,envMap:ct,envMapMode:ct&&X.mapping,envMapCubeUVHeight:k,aoMap:W,lightMap:at,bumpMap:q,normalMap:Et,displacementMap:m&&ft,emissiveMap:M,normalMapObjectSpace:Et&&y.normalMapType===$h,normalMapTangentSpace:Et&&y.normalMapType===fa,metalnessMap:v,roughnessMap:N,anisotropy:et,anisotropyMap:_t,clearcoat:J,clearcoatMap:Ct,clearcoatNormalMap:Ft,clearcoatRoughnessMap:Q,iridescence:j,iridescenceMap:jt,iridescenceThicknessMap:Gt,sheen:yt,sheenColorMap:It,sheenRoughnessMap:wt,specularMap:pt,specularColorMap:zt,specularIntensityMap:w,transmission:ut,transmissionMap:ot,thicknessMap:dt,gradientMap:Rt,opaque:y.transparent===!1&&y.blending===vi&&y.alphaToCoverage===!1,alphaMap:T,alphaTest:st,alphaHash:it,combine:y.combine,mapUv:At&&f(y.map.channel),aoMapUv:W&&f(y.aoMap.channel),lightMapUv:at&&f(y.lightMap.channel),bumpMapUv:q&&f(y.bumpMap.channel),normalMapUv:Et&&f(y.normalMap.channel),displacementMapUv:ft&&f(y.displacementMap.channel),emissiveMapUv:M&&f(y.emissiveMap.channel),metalnessMapUv:v&&f(y.metalnessMap.channel),roughnessMapUv:N&&f(y.roughnessMap.channel),anisotropyMapUv:_t&&f(y.anisotropyMap.channel),clearcoatMapUv:Ct&&f(y.clearcoatMap.channel),clearcoatNormalMapUv:Ft&&f(y.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Q&&f(y.clearcoatRoughnessMap.channel),iridescenceMapUv:jt&&f(y.iridescenceMap.channel),iridescenceThicknessMapUv:Gt&&f(y.iridescenceThicknessMap.channel),sheenColorMapUv:It&&f(y.sheenColorMap.channel),sheenRoughnessMapUv:wt&&f(y.sheenRoughnessMap.channel),specularMapUv:pt&&f(y.specularMap.channel),specularColorMapUv:zt&&f(y.specularColorMap.channel),specularIntensityMapUv:w&&f(y.specularIntensityMap.channel),transmissionMapUv:ot&&f(y.transmissionMap.channel),thicknessMapUv:dt&&f(y.thicknessMap.channel),alphaMapUv:T&&f(y.alphaMap.channel),vertexTangents:!!O.attributes.tangent&&(Et||et),vertexColors:y.vertexColors,vertexAlphas:y.vertexColors===!0&&!!O.attributes.color&&O.attributes.color.itemSize===4,pointsUvs:D.isPoints===!0&&!!O.attributes.uv&&(At||T),fog:!!z,useFog:y.fog===!0,fogExp2:!!z&&z.isFogExp2,flatShading:y.flatShading===!0,sizeAttenuation:y.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:D.isSkinnedMesh===!0,morphTargets:O.morphAttributes.position!==void 0,morphNormals:O.morphAttributes.normal!==void 0,morphColors:O.morphAttributes.color!==void 0,morphTargetsCount:mt,morphTextureStride:Lt,numDirLights:A.directional.length,numPointLights:A.point.length,numSpotLights:A.spot.length,numSpotLightMaps:A.spotLightMap.length,numRectAreaLights:A.rectArea.length,numHemiLights:A.hemi.length,numDirLightShadows:A.directionalShadowMap.length,numPointLightShadows:A.pointShadowMap.length,numSpotLightShadows:A.spotShadowMap.length,numSpotLightShadowsWithMaps:A.numSpotLightShadowsWithMaps,numLightProbes:A.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:y.dithering,shadowMapEnabled:i.shadowMap.enabled&&Z.length>0,shadowMapType:i.shadowMap.type,toneMapping:Pt,useLegacyLights:i._useLegacyLights,decodeVideoTexture:At&&y.map.isVideoTexture===!0&&Qt.getTransfer(y.map.colorSpace)===ne,premultipliedAlpha:y.premultipliedAlpha,doubleSided:y.side===ke,flipSided:y.side===Pe,useDepthPacking:y.depthPacking>=0,depthPacking:y.depthPacking||0,index0AttributeName:y.index0AttributeName,extensionDerivatives:St&&y.extensions.derivatives===!0,extensionFragDepth:St&&y.extensions.fragDepth===!0,extensionDrawBuffers:St&&y.extensions.drawBuffers===!0,extensionShaderTextureLOD:St&&y.extensions.shaderTextureLOD===!0,extensionClipCullDistance:St&&y.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:St&&y.extensions.multiDraw===!0&&n.has("WEBGL_multi_draw"),rendererExtensionFragDepth:u||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||n.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:y.customProgramCacheKey()};return Zt.vertexUv1s=c.has(1),Zt.vertexUv2s=c.has(2),Zt.vertexUv3s=c.has(3),c.clear(),Zt}function E(y){const A=[];if(y.shaderID?A.push(y.shaderID):(A.push(y.customVertexShaderID),A.push(y.customFragmentShaderID)),y.defines!==void 0)for(const Z in y.defines)A.push(Z),A.push(y.defines[Z]);return y.isRawShaderMaterial===!1&&(_(A,y),b(A,y),A.push(i.outputColorSpace)),A.push(y.customProgramCacheKey),A.join()}function _(y,A){y.push(A.precision),y.push(A.outputColorSpace),y.push(A.envMapMode),y.push(A.envMapCubeUVHeight),y.push(A.mapUv),y.push(A.alphaMapUv),y.push(A.lightMapUv),y.push(A.aoMapUv),y.push(A.bumpMapUv),y.push(A.normalMapUv),y.push(A.displacementMapUv),y.push(A.emissiveMapUv),y.push(A.metalnessMapUv),y.push(A.roughnessMapUv),y.push(A.anisotropyMapUv),y.push(A.clearcoatMapUv),y.push(A.clearcoatNormalMapUv),y.push(A.clearcoatRoughnessMapUv),y.push(A.iridescenceMapUv),y.push(A.iridescenceThicknessMapUv),y.push(A.sheenColorMapUv),y.push(A.sheenRoughnessMapUv),y.push(A.specularMapUv),y.push(A.specularColorMapUv),y.push(A.specularIntensityMapUv),y.push(A.transmissionMapUv),y.push(A.thicknessMapUv),y.push(A.combine),y.push(A.fogExp2),y.push(A.sizeAttenuation),y.push(A.morphTargetsCount),y.push(A.morphAttributeCount),y.push(A.numDirLights),y.push(A.numPointLights),y.push(A.numSpotLights),y.push(A.numSpotLightMaps),y.push(A.numHemiLights),y.push(A.numRectAreaLights),y.push(A.numDirLightShadows),y.push(A.numPointLightShadows),y.push(A.numSpotLightShadows),y.push(A.numSpotLightShadowsWithMaps),y.push(A.numLightProbes),y.push(A.shadowMapType),y.push(A.toneMapping),y.push(A.numClippingPlanes),y.push(A.numClipIntersection),y.push(A.depthPacking)}function b(y,A){a.disableAll(),A.isWebGL2&&a.enable(0),A.supportsVertexTextures&&a.enable(1),A.instancing&&a.enable(2),A.instancingColor&&a.enable(3),A.matcap&&a.enable(4),A.envMap&&a.enable(5),A.normalMapObjectSpace&&a.enable(6),A.normalMapTangentSpace&&a.enable(7),A.clearcoat&&a.enable(8),A.iridescence&&a.enable(9),A.alphaTest&&a.enable(10),A.vertexColors&&a.enable(11),A.vertexAlphas&&a.enable(12),A.vertexUv1s&&a.enable(13),A.vertexUv2s&&a.enable(14),A.vertexUv3s&&a.enable(15),A.vertexTangents&&a.enable(16),A.anisotropy&&a.enable(17),A.alphaHash&&a.enable(18),A.batching&&a.enable(19),y.push(a.mask),a.disableAll(),A.fog&&a.enable(0),A.useFog&&a.enable(1),A.flatShading&&a.enable(2),A.logarithmicDepthBuffer&&a.enable(3),A.skinning&&a.enable(4),A.morphTargets&&a.enable(5),A.morphNormals&&a.enable(6),A.morphColors&&a.enable(7),A.premultipliedAlpha&&a.enable(8),A.shadowMapEnabled&&a.enable(9),A.useLegacyLights&&a.enable(10),A.doubleSided&&a.enable(11),A.flipSided&&a.enable(12),A.useDepthPacking&&a.enable(13),A.dithering&&a.enable(14),A.transmission&&a.enable(15),A.sheen&&a.enable(16),A.opaque&&a.enable(17),A.pointsUvs&&a.enable(18),A.decodeVideoTexture&&a.enable(19),A.alphaToCoverage&&a.enable(20),y.push(a.mask)}function I(y){const A=x[y.type];let Z;if(A){const rt=Ye[A];Z=zu.clone(rt.uniforms)}else Z=y.uniforms;return Z}function L(y,A){let Z;for(let rt=0,D=h.length;rt0?n.push(p):m.transparent===!0?r.push(p):e.push(p)}function l(u,d,m,g,x,f){const p=o(u,d,m,g,x,f);m.transmission>0?n.unshift(p):m.transparent===!0?r.unshift(p):e.unshift(p)}function c(u,d){e.length>1&&e.sort(u||ag),n.length>1&&n.sort(d||cl),r.length>1&&r.sort(d||cl)}function h(){for(let u=t,d=i.length;u=s.length?(o=new hl,s.push(o)):o=s[r],o}function e(){i=new WeakMap}return{get:t,dispose:e}}function lg(){const i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new C,color:new Ut};break;case"SpotLight":e={position:new C,direction:new C,color:new Ut,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new C,color:new Ut,distance:0,decay:0};break;case"HemisphereLight":e={direction:new C,skyColor:new Ut,groundColor:new Ut};break;case"RectAreaLight":e={color:new Ut,position:new C,halfWidth:new C,halfHeight:new C};break}return i[t.id]=e,e}}}function cg(){const i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tt};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tt};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tt,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}let hg=0;function ug(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function dg(i,t){const e=new lg,n=cg(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)r.probe.push(new C);const s=new C,o=new Yt,a=new Yt;function l(h,u){let d=0,m=0,g=0;for(let Z=0;Z<9;Z++)r.probe[Z].set(0,0,0);let x=0,f=0,p=0,E=0,_=0,b=0,I=0,L=0,P=0,V=0,lt=0;h.sort(ug);const y=u===!0?Math.PI:1;for(let Z=0,rt=h.length;Z0&&(t.isWebGL2?i.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=ht.LTC_FLOAT_1,r.rectAreaLTC2=ht.LTC_FLOAT_2):(r.rectAreaLTC1=ht.LTC_HALF_1,r.rectAreaLTC2=ht.LTC_HALF_2):i.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=ht.LTC_FLOAT_1,r.rectAreaLTC2=ht.LTC_FLOAT_2):i.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=ht.LTC_HALF_1,r.rectAreaLTC2=ht.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=d,r.ambient[1]=m,r.ambient[2]=g;const A=r.hash;(A.directionalLength!==x||A.pointLength!==f||A.spotLength!==p||A.rectAreaLength!==E||A.hemiLength!==_||A.numDirectionalShadows!==b||A.numPointShadows!==I||A.numSpotShadows!==L||A.numSpotMaps!==P||A.numLightProbes!==lt)&&(r.directional.length=x,r.spot.length=p,r.rectArea.length=E,r.point.length=f,r.hemi.length=_,r.directionalShadow.length=b,r.directionalShadowMap.length=b,r.pointShadow.length=I,r.pointShadowMap.length=I,r.spotShadow.length=L,r.spotShadowMap.length=L,r.directionalShadowMatrix.length=b,r.pointShadowMatrix.length=I,r.spotLightMatrix.length=L+P-V,r.spotLightMap.length=P,r.numSpotLightShadowsWithMaps=V,r.numLightProbes=lt,A.directionalLength=x,A.pointLength=f,A.spotLength=p,A.rectAreaLength=E,A.hemiLength=_,A.numDirectionalShadows=b,A.numPointShadows=I,A.numSpotShadows=L,A.numSpotMaps=P,A.numLightProbes=lt,r.version=hg++)}function c(h,u){let d=0,m=0,g=0,x=0,f=0;const p=u.matrixWorldInverse;for(let E=0,_=h.length;E<_;E++){const b=h[E];if(b.isDirectionalLight){const I=r.directional[d];I.direction.setFromMatrixPosition(b.matrixWorld),s.setFromMatrixPosition(b.target.matrixWorld),I.direction.sub(s),I.direction.transformDirection(p),d++}else if(b.isSpotLight){const I=r.spot[g];I.position.setFromMatrixPosition(b.matrixWorld),I.position.applyMatrix4(p),I.direction.setFromMatrixPosition(b.matrixWorld),s.setFromMatrixPosition(b.target.matrixWorld),I.direction.sub(s),I.direction.transformDirection(p),g++}else if(b.isRectAreaLight){const I=r.rectArea[x];I.position.setFromMatrixPosition(b.matrixWorld),I.position.applyMatrix4(p),a.identity(),o.copy(b.matrixWorld),o.premultiply(p),a.extractRotation(o),I.halfWidth.set(b.width*.5,0,0),I.halfHeight.set(0,b.height*.5,0),I.halfWidth.applyMatrix4(a),I.halfHeight.applyMatrix4(a),x++}else if(b.isPointLight){const I=r.point[m];I.position.setFromMatrixPosition(b.matrixWorld),I.position.applyMatrix4(p),m++}else if(b.isHemisphereLight){const I=r.hemi[f];I.direction.setFromMatrixPosition(b.matrixWorld),I.direction.transformDirection(p),f++}}}return{setup:l,setupView:c,state:r}}function ul(i,t){const e=new dg(i,t),n=[],r=[];function s(){n.length=0,r.length=0}function o(u){n.push(u)}function a(u){r.push(u)}function l(u){e.setup(n,u)}function c(u){e.setupView(n,u)}return{init:s,state:{lightsArray:n,shadowsArray:r,lights:e},setupLights:l,setupLightsView:c,pushLight:o,pushShadow:a}}function fg(i,t){let e=new WeakMap;function n(s,o=0){const a=e.get(s);let l;return a===void 0?(l=new ul(i,t),e.set(s,[l])):o>=a.length?(l=new ul(i,t),a.push(l)):l=a[o],l}function r(){e=new WeakMap}return{get:n,dispose:r}}class pg extends cn{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Kh,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class mg extends cn{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const gg=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,_g=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function vg(i,t,e){let n=new va;const r=new tt,s=new tt,o=new ee,a=new pg({depthPacking:Jh}),l=new mg,c={},h=e.maxTextureSize,u={[bn]:Pe,[Pe]:bn,[ke]:ke},d=new An({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new tt},radius:{value:4}},vertexShader:gg,fragmentShader:_g}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const g=new ye;g.setAttribute("position",new ze(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new Ce(g,d),f=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=jl;let p=this.type;this.render=function(L,P,V){if(f.enabled===!1||f.autoUpdate===!1&&f.needsUpdate===!1||L.length===0)return;const lt=i.getRenderTarget(),y=i.getActiveCubeFace(),A=i.getActiveMipmapLevel(),Z=i.state;Z.setBlending(yn),Z.buffers.color.setClear(1,1,1,1),Z.buffers.depth.setTest(!0),Z.setScissorTest(!1);const rt=p!==sn&&this.type===sn,D=p===sn&&this.type!==sn;for(let z=0,O=L.length;zh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/k.x),r.x=s.x*k.x,X.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/k.y),r.y=s.y*k.y,X.mapSize.y=s.y)),X.map===null||rt===!0||D===!0){const K=this.type!==sn?{minFilter:_e,magFilter:_e}:{};X.map!==null&&X.map.dispose(),X.map=new kn(r.x,r.y,K),X.map.texture.name=Y.name+".shadowMap",X.camera.updateProjectionMatrix()}i.setRenderTarget(X.map),i.clear();const $=X.getViewportCount();for(let K=0;K<$;K++){const mt=X.getViewport(K);o.set(s.x*mt.x,s.y*mt.y,s.x*mt.z,s.y*mt.w),Z.viewport(o),X.updateMatrices(Y,K),n=X.getFrustum(),b(P,V,X.camera,Y,this.type)}X.isPointLightShadow!==!0&&this.type===sn&&E(X,V),X.needsUpdate=!1}p=this.type,f.needsUpdate=!1,i.setRenderTarget(lt,y,A)};function E(L,P){const V=t.update(x);d.defines.VSM_SAMPLES!==L.blurSamples&&(d.defines.VSM_SAMPLES=L.blurSamples,m.defines.VSM_SAMPLES=L.blurSamples,d.needsUpdate=!0,m.needsUpdate=!0),L.mapPass===null&&(L.mapPass=new kn(r.x,r.y)),d.uniforms.shadow_pass.value=L.map.texture,d.uniforms.resolution.value=L.mapSize,d.uniforms.radius.value=L.radius,i.setRenderTarget(L.mapPass),i.clear(),i.renderBufferDirect(P,null,V,d,x,null),m.uniforms.shadow_pass.value=L.mapPass.texture,m.uniforms.resolution.value=L.mapSize,m.uniforms.radius.value=L.radius,i.setRenderTarget(L.map),i.clear(),i.renderBufferDirect(P,null,V,m,x,null)}function _(L,P,V,lt){let y=null;const A=V.isPointLight===!0?L.customDistanceMaterial:L.customDepthMaterial;if(A!==void 0)y=A;else if(y=V.isPointLight===!0?l:a,i.localClippingEnabled&&P.clipShadows===!0&&Array.isArray(P.clippingPlanes)&&P.clippingPlanes.length!==0||P.displacementMap&&P.displacementScale!==0||P.alphaMap&&P.alphaTest>0||P.map&&P.alphaTest>0){const Z=y.uuid,rt=P.uuid;let D=c[Z];D===void 0&&(D={},c[Z]=D);let z=D[rt];z===void 0&&(z=y.clone(),D[rt]=z,P.addEventListener("dispose",I)),y=z}if(y.visible=P.visible,y.wireframe=P.wireframe,lt===sn?y.side=P.shadowSide!==null?P.shadowSide:P.side:y.side=P.shadowSide!==null?P.shadowSide:u[P.side],y.alphaMap=P.alphaMap,y.alphaTest=P.alphaTest,y.map=P.map,y.clipShadows=P.clipShadows,y.clippingPlanes=P.clippingPlanes,y.clipIntersection=P.clipIntersection,y.displacementMap=P.displacementMap,y.displacementScale=P.displacementScale,y.displacementBias=P.displacementBias,y.wireframeLinewidth=P.wireframeLinewidth,y.linewidth=P.linewidth,V.isPointLight===!0&&y.isMeshDistanceMaterial===!0){const Z=i.properties.get(y);Z.light=V}return y}function b(L,P,V,lt,y){if(L.visible===!1)return;if(L.layers.test(P.layers)&&(L.isMesh||L.isLine||L.isPoints)&&(L.castShadow||L.receiveShadow&&y===sn)&&(!L.frustumCulled||n.intersectsObject(L))){L.modelViewMatrix.multiplyMatrices(V.matrixWorldInverse,L.matrixWorld);const rt=t.update(L),D=L.material;if(Array.isArray(D)){const z=rt.groups;for(let O=0,Y=z.length;O=1):$.indexOf("OpenGL ES")!==-1&&(k=parseFloat(/^OpenGL ES (\d)/.exec($)[1]),X=k>=2);let K=null,mt={};const Lt=i.getParameter(i.SCISSOR_BOX),G=i.getParameter(i.VIEWPORT),nt=new ee().fromArray(Lt),gt=new ee().fromArray(G);function Mt(T,st,it,St){const Pt=new Uint8Array(4),Zt=i.createTexture();i.bindTexture(T,Zt),i.texParameteri(T,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(T,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let qt=0;qtet||M.height>et)&&(J=et/Math.max(M.width,M.height)),J<1||v===!0)if(typeof HTMLImageElement!="undefined"&&M instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&M instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&M instanceof ImageBitmap){const j=v?jr:Math.floor,yt=j(J*M.width),ut=j(J*M.height);u===void 0&&(u=g(yt,ut));const _t=N?g(yt,ut):u;return _t.width=yt,_t.height=ut,_t.getContext("2d").drawImage(M,0,0,yt,ut),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+M.width+"x"+M.height+") to ("+yt+"x"+ut+")."),_t}else return"data"in M&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+M.width+"x"+M.height+")."),M;return M}function f(M){return ra(M.width)&&ra(M.height)}function p(M){return a?!1:M.wrapS!==We||M.wrapT!==We||M.minFilter!==_e&&M.minFilter!==we}function E(M,v){return M.generateMipmaps&&v&&M.minFilter!==_e&&M.minFilter!==we}function _(M){i.generateMipmap(M)}function b(M,v,N,et,J=!1){if(a===!1)return v;if(M!==null){if(i[M]!==void 0)return i[M];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+M+"'")}let j=v;if(v===i.RED&&(N===i.FLOAT&&(j=i.R32F),N===i.HALF_FLOAT&&(j=i.R16F),N===i.UNSIGNED_BYTE&&(j=i.R8)),v===i.RED_INTEGER&&(N===i.UNSIGNED_BYTE&&(j=i.R8UI),N===i.UNSIGNED_SHORT&&(j=i.R16UI),N===i.UNSIGNED_INT&&(j=i.R32UI),N===i.BYTE&&(j=i.R8I),N===i.SHORT&&(j=i.R16I),N===i.INT&&(j=i.R32I)),v===i.RG&&(N===i.FLOAT&&(j=i.RG32F),N===i.HALF_FLOAT&&(j=i.RG16F),N===i.UNSIGNED_BYTE&&(j=i.RG8)),v===i.RGBA){const yt=J?Wr:Qt.getTransfer(et);N===i.FLOAT&&(j=i.RGBA32F),N===i.HALF_FLOAT&&(j=i.RGBA16F),N===i.UNSIGNED_BYTE&&(j=yt===ne?i.SRGB8_ALPHA8:i.RGBA8),N===i.UNSIGNED_SHORT_4_4_4_4&&(j=i.RGBA4),N===i.UNSIGNED_SHORT_5_5_5_1&&(j=i.RGB5_A1)}return(j===i.R16F||j===i.R32F||j===i.RG16F||j===i.RG32F||j===i.RGBA16F||j===i.RGBA32F)&&t.get("EXT_color_buffer_float"),j}function I(M,v,N){return E(M,N)===!0||M.isFramebufferTexture&&M.minFilter!==_e&&M.minFilter!==we?Math.log2(Math.max(v.width,v.height))+1:M.mipmaps!==void 0&&M.mipmaps.length>0?M.mipmaps.length:M.isCompressedTexture&&Array.isArray(M.image)?v.mipmaps.length:1}function L(M){return M===_e||M===Ya||M===Pi?i.NEAREST:i.LINEAR}function P(M){const v=M.target;v.removeEventListener("dispose",P),lt(v),v.isVideoTexture&&h.delete(v)}function V(M){const v=M.target;v.removeEventListener("dispose",V),A(v)}function lt(M){const v=n.get(M);if(v.__webglInit===void 0)return;const N=M.source,et=d.get(N);if(et){const J=et[v.__cacheKey];J.usedTimes--,J.usedTimes===0&&y(M),Object.keys(et).length===0&&d.delete(N)}n.remove(M)}function y(M){const v=n.get(M);i.deleteTexture(v.__webglTexture);const N=M.source,et=d.get(N);delete et[v.__cacheKey],o.memory.textures--}function A(M){const v=M.texture,N=n.get(M),et=n.get(v);if(et.__webglTexture!==void 0&&(i.deleteTexture(et.__webglTexture),o.memory.textures--),M.depthTexture&&M.depthTexture.dispose(),M.isWebGLCubeRenderTarget)for(let J=0;J<6;J++){if(Array.isArray(N.__webglFramebuffer[J]))for(let j=0;j=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+M+" texture units while this GPU supports only "+r.maxTextures),Z+=1,M}function z(M){const v=[];return v.push(M.wrapS),v.push(M.wrapT),v.push(M.wrapR||0),v.push(M.magFilter),v.push(M.minFilter),v.push(M.anisotropy),v.push(M.internalFormat),v.push(M.format),v.push(M.type),v.push(M.generateMipmaps),v.push(M.premultiplyAlpha),v.push(M.flipY),v.push(M.unpackAlignment),v.push(M.colorSpace),v.join()}function O(M,v){const N=n.get(M);if(M.isVideoTexture&&Et(M),M.isRenderTargetTexture===!1&&M.version>0&&N.__version!==M.version){const et=M.image;if(et===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(et.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{nt(N,M,v);return}}e.bindTexture(i.TEXTURE_2D,N.__webglTexture,i.TEXTURE0+v)}function Y(M,v){const N=n.get(M);if(M.version>0&&N.__version!==M.version){nt(N,M,v);return}e.bindTexture(i.TEXTURE_2D_ARRAY,N.__webglTexture,i.TEXTURE0+v)}function X(M,v){const N=n.get(M);if(M.version>0&&N.__version!==M.version){nt(N,M,v);return}e.bindTexture(i.TEXTURE_3D,N.__webglTexture,i.TEXTURE0+v)}function k(M,v){const N=n.get(M);if(M.version>0&&N.__version!==M.version){gt(N,M,v);return}e.bindTexture(i.TEXTURE_CUBE_MAP,N.__webglTexture,i.TEXTURE0+v)}const $={[Vr]:i.REPEAT,[We]:i.CLAMP_TO_EDGE,[ea]:i.MIRRORED_REPEAT},K={[_e]:i.NEAREST,[Ya]:i.NEAREST_MIPMAP_NEAREST,[Pi]:i.NEAREST_MIPMAP_LINEAR,[we]:i.LINEAR,[us]:i.LINEAR_MIPMAP_NEAREST,[Bn]:i.LINEAR_MIPMAP_LINEAR},mt={[Qh]:i.NEVER,[su]:i.ALWAYS,[tu]:i.LESS,[rc]:i.LEQUAL,[eu]:i.EQUAL,[ru]:i.GEQUAL,[nu]:i.GREATER,[iu]:i.NOTEQUAL};function Lt(M,v,N){if(v.type===je&&t.has("OES_texture_float_linear")===!1&&(v.magFilter===we||v.magFilter===us||v.magFilter===Pi||v.magFilter===Bn||v.minFilter===we||v.minFilter===us||v.minFilter===Pi||v.minFilter===Bn)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),N?(i.texParameteri(M,i.TEXTURE_WRAP_S,$[v.wrapS]),i.texParameteri(M,i.TEXTURE_WRAP_T,$[v.wrapT]),(M===i.TEXTURE_3D||M===i.TEXTURE_2D_ARRAY)&&i.texParameteri(M,i.TEXTURE_WRAP_R,$[v.wrapR]),i.texParameteri(M,i.TEXTURE_MAG_FILTER,K[v.magFilter]),i.texParameteri(M,i.TEXTURE_MIN_FILTER,K[v.minFilter])):(i.texParameteri(M,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(M,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),(M===i.TEXTURE_3D||M===i.TEXTURE_2D_ARRAY)&&i.texParameteri(M,i.TEXTURE_WRAP_R,i.CLAMP_TO_EDGE),(v.wrapS!==We||v.wrapT!==We)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),i.texParameteri(M,i.TEXTURE_MAG_FILTER,L(v.magFilter)),i.texParameteri(M,i.TEXTURE_MIN_FILTER,L(v.minFilter)),v.minFilter!==_e&&v.minFilter!==we&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),v.compareFunction&&(i.texParameteri(M,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(M,i.TEXTURE_COMPARE_FUNC,mt[v.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){const et=t.get("EXT_texture_filter_anisotropic");if(v.magFilter===_e||v.minFilter!==Pi&&v.minFilter!==Bn||v.type===je&&t.has("OES_texture_float_linear")===!1||a===!1&&v.type===Yi&&t.has("OES_texture_half_float_linear")===!1)return;(v.anisotropy>1||n.get(v).__currentAnisotropy)&&(i.texParameterf(M,et.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(v.anisotropy,r.getMaxAnisotropy())),n.get(v).__currentAnisotropy=v.anisotropy)}}function G(M,v){let N=!1;M.__webglInit===void 0&&(M.__webglInit=!0,v.addEventListener("dispose",P));const et=v.source;let J=d.get(et);J===void 0&&(J={},d.set(et,J));const j=z(v);if(j!==M.__cacheKey){J[j]===void 0&&(J[j]={texture:i.createTexture(),usedTimes:0},o.memory.textures++,N=!0),J[j].usedTimes++;const yt=J[M.__cacheKey];yt!==void 0&&(J[M.__cacheKey].usedTimes--,yt.usedTimes===0&&y(v)),M.__cacheKey=j,M.__webglTexture=J[j].texture}return N}function nt(M,v,N){let et=i.TEXTURE_2D;(v.isDataArrayTexture||v.isCompressedArrayTexture)&&(et=i.TEXTURE_2D_ARRAY),v.isData3DTexture&&(et=i.TEXTURE_3D);const J=G(M,v),j=v.source;e.bindTexture(et,M.__webglTexture,i.TEXTURE0+N);const yt=n.get(j);if(j.version!==yt.__version||J===!0){e.activeTexture(i.TEXTURE0+N);const ut=Qt.getPrimaries(Qt.workingColorSpace),_t=v.colorSpace===Fe?null:Qt.getPrimaries(v.colorSpace),Ct=v.colorSpace===Fe||ut===_t?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,v.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,v.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,v.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ct);const Ft=p(v)&&f(v.image)===!1;let Q=x(v.image,Ft,!1,r.maxTextureSize);Q=ft(v,Q);const jt=f(Q)||a,Gt=s.convert(v.format,v.colorSpace);let It=s.convert(v.type),wt=b(v.internalFormat,Gt,It,v.colorSpace,v.isVideoTexture);Lt(et,v,jt);let pt;const zt=v.mipmaps,w=a&&v.isVideoTexture!==!0&&wt!==nc,ot=yt.__version===void 0||J===!0,dt=j.dataReady,Rt=I(v,Q,jt);if(v.isDepthTexture)wt=i.DEPTH_COMPONENT,a?v.type===je?wt=i.DEPTH_COMPONENT32F:v.type===vn?wt=i.DEPTH_COMPONENT24:v.type===zn?wt=i.DEPTH24_STENCIL8:wt=i.DEPTH_COMPONENT16:v.type===je&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),v.format===Hn&&wt===i.DEPTH_COMPONENT&&v.type!==da&&v.type!==vn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),v.type=vn,It=s.convert(v.type)),v.format===Si&&wt===i.DEPTH_COMPONENT&&(wt=i.DEPTH_STENCIL,v.type!==zn&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),v.type=zn,It=s.convert(v.type))),ot&&(w?e.texStorage2D(i.TEXTURE_2D,1,wt,Q.width,Q.height):e.texImage2D(i.TEXTURE_2D,0,wt,Q.width,Q.height,0,Gt,It,null));else if(v.isDataTexture)if(zt.length>0&&jt){w&&ot&&e.texStorage2D(i.TEXTURE_2D,Rt,wt,zt[0].width,zt[0].height);for(let T=0,st=zt.length;T>=1,st>>=1}}else if(zt.length>0&&jt){w&&ot&&e.texStorage2D(i.TEXTURE_2D,Rt,wt,zt[0].width,zt[0].height);for(let T=0,st=zt.length;T0&&dt++,e.texStorage2D(i.TEXTURE_CUBE_MAP,dt,pt,Q[0].width,Q[0].height));for(let T=0;T<6;T++)if(Ft){zt?ot&&e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+T,0,0,0,Q[T].width,Q[T].height,It,wt,Q[T].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+T,0,pt,Q[T].width,Q[T].height,0,It,wt,Q[T].data);for(let st=0;st>j),Q=Math.max(1,v.height>>j);J===i.TEXTURE_3D||J===i.TEXTURE_2D_ARRAY?e.texImage3D(J,j,_t,Ft,Q,v.depth,0,yt,ut,null):e.texImage2D(J,j,_t,Ft,Q,0,yt,ut,null)}e.bindFramebuffer(i.FRAMEBUFFER,M),q(v)?l.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,et,J,n.get(N).__webglTexture,0,at(v)):(J===i.TEXTURE_2D||J>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&J<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,et,J,n.get(N).__webglTexture,j),e.bindFramebuffer(i.FRAMEBUFFER,null)}function bt(M,v,N){if(i.bindRenderbuffer(i.RENDERBUFFER,M),v.depthBuffer&&!v.stencilBuffer){let et=a===!0?i.DEPTH_COMPONENT24:i.DEPTH_COMPONENT16;if(N||q(v)){const J=v.depthTexture;J&&J.isDepthTexture&&(J.type===je?et=i.DEPTH_COMPONENT32F:J.type===vn&&(et=i.DEPTH_COMPONENT24));const j=at(v);q(v)?l.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,j,et,v.width,v.height):i.renderbufferStorageMultisample(i.RENDERBUFFER,j,et,v.width,v.height)}else i.renderbufferStorage(i.RENDERBUFFER,et,v.width,v.height);i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,M)}else if(v.depthBuffer&&v.stencilBuffer){const et=at(v);N&&q(v)===!1?i.renderbufferStorageMultisample(i.RENDERBUFFER,et,i.DEPTH24_STENCIL8,v.width,v.height):q(v)?l.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,et,i.DEPTH24_STENCIL8,v.width,v.height):i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,v.width,v.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,M)}else{const et=v.isWebGLMultipleRenderTargets===!0?v.texture:[v.texture];for(let J=0;J0){N.__webglFramebuffer[ut]=[];for(let _t=0;_t0){N.__webglFramebuffer=[];for(let ut=0;ut0&&q(M)===!1){const ut=j?v:[v];N.__webglMultisampledFramebuffer=i.createFramebuffer(),N.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,N.__webglMultisampledFramebuffer);for(let _t=0;_t0)for(let _t=0;_t0)for(let _t=0;_t0&&q(M)===!1){const v=M.isWebGLMultipleRenderTargets?M.texture:[M.texture],N=M.width,et=M.height;let J=i.COLOR_BUFFER_BIT;const j=[],yt=M.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,ut=n.get(M),_t=M.isWebGLMultipleRenderTargets===!0;if(_t)for(let Ct=0;Ct0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&v.__useRenderToTexture!==!1}function Et(M){const v=o.render.frame;h.get(M)!==v&&(h.set(M,v),M.update())}function ft(M,v){const N=M.colorSpace,et=M.format,J=M.type;return M.isCompressedTexture===!0||M.isVideoTexture===!0||M.format===ia||N!==on&&N!==Fe&&(Qt.getTransfer(N)===ne?a===!1?t.has("EXT_sRGB")===!0&&et===Oe?(M.format=ia,M.minFilter=we,M.generateMipmaps=!1):v=ac.sRGBToLinear(v):(et!==Oe||J!==Sn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",N)),v}this.allocateTextureUnit=D,this.resetTextureUnits=rt,this.setTexture2D=O,this.setTexture2DArray=Y,this.setTexture3D=X,this.setTextureCube=k,this.rebindTextures=At,this.setupRenderTarget=R,this.updateRenderTargetMipmap=ct,this.updateMultisampleRenderTarget=W,this.setupDepthRenderbuffer=Ot,this.setupFrameBufferTexture=Mt,this.useMultisampledRTT=q}function Mg(i,t,e){const n=e.isWebGL2;function r(s,o=Fe){let a;const l=Qt.getTransfer(o);if(s===Sn)return i.UNSIGNED_BYTE;if(s===Jl)return i.UNSIGNED_SHORT_4_4_4_4;if(s===$l)return i.UNSIGNED_SHORT_5_5_5_1;if(s===Vh)return i.BYTE;if(s===Gh)return i.SHORT;if(s===da)return i.UNSIGNED_SHORT;if(s===Kl)return i.INT;if(s===vn)return i.UNSIGNED_INT;if(s===je)return i.FLOAT;if(s===Yi)return n?i.HALF_FLOAT:(a=t.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===kh)return i.ALPHA;if(s===Oe)return i.RGBA;if(s===Wh)return i.LUMINANCE;if(s===Xh)return i.LUMINANCE_ALPHA;if(s===Hn)return i.DEPTH_COMPONENT;if(s===Si)return i.DEPTH_STENCIL;if(s===ia)return a=t.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===qh)return i.RED;if(s===Ql)return i.RED_INTEGER;if(s===Yh)return i.RG;if(s===tc)return i.RG_INTEGER;if(s===ec)return i.RGBA_INTEGER;if(s===ds||s===fs||s===ps||s===ms)if(l===ne)if(a=t.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===ds)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===fs)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===ms)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=t.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===ds)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===fs)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===ms)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===ja||s===Za||s===Ka||s===Ja)if(a=t.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===ja)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Za)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Ka)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Ja)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===nc)return a=t.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===$a||s===Qa)if(a=t.get("WEBGL_compressed_texture_etc"),a!==null){if(s===$a)return l===ne?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Qa)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===to||s===eo||s===no||s===io||s===ro||s===so||s===ao||s===oo||s===lo||s===co||s===ho||s===uo||s===fo||s===po)if(a=t.get("WEBGL_compressed_texture_astc"),a!==null){if(s===to)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===eo)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===no)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===io)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===ro)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===so)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===ao)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===oo)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===lo)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===co)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===ho)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===uo)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===fo)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===po)return l===ne?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===gs||s===mo||s===go)if(a=t.get("EXT_texture_compression_bptc"),a!==null){if(s===gs)return l===ne?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===mo)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===go)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===jh||s===_o||s===vo||s===xo)if(a=t.get("EXT_texture_compression_rgtc"),a!==null){if(s===gs)return a.COMPRESSED_RED_RGTC1_EXT;if(s===_o)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===vo)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===xo)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===zn?n?i.UNSIGNED_INT_24_8:(a=t.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):i[s]!==void 0?i[s]:null}return{convert:r}}class Sg extends Re{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}}class Vi extends ae{constructor(){super(),this.isGroup=!0,this.type="Group"}}const Eg={type:"move"};class Hs{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Vi,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Vi,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new C,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new C),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Vi,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new C,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new C),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let r=null,s=null,o=null;const a=this._targetRay,l=this._grip,c=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(c&&t.hand){o=!0;for(const x of t.hand.values()){const f=e.getJointPose(x,n),p=this._getHandJoint(c,x);f!==null&&(p.matrix.fromArray(f.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=f.radius),p.visible=f!==null}const h=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],d=h.position.distanceTo(u.position),m=.02,g=.005;c.inputState.pinching&&d>m+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&d<=m-g&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else l!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(r=e.getPose(t.targetRaySpace,n),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Eg)))}return a!==null&&(a.visible=r!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=o!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){const n=new Vi;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const bg=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,Tg=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1784043664472.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1784043664472.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1784043664472.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),!(this.data.length<2)&&(this.timer=window.setInterval(()=>{this.loopChange()},this.delay))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; diff --git a/docs/assets/screen2Standard-cdb21878-balabala-1784043664472.css b/docs/assets/screen2Standard-cdb21878-balabala-1784043664472.css new file mode 100644 index 0000000..3fe1d89 --- /dev/null +++ b/docs/assets/screen2Standard-cdb21878-balabala-1784043664472.css @@ -0,0 +1 @@ +.three-pie-wrap{position:relative;width:100%;height:100%;z-index:2}.three-pie{width:100%;height:100%}.three-pie-slot{position:absolute;left:0;top:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;pointer-events:none} diff --git a/docs/assets/stack-7a426057-balabala-1783995319167.png b/docs/assets/stack-7a426057-balabala-1784043664472.png similarity index 100% rename from docs/assets/stack-7a426057-balabala-1783995319167.png rename to docs/assets/stack-7a426057-balabala-1784043664472.png diff --git a/docs/assets/title-zs1-c15a5ee8-balabala-1783995319167.svg b/docs/assets/title-zs1-c15a5ee8-balabala-1784043664472.svg similarity index 100% rename from docs/assets/title-zs1-c15a5ee8-balabala-1783995319167.svg rename to docs/assets/title-zs1-c15a5ee8-balabala-1784043664472.svg diff --git a/docs/assets/town-f8c0c9cc-balabala-1783995319167.png b/docs/assets/town-f8c0c9cc-balabala-1784043664472.png similarity index 100% rename from docs/assets/town-f8c0c9cc-balabala-1783995319167.png rename to docs/assets/town-f8c0c9cc-balabala-1784043664472.png diff --git a/docs/assets/townshipBoundaries-1b068bef-1784043664472.js b/docs/assets/townshipBoundaries-1b068bef-1784043664472.js new file mode 100644 index 0000000..b5e0b5c --- /dev/null +++ b/docs/assets/townshipBoundaries-1b068bef-1784043664472.js @@ -0,0 +1,42 @@ +var q=Object.defineProperty,S=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var I=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable;var B=(e,o,a)=>o in e?q(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,i=(e,o)=>{for(var a in o||(o={}))I.call(o,a)&&B(e,a,o[a]);if(N)for(var a of N(o))M.call(o,a)&&B(e,a,o[a]);return e},d=(e,o)=>S(e,j(o));const d2={west:101.852492,south:31.851389,east:103.347518,north:33.319796},y2={width:2400,height:2400},u2=9,m={core:{fillColor:"#FFCB45",strokeColor:"#FFF4B8"},general:{fillColor:"#35E8FF",strokeColor:"#C9FBFF"}};function R(e){return String(e).replace(/'/g,"''")}function s(e,o){return`${e} = '${R(o)}'`}function O(){return` + + + ne:t_basic_grassland_2023 + + Screen V2.1 基本与一般草原 + + + basic-grassland + + + grassland_category_codeBASIC + grassland_category_name基本草原 + + + + #35C98B0.58 + #A7F3D00.780.65 + + + + general-grassland + + + grassland_category_codeGENERAL + grassland_category_name一般草原 + + + + #E7B9550.56 + #FFE3A00.80.65 + + + + + +`}const E=[{name:"低地草甸类",fillColor:"#DDE9A6",strokeColor:"#F1F7D0"},{name:"莎草、杂类草型",fillColor:"#F67A7A",strokeColor:"#F67A7A"},{name:"山地草甸类",fillColor:"#7ED0A5",strokeColor:"#B9F1D3"},{name:"羊茅、杂类草型",fillColor:"#E69800",strokeColor:"#E69800"},{name:"早熟禾、杂类草型",fillColor:"#FFD380",strokeColor:"#FFD380"},{name:"垂穗披碱草型",fillColor:"#FFAA01",strokeColor:"#FFAA01"},{name:"苔草、杂类草型",fillColor:"#FFEBB0",strokeColor:"#FFEBB0"},{name:"委陵菜、杂类草型",fillColor:"#F5CA7B",strokeColor:"#F5CA7B"},{name:"披碱草型",fillColor:"#A87001",strokeColor:"#A87001"},{name:"高寒草甸类",fillColor:"#79A7E8",strokeColor:"#BBD3F6"},{name:"矮生嵩草、杂类草型",fillColor:"#6CB3FF",strokeColor:"#6CB3FF"},{name:"矮生嵩草、圆穗蓼型",fillColor:"#00C7FF",strokeColor:"#00C7FF"},{name:"西藏嵩草、杂类草型",fillColor:"#8FE5FD",strokeColor:"#8FE5FD"},{name:"西藏嵩草、甘肃嵩草型",fillColor:"#7B8FED",strokeColor:"#7B8FED"},{name:"高山嵩草、矮生嵩草型",fillColor:"#71DDFE",strokeColor:"#71DDFE"},{name:"高山嵩草、苔草型",fillColor:"#7BB5F3",strokeColor:"#7BB5F3"},{name:"高山嵩草、杂类草型",fillColor:"#444E87",strokeColor:"#444E87"},{name:"具灌木的矮生嵩草型",fillColor:"#6873D1",strokeColor:"#6873D1"}].map((e,o)=>d(i({},e),{key:`grassland-type-${o+1}`,cqlFilter:s("grass_min_type",e.name),rankingPropertyName:["area_code","acreage"],rankingTownCodeKeys:["area_code"],rankingAreaKeys:["acreage"]})),A=[{name:">4000(kg/hm2)",fillColor:"#2F9D78",strokeColor:"#7DE0B9"},{name:"3000-4000(kg/hm2)",fillColor:"#72B86A",strokeColor:"#A9DC91"},{name:"2000-3000(kg/hm2)",fillColor:"#D9C55B",strokeColor:"#F1E38C"},{name:"1500-2000(kg/hm2)",fillColor:"#E4934E",strokeColor:"#F5BD7C"},{name:"<1500(kg/hm2)",fillColor:"#D65F5F",strokeColor:"#F09191"}].map(e=>d(i({},e),{selectable:!1})),y={1:"一级",2:"二级",3:"三级",4:"四级",5:"五级",6:"六级",7:"七级",8:"八级"},L=[{level:"1",name:"1级草原",fillColor:"#2E7D6A",strokeColor:"#75C5A9"},{level:"2",name:"2级草原",fillColor:"#3AAE86",strokeColor:"#82D5B0"},{level:"3",name:"3级草原",fillColor:"#68C79A",strokeColor:"#A6E2BF"},{level:"4",name:"4级草原",fillColor:"#A6D96A",strokeColor:"#D0EB9E"},{level:"5",name:"5级草原",fillColor:"#F0C95B",strokeColor:"#FFE598"},{level:"6",name:"6级草原",fillColor:"#E99A4A",strokeColor:"#F6C17C"},{level:"7",name:"7级草原",fillColor:"#E06A52",strokeColor:"#F39B88"},{level:"8",name:"8级草原",fillColor:"#BD5367",strokeColor:"#E58A9A"}].map(e=>d(i({},e),{key:`grassland-level-${e.level}`,cqlFilter:`grassland_level IN ('${e.level}','${e.name}','${y[e.level]}草原','${y[e.level]}草地')`,rankingPropertyName:["area_code","acreage"],rankingTownCodeKeys:["area_code"],rankingAreaKeys:["acreage"],level:void 0})),K=L.map(e=>{const o=e.key.replace("grassland-level-",""),a=e.name.replace("草原","湿地");return d(i({},e),{key:`wetland-level-${o}`,name:a,cqlFilter:`grassland_level IN ('${o}','${a}','${e.name}','${y[o]}湿地','${y[o]}草原','${y[o]}草地')`})}),x=[{key:"basic-grassland-basic",name:"基本草原",fillColor:"#35C98B",strokeColor:"#A7F3D0",cqlFilter:"(grassland_category_code = 'BASIC' OR grassland_category_name = '基本草原')",rankingValueKey:"basicAreaWanMu"},{key:"basic-grassland-general",name:"一般草原",fillColor:"#E7B955",strokeColor:"#FFE3A0",cqlFilter:"(grassland_category_code = 'GENERAL' OR grassland_category_name = '一般草原')",rankingValueKey:"generalAreaWanMu"}],P=[{key:"overview",name:"资源概览",color:"#30DCFF",defaultLayerKey:"",coreGroups:[]},{key:"grassland",name:"草地资源",color:"#8AE611",defaultLayerKey:"grassland-distribution",coreGroups:["grassLand","grassland"]},{key:"wetland",name:"湿地资源",color:"#33A3DC",defaultLayerKey:"wetland-distribution",coreGroups:["wetland"]},{key:"woodland",name:"林地资源",color:"#2BD17E",defaultLayerKey:"woodland-distribution",coreGroups:["woodland"]}],G=[{key:"ecological-redline",name:"生态保护红线",color:"#30DCFF",defaultLayerKey:"ecological-redline-boundary"},{key:"natural-protected-area",name:"自然保护地",color:"#19FFC6",defaultLayerKey:"natural-protected-area-boundary"},{key:"national-park",name:"若尔盖国家公园",color:"#46E7FF",defaultLayerKey:"national-park-zoning"},{key:"restoration",name:"生态修复工程",color:"#33A3DC",defaultLayerKey:"restoration-projects"},{key:"engineering-analysis",name:"生态工程分析",color:"#24F6C4",defaultLayerKey:"engineering-analysis-projects"}],z=[{key:"yak-industry-chain",name:"牦牛产业链",color:"#24F6C4",defaultLayerKey:"yak-industry-points"}],$={woodland:[{key:"woodland-distribution",name:"林地分布",layerName:"ne:t_woodland_2023",styles:"woodland_distribution",opacity:.82,legends:[{key:"woodland-distribution-all",name:"林地分布",fillColor:"#2BD17E",strokeColor:"#2BD17E",selectable:!1}]},{key:"woodland-protection",name:"公益林",layerName:"ne:t_woodland_2023",styles:"woodland_protection",opacity:.86,legends:[{key:"woodland-protection-level-1",name:"国家一级公益林",fillColor:"#08C4C5",strokeColor:"#08C4C5",cqlFilter:s("gjgyl_bhdj","1")},{key:"woodland-protection-level-2",name:"国家二级公益林",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:s("gjgyl_bhdj","2")},{key:"woodland-protection-unset",name:"未划定",fillColor:"#6B8191",strokeColor:"#6B8191",cqlFilter:"(gjgyl_bhdj IS NULL OR gjgyl_bhdj = '' OR gjgyl_bhdj NOT IN ('1','2'))"}]},{key:"woodland-type",name:"林地类型",layerName:"ne:t_woodland_2023",styles:"woodland_type",opacity:.84,legends:[{key:"woodland-type-shrub",name:"灌木林地",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:s("dlmc","灌木林地")},{key:"woodland-type-arbor",name:"乔木林地",fillColor:"#0DA368",strokeColor:"#0DA368",cqlFilter:s("dlmc","乔木林地")},{key:"woodland-type-swamp",name:"灌丛沼泽",fillColor:"#23C7B7",strokeColor:"#23C7B7",cqlFilter:s("dlmc","灌丛沼泽")},{key:"woodland-type-other",name:"其他林地",fillColor:"#B7D96B",strokeColor:"#B7D96B",cqlFilter:"(dlmc IS NULL OR dlmc = '' OR dlmc NOT IN ('灌木林地','乔木林地','灌丛沼泽'))"}]},{key:"woodland-quality",name:"林地质量",layerName:"ne:t_woodland_2023",styles:"woodland_quality",opacity:.84,legends:[{key:"woodland-quality-2",name:"二级质量",fillColor:"#08C4C5",strokeColor:"#08C4C5",cqlFilter:s("zl_dj","2")},{key:"woodland-quality-3",name:"三级质量",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:s("zl_dj","3")},{key:"woodland-quality-4",name:"四级质量",fillColor:"#23C7B7",strokeColor:"#23C7B7",cqlFilter:s("zl_dj","4")},{key:"woodland-quality-5",name:"五级质量",fillColor:"#B7D96B",strokeColor:"#B7D96B",cqlFilter:s("zl_dj","5")},{key:"woodland-quality-unset",name:"未划分",fillColor:"#6B8191",strokeColor:"#6B8191",cqlFilter:"(zl_dj IS NULL OR zl_dj = '' OR zl_dj NOT IN ('2','3','4','5'))"}]},{key:"woodland-ownership",name:"林地权属",layerName:"ne:t_woodland_2023",styles:"woodland_ownership",opacity:.84,legends:[{key:"woodland-ownership-collective",name:"集体林地",fillColor:"#2BD17E",strokeColor:"#2BD17E",cqlFilter:s("ld_qs","10")},{key:"woodland-ownership-other",name:"国有或其他",fillColor:"#08C4C5",strokeColor:"#08C4C5",cqlFilter:"(ld_qs IS NULL OR ld_qs = '' OR ld_qs <> '10')"}]}],grassland:[{key:"grassland-distribution",name:"草地分布",layerName:"ne:t_grassland_result_caodi",opacity:.82,legends:[{name:"草地",fillColor:"#1D953F",strokeColor:"#1D953F"}]},{key:"basic-grassland",name:"基本/一般草原",layerName:"ne:t_basic_grassland_2023",styles:"",sldBody:O(),opacity:.78,legends:x},{key:"grassland-level",name:"草原级",layerName:"ne:t_grassland_result_level_caodi",opacity:.82,legends:L},{key:"grassland-type",name:"草原类型",layerName:"ne:t_grassland_result_grass_min_type_caodi",opacity:.82,legends:E},{key:"grassland-yield",name:"草地产草量/生产力",layerName:"ne:t_grassland_result_yield_caodi",opacity:.82,legends:A},{key:"grassland-health",name:"草地健康/退化",layerName:"ne:2023_08_ndvi",opacity:.78,legends:[{name:"非常差",fillColor:"#FF000533",strokeColor:"#FF0005",selectable:!1},{name:"差",fillColor:"#D8EE8C33",strokeColor:"#D8EE8C",selectable:!1},{name:"正常",fillColor:"#78C96233",strokeColor:"#78C962",selectable:!1},{name:"较好",fillColor:"#25814933",strokeColor:"#258149",selectable:!1}]}],wetland:[{key:"wetland-distribution",name:"湿地分布",layerName:"ne:t_grassland_result_shidi",opacity:.84,legends:[{name:"湿地",fillColor:"#33A3DC",strokeColor:"#33A3DC"}]},{key:"wetland-level",name:"湿地级",layerName:"ne:t_grassland_result_level_shidi",opacity:.82,legends:K},{key:"wetland-type",name:"湿地类型",layerName:"ne:t_grassland_result_grass_min_type_shidi",opacity:.82,legends:E},{key:"wetland-yield",name:"湿地产草量/生产力",layerName:"ne:t_grassland_result_yield_shidi",opacity:.82,legends:A}]},V={"ecological-redline":[{key:"ecological-redline-boundary",name:"生态保护红线",layerName:"ne:t_ecological_redline_hy",sourceType:"wfs",styles:"ecological_redline_hy",opacity:.58,fillColor:"#5EDFEA",strokeColor:"#BFFFFF",fillAlpha:.08,strokeAlpha:.56,lineWidth:1.42,mapView:{targetLngLat:[102.58,32.72],distanceScale:.78,targetLocalZ:.76,duration:.9},legends:[{key:"ecological-redline-all",name:"生态保护红线",fillColor:"rgba(94, 223, 234, 0.28)",strokeColor:"#BFFFFF",selectable:!1}]}],"natural-protected-area":[{key:"natural-protected-area-boundary",name:"自然保护地",layerName:"ne:t_natural_protected_area_hy",sourceType:"wfs",styles:"natural_protected_area_hy",opacity:.74,mapView:{targetLngLat:[102.64,33.02],distanceScale:.7,targetLocalZ:.78,duration:.9},legends:[{key:"natural-protected-area-core",name:"核心保护区",fillColor:"rgba(36, 246, 196, 0.16)",strokeColor:"#B9FBFF",matches:[{field:"functional_zone",value:"核心保护区"},{field:"reserve_zone",value:"核心保护区"}],selectable:!1},{key:"natural-protected-area-general",name:"一般控制区",fillColor:"rgba(48, 220, 255, 0.12)",strokeColor:"#8BF7FF",matches:[{field:"functional_zone",value:"一般控制区"},{field:"reserve_zone",value:"一般控制区"}],selectable:!1}]}],"national-park":[{key:"national-park-zoning",name:"国家公园分区",sourceType:"wkt-api",apiUrl:"/openApi/gjgy/gjgy_area",fallbackPath:"datas/ecological-protection/national_park_wkt.json",clipToHongyuanBoundary:!0,clipToLayerBounds:!1,opacity:.9,mapView:{targetLngLat:[102.88,33.15],distanceScale:.68,targetLocalZ:.78,duration:.95},legends:[{key:"national-park-core",name:"核心保护区",fillColor:m.core.fillColor,strokeColor:m.core.strokeColor,match:{field:"type",value:"核心保护区"},selectable:!1},{key:"national-park-general",name:"一般控制区",fillColor:m.general.fillColor,strokeColor:m.general.strokeColor,match:{field:"type",value:"一般控制区"},selectable:!1}]}],restoration:[{key:"restoration-projects",name:"生态修复工程",sourceType:"geojson",dataPath:"datas/ecological-protection/ecological_restoration_projects.geojson",opacity:.72,legends:[{key:"restoration-grassland",name:"草地修复",fillColor:"#75AD49",strokeColor:"#D2EA78",cqlFilter:s("project_category","草地修复"),match:{field:"project_category",value:"草地修复"}},{key:"restoration-wetland",name:"湿地修复",fillColor:"#4FB4C3",strokeColor:"#A9EEF2",cqlFilter:s("project_category","湿地修复"),match:{field:"project_category",value:"湿地修复"}},{key:"restoration-woodland",name:"林地修复",fillColor:"#43A97A",strokeColor:"#95E2B7",cqlFilter:s("project_category","林地修复"),match:{field:"project_category",value:"林地修复"}},{key:"restoration-linear",name:"线性设施",fillColor:"#D2B24D",strokeColor:"#FFE28A",cqlFilter:s("feature_role","线性设施"),match:{field:"feature_role",value:"线性设施"}}]}],"engineering-analysis":[{key:"engineering-analysis-projects",name:"工程分析项目库",sourceType:"geojson",dataPath:"datas/ecological-protection/ecological_restoration_projects.geojson",opacity:.76,mapView:{targetLngLat:[102.58,32.72],distanceScale:.78,targetLocalZ:.72,duration:.85},legends:[{key:"analysis-project-grassland",name:"草地修复",fillColor:"#75AD49",strokeColor:"#D2EA78",match:{field:"project_category",value:"草地修复"},selectable:!1},{key:"analysis-project-wetland",name:"湿地修复",fillColor:"#4FB4C3",strokeColor:"#A9EEF2",match:{field:"project_category",value:"湿地修复"},selectable:!1},{key:"analysis-project-woodland",name:"林地修复",fillColor:"#43A97A",strokeColor:"#95E2B7",match:{field:"project_category",value:"林地修复"},selectable:!1},{key:"analysis-project-linear",name:"线性设施",fillColor:"#D2B24D",strokeColor:"#FFE28A",match:{field:"feature_role",value:"线性设施"},selectable:!1}]}]},W={"yak-industry-chain":[{key:"yak-recognition-layer",name:"牦牛识别",sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,homeWmtsZoom:10,homeWmtsEnhance:!0,homeWmtsPointSpread:1.4,homeWmtsGlowRadius:1.8,url:"/geoserver/gwc/service/wmts",opacity:.96,queryBuffer:10,fillColor:"rgba(255, 230, 0, 0)",strokeColor:"#FFE600",glowColor:"rgba(255, 230, 0, 0.42)",lineWidth:1.4,mapView:{targetLngLat:[102.58,32.72],distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-recognition-all",name:"牦牛识别",fillColor:"#FFE600",strokeColor:"#FFF58A",selectable:!1}]},{key:"yak-industry-points",name:"牦牛产业点位",sourceType:"geojson",dataPath:"datas/yak-industry-chain/yak_industry_points.geojson",opacity:.96,pointLabelLimit:12,showPointLabels:!1,mapView:{targetLngLat:[102.48,32.69],distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-industry-family-pasture",name:"家庭生态牧场",fillColor:"#30DCFF",strokeColor:"#C9FBFF",match:{field:"stageKey",value:"family-pasture"}},{key:"yak-industry-artificial-grassland",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",match:{field:"stageKey",value:"artificial-grassland"}},{key:"yak-industry-scale-breeding",name:"规模化养殖基地",fillColor:"#46E7FF",strokeColor:"#C9FBFF",match:{field:"stageKey",value:"scale-breeding"}},{key:"yak-industry-breeding-selection",name:"选育/扩繁基地",fillColor:"#7AEFFF",strokeColor:"#D8FAFF",matches:[{field:"categoryCode",value:"YC-BREEDING-STOCK"},{field:"categoryCode",value:"YC-CXPT-BREEDING-STOCK-BASE"}]},{key:"yak-industry-forage-storage",name:"防灾减灾",fillColor:"#25CBE8",strokeColor:"#B8F7FF",match:{field:"stageKey",value:"forage-storage"}},{key:"yak-industry-milk-source-station",name:"奶源站",fillColor:"#5CDFFF",strokeColor:"#D8FAFF",match:{field:"stageKey",value:"milk-source-station"}},{key:"yak-industry-slaughter-processing",name:"屠宰与加工",fillColor:"#1FAFD2",strokeColor:"#B8F7FF",match:{field:"stageKey",value:"slaughter-processing"}},{key:"yak-industry-farm-equipment",name:"农机装备",fillColor:"#30DCFF",strokeColor:"#C9FBFF",match:{field:"stageKey",value:"farm-equipment"}},{key:"yak-industry-forage-trade",name:"牧草交易",fillColor:"#19FFC6",strokeColor:"#B7FFF2",match:{field:"stageKey",value:"forage-trade"}},{key:"yak-industry-social-service",name:"社会化服务",fillColor:"#8AEFFF",strokeColor:"#E2FDFF",match:{field:"stageKey",value:"social-service"}}]},{key:"artificial-grassland-plots",name:"人工种草图斑",sourceType:"geojson",dataPath:"datas/yak-industry-chain/artificial_grassland_plots.geojson",opacity:.94,clipToHongyuanBoundary:!0,mapView:{targetLngLat:[102.51,32.79],distanceScale:.62,targetLocalZ:.76,duration:.9},legends:[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",match:{field:"data_status",value:"待核定"},selectable:!1}]}]},U=i(i(i({},$),V),W),Z=[...P,...G,...z];function m2(e){return Z.find(o=>o.key===e)||P[0]}function H(e){return U[e]||[]}function g2(e,o){const a=H(e);return a.find(l=>l.key===o)||a[0]}const v=`{"name":"hongyuan_townships","type":"FeatureCollection","source":"PostGIS public.c_area where parent_code = 513233","features":[{"id":"513233100","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.439335,32.937888],[102.439465,32.937624],[102.439588,32.937381],[102.439753,32.937201],[102.439756,32.937198],[102.439918,32.937021],[102.440068,32.936829],[102.440337,32.936613],[102.440605,32.936411],[102.440872,32.936208],[102.440989,32.936044],[102.440992,32.93604],[102.440994,32.935966],[102.440914,32.935745],[102.440772,32.935619],[102.440517,32.935419],[102.440455,32.935375],[102.440916,32.935324],[102.441734,32.935456],[102.44229,32.935178],[102.442815,32.934419],[102.44351,32.933259],[102.444121,32.932655],[102.444338,32.932255],[102.444741,32.931762],[102.445596,32.931414],[102.446633,32.931069],[102.447794,32.930381],[102.448442,32.930105],[102.449001,32.929712],[102.449331,32.929353],[102.449481,32.928894],[102.449606,32.928531],[102.450068,32.928328],[102.450741,32.927976],[102.45119,32.927446],[102.451478,32.926932],[102.451945,32.926576],[102.452324,32.926121],[102.452633,32.925685],[102.453259,32.925351],[102.454021,32.925039],[102.454694,32.924668],[102.455301,32.924218],[102.455973,32.923866],[102.456693,32.923437],[102.456974,32.923193],[102.457186,32.922966],[102.457363,32.922373],[102.45741,32.921526],[102.457323,32.919772],[102.457389,32.919361],[102.457412,32.919221],[102.457434,32.919081],[102.45745,32.918523],[102.457466,32.917965],[102.457431,32.917608],[102.457395,32.917251],[102.457233,32.916949],[102.45707,32.916648],[102.45673,32.916159],[102.45639,32.915671],[102.456185,32.915263],[102.45598,32.914854],[102.455876,32.914515],[102.455771,32.914176],[102.45562,32.913855],[102.45547,32.913534],[102.455472,32.913062],[102.455474,32.912591],[102.455475,32.912157],[102.455476,32.911724],[102.455408,32.911299],[102.455341,32.910874],[102.45526,32.910487],[102.45518,32.910101],[102.45526,32.909717],[102.455339,32.909334],[102.455421,32.908864],[102.455503,32.908393],[102.455584,32.907943],[102.455666,32.907492],[102.45571,32.906751],[102.455754,32.906011],[102.455799,32.905636],[102.455844,32.905262],[102.456031,32.904303],[102.456122,32.903515],[102.456001,32.902145],[102.456207,32.898887],[102.456064,32.89765],[102.456252,32.89609],[102.456412,32.894227],[102.456305,32.892992],[102.45657,32.892425],[102.45739,32.891208],[102.458239,32.890203],[102.459053,32.889166],[102.459612,32.888305],[102.460165,32.887684],[102.460608,32.887152],[102.461397,32.887017],[102.462111,32.886972],[102.462401,32.886827],[102.462597,32.886199],[102.463022,32.885034],[102.463218,32.884437],[102.46356,32.883691],[102.463871,32.882795],[102.463611,32.881887],[102.463009,32.880491],[102.463072,32.879529],[102.463198,32.87887],[102.463539,32.878155],[102.464274,32.877387],[102.464908,32.876407],[102.465427,32.875726],[102.466434,32.874182],[102.466629,32.873584],[102.466789,32.872955],[102.466809,32.872264],[102.466829,32.871572],[102.467217,32.870467],[102.468038,32.869159],[102.469019,32.867284],[102.469365,32.866388],[102.469819,32.865465],[102.469976,32.864956],[102.470434,32.863912],[102.471528,32.861768],[102.471984,32.860785],[102.472222,32.859947],[102.472702,32.859232],[102.47278,32.859116],[102.473231,32.858282],[102.473931,32.857514],[102.474161,32.857282],[102.474545,32.856895],[102.475173,32.856433],[102.476142,32.856205],[102.477274,32.855889],[102.478111,32.85559],[102.479001,32.855337],[102.480214,32.854978],[102.481052,32.854679],[102.481971,32.854314],[102.483244,32.85373],[102.484003,32.853362],[102.484649,32.853194],[102.485238,32.853184],[102.486127,32.852953],[102.486855,32.85272],[102.487537,32.852254],[102.48862,32.851531],[102.489742,32.850826],[102.490281,32.850567],[102.490759,32.850338],[102.491861,32.849463],[102.492679,32.848706],[102.49356,32.847885],[102.494546,32.847029],[102.495856,32.8459],[102.496385,32.845276],[102.496502,32.84486],[102.496437,32.84449],[102.496327,32.84412],[102.496249,32.843674],[102.496027,32.843048],[102.495721,32.842674],[102.495537,32.842264],[102.495224,32.841623],[102.494771,32.840636],[102.494555,32.840302],[102.494596,32.839754],[102.49473,32.839101],[102.494919,32.838241],[102.495116,32.837687],[102.495393,32.837247],[102.495484,32.836942],[102.495488,32.836897],[102.49553,32.836469],[102.495487,32.835659],[102.495517,32.835172],[102.495307,32.834429],[102.495258,32.833215],[102.495287,32.832198],[102.495507,32.830836],[102.495588,32.830294],[102.495721,32.829684],[102.495954,32.829005],[102.497083,32.826899],[102.4977,32.82604],[102.498076,32.825525],[102.498227,32.824722],[102.498463,32.82366],[102.498588,32.8229],[102.498942,32.82221],[102.49959,32.821199],[102.500151,32.820513],[102.500339,32.820256],[102.500413,32.820158],[102.500798,32.819848],[102.501091,32.819456],[102.501299,32.818746],[102.501321,32.817952],[102.500655,32.817166],[102.500433,32.816903],[102.499831,32.816281],[102.49959,32.815689],[102.499278,32.814855],[102.498883,32.814215],[102.498573,32.813294],[102.498437,32.812638],[102.498223,32.81198],[102.497608,32.810922],[102.497089,32.810106],[102.496219,32.808956],[102.495557,32.807723],[102.495094,32.806909],[102.495091,32.806903],[102.495059,32.806847],[102.495058,32.806845],[102.495057,32.806843],[102.495026,32.80679],[102.494254,32.805432],[102.493553,32.80433],[102.493538,32.804306],[102.492419,32.802825],[102.491777,32.801788],[102.491803,32.800895],[102.491908,32.80052],[102.49192,32.800476],[102.492233,32.799358],[102.492391,32.799006],[102.494832,32.793593],[102.494849,32.793556],[102.494882,32.793483],[102.4949,32.793443],[102.494913,32.793415],[102.494921,32.793398],[102.495295,32.792567],[102.495311,32.792533],[102.495326,32.792499],[102.495339,32.792471],[102.495353,32.792439],[102.495357,32.79243],[102.495368,32.792407],[102.495601,32.791966],[102.495631,32.791908],[102.495664,32.791847],[102.495681,32.791814],[102.495701,32.791776],[102.495741,32.791699],[102.495743,32.791696],[102.495942,32.79132],[102.495957,32.791291],[102.495958,32.79129],[102.495977,32.791253],[102.496141,32.790943],[102.496206,32.790821],[102.496227,32.790781],[102.496484,32.790294],[102.497119,32.790656],[102.497803,32.791083],[102.498545,32.791294],[102.499195,32.791265],[102.499216,32.791264],[102.499671,32.79104],[102.499896,32.790929],[102.500526,32.790463],[102.500871,32.790208],[102.500808,32.789908],[102.500816,32.789612],[102.500825,32.789283],[102.500832,32.789058],[102.500834,32.788964],[102.500847,32.788526],[102.50085,32.788408],[102.500866,32.78783],[102.500876,32.78749],[102.500958,32.787305],[102.501171,32.786828],[102.501244,32.786663],[102.501361,32.786554],[102.50146,32.786461],[102.5015,32.786423],[102.501756,32.786183],[102.501785,32.786155],[102.501844,32.7861],[102.501849,32.786096],[102.501853,32.786092],[102.501884,32.786081],[102.501923,32.786069],[102.501936,32.786064],[102.503049,32.785698],[102.503785,32.785738],[102.504006,32.78575],[102.504282,32.785765],[102.505311,32.786035],[102.50592,32.786141],[102.506392,32.786224],[102.507623,32.786374],[102.508449,32.786849],[102.508526,32.787282],[102.508552,32.787428],[102.50862,32.787812],[102.508444,32.788136],[102.508389,32.788239],[102.508151,32.788678],[102.50812,32.788804],[102.508079,32.78897],[102.508047,32.789097],[102.507965,32.789429],[102.507873,32.789799],[102.508191,32.79008],[102.50821,32.790098],[102.508393,32.790092],[102.508606,32.790085],[102.50869,32.790082],[102.508743,32.79008],[102.509001,32.790072],[102.509164,32.790003],[102.509337,32.78993],[102.509383,32.789911],[102.509469,32.789874],[102.50972,32.789768],[102.509851,32.789713],[102.510266,32.789151],[102.510518,32.788809],[102.510992,32.787734],[102.510969,32.786816],[102.510549,32.786278],[102.510517,32.786236],[102.51011,32.785714],[102.508457,32.784805],[102.507301,32.783739],[102.507134,32.782651],[102.5074,32.781989],[102.507766,32.781748],[102.507803,32.781723],[102.507897,32.781662],[102.507932,32.781638],[102.507953,32.781625],[102.508188,32.781549],[102.508198,32.781545],[102.508199,32.781545],[102.508275,32.78152],[102.508286,32.781517],[102.5088,32.78135],[102.509279,32.781286],[102.509771,32.78122],[102.509817,32.781214],[102.50989,32.781205],[102.509912,32.781178],[102.510009,32.781062],[102.510009,32.781062],[102.510009,32.781062],[102.510024,32.781043],[102.510073,32.780984],[102.510178,32.780858],[102.510189,32.780845],[102.510189,32.780845],[102.510189,32.780845],[102.510189,32.780844],[102.510197,32.780835],[102.510201,32.78083],[102.510266,32.780757],[102.510271,32.780752],[102.510617,32.78036],[102.511574,32.779277],[102.512155,32.777913],[102.512186,32.777831],[102.512259,32.77764],[102.51306,32.775553],[102.513343,32.774527],[102.513609,32.773562],[102.513882,32.772608],[102.514105,32.771694],[102.514966,32.769167],[102.515443,32.767967],[102.515761,32.76718],[102.515981,32.766392],[102.516656,32.765196],[102.517578,32.764004],[102.517273,32.762538],[102.517102,32.761576],[102.516983,32.76053],[102.517079,32.758864],[102.517078,32.757112],[102.516861,32.756023],[102.516244,32.755135],[102.515087,32.754152],[102.513051,32.752819],[102.510977,32.751402],[102.510096,32.7508],[102.50903,32.750069],[102.508823,32.749863],[102.507986,32.749029],[102.507648,32.748691],[102.507493,32.748537],[102.507251,32.748257],[102.50593,32.746729],[102.505915,32.746712],[102.504698,32.744352],[102.504056,32.742587],[102.504051,32.742242],[102.504047,32.741937],[102.504039,32.741419],[102.50403,32.741365],[102.503859,32.740319],[102.503744,32.739619],[102.503789,32.737993],[102.503308,32.735207],[102.502777,32.733942],[102.5027,32.733757],[102.502649,32.733637],[102.502644,32.733493],[102.502609,32.732461],[102.502601,32.732227],[102.502637,32.730957],[102.502662,32.730055],[102.502664,32.729988],[102.502666,32.729885],[102.502669,32.729781],[102.502643,32.72915],[102.502617,32.728519],[102.502505,32.727813],[102.502393,32.727106],[102.501973,32.72643],[102.501553,32.725754],[102.50109,32.725033],[102.500627,32.724311],[102.500346,32.724151],[102.500065,32.72399],[102.499828,32.723692],[102.499592,32.723394],[102.499438,32.723063],[102.499284,32.722732],[102.499112,32.722315],[102.49894,32.721898],[102.498832,32.721361],[102.498725,32.720824],[102.498577,32.720269],[102.49843,32.719715],[102.498422,32.719266],[102.498414,32.718818],[102.498409,32.718248],[102.498405,32.717679],[102.498375,32.717282],[102.498345,32.716885],[102.497995,32.716291],[102.497644,32.715698],[102.497412,32.715245],[102.49718,32.714792],[102.49707,32.714359],[102.496959,32.713925],[102.496531,32.71321],[102.496102,32.712494],[102.495767,32.712073],[102.495432,32.711653],[102.495136,32.711285],[102.49484,32.710917],[102.494348,32.710286],[102.493856,32.709655],[102.493385,32.708991],[102.492914,32.708326],[102.492622,32.707803],[102.492331,32.707279],[102.492025,32.706549],[102.491719,32.705819],[102.491631,32.705317],[102.491543,32.704815],[102.491399,32.704139],[102.491255,32.703464],[102.491183,32.702962],[102.491175,32.702907],[102.491104,32.702415],[102.49109,32.702322],[102.491064,32.702137],[102.491016,32.701804],[102.490906,32.699904],[102.490842,32.699282],[102.49058,32.698415],[102.490532,32.698391],[102.490429,32.696549],[102.49061,32.695897],[102.491319,32.695325],[102.492317,32.694655],[102.493923,32.694136],[102.495114,32.693815],[102.496321,32.69363],[102.496712,32.693571],[102.497331,32.693371],[102.497618,32.693278],[102.499003,32.69334],[102.499525,32.693627],[102.500211,32.693882],[102.500386,32.693993],[102.500492,32.69406],[102.503889,32.695851],[102.505234,32.696437],[102.50583,32.696696],[102.506688,32.696966],[102.507444,32.697203],[102.507934,32.69736],[102.509215,32.697769],[102.509502,32.697861],[102.511166,32.698065],[102.511348,32.698088],[102.512285,32.698152],[102.513131,32.69821],[102.514262,32.698288],[102.514305,32.69829],[102.515414,32.698343],[102.515438,32.698344],[102.515484,32.698346],[102.515608,32.698352],[102.515754,32.698359],[102.515777,32.69836],[102.515786,32.698361],[102.515943,32.698368],[102.516141,32.698341],[102.51627,32.698323],[102.517149,32.698202],[102.517151,32.698202],[102.517204,32.698194],[102.517212,32.698193],[102.517738,32.698121],[102.517768,32.698116],[102.517795,32.698113],[102.517796,32.698113],[102.517796,32.698112],[102.517859,32.698104],[102.518122,32.698068],[102.518648,32.697995],[102.519425,32.697971],[102.523039,32.697861],[102.523164,32.697857],[102.523367,32.697851],[102.525392,32.697701],[102.526433,32.697797],[102.526799,32.697831],[102.527351,32.697882],[102.528949,32.697838],[102.529879,32.697813],[102.53041,32.697799],[102.531396,32.697772],[102.534147,32.697731],[102.535597,32.698092],[102.536601,32.698301],[102.535798,32.696909],[102.535783,32.696847],[102.535735,32.696639],[102.535447,32.695384],[102.535047,32.694857],[102.534739,32.69445],[102.533876,32.693312],[102.533356,32.692665],[102.533055,32.69229],[102.531977,32.690949],[102.530923,32.689729],[102.530726,32.689501],[102.529985,32.687872],[102.529975,32.687791],[102.529975,32.687791],[102.529948,32.68758],[102.52993,32.687429],[102.529755,32.686017],[102.529572,32.684969],[102.529523,32.684686],[102.529464,32.68435],[102.528939,32.683058],[102.528298,32.681492],[102.528275,32.681436],[102.52822,32.681302],[102.528097,32.681001],[102.527947,32.680656],[102.527779,32.68027],[102.527495,32.679618],[102.527282,32.679131],[102.5272,32.678942],[102.527029,32.678396],[102.526736,32.677462],[102.526578,32.676968],[102.526549,32.676878],[102.525959,32.675027],[102.525806,32.674549],[102.525301,32.672498],[102.525214,32.671594],[102.524742,32.670868],[102.52453,32.670541],[102.524245,32.670104],[102.523542,32.669141],[102.522782,32.668224],[102.522027,32.667118],[102.521565,32.66664],[102.521381,32.665338],[102.521091,32.66394],[102.521115,32.663059],[102.521262,32.661717],[102.521132,32.660462],[102.520796,32.658739],[102.52047,32.656645],[102.520043,32.65554],[102.520021,32.655484],[102.51988,32.65512],[102.519855,32.655056],[102.519503,32.653935],[102.519496,32.652172],[102.519915,32.650928],[102.520001,32.64977],[102.52031,32.648524],[102.520448,32.647506],[102.520916,32.646448],[102.521664,32.645164],[102.523307,32.643248],[102.523992,32.642241],[102.524899,32.641192],[102.525754,32.640003],[102.526438,32.639042],[102.527296,32.63776],[102.52798,32.6368],[102.529309,32.636316],[102.530926,32.635327],[102.53276,32.634435],[102.534097,32.633673],[102.535564,32.632125],[102.536416,32.631074],[102.537873,32.629897],[102.539552,32.628631],[102.540786,32.627635],[102.542642,32.625908],[102.543939,32.624588],[102.544679,32.623582],[102.546576,32.622367],[102.548618,32.62185],[102.550262,32.621882],[102.550863,32.62194],[102.552375,32.620764],[102.552711,32.620455],[102.554006,32.619265],[102.554907,32.618354],[102.555649,32.617302],[102.556441,32.61639],[102.556752,32.615004],[102.557392,32.613671],[102.558409,32.612531],[102.55848,32.612442],[102.559204,32.611526],[102.559138,32.611041],[102.559021,32.610177],[102.559016,32.609776],[102.559003,32.608832],[102.557939,32.607651],[102.557933,32.607364],[102.557927,32.607061],[102.557915,32.606495],[102.557963,32.606542],[102.558981,32.607625],[102.560591,32.608863],[102.561153,32.609302],[102.561452,32.609536],[102.562163,32.610092],[102.562416,32.61029],[102.563718,32.611475],[102.563974,32.611707],[102.564395,32.612091],[102.566533,32.614127],[102.568248,32.615552],[102.569487,32.616365],[102.57126,32.617698],[102.571601,32.618039],[102.571581,32.617982],[102.571868,32.617478],[102.573049,32.616387],[102.573846,32.615289],[102.575478,32.613697],[102.576709,32.612793],[102.578108,32.611707],[102.57961,32.610901],[102.581008,32.609861],[102.58152,32.609175],[102.581482,32.608525],[102.582228,32.607287],[102.582898,32.606836],[102.595355,32.615193],[102.595396,32.615221],[102.595497,32.615288],[102.597516,32.615606],[102.600068,32.616536],[102.600466,32.6167],[102.601329,32.617056],[102.601357,32.617067],[102.60143,32.617097],[102.601474,32.617115],[102.602038,32.617348],[102.602074,32.617363],[102.603269,32.617757],[102.605241,32.617794],[102.606198,32.617958],[102.606199,32.617958],[102.606214,32.617961],[102.606222,32.617962],[102.606245,32.617966],[102.606769,32.618055],[102.608017,32.618543],[102.611033,32.618641],[102.611136,32.618644],[102.61119,32.618646],[102.611467,32.618655],[102.611469,32.618655],[102.61147,32.618655],[102.611682,32.618659],[102.61174,32.61866],[102.611765,32.618661],[102.611947,32.618664],[102.612932,32.618683],[102.613188,32.618688],[102.613201,32.618688],[102.613203,32.618688],[102.613205,32.618688],[102.613217,32.618688],[102.613434,32.618693],[102.613437,32.618693],[102.61344,32.618693],[102.613601,32.618651],[102.614268,32.618476],[102.615713,32.617715],[102.615849,32.617619],[102.615852,32.617617],[102.615854,32.617616],[102.615859,32.617612],[102.615932,32.61756],[102.615944,32.617552],[102.615944,32.617552],[102.616607,32.617083],[102.617115,32.616743],[102.61789,32.616226],[102.619166,32.615647],[102.620392,32.614882],[102.621617,32.614163],[102.623002,32.613632],[102.623637,32.613392],[102.624053,32.613234],[102.625465,32.612859],[102.626312,32.612569],[102.626329,32.612585],[102.626375,32.612629],[102.626531,32.612777],[102.626681,32.61292],[102.626827,32.612922],[102.627185,32.612929],[102.627266,32.612851],[102.62729,32.612828],[102.6273,32.612826],[102.627376,32.6128],[102.627426,32.612784],[102.627436,32.612777],[102.627505,32.612733],[102.62755,32.612693],[102.62759,32.612638],[102.627626,32.612589],[102.627674,32.612539],[102.627798,32.612493],[102.62785,32.612473],[102.627877,32.612463],[102.62808,32.612387],[102.62836,32.612499],[102.628543,32.612715],[102.628723,32.613065],[102.628698,32.613319],[102.628681,32.613503],[102.628679,32.613517],[102.628628,32.613684],[102.628542,32.613967],[102.62847,32.614105],[102.628316,32.614403],[102.62831,32.614415],[102.628235,32.614866],[102.628255,32.614951],[102.628268,32.615004],[102.62832,32.615214],[102.628718,32.615648],[102.628707,32.616047],[102.628701,32.616074],[102.628674,32.616187],[102.628667,32.616217],[102.628664,32.616229],[102.628652,32.616278],[102.628642,32.616651],[102.629347,32.617432],[102.629352,32.617438],[102.629432,32.617523],[102.629476,32.617571],[102.629496,32.617618],[102.629805,32.617975],[102.629966,32.618136],[102.629823,32.618645],[102.629676,32.619029],[102.629742,32.619184],[102.629706,32.619233],[102.62964,32.619268],[102.629637,32.619291],[102.629667,32.619343],[102.629676,32.619332],[102.629685,32.619322],[102.629696,32.619316],[102.629706,32.619314],[102.629723,32.619315],[102.629733,32.619318],[102.629744,32.61932],[102.629753,32.619317],[102.629764,32.619314],[102.629778,32.61931],[102.629793,32.619302],[102.629809,32.619339],[102.629822,32.61937],[102.629827,32.619381],[102.629977,32.61973],[102.629992,32.619847],[102.629994,32.619862],[102.630003,32.619926],[102.630005,32.619941],[102.629952,32.61994],[102.629819,32.619935],[102.629754,32.619921],[102.629754,32.619986],[102.629772,32.620038],[102.629837,32.6201],[102.62995,32.620178],[102.630051,32.620293],[102.630053,32.620312],[102.630123,32.620981],[102.630125,32.620995],[102.630126,32.621009],[102.630058,32.621094],[102.62992,32.621268],[102.629905,32.621285],[102.62987,32.62133],[102.629701,32.621542],[102.629432,32.621508],[102.629422,32.621507],[102.629337,32.621496],[102.629301,32.621469],[102.629291,32.621447],[102.629277,32.621429],[102.629255,32.621422],[102.629226,32.621418],[102.629193,32.62141],[102.629176,32.621402],[102.629144,32.621379],[102.629104,32.62135],[102.629037,32.6213],[102.628969,32.621235],[102.628932,32.621183],[102.628787,32.621071],[102.628766,32.621054],[102.628634,32.620953],[102.628627,32.620947],[102.62862,32.620942],[102.628506,32.620979],[102.628067,32.621125],[102.628003,32.621367],[102.628,32.62138],[102.627998,32.621386],[102.627984,32.621442],[102.627975,32.621437],[102.627959,32.621436],[102.627948,32.621443],[102.627935,32.621453],[102.62792,32.621467],[102.627909,32.621483],[102.627888,32.621522],[102.627879,32.621572],[102.627881,32.621591],[102.627898,32.621606],[102.627902,32.62163],[102.627901,32.621655],[102.627898,32.621668],[102.627882,32.621691],[102.627867,32.621707],[102.627858,32.621721],[102.627851,32.621739],[102.62785,32.621752],[102.627858,32.621771],[102.627875,32.62179],[102.627891,32.621803],[102.627905,32.621813],[102.627927,32.621828],[102.627935,32.621842],[102.627948,32.62186],[102.627964,32.621917],[102.627975,32.621956],[102.627994,32.621985],[102.628022,32.622004],[102.628054,32.622022],[102.628104,32.622059],[102.628127,32.622091],[102.628151,32.62213],[102.628165,32.622161],[102.628187,32.622181],[102.628255,32.622197],[102.628282,32.622188],[102.628293,32.62217],[102.628308,32.622136],[102.628316,32.62211],[102.628335,32.622086],[102.628362,32.622051],[102.628477,32.622093],[102.628496,32.622101],[102.628513,32.622107],[102.629041,32.622303],[102.629232,32.62257],[102.629246,32.622589],[102.629314,32.622685],[102.62935,32.622734],[102.629267,32.622988],[102.6292,32.623195],[102.629142,32.62327],[102.628935,32.623537],[102.628803,32.623708],[102.628717,32.623675],[102.628588,32.623785],[102.628561,32.623796],[102.628508,32.623811],[102.628444,32.623818],[102.628397,32.623817],[102.628334,32.623809],[102.628151,32.623761],[102.628085,32.623727],[102.628041,32.6237],[102.627983,32.623639],[102.627966,32.623628],[102.627846,32.623551],[102.627745,32.623485],[102.627731,32.623476],[102.627692,32.623327],[102.627689,32.62332],[102.627606,32.62301],[102.627439,32.622946],[102.627307,32.622987],[102.627155,32.623061],[102.627064,32.623118],[102.626988,32.623223],[102.626967,32.623244],[102.626954,32.623277],[102.626951,32.623303],[102.626953,32.62333],[102.626956,32.623352],[102.626971,32.623374],[102.626959,32.623484],[102.626953,32.623539],[102.626957,32.623553],[102.626967,32.623588],[102.62712,32.624122],[102.627112,32.624435],[102.627111,32.624469],[102.62711,32.624521],[102.62711,32.624529],[102.627108,32.624593],[102.627107,32.624623],[102.627102,32.624818],[102.626968,32.625182],[102.626961,32.625203],[102.626845,32.625518],[102.62684,32.625532],[102.626807,32.625624],[102.626673,32.625666],[102.626607,32.625687],[102.626576,32.625697],[102.626268,32.625571],[102.626079,32.625494],[102.626004,32.625364],[102.625994,32.625347],[102.625986,32.625333],[102.62593,32.625237],[102.625926,32.62523],[102.625921,32.625222],[102.625551,32.624586],[102.625533,32.624554],[102.625402,32.624458],[102.625295,32.624371],[102.625161,32.624285],[102.625082,32.624253],[102.624971,32.624253],[102.624876,32.624273],[102.624863,32.624273],[102.624486,32.624265],[102.624463,32.624281],[102.6244,32.624549],[102.624322,32.624879],[102.624313,32.624919],[102.624345,32.624987],[102.624561,32.625447],[102.624576,32.625477],[102.624597,32.625522],[102.624909,32.626185],[102.62493,32.626229],[102.624939,32.626249],[102.624943,32.626257],[102.624968,32.62631],[102.625048,32.62648],[102.625074,32.626704],[102.625101,32.626937],[102.625159,32.627448],[102.625147,32.627908],[102.625142,32.628097],[102.625134,32.628414],[102.625085,32.628451],[102.625078,32.628456],[102.625051,32.628476],[102.625035,32.628488],[102.624528,32.628867],[102.623886,32.62897],[102.623359,32.628922],[102.623298,32.628917],[102.62321,32.628868],[102.623081,32.628828],[102.623011,32.628821],[102.622941,32.628825],[102.622907,32.628829],[102.622837,32.628835],[102.622801,32.628841],[102.622773,32.628851],[102.622737,32.628865],[102.622691,32.62887],[102.622669,32.628869],[102.622627,32.628872],[102.622586,32.628892],[102.62256,32.628907],[102.622477,32.628922],[102.622437,32.628921],[102.622382,32.628908],[102.622343,32.628893],[102.622286,32.628878],[102.622224,32.628867],[102.622158,32.62891],[102.622102,32.628946],[102.622087,32.628956],[102.621826,32.629125],[102.621924,32.629313],[102.622001,32.629462],[102.622026,32.629509],[102.622036,32.629529],[102.622083,32.629619],[102.622088,32.62963],[102.622102,32.629657],[102.622103,32.629658],[102.62213,32.62971],[102.622201,32.630485],[102.621778,32.630941],[102.621737,32.630955],[102.621642,32.630987],[102.62132,32.631097],[102.621303,32.631102],[102.621273,32.631113],[102.621132,32.63116],[102.621124,32.63147],[102.621219,32.631604],[102.621237,32.63163],[102.621257,32.631659],[102.621344,32.631783],[102.621662,32.632008],[102.62168,32.632021],[102.621807,32.632111],[102.62184,32.632134],[102.621846,32.632138],[102.622017,32.63226],[102.622075,32.632303],[102.622331,32.632498],[102.62236,32.633117],[102.622267,32.633335],[102.622172,32.63356],[102.622179,32.633564],[102.622182,32.633571],[102.62218,32.633586],[102.622175,32.633609],[102.622148,32.633676],[102.622103,32.633843],[102.622076,32.634029],[102.62207,32.634117],[102.62207,32.634127],[102.622046,32.634175],[102.622042,32.63418],[102.621986,32.63425],[102.621964,32.634275],[102.621963,32.634307],[102.622031,32.63443],[102.62205,32.634464],[102.622065,32.634459],[102.622082,32.634455],[102.622451,32.634349],[102.622557,32.634319],[102.622692,32.634199],[102.622783,32.634119],[102.622798,32.634106],[102.623071,32.633865],[102.623628,32.633527],[102.62409,32.633596],[102.624173,32.633609],[102.624181,32.63361],[102.624188,32.633651],[102.624189,32.633673],[102.624192,32.633697],[102.624198,32.633719],[102.62421,32.633742],[102.624223,32.633759],[102.624231,32.633768],[102.624238,32.633779],[102.624254,32.633795],[102.624258,32.63382],[102.624256,32.633857],[102.624248,32.633897],[102.624231,32.633945],[102.624174,32.63402],[102.624144,32.634063],[102.624138,32.63412],[102.624132,32.634145],[102.624124,32.634171],[102.624101,32.634209],[102.624072,32.634278],[102.624045,32.634351],[102.624022,32.634379],[102.623969,32.634443],[102.623941,32.63451],[102.623929,32.634542],[102.623897,32.634583],[102.623857,32.634616],[102.623806,32.63465],[102.623756,32.634668],[102.623701,32.634688],[102.62364,32.63472],[102.623581,32.634765],[102.623512,32.634789],[102.623474,32.634804],[102.623455,32.634817],[102.623413,32.634838],[102.623364,32.634868],[102.623309,32.634889],[102.623291,32.634903],[102.623269,32.634927],[102.623259,32.634943],[102.623261,32.634973],[102.623142,32.635072],[102.623045,32.635153],[102.622988,32.635201],[102.622961,32.635228],[102.622952,32.635249],[102.622945,32.635277],[102.622929,32.635292],[102.622802,32.635406],[102.622701,32.635752],[102.622867,32.635874],[102.622872,32.635878],[102.622878,32.635882],[102.62297,32.63595],[102.623011,32.635951],[102.623025,32.635951],[102.623085,32.635952],[102.623155,32.635954],[102.623158,32.635977],[102.62319,32.636023],[102.623213,32.63605],[102.623236,32.636054],[102.623311,32.636038],[102.623358,32.636024],[102.623391,32.636009],[102.623423,32.635991],[102.623449,32.635967],[102.623472,32.635938],[102.623492,32.635916],[102.623549,32.635903],[102.623579,32.635904],[102.62358,32.63588],[102.623595,32.635824],[102.623799,32.635695],[102.623853,32.635693],[102.623899,32.63569],[102.623957,32.635651],[102.624033,32.635618],[102.624089,32.635615],[102.624154,32.635618],[102.624212,32.635638],[102.624273,32.635671],[102.624291,32.635699],[102.624297,32.635714],[102.624304,32.635733],[102.624326,32.635751],[102.624414,32.635802],[102.624521,32.635878],[102.624568,32.635921],[102.624609,32.635969],[102.624567,32.636049],[102.624422,32.636326],[102.624076,32.636571],[102.62406,32.636582],[102.623961,32.636569],[102.62384,32.636548],[102.623661,32.636536],[102.623709,32.636569],[102.623736,32.636598],[102.623227,32.636612],[102.622619,32.636891],[102.622579,32.636909],[102.622242,32.637317],[102.622202,32.637366],[102.622087,32.637586],[102.622061,32.637636],[102.621961,32.637825],[102.621974,32.637859],[102.622075,32.638137],[102.62212,32.638188],[102.622146,32.638221],[102.622178,32.63827],[102.622197,32.638314],[102.622209,32.638351],[102.622218,32.638381],[102.622226,32.638408],[102.622234,32.638433],[102.622298,32.638459],[102.622581,32.638572],[102.623273,32.638314],[102.623511,32.638309],[102.623522,32.638308],[102.623826,32.638301],[102.623867,32.6383],[102.623922,32.638299],[102.624188,32.638293],[102.624339,32.638636],[102.624446,32.638877],[102.624478,32.639223],[102.624517,32.639652],[102.623913,32.640027],[102.623183,32.640013],[102.622984,32.64022],[102.622942,32.640263],[102.622854,32.640355],[102.622852,32.640433],[102.62285,32.640505],[102.622849,32.640525],[102.622841,32.640819],[102.623331,32.64133],[102.623925,32.641303],[102.623956,32.641283],[102.624108,32.641187],[102.624211,32.641122],[102.624265,32.641052],[102.624306,32.640993],[102.624365,32.640937],[102.624426,32.640901],[102.62453,32.640866],[102.624653,32.640854],[102.624669,32.640847],[102.624709,32.640828],[102.625131,32.64063],[102.625683,32.640524],[102.625755,32.64051],[102.625866,32.640489],[102.62595,32.640439],[102.625997,32.640411],[102.625998,32.640401],[102.625999,32.640385],[102.626011,32.640364],[102.626022,32.640335],[102.626074,32.640276],[102.626099,32.640264],[102.626126,32.640256],[102.626136,32.640243],[102.626141,32.640219],[102.626143,32.640198],[102.626149,32.640171],[102.626168,32.64015],[102.626254,32.640108],[102.62629,32.640105],[102.626311,32.640101],[102.626332,32.640083],[102.62635,32.640055],[102.626389,32.64003],[102.62647,32.63998],[102.626546,32.639963],[102.626613,32.639958],[102.626673,32.639961],[102.626713,32.639973],[102.626732,32.639974],[102.626748,32.639965],[102.626824,32.639888],[102.626915,32.639796],[102.626928,32.639782],[102.626942,32.639769],[102.627123,32.639585],[102.627629,32.639479],[102.627741,32.639565],[102.627942,32.639717],[102.627959,32.639744],[102.628013,32.639828],[102.62806,32.639901],[102.628118,32.639991],[102.628064,32.640045],[102.62797,32.640143],[102.627601,32.640522],[102.627319,32.64076],[102.62712,32.640927],[102.627,32.641052],[102.626767,32.641306],[102.626634,32.641435],[102.626569,32.641496],[102.62656,32.641504],[102.626511,32.641553],[102.626462,32.641605],[102.626407,32.641713],[102.626391,32.641751],[102.626374,32.641763],[102.626358,32.64177],[102.626363,32.641808],[102.626415,32.642201],[102.626588,32.642396],[102.626576,32.642456],[102.626578,32.642495],[102.626596,32.642531],[102.626611,32.642578],[102.626647,32.642619],[102.626737,32.64267],[102.626794,32.642697],[102.626824,32.642728],[102.626845,32.642772],[102.626865,32.642816],[102.626893,32.642851],[102.626939,32.642875],[102.626987,32.642894],[102.627103,32.642935],[102.627155,32.642935],[102.627443,32.643145],[102.627452,32.643152],[102.627463,32.643137],[102.627548,32.643157],[102.627593,32.643198],[102.62762,32.643225],[102.627652,32.643251],[102.627683,32.643285],[102.627716,32.643315],[102.627736,32.64333],[102.627768,32.643337],[102.6278,32.643345],[102.627833,32.643358],[102.627792,32.643357],[102.627773,32.643365],[102.62774,32.643381],[102.628065,32.643701],[102.628129,32.644746],[102.627714,32.644922],[102.627697,32.644929],[102.627553,32.64499],[102.627505,32.64501],[102.627494,32.645015],[102.627344,32.645079],[102.6272,32.645298],[102.627197,32.645303],[102.627184,32.645323],[102.627124,32.645413],[102.627088,32.645468],[102.627083,32.645475],[102.626868,32.645804],[102.626742,32.645906],[102.626733,32.645913],[102.626614,32.64601],[102.626595,32.646025],[102.626583,32.646035],[102.626573,32.646042],[102.626216,32.646332],[102.62622,32.646374],[102.62622,32.646402],[102.626223,32.646432],[102.626223,32.646445],[102.626216,32.646457],[102.626213,32.64646],[102.626202,32.646444],[102.626178,32.646418],[102.626159,32.646395],[102.626103,32.646457],[102.625867,32.646721],[102.625842,32.64675],[102.625832,32.64676],[102.625811,32.646784],[102.625664,32.646948],[102.625602,32.64702],[102.625589,32.647488],[102.625589,32.64752],[102.626006,32.647629],[102.626156,32.647669],[102.626168,32.647672],[102.626224,32.647686],[102.626356,32.647689],[102.626417,32.64769],[102.627092,32.647703],[102.627145,32.647682],[102.627165,32.647674],[102.627176,32.647669],[102.627375,32.647589],[102.627409,32.647608],[102.627459,32.647624],[102.627493,32.647633],[102.627567,32.647637],[102.627595,32.647639],[102.627609,32.647639],[102.627673,32.647635],[102.6277,32.647623],[102.627723,32.647608],[102.627735,32.647597],[102.627746,32.647577],[102.62775,32.647559],[102.627754,32.647544],[102.62776,32.647528],[102.62777,32.647517],[102.627785,32.647505],[102.627799,32.647495],[102.627818,32.647486],[102.627844,32.647475],[102.627853,32.647466],[102.627855,32.647458],[102.627854,32.647442],[102.627842,32.64742],[102.627824,32.647393],[102.627784,32.647345],[102.627867,32.647264],[102.628276,32.646863],[102.628302,32.646837],[102.628404,32.646834],[102.628425,32.646834],[102.628551,32.646831],[102.628614,32.646829],[102.629217,32.646815],[102.629469,32.646928],[102.629532,32.646956],[102.629548,32.646963],[102.629681,32.647056],[102.629731,32.647103],[102.629766,32.647138],[102.629792,32.647173],[102.629891,32.647289],[102.629906,32.647337],[102.62991,32.647343],[102.629915,32.647354],[102.629915,32.647365],[102.629909,32.647389],[102.629887,32.647434],[102.629857,32.647492],[102.629771,32.647687],[102.629718,32.647744],[102.629659,32.647782],[102.629628,32.647802],[102.629597,32.647817],[102.629574,32.647841],[102.629543,32.647885],[102.629498,32.647951],[102.629481,32.647999],[102.629461,32.648035],[102.629418,32.648096],[102.629399,32.648129],[102.629374,32.648141],[102.62936,32.648141],[102.629346,32.648138],[102.629329,32.648163],[102.629271,32.648247],[102.62919,32.648367],[102.629165,32.648404],[102.628938,32.648743],[102.628923,32.649284],[102.629463,32.649603],[102.63037,32.649878],[102.630377,32.649879],[102.630687,32.649974],[102.631415,32.649935],[102.63174,32.649917],[102.631907,32.649842],[102.632467,32.649588],[102.63248,32.649583],[102.632512,32.649549],[102.632541,32.649519],[102.632558,32.649501],[102.632808,32.649241],[102.632096,32.648532],[102.632101,32.648348],[102.632104,32.648217],[102.632105,32.648184],[102.63231,32.648166],[102.632396,32.648214],[102.632522,32.648303],[102.632706,32.648412],[102.632804,32.648476],[102.632908,32.648529],[102.633005,32.648566],[102.633071,32.648598],[102.633136,32.648631],[102.633158,32.648647],[102.633183,32.648672],[102.633203,32.648688],[102.63322,32.648699],[102.63325,32.648698],[102.633258,32.648684],[102.633277,32.648675],[102.633296,32.648666],[102.633326,32.64866],[102.633338,32.648674],[102.633357,32.648718],[102.633373,32.648769],[102.633404,32.648827],[102.633469,32.648894],[102.633506,32.648948],[102.63354,32.649026],[102.633557,32.64912],[102.633595,32.649235],[102.633619,32.64936],[102.633615,32.649434],[102.633605,32.649544],[102.63359,32.64957],[102.633585,32.649578],[102.633564,32.6496],[102.633558,32.649691],[102.63359,32.64969],[102.633645,32.649691],[102.633705,32.649915],[102.63402,32.650076],[102.634284,32.650011],[102.634653,32.64992],[102.634894,32.64986],[102.634957,32.64984],[102.634991,32.649829],[102.635004,32.649825],[102.635153,32.649776],[102.635178,32.649768],[102.63568,32.649603],[102.63569,32.649598],[102.635796,32.649538],[102.636105,32.649366],[102.636118,32.649359],[102.636256,32.649282],[102.63628,32.649268],[102.636376,32.648927],[102.636395,32.648859],[102.636432,32.64873],[102.636436,32.648687],[102.636437,32.64868],[102.636494,32.648112],[102.636641,32.64806],[102.636676,32.648048],[102.636895,32.64797],[102.636909,32.647966],[102.637508,32.64809],[102.637607,32.648111],[102.637703,32.6482],[102.63779,32.648292],[102.637878,32.648376],[102.637928,32.648438],[102.637953,32.648494],[102.637989,32.648553],[102.638039,32.648598],[102.638128,32.64867],[102.638176,32.64872],[102.638258,32.648789],[102.638374,32.649146],[102.638398,32.649219],[102.638403,32.649235],[102.638406,32.649244],[102.638427,32.649308],[102.63844,32.649372],[102.638405,32.649414],[102.638393,32.649429],[102.638382,32.649447],[102.638381,32.649463],[102.638388,32.649476],[102.638388,32.649487],[102.638391,32.649507],[102.638462,32.649486],[102.638588,32.650123],[102.639039,32.650364],[102.639366,32.650099],[102.639383,32.65008],[102.639396,32.650066],[102.639559,32.649884],[102.63958,32.649859],[102.639815,32.649597],[102.639883,32.649521],[102.639978,32.649415],[102.640241,32.649274],[102.640256,32.649266],[102.640534,32.649116],[102.640851,32.649238],[102.641167,32.64936],[102.641355,32.649515],[102.641362,32.649555],[102.641373,32.649595],[102.641388,32.649639],[102.641406,32.649681],[102.641429,32.6497],[102.641448,32.649701],[102.641474,32.649688],[102.641502,32.649682],[102.641514,32.649688],[102.641516,32.649696],[102.641591,32.649711],[102.641637,32.64972],[102.641682,32.649738],[102.641713,32.649751],[102.641754,32.649773],[102.641788,32.649839],[102.641809,32.649892],[102.641878,32.64995],[102.641844,32.649988],[102.641836,32.650018],[102.641835,32.650049],[102.641847,32.650098],[102.641842,32.650144],[102.641854,32.65019],[102.641779,32.650159],[102.641725,32.650267],[102.6417,32.650316],[102.641594,32.650527],[102.641482,32.650646],[102.641464,32.650665],[102.641238,32.650903],[102.641233,32.650909],[102.641096,32.651054],[102.641024,32.651053],[102.640971,32.651057],[102.640918,32.65108],[102.640869,32.651121],[102.640792,32.651222],[102.640776,32.65128],[102.640767,32.651324],[102.640756,32.651378],[102.64075,32.651425],[102.640749,32.651456],[102.640778,32.651495],[102.640842,32.65154],[102.640909,32.651578],[102.640984,32.651616],[102.641069,32.65165],[102.641184,32.651674],[102.641198,32.65168],[102.64127,32.651691],[102.641348,32.651694],[102.641428,32.651698],[102.641479,32.651693],[102.641545,32.651695],[102.641614,32.651704],[102.641652,32.651713],[102.641696,32.651726],[102.641762,32.651737],[102.641851,32.651719],[102.641925,32.651696],[102.641971,32.651695],[102.642012,32.651676],[102.642042,32.651658],[102.642118,32.6516],[102.642338,32.651558],[102.642375,32.651551],[102.642411,32.651544],[102.642827,32.651464],[102.64294,32.651442],[102.643258,32.651528],[102.643265,32.65153],[102.643304,32.65154],[102.643629,32.651628],[102.643712,32.65165],[102.643774,32.65173],[102.643802,32.651766],[102.643825,32.651802],[102.643842,32.651837],[102.643845,32.651854],[102.643823,32.651874],[102.643868,32.651966],[102.643881,32.651991],[102.643885,32.652001],[102.643872,32.652504],[102.643908,32.652568],[102.64399,32.65255],[102.644052,32.652526],[102.644092,32.652477],[102.644126,32.652437],[102.644178,32.652405],[102.644241,32.652409],[102.644323,32.65244],[102.64442,32.652467],[102.644492,32.65248],[102.644537,32.652481],[102.64456,32.652469],[102.644661,32.65251],[102.644727,32.652471],[102.644741,32.652462],[102.64478,32.652438],[102.644819,32.652438],[102.644877,32.652428],[102.644947,32.652408],[102.645011,32.652382],[102.645079,32.652351],[102.645118,32.652329],[102.645171,32.652291],[102.645194,32.652271],[102.645229,32.652236],[102.64527,32.652195],[102.645292,32.652155],[102.645298,32.652125],[102.645341,32.652059],[102.645358,32.652007],[102.645371,32.651967],[102.645396,32.651912],[102.645425,32.651879],[102.645447,32.651715],[102.645463,32.651673],[102.645477,32.651662],[102.645476,32.651547],[102.645481,32.651488],[102.645486,32.651413],[102.645458,32.651296],[102.645556,32.651139],[102.645614,32.65112],[102.645628,32.651118],[102.645741,32.651096],[102.64584,32.651101],[102.64594,32.651134],[102.645972,32.651079],[102.646015,32.651],[102.646024,32.651003],[102.64607,32.651015],[102.646091,32.651021],[102.646097,32.651022],[102.646112,32.650997],[102.646263,32.651067],[102.646467,32.651122],[102.647838,32.651148],[102.648067,32.651187],[102.648838,32.651321],[102.648833,32.651528],[102.648832,32.651555],[102.64883,32.651649],[102.648825,32.651823],[102.648731,32.651947],[102.64865,32.652053],[102.648671,32.651991],[102.648679,32.651971],[102.648689,32.651941],[102.64869,32.651893],[102.648693,32.651852],[102.648686,32.651785],[102.64865,32.651705],[102.648631,32.651676],[102.648614,32.651649],[102.648582,32.651622],[102.648556,32.651602],[102.64852,32.651575],[102.648461,32.651549],[102.648417,32.651528],[102.648381,32.651514],[102.648312,32.651489],[102.648271,32.651475],[102.648223,32.651471],[102.648176,32.651471],[102.648281,32.651509],[102.648366,32.651541],[102.648426,32.65157],[102.64847,32.6516],[102.648505,32.651632],[102.64855,32.651674],[102.648575,32.651712],[102.648579,32.651759],[102.64858,32.651819],[102.648578,32.651865],[102.648568,32.651915],[102.64856,32.651958],[102.648537,32.652014],[102.648502,32.65205],[102.648468,32.652086],[102.648441,32.652112],[102.648393,32.652157],[102.648366,32.652188],[102.648334,32.652229],[102.648312,32.65226],[102.64829,32.652285],[102.648233,32.652318],[102.648201,32.652328],[102.648169,32.652348],[102.648164,32.652357],[102.648169,32.652376],[102.648144,32.652384],[102.647995,32.652416],[102.647933,32.652445],[102.647845,32.65248],[102.647775,32.652486],[102.647701,32.652483],[102.647597,32.652484],[102.647419,32.652475],[102.647089,32.652574],[102.646914,32.652627],[102.646825,32.652654],[102.646794,32.652663],[102.64667,32.6527],[102.646644,32.652708],[102.646582,32.652727],[102.646516,32.652746],[102.646166,32.652983],[102.645964,32.653355],[102.645981,32.653973],[102.646001,32.654009],[102.646156,32.654286],[102.646513,32.654353],[102.6469,32.654426],[102.64697,32.65444],[102.647065,32.654458],[102.647189,32.654423],[102.64723,32.654411],[102.647462,32.654346],[102.64771,32.654277],[102.647894,32.654314],[102.648138,32.654364],[102.64823,32.654383],[102.648968,32.654534],[102.649164,32.654574],[102.649299,32.654632],[102.6496,32.654759],[102.649797,32.654842],[102.649976,32.654918],[102.650023,32.654938],[102.650978,32.655188],[102.651474,32.655282],[102.651494,32.655286],[102.651658,32.655317],[102.651682,32.655348],[102.651747,32.655363],[102.651773,32.655371],[102.6518,32.655389],[102.651826,32.655408],[102.651846,32.655427],[102.651856,32.655457],[102.651856,32.655485],[102.651851,32.655516],[102.651844,32.655558],[102.651907,32.655641],[102.651904,32.655567],[102.651904,32.655534],[102.651905,32.655491],[102.651905,32.655441],[102.651906,32.655414],[102.65192,32.655396],[102.651932,32.65539],[102.651961,32.655391],[102.651995,32.655409],[102.652016,32.655442],[102.652023,32.655492],[102.652021,32.655556],[102.652012,32.655609],[102.651995,32.655655],[102.651953,32.6557],[102.652172,32.655985],[102.652298,32.65615],[102.652321,32.65618],[102.652334,32.65654],[102.652341,32.656723],[102.652348,32.656915],[102.652329,32.656947],[102.652178,32.657206],[102.652146,32.65726],[102.652137,32.657275],[102.652131,32.657286],[102.652065,32.657399],[102.652013,32.657488],[102.651958,32.657562],[102.651868,32.657683],[102.651863,32.65769],[102.651729,32.65787],[102.651744,32.657942],[102.651773,32.658083],[102.651782,32.658126],[102.65181,32.658258],[102.6524,32.658423],[102.652586,32.658402],[102.652703,32.658389],[102.652811,32.658376],[102.652912,32.658365],[102.653027,32.658352],[102.653084,32.658345],[102.653146,32.658386],[102.653175,32.658414],[102.653197,32.658435],[102.653212,32.658448],[102.653215,32.658451],[102.653297,32.658495],[102.653388,32.658525],[102.653463,32.658536],[102.653568,32.658526],[102.653635,32.658509],[102.653657,32.658504],[102.65366,32.658502],[102.65373,32.658464],[102.653794,32.658421],[102.653873,32.658375],[102.65393,32.658313],[102.653984,32.658258],[102.654065,32.658218],[102.654139,32.658164],[102.654178,32.658126],[102.654189,32.658071],[102.654177,32.65799],[102.654141,32.657929],[102.654096,32.657886],[102.654034,32.657839],[102.65394,32.657765],[102.65391,32.657751],[102.653927,32.657591],[102.65393,32.657563],[102.65393,32.657544],[102.653911,32.656557],[102.654116,32.656229],[102.654197,32.656099],[102.654241,32.656052],[102.654352,32.656076],[102.654515,32.656123],[102.654614,32.656204],[102.654696,32.656224],[102.654896,32.656387],[102.655026,32.656493],[102.655036,32.656501],[102.655075,32.656533],[102.655095,32.65655],[102.655278,32.656699],[102.655442,32.656856],[102.655451,32.656865],[102.655813,32.657212],[102.6562,32.657822],[102.656384,32.658111],[102.656969,32.658771],[102.657165,32.658991],[102.657242,32.659078],[102.657708,32.659398],[102.657777,32.659446],[102.658154,32.659607],[102.65828,32.65966],[102.658717,32.659846],[102.658804,32.659884],[102.658876,32.659914],[102.658885,32.659918],[102.659854,32.660197],[102.659891,32.660207],[102.660115,32.66016],[102.660221,32.660138],[102.660263,32.660129],[102.660331,32.660115],[102.660468,32.660086],[102.66048,32.660083],[102.661071,32.659959],[102.661588,32.659901],[102.661715,32.659887],[102.661766,32.659881],[102.661976,32.659953],[102.662145,32.66001],[102.662165,32.660017],[102.662194,32.660027],[102.662423,32.660104],[102.662432,32.660107],[102.662515,32.660135],[102.662537,32.660143],[102.662547,32.660146],[102.662612,32.660168],[102.663051,32.65968],[102.663113,32.659534],[102.663392,32.658874],[102.663745,32.658782],[102.663774,32.658798],[102.663842,32.65881],[102.663957,32.658847],[102.664166,32.658972],[102.664291,32.659076],[102.664352,32.659195],[102.664496,32.659481],[102.664431,32.659931],[102.664328,32.660206],[102.664308,32.660258],[102.664301,32.660276],[102.664145,32.660693],[102.663901,32.661238],[102.663909,32.661314],[102.66393,32.661365],[102.663946,32.661403],[102.663976,32.661466],[102.664012,32.661519],[102.664063,32.661558],[102.663935,32.661619],[102.663914,32.66163],[102.663873,32.661639],[102.663952,32.661856],[102.663999,32.661985],[102.664002,32.661992],[102.664054,32.662135],[102.66456,32.662507],[102.664645,32.662571],[102.664653,32.662576],[102.664682,32.662598],[102.664897,32.662666],[102.664908,32.66267],[102.664943,32.662681],[102.665581,32.662885],[102.666715,32.66319],[102.666766,32.663204],[102.6669,32.66324],[102.667305,32.663349],[102.667533,32.663334],[102.667752,32.663338],[102.668238,32.663295],[102.668465,32.663198],[102.669047,32.66295],[102.669561,32.662815],[102.669852,32.662739],[102.669939,32.662765],[102.669943,32.662767],[102.67017,32.662835],[102.670581,32.663429],[102.670713,32.663575],[102.670729,32.663593],[102.67085,32.663727],[102.670858,32.663736],[102.670925,32.663809],[102.670967,32.663856],[102.671203,32.664118],[102.671874,32.664987],[102.671966,32.665055],[102.671979,32.665064],[102.672161,32.665199],[102.672287,32.665292],[102.672368,32.665317],[102.672453,32.665356],[102.672506,32.665382],[102.672538,32.6654],[102.672603,32.665479],[102.672814,32.66554],[102.6732,32.665651],[102.673228,32.665659],[102.673251,32.665666],[102.673508,32.665739],[102.6739,32.665784],[102.674038,32.665799],[102.674246,32.665823],[102.674347,32.665834],[102.674354,32.665835],[102.674498,32.665851],[102.674558,32.665833],[102.674644,32.665833],[102.674713,32.665832],[102.674781,32.665836],[102.674833,32.665856],[102.674869,32.665893],[102.674897,32.665896],[102.674944,32.665901],[102.675118,32.665901],[102.675141,32.665901],[102.675492,32.6659],[102.675556,32.6659],[102.675723,32.6659],[102.675732,32.6659],[102.676871,32.665897],[102.677008,32.665897],[102.677131,32.665897],[102.677243,32.665925],[102.67728,32.665935],[102.677703,32.666043],[102.677937,32.666103],[102.677949,32.666105],[102.678058,32.666133],[102.678085,32.66614],[102.678324,32.666447],[102.678355,32.666486],[102.678393,32.666535],[102.67855,32.666735],[102.678713,32.667587],[102.678699,32.668128],[102.678911,32.668592],[102.67908,32.668782],[102.679253,32.668977],[102.679342,32.669005],[102.679356,32.66901],[102.679442,32.669037],[102.67976,32.669138],[102.679888,32.669178],[102.680427,32.669351],[102.680707,32.669653],[102.680831,32.669767],[102.68084,32.669776],[102.680857,32.669791],[102.680891,32.669823],[102.681199,32.670106],[102.681207,32.670113],[102.681219,32.670179],[102.681293,32.670263],[102.681376,32.670362],[102.681539,32.670496],[102.681564,32.670516],[102.681696,32.670622],[102.681834,32.670695],[102.681933,32.670728],[102.682008,32.670744],[102.682149,32.670761],[102.68225,32.670765],[102.682315,32.670764],[102.682328,32.670767],[102.682626,32.670848],[102.682674,32.670861],[102.683073,32.670969],[102.683415,32.671332],[102.683452,32.671372],[102.683467,32.671388],[102.68354,32.671465],[102.683542,32.67147],[102.683669,32.671799],[102.683682,32.671834],[102.683692,32.67186],[102.68374,32.671985],[102.68375,32.67201],[102.683765,32.672191],[102.683765,32.672199],[102.683798,32.672606],[102.684081,32.672828],[102.684462,32.672916],[102.685395,32.672717],[102.685713,32.672804],[102.685769,32.673103],[102.68576,32.673454],[102.685527,32.673541],[102.685475,32.673561],[102.685326,32.673616],[102.685276,32.673635],[102.685199,32.673653],[102.684761,32.673761],[102.684191,32.67371],[102.683994,32.673692],[102.683294,32.673679],[102.683125,32.673646],[102.682334,32.673489],[102.68224,32.67347],[102.682123,32.673486],[102.681534,32.673566],[102.681076,32.673936],[102.681001,32.674262],[102.681038,32.674407],[102.681082,32.674508],[102.681159,32.674621],[102.681323,32.674784],[102.681411,32.674893],[102.681482,32.674975],[102.681521,32.675014],[102.681649,32.6751],[102.681748,32.675149],[102.681835,32.675168],[102.681991,32.67516],[102.682117,32.675122],[102.682356,32.675177],[102.68256,32.675187],[102.683283,32.675222],[102.683561,32.675298],[102.683601,32.675309],[102.683689,32.675608],[102.683384,32.676676],[102.683215,32.676868],[102.683093,32.677005],[102.683032,32.677005],[102.682963,32.677006],[102.682918,32.677014],[102.682844,32.677026],[102.682743,32.677065],[102.682618,32.677107],[102.68247,32.677154],[102.682431,32.677204],[102.682416,32.677278],[102.682413,32.677294],[102.682385,32.677355],[102.682326,32.677409],[102.682321,32.677414],[102.68229,32.677449],[102.682279,32.677463],[102.682263,32.677557],[102.682238,32.677683],[102.682241,32.677779],[102.682246,32.677847],[102.681831,32.678132],[102.681757,32.678183],[102.681706,32.678218],[102.681667,32.678244],[102.681637,32.678265],[102.681366,32.678451],[102.680135,32.679134],[102.678383,32.679422],[102.676639,32.67939],[102.67635,32.67926],[102.676287,32.679232],[102.67544,32.678854],[102.674451,32.678964],[102.673309,32.679135],[102.672682,32.679893],[102.672656,32.679999],[102.672635,32.680083],[102.672356,32.681203],[102.67192,32.682958],[102.671496,32.684682],[102.671464,32.685901],[102.671802,32.687511],[102.672292,32.689059],[102.67323,32.690937],[102.673717,32.692614],[102.674282,32.694228],[102.674756,32.696418],[102.675227,32.698736],[102.675186,32.700339],[102.675395,32.701302],[102.675466,32.701628],[102.675476,32.70156],[102.676411,32.70271],[102.678,32.703419],[102.678915,32.703254],[102.680319,32.702827],[102.681951,32.701906],[102.682445,32.701482],[102.68316,32.700868],[102.683759,32.700354],[102.687705,32.696008],[102.68777,32.695936],[102.691877,32.691413],[102.693023,32.69015],[102.693482,32.690181],[102.693933,32.690212],[102.693941,32.690213],[102.695055,32.690323],[102.696438,32.690711],[102.698076,32.691602],[102.698802,32.692522],[102.698869,32.694109],[102.698738,32.695012],[102.698919,32.696329],[102.69933,32.697017],[102.699845,32.697841],[102.701003,32.698633],[102.70224,32.698831],[102.702284,32.698838],[102.703359,32.698676],[102.704211,32.698918],[102.705215,32.699435],[102.706591,32.70014],[102.707656,32.700386],[102.708339,32.700897],[102.709341,32.701549],[102.710017,32.702332],[102.710474,32.703337],[102.711045,32.704072],[102.710897,32.705149],[102.710358,32.706276],[102.709519,32.70857],[102.709183,32.710255],[102.709942,32.711094],[102.710765,32.713253],[102.711114,32.714868],[102.711905,32.716367],[102.712407,32.717695],[102.712902,32.719354],[102.713119,32.720389],[102.713414,32.722209],[102.713869,32.723495],[102.714009,32.725642],[102.71461,32.727312],[102.714921,32.728174],[102.715777,32.730953],[102.716123,32.732691],[102.716965,32.734109],[102.717708,32.735566],[102.717499,32.736098],[102.717228,32.737165],[102.716983,32.73914],[102.716626,32.743546],[102.716646,32.743862],[102.71673,32.745239],[102.717,32.748006],[102.717373,32.748714],[102.717787,32.749711],[102.718502,32.750343],[102.719018,32.751013],[102.719211,32.751263],[102.720301,32.75252],[102.720966,32.753233],[102.721534,32.753945],[102.72146,32.754933],[102.721475,32.756253],[102.721303,32.758239],[102.721268,32.758641],[102.721183,32.760042],[102.721403,32.760994],[102.721535,32.761574],[102.721528,32.761909],[102.721562,32.761901],[102.721722,32.761859],[102.722461,32.761665],[102.723295,32.761681],[102.725669,32.762026],[102.726982,32.761949],[102.728347,32.762125],[102.729958,32.762053],[102.731268,32.762077],[102.732346,32.761845],[102.733005,32.761706],[102.734195,32.761778],[102.736213,32.762066],[102.738288,32.762456],[102.739106,32.763074],[102.740571,32.764057],[102.74239,32.76516],[102.743606,32.766541],[102.745408,32.767744],[102.746884,32.768778],[102.746896,32.768786],[102.746903,32.768791],[102.746988,32.768817],[102.747007,32.768823],[102.747886,32.769096],[102.747987,32.769127],[102.74832,32.769231],[102.748441,32.769253],[102.748457,32.769256],[102.748725,32.769304],[102.74874,32.769307],[102.749675,32.769477],[102.749676,32.769478],[102.749698,32.769482],[102.751567,32.769817],[102.753668,32.76978],[102.755127,32.77041],[102.756347,32.77164],[102.756686,32.772363],[102.757023,32.7732],[102.757893,32.774121],[102.759334,32.775469],[102.760564,32.776321],[102.762059,32.777292],[102.762794,32.778286],[102.76358,32.779018],[102.764572,32.780432],[102.766972,32.782778],[102.768283,32.783934],[102.768603,32.789036],[102.768401,32.789977],[102.768283,32.791107],[102.767846,32.792496],[102.767758,32.794231],[102.7685,32.796736],[102.769432,32.798791],[102.77063,32.800927],[102.771281,32.801731],[102.772867,32.802665],[102.774801,32.803983],[102.777841,32.805774],[102.779207,32.806553],[102.779383,32.80667],[102.778828,32.807415],[102.778451,32.808201],[102.778086,32.810271],[102.778714,32.811981],[102.778952,32.813193],[102.778791,32.814285],[102.778842,32.815834],[102.778698,32.818021],[102.778082,32.819407],[102.77715,32.820938],[102.776819,32.82165],[102.776928,32.822671],[102.777201,32.824299],[102.777562,32.825929],[102.77749,32.827022],[102.777092,32.8281],[102.776963,32.828447],[102.776835,32.829659],[102.776788,32.830105],[102.776818,32.830249],[102.776906,32.830668],[102.777068,32.831432],[102.777469,32.833251],[102.777969,32.834732],[102.778723,32.836784],[102.778864,32.838297],[102.779019,32.839244],[102.778935,32.840828],[102.77866,32.844711],[102.778601,32.847051],[102.778394,32.84818],[102.77869,32.848865],[102.780298,32.850743],[102.780965,32.852718],[102.781341,32.853782],[102.78237,32.855536],[102.782782,32.856978],[102.782848,32.857923],[102.782824,32.858867],[102.782933,32.859888],[102.783364,32.862349],[102.78402,32.864739],[102.784091,32.865458],[102.784121,32.866063],[102.784325,32.866859],[102.785388,32.867293],[102.785395,32.867294],[102.785864,32.867321],[102.786326,32.867347],[102.786548,32.867429],[102.78658,32.867441],[102.786635,32.867461],[102.787301,32.867705],[102.787402,32.86777],[102.787411,32.867776],[102.787497,32.867831],[102.787511,32.86784],[102.787961,32.868131],[102.788486,32.868632],[102.789357,32.869591],[102.78952,32.869795],[102.789877,32.870242],[102.790525,32.871394],[102.790649,32.871614],[102.790717,32.872446],[102.791453,32.873441],[102.791954,32.874884],[102.791887,32.875789],[102.791732,32.876617],[102.792015,32.87783],[102.792195,32.879607],[102.792755,32.880486],[102.794064,32.88183],[102.794845,32.882788],[102.795721,32.883558],[102.795932,32.884053],[102.795936,32.884076],[102.796124,32.88534],[102.795807,32.887297],[102.795242,32.890232],[102.794852,32.891546],[102.794106,32.892741],[102.793577,32.894242],[102.793334,32.894993],[102.793136,32.895782],[102.792982,32.896572],[102.792529,32.897642],[102.792174,32.898483],[102.792136,32.898708],[102.792016,32.899424],[102.791897,32.90063],[102.791918,32.901574],[102.79194,32.902481],[102.792147,32.904164],[102.792201,32.904599],[102.792311,32.905583],[102.792598,32.906607],[102.79258,32.907362],[102.792562,32.908079],[102.792588,32.908293],[102.792589,32.908296],[102.792659,32.908868],[102.792674,32.908987],[102.792499,32.909857],[102.792469,32.910003],[102.792451,32.910076],[102.792448,32.91009],[102.79243,32.91016],[102.792427,32.910174],[102.792381,32.91036],[102.79235,32.910484],[102.792171,32.911206],[102.791795,32.91166],[102.791772,32.911688],[102.791637,32.911851],[102.79161,32.911953],[102.791593,32.911993],[102.791561,32.912038],[102.791531,32.912086],[102.791515,32.912118],[102.791503,32.91218],[102.791459,32.912257],[102.791388,32.912299],[102.791313,32.912243],[102.791248,32.912322],[102.791095,32.912434],[102.791086,32.91244],[102.790959,32.912533],[102.790291,32.913022],[102.79009,32.913887],[102.790084,32.91414],[102.790069,32.914745],[102.790066,32.914868],[102.790168,32.915826],[102.790175,32.915889],[102.790176,32.915935],[102.790184,32.916358],[102.790195,32.916856],[102.790195,32.916871],[102.790185,32.91692],[102.790161,32.917035],[102.790093,32.91736],[102.789727,32.917693],[102.789323,32.917724],[102.789246,32.917726],[102.789228,32.917726],[102.789098,32.91773],[102.78886,32.917735],[102.788656,32.91774],[102.788644,32.917719],[102.788542,32.91766],[102.788463,32.917656],[102.788329,32.917688],[102.788313,32.917692],[102.788186,32.917746],[102.788048,32.917806],[102.787935,32.917821],[102.787859,32.917819],[102.787644,32.917837],[102.787617,32.917841],[102.787394,32.917881],[102.787318,32.917956],[102.787287,32.918051],[102.78726,32.918079],[102.787174,32.918127],[102.786756,32.918358],[102.78661,32.918476],[102.786551,32.918524],[102.786525,32.918546],[102.786208,32.918801],[102.786149,32.918839],[102.786003,32.918932],[102.785914,32.918988],[102.785818,32.919049],[102.785616,32.919177],[102.785571,32.919205],[102.785332,32.919338],[102.784709,32.919681],[102.784388,32.919977],[102.78422,32.920068],[102.784185,32.920084],[102.78412,32.920115],[102.783675,32.920321],[102.783617,32.920393],[102.783543,32.920473],[102.783454,32.920564],[102.783366,32.92062],[102.783167,32.92094],[102.783114,32.921025],[102.783102,32.921043],[102.783091,32.921058],[102.782407,32.921923],[102.782113,32.922097],[102.781916,32.922214],[102.781909,32.922218],[102.781674,32.922357],[102.781286,32.922431],[102.781227,32.922443],[102.781198,32.922448],[102.781004,32.922486],[102.780877,32.92251],[102.780821,32.922521],[102.780707,32.922543],[102.779793,32.922567],[102.778451,32.92234],[102.777396,32.9222],[102.776782,32.921742],[102.776003,32.920942],[102.776038,32.920923],[102.776038,32.920889],[102.77599,32.920763],[102.775953,32.920716],[102.775837,32.920637],[102.775724,32.920578],[102.775685,32.920557],[102.775565,32.920533],[102.775406,32.92053],[102.775292,32.920549],[102.775272,32.920539],[102.775261,32.920538],[102.774659,32.920528],[102.774166,32.920519],[102.772761,32.9209],[102.772644,32.92093],[102.771647,32.921183],[102.770824,32.921393],[102.770498,32.921468],[102.769064,32.921799],[102.768917,32.921832],[102.768211,32.921995],[102.765263,32.922511],[102.763859,32.922868],[102.763759,32.922893],[102.763664,32.922917],[102.763326,32.923003],[102.76197,32.923076],[102.760483,32.923155],[102.759033,32.923413],[102.757962,32.923922],[102.75694,32.92439],[102.755851,32.925049],[102.755767,32.9251],[102.755343,32.92565],[102.755324,32.925675],[102.75512,32.92594],[102.755005,32.926005],[102.754486,32.926294],[102.754013,32.926339],[102.753762,32.926362],[102.752718,32.925775],[102.750897,32.92471],[102.750821,32.924666],[102.75014,32.924268],[102.749539,32.923916],[102.749067,32.92364],[102.749043,32.92362],[102.748981,32.923567],[102.748182,32.922896],[102.747441,32.92239],[102.747439,32.922335],[102.747439,32.922325],[102.747411,32.922251],[102.747367,32.922131],[102.747305,32.922024],[102.747181,32.921783],[102.747138,32.9217],[102.747119,32.921684],[102.746578,32.921241],[102.746567,32.921239],[102.746329,32.921189],[102.746121,32.921145],[102.746019,32.921124],[102.746005,32.921121],[102.745525,32.92102],[102.744962,32.921075],[102.744943,32.921059],[102.744916,32.92106],[102.744895,32.921081],[102.744411,32.921129],[102.744397,32.92113],[102.744126,32.921157],[102.743884,32.921212],[102.743816,32.921258],[102.74378,32.921278],[102.743748,32.92135],[102.743591,32.921428],[102.74334,32.921553],[102.743312,32.921719],[102.743304,32.921767],[102.74328,32.921913],[102.743256,32.922054],[102.743253,32.922069],[102.743209,32.92233],[102.743185,32.922477],[102.743265,32.922461],[102.743288,32.922482],[102.743284,32.92251],[102.743266,32.922591],[102.743221,32.922724],[102.743198,32.922799],[102.743198,32.922843],[102.743208,32.92291],[102.74322,32.922971],[102.743238,32.923032],[102.743254,32.923076],[102.743306,32.923128],[102.743392,32.923538],[102.74332,32.923671],[102.743241,32.923819],[102.742972,32.923786],[102.742914,32.923778],[102.742902,32.923777],[102.742859,32.923772],[102.742664,32.923748],[102.742473,32.923724],[102.742381,32.923703],[102.74136,32.923474],[102.741241,32.923447],[102.74112,32.923392],[102.740974,32.92334],[102.740795,32.923289],[102.740621,32.923268],[102.74047,32.923257],[102.740368,32.923194],[102.740282,32.92314],[102.740175,32.923074],[102.740037,32.922988],[102.739923,32.922917],[102.739811,32.922848],[102.739661,32.922755],[102.739501,32.92266],[102.739349,32.922569],[102.73921,32.922475],[102.739069,32.922388],[102.738913,32.922291],[102.738759,32.922196],[102.738677,32.922141],[102.738578,32.922075],[102.738424,32.921973],[102.738326,32.921907],[102.73822,32.921837],[102.738081,32.921744],[102.737933,32.921646],[102.737763,32.921532],[102.737582,32.921412],[102.737408,32.921296],[102.737241,32.921184],[102.737116,32.921101],[102.736945,32.920987],[102.736807,32.920895],[102.73663,32.920778],[102.736439,32.920621],[102.736177,32.920407],[102.735922,32.920198],[102.735707,32.920021],[102.735575,32.919913],[102.735408,32.919777],[102.735104,32.919528],[102.734929,32.919384],[102.734786,32.919267],[102.734604,32.919118],[102.734407,32.918941],[102.734196,32.918751],[102.733962,32.918514],[102.733821,32.918381],[102.733813,32.918373],[102.733601,32.918174],[102.733385,32.91797],[102.733241,32.917835],[102.733084,32.91758],[102.732956,32.917371],[102.732834,32.917172],[102.732409,32.916481],[102.732131,32.916324],[102.731291,32.915851],[102.7311,32.915744],[102.730844,32.9156],[102.730825,32.915564],[102.730774,32.915564],[102.730742,32.915484],[102.73071,32.915442],[102.730692,32.915396],[102.730666,32.915328],[102.730646,32.915269],[102.730611,32.915197],[102.730604,32.915148],[102.730431,32.914821],[102.73045,32.914098],[102.730451,32.914056],[102.730457,32.913807],[102.730416,32.913718],[102.730393,32.913668],[102.730318,32.913505],[102.730317,32.913503],[102.730268,32.913397],[102.730192,32.913232],[102.72991,32.912621],[102.729624,32.912485],[102.729546,32.912448],[102.729416,32.912485],[102.729271,32.91247],[102.729104,32.912447],[102.729003,32.912416],[102.728956,32.912386],[102.728923,32.912373],[102.728853,32.912364],[102.728723,32.912359],[102.728318,32.91239],[102.728273,32.91241],[102.728178,32.912451],[102.728131,32.912471],[102.728089,32.912489],[102.727891,32.912583],[102.72786,32.9126],[102.7278,32.912634],[102.727718,32.912715],[102.727617,32.912821],[102.727519,32.912918],[102.727385,32.913042],[102.727329,32.913152],[102.727323,32.913157],[102.727005,32.913339],[102.726769,32.913295],[102.726683,32.913328],[102.726672,32.913328],[102.726669,32.913316],[102.726707,32.913283],[102.726503,32.913245],[102.726484,32.913241],[102.726459,32.913236],[102.726388,32.913223],[102.726047,32.913159],[102.724997,32.912622],[102.72498,32.912613],[102.724963,32.912605],[102.724813,32.912528],[102.724754,32.912513],[102.724466,32.912438],[102.724455,32.912436],[102.724443,32.912432],[102.724086,32.91234],[102.724068,32.912336],[102.72387,32.912284],[102.723754,32.912254],[102.723202,32.912112],[102.72308,32.91208],[102.722942,32.912045],[102.722804,32.912009],[102.722614,32.91196],[102.722608,32.911961],[102.722541,32.911974],[102.722528,32.911977],[102.722522,32.911978],[102.722416,32.911998],[102.721067,32.912257],[102.720696,32.91246],[102.720509,32.912563],[102.719994,32.912846],[102.71978,32.912873],[102.718304,32.913058],[102.71758,32.913167],[102.71658,32.912743],[102.716465,32.91247],[102.71643,32.912388],[102.716229,32.911912],[102.716218,32.911884],[102.716183,32.911854],[102.716182,32.911853],[102.715599,32.911339],[102.715582,32.911339],[102.715443,32.911336],[102.715372,32.911327],[102.715321,32.911309],[102.715254,32.911274],[102.715182,32.911236],[102.715117,32.911207],[102.715039,32.911186],[102.714956,32.911162],[102.71487,32.911103],[102.714747,32.911086],[102.714365,32.911054],[102.714299,32.911049],[102.714274,32.911047],[102.714123,32.911034],[102.713932,32.910911],[102.713413,32.910575],[102.712907,32.910053],[102.712776,32.909808],[102.712665,32.909666],[102.712609,32.909589],[102.712418,32.909461],[102.712252,32.909414],[102.712227,32.909408],[102.712116,32.909376],[102.711933,32.909306],[102.711733,32.909211],[102.711516,32.909092],[102.711279,32.908959],[102.71108,32.908821],[102.710956,32.908706],[102.710802,32.908622],[102.710755,32.908581],[102.710722,32.908578],[102.710292,32.908524],[102.709571,32.908435],[102.7087,32.908622],[102.708361,32.908658],[102.708216,32.908674],[102.708159,32.90868],[102.708094,32.908687],[102.707735,32.908726],[102.707646,32.908707],[102.707575,32.908692],[102.706683,32.908504],[102.706412,32.908304],[102.706367,32.908272],[102.706339,32.908251],[102.705893,32.907924],[102.705886,32.907918],[102.705833,32.907879],[102.705574,32.907808],[102.705442,32.907771],[102.70505,32.907662],[102.704856,32.907609],[102.704734,32.907575],[102.704478,32.907608],[102.704457,32.90761],[102.703898,32.907681],[102.703674,32.90771],[102.703656,32.907712],[102.703616,32.907717],[102.702512,32.907857],[102.702224,32.907894],[102.702106,32.907929],[102.702094,32.907932],[102.701927,32.907981],[102.700916,32.908276],[102.700469,32.908352],[102.700258,32.908388],[102.700235,32.908392],[102.698983,32.908605],[102.698446,32.908772],[102.698352,32.908801],[102.69829,32.90882],[102.697734,32.908993],[102.697625,32.909027],[102.697544,32.909051],[102.697536,32.909054],[102.697161,32.909169],[102.696122,32.909486],[102.69524,32.909546],[102.695183,32.90955],[102.694242,32.909614],[102.692375,32.909255],[102.691648,32.909009],[102.691632,32.909004],[102.691541,32.908973],[102.691524,32.908967],[102.691508,32.908962],[102.691436,32.908938],[102.691092,32.908822],[102.690849,32.908739],[102.690785,32.908684],[102.690442,32.908393],[102.690057,32.908066],[102.690044,32.908054],[102.689756,32.907809],[102.689737,32.907793],[102.689666,32.907732],[102.689484,32.907578],[102.688524,32.906942],[102.688397,32.906859],[102.688349,32.906826],[102.687006,32.90668],[102.686953,32.906701],[102.686929,32.90671],[102.686633,32.906829],[102.686622,32.906833],[102.68652,32.906874],[102.686487,32.906872],[102.685877,32.906839],[102.68578,32.906834],[102.685487,32.906818],[102.685367,32.906812],[102.685174,32.906788],[102.685024,32.90677],[102.684669,32.906727],[102.684588,32.906717],[102.684176,32.906668],[102.684065,32.906654],[102.683806,32.906623],[102.683784,32.90662],[102.683315,32.906611],[102.683042,32.906606],[102.682871,32.906603],[102.682832,32.906601],[102.682784,32.906598],[102.682777,32.906597],[102.682606,32.906587],[102.682449,32.906578],[102.68191,32.906545],[102.681343,32.906169],[102.681218,32.905396],[102.681288,32.905277],[102.681325,32.905214],[102.681571,32.904794],[102.682643,32.904259],[102.682647,32.904257],[102.68277,32.904196],[102.682796,32.904149],[102.682817,32.904128],[102.68285,32.904113],[102.682898,32.904094],[102.682939,32.904074],[102.682995,32.904034],[102.683052,32.903728],[102.683054,32.903717],[102.683152,32.9032],[102.682116,32.902328],[102.681595,32.90209],[102.681351,32.901978],[102.681107,32.901866],[102.681053,32.901841],[102.680548,32.901609],[102.68039,32.9014],[102.680397,32.90136],[102.680399,32.901325],[102.680397,32.901294],[102.680387,32.901265],[102.680348,32.901209],[102.680333,32.90119],[102.680306,32.901158],[102.680419,32.900913],[102.680429,32.90089],[102.680458,32.900829],[102.680677,32.900354],[102.680776,32.900262],[102.68106,32.9],[102.681367,32.899717],[102.68195,32.899485],[102.682538,32.899364],[102.682578,32.899356],[102.682595,32.899352],[102.682675,32.899336],[102.682987,32.89914],[102.683013,32.899108],[102.683031,32.899093],[102.683051,32.899082],[102.683071,32.899073],[102.683115,32.89906],[102.683116,32.899033],[102.683117,32.898998],[102.683121,32.898865],[102.683124,32.898712],[102.683163,32.898703],[102.683259,32.898671],[102.683286,32.898632],[102.683301,32.89855],[102.683301,32.898442],[102.683302,32.898416],[102.683266,32.898424],[102.683253,32.898474],[102.683219,32.89852],[102.683182,32.898554],[102.683128,32.898592],[102.683137,32.898249],[102.682616,32.89779],[102.682605,32.89778],[102.682525,32.89771],[102.682409,32.89764],[102.682273,32.897558],[102.682161,32.89749],[102.682138,32.897476],[102.681483,32.897082],[102.68052,32.896233],[102.680475,32.896192],[102.680198,32.895948],[102.680026,32.895797],[102.67982,32.895665],[102.679814,32.895643],[102.679779,32.895555],[102.679745,32.895517],[102.679629,32.895423],[102.679411,32.895317],[102.67922,32.895247],[102.679132,32.895223],[102.678985,32.895128],[102.677992,32.89485],[102.677744,32.89478],[102.677699,32.894764],[102.67769,32.89476],[102.6766,32.894353],[102.675437,32.893248],[102.67542,32.893233],[102.67538,32.893194],[102.675214,32.893161],[102.675156,32.89315],[102.675121,32.893143],[102.674934,32.893105],[102.674932,32.893105],[102.67471,32.89306],[102.674546,32.89318],[102.674391,32.893184],[102.674259,32.893207],[102.674224,32.89325],[102.674244,32.893347],[102.674267,32.893385],[102.674171,32.893456],[102.67406,32.893538],[102.673934,32.893631],[102.673905,32.893652],[102.673732,32.89378],[102.673727,32.893784],[102.673582,32.893891],[102.673208,32.894028],[102.672699,32.894213],[102.672417,32.894316],[102.672181,32.894434],[102.671994,32.894497],[102.67193,32.894503],[102.671904,32.894503],[102.671862,32.894594],[102.671247,32.894903],[102.670716,32.895224],[102.670569,32.895312],[102.67052,32.895342],[102.670465,32.895375],[102.669704,32.895513],[102.66962,32.895528],[102.66958,32.895536],[102.66945,32.895559],[102.669277,32.895625],[102.669132,32.89568],[102.669116,32.895686],[102.668799,32.895807],[102.668775,32.895816],[102.668715,32.895839],[102.668332,32.895985],[102.666727,32.896685],[102.665941,32.897279],[102.665743,32.897268],[102.665707,32.897265],[102.665347,32.897244],[102.665116,32.897231],[102.664991,32.897223],[102.664967,32.897222],[102.664933,32.89722],[102.664223,32.89676],[102.663669,32.895898],[102.663396,32.895284],[102.663359,32.895057],[102.663371,32.89486],[102.66337,32.89451],[102.663323,32.89421],[102.663343,32.893988],[102.663309,32.893941],[102.663284,32.893795],[102.663283,32.89368],[102.663286,32.893564],[102.663282,32.893498],[102.663254,32.893365],[102.663256,32.893314],[102.663256,32.893293],[102.663252,32.89328],[102.662943,32.892394],[102.662522,32.89194],[102.662236,32.891849],[102.661711,32.891681],[102.661289,32.891693],[102.660845,32.891706],[102.660163,32.892018],[102.659453,32.892706],[102.659423,32.892734],[102.658214,32.892995],[102.658175,32.893014],[102.657727,32.89323],[102.657708,32.893378],[102.657666,32.893716],[102.657717,32.893906],[102.65772,32.893918],[102.657903,32.8946],[102.65794,32.894737],[102.657951,32.894777],[102.65794,32.894795],[102.657916,32.894839],[102.657896,32.894884],[102.657877,32.894944],[102.657853,32.895028],[102.657844,32.895084],[102.657837,32.895136],[102.657831,32.895167],[102.657807,32.895215],[102.657779,32.895304],[102.657769,32.895364],[102.657763,32.89542],[102.657763,32.89547],[102.657774,32.895521],[102.657781,32.895561],[102.657788,32.895596],[102.657788,32.895639],[102.657799,32.895756],[102.657791,32.89579],[102.657775,32.895842],[102.65776,32.895902],[102.657748,32.895951],[102.657742,32.896022],[102.657734,32.896075],[102.657719,32.896123],[102.657707,32.89615],[102.65768,32.896189],[102.657647,32.896223],[102.657595,32.896269],[102.657554,32.89631],[102.657512,32.896339],[102.657405,32.896396],[102.657375,32.896389],[102.657355,32.896381],[102.657345,32.896369],[102.657314,32.896348],[102.657283,32.896342],[102.657312,32.896324],[102.657266,32.89632],[102.65702,32.896301],[102.656172,32.895635],[102.655809,32.894817],[102.655688,32.894715],[102.655666,32.894697],[102.655436,32.894503],[102.655407,32.894417],[102.655358,32.894329],[102.655286,32.894246],[102.655241,32.89421],[102.655207,32.894169],[102.655163,32.894122],[102.655118,32.894094],[102.655054,32.894067],[102.654965,32.894054],[102.654896,32.894049],[102.654798,32.893966],[102.654774,32.893945],[102.654404,32.893727],[102.653779,32.893359],[102.65373,32.893353],[102.652916,32.893261],[102.651553,32.893885],[102.651363,32.894026],[102.650313,32.894808],[102.650277,32.894835],[102.649741,32.895177],[102.649687,32.895212],[102.649682,32.895287],[102.649552,32.895349],[102.649337,32.895435],[102.649227,32.895473],[102.649158,32.895495],[102.64909,32.895525],[102.649038,32.895568],[102.648795,32.895776],[102.648588,32.895963],[102.648418,32.896141],[102.64829,32.896338],[102.648212,32.89648],[102.648187,32.896508],[102.648151,32.89655],[102.647916,32.896819],[102.647879,32.896904],[102.647714,32.897294],[102.647717,32.897316],[102.647728,32.897394],[102.647752,32.897419],[102.647788,32.897445],[102.647823,32.897475],[102.647846,32.897512],[102.64786,32.897547],[102.64793,32.897624],[102.647969,32.897665],[102.648051,32.897713],[102.648333,32.897805],[102.648415,32.897833],[102.648421,32.897844],[102.648468,32.897922],[102.648575,32.8981],[102.648604,32.89815],[102.64862,32.898176],[102.648662,32.898199],[102.64869,32.898216],[102.648715,32.89824],[102.648726,32.898265],[102.648722,32.898283],[102.648697,32.898305],[102.648705,32.898318],[102.64874,32.898377],[102.648741,32.898383],[102.648955,32.899355],[102.64878,32.900186],[102.648746,32.900349],[102.648734,32.900406],[102.648717,32.900438],[102.648685,32.900502],[102.648589,32.900687],[102.64858,32.900704],[102.648493,32.900872],[102.648278,32.90129],[102.647988,32.90164],[102.647956,32.901679],[102.647949,32.901687],[102.647921,32.901721],[102.647781,32.901889],[102.64764,32.901948],[102.647604,32.901963],[102.64676,32.902316],[102.64648,32.90233],[102.646439,32.902333],[102.646228,32.902343],[102.645604,32.902375],[102.644939,32.902038],[102.644289,32.901174],[102.644176,32.901064],[102.644163,32.901051],[102.644144,32.901032],[102.644057,32.900946],[102.643867,32.90076],[102.643849,32.900753],[102.643616,32.900664],[102.643604,32.900659],[102.643417,32.900587],[102.6432,32.900504],[102.642113,32.900808],[102.642078,32.900818],[102.642057,32.900824],[102.641843,32.900884],[102.641649,32.901007],[102.64163,32.901019],[102.641605,32.901035],[102.640913,32.901475],[102.63978,32.902389],[102.639772,32.902395],[102.639571,32.902558],[102.639537,32.902585],[102.639399,32.90291],[102.639282,32.902909],[102.639166,32.903117],[102.639114,32.903378],[102.638917,32.903767],[102.638813,32.904022],[102.638725,32.904683],[102.638729,32.904799],[102.63872,32.904826],[102.638717,32.904836],[102.638653,32.905044],[102.638736,32.90575],[102.638736,32.905752],[102.638742,32.905803],[102.638776,32.906093],[102.63881,32.906386],[102.638846,32.906641],[102.638847,32.906642],[102.638848,32.906654],[102.638899,32.907013],[102.638906,32.907058],[102.638977,32.90756],[102.638979,32.90757],[102.638991,32.907659],[102.638974,32.907675],[102.638949,32.907703],[102.638926,32.907731],[102.638899,32.907758],[102.638875,32.907784],[102.638857,32.907807],[102.638858,32.907849],[102.638854,32.907902],[102.638816,32.907979],[102.638808,32.908094],[102.638818,32.908252],[102.63883,32.908446],[102.638775,32.908519],[102.638719,32.908595],[102.638712,32.908603],[102.638689,32.908634],[102.638553,32.908816],[102.637774,32.908863],[102.63776,32.908864],[102.637544,32.908877],[102.637562,32.90884],[102.637562,32.908815],[102.637542,32.908784],[102.637512,32.908781],[102.637467,32.908792],[102.637379,32.908827],[102.6372,32.908772],[102.637197,32.90877],[102.637189,32.908768],[102.636573,32.908576],[102.636569,32.908575],[102.636298,32.908491],[102.636157,32.908447],[102.636056,32.908415],[102.636014,32.908402],[102.635631,32.908196],[102.635759,32.908208],[102.635831,32.908216],[102.635777,32.908162],[102.635734,32.908135],[102.635648,32.908099],[102.635548,32.908071],[102.635437,32.90806],[102.635295,32.908014],[102.635186,32.907955],[102.634924,32.907813],[102.634893,32.907818],[102.6348,32.907831],[102.634803,32.907842],[102.634825,32.907857],[102.634845,32.907863],[102.634881,32.90788],[102.634866,32.90789],[102.63481,32.907899],[102.634773,32.907902],[102.634725,32.907908],[102.634669,32.907916],[102.634622,32.90792],[102.634578,32.90792],[102.63451,32.907935],[102.63444,32.907938],[102.634425,32.907924],[102.634408,32.907894],[102.634405,32.907885],[102.634259,32.907906],[102.634151,32.907921],[102.634106,32.907965],[102.633982,32.908013],[102.63376,32.908214],[102.633673,32.90837],[102.633669,32.908378],[102.633706,32.908358],[102.633697,32.908384],[102.633672,32.908455],[102.633446,32.909084],[102.633448,32.909315],[102.633451,32.909577],[102.633459,32.910423],[102.633158,32.911157],[102.633161,32.911223],[102.633099,32.911405],[102.633064,32.911482],[102.63295,32.911488],[102.632554,32.911727],[102.632352,32.911849],[102.632265,32.911902],[102.632122,32.911942],[102.632098,32.911948],[102.631709,32.912057],[102.631528,32.912107],[102.631066,32.912236],[102.63096,32.912265],[102.63089,32.912285],[102.63074,32.912327],[102.630646,32.912353],[102.630222,32.912471],[102.630083,32.91251],[102.629619,32.912738],[102.629352,32.912869],[102.629346,32.912872],[102.629248,32.912921],[102.628729,32.913174],[102.628468,32.913304],[102.628357,32.913358],[102.628346,32.913364],[102.627938,32.913564],[102.627826,32.913638],[102.627857,32.913679],[102.627804,32.913724],[102.627757,32.913764],[102.627717,32.913797],[102.627673,32.913766],[102.627622,32.913737],[102.627566,32.913712],[102.627486,32.913682],[102.627372,32.913652],[102.627293,32.913637],[102.627293,32.913665],[102.627294,32.913681],[102.627296,32.913693],[102.627301,32.913705],[102.627311,32.913725],[102.627312,32.913727],[102.627329,32.913749],[102.627343,32.913764],[102.627359,32.913775],[102.627386,32.913787],[102.627403,32.913797],[102.627407,32.913805],[102.627407,32.913819],[102.627408,32.913845],[102.627409,32.913899],[102.627406,32.913915],[102.62732,32.913971],[102.6273,32.913985],[102.627293,32.913989],[102.627188,32.913927],[102.627174,32.913921],[102.627014,32.914039],[102.626826,32.914228],[102.62657,32.914466],[102.626464,32.914602],[102.626331,32.914751],[102.626316,32.914762],[102.626231,32.91482],[102.62621,32.914864],[102.626131,32.914873],[102.625475,32.915709],[102.625147,32.916259],[102.625056,32.91641],[102.625006,32.916494],[102.624972,32.916551],[102.624471,32.917272],[102.624304,32.91738],[102.623325,32.91801],[102.622727,32.918396],[102.622575,32.918494],[102.622537,32.918518],[102.622456,32.91857],[102.622344,32.918642],[102.622268,32.918691],[102.622264,32.91871],[102.622252,32.918768],[102.622121,32.919364],[102.622022,32.919816],[102.62206,32.91986],[102.622119,32.919923],[102.622167,32.919965],[102.622164,32.92019],[102.622187,32.920224],[102.622252,32.920318],[102.622343,32.92045],[102.622378,32.920501],[102.622472,32.920638],[102.622504,32.920684],[102.622518,32.920701],[102.622552,32.92074],[102.6226,32.920797],[102.622695,32.920909],[102.622876,32.921123],[102.623484,32.921839],[102.62413,32.922457],[102.62423,32.922553],[102.62438,32.922696],[102.624385,32.922701],[102.624406,32.922721],[102.624427,32.922741],[102.62437,32.922788],[102.624522,32.922893],[102.624547,32.922905],[102.624716,32.923072],[102.62479,32.923129],[102.624853,32.923176],[102.624911,32.923211],[102.625064,32.923265],[102.625123,32.923279],[102.625135,32.923302],[102.625125,32.923322],[102.625088,32.923338],[102.625042,32.923351],[102.624992,32.923371],[102.624956,32.923393],[102.624953,32.923416],[102.624965,32.923437],[102.624994,32.923441],[102.625048,32.923421],[102.625101,32.923415],[102.625141,32.923431],[102.625196,32.923452],[102.625238,32.923459],[102.625316,32.923467],[102.625361,32.923485],[102.625368,32.923522],[102.625375,32.923548],[102.625424,32.923582],[102.625475,32.923596],[102.62553,32.923609],[102.625586,32.923629],[102.625633,32.923653],[102.625661,32.923676],[102.625703,32.92369],[102.625732,32.923722],[102.625746,32.923751],[102.625774,32.923775],[102.625802,32.923772],[102.625821,32.923754],[102.625858,32.923709],[102.625869,32.923702],[102.626133,32.923866],[102.626219,32.92392],[102.626306,32.923997],[102.626462,32.924135],[102.626609,32.924265],[102.626683,32.92433],[102.626866,32.924491],[102.627123,32.924718],[102.627159,32.92475],[102.627204,32.924827],[102.62724,32.924891],[102.62737,32.925116],[102.627443,32.925242],[102.627509,32.925355],[102.627544,32.925416],[102.627565,32.925452],[102.627717,32.925716],[102.627822,32.925898],[102.627826,32.925905],[102.627842,32.925932],[102.627941,32.926104],[102.627952,32.926149],[102.628035,32.926495],[102.628072,32.926649],[102.62809,32.926724],[102.628244,32.927368],[102.627833,32.928334],[102.627594,32.928481],[102.626806,32.928964],[102.626676,32.929114],[102.626655,32.929138],[102.626642,32.929153],[102.626012,32.929882],[102.625868,32.930111],[102.625668,32.93043],[102.625621,32.930505],[102.625606,32.930529],[102.625524,32.93066],[102.625345,32.930946],[102.625332,32.930966],[102.625177,32.931215],[102.625169,32.931228],[102.625197,32.931232],[102.625206,32.931252],[102.625206,32.931274],[102.625195,32.931307],[102.625181,32.931332],[102.625159,32.931349],[102.625083,32.931365],[102.625046,32.931365],[102.625017,32.931375],[102.624994,32.931421],[102.624988,32.931461],[102.62497,32.931512],[102.624945,32.931545],[102.624893,32.931572],[102.624853,32.931583],[102.624823,32.931597],[102.624812,32.931628],[102.62483,32.931679],[102.624694,32.931801],[102.624417,32.932049],[102.624352,32.932108],[102.62434,32.932118],[102.624322,32.932275],[102.624296,32.932367],[102.624268,32.932451],[102.62425,32.932496],[102.624212,32.932505],[102.624131,32.932516],[102.624021,32.932543],[102.623915,32.932574],[102.623863,32.932619],[102.623785,32.932719],[102.623691,32.932796],[102.623547,32.932913],[102.62347,32.932992],[102.623394,32.933046],[102.623314,32.933071],[102.623205,32.933127],[102.623085,32.933154],[102.623006,32.933178],[102.622959,32.933214],[102.622869,32.933262],[102.622749,32.933313],[102.622607,32.933378],[102.622452,32.933447],[102.622308,32.933513],[102.622146,32.933591],[102.621992,32.933632],[102.621881,32.933675],[102.621854,32.933686],[102.621769,32.93371],[102.621693,32.933708],[102.621696,32.93369],[102.621698,32.93368],[102.621699,32.933675],[102.621682,32.933559],[102.621677,32.933527],[102.621431,32.933512],[102.620815,32.933476],[102.620127,32.933377],[102.620041,32.933364],[102.619924,32.933347],[102.619521,32.933289],[102.618546,32.933207],[102.618538,32.933206],[102.618315,32.933188],[102.618273,32.933184],[102.617902,32.933142],[102.617769,32.933127],[102.617755,32.933125],[102.617518,32.933099],[102.616977,32.933038],[102.616086,32.933994],[102.616112,32.934807],[102.616183,32.934882],[102.616202,32.934903],[102.617001,32.935757],[102.617902,32.936261],[102.617919,32.936263],[102.618905,32.936357],[102.618958,32.936362],[102.620007,32.936327],[102.620401,32.936314],[102.620468,32.936312],[102.620499,32.936311],[102.621837,32.936446],[102.621987,32.936461],[102.62226,32.936489],[102.622375,32.936501],[102.622872,32.936552],[102.623307,32.936597],[102.623426,32.93661],[102.624729,32.936978],[102.624752,32.937074],[102.624805,32.937105],[102.624854,32.937123],[102.624961,32.937152],[102.62506,32.937158],[102.625103,32.937156],[102.625218,32.937134],[102.626004,32.937389],[102.626862,32.937789],[102.627002,32.937855],[102.627068,32.937934],[102.627091,32.937961],[102.62737,32.938296],[102.627485,32.938434],[102.627572,32.938538],[102.627586,32.938556],[102.627655,32.938638],[102.627788,32.939417],[102.627797,32.939471],[102.627815,32.93958],[102.627841,32.939733],[102.627846,32.939758],[102.627863,32.93986],[102.627857,32.940081],[102.627855,32.940176],[102.627853,32.940184],[102.627841,32.940702],[102.627836,32.940881],[102.627817,32.940889],[102.627786,32.940914],[102.627766,32.94096],[102.627755,32.941008],[102.627748,32.941041],[102.627744,32.94106],[102.627707,32.941113],[102.627706,32.941115],[102.627734,32.941265],[102.627746,32.941325],[102.627763,32.941406],[102.627778,32.941492],[102.627815,32.941644],[102.627811,32.942347],[102.62781,32.942438],[102.62781,32.942466],[102.627809,32.94268],[102.627808,32.94282],[102.627807,32.942856],[102.627806,32.943155],[102.627805,32.943247],[102.6278,32.94398],[102.6278,32.944038],[102.627799,32.944073],[102.627788,32.944485],[102.627781,32.944728],[102.627538,32.944807],[102.627475,32.944827],[102.626956,32.944996],[102.626771,32.944999],[102.626715,32.944999],[102.626547,32.945002],[102.625877,32.945011],[102.625829,32.945011],[102.625704,32.945013],[102.625517,32.945004],[102.625312,32.944994],[102.6252,32.944988],[102.625021,32.944979],[102.624962,32.944976],[102.624921,32.944974],[102.624897,32.944973],[102.624358,32.944947],[102.622627,32.944914],[102.622554,32.944902],[102.62253,32.944946],[102.622461,32.944995],[102.622399,32.94504],[102.622282,32.945131],[102.622188,32.945178],[102.622184,32.94527],[102.6222,32.945615],[102.622203,32.945672],[102.622215,32.94592],[102.622588,32.94636],[102.62325,32.946751],[102.623569,32.946939],[102.623832,32.947094],[102.623865,32.947114],[102.623915,32.947143],[102.62395,32.94717],[102.623969,32.947185],[102.623829,32.94723],[102.623752,32.947253],[102.623661,32.947282],[102.623575,32.947311],[102.623541,32.947333],[102.623654,32.947338],[102.623772,32.947322],[102.6239,32.947298],[102.62409,32.947278],[102.624337,32.947469],[102.624519,32.94761],[102.624661,32.947719],[102.624921,32.94792],[102.625221,32.948308],[102.625351,32.948476],[102.625371,32.948488],[102.625474,32.948537],[102.625545,32.948604],[102.625673,32.948727],[102.625736,32.948794],[102.625731,32.948804],[102.625684,32.948907],[102.625727,32.948963],[102.625803,32.949061],[102.625835,32.949102],[102.625849,32.949119],[102.625857,32.949129],[102.625912,32.949199],[102.62597,32.949274],[102.626241,32.949485],[102.626523,32.949756],[102.626617,32.949834],[102.626711,32.949872],[102.626858,32.949902],[102.627028,32.949901],[102.627195,32.949893],[102.627333,32.949871],[102.627511,32.949803],[102.627607,32.949758],[102.627695,32.949759],[102.627807,32.949785],[102.62867,32.94929],[102.628679,32.949286],[102.628679,32.949261],[102.628718,32.949208],[102.628805,32.949141],[102.628909,32.949071],[102.629036,32.948996],[102.629121,32.948941],[102.62918,32.948888],[102.629242,32.94884],[102.629287,32.948833],[102.62931,32.948845],[102.629284,32.948885],[102.629237,32.948921],[102.629183,32.948969],[102.62915,32.949005],[102.629132,32.94902],[102.629128,32.94903],[102.629128,32.949052],[102.629128,32.949072],[102.629124,32.949091],[102.629149,32.949084],[102.629275,32.949029],[102.629284,32.949026],[102.629305,32.949017],[102.629514,32.948927],[102.62965,32.948949],[102.629671,32.948952],[102.629708,32.948958],[102.629789,32.94897],[102.629896,32.948988],[102.630073,32.949016],[102.630223,32.94904],[102.630559,32.949094],[102.630664,32.949111],[102.630717,32.949168],[102.630797,32.949254],[102.630945,32.949414],[102.631026,32.949501],[102.631147,32.949632],[102.631226,32.949717],[102.631239,32.949864],[102.631253,32.950011],[102.631261,32.950096],[102.631268,32.950179],[102.631281,32.950321],[102.631289,32.950407],[102.631292,32.950435],[102.631305,32.95058],[102.631325,32.950801],[102.631212,32.950989],[102.631193,32.951022],[102.630586,32.952031],[102.630581,32.952036],[102.630072,32.952476],[102.630043,32.952501],[102.630014,32.952525],[102.629867,32.952653],[102.629667,32.952825],[102.629362,32.95283],[102.628126,32.95285],[102.626533,32.952441],[102.626411,32.952439],[102.626055,32.952432],[102.62601,32.952431],[102.626001,32.952431],[102.625966,32.95243],[102.625819,32.952428],[102.625092,32.952414],[102.625048,32.952413],[102.624993,32.952412],[102.624898,32.952443],[102.624784,32.952481],[102.624718,32.952503],[102.624634,32.95253],[102.624575,32.952549],[102.624521,32.952567],[102.624407,32.952583],[102.624102,32.95268],[102.623952,32.952768],[102.623828,32.952861],[102.62369,32.953007],[102.623227,32.953304],[102.623137,32.953362],[102.62291,32.953509],[102.622672,32.953755],[102.621524,32.954943],[102.620567,32.955685],[102.61982,32.956263],[102.617603,32.957574],[102.61714,32.957866],[102.616773,32.957989],[102.616813,32.958071],[102.616683,32.958155],[102.616657,32.958171],[102.616466,32.958292],[102.61641,32.958327],[102.616157,32.958487],[102.615969,32.958606],[102.615775,32.958729],[102.615237,32.959638],[102.615113,32.960767],[102.61506,32.961253],[102.615041,32.961423],[102.615039,32.961439],[102.615024,32.961581],[102.615001,32.961791],[102.615128,32.961831],[102.615264,32.961873],[102.615258,32.961906],[102.615228,32.961926],[102.615167,32.961966],[102.615145,32.961999],[102.615143,32.962032],[102.615148,32.962077],[102.615175,32.962145],[102.61514,32.962163],[102.615074,32.962184],[102.615063,32.962228],[102.61506,32.962364],[102.615068,32.962424],[102.615101,32.96249],[102.615087,32.962527],[102.615045,32.962578],[102.61501,32.962636],[102.615004,32.962685],[102.615013,32.962764],[102.615008,32.96285],[102.615004,32.962926],[102.614996,32.963009],[102.614993,32.963056],[102.614992,32.963075],[102.61495,32.963164],[102.614924,32.963263],[102.614914,32.963326],[102.614901,32.963397],[102.614839,32.963528],[102.614816,32.963624],[102.614801,32.963688],[102.614795,32.96374],[102.614782,32.963811],[102.614731,32.963871],[102.614694,32.963962],[102.614661,32.964044],[102.614633,32.964126],[102.614606,32.964203],[102.614576,32.964278],[102.614576,32.96435],[102.61458,32.964406],[102.614554,32.964459],[102.614498,32.964475],[102.614255,32.964736],[102.614205,32.96479],[102.6142,32.964794],[102.614134,32.964866],[102.613554,32.964913],[102.612526,32.964997],[102.612445,32.964992],[102.612279,32.964982],[102.612068,32.964969],[102.612054,32.964968],[102.61198,32.964988],[102.611934,32.964987],[102.611856,32.964984],[102.611763,32.964986],[102.611579,32.965007],[102.611508,32.964992],[102.611433,32.964949],[102.611411,32.964929],[102.611354,32.964876],[102.611283,32.964827],[102.611226,32.964791],[102.611178,32.964775],[102.611113,32.964775],[102.611042,32.964775],[102.611003,32.96479],[102.611,32.964814],[102.611023,32.964837],[102.611051,32.964849],[102.611173,32.964917],[102.610987,32.964914],[102.610591,32.964906],[102.609961,32.964894],[102.609724,32.965032],[102.609676,32.96506],[102.609643,32.965079],[102.609626,32.965088],[102.609366,32.965239],[102.609357,32.965245],[102.609314,32.96527],[102.608788,32.965575],[102.607592,32.967067],[102.607494,32.967873],[102.607479,32.967994],[102.60747,32.968069],[102.607465,32.968105],[102.607427,32.968416],[102.60784,32.969122],[102.607989,32.969376],[102.608028,32.969443],[102.60807,32.969515],[102.608164,32.969675],[102.608589,32.969944],[102.609021,32.970216],[102.609047,32.970233],[102.609448,32.970391],[102.609539,32.970427],[102.611063,32.971029],[102.611207,32.971086],[102.612087,32.971478],[102.612348,32.971595],[102.612486,32.971878],[102.612603,32.972121],[102.612956,32.972851],[102.612939,32.9735],[102.612817,32.973998],[102.61265,32.974684],[102.611145,32.975738],[102.611094,32.975783],[102.610133,32.976627],[102.610081,32.976673],[102.610059,32.976693],[102.609699,32.977009],[102.609661,32.977056],[102.609001,32.977883],[102.608683,32.978282],[102.608636,32.978341],[102.608634,32.978352],[102.608452,32.979338],[102.60836,32.979838],[102.608326,32.980026],[102.608318,32.980065],[102.608276,32.980093],[102.608255,32.98014],[102.608216,32.980212],[102.608179,32.980261],[102.608148,32.980306],[102.608111,32.980371],[102.608097,32.980417],[102.608067,32.980495],[102.608028,32.980565],[102.607973,32.980628],[102.6079,32.980714],[102.607876,32.980759],[102.607853,32.980823],[102.607853,32.980869],[102.607853,32.980936],[102.607859,32.981006],[102.607863,32.981065],[102.60785,32.981107],[102.607824,32.98115],[102.607782,32.981204],[102.60771,32.981293],[102.607697,32.981342],[102.607691,32.981409],[102.607691,32.981449],[102.607699,32.981491],[102.607714,32.981534],[102.607727,32.981564],[102.607752,32.981596],[102.607784,32.981641],[102.607797,32.981674],[102.607814,32.981721],[102.607814,32.981738],[102.607817,32.981747],[102.607824,32.98175],[102.607811,32.981776],[102.607807,32.981784],[102.607727,32.981937],[102.607575,32.982231],[102.607528,32.982322],[102.6075,32.982377],[102.607396,32.982444],[102.607282,32.982517],[102.606602,32.982955],[102.606012,32.983334],[102.605268,32.983813],[102.605213,32.983848],[102.60496,32.984044],[102.604552,32.984358],[102.604134,32.984681],[102.604093,32.984712],[102.604081,32.984722],[102.603843,32.984905],[102.603682,32.98503],[102.60364,32.985062],[102.602978,32.985807],[102.602852,32.986324],[102.60284,32.986373],[102.602738,32.986789],[102.602545,32.987584],[102.602399,32.987871],[102.602371,32.987928],[102.602137,32.988388],[102.602002,32.988656],[102.601927,32.988769],[102.601541,32.989354],[102.601489,32.989433],[102.60146,32.989478],[102.60139,32.989583],[102.601333,32.989671],[102.600635,32.990232],[102.600506,32.990336],[102.600477,32.990284],[102.600399,32.990296],[102.600339,32.990322],[102.600289,32.990359],[102.600212,32.990406],[102.600144,32.990448],[102.600071,32.990565],[102.599935,32.990717],[102.599868,32.990857],[102.5998,32.991002],[102.599762,32.991106],[102.599715,32.991277],[102.599707,32.991307],[102.59971,32.991318],[102.599161,32.991631],[102.599116,32.991723],[102.598882,32.99221],[102.598643,32.992707],[102.598473,32.99306],[102.598135,32.993447],[102.598165,32.993482],[102.598197,32.993556],[102.598225,32.993622],[102.59824,32.993684],[102.598252,32.993758],[102.598252,32.99382],[102.598241,32.993894],[102.5982,32.99401],[102.598198,32.994014],[102.598145,32.994089],[102.598142,32.994094],[102.598043,32.994268],[102.597985,32.994376],[102.597985,32.994385],[102.59798,32.994457],[102.597978,32.994587],[102.597933,32.994676],[102.597837,32.994828],[102.597751,32.994957],[102.597736,32.995108],[102.597571,32.995504],[102.597539,32.995619],[102.597438,32.99598],[102.597496,32.996102],[102.59753,32.996173],[102.597535,32.996184],[102.597653,32.996432],[102.597802,32.996745],[102.597865,32.996847],[102.598769,32.998313],[102.598888,32.998445],[102.598982,32.998588],[102.599097,32.998698],[102.599032,32.998739],[102.599064,32.998867],[102.599114,32.999063],[102.599261,32.999641],[102.599487,33.000535],[102.599949,33.00133],[102.600198,33.001761],[102.600242,33.001836],[102.600337,33.002],[102.600288,33.002117],[102.600175,33.002382],[102.599868,33.003102],[102.599772,33.003328],[102.599699,33.003498],[102.599514,33.003933],[102.599175,33.004538],[102.598841,33.005135],[102.598568,33.005621],[102.598268,33.006157],[102.597988,33.006453],[102.597774,33.006678],[102.597681,33.006776],[102.597632,33.006829],[102.597291,33.007188],[102.597201,33.007266],[102.596502,33.007872],[102.596374,33.008063],[102.596361,33.008056],[102.596341,33.008054],[102.596302,33.00806],[102.596271,33.008089],[102.596247,33.008125],[102.59621,33.008151],[102.596165,33.008181],[102.596133,33.008224],[102.596058,33.00829],[102.596019,33.008347],[102.595979,33.008387],[102.595873,33.00855],[102.595851,33.008616],[102.595822,33.008722],[102.595803,33.00879],[102.595795,33.008862],[102.595796,33.008998],[102.595808,33.009091],[102.59581,33.00918],[102.595842,33.009421],[102.595964,33.009979],[102.596016,33.010342],[102.59602,33.010378],[102.596038,33.010551],[102.596067,33.010644],[102.596103,33.010737],[102.596111,33.010826],[102.596114,33.010931],[102.596117,33.010984],[102.596128,33.011012],[102.596159,33.011058],[102.596176,33.011106],[102.596194,33.0112],[102.596203,33.01129],[102.596222,33.011359],[102.596241,33.01145],[102.596279,33.011572],[102.596306,33.01165],[102.596329,33.011745],[102.596351,33.011828],[102.596377,33.011896],[102.596409,33.011956],[102.596486,33.012062],[102.596487,33.012067],[102.596501,33.012145],[102.596602,33.012707],[102.596587,33.01271],[102.596582,33.012722],[102.596583,33.012755],[102.5966,33.012861],[102.596619,33.012985],[102.596618,33.013132],[102.596637,33.01322],[102.596676,33.01334],[102.596723,33.013455],[102.596735,33.013516],[102.59678,33.013734],[102.596793,33.01388],[102.5968,33.013921],[102.596855,33.014254],[102.59689,33.014527],[102.596958,33.014857],[102.596998,33.014977],[102.597028,33.015083],[102.597057,33.015335],[102.597101,33.015493],[102.597124,33.015689],[102.597145,33.015832],[102.597169,33.015997],[102.597218,33.016187],[102.597217,33.016297],[102.597221,33.016398],[102.597226,33.016476],[102.597201,33.016546],[102.597178,33.016596],[102.597173,33.016653],[102.597174,33.016722],[102.597157,33.016801],[102.597126,33.01699],[102.597096,33.017099],[102.597084,33.017153],[102.597085,33.017167],[102.59709,33.01717],[102.597047,33.017276],[102.596987,33.017422],[102.596793,33.017892],[102.596761,33.017969],[102.596736,33.018017],[102.596136,33.019157],[102.595949,33.019299],[102.595286,33.019805],[102.594985,33.020034],[102.594183,33.020423],[102.593784,33.020616],[102.5936,33.020705],[102.59303,33.020981],[102.593002,33.020995],[102.592401,33.021225],[102.591902,33.021417],[102.591167,33.021699],[102.591161,33.021702],[102.591144,33.021708],[102.590511,33.021851],[102.590266,33.02204],[102.590142,33.022091],[102.590051,33.02212],[102.589907,33.022161],[102.589786,33.022188],[102.589704,33.022208],[102.589647,33.022218],[102.589576,33.022218],[102.589411,33.022213],[102.589334,33.022195],[102.589212,33.022163],[102.589152,33.022143],[102.58907,33.022159],[102.588579,33.022258],[102.588438,33.022402],[102.588426,33.022415],[102.588379,33.022393],[102.588312,33.022383],[102.588218,33.022382],[102.588144,33.022386],[102.5881,33.022403],[102.588085,33.022421],[102.588079,33.022449],[102.588106,33.022475],[102.588143,33.022492],[102.588183,33.02251],[102.5882,33.02253],[102.5882,33.022549],[102.588169,33.022586],[102.588098,33.022645],[102.587992,33.022703],[102.587944,33.02273],[102.587911,33.02274],[102.587876,33.022744],[102.587852,33.022736],[102.587836,33.022727],[102.587833,33.022713],[102.587857,33.022688],[102.587871,33.022651],[102.587872,33.022622],[102.587852,33.022603],[102.587813,33.022599],[102.587759,33.022624],[102.587663,33.022666],[102.587584,33.022693],[102.587525,33.022743],[102.587484,33.022815],[102.587477,33.022865],[102.587502,33.022953],[102.587534,33.023077],[102.587566,33.023207],[102.587611,33.0233],[102.587651,33.023372],[102.587684,33.023436],[102.587708,33.023479],[102.587717,33.023498],[102.587717,33.023529],[102.587689,33.023667],[102.58767,33.023781],[102.587602,33.023894],[102.587567,33.024012],[102.587533,33.02416],[102.587522,33.02426],[102.587511,33.024436],[102.587518,33.024537],[102.587537,33.024649],[102.587576,33.024778],[102.587601,33.024853],[102.587637,33.024948],[102.58767,33.025072],[102.587682,33.025154],[102.587693,33.025238],[102.587722,33.025307],[102.587752,33.025364],[102.587779,33.025436],[102.587795,33.025484],[102.587808,33.025504],[102.587821,33.025516],[102.587835,33.025516],[102.587867,33.025622],[102.587868,33.025627],[102.588082,33.02635],[102.588099,33.026455],[102.588196,33.027087],[102.588233,33.027326],[102.58808,33.028104],[102.588027,33.028371],[102.587814,33.028606],[102.58766,33.028776],[102.587423,33.028798],[102.587403,33.0288],[102.587086,33.02883],[102.586629,33.028873],[102.586502,33.028885],[102.586367,33.028897],[102.586204,33.028913],[102.586039,33.028928],[102.586011,33.028931],[102.585767,33.028951],[102.585759,33.028951],[102.585345,33.028985],[102.585243,33.028993],[102.585206,33.028996],[102.584898,33.029022],[102.58478,33.029044],[102.58454,33.02909],[102.584225,33.029],[102.584161,33.028982],[102.583938,33.028918],[102.583863,33.028828],[102.583777,33.028794],[102.58373,33.028787],[102.583558,33.028618],[102.583445,33.028507],[102.583413,33.028019],[102.583203,33.027803],[102.583154,33.027752],[102.583051,33.027706],[102.583036,33.0277],[102.582891,33.027635],[102.582875,33.027625],[102.582876,33.027658],[102.582872,33.027719],[102.582867,33.027746],[102.58285,33.027768],[102.582829,33.027774],[102.582816,33.027764],[102.582788,33.027724],[102.582759,33.027683],[102.582714,33.027629],[102.582682,33.027584],[102.582632,33.027511],[102.582562,33.027427],[102.58253,33.027407],[102.582492,33.027366],[102.582294,33.027218],[102.582207,33.027148],[102.582155,33.027137],[102.582137,33.027135],[102.582107,33.027138],[102.58206,33.027141],[102.582007,33.02714],[102.58193,33.027138],[102.581897,33.027129],[102.58188,33.027106],[102.581875,33.027071],[102.581879,33.027013],[102.581881,33.026973],[102.581881,33.026929],[102.581869,33.02692],[102.5818,33.026865],[102.581712,33.026863],[102.581564,33.02686],[102.5814,33.026857],[102.581295,33.027454],[102.58106,33.027936],[102.580833,33.028082],[102.580438,33.027924],[102.580409,33.027857],[102.580407,33.027851],[102.580365,33.027754],[102.580349,33.027715],[102.580229,33.027433],[102.579831,33.027351],[102.579781,33.027391],[102.579776,33.027395],[102.579766,33.027376],[102.579741,33.02735],[102.5797,33.027316],[102.579635,33.027288],[102.579553,33.027281],[102.579474,33.027289],[102.579386,33.027371],[102.579322,33.027438],[102.579209,33.027339],[102.578999,33.026885],[102.578945,33.026754],[102.578958,33.026736],[102.578967,33.026692],[102.578919,33.0266],[102.578865,33.026561],[102.578856,33.026539],[102.578624,33.025979],[102.578422,33.025619],[102.578412,33.025601],[102.578394,33.025597],[102.578459,33.025577],[102.578536,33.025544],[102.578573,33.025518],[102.578603,33.025482],[102.578625,33.025407],[102.578613,33.025312],[102.578554,33.02523],[102.578465,33.025182],[102.578381,33.025173],[102.578271,33.025223],[102.578151,33.0253],[102.578068,33.025354],[102.577993,33.025375],[102.577846,33.025382],[102.577719,33.025382],[102.577597,33.025435],[102.577502,33.025471],[102.577488,33.025476],[102.577466,33.025474],[102.577393,33.025468],[102.57682,33.025308],[102.576877,33.024822],[102.576672,33.024219],[102.576621,33.024138],[102.576576,33.024175],[102.576519,33.024115],[102.576574,33.024062],[102.576459,33.023878],[102.576169,33.023872],[102.57597,33.023868],[102.57565,33.024079],[102.575602,33.02411],[102.575488,33.024185],[102.575472,33.024195],[102.575447,33.024217],[102.574835,33.024745],[102.574522,33.024814],[102.574415,33.024738],[102.574358,33.024698],[102.574304,33.024659],[102.574305,33.024622],[102.574305,33.024612],[102.574313,33.024323],[102.574688,33.023618],[102.574919,33.023286],[102.574928,33.022949],[102.574501,33.022342],[102.574332,33.022001],[102.574404,33.021932],[102.57456,33.021781],[102.574594,33.021766],[102.574606,33.021779],[102.574624,33.021791],[102.574724,33.021856],[102.574812,33.021904],[102.574898,33.021918],[102.574983,33.021913],[102.575045,33.021888],[102.57509,33.021827],[102.575103,33.021787],[102.57511,33.021715],[102.575111,33.021674],[102.575107,33.021604],[102.575101,33.021529],[102.575115,33.021513],[102.575467,33.021125],[102.575479,33.020714],[102.575482,33.020602],[102.575489,33.020564],[102.575533,33.02034],[102.575625,33.020258],[102.57564,33.020246],[102.575708,33.020251],[102.575753,33.020236],[102.575843,33.020201],[102.575907,33.02015],[102.575967,33.020082],[102.57599,33.020037],[102.575993,33.019987],[102.57597,33.019953],[102.575989,33.019937],[102.576066,33.019799],[102.576176,33.019603],[102.576139,33.01934],[102.575929,33.018887],[102.575669,33.018787],[102.575653,33.018748],[102.57562,33.018684],[102.575537,33.018614],[102.57547,33.018581],[102.575384,33.01858],[102.575326,33.01858],[102.575282,33.018579],[102.575247,33.018595],[102.57523,33.018604],[102.575218,33.018598],[102.574703,33.018313],[102.574612,33.018262],[102.574533,33.01821],[102.574453,33.018156],[102.574333,33.018077],[102.573914,33.017799],[102.573531,33.017193],[102.573309,33.017151],[102.572818,33.017254],[102.572601,33.01717],[102.572587,33.017165],[102.57251,33.017135],[102.572514,33.017123],[102.572567,33.01698],[102.572569,33.016975],[102.572606,33.016875],[102.572706,33.016465],[102.572672,33.016248],[102.572758,33.016214],[102.572807,33.016178],[102.572857,33.016122],[102.572882,33.016083],[102.572882,33.016036],[102.572873,33.015994],[102.572855,33.015967],[102.572828,33.015924],[102.572802,33.015895],[102.572703,33.015863],[102.572602,33.015851],[102.57249,33.015853],[102.572479,33.015843],[102.57224,33.015632],[102.572005,33.015578],[102.571998,33.015576],[102.571989,33.015561],[102.571952,33.015495],[102.571897,33.015427],[102.571839,33.015361],[102.571792,33.015319],[102.571753,33.015256],[102.571701,33.015202],[102.571651,33.015183],[102.57163,33.015177],[102.57161,33.015172],[102.571586,33.01517],[102.571572,33.015169],[102.571574,33.015164],[102.571682,33.01491],[102.572006,33.014429],[102.571895,33.014331],[102.571705,33.014382],[102.571686,33.014315],[102.571679,33.014289],[102.571648,33.014213],[102.571586,33.014136],[102.57152,33.014066],[102.57148,33.014024],[102.571378,33.013999],[102.571312,33.013987],[102.571212,33.013973],[102.571149,33.013971],[102.571029,33.014015],[102.570984,33.014032],[102.570748,33.014119],[102.570725,33.014127],[102.57059,33.014177],[102.570199,33.014242],[102.569787,33.014311],[102.569426,33.014529],[102.569146,33.01501],[102.569089,33.015016],[102.569055,33.015019],[102.568917,33.015033],[102.568899,33.015046],[102.56884,33.015082],[102.568801,33.015106],[102.568759,33.015133],[102.568715,33.015156],[102.568662,33.01519],[102.568607,33.015225],[102.56859,33.015241],[102.568536,33.015276],[102.568466,33.015337],[102.568414,33.015368],[102.568408,33.015372],[102.56837,33.015403],[102.568316,33.015398],[102.568283,33.015382],[102.568249,33.015338],[102.568229,33.015291],[102.568267,33.015253],[102.568317,33.015215],[102.568353,33.015191],[102.568398,33.015176],[102.568456,33.015143],[102.568484,33.015122],[102.568512,33.015102],[102.568559,33.015057],[102.568596,33.015006],[102.568605,33.014951],[102.568597,33.014883],[102.568571,33.014829],[102.568425,33.014737],[102.568385,33.014721],[102.568333,33.01469],[102.568272,33.01468],[102.568234,33.01469],[102.568183,33.014718],[102.568178,33.014721],[102.568146,33.014746],[102.568115,33.014775],[102.568082,33.014828],[102.568073,33.01486],[102.56807,33.014907],[102.568057,33.01498],[102.568051,33.015022],[102.568033,33.015064],[102.568009,33.015103],[102.567987,33.015124],[102.567947,33.015145],[102.567889,33.015149],[102.567837,33.01514],[102.567799,33.015115],[102.567748,33.015072],[102.567728,33.015039],[102.567695,33.015012],[102.567668,33.014986],[102.567647,33.014967],[102.567637,33.014943],[102.567639,33.014903],[102.567675,33.014873],[102.567706,33.014862],[102.567713,33.014859],[102.567788,33.014833],[102.567853,33.014792],[102.567908,33.014749],[102.56796,33.014701],[102.567991,33.014652],[102.567994,33.014617],[102.567994,33.014572],[102.567966,33.014504],[102.567944,33.014481],[102.567914,33.014463],[102.56788,33.014448],[102.567845,33.01444],[102.567805,33.01443],[102.567768,33.014426],[102.567725,33.014424],[102.567646,33.014432],[102.567603,33.014452],[102.56754,33.014474],[102.567501,33.014482],[102.567442,33.014478],[102.567387,33.014464],[102.567332,33.014434],[102.567285,33.01437],[102.567256,33.014326],[102.567205,33.014274],[102.567113,33.014192],[102.567072,33.014156],[102.567028,33.014119],[102.566988,33.014081],[102.566961,33.014052],[102.56692,33.014019],[102.566886,33.014005],[102.566837,33.014003],[102.566794,33.014014],[102.566768,33.014035],[102.566746,33.014059],[102.56671,33.014092],[102.566694,33.014109],[102.566687,33.014128],[102.566684,33.014162],[102.566706,33.014202],[102.56672,33.014238],[102.566738,33.014279],[102.566753,33.014335],[102.566762,33.014384],[102.566762,33.014449],[102.566751,33.014475],[102.566742,33.014499],[102.56671,33.014548],[102.566684,33.014584],[102.566657,33.014613],[102.566625,33.014637],[102.566574,33.014662],[102.566533,33.01467],[102.566458,33.014667],[102.566427,33.014654],[102.566413,33.014636],[102.566419,33.014589],[102.566449,33.014539],[102.566472,33.014505],[102.566502,33.014452],[102.566525,33.01441],[102.566541,33.014371],[102.566558,33.014317],[102.566561,33.014264],[102.566559,33.014235],[102.56654,33.0142],[102.566501,33.01421],[102.566455,33.014276],[102.566406,33.014238],[102.566342,33.014224],[102.566269,33.01423],[102.566184,33.014236],[102.5661,33.014221],[102.566033,33.014201],[102.565929,33.014147],[102.565868,33.014113],[102.565832,33.014114],[102.565796,33.014128],[102.565756,33.014174],[102.565718,33.014212],[102.56566,33.01428],[102.565605,33.014317],[102.56553,33.014338],[102.565487,33.014334],[102.565421,33.01431],[102.56535,33.014261],[102.565273,33.014237],[102.56524,33.014238],[102.565187,33.014265],[102.56515,33.014316],[102.565127,33.014387],[102.565139,33.014437],[102.565159,33.014465],[102.565201,33.014488],[102.565257,33.014509],[102.56533,33.014531],[102.56541,33.014546],[102.565446,33.014556],[102.56554,33.014581],[102.565608,33.014616],[102.565623,33.014628],[102.565667,33.014665],[102.56569,33.014713],[102.565705,33.014794],[102.565709,33.014878],[102.56572,33.014955],[102.565722,33.014962],[102.56575,33.015037],[102.565774,33.015075],[102.565803,33.015099],[102.565848,33.015115],[102.565874,33.015116],[102.565927,33.015105],[102.565981,33.015083],[102.566059,33.015055],[102.56612,33.015038],[102.566174,33.015041],[102.566235,33.015069],[102.566316,33.015122],[102.566342,33.015157],[102.56634,33.015218],[102.566274,33.015213],[102.566298,33.01524],[102.566315,33.015268],[102.566314,33.015297],[102.566301,33.015328],[102.566269,33.015359],[102.566192,33.015377],[102.566053,33.015381],[102.566021,33.015384],[102.565952,33.015401],[102.565891,33.015428],[102.565852,33.015458],[102.565802,33.015493],[102.56577,33.01552],[102.565717,33.01555],[102.565684,33.01556],[102.565637,33.015558],[102.565605,33.01553],[102.565607,33.015517],[102.565642,33.015471],[102.565662,33.015432],[102.565667,33.01538],[102.565666,33.015309],[102.565658,33.015278],[102.565636,33.015245],[102.565608,33.015223],[102.565561,33.015211],[102.565508,33.015198],[102.565433,33.015195],[102.565393,33.015285],[102.565244,33.015624],[102.565203,33.015718],[102.565145,33.01585],[102.565032,33.016325],[102.564702,33.017414],[102.564503,33.019769],[102.564832,33.021152],[102.565268,33.022255],[102.565489,33.023014],[102.564996,33.024583],[102.564351,33.026233],[102.564152,33.027113],[102.563754,33.029327],[102.563595,33.030334],[102.563055,33.032418],[102.562602,33.033573],[102.561842,33.034839],[102.5616,33.035978],[102.561623,33.036826],[102.56179,33.037558],[102.561676,33.038325],[102.561634,33.038994],[102.561196,33.039597],[102.560478,33.040155],[102.559556,33.040511],[102.559062,33.04058],[102.557617,33.040375],[102.556985,33.040382],[102.556472,33.040293],[102.555916,33.040105],[102.554891,33.039927],[102.553888,33.039809],[102.553137,33.039853],[102.551708,33.039904],[102.550889,33.039908],[102.550049,33.039812],[102.549396,33.03972],[102.54839,33.039701],[102.54766,33.039864],[102.547299,33.040231],[102.54684,33.040735],[102.546175,33.041096],[102.545443,33.041338],[102.544879,33.041406],[102.544176,33.041431],[102.543737,33.041245],[102.543113,33.040937],[102.542123,33.040346],[102.540789,33.039719],[102.540183,33.039411],[102.539558,33.039192],[102.538575,33.038537],[102.537837,33.037931],[102.536001,33.036638],[102.535533,33.03631],[102.534951,33.035924],[102.534416,33.035636],[102.53399,33.035572],[102.533533,33.035438],[102.533093,33.035277],[102.532688,33.035034],[102.53248,33.034849],[102.532231,33.034928],[102.532038,33.03534],[102.531727,33.035888],[102.530795,33.036826],[102.530071,33.037407],[102.529272,33.037913],[102.528543,33.038227],[102.528049,33.038269],[102.527509,33.038449],[102.526871,33.038454],[102.526239,33.038286],[102.525561,33.038272],[102.524803,33.03817],[102.523696,33.038027],[102.522811,33.038062],[102.519916,33.037396],[102.519404,33.037342],[102.518386,33.036997],[102.517473,33.036568],[102.516349,33.036351],[102.515863,33.036276],[102.514969,33.036085],[102.513953,33.035654],[102.51329,33.035489],[102.512733,33.035197],[102.512043,33.035053],[102.511503,33.035064],[102.510549,33.035218],[102.509431,33.03545],[102.508559,33.035622],[102.507595,33.03563],[102.506864,33.035372],[102.506104,33.035005],[102.505439,33.034667],[102.504169,33.034128],[102.503601,33.033792],[102.503184,33.033756],[102.502766,33.033775],[102.502507,33.033851],[102.501858,33.034108],[102.501299,33.034557],[102.500546,33.035083],[102.500222,33.035185],[102.499675,33.035062],[102.499122,33.035051],[102.498087,33.035154],[102.497306,33.036691],[102.495965,33.038496],[102.495199,33.039536],[102.494835,33.040647],[102.494461,33.04216],[102.493072,33.043033],[102.492318,33.043639],[102.490944,33.043984],[102.490709,33.044015],[102.489316,33.044199],[102.487775,33.04392],[102.486396,33.043147],[102.485531,33.042477],[102.484898,33.041378],[102.484622,33.04072],[102.484244,33.03975],[102.483751,33.038964],[102.482808,33.038417],[102.481976,33.037842],[102.480949,33.037666],[102.480447,33.03719],[102.479841,33.036463],[102.478959,33.036352],[102.478923,33.036351],[102.478298,33.036277],[102.477346,33.03604],[102.476507,33.035744],[102.475637,33.03523],[102.475582,33.035207],[102.475615,33.034992],[102.475657,33.034723],[102.475698,33.034454],[102.47574,33.034185],[102.475781,33.033917],[102.475823,33.033648],[102.475864,33.033379],[102.475906,33.03311],[102.475947,33.032842],[102.475926,33.032605],[102.475905,33.032368],[102.475776,33.031939],[102.475736,33.03187],[102.475733,33.031859],[102.475587,33.031612],[102.475442,33.031366],[102.475314,33.031314],[102.474999,33.031184],[102.474684,33.031054],[102.474302,33.030978],[102.4741,33.03096],[102.47385,33.030906],[102.473606,33.030835],[102.473238,33.030609],[102.472936,33.030362],[102.472634,33.030115],[102.472332,33.029868],[102.47203,33.029621],[102.471843,33.029357],[102.471655,33.029092],[102.4715,33.028928],[102.471345,33.028765],[102.471316,33.028735],[102.471123,33.028536],[102.47093,33.028337],[102.470912,33.028314],[102.47076,33.028123],[102.470608,33.027932],[102.470368,33.027646],[102.470128,33.027361],[102.469889,33.027075],[102.469597,33.026796],[102.469317,33.026475],[102.469005,33.026189],[102.468693,33.025904],[102.468529,33.025713],[102.468366,33.025523],[102.468253,33.02535],[102.468098,33.025041],[102.467937,33.024886],[102.467806,33.024738],[102.467658,33.024541],[102.467533,33.024363],[102.467426,33.024107],[102.467319,33.023851],[102.46714,33.02359],[102.466955,33.023369],[102.466795,33.023179],[102.466572,33.022974],[102.466349,33.022769],[102.466072,33.022605],[102.465796,33.022442],[102.4655,33.022267],[102.465205,33.022093],[102.464909,33.021918],[102.464541,33.021739],[102.464172,33.021561],[102.463803,33.021383],[102.463494,33.021148],[102.463184,33.020913],[102.463059,33.020746],[102.462997,33.020574],[102.462872,33.02029],[102.462817,33.019904],[102.462762,33.019518],[102.462706,33.019132],[102.462638,33.018914],[102.462569,33.018695],[102.4625,33.018477],[102.462431,33.018259],[102.462363,33.018041],[102.462294,33.017822],[102.462189,33.017513],[102.462063,33.017084],[102.461956,33.016869],[102.461849,33.016655],[102.461728,33.016451],[102.461607,33.016247],[102.461416,33.016042],[102.461225,33.015837],[102.461075,33.015669],[102.460926,33.0155],[102.460767,33.015165],[102.460708,33.014786],[102.460648,33.014407],[102.460642,33.01399],[102.460635,33.013574],[102.460629,33.01322],[102.460644,33.01306],[102.460682,33.012626],[102.46072,33.012191],[102.460745,33.011906],[102.460751,33.011867],[102.460799,33.01156],[102.460847,33.011252],[102.4609,33.011068],[102.460974,33.010764],[102.461049,33.010461],[102.461111,33.010104],[102.461174,33.009747],[102.461287,33.009456],[102.461275,33.0092],[102.461215,33.008962],[102.46121,33.008949],[102.461061,33.008617],[102.46096,33.008457],[102.46096,33.008456],[102.46096,33.008456],[102.460876,33.008218],[102.460781,33.007903],[102.460742,33.007677],[102.460702,33.007451],[102.460644,33.007118],[102.460658,33.006945],[102.460662,33.006898],[102.460766,33.006689],[102.46087,33.006481],[102.460936,33.006249],[102.460942,33.006041],[102.460858,33.005904],[102.46071,33.005535],[102.460674,33.005274],[102.460668,33.005095],[102.460638,33.004958],[102.460538,33.004786],[102.460536,33.004552],[102.460534,33.004459],[102.460589,33.0042],[102.460644,33.003941],[102.46068,33.00362],[102.460716,33.003299],[102.460789,33.002962],[102.460862,33.002626],[102.460882,33.002531],[102.460992,33.002133],[102.461102,33.001734],[102.461174,33.001294],[102.461174,33.001294],[102.461174,33.001293],[102.461245,33.000961],[102.461346,33.000681],[102.461418,33.000485],[102.461572,33.000199],[102.461602,33.000009],[102.4617,32.999709],[102.461798,32.999408],[102.461905,32.999146],[102.461959,32.99895],[102.461941,32.998784],[102.461769,32.99851],[102.461614,32.998147],[102.46162,32.99782],[102.461644,32.997624],[102.461691,32.997493],[102.461786,32.997261],[102.461798,32.9971],[102.461721,32.996981],[102.461632,32.996934],[102.461471,32.996827],[102.461388,32.996696],[102.461293,32.996517],[102.461215,32.996166],[102.461138,32.996],[102.461114,32.995791],[102.461111,32.995754],[102.461096,32.995589],[102.460971,32.995405],[102.460751,32.995256],[102.460561,32.995039],[102.460371,32.994822],[102.46024,32.994631],[102.460174,32.994453],[102.460192,32.994298],[102.460281,32.994185],[102.460287,32.994084],[102.460275,32.994019],[102.460192,32.993953],[102.460061,32.993906],[102.459752,32.993721],[102.459609,32.993531],[102.45952,32.993376],[102.459502,32.993144],[102.459455,32.992984],[102.459234,32.992627],[102.459187,32.992496],[102.459187,32.992347],[102.459187,32.992291],[102.459187,32.992157],[102.459204,32.992057],[102.459275,32.991636],[102.45935,32.991397],[102.459425,32.991157],[102.459517,32.990935],[102.45956,32.990829],[102.459555,32.99068],[102.459553,32.990622],[102.45955,32.990342],[102.459548,32.990062],[102.459546,32.989915],[102.459575,32.989773],[102.459646,32.989594],[102.459775,32.989394],[102.459917,32.989194],[102.460017,32.98908],[102.460099,32.988898],[102.460233,32.9886],[102.460367,32.988302],[102.460538,32.987917],[102.460617,32.987638],[102.460645,32.987238],[102.460646,32.987233],[102.460672,32.986868],[102.460698,32.986504],[102.460724,32.986139],[102.460767,32.985725],[102.46081,32.985311],[102.460792,32.985001],[102.460774,32.98469],[102.46077,32.984527],[102.460767,32.984383],[102.460824,32.984026],[102.460896,32.983779],[102.460968,32.983533],[102.461032,32.983316],[102.461095,32.983098],[102.461131,32.982841],[102.461045,32.982684],[102.46096,32.982591],[102.460774,32.982402],[102.460588,32.982213],[102.460409,32.981955],[102.46036,32.981885],[102.460256,32.981649],[102.460153,32.981414],[102.460074,32.981271],[102.459953,32.981192],[102.459746,32.981092],[102.459461,32.981017],[102.459175,32.980942],[102.458743,32.980834],[102.458547,32.980785],[102.458326,32.980693],[102.458054,32.980407],[102.457783,32.980122],[102.45764,32.979772],[102.457599,32.979558],[102.457583,32.979472],[102.457583,32.979222],[102.457649,32.978846],[102.45769,32.978608],[102.457676,32.978365],[102.457683,32.978119],[102.45769,32.977873],[102.457685,32.977689],[102.457683,32.977595],[102.457633,32.97738],[102.457526,32.977202],[102.457405,32.976995],[102.457305,32.976766],[102.457233,32.976417],[102.457176,32.976088],[102.457133,32.975696],[102.457091,32.975303],[102.457073,32.975231],[102.456991,32.974889],[102.456919,32.974619],[102.456819,32.974247],[102.456714,32.973826],[102.456609,32.973406],[102.456569,32.973247],[102.456471,32.972903],[102.456373,32.972558],[102.456275,32.972214],[102.456177,32.97187],[102.456177,32.971498],[102.456234,32.971077],[102.456316,32.970842],[102.456398,32.970606],[102.456602,32.970346],[102.456805,32.970085],[102.456965,32.969889],[102.457091,32.969735],[102.457119,32.969496],[102.457148,32.969257],[102.457134,32.969133],[102.457196,32.968854],[102.457322,32.968539],[102.457403,32.968165],[102.45739,32.967829],[102.457352,32.967511],[102.457348,32.967358],[102.45734,32.967095],[102.457352,32.966699],[102.457387,32.966284],[102.457406,32.966047],[102.457424,32.96581],[102.457435,32.965414],[102.457466,32.965177],[102.457543,32.964941],[102.457556,32.96481],[102.457576,32.964624],[102.457688,32.964315],[102.4578,32.964006],[102.457899,32.963769],[102.457998,32.963533],[102.458097,32.963296],[102.458196,32.963059],[102.458295,32.962823],[102.458393,32.962586],[102.458492,32.96235],[102.458591,32.962113],[102.45869,32.961876],[102.458789,32.96164],[102.458888,32.961403],[102.458987,32.961167],[102.458967,32.960873],[102.458943,32.960652],[102.458862,32.96043],[102.45875,32.96028],[102.458537,32.960093],[102.458325,32.959906],[102.45814,32.959743],[102.457956,32.95958],[102.457701,32.959354],[102.457388,32.959127],[102.457015,32.958948],[102.456642,32.95877],[102.456414,32.958729],[102.456186,32.958689],[102.455958,32.958649],[102.45573,32.958609],[102.455502,32.958569],[102.455275,32.958528],[102.455137,32.958455],[102.454846,32.958299],[102.454603,32.958148],[102.45436,32.957996],[102.454162,32.957821],[102.453881,32.957472],[102.453657,32.957175],[102.453463,32.956852],[102.453325,32.956556],[102.453201,32.956346],[102.453076,32.956135],[102.45294,32.955814],[102.452689,32.955441],[102.452522,32.955218],[102.45224,32.954919],[102.451926,32.954692],[102.451639,32.95454],[102.451324,32.954386],[102.451064,32.954307],[102.450804,32.954229],[102.450546,32.954138],[102.450287,32.954047],[102.449898,32.953941],[102.449509,32.953835],[102.449261,32.953789],[102.449012,32.953742],[102.448763,32.953695],[102.448514,32.953649],[102.448266,32.953602],[102.448017,32.953555],[102.447768,32.953509],[102.447519,32.953462],[102.44727,32.953416],[102.447022,32.953369],[102.446775,32.953358],[102.446528,32.953346],[102.446281,32.953335],[102.446034,32.953324],[102.445657,32.953316],[102.445279,32.953308],[102.444902,32.953301],[102.444622,32.953204],[102.444343,32.953107],[102.444061,32.952832],[102.443892,32.952633],[102.443723,32.952434],[102.443559,32.952088],[102.443451,32.951768],[102.443381,32.951543],[102.443311,32.951318],[102.443242,32.951093],[102.443172,32.950869],[102.443102,32.950644],[102.443032,32.950419],[102.442962,32.950195],[102.442892,32.94997],[102.44286,32.94959],[102.442828,32.94921],[102.442722,32.948842],[102.442586,32.94852],[102.44245,32.948175],[102.442309,32.947955],[102.442168,32.947734],[102.441954,32.947596],[102.44174,32.947457],[102.441526,32.947318],[102.441312,32.947179],[102.441058,32.946929],[102.440804,32.946679],[102.440637,32.946406],[102.44047,32.946134],[102.440305,32.945837],[102.44014,32.94554],[102.440044,32.94533],[102.439948,32.94512],[102.439852,32.94491],[102.439756,32.944701],[102.439634,32.944417],[102.439511,32.944133],[102.439431,32.943862],[102.439352,32.943591],[102.43933,32.943359],[102.439307,32.943126],[102.439314,32.942881],[102.439322,32.942635],[102.439343,32.942245],[102.439363,32.941854],[102.439384,32.941463],[102.439386,32.941039],[102.439389,32.940615],[102.439391,32.940191],[102.439339,32.93997],[102.439287,32.939748],[102.439235,32.939527],[102.439183,32.939306],[102.439162,32.939036],[102.439141,32.938766],[102.43915,32.938449],[102.439216,32.938156],[102.43931,32.937939],[102.439335,32.937888]]]]},"properties":{"cp":[102.63776751384222,32.82512378846329],"code":"513233100","name":"邛溪镇","level":"street","center":[102.63776751384222,32.82512378846329],"fullCode":"513233100000","fullName":"四川省阿坝藏族羌族自治州红原县邛溪镇","acreageMu":1343909.49,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.515,32.7855]}},{"id":"513233101","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.662814,32.045234],[102.662707,32.045207],[102.662601,32.045181],[102.662557,32.04517],[102.662315,32.045091],[102.662072,32.045013],[102.661779,32.044999],[102.661578,32.045064],[102.661494,32.045091],[102.661194,32.045298],[102.661069,32.04533],[102.660994,32.045348],[102.660687,32.045334],[102.660559,32.04532],[102.660459,32.045341],[102.660418,32.045441],[102.66038,32.045534],[102.660302,32.045862],[102.660259,32.046041],[102.660223,32.046191],[102.660152,32.046355],[102.66004,32.046537],[102.660016,32.046576],[102.659766,32.046748],[102.659631,32.04689],[102.659509,32.047026],[102.659467,32.047269],[102.659467,32.04744],[102.65944,32.047502],[102.659381,32.04764],[102.659368,32.047662],[102.65926,32.047847],[102.659274,32.048011],[102.659317,32.048132],[102.659407,32.048364],[102.659496,32.048595],[102.659616,32.048903],[102.659681,32.049139],[102.659745,32.049374],[102.659798,32.049628],[102.659802,32.049646],[102.659802,32.049953],[102.659831,32.050153],[102.659859,32.050352],[102.659991,32.050747],[102.660122,32.051141],[102.660173,32.051295],[102.660262,32.051569],[102.660351,32.051844],[102.66043,32.052087],[102.660452,32.052216],[102.660455,32.052277],[102.660459,32.05233],[102.660437,32.052423],[102.66035,32.052517],[102.660137,32.052748],[102.659923,32.052979],[102.659862,32.053059],[102.659852,32.053072],[102.659852,32.053158],[102.659909,32.053272],[102.660088,32.053604],[102.660266,32.053936],[102.660462,32.054243],[102.660659,32.05455],[102.660677,32.054574],[102.66071,32.054618],[102.660948,32.054931],[102.660973,32.054964],[102.661058,32.055196],[102.661144,32.055428],[102.661315,32.055793],[102.661358,32.055885],[102.661537,32.056099],[102.661758,32.05637],[102.661779,32.056463],[102.661779,32.056563],[102.661715,32.056881],[102.661651,32.057198],[102.661645,32.057299],[102.661637,32.057466],[102.661622,32.057734],[102.661601,32.057933],[102.661442,32.058194],[102.661422,32.058226],[102.66124,32.058504],[102.661058,32.058783],[102.661032,32.05891],[102.661001,32.059054],[102.660966,32.059497],[102.660969,32.059843],[102.660973,32.060189],[102.66098,32.060218],[102.661008,32.060332],[102.661001,32.060518],[102.660958,32.06061],[102.660823,32.060717],[102.660743,32.060806],[102.66063,32.060932],[102.660473,32.061231],[102.660438,32.061359],[102.660387,32.061545],[102.660373,32.06181],[102.660363,32.061956],[102.660359,32.062017],[102.660302,32.062195],[102.660291,32.062217],[102.660282,32.062235],[102.660186,32.062431],[102.660132,32.062539],[102.66008,32.062645],[102.659879,32.063025],[102.659879,32.063025],[102.659879,32.063025],[102.659694,32.063374],[102.659576,32.063597],[102.659509,32.063723],[102.659395,32.063901],[102.659267,32.064101],[102.659145,32.064272],[102.659031,32.064451],[102.658938,32.064779],[102.658853,32.064993],[102.658681,32.065243],[102.658653,32.065281],[102.658553,32.065414],[102.658189,32.065557],[102.657932,32.065636],[102.657575,32.065736],[102.657218,32.065836],[102.657015,32.065928],[102.656811,32.066021],[102.656586,32.066143],[102.656361,32.066264],[102.656259,32.066373],[102.656147,32.066492],[102.655962,32.066778],[102.655847,32.067078],[102.65573,32.067351],[102.655614,32.067625],[102.655555,32.067763],[102.655511,32.06791],[102.655412,32.068248],[102.655262,32.068627],[102.655023,32.068984],[102.654784,32.069341],[102.654728,32.069441],[102.654655,32.069573],[102.654533,32.069793],[102.654527,32.069805],[102.65442,32.070197],[102.65439,32.070314],[102.654314,32.070611],[102.654287,32.070717],[102.654238,32.070908],[102.654196,32.071071],[102.654191,32.071089],[102.654084,32.071375],[102.653956,32.071603],[102.653784,32.071832],[102.653592,32.072082],[102.653292,32.072274],[102.652946,32.072424],[102.652599,32.072574],[102.652396,32.072671],[102.652193,32.072767],[102.6519,32.072974],[102.651679,32.073217],[102.651561,32.07351],[102.651536,32.073574],[102.651429,32.073752],[102.651265,32.073866],[102.651022,32.073973],[102.650808,32.074009],[102.650544,32.074038],[102.650479,32.074051],[102.650408,32.074066],[102.650369,32.074089],[102.650144,32.074223],[102.649831,32.074507],[102.649523,32.074786],[102.649216,32.075066],[102.648948,32.075351],[102.64868,32.075637],[102.648583,32.075734],[102.648465,32.075852],[102.64825,32.076067],[102.648124,32.076193],[102.647981,32.076372],[102.647838,32.07655],[102.647717,32.076836],[102.647674,32.077047],[102.647645,32.077193],[102.647549,32.07761],[102.647453,32.078028],[102.647447,32.078049],[102.647365,32.07834],[102.647277,32.078651],[102.647188,32.078963],[102.64718,32.078995],[102.647134,32.079157],[102.647095,32.079295],[102.647024,32.079546],[102.646953,32.079798],[102.646867,32.080039],[102.646822,32.080164],[102.646739,32.080398],[102.646677,32.080554],[102.646656,32.080607],[102.646632,32.080669],[102.646446,32.080969],[102.646346,32.08124],[102.646339,32.081483],[102.646341,32.081493],[102.646382,32.081654],[102.646387,32.081658],[102.64653,32.081746],[102.646589,32.081783],[102.646732,32.081876],[102.646782,32.081965],[102.646832,32.082054],[102.646889,32.082275],[102.647009,32.082514],[102.647129,32.082752],[102.64731,32.08311],[102.647381,32.083378],[102.647453,32.083646],[102.647531,32.083889],[102.647595,32.084181],[102.647595,32.084403],[102.647474,32.084688],[102.64731,32.084824],[102.647174,32.085016],[102.647124,32.085209],[102.647081,32.085445],[102.647075,32.085466],[102.646996,32.085745],[102.646874,32.085923],[102.646659,32.086014],[102.646653,32.086016],[102.646526,32.086055],[102.646146,32.086173],[102.64607,32.08622],[102.645882,32.086337],[102.645818,32.08643],[102.645725,32.086565],[102.645589,32.08693],[102.64544,32.087294],[102.645392,32.087478],[102.645347,32.087651],[102.64529,32.087943],[102.645271,32.088172],[102.645252,32.0884],[102.645225,32.088728],[102.645225,32.088729],[102.645224,32.08873],[102.645135,32.088896],[102.645134,32.088898],[102.645133,32.0889],[102.644883,32.089157],[102.64459,32.089378],[102.6445,32.089487],[102.644426,32.089578],[102.644219,32.089885],[102.644064,32.090142],[102.644054,32.090159],[102.64391,32.090399],[102.643755,32.090656],[102.643712,32.090725],[102.643555,32.090977],[102.643469,32.091348],[102.643412,32.091619],[102.643362,32.091746],[102.64336,32.091753],[102.643334,32.091819],[102.64322,32.092026],[102.642991,32.092255],[102.642722,32.092469],[102.642453,32.092683],[102.642184,32.092897],[102.642081,32.093179],[102.641977,32.093461],[102.641856,32.093875],[102.641699,32.094246],[102.64168,32.094334],[102.641649,32.094475],[102.641649,32.094721],[102.641649,32.094753],[102.641692,32.094953],[102.641778,32.095231],[102.641829,32.095399],[102.641863,32.09551],[102.641935,32.095842],[102.642006,32.096174],[102.64203,32.096328],[102.642042,32.096402],[102.642013,32.096731],[102.642012,32.096752],[102.641999,32.097073],[102.642006,32.097409],[102.642135,32.097787],[102.642227,32.097973],[102.642326,32.098093],[102.642377,32.098155],[102.642527,32.098337],[102.642606,32.098465],[102.642623,32.098534],[102.642641,32.098608],[102.642648,32.098736],[102.642645,32.098869],[102.642641,32.098993],[102.642634,32.099243],[102.642656,32.0995],[102.642677,32.099757],[102.642721,32.099967],[102.64277,32.1002],[102.642756,32.100507],[102.642751,32.100593],[102.642747,32.100664],[102.642741,32.100778],[102.642627,32.101056],[102.642599,32.101206],[102.642606,32.101378],[102.642638,32.101451],[102.642684,32.101556],[102.64269,32.101774],[102.642691,32.101806],[102.642657,32.101871],[102.642563,32.102049],[102.642425,32.10232],[102.642287,32.102591],[102.642149,32.102862],[102.64197,32.103119],[102.641792,32.103376],[102.641592,32.103765],[102.641392,32.104154],[102.641278,32.104347],[102.641071,32.104419],[102.640857,32.104447],[102.640671,32.104397],[102.640428,32.10434],[102.640179,32.104326],[102.640107,32.104356],[102.639834,32.104471],[102.639822,32.104476],[102.639479,32.104568],[102.639293,32.104583],[102.639022,32.104661],[102.638822,32.104768],[102.638677,32.104843],[102.638542,32.104913],[102.63838,32.104997],[102.638173,32.105082],[102.638082,32.105093],[102.637866,32.105118],[102.637602,32.105104],[102.637352,32.105111],[102.637232,32.105145],[102.637173,32.105161],[102.637104,32.105256],[102.637038,32.105347],[102.636933,32.105511],[102.636911,32.105537],[102.636702,32.105739],[102.636452,32.105903],[102.636164,32.106136],[102.635938,32.106317],[102.635724,32.106681],[102.635673,32.106835],[102.635662,32.106868],[102.635543,32.107224],[102.635424,32.107581],[102.635314,32.10787],[102.635203,32.108159],[102.635123,32.108305],[102.635046,32.108445],[102.634853,32.108716],[102.634659,32.10891],[102.634646,32.108923],[102.634475,32.109073],[102.634225,32.109144],[102.633954,32.109216],[102.633554,32.109365],[102.633329,32.109448],[102.633104,32.10953],[102.632871,32.10963],[102.632637,32.109731],[102.632426,32.109822],[102.632205,32.109933],[102.631984,32.110044],[102.631812,32.110122],[102.63158,32.110222],[102.631348,32.110322],[102.631077,32.110365],[102.631068,32.110367],[102.630806,32.110436],[102.630542,32.110529],[102.63037,32.110693],[102.630192,32.110964],[102.630128,32.111129],[102.630128,32.111279],[102.630185,32.111486],[102.63032,32.11175],[102.630588,32.112055],[102.63087,32.112378],[102.631006,32.112592],[102.631037,32.11272],[102.631038,32.112724],[102.631109,32.113029],[102.63118,32.113334],[102.631278,32.113759],[102.631291,32.113815],[102.631377,32.114184],[102.631484,32.114523],[102.631591,32.114862],[102.631677,32.115133],[102.631698,32.115319],[102.631691,32.115469],[102.63162,32.115669],[102.631594,32.115712],[102.631464,32.115937],[102.631334,32.116161],[102.63122,32.116368],[102.631248,32.116725],[102.63134,32.117046],[102.631463,32.117475],[102.631591,32.117689],[102.631591,32.117853],[102.631584,32.118103],[102.631516,32.11836],[102.631448,32.118617],[102.631452,32.118842],[102.631456,32.119067],[102.631534,32.119481],[102.631545,32.119511],[102.631605,32.119688],[102.631684,32.120066],[102.631634,32.120237],[102.631527,32.120466],[102.631384,32.120708],[102.63121,32.120884],[102.631036,32.12106],[102.63077,32.121329],[102.630692,32.121453],[102.630635,32.121544],[102.630563,32.121643],[102.630513,32.121686],[102.630446,32.121749],[102.630278,32.121905],[102.630042,32.122124],[102.629807,32.122343],[102.629703,32.122483],[102.629476,32.122788],[102.629293,32.123035],[102.629228,32.12315],[102.62905,32.123228],[102.628907,32.123264],[102.628722,32.123307],[102.6286,32.123292],[102.628599,32.123292],[102.628597,32.123291],[102.628486,32.123242],[102.628351,32.12321],[102.628336,32.123207],[102.628186,32.123193],[102.628136,32.123178],[102.628034,32.123205],[102.627915,32.123235],[102.627634,32.123345],[102.627353,32.123454],[102.627073,32.123564],[102.626773,32.123697],[102.626473,32.12383],[102.626173,32.123963],[102.625937,32.124067],[102.625681,32.124179],[102.625424,32.124292],[102.625032,32.124485],[102.624931,32.124535],[102.624621,32.12467],[102.624312,32.124805],[102.624002,32.12494],[102.623788,32.125113],[102.623574,32.125285],[102.623276,32.125598],[102.622979,32.12591],[102.62283,32.126011],[102.622803,32.126024],[102.622574,32.126136],[102.622271,32.126279],[102.622199,32.126326],[102.622217,32.126421],[102.622295,32.126656],[102.622372,32.126891],[102.622521,32.1271],[102.622601,32.127332],[102.622681,32.127564],[102.62275,32.127748],[102.622847,32.128004],[102.622943,32.12826],[102.623035,32.128622],[102.623127,32.128985],[102.623234,32.129092],[102.623347,32.129211],[102.623383,32.129318],[102.623469,32.129584],[102.623554,32.12985],[102.623597,32.129985],[102.623663,32.130169],[102.623758,32.13055],[102.623844,32.130838],[102.62393,32.131127],[102.623919,32.131412],[102.623898,32.13147],[102.623823,32.131674],[102.623663,32.132085],[102.623591,32.132281],[102.623595,32.132388],[102.623597,32.132441],[102.623645,32.132572],[102.623782,32.132977],[102.623859,32.133209],[102.623863,32.133232],[102.623919,32.133566],[102.623907,32.133893],[102.623895,32.13422],[102.623883,32.1345],[102.623901,32.134601],[102.623948,32.134708],[102.623966,32.134815],[102.623972,32.134928],[102.623936,32.13533],[102.623901,32.135731],[102.623878,32.13585],[102.623811,32.136189],[102.623798,32.136483],[102.623785,32.136778],[102.62377,32.137117],[102.623767,32.137516],[102.623764,32.137914],[102.623749,32.138086],[102.623748,32.138093],[102.623743,32.138155],[102.623722,32.138396],[102.623695,32.138652],[102.623669,32.138908],[102.623591,32.139044],[102.623383,32.139342],[102.623157,32.139503],[102.622818,32.139711],[102.622703,32.139768],[102.622486,32.139877],[102.622485,32.139877],[102.622188,32.139943],[102.62208,32.139943],[102.621846,32.13991],[102.621612,32.139877],[102.621402,32.139848],[102.621111,32.139851],[102.620819,32.139854],[102.620684,32.139877],[102.620546,32.139901],[102.620355,32.139907],[102.620177,32.139895],[102.620016,32.139889],[102.619737,32.140014],[102.619528,32.140121],[102.619421,32.140139],[102.619332,32.140127],[102.618893,32.140084],[102.618547,32.14005],[102.618312,32.14008],[102.618077,32.140109],[102.617977,32.140132],[102.617869,32.140157],[102.617678,32.140181],[102.617518,32.140139],[102.617167,32.139961],[102.616965,32.139901],[102.616536,32.139889],[102.616153,32.139901],[102.615769,32.139913],[102.615501,32.139949],[102.615234,32.139984],[102.614933,32.140006],[102.614823,32.140014],[102.614567,32.140106],[102.614311,32.140199],[102.614062,32.140347],[102.613789,32.140421],[102.613516,32.140494],[102.613419,32.14052],[102.613084,32.140563],[102.612749,32.140607],[102.612414,32.140651],[102.612119,32.140683],[102.611825,32.140716],[102.611605,32.14074],[102.611474,32.140728],[102.611472,32.140727],[102.611331,32.140686],[102.611165,32.140585],[102.610956,32.140585],[102.610948,32.140589],[102.61079,32.140657],[102.610454,32.140799],[102.610118,32.140942],[102.609933,32.140978],[102.609689,32.140996],[102.609529,32.141025],[102.609528,32.141026],[102.609463,32.141061],[102.60944,32.141109],[102.60941,32.141251],[102.609434,32.141614],[102.609469,32.141781],[102.609483,32.141829],[102.609529,32.141995],[102.609612,32.14237],[102.60961,32.142548],[102.609609,32.142605],[102.609606,32.14284],[102.609606,32.143069],[102.609606,32.143298],[102.609535,32.143595],[102.609525,32.143645],[102.609456,32.144013],[102.609386,32.14438],[102.609292,32.144707],[102.609213,32.144981],[102.609187,32.145039],[102.609112,32.145198],[102.609011,32.145415],[102.608952,32.145725],[102.608946,32.146046],[102.608999,32.146269],[102.609053,32.146492],[102.609195,32.146804],[102.609337,32.147115],[102.609362,32.14717],[102.60941,32.14739],[102.609422,32.147563],[102.609356,32.147735],[102.609277,32.147842],[102.609231,32.147902],[102.609128,32.147988],[102.608905,32.148172],[102.608779,32.148277],[102.608529,32.148426],[102.608434,32.148568],[102.608428,32.148753],[102.608434,32.148884],[102.608517,32.149074],[102.608648,32.149377],[102.608735,32.149594],[102.608821,32.149812],[102.608889,32.150032],[102.608958,32.150252],[102.608976,32.150448],[102.609077,32.150615],[102.609243,32.150763],[102.609359,32.150957],[102.609392,32.151013],[102.609499,32.151204],[102.609683,32.151382],[102.609951,32.151572],[102.610219,32.151763],[102.610287,32.151857],[102.610314,32.151894],[102.610385,32.152078],[102.610443,32.152262],[102.610516,32.152494],[102.610582,32.152786],[102.610659,32.152893],[102.610778,32.152964],[102.610836,32.153019],[102.610944,32.15312],[102.610974,32.153149],[102.611016,32.153292],[102.611028,32.153416],[102.611025,32.153735],[102.611022,32.154053],[102.611081,32.154249],[102.611081,32.154451],[102.611081,32.154654],[102.611129,32.154814],[102.611218,32.154999],[102.61129,32.155147],[102.611325,32.155296],[102.611319,32.155534],[102.61129,32.155825],[102.61129,32.155832],[102.611367,32.156242],[102.61142,32.156516],[102.611504,32.15667],[102.611635,32.156837],[102.611712,32.156986],[102.611849,32.157122],[102.61189,32.157194],[102.611926,32.157325],[102.611944,32.157586],[102.611947,32.157718],[102.611953,32.157958],[102.611957,32.158142],[102.611962,32.15833],[102.611974,32.15858],[102.612018,32.158741],[102.612033,32.158794],[102.612033,32.159014],[102.611962,32.159169],[102.61189,32.159306],[102.611837,32.159466],[102.611801,32.159591],[102.61173,32.159758],[102.611569,32.159939],[102.611409,32.160121],[102.611099,32.160269],[102.610968,32.160295],[102.610885,32.160311],[102.610683,32.160394],[102.610466,32.160582],[102.610303,32.160722],[102.610257,32.160762],[102.610249,32.160769],[102.610197,32.160851],[102.61013,32.160959],[102.61007,32.161156],[102.610034,32.161358],[102.610073,32.1617],[102.610112,32.162042],[102.610209,32.162357],[102.610237,32.162446],[102.610311,32.162667],[102.610385,32.162887],[102.610439,32.163101],[102.610439,32.163103],[102.610439,32.163104],[102.610463,32.163315],[102.610463,32.163517],[102.610445,32.163636],[102.610302,32.163803],[102.610211,32.164013],[102.610119,32.164224],[102.610066,32.164345],[102.610023,32.164445],[102.60993,32.164659],[102.609838,32.164874],[102.609761,32.165094],[102.609683,32.165314],[102.60957,32.165451],[102.609416,32.165564],[102.609332,32.165677],[102.609267,32.165831],[102.609202,32.166141],[102.609166,32.166449],[102.609148,32.166605],[102.609095,32.166771],[102.60897,32.166843],[102.608785,32.166878],[102.608625,32.166985],[102.608482,32.167169],[102.608482,32.16717],[102.608375,32.167402],[102.608324,32.167625],[102.608274,32.167848],[102.608265,32.168136],[102.608256,32.168425],[102.608253,32.16869],[102.60825,32.168954],[102.608208,32.169153],[102.60819,32.16924],[102.608119,32.169424],[102.607857,32.169638],[102.607655,32.169674],[102.607393,32.16974],[102.607256,32.169894],[102.607114,32.170156],[102.606894,32.170543],[102.606884,32.170554],[102.6067,32.170789],[102.6067,32.17083],[102.6067,32.170951],[102.606705,32.170968],[102.606766,32.171189],[102.606871,32.171426],[102.606861,32.171588],[102.606766,32.171712],[102.606595,32.171836],[102.606376,32.17195],[102.606157,32.172064],[102.605911,32.172261],[102.605729,32.172407],[102.605402,32.172705],[102.605075,32.173003],[102.604749,32.173301],[102.604574,32.173505],[102.604339,32.173777],[102.604116,32.174053],[102.603892,32.174329],[102.603511,32.174553],[102.60313,32.174777],[102.602812,32.174948],[102.602493,32.175119],[102.602312,32.175367],[102.602302,32.175408],[102.602255,32.175595],[102.602198,32.175824],[102.602192,32.175871],[102.60217,32.176075],[102.602122,32.176506],[102.602074,32.176937],[102.602046,32.177255],[102.602036,32.177375],[102.602164,32.177751],[102.602293,32.178127],[102.60235,32.178327],[102.60236,32.178565],[102.602379,32.178653],[102.602458,32.179011],[102.602537,32.179368],[102.602617,32.179726],[102.602688,32.180063],[102.60276,32.180399],[102.602769,32.180442],[102.60289,32.180806],[102.602962,32.180999],[102.602975,32.181063],[102.60299,32.181135],[102.60299,32.181313],[102.60296,32.181477],[102.602947,32.181549],[102.602962,32.181699],[102.603004,32.181802],[102.603001,32.181902],[102.602969,32.181988],[102.602969,32.182091],[102.602994,32.182138],[102.603151,32.182327],[102.603172,32.182405],[102.603204,32.182516],[102.60324,32.182652],[102.603271,32.18276],[102.603276,32.182777],[102.60334,32.18293],[102.603411,32.183044],[102.603518,32.183191],[102.603536,32.183251],[102.60353,32.183409],[102.603525,32.183537],[102.60355,32.183897],[102.603568,32.184172],[102.603568,32.184436],[102.60354,32.184831],[102.603511,32.185225],[102.603509,32.185533],[102.603508,32.185664],[102.603497,32.185867],[102.603483,32.186107],[102.603461,32.186224],[102.603401,32.186378],[102.60334,32.186528],[102.603323,32.186627],[102.603311,32.186695],[102.603315,32.187038],[102.603326,32.18722],[102.60329,32.187434],[102.603236,32.187656],[102.603183,32.187877],[102.603097,32.187991],[102.602994,32.188145],[102.602919,32.188287],[102.602808,32.188348],[102.602519,32.188434],[102.602148,32.188601],[102.6021,32.188621],[102.601759,32.188758],[102.601459,32.188851],[102.601245,32.188891],[102.601041,32.188919],[102.600956,32.188908],[102.600859,32.188873],[102.600524,32.188684],[102.60027,32.188591],[102.600053,32.18853],[102.600006,32.188523],[102.599646,32.188469],[102.599335,32.188434],[102.599207,32.188387],[102.598918,32.188266],[102.598746,32.188209],[102.598429,32.188195],[102.598182,32.188216],[102.598018,32.188237],[102.597818,32.188241],[102.597601,32.188198],[102.597599,32.188198],[102.597597,32.188197],[102.597483,32.188177],[102.597354,32.188159],[102.597265,32.188177],[102.59694,32.188373],[102.596719,32.188562],[102.596583,32.188758],[102.596412,32.188894],[102.596219,32.188948],[102.59608,32.188983],[102.595827,32.189076],[102.595455,32.189272],[102.595365,32.189319],[102.595234,32.189398],[102.595031,32.189636],[102.594851,32.189831],[102.59467,32.190026],[102.594554,32.1901],[102.59446,32.190161],[102.594278,32.190272],[102.593932,32.190436],[102.593721,32.190543],[102.59351,32.19065],[102.593196,32.190904],[102.592886,32.191125],[102.592745,32.191225],[102.592725,32.191239],[102.592699,32.191277],[102.592657,32.191339],[102.592532,32.191616],[102.592407,32.191892],[102.592311,32.192198],[102.592214,32.192504],[102.592118,32.19281],[102.592039,32.193146],[102.592025,32.193292],[102.592018,32.193367],[102.591946,32.193639],[102.591804,32.193818],[102.591754,32.193881],[102.591532,32.194034],[102.591525,32.194038],[102.59139,32.194238],[102.591268,32.194474],[102.591147,32.194709],[102.591035,32.195111],[102.590923,32.195514],[102.590811,32.195916],[102.590701,32.19619],[102.59059,32.196465],[102.590465,32.196676],[102.59034,32.196886],[102.590205,32.197158],[102.590133,32.197379],[102.590133,32.197508],[102.590183,32.19765],[102.590239,32.197822],[102.590269,32.197917],[102.590305,32.197952],[102.590392,32.198037],[102.590447,32.198091],[102.590736,32.198295],[102.591025,32.198498],[102.591265,32.198659],[102.591505,32.19882],[102.591622,32.198898],[102.591759,32.198962],[102.591918,32.199037],[102.592021,32.199102],[102.592118,32.199223],[102.592153,32.199355],[102.59231,32.199615],[102.592392,32.199708],[102.592428,32.199758],[102.592435,32.199851],[102.592426,32.199914],[102.592401,32.200081],[102.592367,32.200311],[102.592303,32.200736],[102.592306,32.200756],[102.592346,32.201],[102.592396,32.201239],[102.592496,32.201568],[102.592528,32.201732],[102.592564,32.201914],[102.592563,32.201921],[102.592539,32.202114],[102.592553,32.202217],[102.592567,32.202237],[102.592614,32.202303],[102.592714,32.202417],[102.593089,32.20264],[102.593224,32.202721],[102.593399,32.202863],[102.593552,32.20301],[102.593606,32.203085],[102.59366,32.203142],[102.593709,32.20317],[102.594045,32.203263],[102.594216,32.203313],[102.594616,32.203406],[102.594919,32.203474],[102.594939,32.203486],[102.595134,32.203609],[102.595234,32.203663],[102.595344,32.203677],[102.595548,32.203688],[102.595851,32.203706],[102.59599,32.203742],[102.596072,32.203763],[102.596394,32.203966],[102.596588,32.204091],[102.596783,32.204216],[102.596921,32.20433],[102.59704,32.204427],[102.597122,32.204466],[102.597207,32.204509],[102.597236,32.204523],[102.597293,32.204584],[102.59735,32.204698],[102.597375,32.204976],[102.597407,32.205133],[102.597475,32.205298],[102.597543,32.205369],[102.597568,32.205412],[102.597589,32.205444],[102.597614,32.20558],[102.597657,32.205719],[102.597728,32.205887],[102.597796,32.205994],[102.597964,32.206158],[102.598037,32.206254],[102.598114,32.206354],[102.598207,32.20644],[102.598232,32.206511],[102.598239,32.206625],[102.598276,32.206735],[102.598289,32.206772],[102.598298,32.206837],[102.598317,32.206986],[102.598321,32.207125],[102.598315,32.207172],[102.598303,32.207275],[102.598311,32.207525],[102.598317,32.207753],[102.598285,32.207857],[102.59831,32.208021],[102.598349,32.20821],[102.598399,32.208346],[102.59846,32.208517],[102.598503,32.208599],[102.598522,32.20865],[102.598589,32.208831],[102.598628,32.209234],[102.598637,32.209285],[102.59868,32.209508],[102.598702,32.209621],[102.598713,32.209661],[102.598734,32.209707],[102.598742,32.209723],[102.598921,32.210127],[102.599106,32.210534],[102.599216,32.210736],[102.599278,32.21085],[102.599335,32.210955],[102.599395,32.211105],[102.59942,32.211151],[102.599424,32.211215],[102.599388,32.211351],[102.599385,32.21136],[102.599331,32.211544],[102.599336,32.211586],[102.599342,32.211626],[102.599388,32.211708],[102.599536,32.212001],[102.599537,32.212002],[102.599538,32.212004],[102.599638,32.212343],[102.599756,32.212689],[102.599796,32.212844],[102.599856,32.213071],[102.599876,32.213141],[102.599959,32.213425],[102.599975,32.21346],[102.600059,32.21365],[102.600152,32.213832],[102.600205,32.213917],[102.600253,32.213971],[102.60043,32.214171],[102.600605,32.214478],[102.600662,32.214592],[102.600677,32.214685],[102.600677,32.214777],[102.600648,32.214902],[102.600641,32.214916],[102.600559,32.215077],[102.600387,32.215325],[102.600216,32.215573],[102.600045,32.215887],[102.599941,32.215991],[102.599784,32.216109],[102.599727,32.216184],[102.599656,32.216355],[102.599635,32.216448],[102.599552,32.216819],[102.599521,32.217025],[102.59952,32.217027],[102.59952,32.21703],[102.599524,32.217119],[102.599531,32.217204],[102.599531,32.217297],[102.599488,32.217408],[102.599385,32.217668],[102.599306,32.217975],[102.599256,32.218279],[102.59925,32.218305],[102.599237,32.218369],[102.599213,32.218479],[102.599192,32.218739],[102.59921,32.219121],[102.599215,32.219268],[102.599231,32.219692],[102.599256,32.21996],[102.599213,32.220149],[102.599156,32.220327],[102.599106,32.220411],[102.599031,32.220535],[102.598931,32.220659],[102.598651,32.22088],[102.598614,32.220909],[102.598353,32.221173],[102.598264,32.221288],[102.598175,32.221516],[102.598085,32.221627],[102.597939,32.22168],[102.597702,32.221821],[102.597693,32.221827],[102.597536,32.221959],[102.597391,32.222132],[102.597247,32.222305],[102.596965,32.22258],[102.5969,32.222751],[102.59685,32.222872],[102.596846,32.222894],[102.596825,32.223001],[102.596847,32.223111],[102.596897,32.223286],[102.596929,32.223399],[102.596954,32.223483],[102.597011,32.223636],[102.597043,32.223715],[102.597061,32.223779],[102.597063,32.223839],[102.597065,32.223868],[102.59709,32.223997],[102.597175,32.224204],[102.597188,32.224229],[102.597236,32.224321],[102.597293,32.224425],[102.597325,32.224528],[102.597343,32.224664],[102.597311,32.224917],[102.597223,32.225246],[102.597136,32.225574],[102.597047,32.225806],[102.597018,32.225992],[102.597009,32.226021],[102.596982,32.226106],[102.596925,32.226181],[102.59684,32.226267],[102.596679,32.226488],[102.596647,32.226627],[102.596568,32.226813],[102.596508,32.226948],[102.59649,32.227045],[102.596489,32.227115],[102.596483,32.227409],[102.596501,32.227655],[102.596497,32.227741],[102.596436,32.227873],[102.596419,32.227966],[102.596412,32.228018],[102.59641,32.228029],[102.596401,32.228105],[102.596372,32.228297],[102.596369,32.228394],[102.596415,32.228494],[102.596511,32.228672],[102.596536,32.228733],[102.596536,32.228804],[102.596511,32.228951],[102.596583,32.229286],[102.596654,32.229704],[102.596676,32.229833],[102.596693,32.229939],[102.596736,32.230178],[102.596779,32.230503],[102.596829,32.230689],[102.596918,32.230878],[102.597072,32.231046],[102.597225,32.231214],[102.597446,32.231343],[102.597571,32.231417],[102.597696,32.231528],[102.597708,32.231545],[102.597715,32.231657],[102.597732,32.231928],[102.597749,32.232198],[102.597774,32.232493],[102.597791,32.232557],[102.597797,32.232577],[102.597833,32.232713],[102.597839,32.232728],[102.597908,32.232907],[102.598015,32.233117],[102.598123,32.233327],[102.598231,32.233538],[102.598339,32.233748],[102.598446,32.233959],[102.598554,32.234169],[102.598662,32.234379],[102.598769,32.23459],[102.5989,32.234804],[102.59903,32.235018],[102.59917,32.235215],[102.59931,32.235413],[102.59945,32.23561],[102.59959,32.235808],[102.599797,32.236119],[102.600004,32.236431],[102.600211,32.236743],[102.600429,32.237019],[102.600681,32.237244],[102.600973,32.237447],[102.601266,32.23765],[102.601455,32.237781],[102.601645,32.237913],[102.601835,32.238044],[102.602025,32.238175],[102.602113,32.238236],[102.602151,32.238313],[102.60224,32.238438],[102.602311,32.23853],[102.602436,32.23868],[102.60259,32.238788],[102.60265,32.23883],[102.602825,32.238894],[102.602932,32.238923],[102.603089,32.238977],[102.603204,32.239062],[102.603412,32.239237],[102.603621,32.239412],[102.60385,32.239558],[102.604071,32.239715],[102.604214,32.239802],[102.604417,32.239926],[102.60467,32.240103],[102.604924,32.240279],[102.60519,32.240401],[102.605456,32.240522],[102.605652,32.240675],[102.605852,32.240918],[102.606102,32.241211],[102.606152,32.241332],[102.606187,32.241521],[102.606248,32.241739],[102.606316,32.24191],[102.606384,32.242032],[102.606592,32.242219],[102.606683,32.242301],[102.606737,32.242349],[102.606808,32.242453],[102.606894,32.242599],[102.606951,32.242688],[102.60708,32.242753],[102.607331,32.242837],[102.607429,32.242871],[102.607547,32.24291],[102.607604,32.242985],[102.607629,32.243081],[102.60766,32.243344],[102.607694,32.243631],[102.607747,32.243852],[102.607868,32.244186],[102.607947,32.244401],[102.60799,32.244519],[102.608065,32.244741],[102.608143,32.244962],[102.608226,32.2451],[102.608229,32.245105],[102.608318,32.245201],[102.608468,32.245255],[102.608732,32.245317],[102.608757,32.245323],[102.608956,32.245374],[102.608993,32.245383],[102.609111,32.24543],[102.609285,32.245701],[102.609428,32.245797],[102.609546,32.245865],[102.609592,32.245911],[102.609767,32.246276],[102.609894,32.246429],[102.609935,32.246479],[102.610142,32.24669],[102.61042,32.246889],[102.610699,32.247089],[102.611025,32.247286],[102.611352,32.247482],[102.611548,32.247609],[102.611745,32.247735],[102.612052,32.247978],[102.612114,32.248037],[102.612251,32.248167],[102.612387,32.248392],[102.612479,32.248493],[102.612501,32.248517],[102.612633,32.24866],[102.612783,32.248845],[102.612947,32.24912],[102.613037,32.249306],[102.613076,32.249388],[102.613229,32.249573],[102.613404,32.24973],[102.613479,32.249863],[102.613508,32.249927],[102.613536,32.249991],[102.613583,32.250067],[102.613704,32.250266],[102.613882,32.250465],[102.61394,32.25053],[102.613993,32.250637],[102.614003,32.25071],[102.614011,32.250773],[102.614015,32.250908],[102.613833,32.251251],[102.613779,32.251408],[102.613786,32.251536],[102.613811,32.251676],[102.613831,32.251713],[102.613972,32.251968],[102.614222,32.252257],[102.614525,32.252493],[102.614914,32.252696],[102.614996,32.252793],[102.615155,32.253076],[102.615171,32.253105],[102.615346,32.253417],[102.615485,32.253624],[102.615623,32.253752],[102.615678,32.253803],[102.61588,32.253975],[102.615896,32.253989],[102.615931,32.254039],[102.615935,32.254128],[102.615933,32.254143],[102.615892,32.254524],[102.615835,32.254727],[102.615778,32.255006],[102.615728,32.255138],[102.615631,32.255266],[102.615446,32.255388],[102.615178,32.255548],[102.615085,32.255602],[102.614993,32.255741],[102.614893,32.256005],[102.614814,32.256216],[102.614783,32.25642],[102.614775,32.256469],[102.614728,32.256773],[102.614757,32.256951],[102.614757,32.257058],[102.614748,32.257113],[102.614739,32.257172],[102.614664,32.257254],[102.614543,32.257351],[102.614304,32.257583],[102.614132,32.257811],[102.613968,32.258065],[102.613829,32.258273],[102.613696,32.258474],[102.61369,32.258482],[102.613618,32.258596],[102.613618,32.258661],[102.613665,32.258739],[102.613751,32.258853],[102.613979,32.25903],[102.614207,32.259207],[102.614439,32.259317],[102.614518,32.259367],[102.614582,32.259471],[102.614662,32.259587],[102.614907,32.259946],[102.615078,32.260213],[102.615114,32.260274],[102.615167,32.260324],[102.61526,32.26036],[102.615485,32.260381],[102.615592,32.260356],[102.615867,32.260277],[102.61617,32.260249],[102.616388,32.260252],[102.616656,32.260199],[102.616882,32.260124],[102.616916,32.260113],[102.617106,32.260099],[102.617512,32.260085],[102.617852,32.260074],[102.618269,32.26002],[102.61859,32.259988],[102.618883,32.260017],[102.619161,32.260104],[102.61944,32.260192],[102.61975,32.260256],[102.619985,32.260286],[102.620218,32.260317],[102.620486,32.26037],[102.620597,32.260354],[102.620632,32.260349],[102.620718,32.260338],[102.620785,32.260324],[102.620832,32.260317],[102.620885,32.260331],[102.620957,32.260374],[102.621174,32.260663],[102.621213,32.260742],[102.621335,32.260991],[102.621381,32.261063],[102.621489,32.261155],[102.621585,32.261198],[102.621853,32.261316],[102.62212,32.261434],[102.62237,32.26168],[102.622574,32.261832],[102.622777,32.261984],[102.622977,32.262135],[102.623177,32.262287],[102.623405,32.262474],[102.623634,32.262662],[102.623876,32.262847],[102.624101,32.262972],[102.624381,32.263056],[102.624662,32.26314],[102.624894,32.263204],[102.625018,32.263258],[102.625031,32.263263],[102.625031,32.263263],[102.625031,32.263263],[102.625179,32.263329],[102.625315,32.26344],[102.62559,32.263629],[102.625692,32.263728],[102.625693,32.263729],[102.625693,32.263729],[102.625781,32.263817],[102.625891,32.263927],[102.626089,32.264125],[102.626102,32.264141],[102.626103,32.264141],[102.626103,32.264142],[102.626381,32.264485],[102.62666,32.264828],[102.626829,32.264994],[102.626997,32.265161],[102.627196,32.265356],[102.627538,32.265578],[102.627724,32.26567],[102.627877,32.265749],[102.627981,32.265838],[102.628084,32.265949],[102.628249,32.26606],[102.628513,32.266245],[102.628685,32.266318],[102.62878,32.266359],[102.628905,32.266388],[102.629116,32.266342],[102.629234,32.266249],[102.629413,32.26605],[102.629425,32.266037],[102.629593,32.265852],[102.629658,32.265795],[102.629808,32.265667],[102.629965,32.265574],[102.630342,32.265368],[102.63064,32.26523],[102.630804,32.265165],[102.630879,32.265135],[102.6311,32.265092],[102.631393,32.265071],[102.631472,32.265068],[102.631818,32.265053],[102.632057,32.26501],[102.632203,32.264935],[102.63235,32.264846],[102.632514,32.264828],[102.632639,32.26486],[102.63276,32.264842],[102.632917,32.264807],[102.63306,32.264725],[102.633081,32.26469],[102.633149,32.264578],[102.633238,32.264351],[102.633253,32.264314],[102.633406,32.2641],[102.63356,32.264011],[102.633838,32.263943],[102.633981,32.263868],[102.634129,32.263795],[102.634316,32.263704],[102.634402,32.263608],[102.634429,32.263552],[102.634555,32.26329],[102.634641,32.26304],[102.634727,32.26279],[102.634809,32.262647],[102.63503,32.262455],[102.635255,32.262344],[102.635573,32.262255],[102.635733,32.262205],[102.635947,32.262105],[102.636094,32.262033],[102.636277,32.261892],[102.636426,32.261777],[102.636654,32.261655],[102.636786,32.261491],[102.636878,32.261342],[102.636972,32.261191],[102.637129,32.261009],[102.637286,32.260827],[102.637511,32.260635],[102.637775,32.26041],[102.638039,32.260185],[102.638307,32.259929],[102.638576,32.259673],[102.638844,32.259416],[102.639031,32.259267],[102.639217,32.259118],[102.639446,32.258935],[102.639674,32.258753],[102.639918,32.258532],[102.640152,32.258321],[102.640162,32.258312],[102.640394,32.258048],[102.640626,32.257783],[102.640662,32.257714],[102.640751,32.257545],[102.64078,32.257236],[102.640801,32.256822],[102.640822,32.256409],[102.640825,32.256352],[102.640828,32.25629],[102.640871,32.256208],[102.640882,32.256189],[102.641012,32.256094],[102.641334,32.256052],[102.64153,32.256034],[102.641595,32.255986],[102.641697,32.255927],[102.641804,32.255891],[102.64194,32.255903],[102.642214,32.255986],[102.642416,32.25601],[102.642648,32.255927],[102.642904,32.25579],[102.643172,32.255689],[102.643199,32.255687],[102.643326,32.255677],[102.643666,32.255778],[102.643892,32.255832],[102.644118,32.255885],[102.644439,32.256016],[102.644742,32.256129],[102.644903,32.256135],[102.645144,32.256055],[102.645385,32.255975],[102.645792,32.255841],[102.646199,32.255707],[102.646218,32.255701],[102.646517,32.255598],[102.646816,32.255495],[102.647116,32.255392],[102.647347,32.255408],[102.647578,32.255425],[102.647693,32.255433],[102.64799,32.255421],[102.648216,32.255427],[102.648323,32.255487],[102.648505,32.255704],[102.648686,32.255921],[102.648799,32.255992],[102.649085,32.256052],[102.649341,32.256171],[102.649561,32.256456],[102.649748,32.256667],[102.649935,32.256879],[102.649983,32.256932],[102.650141,32.257218],[102.650298,32.257503],[102.650403,32.257696],[102.650517,32.257906],[102.650631,32.258116],[102.650899,32.258437],[102.651081,32.258625],[102.651262,32.258812],[102.6515,32.25908],[102.65169,32.259169],[102.652062,32.259291],[102.652434,32.259413],[102.652815,32.259526],[102.653124,32.259615],[102.653439,32.259811],[102.65363,32.260002],[102.653802,32.260103],[102.653951,32.260139],[102.654343,32.26021],[102.654535,32.260299],[102.654688,32.260371],[102.654772,32.260478],[102.654813,32.260603],[102.654891,32.260722],[102.655045,32.260787],[102.65517,32.260818],[102.655212,32.260829],[102.655384,32.260882],[102.655474,32.260936],[102.655575,32.261037],[102.655706,32.261453],[102.655746,32.261509],[102.655914,32.261745],[102.656033,32.261944],[102.656152,32.262143],[102.656301,32.262447],[102.656408,32.262845],[102.656422,32.263098],[102.656437,32.263351],[102.656527,32.263675],[102.656616,32.263999],[102.656653,32.264159],[102.656729,32.264481],[102.656841,32.264647],[102.656889,32.264719],[102.657032,32.26485],[102.657252,32.264951],[102.657484,32.264981],[102.657895,32.265052],[102.658249,32.265135],[102.658589,32.265292],[102.65863,32.265312],[102.658773,32.26544],[102.658923,32.265638],[102.659073,32.265835],[102.659311,32.266078],[102.659432,32.266225],[102.659534,32.266349],[102.65977,32.266523],[102.660005,32.266696],[102.660239,32.266885],[102.660472,32.267074],[102.660705,32.267263],[102.660792,32.26732],[102.661129,32.267541],[102.661466,32.267762],[102.661814,32.267977],[102.662066,32.268186],[102.662171,32.268314],[102.66228,32.268372],[102.662661,32.268438],[102.662883,32.268478],[102.663061,32.26851],[102.663375,32.268614],[102.663736,32.268824],[102.664005,32.269033],[102.664274,32.269242],[102.664512,32.269442],[102.66475,32.269642],[102.665064,32.26988],[102.665273,32.270035],[102.665483,32.270189],[102.665601,32.27029],[102.66564,32.270323],[102.665749,32.270475],[102.665775,32.270542],[102.665806,32.270623],[102.665821,32.270822],[102.665845,32.27102],[102.665887,32.271365],[102.665897,32.271636],[102.665906,32.271907],[102.665913,32.272032],[102.665925,32.272274],[102.665892,32.272574],[102.665825,32.272912],[102.665816,32.273107],[102.665868,32.273302],[102.665987,32.273625],[102.666059,32.273821],[102.666106,32.273949],[102.666225,32.274273],[102.666332,32.274577],[102.666397,32.274762],[102.666439,32.274882],[102.666545,32.275186],[102.666554,32.27521],[102.666665,32.27555],[102.666708,32.275681],[102.666777,32.275891],[102.666872,32.276164],[102.666968,32.276438],[102.667006,32.276633],[102.667006,32.27679],[102.66693,32.276933],[102.666825,32.277093],[102.666587,32.277456],[102.666474,32.277707],[102.66636,32.277957],[102.666287,32.278118],[102.666176,32.278364],[102.665992,32.278771],[102.665808,32.279178],[102.665731,32.279349],[102.665624,32.279585],[102.66544,32.279991],[102.665295,32.280221],[102.665149,32.280451],[102.665113,32.280507],[102.664942,32.280777],[102.664735,32.281104],[102.66452,32.281444],[102.664305,32.281783],[102.664269,32.281876],[102.664241,32.282062],[102.664262,32.282159],[102.664284,32.282254],[102.664348,32.282376],[102.664512,32.282718],[102.664626,32.283104],[102.66458,32.283421],[102.664533,32.283739],[102.664434,32.283967],[102.664297,32.284174],[102.664241,32.28426],[102.664034,32.28451],[102.66377,32.2847],[102.663506,32.284891],[102.663241,32.285081],[102.663013,32.285267],[102.662906,32.285431],[102.662878,32.285595],[102.662856,32.285724],[102.662844,32.286144],[102.662835,32.286502],[102.662852,32.286917],[102.662863,32.287173],[102.662861,32.287192],[102.662842,32.287422],[102.66282,32.287672],[102.662831,32.287862],[102.662851,32.288206],[102.662856,32.288286],[102.662905,32.288665],[102.662913,32.288729],[102.662913,32.289057],[102.662956,32.289271],[102.663042,32.289528],[102.663127,32.289785],[102.66317,32.289905],[102.663182,32.289938],[102.66327,32.290179],[102.663369,32.290454],[102.663406,32.290556],[102.663543,32.290761],[102.66368,32.290965],[102.663784,32.29112],[102.663984,32.291336],[102.664146,32.291509],[102.664355,32.291734],[102.664442,32.291821],[102.664613,32.291992],[102.664783,32.292162],[102.665051,32.292369],[102.665222,32.292502],[102.665319,32.292576],[102.665536,32.292751],[102.665754,32.292926],[102.665829,32.293013],[102.665961,32.293166],[102.666168,32.293407],[102.666375,32.293647],[102.666532,32.294061],[102.666554,32.294275],[102.666518,32.294454],[102.666393,32.294643],[102.666268,32.294832],[102.666082,32.294998],[102.66579,32.29526],[102.66575,32.295291],[102.665534,32.295458],[102.665319,32.295624],[102.665047,32.295967],[102.664776,32.29631],[102.664569,32.296624],[102.664362,32.296938],[102.664155,32.297252],[102.664104,32.297352],[102.663959,32.297634],[102.663762,32.298016],[102.663725,32.298085],[102.663537,32.298433],[102.663349,32.298781],[102.663162,32.299128],[102.663042,32.299351],[102.662895,32.299666],[102.662748,32.299982],[102.662601,32.300298],[102.662463,32.300593],[102.662345,32.30087],[102.662235,32.301128],[102.662185,32.301399],[102.662178,32.301671],[102.662242,32.301885],[102.662336,32.302175],[102.662429,32.302466],[102.662513,32.302727],[102.662695,32.303014],[102.662877,32.3033],[102.663034,32.303548],[102.663202,32.303876],[102.66337,32.304205],[102.663569,32.30446],[102.663698,32.304626],[102.663827,32.30479],[102.66392,32.304926],[102.663998,32.305097],[102.664027,32.305261],[102.664041,32.305493],[102.664041,32.305495],[102.664041,32.305497],[102.66397,32.305832],[102.663845,32.306064],[102.66372,32.306296],[102.663648,32.306342],[102.663563,32.306396],[102.663327,32.306482],[102.663141,32.30661],[102.663056,32.306767],[102.663027,32.306917],[102.663006,32.307103],[102.663006,32.307331],[102.663134,32.307695],[102.663155,32.307839],[102.663191,32.308083],[102.663227,32.308328],[102.663241,32.308424],[102.663241,32.308659],[102.663206,32.308845],[102.663063,32.309052],[102.662972,32.309124],[102.66292,32.309166],[102.662904,32.309193],[102.662785,32.309402],[102.662742,32.309601],[102.662777,32.309758],[102.662842,32.309944],[102.662876,32.310054],[102.662992,32.310422],[102.66306,32.310708],[102.663128,32.310994],[102.663141,32.311051],[102.663141,32.311279],[102.663127,32.311515],[102.663027,32.311829],[102.662985,32.3119],[102.662835,32.312157],[102.662673,32.312419],[102.662512,32.312682],[102.66235,32.312944],[102.662191,32.313221],[102.662031,32.313498],[102.662004,32.313561],[102.661798,32.313898],[102.661652,32.314154],[102.661434,32.314349],[102.661215,32.314544],[102.661068,32.314599],[102.661035,32.314611],[102.660655,32.314696],[102.660275,32.314782],[102.66004,32.314841],[102.659805,32.314901],[102.659587,32.314974],[102.65948,32.314994],[102.659462,32.314995],[102.659338,32.315004],[102.659288,32.315008],[102.659086,32.314996],[102.658827,32.314907],[102.658568,32.314817],[102.658169,32.314615],[102.657813,32.314573],[102.65745,32.314556],[102.657271,32.314508],[102.65689,32.314319],[102.656508,32.31413],[102.656126,32.313941],[102.655998,32.313877],[102.655748,32.313717],[102.655499,32.313556],[102.655159,32.313396],[102.65488,32.313339],[102.6546,32.313283],[102.6543,32.313259],[102.653999,32.313235],[102.653595,32.313241],[102.653256,32.31333],[102.652889,32.313487],[102.652685,32.313574],[102.652453,32.313678],[102.652221,32.313782],[102.651906,32.313919],[102.65168,32.313931],[102.651346,32.313877],[102.651258,32.313869],[102.650995,32.313845],[102.650644,32.313812],[102.650606,32.31381],[102.650311,32.313794],[102.650038,32.313806],[102.64974,32.313919],[102.649608,32.313942],[102.649538,32.313955],[102.649258,32.313955],[102.648967,32.31383],[102.648675,32.313705],[102.648598,32.313641],[102.648574,32.313622],[102.648485,32.313622],[102.648384,32.313782],[102.648342,32.31405],[102.648348,32.314421],[102.648354,32.314792],[102.64836,32.315162],[102.648319,32.315484],[102.648176,32.315543],[102.648039,32.315638],[102.647914,32.315757],[102.647812,32.315903],[102.647789,32.315936],[102.647736,32.316156],[102.64775,32.316231],[102.647765,32.316305],[102.64784,32.316563],[102.647914,32.316822],[102.647872,32.316983],[102.6477,32.317096],[102.647459,32.317276],[102.647218,32.317456],[102.647135,32.317518],[102.646894,32.317792],[102.646653,32.318065],[102.646631,32.318113],[102.646532,32.318327],[102.646433,32.318541],[102.646427,32.318845],[102.646314,32.319071],[102.646202,32.319266],[102.646195,32.319279],[102.646171,32.319529],[102.646195,32.319719],[102.646367,32.32004],[102.646447,32.320287],[102.646459,32.320323],[102.646472,32.320365],[102.646578,32.320691],[102.646683,32.321016],[102.646745,32.321287],[102.646808,32.321557],[102.646814,32.321672],[102.646829,32.321936],[102.646847,32.322262],[102.646866,32.322587],[102.646823,32.322875],[102.646764,32.323263],[102.646706,32.323651],[102.64665,32.323897],[102.64663,32.323988],[102.646554,32.324325],[102.646478,32.324662],[102.646443,32.324901],[102.646426,32.325019],[102.646413,32.325112],[102.646375,32.325376],[102.646355,32.325753],[102.646335,32.326131],[102.646315,32.326508],[102.646295,32.326886],[102.646275,32.327263],[102.646262,32.327578],[102.646248,32.327892],[102.646234,32.328207],[102.646157,32.328502],[102.646079,32.328797],[102.64603,32.328984],[102.645972,32.329294],[102.645913,32.329604],[102.645879,32.329784],[102.645708,32.330108],[102.64565,32.330212],[102.645551,32.330389],[102.645394,32.330669],[102.645299,32.330812],[102.645289,32.33106],[102.645318,32.331193],[102.645543,32.33145],[102.645768,32.331707],[102.645993,32.331964],[102.646225,32.33218],[102.646457,32.332395],[102.646688,32.332611],[102.646688,32.332611],[102.646945,32.332797],[102.647202,32.332982],[102.647547,32.333161],[102.647683,32.333182],[102.64779,32.333218],[102.647854,32.333261],[102.64786,32.33331],[102.647861,32.333325],[102.647861,32.333368],[102.647776,32.333475],[102.647561,32.333632],[102.64724,32.333825],[102.646919,32.334017],[102.646576,32.33421],[102.646234,32.334403],[102.645891,32.334595],[102.645852,32.334617],[102.64559,32.334758],[102.6452,32.334968],[102.64481,32.335178],[102.644421,32.335388],[102.644039,32.335588],[102.643657,32.335787],[102.643275,32.335987],[102.642896,32.33619],[102.64267,32.336312],[102.642278,32.336485],[102.641886,32.336659],[102.641883,32.33666],[102.641882,32.336661],[102.641493,32.336833],[102.641207,32.33706],[102.640921,32.337287],[102.640761,32.337511],[102.640635,32.337884],[102.64051,32.338257],[102.640385,32.33863],[102.640297,32.339061],[102.640235,32.339366],[102.640172,32.339671],[102.640132,32.339912],[102.640059,32.34035],[102.639986,32.340788],[102.639913,32.341226],[102.639826,32.341643],[102.639739,32.34206],[102.639653,32.342477],[102.639622,32.342624],[102.639566,32.342893],[102.639482,32.343307],[102.639399,32.34372],[102.639315,32.344134],[102.639242,32.34443],[102.63917,32.344727],[102.639097,32.345023],[102.638994,32.345444],[102.638946,32.345838],[102.638898,32.346232],[102.638865,32.346502],[102.638834,32.346635],[102.638785,32.346847],[102.638704,32.347192],[102.638681,32.347294],[102.638624,32.347537],[102.638724,32.34793],[102.638731,32.348166],[102.638692,32.348406],[102.638688,32.34843],[102.638688,32.348708],[102.638738,32.348929],[102.638774,32.349201],[102.638874,32.349379],[102.639017,32.349579],[102.639131,32.349836],[102.639202,32.350221],[102.639268,32.350444],[102.639333,32.350666],[102.639409,32.350928],[102.639513,32.351135],[102.639616,32.351342],[102.639806,32.351645],[102.639986,32.351935],[102.639995,32.351949],[102.640252,32.352156],[102.640502,32.352299],[102.64073,32.352406],[102.64081,32.352447],[102.640941,32.352514],[102.640966,32.352527],[102.641215,32.352656],[102.641336,32.352753],[102.641433,32.35283],[102.641651,32.353005],[102.641795,32.353138],[102.642008,32.353334],[102.642158,32.353434],[102.642379,32.353555],[102.642507,32.353655],[102.642636,32.353769],[102.642736,32.353919],[102.642836,32.35399],[102.643021,32.354033],[102.643193,32.354055],[102.643314,32.35409],[102.643478,32.354176],[102.643628,32.354347],[102.643778,32.354519],[102.644071,32.354683],[102.644306,32.354769],[102.644513,32.354769],[102.644813,32.354754],[102.645177,32.354733],[102.645419,32.354729],[102.645661,32.354726],[102.6457,32.354731],[102.645991,32.354818],[102.646355,32.354961],[102.646583,32.354983],[102.646783,32.35499],[102.647083,32.354918],[102.647161,32.354899],[102.64754,32.354804],[102.647733,32.354761],[102.647918,32.354754],[102.64809,32.354797],[102.648261,32.354876],[102.648534,32.355041],[102.648807,32.355207],[102.649132,32.355404],[102.649465,32.355605],[102.649702,32.355747],[102.649939,32.355889],[102.64994,32.35589],[102.650113,32.356017],[102.650178,32.356065],[102.650417,32.356239],[102.650574,32.356582],[102.650699,32.35678],[102.650795,32.356931],[102.651081,32.357074],[102.651345,32.357146],[102.651752,32.357153],[102.652166,32.357089],[102.652473,32.35706],[102.652698,32.35706],[102.652865,32.35706],[102.653229,32.357131],[102.653593,32.357203],[102.653922,32.357298],[102.65425,32.357393],[102.654578,32.357488],[102.654627,32.357512],[102.654759,32.357547],[102.655141,32.357747],[102.655354,32.357876],[102.655566,32.358005],[102.655738,32.358153],[102.655911,32.358301],[102.656083,32.358448],[102.656255,32.358596],[102.656326,32.358677],[102.656476,32.358851],[102.656581,32.35916],[102.656618,32.359528],[102.656604,32.359785],[102.656592,32.360001],[102.65659,32.360041],[102.656579,32.360229],[102.656684,32.360593],[102.656684,32.3608],[102.656601,32.360956],[102.656533,32.361082],[102.656545,32.361484],[102.656558,32.361899],[102.656563,32.362078],[102.65657,32.362315],[102.656617,32.362653],[102.656664,32.362991],[102.656771,32.363301],[102.656856,32.363524],[102.656941,32.363748],[102.657072,32.363952],[102.657203,32.364157],[102.657407,32.364469],[102.657611,32.364781],[102.657815,32.365093],[102.657935,32.365288],[102.658056,32.365483],[102.658176,32.365678],[102.658296,32.365873],[102.658416,32.366068],[102.658536,32.366263],[102.658644,32.366486],[102.658753,32.366709],[102.658861,32.366932],[102.65897,32.367156],[102.659078,32.367379],[102.659187,32.367602],[102.659221,32.367671],[102.659296,32.367825],[102.659404,32.368048],[102.659508,32.368268],[102.659612,32.368489],[102.659716,32.368709],[102.659821,32.368929],[102.659925,32.36915],[102.660029,32.36937],[102.660144,32.369613],[102.660259,32.369856],[102.660374,32.370099],[102.660489,32.370342],[102.660604,32.370585],[102.660718,32.370828],[102.660879,32.371231],[102.661039,32.371634],[102.661116,32.371827],[102.661199,32.372036],[102.661359,32.372439],[102.661433,32.372674],[102.661507,32.372909],[102.661573,32.37312],[102.661581,32.373143],[102.661654,32.373378],[102.661728,32.373613],[102.661802,32.373848],[102.661881,32.374014],[102.661915,32.374086],[102.662029,32.374324],[102.662142,32.374562],[102.662157,32.374593],[102.662255,32.3748],[102.662304,32.374893],[102.662421,32.375113],[102.662531,32.37532],[102.66264,32.375528],[102.66266,32.375565],[102.66275,32.375735],[102.66286,32.375942],[102.66297,32.37615],[102.66308,32.376357],[102.663206,32.376564],[102.663332,32.37677],[102.663459,32.376977],[102.663508,32.377056],[102.663585,32.377183],[102.663618,32.377236],[102.663712,32.37739],[102.663838,32.377596],[102.663965,32.377803],[102.664091,32.378009],[102.664218,32.378216],[102.664344,32.378423],[102.664496,32.378639],[102.664627,32.378825],[102.664648,32.378855],[102.6648,32.379072],[102.664953,32.379288],[102.665105,32.379504],[102.665257,32.379721],[102.665409,32.379937],[102.665561,32.380153],[102.665713,32.38037],[102.665865,32.380586],[102.666085,32.38086],[102.666306,32.381135],[102.666471,32.38132],[102.666637,32.381506],[102.666916,32.381714],[102.667195,32.381922],[102.667565,32.382101],[102.667936,32.382281],[102.668353,32.382409],[102.66877,32.382537],[102.669188,32.382665],[102.669605,32.382793],[102.669953,32.382935],[102.670302,32.383077],[102.670549,32.383188],[102.670797,32.383298],[102.671108,32.383574],[102.671262,32.383779],[102.671416,32.383984],[102.67162,32.384315],[102.671823,32.384646],[102.672027,32.384978],[102.672229,32.385366],[102.672431,32.385754],[102.672633,32.386143],[102.672835,32.386531],[102.672907,32.386724],[102.672987,32.386938],[102.673067,32.387151],[102.673147,32.387365],[102.673227,32.387578],[102.673307,32.387791],[102.673388,32.388005],[102.673492,32.388206],[102.673597,32.388407],[102.673702,32.388608],[102.673807,32.388809],[102.673912,32.38901],[102.674017,32.389211],[102.674213,32.389523],[102.67441,32.389835],[102.674587,32.390012],[102.674765,32.390188],[102.675022,32.390338],[102.67528,32.390487],[102.675617,32.390647],[102.675954,32.390808],[102.676291,32.390968],[102.676559,32.391028],[102.676827,32.391088],[102.677095,32.391147],[102.677363,32.391207],[102.677713,32.391291],[102.678063,32.391374],[102.678198,32.391436],[102.67831,32.391514],[102.67833,32.39163],[102.678349,32.391765],[102.678321,32.391919],[102.678109,32.392262],[102.677956,32.392632],[102.677802,32.393001],[102.677648,32.393371],[102.677523,32.393605],[102.677397,32.393838],[102.677272,32.394072],[102.677147,32.394306],[102.677019,32.394515],[102.676891,32.394723],[102.676763,32.394932],[102.676635,32.395141],[102.676507,32.395349],[102.676379,32.395558],[102.676251,32.395766],[102.676123,32.395975],[102.675979,32.396187],[102.675836,32.396399],[102.675692,32.396611],[102.675549,32.396823],[102.675405,32.397035],[102.67529,32.397206],[102.675262,32.397247],[102.675118,32.397459],[102.674975,32.397671],[102.674831,32.397883],[102.674688,32.398095],[102.674544,32.398307],[102.674483,32.398399],[102.674401,32.39852],[102.674257,32.398732],[102.674114,32.398944],[102.67397,32.399177],[102.673826,32.39941],[102.673681,32.399642],[102.673537,32.399875],[102.673393,32.400108],[102.673249,32.400341],[102.673104,32.400574],[102.67296,32.400807],[102.672816,32.40104],[102.672672,32.401273],[102.672528,32.401506],[102.672383,32.401739],[102.672239,32.401972],[102.672095,32.402205],[102.671951,32.402438],[102.671806,32.402671],[102.671598,32.403048],[102.67139,32.403425],[102.671182,32.403802],[102.670974,32.404179],[102.670811,32.40454],[102.670649,32.404901],[102.670486,32.405262],[102.670479,32.405332],[102.670458,32.40555],[102.670539,32.40584],[102.67065,32.405997],[102.670851,32.406154],[102.67113,32.406352],[102.671409,32.406551],[102.671604,32.406694],[102.6718,32.406837],[102.671995,32.40698],[102.67219,32.407124],[102.672368,32.40729],[102.672546,32.407457],[102.672691,32.407678],[102.672837,32.407899],[102.672983,32.40812],[102.673129,32.408341],[102.673261,32.408541],[102.673365,32.408677],[102.673421,32.408783],[102.673631,32.40918],[102.673698,32.409306],[102.67382,32.409536],[102.674008,32.409891],[102.674215,32.410182],[102.674364,32.410392],[102.674513,32.410602],[102.674769,32.410807],[102.675025,32.411012],[102.675062,32.411025],[102.675479,32.41117],[102.675895,32.411314],[102.676222,32.411469],[102.676549,32.411623],[102.676876,32.411777],[102.677078,32.411893],[102.67728,32.412008],[102.677561,32.412203],[102.677807,32.41246],[102.677809,32.412461],[102.677812,32.412462],[102.677836,32.412491],[102.677928,32.412587],[102.678049,32.412737],[102.678114,32.412865],[102.678114,32.412866],[102.678114,32.412867],[102.678114,32.412868],[102.678128,32.413001],[102.678128,32.413144],[102.678099,32.413379],[102.678002,32.413628],[102.677968,32.413716],[102.677905,32.413876],[102.677892,32.413908],[102.677769,32.414159],[102.677728,32.414243],[102.677693,32.414457],[102.677711,32.414723],[102.67773,32.414988],[102.67775,32.415283],[102.677771,32.415578],[102.677764,32.415849],[102.677757,32.416121],[102.677785,32.416363],[102.677885,32.416649],[102.677985,32.416863],[102.678266,32.41705],[102.678328,32.417091],[102.678635,32.417245],[102.678942,32.417398],[102.679249,32.417552],[102.679556,32.417705],[102.679913,32.417873],[102.68027,32.418041],[102.680626,32.418209],[102.680983,32.418376],[102.68135,32.418567],[102.681716,32.418757],[102.682083,32.418947],[102.682259,32.419093],[102.682509,32.419298],[102.682758,32.419504],[102.682967,32.419772],[102.683175,32.42004],[102.683238,32.420119],[102.683455,32.42039],[102.683672,32.420661],[102.683774,32.420788],[102.683889,32.420932],[102.684031,32.421086],[102.684044,32.421089],[102.684281,32.421134],[102.684376,32.421134],[102.684797,32.421019],[102.685217,32.420904],[102.685638,32.420789],[102.686011,32.420668],[102.686385,32.420546],[102.686758,32.420425],[102.68685,32.420395],[102.687132,32.420304],[102.687505,32.420182],[102.687749,32.420135],[102.687993,32.420087],[102.68835,32.419992],[102.688493,32.419968],[102.688719,32.419968],[102.688814,32.419956],[102.688945,32.419992],[102.6891,32.420123],[102.689442,32.420346],[102.689784,32.420569],[102.690126,32.420792],[102.690468,32.421015],[102.690801,32.421217],[102.691134,32.42142],[102.691274,32.421497],[102.691484,32.421613],[102.691693,32.421729],[102.692098,32.421833],[102.692503,32.421937],[102.692621,32.421967],[102.692907,32.422106],[102.693192,32.422244],[102.693478,32.422383],[102.693728,32.422502],[102.693978,32.422621],[102.694186,32.422794],[102.694394,32.422966],[102.694602,32.423169],[102.69481,32.423371],[102.695032,32.423625],[102.695255,32.423878],[102.695477,32.424132],[102.695534,32.424226],[102.695687,32.424475],[102.695897,32.424818],[102.696107,32.425161],[102.696317,32.425504],[102.696528,32.425847],[102.696738,32.42619],[102.69691,32.426488],[102.697083,32.426785],[102.697255,32.427083],[102.697428,32.42738],[102.697614,32.427725],[102.69765,32.427791],[102.697801,32.42807],[102.697987,32.428415],[102.69803,32.428514],[102.698165,32.428826],[102.698344,32.429236],[102.698395,32.42936],[102.698451,32.429498],[102.698592,32.4296],[102.698665,32.429653],[102.698903,32.429772],[102.699045,32.429819],[102.699248,32.429888],[102.699333,32.429916],[102.699593,32.430004],[102.699938,32.43012],[102.700283,32.430236],[102.700622,32.430432],[102.700961,32.430628],[102.701239,32.430747],[102.701517,32.430866],[102.701794,32.430985],[102.702205,32.431122],[102.702615,32.431259],[102.70283,32.431348],[102.702972,32.431407],[102.703329,32.431556],[102.703597,32.431723],[102.703864,32.431889],[102.704114,32.432187],[102.704441,32.432395],[102.704768,32.432603],[102.705113,32.432799],[102.705458,32.432996],[102.70583,32.433128],[102.706078,32.433216],[102.706327,32.433305],[102.706583,32.433454],[102.706839,32.433602],[102.707005,32.43365],[102.707219,32.433626],[102.707517,32.433495],[102.707722,32.433447],[102.707921,32.4334],[102.708225,32.433376],[102.708528,32.433353],[102.708814,32.433394],[102.709099,32.433436],[102.709504,32.433567],[102.709849,32.433769],[102.709854,32.433775],[102.710027,32.433971],[102.710164,32.434257],[102.710301,32.434542],[102.710432,32.43478],[102.710562,32.435018],[102.710729,32.43522],[102.710979,32.43528],[102.711324,32.435399],[102.711669,32.435518],[102.711851,32.435626],[102.712131,32.43578],[102.712411,32.435934],[102.712545,32.43601],[102.712649,32.436172],[102.712802,32.436515],[102.712954,32.436858],[102.713055,32.437082],[102.713157,32.437307],[102.713268,32.437552],[102.713411,32.437943],[102.713468,32.438142],[102.713531,32.43825],[102.713601,32.438371],[102.713815,32.438656],[102.714029,32.438942],[102.714291,32.439204],[102.714553,32.439465],[102.71491,32.439689],[102.715031,32.439765],[102.715267,32.439913],[102.715476,32.440022],[102.715685,32.440132],[102.715847,32.440265],[102.715876,32.44037],[102.715919,32.440665],[102.715961,32.44096],[102.715985,32.441279],[102.716009,32.441597],[102.715985,32.441761],[102.715971,32.441854],[102.715941,32.442132],[102.715913,32.442383],[102.715885,32.442635],[102.715886,32.442638],[102.715923,32.442844],[102.715941,32.442876],[102.716038,32.443054],[102.716223,32.443249],[102.716409,32.443444],[102.716605,32.44371],[102.716802,32.443977],[102.716999,32.444243],[102.717132,32.444481],[102.717208,32.444843],[102.71724,32.445259],[102.717272,32.445674],[102.717303,32.44609],[102.717367,32.446509],[102.71743,32.446927],[102.717494,32.447346],[102.717583,32.44766],[102.717671,32.447974],[102.71776,32.448288],[102.717804,32.448405],[102.717855,32.448545],[102.717989,32.448717],[102.718112,32.448888],[102.718465,32.449107],[102.718574,32.449179],[102.718757,32.449301],[102.719048,32.449494],[102.71934,32.449688],[102.719349,32.449691],[102.719621,32.449784],[102.719892,32.449878],[102.720268,32.449987],[102.720644,32.450097],[102.721015,32.450282],[102.721127,32.450338],[102.721387,32.450468],[102.721526,32.450524],[102.721608,32.450567],[102.721796,32.450678],[102.721824,32.450706],[102.721862,32.450868],[102.721834,32.451011],[102.721672,32.451229],[102.721577,32.451448],[102.721558,32.451734],[102.721558,32.451953],[102.721434,32.452324],[102.721305,32.452689],[102.721175,32.453055],[102.72112,32.453209],[102.720992,32.453533],[102.720863,32.453856],[102.720787,32.454113],[102.720673,32.454313],[102.720494,32.454394],[102.720378,32.454447],[102.720159,32.454542],[102.719987,32.454713],[102.719792,32.454999],[102.71979,32.455001],[102.719642,32.455218],[102.719597,32.455284],[102.719437,32.455552],[102.719276,32.455819],[102.719116,32.456087],[102.719026,32.456236],[102.718879,32.456474],[102.718731,32.456712],[102.718598,32.45694],[102.718512,32.457131],[102.718512,32.457245],[102.718655,32.45733],[102.718971,32.457495],[102.718778,32.457557],[102.718069,32.457644],[102.717122,32.45786],[102.715839,32.458306],[102.7153,32.458493],[102.713919,32.458767],[102.712851,32.459081],[102.711503,32.459589],[102.709838,32.460224],[102.708442,32.461098],[102.70796,32.461391],[102.707743,32.461523],[102.707325,32.461777],[102.705837,32.462569],[102.705694,32.462646],[102.70442,32.463321],[102.703025,32.464161],[102.702303,32.464747],[102.701285,32.464629],[102.699758,32.464468],[102.698109,32.464471],[102.696979,32.464118],[102.696354,32.464006],[102.696304,32.464007],[102.694665,32.464042],[102.693445,32.464153],[102.691914,32.464125],[102.691043,32.464409],[102.689386,32.464744],[102.688008,32.464885],[102.686659,32.465427],[102.685268,32.4661],[102.683992,32.466842],[102.682959,32.467322],[102.681996,32.468137],[102.680831,32.469147],[102.680198,32.469335],[102.679673,32.468394],[102.679419,32.467557],[102.678424,32.466573],[102.677165,32.465119],[102.676399,32.464406],[102.675509,32.46389],[102.673834,32.46336],[102.672971,32.463344],[102.671747,32.463587],[102.671317,32.463546],[102.671691,32.462721],[102.671722,32.461523],[102.67209,32.459433],[102.672349,32.458506],[102.672094,32.457769],[102.671048,32.457217],[102.669418,32.456488],[102.667513,32.455754],[102.666433,32.455002],[102.665082,32.454111],[102.66374,32.452888],[102.662891,32.452306],[102.662136,32.452314],[102.661713,32.452318],[102.66137,32.452311],[102.660497,32.452295],[102.659429,32.452575],[102.658992,32.4528],[102.65831,32.453353],[102.657613,32.454505],[102.656853,32.455057],[102.655635,32.455067],[102.654573,32.455181],[102.652817,32.456279],[102.651823,32.45676],[102.648767,32.458034],[102.648555,32.458134],[102.646926,32.45709],[102.645651,32.456373],[102.644645,32.455777],[102.643154,32.455518],[102.642086,32.455336],[102.642062,32.454784],[102.641667,32.453802],[102.64168,32.453283],[102.641417,32.453083],[102.640118,32.452994],[102.639168,32.452684],[102.638217,32.452438],[102.637417,32.452261],[102.636745,32.451631],[102.635926,32.450707],[102.635334,32.449916],[102.634595,32.448896],[102.634037,32.448268],[102.633699,32.448002],[102.633019,32.447665],[102.632531,32.447266],[102.631846,32.447091],[102.630589,32.44684],[102.629403,32.446785],[102.628138,32.446858],[102.627704,32.447337],[102.627062,32.448116],[102.626764,32.448476],[102.626755,32.448488],[102.626744,32.448499],[102.626046,32.449222],[102.625449,32.450087],[102.625067,32.450048],[102.624124,32.44951],[102.623403,32.449237],[102.622301,32.448924],[102.62145,32.448637],[102.620972,32.448476],[102.619525,32.448157],[102.619196,32.448167],[102.618222,32.448197],[102.618083,32.448202],[102.61711,32.448241],[102.61585,32.44812],[102.61501,32.448087],[102.614386,32.448063],[102.614205,32.448056],[102.61394,32.447994],[102.61341,32.447871],[102.612682,32.447702],[102.61112,32.447413],[102.609444,32.447056],[102.607959,32.446736],[102.606124,32.446636],[102.604169,32.446696],[102.603164,32.447034],[102.601913,32.448017],[102.601593,32.44829],[102.601388,32.448466],[102.601208,32.44862],[102.600517,32.448672],[102.599369,32.448618],[102.599103,32.44862],[102.598918,32.448621],[102.598772,32.448623],[102.598182,32.448628],[102.596761,32.448763],[102.596137,32.449205],[102.595746,32.44949],[102.59475,32.449504],[102.59391,32.449423],[102.593035,32.449211],[102.592622,32.448911],[102.592072,32.447959],[102.591138,32.447097],[102.589935,32.446262],[102.588311,32.445386],[102.586495,32.444572],[102.584527,32.44369],[102.583009,32.443174],[102.581255,32.442913],[102.580868,32.44287],[102.579498,32.442717],[102.579065,32.44266],[102.577781,32.442489],[102.576027,32.442228],[102.574966,32.441786],[102.573031,32.441131],[102.571286,32.440513],[102.569919,32.440065],[102.567794,32.439374],[102.566501,32.439025],[102.565743,32.438718],[102.565107,32.438186],[102.564399,32.437458],[102.563736,32.436471],[102.562842,32.435544],[102.562561,32.434597],[102.562118,32.434004],[102.561318,32.433826],[102.560255,32.433513],[102.558222,32.432841],[102.556984,32.432157],[102.556042,32.431289],[102.553949,32.429358],[102.553757,32.429224],[102.55254,32.428367],[102.550491,32.426704],[102.548578,32.425304],[102.548572,32.4253],[102.548567,32.425296],[102.548552,32.425285],[102.548521,32.425262],[102.548496,32.425244],[102.548491,32.425241],[102.54848,32.425234],[102.548362,32.425162],[102.5482,32.425063],[102.546613,32.424091],[102.54649,32.42401],[102.546463,32.423992],[102.544321,32.422575],[102.543751,32.422217],[102.543321,32.421947],[102.540902,32.420733],[102.538959,32.419788],[102.538835,32.419728],[102.538407,32.419519],[102.536887,32.418777],[102.535523,32.418344],[102.534512,32.418121],[102.534201,32.418159],[102.533943,32.418191],[102.533156,32.418286],[102.532712,32.41834],[102.532553,32.418385],[102.531386,32.41872],[102.529342,32.419085],[102.528362,32.419155],[102.527846,32.419192],[102.527664,32.419205],[102.526508,32.419228],[102.52509,32.419256],[102.523884,32.419232],[102.523122,32.419217],[102.521922,32.419193],[102.520065,32.419258],[102.518846,32.419234],[102.518773,32.419233],[102.516419,32.419186],[102.513727,32.419184],[102.512634,32.419771],[102.511778,32.420464],[102.511402,32.421066],[102.511323,32.421215],[102.511263,32.421327],[102.511246,32.421359],[102.511236,32.421379],[102.511223,32.421402],[102.510749,32.422294],[102.510708,32.422371],[102.510669,32.423791],[102.511394,32.425733],[102.512401,32.428239],[102.513938,32.43111],[102.514308,32.432894],[102.514031,32.434258],[102.513027,32.435963],[102.511793,32.437308],[102.510628,32.438351],[102.509176,32.438931],[102.507601,32.43961],[102.506141,32.440494],[102.50465,32.442494],[102.502618,32.444584],[102.501934,32.445535],[102.501265,32.445927],[102.500299,32.446213],[102.499732,32.447445],[102.498921,32.448001],[102.496884,32.448531],[102.495789,32.44825],[102.494777,32.447191],[102.493962,32.445668],[102.493447,32.444359],[102.492802,32.443308],[102.492528,32.44216],[102.492023,32.440487],[102.491511,32.439075],[102.491415,32.438086],[102.491259,32.437096],[102.490313,32.435882],[102.488331,32.43444],[102.487322,32.433277],[102.48649,32.432378],[102.485528,32.431735],[102.484503,32.431143],[102.48343,32.430083],[102.482739,32.428511],[102.482403,32.427362],[102.481591,32.425735],[102.481169,32.423285],[102.480743,32.420991],[102.480725,32.419433],[102.480701,32.418082],[102.480625,32.416418],[102.480722,32.415121],[102.481419,32.412071],[102.481512,32.41093],[102.481502,32.409111],[102.481535,32.407917],[102.481934,32.406782],[102.481957,32.405952],[102.481929,32.404757],[102.482146,32.403566],[102.48292,32.402127],[102.483981,32.401421],[102.485717,32.400625],[102.487793,32.39864],[102.488665,32.398086],[102.48943,32.397011],[102.490508,32.395682],[102.490781,32.394648],[102.490756,32.393349],[102.490554,32.391787],[102.490778,32.390337],[102.491056,32.386914],[102.491462,32.385519],[102.491141,32.383851],[102.491049,32.382758],[102.490598,32.381346],[102.490509,32.38015],[102.490542,32.378956],[102.490394,32.377654],[102.488845,32.376117],[102.488027,32.374698],[102.487249,32.374059],[102.486154,32.37383],[102.486108,32.373257],[102.486269,32.371858],[102.486611,32.370566],[102.48628,32.369261],[102.485027,32.368093],[102.484561,32.367252],[102.483433,32.365983],[102.482675,32.364617],[102.482273,32.363674],[102.482135,32.362009],[102.482039,32.361072],[102.481338,32.359864],[102.480688,32.359019],[102.479785,32.358482],[102.478407,32.357402],[102.476598,32.356457],[102.475767,32.356051],[102.47458,32.354728],[102.473468,32.353472],[102.472326,32.353254],[102.471258,32.353168],[102.470661,32.353029],[102.470346,32.352955],[102.468904,32.352536],[102.467467,32.351923],[102.466106,32.351376],[102.464668,32.350827],[102.462705,32.349879],[102.460597,32.348667],[102.458786,32.347787],[102.458579,32.347678],[102.456977,32.346841],[102.455953,32.34682],[102.455753,32.346816],[102.454523,32.347051],[102.454496,32.347052],[102.454452,32.347055],[102.453604,32.347097],[102.451698,32.346864],[102.450859,32.346782],[102.450575,32.346601],[102.45045,32.346521],[102.450444,32.346518],[102.450239,32.346387],[102.449807,32.346111],[102.449363,32.346021],[102.449228,32.346117],[102.449219,32.346108],[102.449134,32.346058],[102.448742,32.345895],[102.447984,32.345262],[102.447546,32.344897],[102.44698,32.343262],[102.446265,32.341494],[102.445203,32.33947],[102.444765,32.338635],[102.444755,32.338616],[102.444737,32.338582],[102.444719,32.338546],[102.444639,32.338395],[102.444552,32.338229],[102.441805,32.337214],[102.441275,32.337018],[102.441245,32.337007],[102.441061,32.336939],[102.440769,32.336831],[102.43883,32.336226],[102.438076,32.335918],[102.437753,32.335786],[102.437611,32.335728],[102.437505,32.335685],[102.437468,32.33567],[102.437419,32.335626],[102.437413,32.33562],[102.437005,32.335257],[102.436948,32.335206],[102.436784,32.334713],[102.437072,32.333964],[102.437296,32.333477],[102.437515,32.332959],[102.437551,32.331684],[102.437254,32.330243],[102.437252,32.330237],[102.437211,32.330039],[102.437177,32.32987],[102.43713,32.329646],[102.437047,32.329495],[102.436936,32.329295],[102.43685,32.329139],[102.436744,32.328948],[102.436634,32.32875],[102.436548,32.328594],[102.436481,32.328474],[102.436415,32.328355],[102.436403,32.328213],[102.436392,32.328078],[102.436313,32.327135],[102.435728,32.326079],[102.435735,32.325853],[102.435736,32.325798],[102.435756,32.325081],[102.435761,32.324933],[102.435784,32.324108],[102.435787,32.324072],[102.435809,32.32385],[102.43588,32.323124],[102.435498,32.322131],[102.435123,32.320905],[102.434873,32.320088],[102.434672,32.319572],[102.434554,32.31927],[102.434412,32.318963],[102.434182,32.318469],[102.434105,32.318304],[102.433846,32.317747],[102.433206,32.316368],[102.433116,32.315485],[102.432948,32.314634],[102.432878,32.313389],[102.432877,32.313361],[102.432877,32.313359],[102.432875,32.313349],[102.432875,32.313348],[102.432874,32.313331],[102.432871,32.313262],[102.432873,32.31325],[102.432892,32.313138],[102.43301,32.312416],[102.433662,32.311092],[102.434185,32.310287],[102.434708,32.309417],[102.435152,32.308676],[102.435335,32.307636],[102.435919,32.305984],[102.436223,32.30475],[102.436339,32.30335],[102.436629,32.302605],[102.436964,32.301633],[102.436959,32.300459],[102.436929,32.298794],[102.437037,32.297687],[102.437007,32.297452],[102.436785,32.295692],[102.436772,32.295461],[102.436747,32.295033],[102.436708,32.294353],[102.436507,32.293305],[102.436316,32.291898],[102.436036,32.290947],[102.435917,32.289704],[102.436169,32.288678],[102.436182,32.288624],[102.436194,32.288578],[102.436202,32.288543],[102.436235,32.288407],[102.436307,32.288114],[102.436334,32.287824],[102.436342,32.287743],[102.436418,32.286909],[102.436614,32.285412],[102.43739,32.283764],[102.437437,32.283638],[102.437464,32.283566],[102.437639,32.283096],[102.437764,32.28276],[102.438077,32.281961],[102.438138,32.281807],[102.438715,32.280333],[102.4387,32.279674],[102.438698,32.279582],[102.438861,32.278874],[102.438884,32.278774],[102.438982,32.278347],[102.439004,32.278251],[102.439146,32.278018],[102.439512,32.277416],[102.439729,32.277058],[102.440042,32.276506],[102.440265,32.276111],[102.440295,32.276059],[102.441318,32.275166],[102.442267,32.274206],[102.442676,32.273379],[102.442715,32.273302],[102.442814,32.272488],[102.443153,32.271353],[102.443212,32.270637],[102.443232,32.269919],[102.443138,32.269167],[102.443246,32.268412],[102.443258,32.268332],[102.443329,32.267833],[102.44334,32.267658],[102.443397,32.266791],[102.443412,32.266237],[102.443079,32.265806],[102.442676,32.265112],[102.441852,32.264378],[102.441138,32.263809],[102.440476,32.262784],[102.439117,32.261941],[102.438684,32.260953],[102.438684,32.260652],[102.438684,32.260357],[102.438685,32.25955],[102.438666,32.259208],[102.438634,32.258636],[102.438868,32.258063],[102.438964,32.257827],[102.439515,32.257349],[102.439681,32.256895],[102.439581,32.256575],[102.439525,32.256395],[102.439364,32.255878],[102.438638,32.254395],[102.438405,32.253118],[102.438039,32.252164],[102.437815,32.251581],[102.437761,32.251441],[102.43736,32.250654],[102.437106,32.250155],[102.437021,32.249991],[102.43699,32.24993],[102.436342,32.248671],[102.436359,32.248052],[102.4364,32.247982],[102.436461,32.247878],[102.436559,32.247711],[102.436687,32.247494],[102.436843,32.247229],[102.437004,32.246956],[102.437136,32.246815],[102.43739,32.246546],[102.437637,32.246283],[102.437652,32.246254],[102.437776,32.246008],[102.437881,32.245799],[102.437759,32.245448],[102.437653,32.245144],[102.437561,32.244879],[102.437409,32.244509],[102.437305,32.244257],[102.43712,32.243808],[102.436897,32.243267],[102.436716,32.242829],[102.436598,32.242544],[102.436524,32.242362],[102.436425,32.242124],[102.436197,32.24157],[102.436012,32.241121],[102.435746,32.240476],[102.435513,32.239911],[102.43535,32.239616],[102.435111,32.239185],[102.434893,32.238843],[102.43467,32.238491],[102.434286,32.238198],[102.433961,32.237949],[102.433618,32.237687],[102.433231,32.237395],[102.432801,32.237072],[102.432415,32.236781],[102.431821,32.236423],[102.431154,32.23602],[102.430659,32.235721],[102.430175,32.235429],[102.429741,32.235167],[102.429395,32.234958],[102.428998,32.234783],[102.428598,32.234556],[102.428109,32.234279],[102.427614,32.234056],[102.427028,32.233792],[102.426517,32.233562],[102.426057,32.233454],[102.425297,32.233276],[102.424565,32.233198],[102.424149,32.233154],[102.42345,32.23314],[102.422776,32.233126],[102.422269,32.233116],[102.421705,32.233208],[102.421206,32.23329],[102.420495,32.233406],[102.419798,32.23362],[102.419399,32.233719],[102.419766,32.23299],[102.420302,32.231677],[102.420339,32.230355],[102.420318,32.230043],[102.420208,32.228394],[102.419875,32.226958],[102.419912,32.225636],[102.419688,32.224732],[102.419273,32.223626],[102.419167,32.223345],[102.419013,32.222177],[102.418602,32.221322],[102.417815,32.220512],[102.417531,32.219554],[102.417613,32.218867],[102.418141,32.21782],[102.418535,32.217087],[102.419814,32.215896],[102.419914,32.215689],[102.419942,32.215631],[102.420144,32.215214],[102.420069,32.215005],[102.420014,32.214855],[102.419855,32.214414],[102.419601,32.214079],[102.419035,32.213332],[102.418648,32.212336],[102.417692,32.211151],[102.417605,32.211043],[102.417051,32.210043],[102.416984,32.209705],[102.416927,32.209422],[102.416782,32.208527],[102.416637,32.207632],[102.416547,32.20681],[102.416104,32.206066],[102.415356,32.204808],[102.414411,32.204114],[102.413637,32.203423],[102.413632,32.203286],[102.413614,32.202796],[102.413605,32.202554],[102.413513,32.202148],[102.413353,32.20144],[102.41318,32.201208],[102.412911,32.200846],[102.41282,32.200724],[102.412705,32.200569],[102.412587,32.20041],[102.412478,32.200265],[102.412438,32.200171],[102.412379,32.200033],[102.412318,32.199855],[102.412229,32.199627],[102.412156,32.199442],[102.412074,32.199232],[102.412002,32.199049],[102.411959,32.19887],[102.411933,32.198756],[102.411898,32.198606],[102.411863,32.198457],[102.4118,32.198187],[102.411547,32.19711],[102.411356,32.196353],[102.411247,32.19592],[102.410986,32.194881],[102.410968,32.19354],[102.410968,32.19353],[102.410954,32.19333],[102.410847,32.191792],[102.410594,32.190966],[102.410432,32.190433],[102.410091,32.189611],[102.409848,32.189023],[102.40958,32.188638],[102.409432,32.188425],[102.409318,32.188261],[102.409303,32.18824],[102.408992,32.187221],[102.408253,32.185277],[102.407528,32.184828],[102.406406,32.184419],[102.40533,32.184349],[102.404833,32.183904],[102.404709,32.183709],[102.404692,32.183682],[102.404271,32.183019],[102.404182,32.182879],[102.403964,32.182536],[102.403043,32.181022],[102.402338,32.179899],[102.401627,32.178968],[102.40031,32.177446],[102.399263,32.176363],[102.398376,32.17567],[102.396988,32.174629],[102.395433,32.173487],[102.394544,32.172842],[102.393159,32.171705],[102.391037,32.170552],[102.388857,32.169446],[102.387477,32.168163],[102.387211,32.167531],[102.387169,32.167444],[102.387355,32.167478],[102.387528,32.167489],[102.387694,32.167454],[102.387903,32.167376],[102.388093,32.16724],[102.388224,32.167008],[102.388378,32.166609],[102.388468,32.16635],[102.388557,32.166092],[102.388557,32.165741],[102.388483,32.165467],[102.388408,32.165193],[102.388269,32.16492],[102.38813,32.164646],[102.388069,32.164527],[102.387938,32.164343],[102.387807,32.164158],[102.387665,32.163944],[102.387522,32.16373],[102.387385,32.163343],[102.387296,32.163086],[102.387208,32.162829],[102.387141,32.162635],[102.387037,32.16243],[102.386933,32.162225],[102.386927,32.161945],[102.386992,32.161577],[102.387023,32.16152],[102.387153,32.161285],[102.387266,32.161035],[102.387349,32.160782],[102.38745,32.16047],[102.387474,32.160232],[102.387456,32.159982],[102.387385,32.159792],[102.387364,32.159737],[102.387278,32.159506],[102.387278,32.159268],[102.387278,32.159031],[102.387278,32.158644],[102.38729,32.158394],[102.387302,32.158144],[102.38739,32.157894],[102.387478,32.157644],[102.387522,32.15752],[102.387599,32.157151],[102.387641,32.156871],[102.387635,32.156759],[102.387629,32.156657],[102.387605,32.156422],[102.387581,32.156187],[102.387599,32.156032],[102.387676,32.155902],[102.387885,32.155705],[102.388194,32.15539],[102.388372,32.15517],[102.388408,32.155039],[102.388551,32.154753],[102.388735,32.154504],[102.388902,32.154349],[102.388932,32.154312],[102.388958,32.154279],[102.389229,32.153944],[102.389515,32.153724],[102.389735,32.153451],[102.389961,32.153284],[102.390127,32.153058],[102.390252,32.152838],[102.390336,32.152707],[102.390371,32.152546],[102.390371,32.152404],[102.390318,32.152094],[102.390264,32.151785],[102.390264,32.151601],[102.390217,32.151398],[102.390062,32.151214],[102.38983,32.15103],[102.389598,32.150845],[102.389598,32.150845],[102.38936,32.150685],[102.389289,32.150625],[102.389267,32.15048],[102.389235,32.150268],[102.389283,32.149822],[102.389238,32.149557],[102.389193,32.149293],[102.389125,32.149019],[102.389057,32.148745],[102.389068,32.148608],[102.389098,32.148537],[102.38917,32.148489],[102.389515,32.148388],[102.389729,32.148308],[102.389943,32.148228],[102.390108,32.148185],[102.390377,32.148115],[102.390432,32.148112],[102.39074,32.148097],[102.391008,32.148133],[102.39121,32.148139],[102.391472,32.148097],[102.391766,32.148008],[102.392061,32.147918],[102.392459,32.14785],[102.392858,32.147782],[102.39323,32.147683],[102.393601,32.147585],[102.394024,32.147496],[102.394458,32.147383],[102.394862,32.147222],[102.395112,32.147008],[102.395231,32.146788],[102.395321,32.146479],[102.395333,32.146349],[102.395369,32.145991],[102.395404,32.145634],[102.395422,32.145361],[102.395535,32.145013],[102.395648,32.144665],[102.395802,32.144349],[102.395892,32.144117],[102.395892,32.143757],[102.395892,32.143397],[102.395945,32.143035],[102.396022,32.142862],[102.396124,32.142761],[102.396326,32.142654],[102.396458,32.142588],[102.39679,32.142422],[102.396998,32.142345],[102.397171,32.142339],[102.397309,32.142365],[102.397355,32.142374],[102.397522,32.142434],[102.39764,32.142446],[102.397861,32.142428],[102.398096,32.142356],[102.398331,32.142285],[102.398705,32.142166],[102.398961,32.142047],[102.399205,32.141988],[102.399479,32.141898],[102.399776,32.141768],[102.399961,32.141698],[102.400091,32.141649],[102.400401,32.141536],[102.40074,32.141488],[102.400978,32.141428],[102.401293,32.141256],[102.401513,32.141149],[102.401733,32.141042],[102.402138,32.140887],[102.402459,32.140798],[102.402634,32.140637],[102.40281,32.140477],[102.402991,32.140254],[102.403173,32.140031],[102.403446,32.139697],[102.403571,32.13937],[102.403666,32.138966],[102.403747,32.138524],[102.403828,32.138082],[102.403846,32.137999],[102.403903,32.137736],[102.403935,32.137371],[102.404,32.137172],[102.404022,32.137138],[102.404117,32.136993],[102.404264,32.136822],[102.40441,32.13665],[102.404567,32.136408],[102.404724,32.136165],[102.405028,32.135847],[102.405095,32.135756],[102.40516,32.135669],[102.405238,32.135483],[102.405252,32.135351],[102.405299,32.135259],[102.405374,32.135255],[102.405481,32.135269],[102.405566,32.135291],[102.405616,32.135312],[102.405789,32.135348],[102.405938,32.135383],[102.406051,32.135461],[102.406134,32.135496],[102.406223,32.13552],[102.406378,32.135538],[102.406574,32.13555],[102.406818,32.135598],[102.407074,32.135675],[102.407229,32.135705],[102.407417,32.135705],[102.407603,32.13568],[102.407845,32.135648],[102.408088,32.135616],[102.408348,32.135606],[102.408608,32.135595],[102.408869,32.135585],[102.409129,32.135574],[102.409514,32.13553],[102.409884,32.135487],[102.41013,32.13542],[102.410375,32.135354],[102.410488,32.135282],[102.410566,32.13514],[102.410619,32.135021],[102.410738,32.134967],[102.410946,32.134967],[102.411101,32.135021],[102.41122,32.13514],[102.411369,32.135235],[102.411506,32.135282],[102.411874,32.135342],[102.412243,32.135401],[102.412535,32.135434],[102.412666,32.135449],[102.412957,32.135491],[102.413314,32.135693],[102.413558,32.135865],[102.413654,32.136022],[102.413796,32.136252],[102.413927,32.136612],[102.414058,32.136972],[102.414257,32.137262],[102.414456,32.137552],[102.414462,32.137561],[102.414617,32.137715],[102.414736,32.137787],[102.414873,32.137864],[102.415057,32.137894],[102.415417,32.138001],[102.415777,32.138108],[102.416205,32.138173],[102.416336,32.138179],[102.416526,32.138167],[102.416806,32.138096],[102.417234,32.138066],[102.417549,32.138025],[102.417712,32.13802],[102.418136,32.138007],[102.418561,32.137995],[102.418858,32.138007],[102.419072,32.138072],[102.419179,32.13815],[102.41928,32.13834],[102.41934,32.138377],[102.41941,32.138421],[102.419674,32.138564],[102.420003,32.138635],[102.42022,32.138667],[102.420338,32.138685],[102.420406,32.138693],[102.420681,32.138728],[102.420981,32.138756],[102.421209,32.138735],[102.421437,32.138678],[102.421759,32.138728],[102.421923,32.138835],[102.42213,32.13902],[102.422401,32.139177],[102.42263,32.139335],[102.422972,32.139484],[102.423179,32.139542],[102.423415,32.139777],[102.423661,32.139955],[102.423938,32.140155],[102.424214,32.140355],[102.424443,32.140473],[102.424671,32.140591],[102.424892,32.140719],[102.425042,32.140762],[102.425406,32.140841],[102.42577,32.140798],[102.425899,32.140698],[102.42602,32.140441],[102.426183,32.140161],[102.426199,32.140134],[102.426497,32.13987],[102.426796,32.139606],[102.427094,32.139342],[102.427392,32.139078],[102.427691,32.138813],[102.427878,32.138647],[102.428066,32.138482],[102.428312,32.138264],[102.428554,32.137982],[102.428797,32.1377],[102.429,32.137336],[102.429111,32.137136],[102.429354,32.136879],[102.429697,32.136636],[102.430018,32.136472],[102.430308,32.136363],[102.430598,32.136253],[102.430889,32.136144],[102.431205,32.136025],[102.431522,32.135906],[102.431838,32.135787],[102.432107,32.135639],[102.432376,32.135492],[102.432645,32.135344],[102.432852,32.135116],[102.433059,32.134887],[102.433284,32.134627],[102.433508,32.134366],[102.433662,32.134145],[102.433815,32.133924],[102.434046,32.133729],[102.434277,32.133533],[102.434508,32.133338],[102.434851,32.133081],[102.43515,32.133081],[102.435429,32.133096],[102.435821,32.133074],[102.436082,32.133059],[102.436314,32.133046],[102.436571,32.133003],[102.436935,32.132953],[102.437231,32.132899],[102.437527,32.132846],[102.437824,32.132757],[102.43812,32.132667],[102.438434,32.132477],[102.438748,32.132287],[102.439062,32.132096],[102.439419,32.131868],[102.439776,32.131639],[102.439976,32.131486],[102.440176,32.131332],[102.440368,32.13099],[102.440383,32.130633],[102.440383,32.130269],[102.440354,32.129998],[102.440254,32.129783],[102.44039,32.129498],[102.44049,32.129319],[102.440504,32.129227],[102.440461,32.129062],[102.440297,32.128805],[102.44023,32.128738],[102.440097,32.128606],[102.439933,32.128527],[102.439862,32.128434],[102.439776,32.128199],[102.43969,32.12796],[102.439605,32.12772],[102.439565,32.127496],[102.439526,32.127271],[102.4395,32.127214],[102.439401,32.127035],[102.439281,32.126817],[102.438974,32.126494],[102.438667,32.12617],[102.438505,32.125999],[102.438343,32.125828],[102.438181,32.125657],[102.438018,32.125486],[102.437856,32.125315],[102.437694,32.125144],[102.437643,32.125111],[102.437358,32.124932],[102.437073,32.124753],[102.436834,32.124669],[102.436596,32.124585],[102.436377,32.124455],[102.436308,32.124264],[102.436407,32.124045],[102.436506,32.123826],[102.436685,32.123624],[102.436864,32.123422],[102.437043,32.123221],[102.437221,32.123019],[102.4374,32.122817],[102.437579,32.122615],[102.437725,32.122397],[102.43787,32.122179],[102.438035,32.121933],[102.438285,32.1217],[102.438536,32.121467],[102.438639,32.121389],[102.438736,32.121315],[102.438984,32.121086],[102.43906,32.120763],[102.439079,32.120511],[102.439098,32.120258],[102.43912,32.120108],[102.439167,32.119792],[102.439214,32.119476],[102.439203,32.119166],[102.43915,32.118934],[102.439143,32.118904],[102.43906,32.118571],[102.439131,32.118197],[102.439203,32.117822],[102.439274,32.117596],[102.439345,32.11737],[102.439512,32.117156],[102.439726,32.117048],[102.43994,32.116941],[102.440285,32.116822],[102.44046,32.116807],[102.44069,32.116787],[102.441005,32.116822],[102.44132,32.116858],[102.44153,32.116767],[102.441741,32.116676],[102.442095,32.116399],[102.442449,32.116122],[102.442716,32.115989],[102.442984,32.115855],[102.443103,32.115849],[102.443258,32.115885],[102.443371,32.115944],[102.443555,32.115986],[102.443799,32.116039],[102.443948,32.116057],[102.444186,32.116093],[102.444388,32.116099],[102.444389,32.116099],[102.44439,32.1161],[102.444548,32.116176],[102.444691,32.116277],[102.444858,32.116456],[102.444983,32.116634],[102.445274,32.116842],[102.445595,32.117068],[102.445881,32.117202],[102.446166,32.117336],[102.446378,32.117479],[102.446589,32.117622],[102.446922,32.117842],[102.447166,32.117883],[102.447493,32.117836],[102.447707,32.117806],[102.448058,32.117812],[102.448415,32.117859],[102.448576,32.117854],[102.448837,32.117804],[102.448921,32.117788],[102.449147,32.117776],[102.449373,32.117764],[102.449783,32.117782],[102.450194,32.117824],[102.45058,32.117919],[102.450884,32.11802],[102.451005,32.118055],[102.45111,32.118086],[102.451264,32.118086],[102.451455,32.118032],[102.451669,32.117984],[102.451923,32.117786],[102.452177,32.117588],[102.45243,32.11739],[102.452567,32.117265],[102.45257,32.117248],[102.452597,32.117098],[102.452591,32.116872],[102.452591,32.116711],[102.45265,32.116503],[102.452817,32.116283],[102.452984,32.116063],[102.453177,32.11587],[102.45337,32.115676],[102.453715,32.115522],[102.453938,32.115438],[102.454161,32.115355],[102.454322,32.115273],[102.454646,32.115106],[102.45497,32.114939],[102.455318,32.114745],[102.455666,32.114552],[102.45597,32.114362],[102.456136,32.1141],[102.456184,32.11388],[102.456184,32.113851],[102.456184,32.113648],[102.456184,32.113422],[102.456285,32.113148],[102.456422,32.112976],[102.45669,32.112809],[102.457076,32.112583],[102.457317,32.112321],[102.457558,32.11206],[102.45778,32.111802],[102.457927,32.111631],[102.458147,32.111334],[102.458367,32.111036],[102.458617,32.110665],[102.458867,32.110293],[102.459049,32.110132],[102.459232,32.109972],[102.459421,32.109805],[102.45961,32.109638],[102.459848,32.109496],[102.460134,32.109436],[102.460425,32.109436],[102.460654,32.109484],[102.460883,32.109531],[102.460894,32.109532],[102.461199,32.109561],[102.461395,32.109555],[102.461657,32.109525],[102.461924,32.109454],[102.462109,32.109448],[102.462299,32.109448],[102.462466,32.109424],[102.462698,32.109335],[102.462765,32.109305],[102.463138,32.109139],[102.463271,32.109087],[102.463489,32.109002],[102.46384,32.108865],[102.464084,32.108818],[102.46434,32.108823],[102.464578,32.108853],[102.464708,32.108859],[102.464804,32.108859],[102.464917,32.108835],[102.465053,32.108764],[102.465143,32.108764],[102.465262,32.108794],[102.465375,32.108794],[102.465523,32.108758],[102.465624,32.108722],[102.465708,32.108705],[102.465845,32.108746],[102.465922,32.10877],[102.465981,32.10877],[102.466124,32.108764],[102.466285,32.108716],[102.466428,32.108716],[102.466573,32.108793],[102.466642,32.108829],[102.466856,32.108942],[102.466999,32.10902],[102.467141,32.109044],[102.467344,32.10902],[102.467516,32.108966],[102.467748,32.108806],[102.468046,32.108609],[102.468343,32.108413],[102.468605,32.108285],[102.468866,32.108157],[102.469146,32.107973],[102.469426,32.107788],[102.469673,32.10755],[102.469919,32.107313],[102.470065,32.107109],[102.470211,32.106906],[102.470401,32.10664],[102.470657,32.106301],[102.470734,32.106057],[102.470758,32.105843],[102.4708,32.10557],[102.470949,32.105367],[102.471127,32.105183],[102.471157,32.105064],[102.471109,32.104975],[102.470972,32.104862],[102.470889,32.104695],[102.470835,32.104261],[102.470762,32.103861],[102.470711,32.103583],[102.470687,32.10325],[102.470722,32.103053],[102.470865,32.102798],[102.471076,32.102542],[102.471288,32.102286],[102.471298,32.102262],[102.471472,32.101864],[102.471484,32.101709],[102.471389,32.101483],[102.471308,32.101221],[102.471228,32.100959],[102.470978,32.100686],[102.470835,32.100555],[102.470776,32.100329],[102.470865,32.100049],[102.471127,32.099782],[102.471347,32.099544],[102.471407,32.099341],[102.471347,32.099121],[102.47124,32.098919],[102.471189,32.098544],[102.471139,32.098169],[102.471118,32.098068],[102.471032,32.097652],[102.470984,32.097283],[102.470895,32.097134],[102.470788,32.097039],[102.470454,32.096894],[102.470294,32.096825],[102.470104,32.096801],[102.469967,32.096658],[102.469878,32.096462],[102.469717,32.096313],[102.469551,32.09623],[102.469503,32.096177],[102.469557,32.095909],[102.469723,32.095582],[102.469907,32.095255],[102.469949,32.094969],[102.470044,32.094535],[102.470047,32.094237],[102.47005,32.09394],[102.470074,32.093559],[102.470145,32.093321],[102.470306,32.093125],[102.470592,32.092917],[102.470818,32.092679],[102.470978,32.092441],[102.471112,32.092248],[102.471246,32.092054],[102.471418,32.091923],[102.471627,32.091864],[102.471918,32.091804],[102.472275,32.091715],[102.472558,32.091632],[102.47284,32.091549],[102.473251,32.091507],[102.47357,32.091545],[102.473602,32.091549],[102.473923,32.091644],[102.474232,32.091679],[102.47444,32.091632],[102.474666,32.091549],[102.474892,32.091465],[102.475038,32.091423],[102.475297,32.091346],[102.475678,32.091264],[102.476059,32.091181],[102.47627,32.091146],[102.476527,32.091104],[102.476784,32.091062],[102.477042,32.09102],[102.477299,32.090978],[102.477556,32.090935],[102.477813,32.090893],[102.478068,32.090861],[102.478322,32.090829],[102.478576,32.090797],[102.478831,32.090765],[102.478955,32.090749],[102.479217,32.090722],[102.479342,32.0907],[102.479565,32.090666],[102.479787,32.090632],[102.480011,32.090597],[102.480235,32.090562],[102.48028,32.090548],[102.480692,32.09049],[102.480918,32.090377],[102.481079,32.090264],[102.481281,32.090103],[102.481286,32.090095],[102.481466,32.089818],[102.48162,32.08949],[102.481727,32.089086],[102.481727,32.088664],[102.48167,32.088362],[102.481612,32.088061],[102.481555,32.087759],[102.481534,32.087521],[102.481513,32.087283],[102.481427,32.086888],[102.481341,32.086492],[102.481258,32.086195],[102.481228,32.085868],[102.481311,32.08557],[102.481377,32.085291],[102.481347,32.085071],[102.481258,32.084761],[102.481269,32.084422],[102.481335,32.084143],[102.4814,32.083863],[102.48142,32.083796],[102.481466,32.083637],[102.481531,32.08353],[102.481799,32.083334],[102.482004,32.083078],[102.482209,32.082822],[102.482299,32.082513],[102.482275,32.082239],[102.482215,32.082049],[102.482074,32.081797],[102.481936,32.081549],[102.481846,32.081323],[102.481846,32.081198],[102.481874,32.081151],[102.481962,32.081005],[102.482078,32.080811],[102.4822,32.080558],[102.482322,32.080306],[102.482326,32.080293],[102.482375,32.080123],[102.482494,32.079708],[102.482614,32.079294],[102.482706,32.079071],[102.482798,32.078848],[102.482887,32.078598],[102.482852,32.078491],[102.482673,32.078322],[102.482495,32.078152],[102.482435,32.077974],[102.482423,32.077831],[102.482402,32.077813],[102.482334,32.07776],[102.482186,32.0777],[102.48209,32.077545],[102.482078,32.077266],[102.482144,32.07698],[102.482293,32.076719],[102.482385,32.076501],[102.482477,32.076284],[102.482534,32.076061],[102.48259,32.075838],[102.482653,32.075505],[102.482717,32.075172],[102.48278,32.074839],[102.482864,32.074482],[102.482965,32.074381],[102.482995,32.07438],[102.483185,32.074375],[102.48334,32.074375],[102.483589,32.074321],[102.483893,32.074259],[102.484196,32.074196],[102.484473,32.074134],[102.484749,32.074071],[102.485008,32.074083],[102.485267,32.074095],[102.485618,32.074149],[102.485903,32.074149],[102.486141,32.074122],[102.486379,32.074095],[102.486748,32.074006],[102.486992,32.074006],[102.487236,32.074006],[102.487253,32.074005],[102.487462,32.073988],[102.487587,32.073905],[102.487759,32.073804],[102.488063,32.07375],[102.488206,32.073679],[102.488366,32.073542],[102.488527,32.073441],[102.48886,32.07334],[102.48892,32.07332],[102.489163,32.073239],[102.489247,32.073209],[102.489258,32.07309],[102.489223,32.0729],[102.489092,32.072566],[102.488967,32.072364],[102.488759,32.072227],[102.488551,32.072091],[102.488313,32.071948],[102.488152,32.071805],[102.487938,32.071466],[102.48777,32.071215],[102.487602,32.070964],[102.487444,32.070728],[102.487349,32.070496],[102.487284,32.070223],[102.487278,32.069901],[102.487236,32.06964],[102.4872,32.069483],[102.487176,32.069378],[102.487218,32.069125],[102.48726,32.068872],[102.487397,32.068539],[102.487391,32.06839],[102.487343,32.068331],[102.487176,32.068254],[102.487016,32.068075],[102.486861,32.06779],[102.486706,32.067564],[102.486588,32.067355],[102.486528,32.06704],[102.486514,32.066731],[102.4865,32.066421],[102.486486,32.066112],[102.486466,32.065877],[102.486445,32.065642],[102.486428,32.065553],[102.486391,32.065357],[102.48634,32.065302],[102.486147,32.065095],[102.486108,32.065035],[102.485952,32.064794],[102.485796,32.064554],[102.485668,32.064325],[102.485541,32.064096],[102.485416,32.063786],[102.485332,32.063423],[102.485286,32.063325],[102.485231,32.063209],[102.485255,32.062953],[102.485368,32.062775],[102.485606,32.062555],[102.48571,32.062353],[102.485814,32.06215],[102.48584,32.062081],[102.485963,32.061752],[102.486096,32.061472],[102.486229,32.061193],[102.486361,32.060913],[102.486546,32.060702],[102.48673,32.060491],[102.486828,32.06028],[102.486927,32.060068],[102.487006,32.059775],[102.487085,32.059481],[102.487165,32.059188],[102.48722,32.058883],[102.487276,32.058577],[102.487331,32.058272],[102.487329,32.058243],[102.487301,32.057897],[102.48748,32.057582],[102.487692,32.057354],[102.487724,32.05732],[102.487843,32.056969],[102.487843,32.056808],[102.487799,32.056725],[102.487789,32.056707],[102.487694,32.056606],[102.487587,32.056523],[102.487456,32.056422],[102.487414,32.056124],[102.487527,32.055714],[102.487611,32.055303],[102.487543,32.05496],[102.487476,32.054617],[102.487408,32.054274],[102.487285,32.053935],[102.487266,32.053882],[102.487123,32.053507],[102.487004,32.053293],[102.486712,32.053001],[102.486546,32.052757],[102.486414,32.052368],[102.486281,32.05198],[102.486254,32.051901],[102.486131,32.05156],[102.486058,32.05136],[102.485933,32.051116],[102.48579,32.051014],[102.485592,32.050953],[102.485523,32.050931],[102.485112,32.050901],[102.484714,32.050842],[102.484428,32.050782],[102.484083,32.050658],[102.483821,32.050497],[102.483598,32.050274],[102.483375,32.050051],[102.483232,32.049777],[102.483195,32.049647],[102.483143,32.049468],[102.483066,32.04923],[102.482917,32.049123],[102.482483,32.049016],[102.482132,32.048921],[102.481727,32.048808],[102.481341,32.048766],[102.481088,32.048775],[102.480835,32.048784],[102.480556,32.048927],[102.480276,32.049069],[102.479901,32.049218],[102.479526,32.049367],[102.479114,32.049439],[102.478702,32.049511],[102.47861,32.049527],[102.478313,32.049581],[102.478016,32.049634],[102.477718,32.049688],[102.477337,32.049819],[102.476957,32.04995],[102.476788,32.050007],[102.476399,32.050139],[102.476011,32.050271],[102.475776,32.050292],[102.475541,32.050313],[102.475309,32.050271],[102.475184,32.050081],[102.475092,32.04981],[102.475,32.049539],[102.474863,32.049272],[102.474512,32.049031],[102.474161,32.04879],[102.473843,32.048587],[102.473524,32.048385],[102.47326,32.048347],[102.472995,32.048308],[102.472791,32.048354],[102.472578,32.048403],[102.472305,32.048427],[102.472108,32.04832],[102.471954,32.048135],[102.47165,32.048082],[102.471362,32.048028],[102.471073,32.047975],[102.470713,32.047877],[102.470352,32.04778],[102.470351,32.047779],[102.470348,32.047778],[102.470003,32.047731],[102.469741,32.047776],[102.469729,32.047778],[102.469336,32.047874],[102.469051,32.047862],[102.468876,32.04777],[102.468813,32.047737],[102.468521,32.047653],[102.468284,32.047662],[102.468046,32.047671],[102.46763,32.047689],[102.467423,32.047697],[102.467215,32.047706],[102.467046,32.047713],[102.466624,32.047814],[102.466201,32.047915],[102.465955,32.047966],[102.465708,32.048016],[102.465309,32.04801],[102.465095,32.047933],[102.465006,32.047683],[102.46492,32.047433],[102.464833,32.047184],[102.464732,32.046934],[102.464716,32.046821],[102.464696,32.046684],[102.464685,32.046297],[102.464631,32.04603],[102.464512,32.04575],[102.464429,32.045518],[102.464203,32.045357],[102.464084,32.045316],[102.463929,32.045203],[102.463893,32.04509],[102.463905,32.044822],[102.463923,32.044542],[102.463998,32.044218],[102.464072,32.043894],[102.464213,32.04361],[102.464354,32.043325],[102.464548,32.042936],[102.464619,32.04274],[102.464613,32.042555],[102.464566,32.042139],[102.464566,32.041895],[102.464662,32.041631],[102.464759,32.041367],[102.46481,32.041229],[102.464829,32.041092],[102.464866,32.040836],[102.464923,32.040444],[102.464923,32.040164],[102.464869,32.040015],[102.464661,32.039789],[102.464542,32.039581],[102.464471,32.039378],[102.464346,32.039016],[102.464232,32.038784],[102.464119,32.038552],[102.46392,32.038287],[102.463721,32.038023],[102.463435,32.037823],[102.46315,32.037624],[102.462918,32.037517],[102.462698,32.037481],[102.462293,32.03744],[102.462004,32.037359],[102.461714,32.037278],[102.461424,32.037197],[102.461335,32.037172],[102.461252,32.037101],[102.461205,32.036988],[102.461205,32.036756],[102.461222,32.036345],[102.46127,32.035911],[102.461336,32.035666],[102.461401,32.03542],[102.461461,32.035199],[102.46152,32.034977],[102.461588,32.034751],[102.461657,32.034525],[102.461829,32.03415],[102.461972,32.033817],[102.462049,32.033606],[102.462127,32.033395],[102.462174,32.033067],[102.462189,32.032728],[102.462204,32.032389],[102.46224,32.03213],[102.462275,32.031872],[102.462301,32.031707],[102.462341,32.031443],[102.462335,32.031057],[102.462263,32.030747],[102.462148,32.03036],[102.462145,32.030349],[102.462133,32.030269],[102.462109,32.030099],[102.462109,32.029754],[102.462159,32.029507],[102.46221,32.02926],[102.46229,32.028847],[102.462371,32.028433],[102.462375,32.028422],[102.46248,32.028163],[102.462585,32.027904],[102.462668,32.027636],[102.462751,32.027369],[102.462888,32.026958],[102.462906,32.026595],[102.462823,32.026185],[102.462722,32.025956],[102.46262,32.025727],[102.462583,32.025671],[102.462382,32.025376],[102.462281,32.025174],[102.462216,32.02484],[102.462134,32.024578],[102.462133,32.024573],[102.46199,32.024287],[102.46193,32.024085],[102.461883,32.023651],[102.461895,32.023288],[102.461907,32.022925],[102.461918,32.022562],[102.461901,32.022125],[102.461883,32.021688],[102.461901,32.021509],[102.462002,32.021206],[102.462186,32.020929],[102.462371,32.020653],[102.46254,32.020373],[102.46271,32.020093],[102.462775,32.019817],[102.46284,32.01954],[102.46284,32.019261],[102.46284,32.01907],[102.462811,32.01888],[102.462789,32.018757],[102.462757,32.018582],[102.462762,32.018448],[102.462769,32.018249],[102.462835,32.018017],[102.463061,32.017654],[102.463376,32.017351],[102.463554,32.01719],[102.463673,32.016982],[102.463792,32.016774],[102.463956,32.016373],[102.464119,32.015971],[102.46425,32.015549],[102.464346,32.015186],[102.464476,32.014912],[102.464661,32.014731],[102.464845,32.014549],[102.465056,32.014412],[102.465268,32.014276],[102.46556,32.014089],[102.465595,32.014067],[102.465865,32.013874],[102.466136,32.013681],[102.466359,32.013511],[102.466582,32.013342],[102.466787,32.013111],[102.466992,32.01288],[102.467046,32.012818],[102.467281,32.012628],[102.467516,32.012437],[102.467825,32.012295],[102.468075,32.012223],[102.468361,32.012188],[102.468593,32.012176],[102.468872,32.01217],[102.469086,32.012159],[102.469223,32.012152],[102.469551,32.012146],[102.469786,32.01214],[102.470021,32.012134],[102.470383,32.01211],[102.470675,32.012051],[102.470731,32.012023],[102.470894,32.012023],[102.47116,32.012023],[102.471425,32.012023],[102.471691,32.012023],[102.471957,32.012023],[102.472216,32.012044],[102.472475,32.012065],[102.472828,32.012093],[102.4729,32.012194],[102.473191,32.012408],[102.473495,32.01255],[102.473721,32.012616],[102.473911,32.012652],[102.474114,32.012679],[102.474345,32.012711],[102.474601,32.012705],[102.474857,32.012699],[102.475267,32.012738],[102.475678,32.012777],[102.475957,32.01283],[102.476267,32.012913],[102.476484,32.013023],[102.476701,32.013133],[102.477022,32.013336],[102.477343,32.013538],[102.477599,32.013693],[102.477813,32.013728],[102.478027,32.013728],[102.478146,32.013707],[102.47842,32.013657],[102.478652,32.013669],[102.478884,32.013681],[102.479315,32.013731],[102.479747,32.013782],[102.47991,32.013826],[102.480121,32.013883],[102.480389,32.013978],[102.480508,32.014067],[102.480835,32.014311],[102.481017,32.014484],[102.481198,32.014656],[102.481356,32.015031],[102.481513,32.015406],[102.481594,32.01562],[102.481674,32.015834],[102.481799,32.015947],[102.4819,32.015977],[102.482129,32.015992],[102.482358,32.016007],[102.482679,32.016102],[102.482923,32.016292],[102.483081,32.016497],[102.483238,32.016703],[102.483417,32.016887],[102.483631,32.016994],[102.483728,32.017044],[102.484107,32.017238],[102.484367,32.017418],[102.484626,32.017599],[102.484886,32.017779],[102.485005,32.017886],[102.485048,32.018017],[102.485094,32.01816],[102.48512,32.018351],[102.48513,32.018428],[102.485172,32.018612],[102.485332,32.01882],[102.485535,32.018969],[102.485701,32.019124],[102.48588,32.019272],[102.486106,32.019493],[102.486201,32.019733],[102.486296,32.019974],[102.486397,32.020212],[102.486516,32.020278],[102.48673,32.020272],[102.487031,32.020201],[102.487057,32.020195],[102.487474,32.020064],[102.487721,32.020001],[102.487968,32.019939],[102.488125,32.01991],[102.488265,32.019885],[102.488568,32.019873],[102.488997,32.019861],[102.48933,32.019784],[102.489606,32.019725],[102.489883,32.019665],[102.490157,32.019677],[102.490466,32.019713],[102.490769,32.01979],[102.49096,32.019963],[102.491156,32.020189],[102.491329,32.020313],[102.491518,32.020342],[102.491601,32.020309],[102.491864,32.020172],[102.492024,32.02009],[102.492298,32.01983],[102.492572,32.01957],[102.49278,32.019374],[102.492887,32.019207],[102.492935,32.01888],[102.492982,32.018612],[102.493101,32.01844],[102.493279,32.018228],[102.493457,32.018017],[102.493714,32.017798],[102.493952,32.017646],[102.494076,32.017403],[102.494116,32.017132],[102.494157,32.016861],[102.494177,32.016754],[102.494237,32.016439],[102.494297,32.016124],[102.494356,32.015809],[102.494395,32.015495],[102.494433,32.015181],[102.494514,32.014781],[102.494656,32.014546],[102.49468,32.014505],[102.494851,32.01421],[102.494951,32.013994],[102.495051,32.013777],[102.495106,32.013511],[102.495161,32.013244],[102.495227,32.013144],[102.495342,32.013073],[102.495508,32.013054],[102.495756,32.01303],[102.496151,32.013035],[102.49648,32.013058],[102.49681,32.013082],[102.49714,32.013105],[102.49715,32.013106],[102.49755,32.013144],[102.497802,32.013144],[102.498054,32.013144],[102.498368,32.01312],[102.498604,32.013063],[102.498839,32.013006],[102.499015,32.012973],[102.499187,32.012901],[102.499253,32.012873],[102.499501,32.012768],[102.499715,32.012659],[102.499972,32.012535],[102.50017,32.012468],[102.500252,32.012417],[102.500282,32.012416],[102.500405,32.012412],[102.50071,32.012401],[102.500916,32.012393],[102.501128,32.012416],[102.501304,32.012449],[102.501604,32.012459],[102.501833,32.012459],[102.50218,32.012445],[102.502399,32.012445],[102.502811,32.012411],[102.502923,32.012402],[102.502965,32.012397],[102.50321,32.012368],[102.503456,32.01234],[102.503853,32.012371],[102.50425,32.012402],[102.504488,32.012452],[102.504726,32.012502],[102.505031,32.012583],[102.505353,32.012752],[102.505383,32.012768],[102.505599,32.012866],[102.505816,32.012963],[102.50604,32.013049],[102.506411,32.013168],[102.506539,32.013168],[102.506701,32.013163],[102.506982,32.013173],[102.507139,32.013201],[102.507286,32.01322],[102.507439,32.013206],[102.507639,32.013182],[102.507877,32.013135],[102.508057,32.013063],[102.508262,32.012987],[102.508476,32.012954],[102.508733,32.012835],[102.508897,32.012652],[102.509062,32.012468],[102.509204,32.012188],[102.509209,32.012182],[102.509317,32.012058],[102.509364,32.012004],[102.509518,32.011826],[102.509699,32.011636],[102.509999,32.011469],[102.510242,32.011345],[102.510656,32.011226],[102.510965,32.011169],[102.511023,32.011159],[102.511246,32.011122],[102.511484,32.01106],[102.511727,32.01096],[102.511879,32.010798],[102.512045,32.01056],[102.512212,32.010322],[102.512421,32.009932],[102.512476,32.009607],[102.512548,32.009182],[102.512574,32.009032],[102.512672,32.008607],[102.51277,32.008182],[102.512869,32.007757],[102.512954,32.007459],[102.51304,32.00716],[102.513073,32.007043],[102.513133,32.006887],[102.513273,32.00652],[102.513392,32.006334],[102.513559,32.00613],[102.513825,32.005887],[102.514032,32.005765],[102.514239,32.005644],[102.514522,32.005542],[102.514806,32.005439],[102.515116,32.005365],[102.515427,32.00529],[102.515738,32.005216],[102.516143,32.005087],[102.516305,32.004992],[102.516419,32.00483],[102.516471,32.004669],[102.516562,32.004388],[102.51669,32.004126],[102.516776,32.003998],[102.516966,32.003874],[102.517214,32.003783],[102.517461,32.003693],[102.517725,32.003614],[102.517989,32.003536],[102.518372,32.003419],[102.518475,32.003388],[102.518755,32.003346],[102.518823,32.003337],[102.518984,32.003317],[102.519217,32.003288],[102.519531,32.003246],[102.519798,32.003165],[102.520107,32.003027],[102.520416,32.002889],[102.520591,32.002823],[102.520695,32.002825],[102.520852,32.002876],[102.521159,32.003103],[102.52152,32.003322],[102.521735,32.00355],[102.521949,32.003779],[102.522156,32.0041],[102.522363,32.004421],[102.52251,32.004531],[102.522682,32.004573],[102.522829,32.00455],[102.523072,32.004404],[102.523314,32.004259],[102.52369,32.004102],[102.523857,32.004026],[102.524123,32.003905],[102.52439,32.003783],[102.524623,32.003726],[102.524842,32.003726],[102.525042,32.00375],[102.525184,32.00375],[102.525204,32.00375],[102.525446,32.003702],[102.525632,32.003688],[102.525827,32.00365],[102.525999,32.003526],[102.526169,32.003336],[102.526203,32.003298],[102.526355,32.00307],[102.526562,32.002979],[102.526769,32.002889],[102.527105,32.002774],[102.52744,32.00266],[102.527702,32.002525],[102.527964,32.002389],[102.528259,32.002318],[102.528568,32.002327],[102.528835,32.002408],[102.528876,32.002424],[102.529025,32.002479],[102.529173,32.002465],[102.529252,32.002448],[102.52933,32.002432],[102.529744,32.00227],[102.53009,32.0022],[102.530435,32.00213],[102.530781,32.002061],[102.530981,32.00197],[102.531072,32.00191],[102.531134,32.001892],[102.531316,32.001732],[102.531497,32.001572],[102.531648,32.001341],[102.531798,32.001111],[102.531902,32.000852],[102.532006,32.000594],[102.532048,32.000199],[102.532066,32.000145],[102.532078,32.000111],[102.532206,31.999738],[102.5323,31.999466],[102.532468,31.999275],[102.532542,31.999191],[102.53269,31.998958],[102.532837,31.998725],[102.532924,31.998522],[102.533081,31.998203],[102.533237,31.997884],[102.533301,31.997792],[102.533508,31.997496],[102.533703,31.997131],[102.533898,31.996767],[102.533927,31.996712],[102.534115,31.996445],[102.534303,31.996179],[102.534561,31.995885],[102.53482,31.995592],[102.535079,31.995298],[102.535233,31.995103],[102.535388,31.994908],[102.535631,31.994727],[102.535907,31.994556],[102.53613,31.994423],[102.53624,31.994242],[102.536368,31.99408],[102.536613,31.993928],[102.536858,31.993775],[102.537089,31.99364],[102.53732,31.993504],[102.537482,31.993385],[102.537591,31.993242],[102.537739,31.992966],[102.537905,31.992778],[102.538072,31.99259],[102.538286,31.992352],[102.538538,31.992224],[102.538881,31.992134],[102.539205,31.992086],[102.539492,31.992119],[102.53958,31.992129],[102.539757,31.992076],[102.54,31.991885],[102.540236,31.991772],[102.540488,31.991652],[102.54079,31.991358],[102.540822,31.991286],[102.540972,31.991086],[102.541122,31.990887],[102.541259,31.990675],[102.541346,31.990539],[102.541422,31.990289],[102.541498,31.99004],[102.541475,31.989816],[102.541379,31.989488],[102.541275,31.989169],[102.54127,31.98901],[102.541265,31.988817],[102.541265,31.988436],[102.541229,31.9882],[102.541203,31.988036],[102.541084,31.987698],[102.541075,31.987384],[102.541102,31.987018],[102.541113,31.98687],[102.54116,31.986487],[102.541208,31.986104],[102.541346,31.985766],[102.541407,31.985669],[102.541603,31.985356],[102.541798,31.985043],[102.542027,31.984757],[102.542317,31.9845],[102.542612,31.984291],[102.542671,31.984264],[102.54305,31.984091],[102.54334,31.983905],[102.543445,31.983767],[102.543554,31.983496],[102.543641,31.983306],[102.543697,31.983182],[102.543949,31.982887],[102.544172,31.982561],[102.544396,31.982236],[102.544416,31.982206],[102.544525,31.981949],[102.544544,31.981745],[102.544525,31.981671],[102.544416,31.981255],[102.544392,31.981002],[102.544368,31.98075],[102.544344,31.980455],[102.544388,31.980269],[102.544463,31.979951],[102.544554,31.979646],[102.544638,31.979539],[102.544696,31.979465],[102.544925,31.979303],[102.545106,31.978999],[102.545286,31.978694],[102.545467,31.97839],[102.545645,31.978088],[102.545823,31.977787],[102.546,31.977486],[102.546272,31.977157],[102.546483,31.976998],[102.546695,31.976838],[102.546969,31.976608],[102.547242,31.976377],[102.547388,31.976174],[102.547533,31.975972],[102.547656,31.975696],[102.547837,31.975506],[102.54791,31.975445],[102.548004,31.975368],[102.548133,31.975294],[102.548204,31.975254],[102.548537,31.975063],[102.548727,31.97493],[102.548778,31.974838],[102.548924,31.974577],[102.54907,31.974316],[102.549148,31.9741],[102.549227,31.973883],[102.549255,31.973583],[102.54926,31.973379],[102.549312,31.973079],[102.549293,31.972879],[102.549232,31.972746],[102.549241,31.972679],[102.549251,31.97261],[102.54926,31.972551],[102.549379,31.972289],[102.549591,31.972058],[102.549803,31.971827],[102.549824,31.97181],[102.550058,31.97162],[102.550292,31.971431],[102.550526,31.971242],[102.550712,31.97108],[102.550921,31.971013],[102.551161,31.970992],[102.551402,31.970971],[102.551728,31.970928],[102.552054,31.970886],[102.552274,31.970902],[102.552522,31.970957],[102.55277,31.971012],[102.552974,31.971042],[102.553349,31.971067],[102.553473,31.971075],[102.553708,31.97108],[102.553906,31.971042],[102.553944,31.971034],[102.554239,31.97099],[102.55448,31.97077],[102.554647,31.97056],[102.554814,31.97035],[102.554865,31.970094],[102.554916,31.969839],[102.554967,31.969584],[102.555018,31.969329],[102.555087,31.96893],[102.555157,31.968532],[102.555177,31.968414],[102.555152,31.968396],[102.555152,31.968272],[102.55519,31.968063],[102.555342,31.967682],[102.55549,31.96748],[102.55568,31.967221],[102.555801,31.96698],[102.55585,31.966884],[102.555923,31.96674],[102.556094,31.966378],[102.556265,31.966017],[102.556465,31.965679],[102.556665,31.965341],[102.556941,31.965044],[102.557217,31.964748],[102.557493,31.964451],[102.557636,31.964156],[102.557677,31.96402],[102.557717,31.963889],[102.557707,31.963761],[102.557674,31.963666],[102.557674,31.963504],[102.557726,31.963318],[102.557883,31.963204],[102.557976,31.963092],[102.557977,31.963091],[102.557978,31.96309],[102.558088,31.962811],[102.558197,31.962533],[102.558388,31.962167],[102.558526,31.962024],[102.558707,31.961957],[102.558849,31.961924],[102.559173,31.961795],[102.559492,31.961505],[102.559677,31.961391],[102.559834,31.961315],[102.559944,31.961243],[102.560006,31.961058],[102.56022,31.960668],[102.560467,31.96048],[102.560715,31.960292],[102.560973,31.960092],[102.561232,31.959892],[102.561491,31.959692],[102.561769,31.959487],[102.562047,31.959283],[102.562404,31.959149],[102.562695,31.959059],[102.562789,31.959033],[102.56319,31.958921],[102.563494,31.958821],[102.563799,31.958721],[102.564127,31.958588],[102.564351,31.958478],[102.564631,31.958355],[102.564974,31.95824],[102.565191,31.958089],[102.565413,31.957934],[102.565636,31.957779],[102.56584,31.957565],[102.566045,31.957351],[102.566207,31.957279],[102.566478,31.957236],[102.566811,31.957184],[102.567054,31.957113],[102.56733,31.956908],[102.567615,31.95657],[102.567644,31.956513],[102.567801,31.956206],[102.567986,31.955842],[102.568245,31.955499],[102.568504,31.955157],[102.568762,31.954814],[102.568843,31.954586],[102.568924,31.954357],[102.569005,31.954067],[102.569042,31.953958],[102.569043,31.953956],[102.569044,31.953954],[102.569133,31.953691],[102.5694,31.953477],[102.569666,31.953263],[102.570004,31.952977],[102.570095,31.952806],[102.570102,31.952758],[102.570147,31.952482],[102.570143,31.952378],[102.570142,31.952328],[102.570138,31.952211],[102.570118,31.951949],[102.570044,31.951767],[102.569985,31.951626],[102.569961,31.951473],[102.56998,31.951078],[102.569957,31.950907],[102.569933,31.950764],[102.569831,31.950438],[102.569728,31.950112],[102.569676,31.94995],[102.569671,31.949822],[102.569764,31.949426],[102.569771,31.949398],[102.569807,31.949207],[102.569877,31.948836],[102.569947,31.948466],[102.569949,31.948447],[102.569984,31.948152],[102.570019,31.947857],[102.569966,31.947614],[102.569857,31.947364],[102.569747,31.947114],[102.569552,31.946767],[102.569357,31.946419],[102.569176,31.94601],[102.568951,31.945814],[102.568881,31.945753],[102.568641,31.945429],[102.568401,31.945106],[102.568348,31.945015],[102.568353,31.944873],[102.56844,31.94469],[102.568448,31.944673],[102.568619,31.944461],[102.568853,31.944116],[102.568967,31.943921],[102.569019,31.94374],[102.569019,31.943521],[102.569014,31.943326],[102.569008,31.943255],[102.569,31.943169],[102.568953,31.942988],[102.568748,31.94265],[102.56861,31.942469],[102.568472,31.942289],[102.568433,31.942222],[102.568324,31.942036],[102.568248,31.941894],[102.568239,31.941722],[102.568327,31.941491],[102.568415,31.941261],[102.568581,31.941061],[102.568748,31.940861],[102.568881,31.940661],[102.569088,31.940547],[102.569295,31.940433],[102.569533,31.940349],[102.569771,31.940266],[102.570045,31.940111],[102.570318,31.939957],[102.570635,31.939835],[102.570951,31.939714],[102.571364,31.939575],[102.571475,31.939538],[102.57151,31.939521],[102.57166,31.939448],[102.571822,31.939338],[102.572122,31.939219],[102.572408,31.939024],[102.572669,31.938743],[102.572812,31.9386],[102.572991,31.938434],[102.573169,31.938267],[102.573469,31.938063],[102.573564,31.937863],[102.573616,31.93772],[102.573792,31.937539],[102.573968,31.937358],[102.574264,31.937039],[102.574471,31.936923],[102.574678,31.936806],[102.574835,31.936697],[102.575101,31.936378],[102.575258,31.936097],[102.575415,31.935816],[102.575517,31.935571],[102.57562,31.935326],[102.575824,31.935117],[102.576029,31.934907],[102.576086,31.934855],[102.576224,31.934855],[102.576383,31.934901],[102.576438,31.934917],[102.576741,31.935012],[102.577043,31.935107],[102.5774,31.935184],[102.577718,31.935248],[102.578037,31.935312],[102.578375,31.935382],[102.578404,31.935388],[102.578749,31.935541],[102.578832,31.935578],[102.579155,31.935756],[102.579477,31.935934],[102.57987,31.93615],[102.580117,31.936307],[102.580226,31.936326],[102.580273,31.936332],[102.580522,31.936364],[102.580916,31.936554],[102.581083,31.936678],[102.581335,31.936854],[102.581464,31.936921],[102.581539,31.936965],[102.581616,31.937011],[102.581726,31.93712],[102.581992,31.937468],[102.58226,31.937698],[102.582464,31.937873],[102.582668,31.938048],[102.582801,31.938144],[102.582872,31.938191],[102.583006,31.938224],[102.583313,31.938255],[102.58362,31.938286],[102.58386,31.938292],[102.584257,31.938301],[102.584424,31.938305],[102.584866,31.938329],[102.5852,31.938415],[102.585418,31.938522],[102.58549,31.938558],[102.585723,31.93871],[102.585885,31.938891],[102.585978,31.939098],[102.58607,31.939305],[102.586156,31.939462],[102.586204,31.939557],[102.586461,31.939823],[102.58668,31.940066],[102.586898,31.940309],[102.587015,31.94042],[102.587094,31.940494],[102.587289,31.94068],[102.587357,31.940712],[102.587736,31.940889],[102.587836,31.941008],[102.587964,31.941323],[102.587991,31.941376],[102.588074,31.941537],[102.588088,31.941565],[102.588245,31.941922],[102.588383,31.942217],[102.588583,31.942389],[102.58875,31.94246],[102.588767,31.942472],[102.588814,31.942505],[102.588956,31.942604],[102.589145,31.942736],[102.58925,31.942782],[102.589354,31.942826],[102.589506,31.942941],[102.589835,31.943212],[102.5899,31.943249],[102.590268,31.943459],[102.590415,31.943688],[102.590658,31.943983],[102.590798,31.944187],[102.590939,31.944392],[102.591172,31.944613],[102.591405,31.944835],[102.59152,31.945066],[102.59173,31.945392],[102.591912,31.945564],[102.592095,31.945737],[102.592278,31.945909],[102.59246,31.946081],[102.592643,31.946253],[102.592826,31.946426],[102.592914,31.946509],[102.592914,31.946509],[102.593008,31.946598],[102.593191,31.94677],[102.593374,31.946942],[102.593556,31.947114],[102.593726,31.947282],[102.593895,31.94745],[102.594064,31.947618],[102.594234,31.947786],[102.594403,31.947954],[102.594572,31.948122],[102.594742,31.94829],[102.594911,31.948458],[102.59508,31.948626],[102.59525,31.948794],[102.595419,31.948962],[102.595589,31.94913],[102.595781,31.949312],[102.595973,31.949494],[102.596165,31.949676],[102.596357,31.949858],[102.596549,31.95004],[102.596741,31.950222],[102.596933,31.950404],[102.597125,31.950586],[102.597317,31.950768],[102.597509,31.95095],[102.597701,31.951132],[102.597874,31.951296],[102.597893,31.951314],[102.598091,31.95148],[102.598289,31.951646],[102.598487,31.951812],[102.598686,31.951979],[102.598884,31.952145],[102.599082,31.952311],[102.59928,31.952478],[102.599479,31.952644],[102.599677,31.95281],[102.599875,31.952976],[102.600183,31.953191],[102.600491,31.953405],[102.600798,31.953619],[102.601058,31.953732],[102.601161,31.953776],[102.601524,31.953933],[102.601933,31.954028],[102.602342,31.954123],[102.602737,31.954194],[102.603132,31.954264],[102.603468,31.954308],[102.603804,31.954352],[102.604233,31.954427],[102.604662,31.954502],[102.605091,31.954577],[102.605513,31.954727],[102.605935,31.954876],[102.606357,31.955026],[102.606463,31.955064],[102.606779,31.955176],[102.607201,31.955326],[102.607476,31.955369],[102.60775,31.955411],[102.608024,31.955454],[102.608298,31.955497],[102.608572,31.955539],[102.608846,31.955582],[102.60912,31.955624],[102.609394,31.955667],[102.609661,31.955682],[102.609928,31.955697],[102.610195,31.955712],[102.610462,31.955727],[102.610729,31.955742],[102.610996,31.955757],[102.611263,31.955772],[102.61153,31.955787],[102.611797,31.955802],[102.612064,31.955818],[102.612308,31.955817],[102.612551,31.955817],[102.612795,31.955816],[102.613039,31.955816],[102.613283,31.955815],[102.613526,31.955815],[102.61377,31.955814],[102.614014,31.955814],[102.614257,31.955813],[102.614501,31.955813],[102.614874,31.955828],[102.614921,31.95583],[102.615342,31.955846],[102.615762,31.955863],[102.61599,31.955864],[102.616217,31.955865],[102.616445,31.955866],[102.616672,31.955867],[102.6169,31.955868],[102.617128,31.955869],[102.617355,31.95587],[102.617518,31.955871],[102.617583,31.955871],[102.617812,31.955863],[102.618041,31.955855],[102.618271,31.955847],[102.6185,31.955839],[102.618729,31.955831],[102.618959,31.955823],[102.619354,31.955855],[102.61975,31.955888],[102.619976,31.955923],[102.620203,31.955958],[102.620429,31.955994],[102.620655,31.956029],[102.62105,31.9561],[102.621446,31.95617],[102.621815,31.956252],[102.622185,31.956334],[102.622397,31.956381],[102.622555,31.956416],[102.622963,31.956523],[102.623372,31.956631],[102.623733,31.956838],[102.624094,31.957045],[102.624281,31.957199],[102.624468,31.957352],[102.624655,31.957506],[102.624738,31.957574],[102.624843,31.957659],[102.625026,31.95779],[102.625209,31.957921],[102.625393,31.958051],[102.625576,31.958182],[102.625759,31.958313],[102.625943,31.958443],[102.626166,31.958603],[102.626285,31.958687],[102.626516,31.958817],[102.626748,31.958946],[102.626979,31.959075],[102.627211,31.959205],[102.627442,31.959334],[102.627674,31.959463],[102.62792,31.959587],[102.628054,31.959654],[102.628055,31.959654],[102.628167,31.95971],[102.628413,31.959834],[102.62866,31.959957],[102.628973,31.960066],[102.629038,31.960089],[102.629416,31.960221],[102.629826,31.960287],[102.630236,31.960353],[102.630645,31.960419],[102.630878,31.96045],[102.63111,31.960482],[102.631343,31.960514],[102.631575,31.960546],[102.631807,31.960577],[102.63204,31.960609],[102.632272,31.960641],[102.632505,31.960672],[102.632737,31.960704],[102.632969,31.960736],[102.633202,31.960767],[102.633356,31.960788],[102.633434,31.960799],[102.633694,31.960836],[102.633954,31.960873],[102.634214,31.960911],[102.634473,31.960948],[102.634733,31.960985],[102.634993,31.961022],[102.635309,31.961028],[102.635624,31.961034],[102.635773,31.961016],[102.635879,31.961002],[102.636133,31.96097],[102.636366,31.960921],[102.636508,31.960891],[102.636516,31.960889],[102.636549,31.960882],[102.6366,31.960872],[102.636644,31.960851],[102.636898,31.960734],[102.637132,31.960543],[102.637199,31.960489],[102.637373,31.960276],[102.637485,31.960096],[102.637508,31.960059],[102.637563,31.959971],[102.637653,31.959827],[102.637712,31.959732],[102.637753,31.959666],[102.637783,31.959617],[102.637814,31.959566],[102.637971,31.959373],[102.638072,31.95925],[102.638213,31.959079],[102.638293,31.958981],[102.63831,31.958961],[102.638331,31.958935],[102.638404,31.958845],[102.638579,31.958632],[102.63859,31.958619],[102.638606,31.958606],[102.638635,31.958582],[102.638805,31.958443],[102.639015,31.958272],[102.639226,31.9581],[102.639436,31.957928],[102.639647,31.957757],[102.63991,31.957601],[102.63995,31.957577],[102.64,31.957548],[102.640029,31.957531],[102.640172,31.957446],[102.640462,31.95713],[102.640659,31.956794],[102.640856,31.956457],[102.641015,31.956239],[102.641173,31.956022],[102.641189,31.955999],[102.641331,31.955805],[102.641489,31.955588],[102.641815,31.955348],[102.64214,31.955108],[102.642466,31.954868],[102.642623,31.9547],[102.642624,31.954699],[102.642626,31.954697],[102.64278,31.954533],[102.642937,31.954366],[102.643094,31.954199],[102.643323,31.953816],[102.643552,31.953433],[102.643782,31.95305],[102.643863,31.952803],[102.643945,31.952556],[102.644026,31.952309],[102.644108,31.952062],[102.64419,31.951815],[102.644271,31.951568],[102.64434,31.95136],[102.644353,31.951321],[102.644366,31.951281],[102.644435,31.951074],[102.644516,31.950827],[102.644574,31.950651],[102.644596,31.950585],[102.644597,31.950583],[102.644598,31.95058],[102.644656,31.950141],[102.644657,31.950109],[102.644657,31.950085],[102.644659,31.950031],[102.644662,31.949901],[102.644384,31.949696],[102.644109,31.94941],[102.643834,31.949125],[102.64356,31.948839],[102.643355,31.948574],[102.643151,31.94831],[102.643086,31.948078],[102.643021,31.947847],[102.642956,31.947615],[102.642892,31.947383],[102.64284,31.946942],[102.642789,31.9465],[102.642737,31.946058],[102.642709,31.945731],[102.642701,31.945644],[102.642689,31.945509],[102.642674,31.945334],[102.642665,31.945229],[102.642662,31.945195],[102.642662,31.945195],[102.642628,31.944814],[102.642671,31.944564],[102.642715,31.944314],[102.642758,31.944064],[102.642801,31.943813],[102.642844,31.943563],[102.642888,31.943313],[102.642928,31.943077],[102.642931,31.943062],[102.642974,31.942812],[102.643017,31.942562],[102.64306,31.942312],[102.643067,31.942178],[102.643077,31.941998],[102.643077,31.941989],[102.643083,31.941871],[102.643084,31.941869],[102.643084,31.941867],[102.643091,31.941725],[102.643107,31.941431],[102.643107,31.941431],[102.643107,31.941431],[102.643113,31.941304],[102.64313,31.940991],[102.643152,31.940562],[102.643153,31.940551],[102.643198,31.9404],[102.643203,31.940384],[102.643255,31.940212],[102.643282,31.940122],[102.643303,31.940055],[102.643307,31.94004],[102.643352,31.939892],[102.643357,31.939873],[102.643503,31.939696],[102.643649,31.939518],[102.643794,31.93934],[102.64394,31.939163],[102.644085,31.938985],[102.644231,31.938808],[102.644489,31.938505],[102.644748,31.938203],[102.645006,31.937901],[102.645269,31.937766],[102.645532,31.93763],[102.645633,31.937616],[102.645791,31.937595],[102.646051,31.937559],[102.646297,31.937579],[102.64639,31.937586],[102.646422,31.937589],[102.646502,31.937595],[102.646502,31.937595],[102.646502,31.937595],[102.646544,31.937598],[102.64679,31.937618],[102.647035,31.937637],[102.647035,31.937638],[102.647036,31.937638],[102.647202,31.937651],[102.647283,31.937657],[102.6473,31.937659],[102.647529,31.937677],[102.647761,31.937695],[102.647776,31.937696],[102.647876,31.937704],[102.648022,31.937716],[102.6482,31.937747],[102.648251,31.937756],[102.648481,31.937797],[102.648679,31.937831],[102.64871,31.937837],[102.648785,31.93785],[102.648842,31.93786],[102.648939,31.937877],[102.649024,31.937892],[102.649169,31.937918],[102.649398,31.937958],[102.649627,31.937998],[102.649857,31.938038],[102.650086,31.938079],[102.650315,31.938119],[102.65055,31.938163],[102.650784,31.938208],[102.651018,31.938252],[102.651252,31.938296],[102.651333,31.938306],[102.651608,31.938339],[102.65165,31.938344],[102.651663,31.938346],[102.651736,31.938354],[102.651918,31.938376],[102.652049,31.938392],[102.652378,31.938398],[102.652706,31.938404],[102.652789,31.938385],[102.653038,31.938331],[102.653163,31.938228],[102.653177,31.938217],[102.653224,31.938179],[102.65323,31.938174],[102.653257,31.938073],[102.653283,31.937973],[102.653195,31.937731],[102.653059,31.937509],[102.652924,31.937286],[102.652716,31.937132],[102.65257,31.937024],[102.652508,31.936978],[102.6523,31.936824],[102.652092,31.93667],[102.651893,31.93658],[102.65169,31.936489],[102.651288,31.936308],[102.650885,31.936127],[102.650667,31.936027],[102.650448,31.935926],[102.650229,31.935826],[102.650011,31.935726],[102.649792,31.935626],[102.649573,31.935525],[102.649355,31.935425],[102.649136,31.935325],[102.648917,31.935225],[102.648699,31.935124],[102.648325,31.935017],[102.647951,31.93491],[102.647769,31.934707],[102.647766,31.934695],[102.647751,31.934639],[102.647751,31.934637],[102.647727,31.934546],[102.647731,31.93439],[102.647732,31.934346],[102.647903,31.934183],[102.648075,31.93402],[102.648246,31.933857],[102.648418,31.933695],[102.648611,31.933518],[102.648803,31.933341],[102.648996,31.933164],[102.649189,31.932987],[102.64925,31.932888],[102.649256,31.93288],[102.649385,31.932671],[102.649581,31.932354],[102.649682,31.93219],[102.649777,31.932037],[102.649873,31.931882],[102.649948,31.93176],[102.65012,31.931483],[102.650199,31.931144],[102.650229,31.931016],[102.650279,31.930805],[102.650285,31.930534],[102.650292,31.930264],[102.650299,31.929994],[102.650306,31.929723],[102.650271,31.929282],[102.650232,31.928881],[102.650285,31.928661],[102.650338,31.928442],[102.650391,31.928222],[102.650444,31.928003],[102.65048,31.927753],[102.650515,31.927503],[102.650551,31.927254],[102.650587,31.927004],[102.650622,31.926754],[102.650658,31.926504],[102.650693,31.926255],[102.650729,31.926005],[102.650759,31.925605],[102.650788,31.925204],[102.650818,31.924804],[102.650852,31.924528],[102.650936,31.924391],[102.651128,31.924257],[102.651371,31.924239],[102.651642,31.924243],[102.651935,31.92441],[102.652228,31.924576],[102.652399,31.924737],[102.65257,31.924899],[102.652742,31.92506],[102.652913,31.925222],[102.653084,31.925383],[102.653255,31.925545],[102.653427,31.925706],[102.653598,31.925867],[102.653892,31.925989],[102.654042,31.926023],[102.654109,31.926038],[102.654158,31.926045],[102.654295,31.926064],[102.654486,31.926023],[102.654733,31.925842],[102.654874,31.925637],[102.655011,31.925439],[102.655015,31.925433],[102.655051,31.925363],[102.655086,31.925292],[102.655142,31.925182],[102.655269,31.924932],[102.655363,31.924496],[102.655316,31.924197],[102.655247,31.923956],[102.655246,31.923951],[102.655221,31.923862],[102.655179,31.923715],[102.65511,31.923475],[102.655042,31.923234],[102.654807,31.922855],[102.654699,31.92268],[102.654572,31.922475],[102.654464,31.922374],[102.65435,31.922266],[102.654127,31.922057],[102.654079,31.921902],[102.654028,31.921733],[102.654027,31.921726],[102.65401,31.921365],[102.654048,31.921294],[102.654083,31.92123],[102.654139,31.921125],[102.65416,31.921085],[102.654168,31.921071],[102.654181,31.921046],[102.654271,31.92091],[102.654405,31.920705],[102.654572,31.920547],[102.654789,31.920459],[102.655062,31.920395],[102.655318,31.920388],[102.655574,31.920382],[102.655822,31.920386],[102.655872,31.920387],[102.656144,31.920392],[102.656169,31.920392],[102.656505,31.920456],[102.656841,31.92052],[102.657163,31.920572],[102.657486,31.920624],[102.657863,31.920666],[102.65824,31.920707],[102.658523,31.920735],[102.658806,31.920763],[102.659144,31.92077],[102.659448,31.920776],[102.659481,31.920776],[102.659725,31.920734],[102.65981,31.920726],[102.660019,31.920704],[102.660312,31.920674],[102.66055,31.920502],[102.660787,31.92033],[102.66082,31.920282],[102.660829,31.920269],[102.660838,31.920255],[102.660922,31.920134],[102.661045,31.919955],[102.661057,31.919937],[102.661063,31.919903],[102.661082,31.919806],[102.661116,31.91963],[102.660812,31.919358],[102.660427,31.919197],[102.660043,31.919035],[102.659811,31.918942],[102.65958,31.918849],[102.659378,31.918668],[102.659175,31.918488],[102.659064,31.918243],[102.658954,31.917998],[102.658843,31.917753],[102.658732,31.917508],[102.658635,31.917142],[102.658554,31.916837],[102.658538,31.916777],[102.65853,31.916748],[102.65847,31.916521],[102.658402,31.916265],[102.658393,31.916167],[102.658393,31.916166],[102.658388,31.91611],[102.658385,31.916088],[102.658361,31.915823],[102.658063,31.915602],[102.658056,31.915596],[102.657746,31.915524],[102.657436,31.915452],[102.657178,31.915403],[102.656921,31.915354],[102.656663,31.915305],[102.656405,31.915256],[102.656097,31.915118],[102.65579,31.91498],[102.655546,31.914898],[102.655302,31.914817],[102.655058,31.914735],[102.654814,31.914653],[102.654584,31.914516],[102.654354,31.914379],[102.654287,31.914239],[102.654258,31.914177],[102.654248,31.914157],[102.654206,31.914067],[102.654109,31.9138],[102.654171,31.91336],[102.654237,31.913094],[102.654303,31.912827],[102.654487,31.912643],[102.654671,31.912458],[102.654855,31.912274],[102.655016,31.912113],[102.65504,31.912089],[102.655436,31.911926],[102.655832,31.911763],[102.656229,31.9116],[102.656625,31.911437],[102.656964,31.911266],[102.657304,31.911096],[102.657643,31.910925],[102.657871,31.910767],[102.658099,31.910609],[102.658247,31.910346],[102.658249,31.910232],[102.658254,31.909963],[102.658228,31.909668],[102.658113,31.909415],[102.657998,31.909162],[102.657744,31.908936],[102.657491,31.90871],[102.657173,31.908498],[102.656855,31.908286],[102.656538,31.908073],[102.656181,31.907816],[102.655873,31.907594],[102.655824,31.907558],[102.655742,31.907491],[102.655587,31.907363],[102.655349,31.907167],[102.655209,31.906939],[102.655184,31.906898],[102.655184,31.906887],[102.655192,31.906468],[102.655259,31.90624],[102.655325,31.906013],[102.655376,31.905838],[102.655392,31.905785],[102.655458,31.905557],[102.655577,31.905324],[102.655695,31.90509],[102.655813,31.904856],[102.655932,31.904622],[102.656093,31.904389],[102.656113,31.904361],[102.656255,31.904156],[102.656607,31.903928],[102.65686,31.903852],[102.657112,31.903775],[102.657365,31.903698],[102.657618,31.903622],[102.657857,31.903582],[102.658096,31.903542],[102.658335,31.903502],[102.658574,31.903462],[102.658813,31.903422],[102.659052,31.903382],[102.659291,31.903342],[102.659529,31.903302],[102.659946,31.903266],[102.660121,31.903251],[102.660293,31.903236],[102.660363,31.90323],[102.660675,31.903206],[102.66083,31.903195],[102.66087,31.903193],[102.66102,31.903183],[102.66116,31.903127],[102.661228,31.903072],[102.661267,31.90304],[102.661377,31.902806],[102.661383,31.902541],[102.661286,31.902302],[102.661099,31.902122],[102.660913,31.901942],[102.660807,31.90187],[102.660763,31.90184],[102.660699,31.901796],[102.660655,31.901767],[102.660626,31.901747],[102.660503,31.901663],[102.660484,31.901651],[102.66027,31.901505],[102.660056,31.90136],[102.659842,31.901215],[102.659627,31.901069],[102.659413,31.900924],[102.659199,31.900778],[102.658985,31.900633],[102.65877,31.900487],[102.658578,31.900331],[102.658386,31.900176],[102.658194,31.90002],[102.658002,31.899864],[102.65781,31.899708],[102.657618,31.899552],[102.657449,31.899372],[102.65728,31.899192],[102.657254,31.899078],[102.657221,31.89894],[102.657218,31.898925],[102.657156,31.898659],[102.657197,31.898394],[102.657239,31.898129],[102.657417,31.897911],[102.657595,31.897693],[102.657617,31.897685],[102.657784,31.897622],[102.657944,31.897562],[102.658294,31.897431],[102.658643,31.8973],[102.658896,31.897256],[102.659149,31.897213],[102.659403,31.897169],[102.659656,31.897125],[102.659909,31.897081],[102.66004,31.897058],[102.660162,31.897037],[102.660416,31.896993],[102.660669,31.89695],[102.660922,31.896906],[102.661175,31.896862],[102.661429,31.896818],[102.661682,31.896774],[102.661935,31.89673],[102.662164,31.896691],[102.662188,31.896687],[102.662561,31.896647],[102.662705,31.896632],[102.662868,31.896615],[102.662935,31.896608],[102.663308,31.896568],[102.663318,31.896565],[102.663656,31.896456],[102.664005,31.896344],[102.664165,31.896185],[102.664183,31.896166],[102.664238,31.896111],[102.664324,31.896025],[102.664329,31.895993],[102.664331,31.89598],[102.664334,31.895962],[102.664366,31.895761],[102.664358,31.89572],[102.664305,31.895436],[102.664101,31.895284],[102.663897,31.895133],[102.663687,31.895006],[102.663476,31.894879],[102.663266,31.894753],[102.663056,31.894626],[102.662845,31.894499],[102.662635,31.894372],[102.662425,31.894246],[102.662215,31.894119],[102.662004,31.893992],[102.661794,31.893866],[102.661584,31.893739],[102.661373,31.893612],[102.661161,31.893472],[102.660949,31.893332],[102.660737,31.893193],[102.660525,31.893053],[102.66022,31.892735],[102.66007,31.892526],[102.659919,31.892316],[102.659836,31.892166],[102.659821,31.892139],[102.659754,31.892019],[102.659749,31.891965],[102.659742,31.891889],[102.659727,31.891723],[102.659873,31.891431],[102.660242,31.891188],[102.660611,31.890944],[102.660874,31.890816],[102.661137,31.890689],[102.661331,31.890529],[102.661526,31.89037],[102.661774,31.890154],[102.662021,31.889937],[102.662165,31.889718],[102.662293,31.889523],[102.662309,31.889499],[102.66233,31.889458],[102.66234,31.889437],[102.662455,31.889207],[102.662601,31.888915],[102.662643,31.888842],[102.662697,31.888748],[102.662727,31.888696],[102.662813,31.888545],[102.662818,31.888536],[102.663067,31.888274],[102.663379,31.888222],[102.66363,31.888205],[102.663882,31.888187],[102.664133,31.88817],[102.664385,31.888152],[102.664614,31.88816],[102.664843,31.888168],[102.665072,31.888176],[102.665301,31.888184],[102.66553,31.888192],[102.665759,31.8882],[102.665988,31.888208],[102.666217,31.888216],[102.666587,31.888197],[102.666851,31.888184],[102.666958,31.888179],[102.667358,31.888098],[102.667708,31.888027],[102.667758,31.888017],[102.668177,31.887877],[102.668213,31.887848],[102.668495,31.887618],[102.668643,31.887238],[102.668645,31.887174],[102.668646,31.887125],[102.668648,31.887051],[102.668648,31.887043],[102.668653,31.886855],[102.668623,31.886794],[102.668488,31.886527],[102.668251,31.886346],[102.668013,31.886164],[102.667683,31.885991],[102.667352,31.885818],[102.667022,31.885645],[102.666762,31.885515],[102.666737,31.885503],[102.666714,31.885491],[102.666589,31.885358],[102.666546,31.885312],[102.666381,31.885013],[102.66627,31.884745],[102.666229,31.884646],[102.666076,31.88428],[102.665928,31.883922],[102.665924,31.883913],[102.66572,31.88364],[102.665672,31.883575],[102.665516,31.883368],[102.665331,31.883157],[102.665146,31.882947],[102.66501,31.882826],[102.664975,31.882636],[102.664963,31.882575],[102.664953,31.882519],[102.66495,31.882501],[102.664954,31.882344],[102.664958,31.882177],[102.665139,31.881885],[102.665357,31.881801],[102.665575,31.881716],[102.665793,31.881631],[102.666011,31.881547],[102.666197,31.881521],[102.666218,31.881518],[102.666382,31.881495],[102.666752,31.881443],[102.667122,31.881391],[102.667418,31.881323],[102.667471,31.88131],[102.667667,31.881265],[102.667714,31.881254],[102.66793,31.881179],[102.668145,31.881105],[102.66836,31.88103],[102.668575,31.880955],[102.668791,31.880881],[102.669006,31.880806],[102.669413,31.880666],[102.66982,31.880526],[102.670228,31.880387],[102.670526,31.8802],[102.670592,31.880159],[102.67066,31.880116],[102.670825,31.880013],[102.670849,31.879987],[102.671039,31.879782],[102.671277,31.879523],[102.671315,31.879246],[102.671323,31.878913],[102.671139,31.87852],[102.670832,31.878335],[102.670525,31.87815],[102.67014,31.877948],[102.669887,31.877816],[102.669755,31.877746],[102.669623,31.877678],[102.6695,31.877613],[102.66941,31.877566],[102.669369,31.877544],[102.669177,31.877444],[102.669123,31.877415],[102.668984,31.877342],[102.668776,31.877201],[102.668569,31.87706],[102.668375,31.876886],[102.66828,31.876772],[102.668236,31.876685],[102.668217,31.876648],[102.668186,31.876588],[102.668122,31.876462],[102.668157,31.876138],[102.668162,31.876094],[102.668421,31.875904],[102.668679,31.875714],[102.669027,31.875513],[102.669375,31.875311],[102.669723,31.87511],[102.670013,31.874942],[102.670311,31.874756],[102.67061,31.87457],[102.670823,31.874338],[102.671036,31.874106],[102.671163,31.873887],[102.67129,31.873668],[102.671357,31.873482],[102.671439,31.873258],[102.671446,31.872963],[102.671418,31.872698],[102.671346,31.872339],[102.671201,31.872166],[102.671118,31.872067],[102.670912,31.87182],[102.67089,31.871794],[102.670823,31.87176],[102.670751,31.871724],[102.670718,31.871707],[102.670669,31.871682],[102.670449,31.87157],[102.670228,31.871458],[102.670007,31.871345],[102.669786,31.871233],[102.669566,31.871121],[102.669345,31.871009],[102.669124,31.870896],[102.668741,31.870753],[102.668358,31.870611],[102.667974,31.870468],[102.66792,31.870441],[102.667919,31.870441],[102.667852,31.870408],[102.667837,31.870401],[102.667599,31.870284],[102.667395,31.870134],[102.667295,31.869954],[102.6673,31.869748],[102.667386,31.869525],[102.667471,31.869303],[102.667557,31.86908],[102.667642,31.868857],[102.667772,31.868642],[102.667901,31.868428],[102.66803,31.868213],[102.668159,31.867998],[102.668288,31.867784],[102.668417,31.867569],[102.668546,31.867354],[102.668675,31.86714],[102.668804,31.866925],[102.668933,31.86671],[102.669227,31.866384],[102.669521,31.866057],[102.669814,31.865731],[102.670108,31.865405],[102.67023,31.865212],[102.670352,31.86502],[102.670474,31.864827],[102.670596,31.864635],[102.670719,31.864442],[102.670841,31.86425],[102.670954,31.863883],[102.671031,31.863633],[102.671067,31.863517],[102.671125,31.863252],[102.671183,31.862988],[102.671156,31.862737],[102.671128,31.862486],[102.671091,31.862441],[102.670976,31.8623],[102.670914,31.862223],[102.670858,31.862155],[102.670605,31.8619],[102.670572,31.861867],[102.670473,31.861767],[102.670419,31.861713],[102.670418,31.861712],[102.670376,31.86167],[102.670371,31.861664],[102.670352,31.861645],[102.670184,31.861451],[102.670016,31.861256],[102.669935,31.861033],[102.669854,31.860811],[102.669878,31.860546],[102.669902,31.860281],[102.67005,31.85992],[102.670197,31.859559],[102.670345,31.859198],[102.670493,31.858807],[102.670641,31.858417],[102.670789,31.858026],[102.670868,31.857681],[102.670892,31.857421],[102.670904,31.857291],[102.670915,31.857166],[102.670915,31.857161],[102.670939,31.856901],[102.670963,31.856641],[102.670987,31.856381],[102.671011,31.856121],[102.67109,31.855699],[102.67117,31.855278],[102.67125,31.854856],[102.671364,31.854461],[102.671479,31.854065],[102.671577,31.853814],[102.671675,31.853563],[102.67178,31.853315],[102.671885,31.853067],[102.672123,31.852698],[102.672401,31.852482],[102.67249,31.852413],[102.67268,31.852265],[102.67276,31.852329],[102.672798,31.85236],[102.67292,31.852458],[102.67319,31.852728],[102.673436,31.853035],[102.673685,31.853353],[102.673933,31.853672],[102.674138,31.854025],[102.67431,31.854308],[102.674467,31.854632],[102.674623,31.8549],[102.674781,31.85514],[102.674831,31.855257],[102.674825,31.855671],[102.674821,31.855953],[102.674845,31.856319],[102.674869,31.856685],[102.674922,31.856852],[102.675111,31.857037],[102.675327,31.85725],[102.675341,31.857261],[102.675536,31.857404],[102.675731,31.857548],[102.675898,31.857768],[102.675963,31.858071],[102.675945,31.858321],[102.675871,31.858541],[102.675797,31.858761],[102.675797,31.859023],[102.675853,31.859259],[102.675856,31.859273],[102.675981,31.859475],[102.676058,31.859522],[102.676177,31.859594],[102.676505,31.859814],[102.676612,31.859915],[102.676689,31.860046],[102.676737,31.860189],[102.676784,31.86032],[102.676856,31.860433],[102.676939,31.860534],[102.677082,31.860671],[102.677314,31.860808],[102.677557,31.860909],[102.677843,31.861099],[102.678129,31.861289],[102.678295,31.861459],[102.678462,31.861628],[102.678503,31.861825],[102.678501,31.861893],[102.678497,31.862021],[102.678485,31.862289],[102.678474,31.862556],[102.67842,31.862818],[102.67839,31.863009],[102.678319,31.863305],[102.678248,31.863602],[102.678248,31.863603],[102.678248,31.863603],[102.678223,31.863687],[102.678223,31.863689],[102.67817,31.863871],[102.678027,31.864032],[102.677682,31.864222],[102.677593,31.864341],[102.677589,31.864459],[102.677587,31.86452],[102.677623,31.864769],[102.677659,31.864989],[102.677831,31.865299],[102.678004,31.86568],[102.678099,31.865804],[102.678277,31.86587],[102.678401,31.86591],[102.67844,31.865922],[102.678442,31.865923],[102.678444,31.865923],[102.678557,31.866025],[102.678569,31.866155],[102.678557,31.866286],[102.678527,31.866459],[102.678533,31.866631],[102.678652,31.86697],[102.678682,31.867119],[102.678682,31.867202],[102.67861,31.867315],[102.678521,31.867399],[102.678367,31.867494],[102.678057,31.86775],[102.677861,31.867916],[102.677737,31.86802],[102.677635,31.868107],[102.677436,31.868309],[102.677236,31.868511],[102.677088,31.86874],[102.677082,31.868749],[102.677082,31.868948],[102.677082,31.868975],[102.677093,31.869082],[102.677207,31.869433],[102.677409,31.869748],[102.677516,31.870141],[102.677555,31.870444],[102.677593,31.870748],[102.677617,31.870836],[102.677665,31.871014],[102.677742,31.871301],[102.67775,31.871323],[102.677871,31.871669],[102.677992,31.872015],[102.678033,31.87228],[102.678075,31.872544],[102.678111,31.872848],[102.678069,31.873264],[102.678013,31.873526],[102.677957,31.873788],[102.677891,31.874097],[102.677891,31.87421],[102.677891,31.874299],[102.677932,31.874382],[102.678051,31.87446],[102.678105,31.874502],[102.678349,31.874692],[102.678593,31.874882],[102.678771,31.875215],[102.678793,31.87529],[102.67886,31.875513],[102.678908,31.875816],[102.678979,31.876119],[102.679092,31.876328],[102.67919,31.876551],[102.679289,31.876774],[102.679402,31.876968],[102.679473,31.877089],[102.679526,31.877404],[102.679528,31.877433],[102.679544,31.877696],[102.679604,31.877934],[102.679741,31.878178],[102.679988,31.878499],[102.680056,31.878588],[102.680115,31.878721],[102.680199,31.878909],[102.680211,31.879177],[102.680208,31.879425],[102.680205,31.879861],[102.680175,31.880224],[102.680104,31.880593],[102.680032,31.880914],[102.679848,31.881116],[102.679613,31.881396],[102.679378,31.881675],[102.679146,31.882015],[102.678914,31.882354],[102.678696,31.882558],[102.678521,31.882722],[102.678515,31.882853],[102.678525,31.88289],[102.678539,31.882948],[102.678694,31.883056],[102.678725,31.883075],[102.678906,31.883189],[102.679117,31.883323],[102.679401,31.883664],[102.679685,31.884006],[102.679969,31.884348],[102.680253,31.884689],[102.680536,31.885031],[102.680348,31.885416],[102.680159,31.885801],[102.679971,31.886186],[102.679782,31.886571],[102.679594,31.886956],[102.679594,31.886957],[102.679593,31.886957],[102.679405,31.887341],[102.679217,31.887727],[102.679032,31.888008],[102.678847,31.88829],[102.67871,31.888506],[102.678573,31.888721],[102.678437,31.888936],[102.6783,31.889152],[102.678164,31.889367],[102.678027,31.889582],[102.677891,31.889798],[102.677754,31.890013],[102.677617,31.890229],[102.677481,31.890444],[102.677344,31.890659],[102.677208,31.890875],[102.677071,31.89109],[102.676934,31.891305],[102.676813,31.891521],[102.676691,31.891737],[102.67657,31.891953],[102.676448,31.892169],[102.676327,31.892385],[102.676205,31.892601],[102.676084,31.892817],[102.675962,31.893033],[102.67584,31.893249],[102.675719,31.893464],[102.675668,31.89359],[102.675629,31.893688],[102.675591,31.893782],[102.675547,31.893966],[102.675562,31.894151],[102.675596,31.894335],[102.675632,31.894453],[102.675739,31.894703],[102.675847,31.894952],[102.675954,31.895202],[102.676061,31.895451],[102.676273,31.89584],[102.676485,31.896228],[102.676698,31.896617],[102.67691,31.897006],[102.677023,31.897201],[102.677137,31.897396],[102.677251,31.897592],[102.677364,31.897787],[102.677478,31.897982],[102.677592,31.898177],[102.677704,31.898393],[102.677817,31.898609],[102.67793,31.898825],[102.678043,31.899041],[102.678155,31.899258],[102.678268,31.899474],[102.678381,31.89969],[102.678493,31.899906],[102.678605,31.900177],[102.678715,31.900547],[102.678757,31.900801],[102.6788,31.901054],[102.67885,31.901467],[102.678841,31.901787],[102.678796,31.902003],[102.678754,31.902138],[102.678712,31.902237],[102.678538,31.902404],[102.678364,31.902571],[102.67819,31.902738],[102.678016,31.902904],[102.677842,31.903071],[102.677668,31.903238],[102.677494,31.903405],[102.677319,31.903571],[102.677159,31.903751],[102.676998,31.90393],[102.676837,31.904109],[102.676676,31.904289],[102.676516,31.904468],[102.676355,31.904647],[102.676194,31.904826],[102.676034,31.905006],[102.675873,31.905185],[102.675712,31.905364],[102.675551,31.905544],[102.675391,31.905723],[102.67523,31.905902],[102.675069,31.906081],[102.674929,31.906261],[102.674788,31.906441],[102.674647,31.90662],[102.674507,31.9068],[102.674366,31.906979],[102.674225,31.907159],[102.674085,31.907338],[102.673944,31.907518],[102.673922,31.907651],[102.673923,31.907658],[102.673938,31.907769],[102.673947,31.90778],[102.674014,31.907855],[102.674111,31.907923],[102.674312,31.908025],[102.674513,31.908127],[102.674714,31.908229],[102.674915,31.90833],[102.675116,31.908432],[102.675318,31.908534],[102.675693,31.908742],[102.676069,31.908951],[102.676151,31.908996],[102.676445,31.909159],[102.676792,31.9094],[102.677042,31.90969],[102.677193,31.909928],[102.677286,31.910198],[102.677301,31.910383],[102.677297,31.910484],[102.677276,31.9106],[102.677273,31.910668],[102.677136,31.91089],[102.676999,31.911112],[102.676862,31.911334],[102.676725,31.911557],[102.676593,31.91179],[102.676461,31.912024],[102.676329,31.912257],[102.676197,31.912491],[102.676065,31.912724],[102.675933,31.912958],[102.675912,31.912996],[102.675801,31.913192],[102.675669,31.913425],[102.675555,31.9137],[102.67544,31.913974],[102.675345,31.914224],[102.67525,31.914474],[102.675214,31.914759],[102.675177,31.915044],[102.675164,31.915298],[102.675151,31.915553],[102.675138,31.915807],[102.675125,31.916061],[102.675111,31.916316],[102.675098,31.91657],[102.675111,31.916776],[102.675126,31.91704],[102.675163,31.917246],[102.675177,31.917319],[102.675229,31.917571],[102.675273,31.917684],[102.675378,31.91795],[102.675526,31.918329],[102.675608,31.918539],[102.675674,31.918708],[102.675794,31.919046],[102.675914,31.919383],[102.67598,31.9196],[102.676046,31.919818],[102.676112,31.920035],[102.676177,31.920252],[102.676243,31.92047],[102.676309,31.920687],[102.676375,31.920904],[102.676441,31.921122],[102.676484,31.921366],[102.676528,31.92161],[102.676523,31.921795],[102.676479,31.921928],[102.676378,31.922077],[102.676209,31.922267],[102.67604,31.922457],[102.675871,31.922647],[102.675702,31.922837],[102.675533,31.923027],[102.675364,31.923217],[102.675201,31.923417],[102.675038,31.923616],[102.674876,31.923816],[102.674713,31.924016],[102.674551,31.924216],[102.674388,31.924416],[102.674225,31.924615],[102.674063,31.924815],[102.6739,31.925015],[102.673737,31.925215],[102.67353,31.925598],[102.673445,31.925831],[102.673421,31.926049],[102.673416,31.92625],[102.673468,31.926469],[102.673523,31.926621],[102.673599,31.926774],[102.673886,31.927087],[102.674174,31.9274],[102.674462,31.927713],[102.674673,31.927952],[102.674786,31.928172],[102.674859,31.928391],[102.674876,31.928527],[102.67489,31.928729],[102.674876,31.928986],[102.674863,31.929243],[102.674849,31.929501],[102.674835,31.929758],[102.674821,31.930016],[102.674807,31.930273],[102.674793,31.93053],[102.674779,31.930788],[102.674777,31.931065],[102.674775,31.931342],[102.674773,31.931619],[102.674771,31.931896],[102.674703,31.932256],[102.674635,31.932615],[102.674569,31.932891],[102.674502,31.933167],[102.674476,31.933434],[102.674515,31.933616],[102.674565,31.933697],[102.67461,31.933768],[102.674898,31.934084],[102.674916,31.934103],[102.675186,31.934399],[102.675454,31.934701],[102.675721,31.935002],[102.675989,31.935303],[102.676136,31.935494],[102.676283,31.935685],[102.67643,31.935875],[102.676577,31.936066],[102.676724,31.936257],[102.676871,31.936448],[102.677018,31.936638],[102.677165,31.936829],[102.677312,31.93702],[102.677459,31.937211],[102.677647,31.937566],[102.67774,31.937828],[102.677832,31.938091],[102.677885,31.938391],[102.677937,31.938691],[102.677955,31.938955],[102.677973,31.93922],[102.677991,31.939484],[102.678009,31.939749],[102.678033,31.939993],[102.678056,31.940238],[102.67812,31.940457],[102.678183,31.940676],[102.678312,31.941039],[102.67844,31.941402],[102.678534,31.941622],[102.678627,31.941842],[102.678808,31.942114],[102.678988,31.942385],[102.679122,31.942622],[102.679256,31.942859],[102.679391,31.943096],[102.679525,31.943332],[102.679659,31.943569],[102.679793,31.943806],[102.679928,31.944043],[102.680062,31.94428],[102.680196,31.944517],[102.680331,31.944753],[102.680471,31.945077],[102.680508,31.945159],[102.680684,31.945565],[102.680861,31.945971],[102.681038,31.946377],[102.681158,31.946707],[102.681271,31.947015],[102.681278,31.947036],[102.681361,31.947298],[102.681444,31.94756],[102.681493,31.947924],[102.681495,31.948058],[102.681496,31.948167],[102.6815,31.94841],[102.681433,31.948728],[102.681366,31.949047],[102.681271,31.949305],[102.681176,31.949564],[102.681112,31.949747],[102.681108,31.949999],[102.681122,31.9501],[102.681159,31.950235],[102.681472,31.950538],[102.681785,31.950842],[102.682098,31.951145],[102.682411,31.951449],[102.682622,31.951676],[102.682833,31.951903],[102.682987,31.952107],[102.683042,31.952226],[102.683118,31.952361],[102.683126,31.952431],[102.68315,31.952631],[102.683124,31.952899],[102.683027,31.953216],[102.682931,31.953533],[102.682872,31.953884],[102.682814,31.954236],[102.682787,31.954536],[102.682782,31.954779],[102.682812,31.955132],[102.682872,31.95539],[102.682931,31.955649],[102.682991,31.955907],[102.68305,31.956166],[102.683109,31.956424],[102.683159,31.95664],[102.683159,31.95664],[102.683169,31.956683],[102.683223,31.956903],[102.683278,31.957123],[102.683332,31.957343],[102.683387,31.957563],[102.683441,31.957783],[102.683496,31.958003],[102.68355,31.958223],[102.683605,31.958443],[102.683662,31.958672],[102.683718,31.958901],[102.683775,31.959129],[102.683832,31.959358],[102.683911,31.959729],[102.683991,31.9601],[102.684118,31.960505],[102.684306,31.960878],[102.684444,31.961103],[102.684582,31.961328],[102.68472,31.961554],[102.684857,31.961779],[102.684995,31.962004],[102.685034,31.962068],[102.685035,31.96207],[102.685133,31.962229],[102.685304,31.96251],[102.685336,31.962585],[102.685341,31.962599],[102.685456,31.962924],[102.685509,31.963072],[102.685571,31.963248],[102.685631,31.963375],[102.685757,31.963641],[102.68584,31.963749],[102.685993,31.963948],[102.686157,31.964105],[102.686364,31.964248],[102.686635,31.964334],[102.686799,31.964369],[102.686937,31.964424],[102.686978,31.964441],[102.68717,31.964555],[102.687206,31.964612],[102.687272,31.964722],[102.687456,31.965026],[102.687479,31.965076],[102.687644,31.965432],[102.687809,31.965789],[102.688112,31.966075],[102.688148,31.96611],[102.688274,31.966228],[102.688339,31.966288],[102.688422,31.96636],[102.688487,31.966413],[102.688505,31.966455],[102.688517,31.966526],[102.68844,31.966633],[102.688279,31.966901],[102.688119,31.967169],[102.688005,31.967396],[102.687934,31.967537],[102.687774,31.967758],[102.687632,31.967903],[102.687565,31.967972],[102.687357,31.968132],[102.687149,31.968293],[102.686958,31.968461],[102.68686,31.968547],[102.68681,31.96859],[102.686679,31.968608],[102.686572,31.968608],[102.686453,31.968674],[102.686388,31.96881],[102.686411,31.969054],[102.686411,31.969447],[102.68639,31.969673],[102.68637,31.969899],[102.686313,31.970142],[102.686287,31.970248],[102.686255,31.970384],[102.686135,31.970637],[102.686049,31.970818],[102.685969,31.970986],[102.685803,31.971336],[102.685764,31.971396],[102.685709,31.971481],[102.68568,31.971527],[102.685609,31.971637],[102.685556,31.971718],[102.685433,31.971908],[102.68531,31.972099],[102.68515,31.972255],[102.685007,31.972395],[102.684787,31.972542],[102.684508,31.972655],[102.684168,31.972783],[102.684089,31.972805],[102.683913,31.972854],[102.683658,31.972924],[102.683403,31.972994],[102.683148,31.973064],[102.682893,31.973135],[102.682638,31.973205],[102.682383,31.973275],[102.682128,31.973345],[102.681873,31.973416],[102.681618,31.973486],[102.681369,31.973565],[102.68112,31.973645],[102.680872,31.973724],[102.680805,31.973745],[102.680623,31.973803],[102.68052,31.973844],[102.680236,31.973956],[102.680071,31.97402],[102.679859,31.974104],[102.679848,31.974108],[102.679622,31.974232],[102.679538,31.974278],[102.679486,31.974307],[102.679227,31.974449],[102.678946,31.974637],[102.678665,31.974826],[102.678599,31.974884],[102.678349,31.975105],[102.678034,31.975384],[102.677718,31.975664],[102.677564,31.975844],[102.67741,31.976025],[102.677256,31.976205],[102.677102,31.976385],[102.676948,31.976566],[102.676794,31.976746],[102.67664,31.976926],[102.676486,31.977107],[102.676333,31.977285],[102.676181,31.977464],[102.676181,31.977464],[102.676181,31.977464],[102.676025,31.977686],[102.675832,31.977998],[102.675638,31.97831],[102.675513,31.978507],[102.675478,31.978679],[102.675478,31.978894],[102.675478,31.979018],[102.675489,31.979188],[102.67549,31.979197],[102.675608,31.979406],[102.67562,31.979429],[102.675815,31.979757],[102.67601,31.980084],[102.676031,31.980119],[102.676233,31.980428],[102.676435,31.980738],[102.67656,31.981059],[102.676703,31.981338],[102.67675,31.981441],[102.676882,31.981725],[102.677015,31.98204],[102.677149,31.982356],[102.677156,31.982381],[102.677273,31.982806],[102.67739,31.983231],[102.677465,31.983504],[102.677601,31.983789],[102.677619,31.983932],[102.677625,31.984057],[102.677578,31.984158],[102.677384,31.984429],[102.677191,31.984699],[102.677062,31.984898],[102.676793,31.985163],[102.676525,31.985428],[102.676257,31.985693],[102.676061,31.985855],[102.675882,31.986002],[102.67561,31.986348],[102.675597,31.986365],[102.675365,31.986609],[102.67524,31.98674],[102.675139,31.986924],[102.675109,31.98718],[102.675109,31.98762],[102.675091,31.987953],[102.675186,31.988227],[102.675192,31.988393],[102.675079,31.988631],[102.675061,31.98906],[102.675064,31.989145],[102.675073,31.989381],[102.675133,31.989756],[102.675145,31.990119],[102.675145,31.990273],[102.675087,31.990423],[102.675055,31.990505],[102.674966,31.99066],[102.674913,31.99088],[102.674918,31.991005],[102.674948,31.991142],[102.675121,31.991308],[102.675127,31.991362],[102.675097,31.991469],[102.674936,31.991695],[102.674776,31.991921],[102.674615,31.992272],[102.674598,31.992368],[102.674531,31.992744],[102.674526,31.992772],[102.67449,31.99309],[102.674455,31.993408],[102.674397,31.993677],[102.67433,31.993991],[102.674312,31.994235],[102.674307,31.994332],[102.674306,31.994366],[102.674371,31.994467],[102.674532,31.994705],[102.674675,31.994913],[102.674752,31.995145],[102.674827,31.995447],[102.674903,31.995749],[102.674918,31.995811],[102.675061,31.996127],[102.675171,31.996356],[102.675281,31.996585],[102.675378,31.996729],[102.675538,31.996966],[102.675698,31.997203],[102.675927,31.997444],[102.676156,31.997685],[102.676251,31.997828],[102.676322,31.997971],[102.676394,31.998007],[102.676453,31.998036],[102.676483,31.998114],[102.676471,31.998256],[102.676424,31.998387],[102.67637,31.998488],[102.676282,31.998528],[102.676263,31.998536],[102.676049,31.998619],[102.675882,31.998744],[102.675751,31.998881],[102.675742,31.998895],[102.675715,31.998936],[102.675591,31.999125],[102.675466,31.999458],[102.675377,31.999583],[102.675153,31.999816],[102.674942,32.000035],[102.674698,32.000326],[102.674496,32.000487],[102.674228,32.000707],[102.673976,32.000862],[102.673723,32.001016],[102.673604,32.001129],[102.673544,32.001314],[102.673408,32.001736],[102.673312,32.002099],[102.673275,32.002198],[102.673247,32.002272],[102.673158,32.002403],[102.67308,32.00248],[102.672902,32.002557],[102.672718,32.002649],[102.672569,32.002724],[102.672397,32.002808],[102.672265,32.002872],[102.672031,32.002925],[102.671796,32.002977],[102.671784,32.00298],[102.671587,32.003009],[102.671308,32.003104],[102.671022,32.00336],[102.670975,32.003568],[102.670992,32.003729],[102.671053,32.003925],[102.671125,32.004159],[102.671171,32.004306],[102.671284,32.004621],[102.671308,32.004776],[102.671236,32.004907],[102.671141,32.005073],[102.671064,32.00524],[102.671033,32.005277],[102.670844,32.005508],[102.670683,32.005752],[102.670661,32.005808],[102.670591,32.00599],[102.670499,32.006227],[102.670415,32.006567],[102.670338,32.006784],[102.670261,32.007001],[102.670112,32.007254],[102.669963,32.007506],[102.669832,32.007703],[102.669672,32.007798],[102.66941,32.007932],[102.669148,32.008065],[102.669113,32.008083],[102.668976,32.008191],[102.668973,32.008215],[102.668958,32.008327],[102.668982,32.008434],[102.669035,32.008589],[102.669046,32.008637],[102.669071,32.008744],[102.669089,32.008892],[102.669136,32.009053],[102.669214,32.00919],[102.669386,32.009351],[102.669559,32.009511],[102.669752,32.009856],[102.669945,32.010201],[102.670094,32.010412],[102.670243,32.010624],[102.670326,32.010689],[102.670451,32.010743],[102.670473,32.010749],[102.670869,32.010859],[102.671028,32.010903],[102.671168,32.010983],[102.671236,32.011022],[102.671563,32.011302],[102.671754,32.011453],[102.671944,32.011605],[102.672063,32.011685],[102.672164,32.011754],[102.672462,32.011908],[102.672729,32.012164],[102.67278,32.012213],[102.672914,32.012343],[102.673057,32.012515],[102.673092,32.012646],[102.673106,32.012724],[102.673122,32.012813],[102.673211,32.012961],[102.673354,32.013167],[102.673425,32.013415],[102.673491,32.013552],[102.673516,32.013605],[102.67358,32.01369],[102.673673,32.013813],[102.673706,32.013857],[102.673816,32.01399],[102.674011,32.014109],[102.674073,32.014157],[102.674077,32.014228],[102.674073,32.014333],[102.674038,32.014456],[102.674025,32.0145],[102.673973,32.014609],[102.673968,32.014757],[102.673958,32.014918],[102.673916,32.015109],[102.673868,32.015209],[102.673836,32.015301],[102.673811,32.015375],[102.673868,32.015689],[102.673849,32.015861],[102.673839,32.016132],[102.673839,32.016312],[102.673839,32.016384],[102.673915,32.016695],[102.673944,32.016813],[102.673996,32.017046],[102.674009,32.017109],[102.674092,32.017536],[102.674151,32.017895],[102.674211,32.018254],[102.674234,32.018535],[102.674196,32.018764],[102.674125,32.018945],[102.674123,32.018958],[102.674101,32.019159],[102.67412,32.019306],[102.674215,32.019458],[102.674401,32.019749],[102.674501,32.019953],[102.674539,32.020063],[102.674582,32.020187],[102.674636,32.020406],[102.674644,32.020439],[102.674625,32.020696],[102.674587,32.020896],[102.674604,32.021106],[102.674606,32.021129],[102.674632,32.021353],[102.674634,32.021368],[102.674658,32.021576],[102.674701,32.021881],[102.67471,32.022085],[102.674691,32.02229],[102.674644,32.022576],[102.674644,32.02278],[102.674682,32.022999],[102.674698,32.023062],[102.674777,32.023361],[102.674796,32.023508],[102.674789,32.0237],[102.674786,32.023775],[102.674677,32.024108],[102.674644,32.024355],[102.674639,32.024589],[102.674601,32.024755],[102.674544,32.024874],[102.674265,32.02512],[102.673891,32.025317],[102.673792,32.025369],[102.673571,32.025446],[102.673351,32.025522],[102.67334,32.025526],[102.673021,32.025636],[102.672726,32.025816],[102.672359,32.025926],[102.671993,32.026035],[102.671631,32.026173],[102.671296,32.02643],[102.671265,32.026454],[102.671079,32.026545],[102.670851,32.026659],[102.670568,32.026813],[102.670284,32.026968],[102.670047,32.027106],[102.669882,32.02738],[102.669804,32.027511],[102.669667,32.027902],[102.669657,32.027948],[102.669589,32.028259],[102.669639,32.028495],[102.66976,32.028666],[102.669924,32.028841],[102.670088,32.029016],[102.67026,32.029159],[102.670481,32.029337],[102.670602,32.029701],[102.670738,32.029915],[102.670888,32.030115],[102.670995,32.030265],[102.671022,32.030333],[102.671109,32.030551],[102.671159,32.030693],[102.67138,32.030875],[102.671602,32.031057],[102.671877,32.031264],[102.672151,32.031471],[102.672176,32.031499],[102.672395,32.031741],[102.672428,32.031778],[102.67268,32.032057],[102.672837,32.032232],[102.672994,32.032407],[102.673029,32.03242],[102.673379,32.032556],[102.673686,32.032671],[102.673886,32.032799],[102.673906,32.032832],[102.674036,32.033042],[102.67405,32.033137],[102.674072,32.033277],[102.67405,32.03367],[102.673953,32.033997],[102.673907,32.034148],[102.67379,32.034496],[102.673722,32.034698],[102.673658,32.034905],[102.673693,32.035105],[102.673702,32.035114],[102.6738,32.035219],[102.673922,32.035298],[102.674022,32.035462],[102.67405,32.035655],[102.674036,32.035883],[102.67392,32.036165],[102.673805,32.036447],[102.673766,32.036542],[102.67371,32.036679],[102.673615,32.036911],[102.673527,32.037131],[102.673465,32.037289],[102.673212,32.037566],[102.673158,32.037625],[102.672894,32.037967],[102.672772,32.038189],[102.672694,32.038421],[102.672615,32.038653],[102.672423,32.038988],[102.672291,32.039181],[102.672159,32.039374],[102.67215,32.039387],[102.671976,32.039641],[102.671802,32.039895],[102.671752,32.04013],[102.671652,32.040344],[102.67153,32.04043],[102.67142,32.040487],[102.671266,32.040566],[102.671007,32.040717],[102.670924,32.040766],[102.670595,32.041008],[102.670481,32.041094],[102.670438,32.041201],[102.670424,32.041494],[102.67041,32.041786],[102.670353,32.042215],[102.670346,32.04224],[102.67034,32.042263],[102.670243,32.042646],[102.670146,32.043028],[102.670074,32.043207],[102.670003,32.043307],[102.669839,32.043343],[102.669739,32.043347],[102.669532,32.043357],[102.669367,32.043357],[102.669096,32.043303],[102.668825,32.04325],[102.668554,32.043207],[102.668282,32.043164],[102.667933,32.04315],[102.667669,32.043143],[102.667577,32.043164],[102.667483,32.043186],[102.667269,32.043278],[102.667019,32.043321],[102.666669,32.043271],[102.666369,32.04325],[102.666237,32.04325],[102.666091,32.04325],[102.666017,32.043296],[102.665698,32.043492],[102.665394,32.043779],[102.665191,32.043971],[102.664949,32.044106],[102.664763,32.044256],[102.664556,32.044328],[102.664378,32.04442],[102.664256,32.04452],[102.664064,32.04471],[102.663871,32.044899],[102.663849,32.04492],[102.663585,32.045091],[102.663278,32.045199],[102.663064,32.045234],[102.662814,32.045234]]]]},"properties":{"cp":[102.49877817263959,32.16081640345188],"code":"513233101","name":"刷经寺镇","level":"street","center":[102.49877817263959,32.16081640345188],"fullCode":"513233101000","fullName":"四川省阿坝藏族羌族自治州红原县刷经寺镇","acreageMu":1479646.49,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.661,31.9177]}},{"id":"513233103","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.190465,32.696137],[102.190648,32.695897],[102.1908,32.695656],[102.19099,32.695463],[102.19118,32.69527],[102.19137,32.695077],[102.19156,32.694884],[102.191781,32.694532],[102.191877,32.694281],[102.191973,32.694031],[102.192053,32.693751],[102.192132,32.69347],[102.192144,32.693222],[102.192157,32.692973],[102.192157,32.692964],[102.192169,32.692725],[102.192181,32.692476],[102.192193,32.692228],[102.192206,32.691979],[102.192218,32.691731],[102.19223,32.691482],[102.192191,32.691051],[102.192169,32.690812],[102.192152,32.690619],[102.192166,32.690348],[102.192167,32.690321],[102.192174,32.690188],[102.192196,32.689758],[102.192219,32.689328],[102.192241,32.688898],[102.192293,32.688642],[102.192345,32.688386],[102.192398,32.68813],[102.19245,32.687874],[102.192502,32.687618],[102.192555,32.687361],[102.192607,32.687105],[102.192611,32.687088],[102.192659,32.686849],[102.192712,32.686593],[102.192738,32.686466],[102.192764,32.686337],[102.192816,32.686081],[102.192854,32.685898],[102.192865,32.685841],[102.192869,32.685825],[102.192956,32.685578],[102.193042,32.685331],[102.193129,32.685084],[102.193216,32.684837],[102.193303,32.684591],[102.193325,32.684528],[102.19339,32.684344],[102.193425,32.684243],[102.193477,32.684097],[102.193564,32.68385],[102.193677,32.683607],[102.19379,32.683365],[102.193903,32.683122],[102.194017,32.68288],[102.19413,32.682637],[102.194243,32.682395],[102.194356,32.682152],[102.194379,32.682104],[102.194469,32.68191],[102.194548,32.681812],[102.19475,32.681561],[102.19503,32.681212],[102.195311,32.680863],[102.195591,32.680514],[102.195872,32.680165],[102.196009,32.680089],[102.196105,32.680037],[102.19628,32.67994],[102.196299,32.679929],[102.196337,32.679909],[102.196684,32.679795],[102.196763,32.679769],[102.197011,32.67973],[102.197093,32.679718],[102.197258,32.679692],[102.197259,32.679692],[102.197259,32.679692],[102.197279,32.679689],[102.197452,32.679664],[102.197612,32.679641],[102.197877,32.679609],[102.198142,32.679578],[102.198406,32.679547],[102.198664,32.679516],[102.198671,32.679515],[102.198685,32.679506],[102.198713,32.679487],[102.198745,32.679465],[102.198883,32.67937],[102.198924,32.679343],[102.199142,32.679109],[102.199221,32.678815],[102.199234,32.678399],[102.199224,32.678146],[102.199215,32.677893],[102.199152,32.677639],[102.19909,32.677386],[102.199091,32.677363],[102.199095,32.677215],[102.199098,32.677109],[102.199101,32.677035],[102.199101,32.677032],[102.199101,32.67703],[102.199215,32.676735],[102.199399,32.676502],[102.199687,32.6763],[102.19992,32.676142],[102.200154,32.675984],[102.200387,32.67584],[102.20062,32.675697],[102.200818,32.675553],[102.201016,32.675409],[102.201234,32.675206],[102.201398,32.675016],[102.201562,32.674826],[102.20182,32.674485],[102.202077,32.674145],[102.202335,32.673804],[102.202507,32.673576],[102.202515,32.673565],[102.202592,32.673463],[102.20266,32.673267],[102.202669,32.673238],[102.202747,32.673013],[102.202812,32.672825],[102.202824,32.672788],[102.202902,32.672563],[102.202979,32.672339],[102.203057,32.672114],[102.203134,32.671889],[102.20316,32.671815],[102.203161,32.67181],[102.203212,32.671664],[102.20335,32.67147],[102.203487,32.671277],[102.203625,32.671083],[102.203763,32.670889],[102.203901,32.670696],[102.204039,32.670502],[102.204111,32.6704],[102.204138,32.670363],[102.204177,32.670308],[102.204231,32.670233],[102.204315,32.670115],[102.204444,32.669924],[102.204486,32.669863],[102.204506,32.669832],[102.204573,32.669734],[102.204793,32.669471],[102.205023,32.669409],[102.205253,32.669348],[102.205483,32.669286],[102.205672,32.669235],[102.20569,32.669231],[102.205714,32.669224],[102.205744,32.669228],[102.20576,32.66923],[102.20603,32.669262],[102.206203,32.669354],[102.206408,32.669537],[102.206543,32.669733],[102.206678,32.66993],[102.20683,32.670141],[102.206982,32.670353],[102.207169,32.67055],[102.207357,32.670746],[102.207711,32.670927],[102.208064,32.671107],[102.208343,32.671202],[102.208621,32.671298],[102.208864,32.671407],[102.208992,32.671465],[102.20903,32.671481],[102.209107,32.671516],[102.209135,32.671534],[102.209452,32.671732],[102.209688,32.672064],[102.209853,32.672425],[102.209915,32.672708],[102.209976,32.672992],[102.210126,32.673263],[102.210276,32.673533],[102.210445,32.673745],[102.210615,32.673957],[102.210922,32.674231],[102.211266,32.674476],[102.211474,32.674585],[102.211682,32.674693],[102.212066,32.674791],[102.212451,32.674859],[102.212838,32.674853],[102.213225,32.674847],[102.213507,32.674823],[102.21372,32.674768],[102.213953,32.674677],[102.214006,32.674656],[102.214063,32.674633],[102.214156,32.674596],[102.214284,32.674546],[102.21429,32.674544],[102.214507,32.674371],[102.214653,32.674225],[102.214958,32.673909],[102.215263,32.673592],[102.215488,32.67336],[102.215569,32.673276],[102.215802,32.672945],[102.216035,32.672613],[102.216268,32.672281],[102.216467,32.672093],[102.216667,32.671904],[102.216899,32.67182],[102.216997,32.671784],[102.217086,32.671753],[102.217131,32.671736],[102.217178,32.671737],[102.217235,32.671739],[102.217301,32.671754],[102.217375,32.671771],[102.217514,32.671834],[102.217753,32.672047],[102.217906,32.672214],[102.218059,32.67238],[102.218212,32.672547],[102.218366,32.672714],[102.218536,32.672881],[102.218707,32.673048],[102.219019,32.673204],[102.219298,32.6733],[102.219578,32.673305],[102.219826,32.673266],[102.220074,32.673227],[102.220141,32.673191],[102.22016,32.673182],[102.220181,32.67317],[102.220367,32.673059],[102.220385,32.673048],[102.2204,32.673039],[102.220437,32.673017],[102.220468,32.672998],[102.220519,32.672952],[102.220638,32.672845],[102.220808,32.672691],[102.220978,32.672537],[102.221148,32.672383],[102.221318,32.67223],[102.221488,32.672076],[102.221658,32.671922],[102.22173,32.671857],[102.221811,32.671785],[102.221829,32.671769],[102.221914,32.671691],[102.221999,32.671615],[102.222169,32.671461],[102.222365,32.671276],[102.22256,32.67109],[102.222756,32.670904],[102.222924,32.670745],[102.222927,32.670742],[102.222952,32.670718],[102.223007,32.670666],[102.223012,32.670661],[102.223019,32.670655],[102.223148,32.670533],[102.223344,32.670347],[102.223539,32.670161],[102.223634,32.670072],[102.223638,32.670068],[102.223735,32.669975],[102.223931,32.66979],[102.223967,32.669756],[102.224127,32.669604],[102.224268,32.669406],[102.224409,32.669208],[102.22455,32.66901],[102.2246,32.668939],[102.22469,32.668811],[102.224787,32.668676],[102.224787,32.668676],[102.224831,32.668613],[102.224846,32.668592],[102.224847,32.668592],[102.224937,32.668465],[102.224972,32.668415],[102.225113,32.668217],[102.225254,32.668019],[102.225314,32.667935],[102.225385,32.667834],[102.225395,32.667821],[102.225455,32.667736],[102.225536,32.667623],[102.225677,32.667425],[102.225818,32.667226],[102.225959,32.667028],[102.226067,32.666876],[102.2261,32.66683],[102.226226,32.666786],[102.226476,32.666699],[102.226727,32.666611],[102.226977,32.666524],[102.227017,32.66651],[102.227019,32.666509],[102.227021,32.666508],[102.227131,32.66647],[102.227131,32.66647],[102.227227,32.666437],[102.227275,32.66642],[102.227478,32.666349],[102.227728,32.666262],[102.227959,32.66615],[102.228191,32.666038],[102.228422,32.665926],[102.228474,32.665901],[102.228622,32.665829],[102.228653,32.665814],[102.228885,32.665702],[102.229116,32.66559],[102.229347,32.665478],[102.229482,32.665413],[102.229578,32.665367],[102.22961,32.665345],[102.229931,32.665124],[102.230283,32.664881],[102.230636,32.664639],[102.230988,32.664396],[102.231336,32.664118],[102.231684,32.66384],[102.23187,32.66367],[102.232056,32.663501],[102.232307,32.663241],[102.232557,32.662981],[102.232708,32.662785],[102.232859,32.662589],[102.233011,32.662393],[102.233162,32.662197],[102.23326,32.661956],[102.233358,32.661715],[102.233456,32.661474],[102.233554,32.661233],[102.233652,32.660993],[102.23375,32.660752],[102.233827,32.660589],[102.233978,32.66041],[102.234128,32.660249],[102.234275,32.660191],[102.234689,32.660097],[102.234697,32.660097],[102.235077,32.660086],[102.235319,32.660101],[102.23556,32.660116],[102.235971,32.660146],[102.236211,32.660182],[102.236451,32.660218],[102.236738,32.660326],[102.237123,32.660437],[102.237431,32.660669],[102.237598,32.660795],[102.237738,32.6609],[102.237937,32.66112],[102.237992,32.661181],[102.238135,32.661339],[102.238299,32.661516],[102.238463,32.661693],[102.238518,32.661757],[102.238627,32.661881],[102.239059,32.661973],[102.239196,32.661976],[102.239375,32.661979],[102.239691,32.661935],[102.240007,32.661891],[102.240235,32.661548],[102.240375,32.661337],[102.240514,32.661126],[102.240653,32.660934],[102.240791,32.660743],[102.241041,32.660504],[102.241317,32.660223],[102.241564,32.660005],[102.24186,32.659846],[102.242227,32.659742],[102.242593,32.659638],[102.242907,32.659624],[102.243293,32.659674],[102.243703,32.659714],[102.244113,32.659754],[102.244367,32.659735],[102.244621,32.659716],[102.244875,32.659697],[102.245128,32.659678],[102.245382,32.659659],[102.245636,32.65964],[102.24589,32.659621],[102.246143,32.659603],[102.246397,32.659584],[102.246651,32.659565],[102.24691,32.659526],[102.247169,32.659487],[102.247294,32.659469],[102.247429,32.659449],[102.247688,32.65941],[102.247947,32.659371],[102.248207,32.659333],[102.248448,32.659348],[102.24869,32.659363],[102.248931,32.659389],[102.248993,32.659396],[102.249158,32.659414],[102.249171,32.659415],[102.249244,32.659443],[102.24927,32.659452],[102.249338,32.659478],[102.24944,32.659516],[102.249459,32.659523],[102.249744,32.659714],[102.249932,32.659882],[102.250121,32.660049],[102.250455,32.660219],[102.250887,32.660331],[102.251174,32.660321],[102.251226,32.660319],[102.251493,32.660263],[102.251551,32.660248],[102.251667,32.660218],[102.25175,32.660197],[102.252006,32.660131],[102.252282,32.659791],[102.252283,32.65979],[102.252283,32.65979],[102.252283,32.65979],[102.252303,32.659765],[102.252484,32.659539],[102.252559,32.659444],[102.252684,32.659288],[102.252692,32.659281],[102.252871,32.659129],[102.253058,32.658969],[102.253381,32.65869],[102.253626,32.658573],[102.253872,32.658456],[102.254117,32.658379],[102.254458,32.658345],[102.254771,32.658352],[102.255058,32.65846],[102.255273,32.658567],[102.255487,32.658674],[102.255846,32.658805],[102.256085,32.658892],[102.256317,32.658836],[102.256323,32.658834],[102.256374,32.658822],[102.256425,32.658809],[102.256549,32.658779],[102.256768,32.658723],[102.257032,32.658475],[102.257189,32.658328],[102.257296,32.658228],[102.257424,32.657985],[102.257503,32.657772],[102.257582,32.657559],[102.257618,32.657298],[102.257655,32.657036],[102.257691,32.656775],[102.257727,32.656513],[102.257764,32.656252],[102.2578,32.65599],[102.257849,32.655552],[102.257899,32.655113],[102.257979,32.654859],[102.25806,32.654606],[102.25814,32.654352],[102.258221,32.654099],[102.258374,32.653836],[102.258552,32.653554],[102.258801,32.653284],[102.25905,32.653013],[102.259234,32.652841],[102.259418,32.652669],[102.259601,32.652496],[102.259785,32.652324],[102.259969,32.652152],[102.260152,32.65198],[102.260353,32.651791],[102.260553,32.651601],[102.260739,32.651432],[102.260925,32.651262],[102.261238,32.650941],[102.261454,32.650719],[102.26155,32.65062],[102.261753,32.650319],[102.261801,32.650206],[102.261883,32.650015],[102.26194,32.64973],[102.261944,32.649587],[102.261947,32.649481],[102.261955,32.649232],[102.261962,32.648983],[102.26197,32.648734],[102.261978,32.648485],[102.261985,32.648236],[102.261993,32.647987],[102.262,32.647738],[102.262008,32.647489],[102.262015,32.64724],[102.262055,32.646812],[102.262095,32.646383],[102.262135,32.645954],[102.262174,32.645526],[102.262245,32.645271],[102.262315,32.645017],[102.262385,32.644762],[102.262455,32.644508],[102.262542,32.644276],[102.262629,32.644045],[102.262717,32.643813],[102.262804,32.643582],[102.263076,32.643257],[102.263347,32.642931],[102.263619,32.642606],[102.263926,32.642291],[102.264233,32.641976],[102.26447,32.641733],[102.26454,32.641661],[102.2647,32.641484],[102.264859,32.641307],[102.265019,32.64113],[102.265179,32.640952],[102.265338,32.640775],[102.265498,32.640598],[102.265542,32.640501],[102.265594,32.640386],[102.26569,32.640174],[102.265786,32.639962],[102.265881,32.63975],[102.265977,32.639538],[102.266073,32.639326],[102.266169,32.639114],[102.266265,32.638902],[102.266267,32.638842],[102.266302,32.638571],[102.266336,32.638301],[102.266371,32.638031],[102.266406,32.63776],[102.266485,32.637506],[102.266565,32.637251],[102.266788,32.636956],[102.266974,32.636689],[102.267087,32.63651],[102.267252,32.636348],[102.267417,32.636185],[102.267532,32.635948],[102.267683,32.635649],[102.267797,32.635441],[102.267879,32.635082],[102.267873,32.634841],[102.267867,32.634599],[102.267861,32.634358],[102.267855,32.634117],[102.267849,32.633876],[102.267846,32.633787],[102.267842,32.633635],[102.267836,32.633394],[102.26783,32.633153],[102.267787,32.632919],[102.267743,32.632685],[102.267699,32.632451],[102.267656,32.632217],[102.267612,32.631983],[102.267568,32.63175],[102.267525,32.631516],[102.267481,32.631282],[102.267437,32.631048],[102.267394,32.630814],[102.26735,32.63058],[102.267306,32.630346],[102.267236,32.630082],[102.267166,32.629819],[102.267095,32.629555],[102.267025,32.629292],[102.266955,32.629028],[102.266884,32.628764],[102.266814,32.628501],[102.266744,32.628237],[102.266673,32.627974],[102.266603,32.62771],[102.266504,32.627479],[102.266406,32.627248],[102.266307,32.627017],[102.266208,32.626786],[102.266109,32.626555],[102.266011,32.626324],[102.265912,32.626092],[102.265813,32.625861],[102.265715,32.62563],[102.265616,32.625399],[102.26548,32.625119],[102.26536,32.624869],[102.265239,32.62462],[102.265119,32.624371],[102.264998,32.624122],[102.264878,32.623873],[102.264757,32.623624],[102.264637,32.623375],[102.264516,32.623126],[102.264415,32.622702],[102.264411,32.6225],[102.264407,32.622298],[102.264416,32.622023],[102.264455,32.621787],[102.264495,32.62155],[102.264534,32.621314],[102.264574,32.621078],[102.264613,32.620841],[102.264653,32.620605],[102.264722,32.620354],[102.264792,32.620103],[102.264862,32.619851],[102.264932,32.6196],[102.265002,32.619349],[102.265072,32.619098],[102.265142,32.618847],[102.265212,32.618596],[102.265291,32.618346],[102.26537,32.618097],[102.265449,32.61785],[102.26545,32.617848],[102.265529,32.617599],[102.265599,32.617382],[102.265609,32.61735],[102.265688,32.617101],[102.265768,32.616852],[102.265847,32.616603],[102.265927,32.616353],[102.265969,32.616219],[102.266006,32.616104],[102.266065,32.61592],[102.266086,32.615855],[102.266165,32.615606],[102.266225,32.615369],[102.266285,32.615132],[102.266345,32.614895],[102.266405,32.614658],[102.266413,32.614375],[102.266422,32.614092],[102.266449,32.613882],[102.266515,32.613725],[102.26657,32.613593],[102.26671,32.61341],[102.266851,32.613227],[102.267085,32.612876],[102.267319,32.612525],[102.267553,32.612175],[102.267591,32.61211],[102.267694,32.611935],[102.267817,32.611663],[102.267844,32.611388],[102.267858,32.610968],[102.267849,32.610612],[102.267839,32.610256],[102.267782,32.610022],[102.267725,32.609788],[102.267668,32.609554],[102.267611,32.609321],[102.267554,32.609087],[102.267497,32.608853],[102.26744,32.608619],[102.267383,32.608385],[102.267347,32.608239],[102.267341,32.608213],[102.267326,32.608151],[102.267269,32.607917],[102.26721,32.607683],[102.267176,32.607548],[102.267151,32.607448],[102.267092,32.607214],[102.267078,32.607156],[102.267068,32.607116],[102.267051,32.607047],[102.267034,32.606979],[102.266876,32.60665],[102.266719,32.606321],[102.26651,32.605944],[102.266282,32.605558],[102.266053,32.605171],[102.265759,32.604878],[102.265747,32.604865],[102.26544,32.604559],[102.265134,32.604253],[102.264827,32.603947],[102.264652,32.603784],[102.264478,32.60362],[102.264303,32.603457],[102.264129,32.603294],[102.263954,32.603131],[102.263779,32.602968],[102.263605,32.602805],[102.26343,32.602642],[102.263256,32.602479],[102.263081,32.602316],[102.262907,32.602152],[102.262732,32.601989],[102.262557,32.601826],[102.262383,32.601663],[102.262203,32.601518],[102.262105,32.601439],[102.262024,32.601374],[102.261845,32.601229],[102.261665,32.601084],[102.261486,32.60094],[102.261447,32.600908],[102.261413,32.600881],[102.261306,32.600795],[102.261127,32.60065],[102.260948,32.600505],[102.260768,32.600361],[102.260589,32.600216],[102.260433,32.600037],[102.260277,32.599859],[102.260122,32.59968],[102.259966,32.599501],[102.25981,32.599323],[102.259654,32.599144],[102.259499,32.598965],[102.259343,32.598787],[102.259187,32.598608],[102.259031,32.598429],[102.259009,32.598404],[102.258875,32.598251],[102.258869,32.598243],[102.258838,32.598207],[102.25872,32.598072],[102.258552,32.597914],[102.258385,32.597757],[102.258266,32.597552],[102.258147,32.597347],[102.258065,32.596958],[102.258045,32.59669],[102.258027,32.596454],[102.258025,32.596424],[102.258025,32.596423],[102.258026,32.596418],[102.258047,32.596314],[102.25805,32.596301],[102.258054,32.596284],[102.258077,32.596171],[102.25813,32.595918],[102.258182,32.595666],[102.258235,32.595413],[102.258287,32.595161],[102.25834,32.594908],[102.258461,32.59448],[102.258582,32.594051],[102.258704,32.593623],[102.258808,32.593407],[102.258913,32.593191],[102.259017,32.592974],[102.259046,32.592916],[102.259122,32.592758],[102.259226,32.592542],[102.259331,32.592326],[102.259435,32.59211],[102.25954,32.591894],[102.259644,32.591678],[102.259749,32.591462],[102.259894,32.591109],[102.259904,32.59109],[102.260057,32.590806],[102.260157,32.590662],[102.260317,32.590424],[102.260466,32.590248],[102.260615,32.590073],[102.260775,32.589866],[102.260993,32.589596],[102.261173,32.589373],[102.261314,32.589134],[102.261458,32.588829],[102.261544,32.588507],[102.261591,32.5882],[102.261618,32.587934],[102.261646,32.587667],[102.261674,32.587401],[102.261702,32.587135],[102.261665,32.586895],[102.261629,32.586656],[102.261593,32.586417],[102.261557,32.586177],[102.261478,32.585957],[102.261398,32.585737],[102.261319,32.585517],[102.261239,32.585297],[102.261117,32.584922],[102.261069,32.584613],[102.261078,32.58429],[102.261106,32.583999],[102.261134,32.583773],[102.261137,32.583643],[102.261177,32.583451],[102.261181,32.583434],[102.261225,32.58329],[102.261305,32.58313],[102.261506,32.582827],[102.261648,32.582571],[102.261828,32.582316],[102.261969,32.582076],[102.262076,32.581739],[102.262165,32.581336],[102.262254,32.580934],[102.262343,32.580532],[102.26239,32.580089],[102.262438,32.579647],[102.262486,32.579205],[102.262534,32.578762],[102.262581,32.57832],[102.262596,32.578248],[102.262631,32.578083],[102.26268,32.577847],[102.26273,32.57761],[102.26278,32.577374],[102.262829,32.577137],[102.262879,32.5769],[102.262928,32.576664],[102.262978,32.576427],[102.263027,32.57619],[102.263077,32.575954],[102.263101,32.575825],[102.263176,32.575543],[102.263252,32.575262],[102.263436,32.574876],[102.263637,32.574565],[102.263838,32.574254],[102.264017,32.574016],[102.264361,32.57374],[102.264704,32.573464],[102.264939,32.573316],[102.265173,32.573167],[102.265407,32.573018],[102.265641,32.572869],[102.265875,32.572721],[102.26611,32.572572],[102.266339,32.572427],[102.266568,32.572283],[102.266797,32.572138],[102.267026,32.571993],[102.267255,32.571848],[102.267484,32.571703],[102.267693,32.571619],[102.267901,32.571534],[102.268109,32.57145],[102.268318,32.571365],[102.26865,32.571178],[102.26894,32.571039],[102.269163,32.570939],[102.269387,32.570838],[102.269621,32.57069],[102.269855,32.570541],[102.270089,32.570393],[102.270323,32.570245],[102.270501,32.570083],[102.270678,32.569921],[102.270855,32.569759],[102.271033,32.569597],[102.27121,32.569435],[102.271388,32.569273],[102.271565,32.569111],[102.271743,32.568948],[102.271928,32.568801],[102.272112,32.568653],[102.272297,32.568506],[102.272482,32.568358],[102.272666,32.56821],[102.272851,32.568063],[102.273036,32.567915],[102.273221,32.567768],[102.273431,32.567594],[102.273642,32.567421],[102.273853,32.567247],[102.274064,32.567074],[102.274226,32.566904],[102.274388,32.566735],[102.274551,32.566565],[102.274713,32.566395],[102.274875,32.566226],[102.275037,32.566056],[102.275199,32.565886],[102.275362,32.565716],[102.275524,32.565547],[102.275686,32.565377],[102.275851,32.565215],[102.276016,32.565052],[102.276181,32.56489],[102.276346,32.564728],[102.276511,32.564565],[102.276676,32.564403],[102.276842,32.564241],[102.277007,32.564078],[102.277216,32.563916],[102.277425,32.563753],[102.277634,32.56359],[102.277843,32.563427],[102.278052,32.563264],[102.278261,32.563102],[102.278454,32.562973],[102.278647,32.562845],[102.278839,32.562717],[102.279032,32.562589],[102.279225,32.562461],[102.279417,32.562333],[102.279681,32.562161],[102.279944,32.561989],[102.280204,32.561622],[102.280326,32.561398],[102.280469,32.561125],[102.280572,32.560853],[102.280638,32.560564],[102.280704,32.560306],[102.280732,32.559967],[102.280743,32.559626],[102.280735,32.559354],[102.280734,32.559302],[102.28066,32.559042],[102.280587,32.558782],[102.280513,32.558521],[102.28044,32.558261],[102.280329,32.558042],[102.280317,32.558018],[102.280218,32.557823],[102.280107,32.557604],[102.279996,32.557385],[102.279885,32.557166],[102.279774,32.556947],[102.279663,32.556729],[102.279553,32.55651],[102.279485,32.556233],[102.279419,32.555891],[102.279425,32.555666],[102.279491,32.555408],[102.279593,32.555151],[102.279795,32.554799],[102.279918,32.554559],[102.28004,32.554383],[102.280276,32.554146],[102.280501,32.554005],[102.280726,32.553863],[102.280951,32.553722],[102.281177,32.55358],[102.281402,32.553439],[102.281627,32.553297],[102.281853,32.553156],[102.282078,32.553014],[102.282303,32.552873],[102.282528,32.552731],[102.282754,32.55259],[102.282979,32.552448],[102.283204,32.552307],[102.283348,32.552217],[102.28343,32.552165],[102.283677,32.552057],[102.283839,32.551986],[102.283924,32.551949],[102.283953,32.551937],[102.284171,32.551841],[102.284418,32.551733],[102.284666,32.551625],[102.284913,32.551517],[102.28516,32.55141],[102.285407,32.551302],[102.285756,32.551163],[102.286105,32.551025],[102.286453,32.550887],[102.286742,32.550829],[102.28703,32.55077],[102.287376,32.550753],[102.287721,32.550736],[102.287962,32.550693],[102.288203,32.550649],[102.2884,32.550609],[102.288978,32.55096],[102.289086,32.551026],[102.289096,32.551032],[102.289111,32.551039],[102.289115,32.551044],[102.289186,32.551087],[102.290274,32.551748],[102.292411,32.552783],[102.292504,32.552828],[102.29276,32.552991],[102.293699,32.553591],[102.294988,32.554134],[102.296448,32.554755],[102.298365,32.554649],[102.300189,32.554762],[102.301324,32.554639],[102.302104,32.554729],[102.302954,32.555411],[102.304401,32.556473],[102.306281,32.557619],[102.307993,32.55854],[102.309784,32.559757],[102.310799,32.560737],[102.312079,32.561575],[102.314074,32.561765],[102.31669,32.5616],[102.318094,32.561187],[102.319668,32.560926],[102.321407,32.560963],[102.322418,32.560466],[102.322485,32.560433],[102.322555,32.560398],[102.322969,32.560219],[102.323031,32.560192],[102.323525,32.559977],[102.323552,32.559976],[102.323697,32.559917],[102.323706,32.559915],[102.32385,32.559884],[102.323856,32.559882],[102.324016,32.559867],[102.32406,32.559863],[102.324067,32.559862],[102.324288,32.559863],[102.324574,32.559872],[102.324613,32.559874],[102.324932,32.559491],[102.325323,32.558026],[102.326171,32.555833],[102.326524,32.555242],[102.32676,32.554848],[102.326793,32.554865],[102.326831,32.554874],[102.326996,32.554451],[102.327033,32.554427],[102.327067,32.554405],[102.328045,32.553776],[102.328214,32.553667],[102.32853,32.553583],[102.328755,32.553524],[102.328977,32.553487],[102.329052,32.553474],[102.329113,32.553464],[102.33093,32.553798],[102.331867,32.553762],[102.332677,32.55284],[102.333546,32.55214],[102.334344,32.551659],[102.336023,32.552248],[102.33634,32.552322],[102.336358,32.552326],[102.336378,32.552331],[102.336436,32.552345],[102.33656,32.552374],[102.336584,32.552379],[102.336695,32.552405],[102.336849,32.552441],[102.337578,32.552612],[102.337747,32.552734],[102.338165,32.553037],[102.338258,32.553062],[102.338364,32.553181],[102.338472,32.553259],[102.33851,32.553287],[102.3386,32.553352],[102.33868,32.553364],[102.340021,32.553555],[102.34042,32.553612],[102.340496,32.553624],[102.340656,32.553649],[102.340686,32.553653],[102.340766,32.553666],[102.341371,32.55376],[102.343833,32.554143],[102.344319,32.554218],[102.345357,32.55438],[102.345758,32.554485],[102.345826,32.554502],[102.345829,32.554503],[102.34583,32.554504],[102.345877,32.554516],[102.346591,32.554702],[102.346649,32.554718],[102.346683,32.554727],[102.346714,32.554735],[102.346736,32.55474],[102.346762,32.554785],[102.346801,32.554847],[102.34683,32.554943],[102.346816,32.55505],[102.349894,32.555709],[102.349823,32.555859],[102.349919,32.55586],[102.349923,32.55586],[102.349925,32.555861],[102.349986,32.555876],[102.349987,32.555876],[102.349991,32.555878],[102.349991,32.555878],[102.35,32.555883],[102.349989,32.555919],[102.349878,32.556201],[102.349798,32.556311],[102.349759,32.556404],[102.349703,32.55654],[102.349695,32.556553],[102.349512,32.556771],[102.349418,32.556897],[102.349318,32.557032],[102.349231,32.55715],[102.349142,32.557271],[102.349038,32.557411],[102.348932,32.557554],[102.348847,32.55767],[102.348749,32.557802],[102.348666,32.557914],[102.348583,32.558026],[102.348522,32.558109],[102.348425,32.558238],[102.348367,32.558314],[102.346041,32.561381],[102.346003,32.56141],[102.345821,32.561634],[102.345548,32.561984],[102.345343,32.562247],[102.345385,32.562283],[102.345399,32.562296],[102.345415,32.56231],[102.345486,32.562374],[102.34583,32.56268],[102.345982,32.56263],[102.34695,32.562316],[102.347883,32.561673],[102.348553,32.561079],[102.349333,32.561206],[102.349438,32.561272],[102.349447,32.561278],[102.349503,32.561313],[102.352248,32.563027],[102.354179,32.563897],[102.3566,32.564735],[102.358537,32.565397],[102.360432,32.565851],[102.361909,32.565818],[102.362341,32.565808],[102.363617,32.565669],[102.36504,32.565492],[102.366579,32.564737],[102.367625,32.564096],[102.369078,32.562925],[102.36994,32.561866],[102.370662,32.560597],[102.371375,32.559618],[102.371833,32.559007],[102.372095,32.558432],[102.371835,32.557267],[102.371419,32.55643],[102.37106,32.555345],[102.371336,32.554274],[102.371367,32.553198],[102.371143,32.552489],[102.371114,32.551825],[102.371133,32.551163],[102.370768,32.550244],[102.370621,32.548584],[102.370863,32.547015],[102.371485,32.545785],[102.371856,32.544799],[102.37271,32.54403],[102.373359,32.543588],[102.374689,32.543243],[102.37572,32.542705],[102.374962,32.542285],[102.373745,32.541235],[102.373035,32.540443],[102.372261,32.539308],[102.371856,32.538088],[102.371844,32.537249],[102.372117,32.536696],[102.372542,32.535959],[102.373334,32.535199],[102.37504,32.534551],[102.376016,32.533795],[102.376584,32.533185],[102.377136,32.531861],[102.377549,32.530254],[102.377631,32.528702],[102.377972,32.527063],[102.377871,32.525476],[102.377822,32.524668],[102.378211,32.523868],[102.379417,32.522775],[102.380539,32.522021],[102.381558,32.521017],[102.382207,32.52013],[102.382852,32.519367],[102.383332,32.51801],[102.383771,32.516776],[102.383657,32.515655],[102.383724,32.5146],[102.383698,32.512953],[102.383621,32.511833],[102.383438,32.510556],[102.383064,32.509554],[102.382738,32.508149],[102.382615,32.507307],[102.383365,32.506733],[102.385074,32.50596],[102.38572,32.505197],[102.387068,32.5042],[102.388941,32.502841],[102.390805,32.501761],[102.39145,32.500998],[102.392357,32.500053],[102.39345,32.49902],[102.394946,32.49672],[102.395597,32.495771],[102.396198,32.495255],[102.39755,32.494134],[102.398591,32.493627],[102.39955,32.493429],[102.401838,32.492886],[102.403426,32.492484],[102.404943,32.492018],[102.406641,32.491587],[102.408235,32.490968],[102.409793,32.490316],[102.410346,32.490203],[102.4104,32.490262],[102.411555,32.491533],[102.412076,32.492538],[102.412626,32.493823],[102.413291,32.494893],[102.414039,32.495654],[102.414671,32.49663],[102.415415,32.497547],[102.416129,32.498214],[102.41708,32.498295],[102.417991,32.498501],[102.418382,32.498912],[102.419134,32.499549],[102.419839,32.500527],[102.420953,32.501327],[102.421837,32.502463],[102.422733,32.503165],[102.423334,32.503954],[102.423749,32.504832],[102.424621,32.506404],[102.425108,32.507315],[102.425522,32.508224],[102.425981,32.508855],[102.426506,32.509704],[102.426945,32.509744],[102.427608,32.509634],[102.428243,32.509243],[102.429025,32.508824],[102.429867,32.508841],[102.430677,32.508733],[102.431598,32.508597],[102.432183,32.50864],[102.432931,32.509401],[102.43312,32.509575],[102.433824,32.510227],[102.433868,32.510285],[102.434672,32.511362],[102.435728,32.512906],[102.436284,32.514005],[102.436475,32.515003],[102.43655,32.516247],[102.436476,32.51755],[102.436642,32.518175],[102.437275,32.51912],[102.438334,32.520571],[102.438827,32.521264],[102.439554,32.522802],[102.440397,32.524124],[102.441493,32.525544],[102.44224,32.526367],[102.443353,32.528502],[102.443733,32.529318],[102.444486,32.529924],[102.445242,32.530436],[102.445887,32.530977],[102.446146,32.532194],[102.446018,32.534118],[102.445949,32.535266],[102.445777,32.536164],[102.445894,32.537191],[102.446332,32.538567],[102.446959,32.53973],[102.448003,32.541739],[102.448533,32.542433],[102.448991,32.543126],[102.449447,32.54385],[102.449856,32.544946],[102.450201,32.54573],[102.451184,32.547272],[102.451482,32.547123],[102.452302,32.546642],[102.453052,32.546067],[102.454127,32.545685],[102.455121,32.54555],[102.456446,32.54539],[102.457791,32.545821],[102.458958,32.546062],[102.459078,32.546094],[102.460086,32.546365],[102.463179,32.547266],[102.4643,32.547848],[102.46605,32.548225],[102.467287,32.548592],[102.468744,32.548963],[102.470299,32.54974],[102.471013,32.550438],[102.472159,32.551424],[102.473065,32.551846],[102.47367,32.55248],[102.474416,32.553365],[102.475829,32.553983],[102.476735,32.554374],[102.477734,32.554084],[102.478815,32.553484],[102.479813,32.553193],[102.480878,32.553153],[102.481977,32.553206],[102.483219,32.553417],[102.484481,32.554188],[102.485368,32.555262],[102.486081,32.555991],[102.487423,32.556546],[102.489647,32.557056],[102.491842,32.557256],[102.492686,32.557272],[102.494116,32.557301],[102.495354,32.557636],[102.496292,32.558183],[102.496792,32.55869],[102.497559,32.558799],[102.49861,32.559286],[102.499293,32.559765],[102.500186,32.560653],[102.500606,32.561157],[102.501691,32.561911],[102.502444,32.562496],[102.503587,32.562885],[102.504697,32.562744],[102.506481,32.562576],[102.507486,32.562718],[102.50877,32.563232],[102.510436,32.563876],[102.511419,32.564832],[102.512154,32.566068],[102.512405,32.566541],[102.512657,32.567015],[102.51295,32.567733],[102.513242,32.568451],[102.514165,32.571605],[102.514792,32.573286],[102.515348,32.57403],[102.515912,32.57453],[102.516473,32.574236],[102.517034,32.573942],[102.517669,32.573588],[102.518304,32.573234],[102.519256,32.572703],[102.520208,32.572172],[102.521015,32.571679],[102.521822,32.571186],[102.522416,32.570587],[102.523355,32.569669],[102.5254,32.568732],[102.526094,32.569723],[102.526843,32.570471],[102.527781,32.571344],[102.529045,32.572591],[102.530168,32.573712],[102.530854,32.574988],[102.531133,32.575374],[102.531688,32.576144],[102.532809,32.577347],[102.534077,32.578471],[102.535204,32.579471],[102.536107,32.579855],[102.537194,32.580568],[102.539476,32.581509],[102.540609,32.582305],[102.541491,32.583462],[102.541791,32.583844],[102.54218,32.584338],[102.542467,32.584703],[102.543554,32.585416],[102.544673,32.5867],[102.54536,32.587976],[102.545678,32.588996],[102.545921,32.590114],[102.545948,32.591135],[102.546462,32.592397],[102.54731,32.593434],[102.548332,32.59415],[102.549407,32.594913],[102.549878,32.595711],[102.550069,32.596782],[102.550293,32.598595],[102.550447,32.59897],[102.550905,32.600277],[102.551303,32.60177],[102.551884,32.60257],[102.552908,32.603193],[102.554367,32.603963],[102.555829,32.604595],[102.556955,32.605545],[102.557915,32.606495],[102.557927,32.607061],[102.557933,32.607364],[102.557939,32.607651],[102.559003,32.608832],[102.559016,32.609776],[102.559021,32.610177],[102.559138,32.611041],[102.559204,32.611526],[102.55848,32.612442],[102.558409,32.612531],[102.557392,32.613671],[102.556752,32.615004],[102.556441,32.61639],[102.555649,32.617302],[102.554907,32.618354],[102.554006,32.619265],[102.552711,32.620455],[102.552375,32.620764],[102.550863,32.62194],[102.550262,32.621882],[102.548618,32.62185],[102.546576,32.622367],[102.544679,32.623582],[102.543939,32.624588],[102.542642,32.625908],[102.540786,32.627635],[102.539552,32.628631],[102.537873,32.629897],[102.536416,32.631074],[102.535564,32.632125],[102.534097,32.633673],[102.53276,32.634435],[102.530926,32.635327],[102.529309,32.636316],[102.52798,32.6368],[102.527296,32.63776],[102.526438,32.639042],[102.525754,32.640003],[102.524899,32.641192],[102.523992,32.642241],[102.523307,32.643248],[102.521664,32.645164],[102.520916,32.646448],[102.520448,32.647506],[102.52031,32.648524],[102.520001,32.64977],[102.519915,32.650928],[102.519496,32.652172],[102.519503,32.653935],[102.519855,32.655056],[102.51988,32.65512],[102.520021,32.655484],[102.520043,32.65554],[102.52047,32.656645],[102.520796,32.658739],[102.521132,32.660462],[102.521262,32.661717],[102.521115,32.663059],[102.521091,32.66394],[102.521381,32.665338],[102.521565,32.66664],[102.522027,32.667118],[102.522782,32.668224],[102.523542,32.669141],[102.524245,32.670104],[102.52453,32.670541],[102.524742,32.670868],[102.525214,32.671594],[102.525301,32.672498],[102.525806,32.674549],[102.525959,32.675027],[102.526549,32.676878],[102.526578,32.676968],[102.526736,32.677462],[102.527029,32.678396],[102.5272,32.678942],[102.527282,32.679131],[102.527495,32.679618],[102.527779,32.68027],[102.527947,32.680656],[102.528097,32.681001],[102.52822,32.681302],[102.528275,32.681436],[102.528298,32.681492],[102.528939,32.683058],[102.529464,32.68435],[102.529523,32.684686],[102.529572,32.684969],[102.529755,32.686017],[102.52993,32.687429],[102.529948,32.68758],[102.529975,32.687791],[102.529975,32.687791],[102.529985,32.687872],[102.530726,32.689501],[102.530923,32.689729],[102.531977,32.690949],[102.533055,32.69229],[102.533356,32.692665],[102.533876,32.693312],[102.534739,32.69445],[102.535047,32.694857],[102.535447,32.695384],[102.535735,32.696639],[102.535783,32.696847],[102.535798,32.696909],[102.536601,32.698301],[102.535597,32.698092],[102.534147,32.697731],[102.531396,32.697772],[102.53041,32.697799],[102.529879,32.697813],[102.528949,32.697838],[102.527351,32.697882],[102.526799,32.697831],[102.526433,32.697797],[102.525392,32.697701],[102.523367,32.697851],[102.523164,32.697857],[102.523039,32.697861],[102.519425,32.697971],[102.518648,32.697995],[102.518122,32.698068],[102.517859,32.698104],[102.517796,32.698112],[102.517796,32.698113],[102.517795,32.698113],[102.517768,32.698116],[102.517738,32.698121],[102.517212,32.698193],[102.517204,32.698194],[102.517151,32.698202],[102.517149,32.698202],[102.51627,32.698323],[102.516141,32.698341],[102.515943,32.698368],[102.515786,32.698361],[102.515777,32.69836],[102.515754,32.698359],[102.515608,32.698352],[102.515484,32.698346],[102.515438,32.698344],[102.515414,32.698343],[102.514305,32.69829],[102.514262,32.698288],[102.513131,32.69821],[102.512285,32.698152],[102.511348,32.698088],[102.511166,32.698065],[102.509502,32.697861],[102.509215,32.697769],[102.507934,32.69736],[102.507444,32.697203],[102.506688,32.696966],[102.50583,32.696696],[102.505234,32.696437],[102.503889,32.695851],[102.500492,32.69406],[102.500386,32.693993],[102.500211,32.693882],[102.499525,32.693627],[102.499003,32.69334],[102.497618,32.693278],[102.497331,32.693371],[102.496712,32.693571],[102.496321,32.69363],[102.495114,32.693815],[102.493923,32.694136],[102.492317,32.694655],[102.491319,32.695325],[102.49061,32.695897],[102.490429,32.696549],[102.490532,32.698391],[102.49058,32.698415],[102.490842,32.699282],[102.490906,32.699904],[102.491016,32.701804],[102.491064,32.702137],[102.49109,32.702322],[102.491104,32.702415],[102.491175,32.702907],[102.491183,32.702962],[102.491255,32.703464],[102.491399,32.704139],[102.491543,32.704815],[102.491631,32.705317],[102.491719,32.705819],[102.492025,32.706549],[102.492331,32.707279],[102.492622,32.707803],[102.492914,32.708326],[102.493385,32.708991],[102.493856,32.709655],[102.494348,32.710286],[102.49484,32.710917],[102.495136,32.711285],[102.495432,32.711653],[102.495767,32.712073],[102.496102,32.712494],[102.496531,32.71321],[102.496959,32.713925],[102.49707,32.714359],[102.49718,32.714792],[102.497412,32.715245],[102.497644,32.715698],[102.497995,32.716291],[102.498345,32.716885],[102.498375,32.717282],[102.498405,32.717679],[102.498409,32.718248],[102.498414,32.718818],[102.498422,32.719266],[102.49843,32.719715],[102.498577,32.720269],[102.498725,32.720824],[102.498832,32.721361],[102.49894,32.721898],[102.499112,32.722315],[102.499284,32.722732],[102.499438,32.723063],[102.499592,32.723394],[102.499828,32.723692],[102.500065,32.72399],[102.500346,32.724151],[102.500627,32.724311],[102.50109,32.725033],[102.501553,32.725754],[102.501973,32.72643],[102.502393,32.727106],[102.502505,32.727813],[102.502617,32.728519],[102.502643,32.72915],[102.502669,32.729781],[102.502666,32.729885],[102.502664,32.729988],[102.502662,32.730055],[102.502637,32.730957],[102.502601,32.732227],[102.502609,32.732461],[102.502644,32.733493],[102.502649,32.733637],[102.5027,32.733757],[102.502777,32.733942],[102.503308,32.735207],[102.503789,32.737993],[102.503744,32.739619],[102.503859,32.740319],[102.50403,32.741365],[102.504039,32.741419],[102.504047,32.741937],[102.504051,32.742242],[102.504056,32.742587],[102.504698,32.744352],[102.505915,32.746712],[102.50593,32.746729],[102.507251,32.748257],[102.507493,32.748537],[102.507648,32.748691],[102.507986,32.749029],[102.508823,32.749863],[102.50903,32.750069],[102.510096,32.7508],[102.510977,32.751402],[102.513051,32.752819],[102.515087,32.754152],[102.516244,32.755135],[102.516861,32.756023],[102.517078,32.757112],[102.517079,32.758864],[102.516983,32.76053],[102.517102,32.761576],[102.517273,32.762538],[102.517578,32.764004],[102.516656,32.765196],[102.515981,32.766392],[102.515761,32.76718],[102.515443,32.767967],[102.514966,32.769167],[102.514105,32.771694],[102.513882,32.772608],[102.513609,32.773562],[102.513343,32.774527],[102.51306,32.775553],[102.512259,32.77764],[102.512186,32.777831],[102.512155,32.777913],[102.511574,32.779277],[102.510617,32.78036],[102.510271,32.780752],[102.510266,32.780757],[102.510201,32.78083],[102.510197,32.780835],[102.510189,32.780844],[102.510189,32.780845],[102.510189,32.780845],[102.510189,32.780845],[102.510178,32.780858],[102.510073,32.780984],[102.510024,32.781043],[102.510009,32.781062],[102.510009,32.781062],[102.510009,32.781062],[102.509912,32.781178],[102.50989,32.781205],[102.509817,32.781214],[102.509771,32.78122],[102.509279,32.781286],[102.5088,32.78135],[102.508286,32.781517],[102.508275,32.78152],[102.508199,32.781545],[102.508198,32.781545],[102.508188,32.781549],[102.507953,32.781625],[102.507932,32.781638],[102.507897,32.781662],[102.507803,32.781723],[102.507766,32.781748],[102.5074,32.781989],[102.507134,32.782651],[102.507301,32.783739],[102.508457,32.784805],[102.51011,32.785714],[102.510517,32.786236],[102.510549,32.786278],[102.510969,32.786816],[102.510992,32.787734],[102.510518,32.788809],[102.510266,32.789151],[102.509851,32.789713],[102.50972,32.789768],[102.509469,32.789874],[102.509383,32.789911],[102.509337,32.78993],[102.509164,32.790003],[102.509001,32.790072],[102.508743,32.79008],[102.50869,32.790082],[102.508606,32.790085],[102.508393,32.790092],[102.50821,32.790098],[102.508191,32.79008],[102.507873,32.789799],[102.507965,32.789429],[102.508047,32.789097],[102.508079,32.78897],[102.50812,32.788804],[102.508151,32.788678],[102.508389,32.788239],[102.508444,32.788136],[102.50862,32.787812],[102.508552,32.787428],[102.508526,32.787282],[102.508449,32.786849],[102.507623,32.786374],[102.506392,32.786224],[102.50592,32.786141],[102.505311,32.786035],[102.504282,32.785765],[102.504006,32.78575],[102.503785,32.785738],[102.503049,32.785698],[102.501936,32.786064],[102.501923,32.786069],[102.501884,32.786081],[102.501853,32.786092],[102.501849,32.786096],[102.501844,32.7861],[102.501785,32.786155],[102.501756,32.786183],[102.5015,32.786423],[102.50146,32.786461],[102.501361,32.786554],[102.501244,32.786663],[102.501171,32.786828],[102.500958,32.787305],[102.500876,32.78749],[102.500866,32.78783],[102.50085,32.788408],[102.500847,32.788526],[102.500834,32.788964],[102.500832,32.789058],[102.500825,32.789283],[102.500816,32.789612],[102.500808,32.789908],[102.500871,32.790208],[102.500526,32.790463],[102.499896,32.790929],[102.499671,32.79104],[102.499216,32.791264],[102.499195,32.791265],[102.498545,32.791294],[102.497803,32.791083],[102.497119,32.790656],[102.496484,32.790294],[102.496227,32.790781],[102.496206,32.790821],[102.496141,32.790943],[102.495977,32.791253],[102.495958,32.79129],[102.495957,32.791291],[102.495942,32.79132],[102.495743,32.791696],[102.495741,32.791699],[102.495701,32.791776],[102.495681,32.791814],[102.495664,32.791847],[102.495631,32.791908],[102.495601,32.791966],[102.495368,32.792407],[102.495357,32.79243],[102.495353,32.792439],[102.495339,32.792471],[102.495326,32.792499],[102.495311,32.792533],[102.495295,32.792567],[102.494921,32.793398],[102.494913,32.793415],[102.4949,32.793443],[102.494882,32.793483],[102.494849,32.793556],[102.494832,32.793593],[102.492391,32.799006],[102.492233,32.799358],[102.49192,32.800476],[102.491908,32.80052],[102.491803,32.800895],[102.491777,32.801788],[102.492419,32.802825],[102.493538,32.804306],[102.493553,32.80433],[102.494254,32.805432],[102.495026,32.80679],[102.495057,32.806843],[102.495058,32.806845],[102.495059,32.806847],[102.495091,32.806903],[102.495094,32.806909],[102.495557,32.807723],[102.496219,32.808956],[102.497089,32.810106],[102.497608,32.810922],[102.498223,32.81198],[102.498437,32.812638],[102.498573,32.813294],[102.498883,32.814215],[102.499278,32.814855],[102.49959,32.815689],[102.499831,32.816281],[102.500433,32.816903],[102.500655,32.817166],[102.501321,32.817952],[102.501299,32.818746],[102.501091,32.819456],[102.500798,32.819848],[102.500413,32.820158],[102.500339,32.820256],[102.500151,32.820513],[102.49959,32.821199],[102.498942,32.82221],[102.498588,32.8229],[102.498463,32.82366],[102.498227,32.824722],[102.498076,32.825525],[102.4977,32.82604],[102.497083,32.826899],[102.495954,32.829005],[102.495721,32.829684],[102.495588,32.830294],[102.495507,32.830836],[102.495287,32.832198],[102.495258,32.833215],[102.495307,32.834429],[102.495517,32.835172],[102.495487,32.835659],[102.49553,32.836469],[102.495488,32.836897],[102.495484,32.836942],[102.495393,32.837247],[102.495116,32.837687],[102.494919,32.838241],[102.49473,32.839101],[102.494596,32.839754],[102.494555,32.840302],[102.494771,32.840636],[102.495224,32.841623],[102.495537,32.842264],[102.495721,32.842674],[102.496027,32.843048],[102.496249,32.843674],[102.496327,32.84412],[102.496437,32.84449],[102.496502,32.84486],[102.496385,32.845276],[102.495856,32.8459],[102.494546,32.847029],[102.49356,32.847885],[102.492679,32.848706],[102.491861,32.849463],[102.490759,32.850338],[102.490281,32.850567],[102.489742,32.850826],[102.48862,32.851531],[102.487537,32.852254],[102.486855,32.85272],[102.486127,32.852953],[102.485238,32.853184],[102.484649,32.853194],[102.484003,32.853362],[102.483244,32.85373],[102.481971,32.854314],[102.481052,32.854679],[102.480214,32.854978],[102.479001,32.855337],[102.478111,32.85559],[102.477274,32.855889],[102.476142,32.856205],[102.475173,32.856433],[102.474545,32.856895],[102.474161,32.857282],[102.473931,32.857514],[102.473231,32.858282],[102.47278,32.859116],[102.472702,32.859232],[102.472222,32.859947],[102.471984,32.860785],[102.471528,32.861768],[102.470434,32.863912],[102.469976,32.864956],[102.469819,32.865465],[102.469365,32.866388],[102.469019,32.867284],[102.468038,32.869159],[102.467217,32.870467],[102.466829,32.871572],[102.466809,32.872264],[102.466789,32.872955],[102.466629,32.873584],[102.466434,32.874182],[102.465427,32.875726],[102.464908,32.876407],[102.464274,32.877387],[102.463539,32.878155],[102.463198,32.87887],[102.463072,32.879529],[102.463009,32.880491],[102.463611,32.881887],[102.463871,32.882795],[102.46356,32.883691],[102.463218,32.884437],[102.463022,32.885034],[102.462597,32.886199],[102.462401,32.886827],[102.462111,32.886972],[102.461397,32.887017],[102.460608,32.887152],[102.460165,32.887684],[102.459612,32.888305],[102.459053,32.889166],[102.458239,32.890203],[102.45739,32.891208],[102.45657,32.892425],[102.456305,32.892992],[102.456412,32.894227],[102.456252,32.89609],[102.456064,32.89765],[102.456207,32.898887],[102.456001,32.902145],[102.456122,32.903515],[102.456031,32.904303],[102.455844,32.905262],[102.455799,32.905636],[102.455754,32.906011],[102.45571,32.906751],[102.455666,32.907492],[102.455584,32.907943],[102.455503,32.908393],[102.455421,32.908864],[102.455339,32.909334],[102.45526,32.909717],[102.45518,32.910101],[102.45526,32.910487],[102.455341,32.910874],[102.455408,32.911299],[102.455476,32.911724],[102.455475,32.912157],[102.455474,32.912591],[102.455472,32.913062],[102.45547,32.913534],[102.45562,32.913855],[102.455771,32.914176],[102.455876,32.914515],[102.45598,32.914854],[102.456185,32.915263],[102.45639,32.915671],[102.45673,32.916159],[102.45707,32.916648],[102.457233,32.916949],[102.457395,32.917251],[102.457431,32.917608],[102.457466,32.917965],[102.45745,32.918523],[102.457434,32.919081],[102.457412,32.919221],[102.457389,32.919361],[102.457323,32.919772],[102.45741,32.921526],[102.457363,32.922373],[102.457186,32.922966],[102.456974,32.923193],[102.456693,32.923437],[102.455973,32.923866],[102.455301,32.924218],[102.454694,32.924668],[102.454021,32.925039],[102.453259,32.925351],[102.452633,32.925685],[102.452324,32.926121],[102.451945,32.926576],[102.451478,32.926932],[102.45119,32.927446],[102.450741,32.927976],[102.450068,32.928328],[102.449606,32.928531],[102.449481,32.928894],[102.449331,32.929353],[102.449001,32.929712],[102.448442,32.930105],[102.447794,32.930381],[102.446633,32.931069],[102.445596,32.931414],[102.444741,32.931762],[102.444338,32.932255],[102.444121,32.932655],[102.44351,32.933259],[102.442815,32.934419],[102.44229,32.935178],[102.441734,32.935456],[102.440916,32.935324],[102.440455,32.935375],[102.44039,32.935328],[102.440358,32.935305],[102.440217,32.935204],[102.440052,32.935086],[102.440038,32.935076],[102.439918,32.93499],[102.439561,32.934787],[102.439204,32.934584],[102.438942,32.934421],[102.43868,32.934259],[102.438465,32.934126],[102.438251,32.933994],[102.438037,32.933861],[102.437822,32.933728],[102.437599,32.933479],[102.437429,32.933329],[102.437258,32.933179],[102.437044,32.93304],[102.43683,32.932901],[102.436558,32.93276],[102.436286,32.93262],[102.435943,32.932442],[102.435726,32.932376],[102.43551,32.932311],[102.435077,32.932253],[102.434716,32.93216],[102.434355,32.932067],[102.434053,32.931963],[102.43375,32.931859],[102.433508,32.931707],[102.433265,32.931555],[102.433041,32.931306],[102.43283,32.931057],[102.432619,32.930808],[102.432462,32.930619],[102.432305,32.93043],[102.432149,32.930241],[102.431992,32.930052],[102.431835,32.929863],[102.431678,32.929675],[102.431521,32.929486],[102.431364,32.929297],[102.431207,32.929108],[102.431051,32.928919],[102.430894,32.92873],[102.430737,32.928541],[102.430619,32.928333],[102.430502,32.928124],[102.430384,32.927915],[102.430266,32.927706],[102.430149,32.927498],[102.430031,32.927289],[102.429913,32.92708],[102.429796,32.926872],[102.429678,32.926663],[102.42956,32.926454],[102.429437,32.926209],[102.429313,32.925965],[102.429189,32.92572],[102.429066,32.925475],[102.428942,32.92523],[102.428818,32.924985],[102.428694,32.92474],[102.428571,32.924496],[102.428447,32.924251],[102.428323,32.924006],[102.428071,32.923683],[102.427759,32.923407],[102.427502,32.923255],[102.427299,32.923251],[102.427067,32.923247],[102.426817,32.923339],[102.426567,32.923432],[102.426287,32.923573],[102.426006,32.923715],[102.425754,32.923893],[102.425502,32.924071],[102.425147,32.924284],[102.424792,32.924497],[102.424585,32.924639],[102.424377,32.924782],[102.42417,32.924924],[102.423962,32.925067],[102.42375,32.92518],[102.423537,32.925293],[102.423324,32.925406],[102.423112,32.925519],[102.422899,32.925632],[102.422687,32.925745],[102.422474,32.925858],[102.422262,32.925971],[102.422049,32.926084],[102.421837,32.926197],[102.421411,32.926335],[102.420986,32.926474],[102.420752,32.926505],[102.420519,32.926537],[102.420113,32.926504],[102.419929,32.926366],[102.419744,32.926227],[102.419559,32.926089],[102.419374,32.925951],[102.419204,32.9258],[102.419034,32.92565],[102.41885,32.925462],[102.418666,32.925274],[102.418415,32.924976],[102.418148,32.924653],[102.41788,32.924329],[102.417716,32.92413],[102.417551,32.923931],[102.417386,32.923731],[102.417221,32.923532],[102.417056,32.923333],[102.416891,32.923134],[102.416726,32.922935],[102.416561,32.922736],[102.416353,32.922576],[102.416145,32.922416],[102.415936,32.922256],[102.415728,32.922097],[102.415519,32.921937],[102.415311,32.921777],[102.415103,32.921617],[102.414894,32.921457],[102.414686,32.921298],[102.414478,32.921138],[102.414269,32.920978],[102.414061,32.920818],[102.413853,32.920659],[102.413644,32.920499],[102.413436,32.920339],[102.413228,32.920179],[102.413044,32.920012],[102.41286,32.919844],[102.412676,32.919676],[102.412491,32.919508],[102.412307,32.91934],[102.412123,32.919173],[102.411939,32.919005],[102.411755,32.918837],[102.411571,32.918669],[102.411387,32.918501],[102.411203,32.918333],[102.411019,32.918166],[102.410835,32.917998],[102.410651,32.91783],[102.410381,32.917617],[102.410111,32.917404],[102.409861,32.917031],[102.409778,32.916788],[102.409727,32.916637],[102.409736,32.916343],[102.409743,32.916099],[102.409777,32.915904],[102.409812,32.915734],[102.41001,32.915548],[102.410208,32.915362],[102.410405,32.915177],[102.410603,32.914991],[102.410801,32.914806],[102.410999,32.91462],[102.411197,32.914434],[102.411395,32.914249],[102.41154,32.914049],[102.411685,32.913849],[102.411831,32.913649],[102.411976,32.913449],[102.412121,32.913249],[102.412267,32.913049],[102.412412,32.912849],[102.412557,32.912649],[102.412703,32.912449],[102.412848,32.912249],[102.413033,32.912072],[102.413217,32.911895],[102.413402,32.911718],[102.413587,32.911541],[102.413772,32.911364],[102.413956,32.911187],[102.414141,32.91101],[102.414326,32.910834],[102.414511,32.910657],[102.414695,32.91048],[102.414918,32.910325],[102.41514,32.910171],[102.415363,32.910016],[102.415585,32.909862],[102.415706,32.909693],[102.415712,32.909547],[102.415688,32.909302],[102.415606,32.909128],[102.415489,32.909012],[102.415352,32.908878],[102.41521,32.908802],[102.414948,32.908772],[102.414612,32.908765],[102.4142,32.908673],[102.413788,32.908581],[102.413376,32.908489],[102.413011,32.908409],[102.412646,32.90833],[102.41228,32.908251],[102.411961,32.908164],[102.411641,32.908076],[102.411321,32.907988],[102.411004,32.907824],[102.410686,32.90766],[102.410463,32.907462],[102.41024,32.907265],[102.410041,32.90703],[102.409846,32.906799],[102.409669,32.906487],[102.409491,32.906176],[102.409163,32.905978],[102.408836,32.905781],[102.408508,32.905583],[102.408319,32.905456],[102.407983,32.905228],[102.407647,32.904999],[102.40731,32.904771],[102.407096,32.904621],[102.406882,32.904471],[102.406528,32.904272],[102.406356,32.90415],[102.40602,32.904051],[102.405783,32.903964],[102.405521,32.903895],[102.405259,32.903826],[102.404959,32.903772],[102.40466,32.903717],[102.404497,32.903718],[102.40416,32.90372],[102.403822,32.903722],[102.403405,32.903725],[102.403184,32.903727],[102.402802,32.90369],[102.40242,32.903654],[102.402037,32.903617],[102.401792,32.903555],[102.401547,32.903493],[102.401347,32.903384],[102.401129,32.903198],[102.400915,32.902969],[102.400734,32.902775],[102.400572,32.902527],[102.40041,32.90228],[102.400232,32.901934],[102.400055,32.901588],[102.399877,32.901242],[102.39981,32.900916],[102.399744,32.90059],[102.399601,32.900291],[102.399463,32.900086],[102.399358,32.899834],[102.399296,32.899534],[102.399234,32.899234],[102.399209,32.898915],[102.399184,32.898596],[102.399158,32.898278],[102.399149,32.898025],[102.39912,32.897806],[102.399122,32.89758],[102.399122,32.897514],[102.399124,32.897221],[102.399125,32.897126],[102.399096,32.896955],[102.399044,32.896798],[102.398858,32.896441],[102.39869,32.89611],[102.398521,32.895779],[102.398477,32.895674],[102.398356,32.895381],[102.398235,32.895089],[102.398168,32.894846],[102.398102,32.894604],[102.398035,32.894228],[102.397969,32.893852],[102.397923,32.893557],[102.397904,32.89344],[102.397877,32.893265],[102.39784,32.893028],[102.397808,32.89293],[102.39763,32.892784],[102.397452,32.892637],[102.397283,32.89245],[102.397115,32.892263],[102.396893,32.891941],[102.396848,32.891605],[102.396851,32.891506],[102.396883,32.891385],[102.397003,32.891241],[102.39712,32.891243],[102.397411,32.891249],[102.397583,32.891301],[102.397959,32.891359],[102.398222,32.891314],[102.398456,32.891246],[102.398601,32.891177],[102.398824,32.89107],[102.39909,32.890944],[102.399091,32.890943],[102.399092,32.890943],[102.399193,32.890895],[102.399549,32.890657],[102.39977,32.890527],[102.399991,32.890397],[102.400288,32.890183],[102.400555,32.89003],[102.400821,32.889876],[102.400967,32.889696],[102.401112,32.889515],[102.401257,32.889335],[102.401403,32.889155],[102.401548,32.888974],[102.401694,32.888794],[102.401847,32.888516],[102.401944,32.888342],[102.402061,32.888217],[102.402142,32.888084],[102.402323,32.887846],[102.402428,32.887646],[102.402418,32.887508],[102.402352,32.887422],[102.402285,32.887365],[102.402194,32.887161],[102.402152,32.88705],[102.402071,32.886837],[102.401999,32.886604],[102.402009,32.886466],[102.402061,32.886347],[102.402118,32.886176],[102.402149,32.886117],[102.402218,32.885985],[102.402214,32.885881],[102.402097,32.885754],[102.402004,32.885652],[102.401933,32.885581],[102.401923,32.885495],[102.401985,32.885333],[102.402019,32.885258],[102.402104,32.885067],[102.402099,32.884938],[102.402076,32.884848],[102.401971,32.88461],[102.401967,32.884602],[102.401899,32.884472],[102.401895,32.884329],[102.401933,32.883982],[102.401972,32.883634],[102.402011,32.883286],[102.402049,32.882939],[102.402054,32.882898],[102.40207,32.882577],[102.402104,32.882343],[102.402164,32.882126],[102.402225,32.881909],[102.402395,32.881664],[102.402481,32.881601],[102.402789,32.88137],[102.403097,32.881139],[102.403405,32.880909],[102.403643,32.880717],[102.403942,32.880429],[102.404126,32.880103],[102.40431,32.879777],[102.404413,32.879555],[102.404516,32.879333],[102.404619,32.879112],[102.404722,32.87889],[102.404826,32.878668],[102.404929,32.878447],[102.404968,32.878203],[102.405007,32.877959],[102.405046,32.877715],[102.405085,32.877471],[102.405124,32.877227],[102.405163,32.876983],[102.405202,32.87674],[102.405241,32.876496],[102.40528,32.876252],[102.405291,32.876186],[102.405319,32.876008],[102.405357,32.87574],[102.405394,32.875471],[102.405403,32.875154],[102.405404,32.875121],[102.405409,32.874909],[102.405391,32.874554],[102.405373,32.874199],[102.405321,32.873965],[102.405269,32.873731],[102.405203,32.87352],[102.405178,32.873312],[102.405088,32.873184],[102.405087,32.873183],[102.404783,32.872984],[102.404579,32.872855],[102.404517,32.872713],[102.404455,32.872584],[102.404493,32.872365],[102.404493,32.872284],[102.404393,32.872146],[102.404331,32.87197],[102.404283,32.871903],[102.404198,32.871785],[102.404103,32.871689],[102.403879,32.871452],[102.403772,32.871241],[102.403771,32.871239],[102.40377,32.871237],[102.403736,32.871099],[102.403774,32.871014],[102.403803,32.870895],[102.403741,32.87079],[102.403679,32.87069],[102.403655,32.870595],[102.403708,32.870495],[102.40377,32.870428],[102.403808,32.870324],[102.403805,32.8703],[102.403773,32.870204],[102.403746,32.870171],[102.403475,32.869991],[102.40337,32.869857],[102.403337,32.869743],[102.403327,32.869619],[102.403322,32.869519],[102.403256,32.869434],[102.40308,32.869291],[102.402898,32.868954],[102.402862,32.868794],[102.402856,32.868544],[102.402862,32.868336],[102.40291,32.868062],[102.402969,32.867913],[102.403011,32.86783],[102.40304,32.867771],[102.403034,32.867663],[102.403017,32.867556],[102.402957,32.867372],[102.402924,32.867295],[102.402922,32.867281],[102.402878,32.866916],[102.402939,32.866688],[102.402927,32.866533],[102.402898,32.866426],[102.402868,32.866271],[102.402808,32.866051],[102.402767,32.866001],[102.402624,32.865825],[102.40241,32.865647],[102.402368,32.86554],[102.402351,32.865307],[102.402334,32.865073],[102.402266,32.864738],[102.402198,32.864402],[102.402195,32.86435],[102.402184,32.864124],[102.402189,32.863736],[102.402193,32.863348],[102.402198,32.86296],[102.402219,32.862636],[102.402241,32.862311],[102.40217,32.861961],[102.402105,32.861725],[102.402041,32.86149],[102.402041,32.861247],[102.402062,32.860869],[102.402098,32.860662],[102.402105,32.860419],[102.402048,32.860262],[102.402027,32.860048],[102.40207,32.85982],[102.402048,32.859591],[102.401991,32.859427],[102.40177,32.859284],[102.401698,32.859063],[102.401684,32.858752],[102.401683,32.858751],[102.401682,32.85875],[102.401664,32.858723],[102.401529,32.858515],[102.401452,32.858299],[102.401374,32.858084],[102.401296,32.857868],[102.401218,32.857653],[102.40114,32.857438],[102.401062,32.857222],[102.400984,32.857007],[102.400906,32.856792],[102.400801,32.856422],[102.400663,32.856175],[102.400465,32.855975],[102.400267,32.855824],[102.400088,32.85567],[102.399908,32.855515],[102.399729,32.85536],[102.39955,32.855206],[102.39937,32.855051],[102.399191,32.854896],[102.399,32.854703],[102.39881,32.854509],[102.39862,32.854315],[102.398429,32.854122],[102.398348,32.85404],[102.398343,32.854034],[102.398239,32.853928],[102.398049,32.853735],[102.397858,32.853541],[102.397668,32.853347],[102.397499,32.853179],[102.397329,32.85301],[102.39716,32.852842],[102.396991,32.852673],[102.396821,32.852504],[102.396652,32.852336],[102.396483,32.852167],[102.396314,32.851998],[102.396124,32.85186],[102.395934,32.851722],[102.395744,32.851584],[102.395554,32.851446],[102.395364,32.851308],[102.395174,32.851171],[102.394985,32.851033],[102.394795,32.850895],[102.394605,32.850757],[102.394415,32.850619],[102.394225,32.850481],[102.394035,32.850343],[102.39383,32.850176],[102.393624,32.85001],[102.393418,32.849843],[102.393212,32.849677],[102.393007,32.84951],[102.392801,32.849344],[102.392595,32.849177],[102.39239,32.849011],[102.392261,32.848806],[102.392133,32.848602],[102.392005,32.848397],[102.391876,32.848193],[102.391748,32.847988],[102.39162,32.847784],[102.391492,32.847579],[102.391363,32.847375],[102.391318,32.846934],[102.391328,32.846591],[102.391394,32.846299],[102.391461,32.846006],[102.391586,32.84574],[102.39171,32.845461],[102.391834,32.845182],[102.3919,32.844891],[102.391903,32.844821],[102.391907,32.844686],[102.391908,32.844645],[102.391913,32.84445],[102.391892,32.84424],[102.391891,32.84423],[102.391692,32.843971],[102.391684,32.843961],[102.391642,32.843869],[102.391635,32.843863],[102.391563,32.843805],[102.391305,32.843595],[102.391046,32.843384],[102.390838,32.84323],[102.390631,32.843075],[102.390307,32.842868],[102.389982,32.842661],[102.389628,32.842401],[102.389274,32.84214],[102.38892,32.84188],[102.388873,32.841844],[102.388599,32.841629],[102.388325,32.841414],[102.388051,32.841199],[102.387777,32.840984],[102.38762,32.840885],[102.387218,32.840736],[102.386895,32.840616],[102.386572,32.840496],[102.386329,32.840428],[102.386087,32.84036],[102.38573,32.840303],[102.385409,32.840275],[102.385087,32.840246],[102.384798,32.840235],[102.384509,32.840225],[102.384202,32.8402],[102.383895,32.840175],[102.383598,32.840087],[102.3833,32.839999],[102.383003,32.839911],[102.38267,32.839801],[102.382337,32.839692],[102.382004,32.839582],[102.381797,32.839493],[102.38159,32.839404],[102.38133,32.839236],[102.38107,32.839068],[102.380734,32.83885],[102.380397,32.838633],[102.380041,32.838397],[102.379685,32.83816],[102.379328,32.837924],[102.379024,32.837723],[102.378721,32.837522],[102.378417,32.837321],[102.378113,32.837119],[102.377849,32.836991],[102.377585,32.836862],[102.377235,32.836763],[102.377021,32.836634],[102.37685,32.83652],[102.3766,32.836456],[102.376329,32.836395],[102.376057,32.836334],[102.375715,32.836256],[102.375483,32.836131],[102.375251,32.836006],[102.375008,32.835849],[102.374765,32.835692],[102.374544,32.835442],[102.374394,32.835074],[102.374244,32.834707],[102.374059,32.834475],[102.373873,32.834243],[102.373709,32.834061],[102.373545,32.833879],[102.37328,32.833722],[102.373016,32.833565],[102.372661,32.833422],[102.372307,32.83328],[102.371952,32.833137],[102.371931,32.833129],[102.371524,32.832965],[102.371189,32.832979],[102.371039,32.833022],[102.370825,32.833168],[102.370611,32.833315],[102.37033,32.833448],[102.370049,32.833581],[102.369768,32.833714],[102.369376,32.833839],[102.368983,32.833964],[102.368665,32.834026],[102.368314,32.834095],[102.367964,32.834163],[102.367848,32.834186],[102.367508,32.834202],[102.367168,32.834219],[102.366827,32.834236],[102.366501,32.8342],[102.366175,32.834164],[102.365849,32.834128],[102.365454,32.834083],[102.365059,32.834038],[102.364664,32.833993],[102.364407,32.833918],[102.36415,32.833843],[102.363808,32.833657],[102.363565,32.833424],[102.363322,32.833191],[102.36308,32.832958],[102.362891,32.832712],[102.362701,32.832465],[102.362484,32.832226],[102.362266,32.831987],[102.36206,32.831831],[102.361785,32.831624],[102.361509,32.831416],[102.361259,32.831221],[102.36101,32.831026],[102.36076,32.830831],[102.360446,32.830645],[102.360148,32.830531],[102.359851,32.830417],[102.359553,32.830302],[102.359211,32.830081],[102.358868,32.82986],[102.358791,32.82981],[102.358491,32.829617],[102.35819,32.829424],[102.35789,32.829232],[102.357705,32.829064],[102.357519,32.828896],[102.357383,32.828646],[102.357248,32.828396],[102.357119,32.828275],[102.356934,32.828196],[102.356634,32.828204],[102.356348,32.828214],[102.356063,32.828225],[102.355813,32.828225],[102.355563,32.828225],[102.355254,32.828144],[102.354944,32.828063],[102.354635,32.827982],[102.354325,32.827896],[102.354021,32.827811],[102.35365,32.827668],[102.353563,32.827643],[102.353257,32.827554],[102.3529,32.827511],[102.352472,32.827447],[102.352094,32.827354],[102.351803,32.827157],[102.351513,32.826959],[102.351223,32.826762],[102.351016,32.826448],[102.350809,32.826134],[102.350545,32.825805],[102.350281,32.825477],[102.350066,32.825098],[102.34997,32.824799],[102.349874,32.824499],[102.349817,32.824099],[102.349753,32.823761],[102.349688,32.823422],[102.349638,32.823157],[102.349517,32.822907],[102.34931,32.8226],[102.348959,32.822377],[102.348739,32.822236],[102.348467,32.821893],[102.348343,32.821668],[102.348218,32.821444],[102.348077,32.82117],[102.347937,32.820896],[102.347743,32.820639],[102.347548,32.820381],[102.347354,32.820123],[102.347199,32.819885],[102.347045,32.819647],[102.346955,32.819409],[102.346866,32.819171],[102.346818,32.818731],[102.346652,32.818493],[102.346366,32.818267],[102.345948,32.818227],[102.34553,32.818187],[102.345112,32.818147],[102.344731,32.818111],[102.344412,32.818116],[102.344094,32.81812],[102.34382,32.818125],[102.343547,32.818129],[102.343246,32.818051],[102.342946,32.817974],[102.342786,32.817906],[102.342536,32.8178],[102.342286,32.817694],[102.341911,32.81748],[102.341729,32.81729],[102.341548,32.8171],[102.341364,32.816847],[102.341181,32.816595],[102.341036,32.816398],[102.340894,32.816118],[102.340751,32.815838],[102.340608,32.815559],[102.340397,32.815247],[102.340186,32.814934],[102.340055,32.814696],[102.339924,32.814458],[102.339668,32.814274],[102.339668,32.814274],[102.339319,32.814213],[102.339135,32.814189],[102.33888,32.81422],[102.338625,32.81425],[102.338343,32.814351],[102.33806,32.814453],[102.337735,32.814553],[102.33741,32.814653],[102.337156,32.814648],[102.336902,32.814642],[102.336651,32.814598],[102.336399,32.814553],[102.336338,32.81453],[102.336011,32.81436],[102.335796,32.814215],[102.335581,32.814071],[102.335338,32.813965],[102.335096,32.81386],[102.334854,32.813832],[102.334612,32.813804],[102.334416,32.813755],[102.334069,32.813723],[102.333722,32.813691],[102.333606,32.81368],[102.333574,32.813677],[102.333389,32.81366],[102.333097,32.813632],[102.332869,32.813548],[102.33264,32.813465],[102.332405,32.813334],[102.332291,32.813234],[102.332161,32.81312],[102.332024,32.812924],[102.331905,32.812638],[102.33181,32.812409],[102.331715,32.81218],[102.331554,32.811936],[102.331382,32.811704],[102.331162,32.811609],[102.330852,32.811442],[102.33065,32.811163],[102.330448,32.810883],[102.330308,32.810702],[102.330168,32.81052],[102.329972,32.810348],[102.329776,32.810175],[102.329585,32.809917],[102.329395,32.809658],[102.329193,32.809289],[102.329153,32.809154],[102.329097,32.808962],[102.328907,32.808739],[102.328717,32.808516],[102.328447,32.808243],[102.328187,32.80798],[102.328026,32.807723],[102.327908,32.807534],[102.327833,32.807278],[102.327759,32.807023],[102.327682,32.806743],[102.327485,32.80635],[102.327307,32.805999],[102.327194,32.805803],[102.326962,32.805642],[102.32673,32.805482],[102.326641,32.80541],[102.326581,32.805196],[102.326534,32.80497],[102.326557,32.804607],[102.326665,32.804176],[102.326772,32.803751],[102.326795,32.803483],[102.326748,32.803257],[102.326611,32.803037],[102.32651,32.802912],[102.32645,32.802751],[102.326454,32.802713],[102.326468,32.802537],[102.326486,32.802395],[102.326534,32.802002],[102.326528,32.801701],[102.326522,32.801401],[102.326486,32.801122],[102.326415,32.801003],[102.326337,32.800931],[102.326218,32.800578],[102.326212,32.800562],[102.326141,32.800324],[102.325909,32.800188],[102.325748,32.800069],[102.325582,32.800057],[102.325557,32.800056],[102.325125,32.800038],[102.324693,32.800021],[102.324261,32.800003],[102.324038,32.799959],[102.323815,32.799914],[102.323589,32.799825],[102.323363,32.799735],[102.323012,32.799634],[102.322661,32.799533],[102.322286,32.799355],[102.322013,32.799236],[102.321834,32.799081],[102.321733,32.79891],[102.321626,32.79873],[102.321449,32.798579],[102.321424,32.798558],[102.321245,32.79848],[102.320983,32.79848],[102.320632,32.798714],[102.320486,32.798811],[102.320258,32.798962],[102.319984,32.799004],[102.319841,32.799016],[102.319544,32.798956],[102.319264,32.798932],[102.319116,32.798956],[102.318878,32.79898],[102.318455,32.798904],[102.31834,32.798799],[102.318217,32.798628],[102.318015,32.798408],[102.318007,32.798399],[102.317779,32.798238],[102.317462,32.798109],[102.317146,32.797981],[102.317046,32.797924],[102.316713,32.797714],[102.316565,32.79749],[102.316418,32.797267],[102.316293,32.796923],[102.316169,32.796578],[102.316206,32.796345],[102.316269,32.796027],[102.31632,32.795771],[102.316371,32.795516],[102.316423,32.795261],[102.316474,32.795005],[102.316525,32.79475],[102.316576,32.794494],[102.316539,32.794261],[102.316503,32.794028],[102.316339,32.793682],[102.316148,32.793311],[102.315953,32.793038],[102.315754,32.792874],[102.315555,32.792711],[102.315297,32.792403],[102.315038,32.792095],[102.314779,32.791787],[102.314504,32.791459],[102.314228,32.79113],[102.313952,32.790802],[102.313676,32.790474],[102.313483,32.790244],[102.313328,32.790078],[102.313173,32.789911],[102.313019,32.789744],[102.312864,32.789578],[102.312709,32.789411],[102.312554,32.789245],[102.312399,32.789078],[102.312244,32.788911],[102.31209,32.788745],[102.311935,32.788578],[102.311826,32.788331],[102.311717,32.788084],[102.311638,32.78782],[102.31156,32.787555],[102.311481,32.78729],[102.311402,32.787025],[102.311337,32.786767],[102.311272,32.786509],[102.311194,32.786213],[102.311115,32.785918],[102.311005,32.785494],[102.310894,32.785069],[102.310784,32.784645],[102.310674,32.784221],[102.310593,32.784011],[102.310512,32.783801],[102.310287,32.783552],[102.310059,32.7834],[102.309774,32.783246],[102.309398,32.783214],[102.309122,32.783208],[102.308847,32.783203],[102.308581,32.78321],[102.308315,32.783218],[102.308049,32.783226],[102.307783,32.783234],[102.307494,32.783191],[102.307204,32.783148],[102.30693,32.783105],[102.306656,32.783063],[102.306223,32.78298],[102.30579,32.782922],[102.305412,32.782913],[102.305005,32.782929],[102.304714,32.782984],[102.304422,32.783039],[102.304201,32.783144],[102.303981,32.78325],[102.3039,32.783265],[102.303587,32.783327],[102.303192,32.783404],[102.302959,32.783448],[102.302726,32.783492],[102.302389,32.783595],[102.302052,32.783698],[102.301717,32.783764],[102.301381,32.78383],[102.301175,32.783924],[102.300969,32.784017],[102.30066,32.784169],[102.300351,32.784321],[102.299982,32.784558],[102.299613,32.784795],[102.299427,32.784931],[102.299241,32.785068],[102.299055,32.785205],[102.298869,32.785341],[102.298688,32.785582],[102.298507,32.785823],[102.298328,32.78599],[102.298148,32.786158],[102.297969,32.786325],[102.29779,32.786493],[102.297788,32.786493],[102.297787,32.786494],[102.297481,32.786699],[102.297174,32.786904],[102.29689,32.787011],[102.296523,32.78715],[102.29623,32.787218],[102.295938,32.787285],[102.295692,32.78728],[102.295445,32.787274],[102.295377,32.787276],[102.295068,32.787218],[102.294755,32.787226],[102.294441,32.787233],[102.294157,32.787392],[102.293873,32.78755],[102.29353,32.787657],[102.293364,32.787705],[102.293112,32.787778],[102.29286,32.787852],[102.292625,32.78792],[102.292391,32.787988],[102.292355,32.787999],[102.292115,32.788036],[102.291874,32.788074],[102.291634,32.788112],[102.291394,32.78815],[102.291045,32.788142],[102.290697,32.788134],[102.290335,32.788102],[102.289974,32.78807],[102.289714,32.788015],[102.289455,32.78796],[102.289169,32.78782],[102.288883,32.787679],[102.288584,32.787489],[102.288285,32.787299],[102.288002,32.787073],[102.287719,32.786846],[102.287479,32.786632],[102.287239,32.786419],[102.287028,32.786207],[102.286817,32.785995],[102.28662,32.785783],[102.286422,32.78557],[102.286253,32.78542],[102.286084,32.785269],[102.285801,32.785043],[102.285514,32.784914],[102.285226,32.784883],[102.284907,32.784877],[102.284584,32.785016],[102.284418,32.785221],[102.284252,32.785426],[102.284065,32.785813],[102.283867,32.786115],[102.283669,32.786416],[102.283507,32.786617],[102.283345,32.786819],[102.283183,32.78702],[102.283021,32.787222],[102.282859,32.787423],[102.282697,32.787624],[102.282535,32.787826],[102.282373,32.788027],[102.282165,32.788194],[102.281956,32.788361],[102.281748,32.788527],[102.28154,32.788694],[102.281275,32.788835],[102.281009,32.788976],[102.280673,32.789067],[102.280337,32.789158],[102.280104,32.789189],[102.279871,32.789221],[102.279637,32.789253],[102.279404,32.789284],[102.279039,32.789374],[102.278675,32.789463],[102.278447,32.789551],[102.278218,32.789638],[102.27799,32.789725],[102.277761,32.789812],[102.277532,32.789899],[102.277304,32.789986],[102.277073,32.790091],[102.276843,32.790196],[102.276613,32.790301],[102.276382,32.790406],[102.276152,32.790511],[102.275921,32.790617],[102.275511,32.79073],[102.275101,32.790843],[102.274692,32.790944],[102.274283,32.791046],[102.27386,32.791122],[102.273437,32.791198],[102.273,32.791262],[102.272563,32.791326],[102.272258,32.791332],[102.271952,32.791338],[102.271705,32.791345],[102.271459,32.791352],[102.271212,32.791358],[102.270965,32.791365],[102.270673,32.79142],[102.270381,32.791474],[102.270074,32.791578],[102.269766,32.791681],[102.269675,32.791722],[102.269529,32.791787],[102.269309,32.791886],[102.269089,32.791984],[102.268764,32.792161],[102.268439,32.792337],[102.268087,32.792476],[102.267735,32.792615],[102.267516,32.792672],[102.267297,32.792728],[102.266861,32.792743],[102.266629,32.792726],[102.266398,32.792708],[102.266167,32.792673],[102.265936,32.792637],[102.265705,32.792602],[102.265474,32.792566],[102.265039,32.792532],[102.264808,32.79249],[102.264578,32.792449],[102.26429,32.792394],[102.26396,32.792264],[102.26363,32.792134],[102.2633,32.792005],[102.26297,32.791875],[102.262877,32.791788],[102.26265,32.791573],[102.262422,32.791359],[102.262238,32.79122],[102.262053,32.791081],[102.261893,32.79096],[102.261869,32.790942],[102.261685,32.790804],[102.2615,32.790665],[102.261316,32.790526],[102.261131,32.790387],[102.260947,32.790248],[102.260707,32.790148],[102.260467,32.790048],[102.260227,32.789949],[102.259988,32.789849],[102.259748,32.789749],[102.259508,32.789649],[102.259268,32.789549],[102.259028,32.789449],[102.258745,32.789329],[102.258588,32.789243],[102.258205,32.789027],[102.257822,32.788811],[102.257412,32.788652],[102.257002,32.788493],[102.256689,32.788391],[102.256376,32.788288],[102.256063,32.788186],[102.255717,32.78815],[102.255371,32.788114],[102.255059,32.78814],[102.254748,32.788167],[102.254436,32.788193],[102.254075,32.788265],[102.253713,32.788336],[102.253368,32.788391],[102.253022,32.788446],[102.252677,32.788501],[102.252662,32.788507],[102.25226,32.788685],[102.251858,32.788863],[102.25162,32.789005],[102.251487,32.789034],[102.251325,32.789053],[102.251102,32.789029],[102.250878,32.789005],[102.250764,32.789034],[102.250697,32.789129],[102.250526,32.789396],[102.250283,32.789621],[102.25004,32.789846],[102.249701,32.789965],[102.249609,32.789992],[102.249475,32.790031],[102.249142,32.78993],[102.248916,32.789948],[102.248725,32.790067],[102.248469,32.790102],[102.24845,32.790098],[102.248192,32.790041],[102.247934,32.789983],[102.247669,32.789855],[102.247405,32.789727],[102.247063,32.7896],[102.246721,32.789472],[102.246358,32.789228],[102.245995,32.788984],[102.245632,32.78874],[102.245266,32.788588],[102.2449,32.788437],[102.244872,32.788417],[102.244689,32.788287],[102.244395,32.78808],[102.244174,32.787925],[102.243984,32.787842],[102.243675,32.78786],[102.243383,32.788014],[102.24307,32.788179],[102.242757,32.788344],[102.242693,32.788377],[102.242342,32.788597],[102.241991,32.788817],[102.241852,32.789005],[102.241712,32.789192],[102.241406,32.789412],[102.241101,32.789632],[102.240796,32.789852],[102.240587,32.789954],[102.240379,32.790055],[102.239933,32.790084],[102.239749,32.790072],[102.239523,32.789942],[102.239308,32.789852],[102.238999,32.789775],[102.238681,32.789743],[102.238559,32.789731],[102.238345,32.78971],[102.23797,32.789656],[102.237595,32.789603],[102.237381,32.78962],[102.237102,32.789698],[102.236733,32.789716],[102.236594,32.789697],[102.236262,32.789595],[102.236113,32.789549],[102.236001,32.78946],[102.235787,32.78924],[102.235571,32.78903],[102.235412,32.788877],[102.235186,32.788496],[102.235014,32.788335],[102.234847,32.788228],[102.234651,32.788163],[102.234508,32.788157],[102.234353,32.788169],[102.234175,32.788151],[102.233943,32.788062],[102.233865,32.787985],[102.233723,32.787889],[102.233437,32.787758],[102.233294,32.787628],[102.233179,32.787434],[102.233054,32.787308],[102.232882,32.787089],[102.232711,32.786871],[102.232362,32.786663],[102.232067,32.786613],[102.231772,32.786564],[102.231576,32.786644],[102.231181,32.786804],[102.231103,32.786835],[102.230988,32.786923],[102.230624,32.787158],[102.230431,32.787283],[102.230239,32.787407],[102.229897,32.787693],[102.229554,32.787979],[102.229345,32.78817],[102.229136,32.788361],[102.228854,32.788551],[102.228573,32.78874],[102.228351,32.788863],[102.22813,32.788986],[102.227909,32.78911],[102.227687,32.789233],[102.227361,32.789459],[102.227035,32.789684],[102.226794,32.789973],[102.226553,32.790261],[102.226388,32.790441],[102.226223,32.790621],[102.226016,32.790726],[102.22581,32.790832],[102.22552,32.790827],[102.22526,32.790783],[102.225,32.79074],[102.224756,32.790637],[102.224513,32.790534],[102.2242,32.790343],[102.223887,32.790153],[102.223561,32.789914],[102.223234,32.789674],[102.223075,32.789502],[102.222915,32.78933],[102.222755,32.789157],[102.222595,32.788985],[102.222435,32.788813],[102.222275,32.788641],[102.222115,32.788469],[102.221956,32.788296],[102.221796,32.788124],[102.221636,32.787952],[102.221476,32.78778],[102.221316,32.787608],[102.221199,32.787388],[102.221081,32.787169],[102.220964,32.78695],[102.220846,32.78673],[102.220729,32.786511],[102.220611,32.786292],[102.220494,32.786072],[102.220376,32.785853],[102.220259,32.785634],[102.220141,32.785414],[102.220024,32.785195],[102.219906,32.784975],[102.219789,32.784756],[102.219671,32.784537],[102.219546,32.784289],[102.21942,32.784042],[102.219295,32.783795],[102.21917,32.783548],[102.219044,32.783301],[102.218919,32.783053],[102.218794,32.782806],[102.218668,32.782559],[102.218543,32.782312],[102.218418,32.782064],[102.218292,32.781817],[102.218167,32.78157],[102.218041,32.781323],[102.217916,32.781075],[102.217791,32.780828],[102.217665,32.780581],[102.217513,32.780363],[102.21736,32.780146],[102.217207,32.779928],[102.217054,32.779711],[102.216901,32.779493],[102.216749,32.779276],[102.216596,32.779058],[102.216443,32.778841],[102.216309,32.778495],[102.216176,32.77815],[102.216069,32.777829],[102.215963,32.777509],[102.215883,32.777262],[102.215804,32.777016],[102.215695,32.776793],[102.215585,32.77657],[102.215476,32.776348],[102.215367,32.776125],[102.215114,32.7759],[102.214856,32.775771],[102.21461,32.775742],[102.214365,32.775712],[102.214061,32.775705],[102.213756,32.775698],[102.21333,32.775729],[102.212903,32.775761],[102.212477,32.775792],[102.212112,32.775882],[102.211746,32.775971],[102.211424,32.776062],[102.211102,32.776153],[102.210677,32.776278],[102.210253,32.776403],[102.210029,32.776447],[102.209805,32.776491],[102.209582,32.776535],[102.209358,32.776579],[102.209134,32.776623],[102.208911,32.776667],[102.208511,32.776764],[102.208111,32.776861],[102.207712,32.776958],[102.207331,32.777072],[102.20695,32.777186],[102.206756,32.777312],[102.206563,32.777438],[102.206369,32.777564],[102.206176,32.77769],[102.205982,32.777816],[102.205789,32.777942],[102.205595,32.778068],[102.205401,32.778194],[102.205192,32.778434],[102.205055,32.778615],[102.204919,32.778796],[102.204795,32.77905],[102.204671,32.779303],[102.204617,32.779607],[102.204564,32.779911],[102.204526,32.780217],[102.204488,32.780523],[102.204333,32.780825],[102.204178,32.781127],[102.204006,32.781307],[102.203833,32.781486],[102.203661,32.781666],[102.203488,32.781845],[102.203301,32.782035],[102.203113,32.782225],[102.202926,32.782414],[102.202739,32.782604],[102.202551,32.782794],[102.202364,32.782983],[102.202039,32.783172],[102.201715,32.78336],[102.201419,32.783525],[102.201124,32.78369],[102.200755,32.783889],[102.200386,32.784089],[102.200263,32.784162],[102.200046,32.78429],[102.199706,32.78449],[102.199478,32.784803],[102.19925,32.785115],[102.199066,32.785454],[102.198882,32.785792],[102.198743,32.786035],[102.198605,32.786277],[102.198483,32.786469],[102.198361,32.786662],[102.198095,32.786827],[102.197748,32.786795],[102.197519,32.786704],[102.19729,32.786614],[102.197004,32.78646],[102.196718,32.786307],[102.196421,32.786068],[102.196124,32.785829],[102.195942,32.785629],[102.195759,32.785429],[102.195565,32.785156],[102.195547,32.78513],[102.195371,32.784883],[102.195135,32.784547],[102.194898,32.784211],[102.194706,32.783864],[102.194514,32.783517],[102.194322,32.783158],[102.19413,32.782799],[102.194073,32.782529],[102.194016,32.782258],[102.193958,32.781988],[102.193901,32.781718],[102.193916,32.78148],[102.193931,32.781242],[102.193945,32.781003],[102.19396,32.780765],[102.193975,32.780527],[102.193989,32.780289],[102.194004,32.780051],[102.194019,32.779812],[102.194015,32.77947],[102.194012,32.779127],[102.193946,32.778893],[102.193881,32.778659],[102.193714,32.778435],[102.193373,32.778208],[102.193173,32.778093],[102.192974,32.777978],[102.192688,32.77785],[102.192402,32.777721],[102.192136,32.777664],[102.19187,32.777607],[102.191604,32.777549],[102.191337,32.777492],[102.191071,32.777435],[102.190805,32.777378],[102.190538,32.77732],[102.190272,32.777263],[102.190006,32.777206],[102.189739,32.777149],[102.189473,32.777091],[102.189207,32.777034],[102.188941,32.776977],[102.188674,32.77692],[102.188265,32.776832],[102.187855,32.776744],[102.187445,32.776656],[102.187015,32.776548],[102.186786,32.776396],[102.186763,32.776225],[102.186801,32.775932],[102.186891,32.775714],[102.18698,32.775497],[102.187069,32.77528],[102.187159,32.775063],[102.187248,32.774846],[102.187337,32.774629],[102.187366,32.774562],[102.187433,32.774407],[102.187528,32.774185],[102.187624,32.773963],[102.187719,32.773741],[102.187815,32.773519],[102.18791,32.773297],[102.188006,32.773076],[102.188101,32.772854],[102.188197,32.772632],[102.188292,32.77241],[102.188388,32.772188],[102.188483,32.771966],[102.188579,32.771744],[102.188674,32.771523],[102.188714,32.77143],[102.188818,32.771173],[102.188922,32.770917],[102.189026,32.77066],[102.18913,32.770404],[102.189234,32.770147],[102.189338,32.769891],[102.189442,32.769634],[102.189546,32.769378],[102.18965,32.769121],[102.189754,32.768865],[102.189864,32.768623],[102.189973,32.768381],[102.190082,32.768138],[102.190191,32.767896],[102.190301,32.767654],[102.19041,32.767412],[102.190424,32.767345],[102.190467,32.767145],[102.190524,32.766878],[102.190581,32.766611],[102.190638,32.766344],[102.190696,32.766077],[102.190753,32.76581],[102.19081,32.765543],[102.190867,32.765275],[102.190924,32.765008],[102.190981,32.764741],[102.191038,32.764474],[102.191075,32.764301],[102.191096,32.764207],[102.191225,32.763794],[102.191319,32.763551],[102.191414,32.763309],[102.191599,32.762946],[102.191694,32.762704],[102.191875,32.762463],[102.192041,32.762271],[102.192206,32.762079],[102.192515,32.761793],[102.192824,32.761506],[102.193133,32.761219],[102.193327,32.761056],[102.19352,32.760894],[102.193714,32.760731],[102.193908,32.760568],[102.194101,32.760405],[102.194295,32.760242],[102.194595,32.75993],[102.194895,32.759619],[102.195148,32.759392],[102.195402,32.759165],[102.1956,32.759011],[102.195798,32.758856],[102.195996,32.758702],[102.196194,32.758547],[102.196392,32.758393],[102.196591,32.758238],[102.196919,32.757952],[102.197131,32.757663],[102.197255,32.757428],[102.197379,32.757193],[102.197503,32.756957],[102.197627,32.756722],[102.197709,32.756508],[102.197791,32.756295],[102.197873,32.756082],[102.197955,32.755868],[102.198037,32.755655],[102.198119,32.755442],[102.198202,32.755228],[102.198284,32.755015],[102.198366,32.754801],[102.198367,32.754799],[102.198367,32.754797],[102.198448,32.754588],[102.198604,32.754249],[102.198667,32.754055],[102.198675,32.753798],[102.198684,32.753541],[102.198694,32.753248],[102.198643,32.753002],[102.198568,32.752766],[102.198493,32.75253],[102.198418,32.752295],[102.198342,32.752059],[102.198267,32.751823],[102.198192,32.751587],[102.198117,32.751352],[102.198042,32.751116],[102.197967,32.75088],[102.197892,32.750645],[102.197817,32.750409],[102.197741,32.750173],[102.197718,32.750121],[102.197608,32.749874],[102.197497,32.749627],[102.197387,32.74938],[102.197277,32.749133],[102.197166,32.748886],[102.197056,32.748639],[102.196946,32.748392],[102.196835,32.748145],[102.196725,32.747898],[102.196615,32.747651],[102.196504,32.747405],[102.196394,32.747158],[102.196284,32.746911],[102.196173,32.746664],[102.196063,32.746417],[102.195953,32.74617],[102.195822,32.745943],[102.195692,32.745716],[102.195561,32.745489],[102.19543,32.745262],[102.1953,32.745035],[102.195169,32.744808],[102.195038,32.744581],[102.194908,32.744354],[102.194777,32.744127],[102.194646,32.7439],[102.194516,32.743673],[102.194385,32.743446],[102.19432,32.7432],[102.194255,32.742954],[102.19419,32.742708],[102.194126,32.742462],[102.194104,32.742217],[102.194083,32.741972],[102.194091,32.741703],[102.1941,32.741434],[102.194109,32.74114],[102.194178,32.740824],[102.194274,32.740508],[102.194397,32.740266],[102.194491,32.740073],[102.194644,32.739807],[102.194795,32.739608],[102.194946,32.73941],[102.195098,32.739212],[102.195249,32.739013],[102.1954,32.738815],[102.195551,32.738616],[102.195702,32.738418],[102.195854,32.73822],[102.196001,32.738015],[102.196148,32.737811],[102.196295,32.737606],[102.196442,32.737402],[102.196589,32.737198],[102.196736,32.736993],[102.196884,32.736789],[102.197031,32.736584],[102.197178,32.73638],[102.197325,32.736176],[102.197472,32.735971],[102.197619,32.735767],[102.197798,32.735599],[102.198124,32.735386],[102.198333,32.735195],[102.198484,32.735003],[102.198651,32.734774],[102.198818,32.734546],[102.198993,32.734207],[102.199168,32.733868],[102.199343,32.73353],[102.199438,32.733275],[102.199533,32.73302],[102.199628,32.732765],[102.199723,32.732511],[102.199817,32.732256],[102.199818,32.732255],[102.199818,32.732254],[102.199912,32.732001],[102.200017,32.731777],[102.200122,32.731553],[102.200171,32.731448],[102.200227,32.731329],[102.200332,32.731105],[102.200437,32.730881],[102.200542,32.730657],[102.200646,32.730433],[102.200751,32.730209],[102.200898,32.730023],[102.201044,32.729837],[102.201191,32.729651],[102.201337,32.729465],[102.201484,32.729279],[102.20163,32.729093],[102.201777,32.728907],[102.201924,32.728721],[102.20207,32.728534],[102.202217,32.728348],[102.202363,32.728162],[102.20251,32.727976],[102.202649,32.727763],[102.202788,32.727549],[102.202927,32.727335],[102.203066,32.727122],[102.203206,32.726908],[102.203345,32.726695],[102.203484,32.726481],[102.203623,32.726267],[102.203762,32.726054],[102.203902,32.72584],[102.204041,32.725627],[102.20418,32.725413],[102.204319,32.725199],[102.204458,32.724986],[102.204573,32.724759],[102.204688,32.724532],[102.204802,32.724305],[102.204917,32.724078],[102.205032,32.723851],[102.205147,32.723624],[102.205261,32.723397],[102.205376,32.72317],[102.205491,32.722943],[102.205566,32.722793],[102.205605,32.722716],[102.205613,32.722448],[102.205682,32.722132],[102.205805,32.72189],[102.206015,32.721674],[102.206194,32.721507],[102.206461,32.721317],[102.206699,32.721102],[102.20694,32.720838],[102.20712,32.720573],[102.207229,32.720363],[102.207337,32.720153],[102.207445,32.719944],[102.207553,32.719734],[102.207661,32.719524],[102.207769,32.719315],[102.207985,32.718928],[102.208108,32.718711],[102.20823,32.718493],[102.208427,32.718229],[102.208624,32.717964],[102.208791,32.717699],[102.208959,32.717433],[102.209244,32.717134],[102.209529,32.716834],[102.209798,32.716571],[102.210067,32.716308],[102.210311,32.715946],[102.210453,32.715734],[102.210595,32.715521],[102.210737,32.715309],[102.210879,32.715096],[102.211021,32.714884],[102.211163,32.714671],[102.211186,32.714427],[102.211208,32.714183],[102.211217,32.713865],[102.211229,32.713498],[102.211125,32.713129],[102.21102,32.71276],[102.210932,32.712521],[102.210844,32.712281],[102.210755,32.712042],[102.210667,32.711803],[102.210579,32.711563],[102.210491,32.711324],[102.210403,32.711085],[102.210314,32.710845],[102.210226,32.710606],[102.210138,32.710366],[102.210016,32.710095],[102.209893,32.709823],[102.20973,32.709526],[102.209564,32.709295],[102.209549,32.709275],[102.209479,32.709178],[102.209437,32.709135],[102.209392,32.709088],[102.209304,32.708997],[102.209129,32.708816],[102.208954,32.708635],[102.208779,32.708454],[102.2086,32.708269],[102.208422,32.708084],[102.208209,32.707933],[102.207996,32.707781],[102.207784,32.70763],[102.207571,32.707478],[102.207358,32.707326],[102.207146,32.707175],[102.206933,32.707023],[102.20672,32.706872],[102.206508,32.70672],[102.206295,32.706568],[102.206082,32.706417],[102.20587,32.706265],[102.205657,32.706114],[102.205444,32.705962],[102.205302,32.705906],[102.205264,32.705892],[102.205205,32.705868],[102.204983,32.705781],[102.204965,32.705774],[102.204725,32.70568],[102.20465,32.705651],[102.204485,32.705586],[102.204246,32.705492],[102.204006,32.705398],[102.203766,32.705304],[102.203526,32.705211],[102.203287,32.70512],[102.203049,32.705029],[102.20281,32.704938],[102.202571,32.704847],[102.202332,32.704756],[102.202094,32.704665],[102.201846,32.704576],[102.201599,32.704488],[102.201352,32.7044],[102.201104,32.704312],[102.200857,32.704224],[102.20061,32.704136],[102.200362,32.704048],[102.200115,32.70396],[102.199887,32.703844],[102.19966,32.703729],[102.199475,32.703591],[102.19929,32.703453],[102.199096,32.703202],[102.198873,32.702904],[102.198784,32.702658],[102.198695,32.702413],[102.198606,32.702167],[102.198517,32.701921],[102.198369,32.701563],[102.19822,32.701205],[102.198087,32.700834],[102.197921,32.700562],[102.197725,32.700337],[102.197613,32.700213],[102.197329,32.700035],[102.196985,32.699904],[102.196741,32.69985],[102.196496,32.699796],[102.196397,32.699773],[102.196151,32.699715],[102.195805,32.699634],[102.195518,32.699566],[102.19523,32.699499],[102.194913,32.69943],[102.194596,32.699362],[102.194266,32.699281],[102.193936,32.6992],[102.193633,32.69912],[102.193468,32.699076],[102.193331,32.69904],[102.193073,32.698948],[102.192815,32.698857],[102.192544,32.698729],[102.192273,32.698601],[102.191943,32.69834],[102.191613,32.69808],[102.191283,32.697819],[102.191071,32.697631],[102.19086,32.697443],[102.190677,32.697255],[102.190494,32.697068],[102.190388,32.696772],[102.190396,32.696528],[102.190432,32.696308],[102.190465,32.696137]]]]},"properties":{"cp":[102.35372199561037,32.712944518303445],"code":"513233103","name":"安曲镇","level":"street","center":[102.35372199561037,32.712944518303445],"fullCode":"513233103000","fullName":"四川省阿坝藏族羌族自治州红原县安曲镇","acreageMu":1327057.45,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.222,32.6709]}},{"id":"513233105","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.277244,32.524826],[102.277274,32.524758],[102.277761,32.523683],[102.278447,32.522401],[102.278934,32.521489],[102.279246,32.520805],[102.279632,32.520638],[102.280189,32.520398],[102.280201,32.520393],[102.280417,32.5203],[102.280661,32.520194],[102.281662,32.519821],[102.282892,32.519601],[102.283165,32.519536],[102.284592,32.519194],[102.286228,32.519032],[102.287337,32.518908],[102.287869,32.518673],[102.288122,32.517988],[102.288597,32.517196],[102.289346,32.515511],[102.29019,32.513605],[102.290391,32.512721],[102.29064,32.511691],[102.290603,32.510025],[102.290392,32.508318],[102.290556,32.507212],[102.290941,32.506036],[102.291382,32.504418],[102.29147,32.503999],[102.291505,32.503833],[102.291597,32.503393],[102.291601,32.503375],[102.291637,32.503202],[102.291887,32.502135],[102.291976,32.50062],[102.29189,32.499101],[102.291871,32.498286],[102.292101,32.497884],[102.292726,32.497454],[102.293911,32.49722],[102.295037,32.497541],[102.296037,32.497673],[102.297387,32.497776],[102.298297,32.498018],[102.299338,32.498225],[102.300303,32.498583],[102.300373,32.498609],[102.300504,32.498657],[102.301595,32.49868],[102.303308,32.49831],[102.304271,32.498257],[102.30559,32.497915],[102.307147,32.49745],[102.30744,32.497363],[102.308144,32.49723],[102.308319,32.497197],[102.308369,32.49715],[102.308633,32.496907],[102.308664,32.495872],[102.308679,32.495343],[102.30869,32.494985],[102.308318,32.494274],[102.308133,32.49316],[102.307815,32.492117],[102.307839,32.491304],[102.307999,32.490345],[102.308286,32.4895],[102.308793,32.488586],[102.309694,32.487643],[102.31063,32.486997],[102.31153,32.486092],[102.311816,32.485284],[102.311739,32.4847],[102.311673,32.484208],[102.311089,32.483307],[102.310916,32.481787],[102.311219,32.480334],[102.311323,32.479834],[102.312199,32.478262],[102.313131,32.476667],[102.313395,32.476216],[102.313725,32.475775],[102.314213,32.475123],[102.314795,32.474618],[102.316193,32.474574],[102.317894,32.47461],[102.318993,32.474375],[102.320272,32.473921],[102.321372,32.473611],[102.322209,32.47337],[102.323588,32.472475],[102.324006,32.471633],[102.324606,32.470535],[102.32456,32.469129],[102.324727,32.467911],[102.324895,32.466657],[102.325061,32.465477],[102.325074,32.463553],[102.325561,32.461861],[102.325773,32.460608],[102.32624,32.459545],[102.326497,32.458256],[102.326407,32.456885],[102.325506,32.454868],[102.323044,32.449599],[102.322678,32.448703],[102.321883,32.447539],[102.321341,32.446714],[102.32067,32.445774],[102.320434,32.444918],[102.320409,32.442809],[102.32037,32.44118],[102.320417,32.43959],[102.32067,32.438412],[102.32075,32.437193],[102.320707,32.435712],[102.320407,32.434041],[102.320451,32.432562],[102.320371,32.430858],[102.319935,32.429369],[102.319737,32.428699],[102.319588,32.427807],[102.319457,32.426362],[102.319034,32.422949],[102.318856,32.421613],[102.318847,32.420988],[102.318842,32.420614],[102.31871,32.419168],[102.319057,32.41777],[102.319248,32.417219],[102.320608,32.416952],[102.321596,32.417454],[102.322646,32.417365],[102.323692,32.417387],[102.324757,32.416781],[102.326135,32.415885],[102.327275,32.415687],[102.329636,32.416958],[102.330141,32.417065],[102.331197,32.417287],[102.332497,32.417574],[102.334328,32.417613],[102.334971,32.417589],[102.335594,32.417565],[102.336382,32.417471],[102.336462,32.417397],[102.336616,32.417255],[102.336623,32.417249],[102.336666,32.417209],[102.336699,32.417179],[102.336709,32.417169],[102.33675,32.417132],[102.337247,32.416674],[102.338886,32.415163],[102.342031,32.412263],[102.343993,32.410485],[102.344227,32.410274],[102.345215,32.409296],[102.345283,32.409199],[102.345289,32.40919],[102.3453,32.409175],[102.345373,32.409072],[102.345772,32.408509],[102.345785,32.408491],[102.34617,32.407947],[102.349568,32.402136],[102.351006,32.400686],[102.352698,32.399464],[102.35438,32.397131],[102.355089,32.395259],[102.355108,32.394594],[102.354352,32.393616],[102.354038,32.392425],[102.353635,32.39127],[102.353459,32.38986],[102.353236,32.389172],[102.352677,32.387444],[102.352579,32.387141],[102.352564,32.386142],[102.352552,32.385068],[102.351995,32.383244],[102.351449,32.381049],[102.350881,32.379595],[102.351855,32.37906],[102.352253,32.378883],[102.353004,32.378529],[102.353545,32.377949],[102.353752,32.376806],[102.354044,32.375776],[102.354239,32.375077],[102.354258,32.374412],[102.355159,32.373432],[102.356533,32.372647],[102.357558,32.371891],[102.358235,32.371091],[102.35931,32.370115],[102.35968,32.369383],[102.359798,32.368312],[102.359888,32.366723],[102.360052,32.36558],[102.360385,32.364625],[102.36063,32.363705],[102.361068,32.360643],[102.361199,32.359129],[102.36127,32.358168],[102.361379,32.357431],[102.361414,32.35621],[102.361683,32.354477],[102.362164,32.353634],[102.362371,32.353271],[102.362957,32.352617],[102.363549,32.351741],[102.364567,32.351208],[102.366066,32.35061],[102.367472,32.350232],[102.367972,32.34954],[102.368694,32.348667],[102.369292,32.347606],[102.369589,32.346355],[102.370191,32.345146],[102.371335,32.343283],[102.372027,32.341928],[102.372799,32.340872],[102.373813,32.338969],[102.375079,32.337367],[102.376028,32.336203],[102.376615,32.335512],[102.376631,32.334957],[102.376298,32.334395],[102.375032,32.33349],[102.375252,32.332881],[102.37576,32.332763],[102.376519,32.332736],[102.377477,32.332756],[102.378605,32.332179],[102.37984,32.33139],[102.380272,32.330413],[102.381055,32.329529],[102.381861,32.328876],[102.381887,32.328856],[102.382089,32.328693],[102.382162,32.328655],[102.382502,32.328481],[102.382698,32.328381],[102.382758,32.32835],[102.383216,32.328116],[102.384245,32.327451],[102.38475,32.32725],[102.384819,32.327222],[102.385082,32.327118],[102.385102,32.32711],[102.385369,32.327003],[102.386012,32.326709],[102.386085,32.326675],[102.386572,32.326499],[102.387208,32.326269],[102.387618,32.326291],[102.387649,32.326293],[102.387743,32.326298],[102.388139,32.326319],[102.388387,32.326332],[102.388519,32.326339],[102.389165,32.326696],[102.389704,32.327264],[102.389636,32.328009],[102.38963,32.328077],[102.389561,32.328778],[102.389525,32.329151],[102.389487,32.329532],[102.389464,32.330346],[102.389392,32.331457],[102.389373,32.331759],[102.389149,32.332155],[102.388894,32.332607],[102.388925,32.333294],[102.389072,32.333468],[102.389526,32.333597],[102.390993,32.334108],[102.391188,32.334133],[102.392014,32.33424],[102.393033,32.334372],[102.394551,32.334625],[102.395766,32.334799],[102.396598,32.334668],[102.397563,32.334466],[102.399008,32.335154],[102.399234,32.333035],[102.399466,32.33021],[102.399947,32.327518],[102.400234,32.326324],[102.400363,32.32534],[102.400456,32.324518],[102.400633,32.322953],[102.400807,32.322453],[102.401235,32.321224],[102.401741,32.320095],[102.401858,32.318758],[102.402707,32.316632],[102.403697,32.315111],[102.405008,32.313397],[102.405829,32.312275],[102.406189,32.310741],[102.406383,32.309472],[102.406479,32.308814],[102.406578,32.308137],[102.406573,32.306147],[102.406573,32.30611],[102.406573,32.306104],[102.406573,32.305983],[102.406572,32.305719],[102.406572,32.305591],[102.406571,32.305404],[102.406571,32.305289],[102.40657,32.305096],[102.406569,32.304863],[102.406569,32.304796],[102.406568,32.304556],[102.406567,32.304287],[102.406566,32.304193],[102.406566,32.304154],[102.406566,32.304044],[102.406565,32.303804],[102.406564,32.303568],[102.406563,32.303463],[102.406563,32.303396],[102.406562,32.303179],[102.406534,32.302981],[102.406507,32.302783],[102.406478,32.302577],[102.406446,32.302345],[102.40643,32.302229],[102.406403,32.30204],[102.406373,32.301825],[102.406345,32.301622],[102.406323,32.301464],[102.4063,32.301298],[102.406304,32.301146],[102.406309,32.300995],[102.406314,32.300817],[102.406319,32.300652],[102.406325,32.300416],[102.40633,32.300231],[102.406333,32.300126],[102.406337,32.299987],[102.406341,32.299853],[102.406342,32.299808],[102.406432,32.298755],[102.406286,32.297647],[102.406307,32.296894],[102.407203,32.296611],[102.408561,32.296689],[102.40948,32.296754],[102.409512,32.296756],[102.410499,32.296826],[102.410568,32.29683],[102.412026,32.29686],[102.412283,32.296866],[102.413298,32.296535],[102.413604,32.296585],[102.414055,32.29669],[102.414842,32.296875],[102.41684,32.296757],[102.418769,32.296758],[102.419457,32.296758],[102.419915,32.296739],[102.421203,32.296688],[102.422145,32.29657],[102.423392,32.296415],[102.424268,32.296274],[102.425403,32.295821],[102.425946,32.295245],[102.426431,32.29473],[102.427089,32.293474],[102.427678,32.29248],[102.428025,32.291217],[102.428394,32.289825],[102.428442,32.289646],[102.428583,32.289111],[102.429164,32.288382],[102.429922,32.287892],[102.430116,32.287767],[102.430546,32.28719],[102.43056,32.287172],[102.430585,32.287138],[102.430613,32.2871],[102.430642,32.287061],[102.430652,32.287048],[102.430739,32.286932],[102.430826,32.286815],[102.430842,32.286793],[102.430894,32.286724],[102.431242,32.285408],[102.431586,32.284251],[102.431994,32.28392],[102.43216,32.283786],[102.432327,32.283519],[102.432813,32.282741],[102.432974,32.281421],[102.432511,32.280194],[102.432303,32.278708],[102.432357,32.278597],[102.432394,32.27852],[102.432833,32.277608],[102.433249,32.276081],[102.433659,32.274819],[102.433592,32.272754],[102.433464,32.270687],[102.433526,32.268466],[102.433452,32.268119],[102.433317,32.267488],[102.433196,32.266924],[102.433139,32.266782],[102.433073,32.266629],[102.433007,32.266472],[102.432961,32.26634],[102.432896,32.266178],[102.432849,32.266061],[102.432788,32.26591],[102.432709,32.265757],[102.43262,32.265584],[102.432531,32.265416],[102.432429,32.265219],[102.432316,32.265001],[102.432211,32.264868],[102.432121,32.264754],[102.431988,32.264584],[102.431843,32.2644],[102.431713,32.264233],[102.431545,32.264019],[102.431401,32.263838],[102.431296,32.263705],[102.431173,32.263549],[102.431113,32.26361],[102.430917,32.263808],[102.430749,32.263871],[102.43055,32.263945],[102.430244,32.264061],[102.430032,32.26414],[102.429846,32.26421],[102.429622,32.264307],[102.429491,32.264364],[102.429196,32.264492],[102.428911,32.264616],[102.42863,32.26474],[102.428333,32.264867],[102.428111,32.264902],[102.427928,32.264931],[102.42776,32.264957],[102.427519,32.264995],[102.427291,32.265031],[102.427144,32.265054],[102.426934,32.265119],[102.426658,32.265204],[102.42637,32.265294],[102.426128,32.265369],[102.425892,32.265442],[102.425699,32.265501],[102.425453,32.265654],[102.425256,32.265777],[102.425064,32.265896],[102.424874,32.266014],[102.424673,32.26614],[102.424513,32.266241],[102.424304,32.266372],[102.424033,32.266405],[102.423829,32.26643],[102.423554,32.266463],[102.423305,32.26658],[102.423073,32.266688],[102.422796,32.266818],[102.422632,32.266984],[102.422484,32.267134],[102.422254,32.267366],[102.422059,32.267564],[102.421921,32.267703],[102.42177,32.267856],[102.420893,32.268049],[102.420724,32.267411],[102.420628,32.266403],[102.420277,32.265602],[102.420045,32.265385],[102.419549,32.264922],[102.419002,32.264412],[102.418229,32.263126],[102.417456,32.26206],[102.417453,32.262056],[102.41745,32.262051],[102.416786,32.261297],[102.416699,32.261108],[102.416492,32.260656],[102.416143,32.259802],[102.416096,32.259672],[102.416011,32.259436],[102.415904,32.259139],[102.415796,32.258842],[102.415811,32.258313],[102.415819,32.258033],[102.415832,32.257572],[102.415802,32.257217],[102.415758,32.256703],[102.415692,32.255929],[102.415631,32.255493],[102.415592,32.255207],[102.415537,32.254814],[102.415461,32.254511],[102.415391,32.254232],[102.415257,32.253697],[102.415242,32.253404],[102.415223,32.253017],[102.415206,32.252674],[102.415178,32.252108],[102.415166,32.251793],[102.415155,32.251458],[102.415141,32.251063],[102.415139,32.251002],[102.415135,32.2509],[102.415131,32.250786],[102.415126,32.250681],[102.415122,32.250547],[102.415117,32.250437],[102.415114,32.250319],[102.415112,32.250244],[102.415108,32.250148],[102.415105,32.250051],[102.415101,32.24994],[102.415097,32.249807],[102.415093,32.249679],[102.415087,32.249517],[102.415083,32.249368],[102.415078,32.249232],[102.415075,32.249142],[102.415024,32.249023],[102.414938,32.248818],[102.414838,32.248624],[102.414781,32.248501],[102.41477,32.2484],[102.414747,32.248199],[102.414739,32.248127],[102.414724,32.248002],[102.414703,32.247831],[102.414679,32.247592],[102.414652,32.247353],[102.414632,32.247174],[102.414657,32.246967],[102.414686,32.246721],[102.414722,32.246418],[102.414757,32.246127],[102.414796,32.245802],[102.414839,32.245634],[102.414889,32.245437],[102.414936,32.245253],[102.414985,32.24506],[102.415006,32.244978],[102.415018,32.244933],[102.415031,32.24488],[102.41505,32.244809],[102.415068,32.244738],[102.415088,32.244659],[102.415101,32.244609],[102.415114,32.244559],[102.415129,32.244497],[102.415142,32.244446],[102.415146,32.244433],[102.415148,32.244403],[102.415152,32.244359],[102.415158,32.24429],[102.415166,32.2442],[102.415175,32.244101],[102.415181,32.244025],[102.415187,32.243961],[102.415192,32.243905],[102.415198,32.243836],[102.415202,32.24379],[102.415209,32.243711],[102.415221,32.243576],[102.415229,32.243481],[102.415238,32.243376],[102.415243,32.243317],[102.41525,32.24324],[102.415259,32.243138],[102.415269,32.243022],[102.41528,32.242898],[102.415292,32.242763],[102.415303,32.242639],[102.415315,32.242508],[102.415325,32.242392],[102.415337,32.242266],[102.415347,32.242148],[102.415355,32.242057],[102.415364,32.241956],[102.415371,32.241877],[102.415376,32.241816],[102.415384,32.241737],[102.41539,32.241667],[102.415421,32.241316],[102.415506,32.240951],[102.415533,32.240835],[102.415551,32.240761],[102.415572,32.240669],[102.415577,32.240649],[102.415604,32.240533],[102.415608,32.240515],[102.41565,32.240335],[102.415676,32.240225],[102.415704,32.240104],[102.415726,32.240027],[102.415764,32.239893],[102.415806,32.239744],[102.415843,32.239614],[102.415883,32.239472],[102.41593,32.239304],[102.415968,32.239168],[102.416023,32.238974],[102.416052,32.238872],[102.416079,32.238774],[102.41612,32.238631],[102.416143,32.23856],[102.416174,32.238463],[102.416218,32.238329],[102.416279,32.238147],[102.416352,32.237915],[102.41642,32.237706],[102.41649,32.23749],[102.416555,32.237289],[102.416619,32.237092],[102.416665,32.236948],[102.416716,32.236876],[102.416804,32.236747],[102.416916,32.236586],[102.417037,32.236412],[102.417174,32.236213],[102.417309,32.236018],[102.417414,32.235866],[102.417541,32.235682],[102.417639,32.235539],[102.41775,32.235438],[102.417853,32.235344],[102.418007,32.235202],[102.418158,32.235063],[102.418325,32.23491],[102.418473,32.234774],[102.418598,32.234659],[102.418705,32.234556],[102.418831,32.234433],[102.418983,32.234286],[102.419122,32.234151],[102.419239,32.234037],[102.419323,32.23387],[102.419399,32.233719],[102.419798,32.23362],[102.420495,32.233406],[102.421206,32.23329],[102.421705,32.233208],[102.422269,32.233116],[102.422776,32.233126],[102.42345,32.23314],[102.424149,32.233154],[102.424565,32.233198],[102.425297,32.233276],[102.426057,32.233454],[102.426517,32.233562],[102.427028,32.233792],[102.427614,32.234056],[102.428109,32.234279],[102.428598,32.234556],[102.428998,32.234783],[102.429395,32.234958],[102.429741,32.235167],[102.430175,32.235429],[102.430659,32.235721],[102.431154,32.23602],[102.431821,32.236423],[102.432415,32.236781],[102.432801,32.237072],[102.433231,32.237395],[102.433618,32.237687],[102.433961,32.237949],[102.434286,32.238198],[102.43467,32.238491],[102.434893,32.238843],[102.435111,32.239185],[102.43535,32.239616],[102.435513,32.239911],[102.435746,32.240476],[102.436012,32.241121],[102.436197,32.24157],[102.436425,32.242124],[102.436524,32.242362],[102.436598,32.242544],[102.436716,32.242829],[102.436897,32.243267],[102.43712,32.243808],[102.437305,32.244257],[102.437409,32.244509],[102.437561,32.244879],[102.437653,32.245144],[102.437759,32.245448],[102.437881,32.245799],[102.437776,32.246008],[102.437652,32.246254],[102.437637,32.246283],[102.43739,32.246546],[102.437136,32.246815],[102.437004,32.246956],[102.436843,32.247229],[102.436687,32.247494],[102.436559,32.247711],[102.436461,32.247878],[102.4364,32.247982],[102.436359,32.248052],[102.436342,32.248671],[102.43699,32.24993],[102.437021,32.249991],[102.437106,32.250155],[102.43736,32.250654],[102.437761,32.251441],[102.437815,32.251581],[102.438039,32.252164],[102.438405,32.253118],[102.438638,32.254395],[102.439364,32.255878],[102.439525,32.256395],[102.439581,32.256575],[102.439681,32.256895],[102.439515,32.257349],[102.438964,32.257827],[102.438868,32.258063],[102.438634,32.258636],[102.438666,32.259208],[102.438685,32.25955],[102.438684,32.260357],[102.438684,32.260652],[102.438684,32.260953],[102.439117,32.261941],[102.440476,32.262784],[102.441138,32.263809],[102.441852,32.264378],[102.442676,32.265112],[102.443079,32.265806],[102.443412,32.266237],[102.443397,32.266791],[102.44334,32.267658],[102.443329,32.267833],[102.443258,32.268332],[102.443246,32.268412],[102.443138,32.269167],[102.443232,32.269919],[102.443212,32.270637],[102.443153,32.271353],[102.442814,32.272488],[102.442715,32.273302],[102.442676,32.273379],[102.442267,32.274206],[102.441318,32.275166],[102.440295,32.276059],[102.440265,32.276111],[102.440042,32.276506],[102.439729,32.277058],[102.439512,32.277416],[102.439146,32.278018],[102.439004,32.278251],[102.438982,32.278347],[102.438884,32.278774],[102.438861,32.278874],[102.438698,32.279582],[102.4387,32.279674],[102.438715,32.280333],[102.438138,32.281807],[102.438077,32.281961],[102.437764,32.28276],[102.437639,32.283096],[102.437464,32.283566],[102.437437,32.283638],[102.43739,32.283764],[102.436614,32.285412],[102.436418,32.286909],[102.436342,32.287743],[102.436334,32.287824],[102.436307,32.288114],[102.436235,32.288407],[102.436202,32.288543],[102.436194,32.288578],[102.436182,32.288624],[102.436169,32.288678],[102.435917,32.289704],[102.436036,32.290947],[102.436316,32.291898],[102.436507,32.293305],[102.436708,32.294353],[102.436747,32.295033],[102.436772,32.295461],[102.436785,32.295692],[102.437007,32.297452],[102.437037,32.297687],[102.436929,32.298794],[102.436959,32.300459],[102.436964,32.301633],[102.436629,32.302605],[102.436339,32.30335],[102.436223,32.30475],[102.435919,32.305984],[102.435335,32.307636],[102.435152,32.308676],[102.434708,32.309417],[102.434185,32.310287],[102.433662,32.311092],[102.43301,32.312416],[102.432892,32.313138],[102.432873,32.31325],[102.432871,32.313262],[102.432874,32.313331],[102.432875,32.313348],[102.432875,32.313349],[102.432877,32.313359],[102.432877,32.313361],[102.432878,32.313389],[102.432948,32.314634],[102.433116,32.315485],[102.433206,32.316368],[102.433846,32.317747],[102.434105,32.318304],[102.434182,32.318469],[102.434412,32.318963],[102.434554,32.31927],[102.434672,32.319572],[102.434873,32.320088],[102.435123,32.320905],[102.435498,32.322131],[102.43588,32.323124],[102.435809,32.32385],[102.435787,32.324072],[102.435784,32.324108],[102.435761,32.324933],[102.435756,32.325081],[102.435736,32.325798],[102.435735,32.325853],[102.435728,32.326079],[102.436313,32.327135],[102.436392,32.328078],[102.436403,32.328213],[102.436415,32.328355],[102.436481,32.328474],[102.436548,32.328594],[102.436634,32.32875],[102.436744,32.328948],[102.43685,32.329139],[102.436936,32.329295],[102.437047,32.329495],[102.43713,32.329646],[102.437177,32.32987],[102.437211,32.330039],[102.437252,32.330237],[102.437254,32.330243],[102.437551,32.331684],[102.437515,32.332959],[102.437296,32.333477],[102.437072,32.333964],[102.436784,32.334713],[102.436948,32.335206],[102.437005,32.335257],[102.437413,32.33562],[102.437419,32.335626],[102.437468,32.33567],[102.437505,32.335685],[102.437611,32.335728],[102.437753,32.335786],[102.438076,32.335918],[102.43883,32.336226],[102.440769,32.336831],[102.441061,32.336939],[102.441245,32.337007],[102.441275,32.337018],[102.441805,32.337214],[102.444552,32.338229],[102.444639,32.338395],[102.444719,32.338546],[102.444737,32.338582],[102.444755,32.338616],[102.444765,32.338635],[102.445203,32.33947],[102.446265,32.341494],[102.44698,32.343262],[102.447546,32.344897],[102.447984,32.345262],[102.448742,32.345895],[102.449134,32.346058],[102.449219,32.346108],[102.449228,32.346117],[102.449363,32.346021],[102.449807,32.346111],[102.450239,32.346387],[102.450444,32.346518],[102.45045,32.346521],[102.450575,32.346601],[102.450859,32.346782],[102.451698,32.346864],[102.453604,32.347097],[102.454452,32.347055],[102.454496,32.347052],[102.454523,32.347051],[102.455753,32.346816],[102.455953,32.34682],[102.456977,32.346841],[102.458579,32.347678],[102.458786,32.347787],[102.460597,32.348667],[102.462705,32.349879],[102.464668,32.350827],[102.466106,32.351376],[102.467467,32.351923],[102.468904,32.352536],[102.470346,32.352955],[102.470661,32.353029],[102.471258,32.353168],[102.472326,32.353254],[102.473468,32.353472],[102.47458,32.354728],[102.475767,32.356051],[102.476598,32.356457],[102.478407,32.357402],[102.479785,32.358482],[102.480688,32.359019],[102.481338,32.359864],[102.482039,32.361072],[102.482135,32.362009],[102.482273,32.363674],[102.482675,32.364617],[102.483433,32.365983],[102.484561,32.367252],[102.485027,32.368093],[102.48628,32.369261],[102.486611,32.370566],[102.486269,32.371858],[102.486108,32.373257],[102.486154,32.37383],[102.487249,32.374059],[102.488027,32.374698],[102.488845,32.376117],[102.490394,32.377654],[102.490542,32.378956],[102.490509,32.38015],[102.490598,32.381346],[102.491049,32.382758],[102.491141,32.383851],[102.491462,32.385519],[102.491056,32.386914],[102.490778,32.390337],[102.490554,32.391787],[102.490756,32.393349],[102.490781,32.394648],[102.490508,32.395682],[102.48943,32.397011],[102.488665,32.398086],[102.487793,32.39864],[102.485717,32.400625],[102.483981,32.401421],[102.48292,32.402127],[102.482146,32.403566],[102.481929,32.404757],[102.481957,32.405952],[102.481934,32.406782],[102.481535,32.407917],[102.481502,32.409111],[102.481512,32.41093],[102.481419,32.412071],[102.480722,32.415121],[102.480625,32.416418],[102.480701,32.418082],[102.480725,32.419433],[102.480743,32.420991],[102.481169,32.423285],[102.481591,32.425735],[102.482403,32.427362],[102.482739,32.428511],[102.48343,32.430083],[102.484503,32.431143],[102.485528,32.431735],[102.48649,32.432378],[102.487322,32.433277],[102.488331,32.43444],[102.490313,32.435882],[102.491259,32.437096],[102.491415,32.438086],[102.491511,32.439075],[102.492023,32.440487],[102.492528,32.44216],[102.492802,32.443308],[102.493447,32.444359],[102.493962,32.445668],[102.494777,32.447191],[102.495789,32.44825],[102.496884,32.448531],[102.498921,32.448001],[102.499732,32.447445],[102.500299,32.446213],[102.501265,32.445927],[102.501934,32.445535],[102.502618,32.444584],[102.50465,32.442494],[102.506141,32.440494],[102.507601,32.43961],[102.509176,32.438931],[102.510628,32.438351],[102.511793,32.437308],[102.513027,32.435963],[102.514031,32.434258],[102.514308,32.432894],[102.513938,32.43111],[102.512401,32.428239],[102.511394,32.425733],[102.510669,32.423791],[102.510708,32.422371],[102.510749,32.422294],[102.511223,32.421402],[102.511236,32.421379],[102.511246,32.421359],[102.511263,32.421327],[102.511323,32.421215],[102.511402,32.421066],[102.511778,32.420464],[102.512634,32.419771],[102.513727,32.419184],[102.516419,32.419186],[102.518773,32.419233],[102.518846,32.419234],[102.520065,32.419258],[102.521922,32.419193],[102.523122,32.419217],[102.523884,32.419232],[102.52509,32.419256],[102.526508,32.419228],[102.527664,32.419205],[102.527846,32.419192],[102.528362,32.419155],[102.529342,32.419085],[102.531386,32.41872],[102.532553,32.418385],[102.532712,32.41834],[102.533156,32.418286],[102.533943,32.418191],[102.534201,32.418159],[102.534512,32.418121],[102.535523,32.418344],[102.536887,32.418777],[102.538407,32.419519],[102.538835,32.419728],[102.538959,32.419788],[102.540902,32.420733],[102.543321,32.421947],[102.543751,32.422217],[102.544321,32.422575],[102.546463,32.423992],[102.54649,32.42401],[102.546613,32.424091],[102.5482,32.425063],[102.548362,32.425162],[102.54848,32.425234],[102.548491,32.425241],[102.548496,32.425244],[102.548521,32.425262],[102.548552,32.425285],[102.548567,32.425296],[102.548572,32.4253],[102.548578,32.425304],[102.550491,32.426704],[102.55254,32.428367],[102.553757,32.429224],[102.553949,32.429358],[102.556042,32.431289],[102.556984,32.432157],[102.558222,32.432841],[102.560255,32.433513],[102.561318,32.433826],[102.562118,32.434004],[102.562561,32.434597],[102.562842,32.435544],[102.563736,32.436471],[102.564399,32.437458],[102.565107,32.438186],[102.565743,32.438718],[102.566501,32.439025],[102.567794,32.439374],[102.569919,32.440065],[102.571286,32.440513],[102.573031,32.441131],[102.574966,32.441786],[102.576027,32.442228],[102.577781,32.442489],[102.579065,32.44266],[102.579498,32.442717],[102.580868,32.44287],[102.581255,32.442913],[102.583009,32.443174],[102.584527,32.44369],[102.586495,32.444572],[102.588311,32.445386],[102.589935,32.446262],[102.591138,32.447097],[102.592072,32.447959],[102.592622,32.448911],[102.593035,32.449211],[102.59391,32.449423],[102.59475,32.449504],[102.595746,32.44949],[102.596137,32.449205],[102.596761,32.448763],[102.598182,32.448628],[102.598772,32.448623],[102.598918,32.448621],[102.599103,32.44862],[102.599369,32.448618],[102.600517,32.448672],[102.601208,32.44862],[102.601388,32.448466],[102.601593,32.44829],[102.601913,32.448017],[102.603164,32.447034],[102.604169,32.446696],[102.606124,32.446636],[102.607959,32.446736],[102.609444,32.447056],[102.61112,32.447413],[102.612682,32.447702],[102.61341,32.447871],[102.61394,32.447994],[102.614205,32.448056],[102.614386,32.448063],[102.61501,32.448087],[102.61585,32.44812],[102.61711,32.448241],[102.618083,32.448202],[102.618222,32.448197],[102.619196,32.448167],[102.619525,32.448157],[102.620972,32.448476],[102.62145,32.448637],[102.622301,32.448924],[102.623403,32.449237],[102.624124,32.44951],[102.625067,32.450048],[102.625449,32.450087],[102.626046,32.449222],[102.626744,32.448499],[102.626755,32.448488],[102.626764,32.448476],[102.627062,32.448116],[102.627704,32.447337],[102.628138,32.446858],[102.629403,32.446785],[102.630589,32.44684],[102.631846,32.447091],[102.632531,32.447266],[102.633019,32.447665],[102.633699,32.448002],[102.634037,32.448268],[102.634595,32.448896],[102.635334,32.449916],[102.635926,32.450707],[102.636745,32.451631],[102.637417,32.452261],[102.638217,32.452438],[102.639168,32.452684],[102.640118,32.452994],[102.641417,32.453083],[102.64168,32.453283],[102.641667,32.453802],[102.642062,32.454784],[102.642086,32.455336],[102.643154,32.455518],[102.644645,32.455777],[102.645651,32.456373],[102.646926,32.45709],[102.648555,32.458134],[102.648767,32.458034],[102.651823,32.45676],[102.652817,32.456279],[102.654573,32.455181],[102.655635,32.455067],[102.656853,32.455057],[102.657613,32.454505],[102.65831,32.453353],[102.658992,32.4528],[102.659429,32.452575],[102.660497,32.452295],[102.66137,32.452311],[102.661713,32.452318],[102.662136,32.452314],[102.662891,32.452306],[102.66374,32.452888],[102.665082,32.454111],[102.666433,32.455002],[102.667513,32.455754],[102.669418,32.456488],[102.671048,32.457217],[102.672094,32.457769],[102.672349,32.458506],[102.67209,32.459433],[102.671722,32.461523],[102.671691,32.462721],[102.671317,32.463546],[102.671747,32.463587],[102.672971,32.463344],[102.673834,32.46336],[102.675509,32.46389],[102.676399,32.464406],[102.677165,32.465119],[102.678424,32.466573],[102.679419,32.467557],[102.679673,32.468394],[102.680198,32.469335],[102.680831,32.469147],[102.681996,32.468137],[102.682959,32.467322],[102.683992,32.466842],[102.685268,32.4661],[102.686659,32.465427],[102.688008,32.464885],[102.689386,32.464744],[102.691043,32.464409],[102.691914,32.464125],[102.693445,32.464153],[102.694665,32.464042],[102.696304,32.464007],[102.696354,32.464006],[102.696979,32.464118],[102.698109,32.464471],[102.699758,32.464468],[102.701285,32.464629],[102.702303,32.464747],[102.703025,32.464161],[102.70442,32.463321],[102.705694,32.462646],[102.705837,32.462569],[102.707325,32.461777],[102.707743,32.461523],[102.70796,32.461391],[102.708442,32.461098],[102.709838,32.460224],[102.711503,32.459589],[102.712851,32.459081],[102.713919,32.458767],[102.7153,32.458493],[102.715839,32.458306],[102.717122,32.45786],[102.718069,32.457644],[102.718778,32.457557],[102.718971,32.457495],[102.719038,32.45753],[102.719421,32.45773],[102.719804,32.45793],[102.720187,32.45813],[102.720484,32.458292],[102.72078,32.458455],[102.721076,32.458617],[102.721076,32.458617],[102.721076,32.458618],[102.72121,32.458703],[102.721395,32.458822],[102.721395,32.458822],[102.721396,32.458822],[102.721596,32.458976],[102.721796,32.459129],[102.722062,32.459472],[102.722308,32.459787],[102.722556,32.460105],[102.722805,32.460424],[102.723109,32.460712],[102.723414,32.461001],[102.723718,32.46129],[102.723912,32.46144],[102.724215,32.461674],[102.724518,32.461909],[102.724837,32.462175],[102.725156,32.462442],[102.725403,32.46257],[102.725651,32.462699],[102.726048,32.462863],[102.726445,32.463027],[102.726843,32.463191],[102.72724,32.463355],[102.727607,32.463443],[102.727975,32.46353],[102.728342,32.463618],[102.72871,32.463705],[102.729077,32.463793],[102.729464,32.463963],[102.729851,32.464133],[102.730127,32.464255],[102.730403,32.464376],[102.730657,32.464488],[102.731,32.464685],[102.731342,32.464883],[102.731685,32.46508],[102.732028,32.465278],[102.732315,32.465468],[102.732603,32.465659],[102.732891,32.465849],[102.733179,32.466039],[102.733517,32.466256],[102.733855,32.466472],[102.734193,32.466689],[102.734531,32.466905],[102.734654,32.466915],[102.734988,32.466867],[102.73518,32.466712],[102.735235,32.466667],[102.735514,32.466379],[102.735793,32.46609],[102.736073,32.465801],[102.736321,32.465624],[102.73657,32.465447],[102.736818,32.465269],[102.736837,32.465252],[102.737156,32.464969],[102.737474,32.464685],[102.737786,32.464479],[102.737832,32.464449],[102.737995,32.464297],[102.738357,32.46415],[102.738719,32.464002],[102.739147,32.463917],[102.739518,32.464002],[102.739651,32.464013],[102.739675,32.464012],[102.739993,32.464036],[102.740311,32.464061],[102.740352,32.464071],[102.740441,32.464079],[102.740548,32.464119],[102.740923,32.464261],[102.741298,32.464402],[102.741655,32.464535],[102.742012,32.464669],[102.742212,32.464726],[102.742335,32.464726],[102.742497,32.46464],[102.74265,32.464528],[102.742897,32.464346],[102.743145,32.464165],[102.743392,32.463983],[102.743763,32.463788],[102.744134,32.463593],[102.744553,32.463441],[102.744801,32.463384],[102.745134,32.463374],[102.745464,32.463412],[102.745794,32.46345],[102.746123,32.463488],[102.746287,32.463552],[102.746522,32.463644],[102.746823,32.463761],[102.747123,32.463879],[102.747432,32.463979],[102.747742,32.464079],[102.747973,32.464103],[102.748275,32.464136],[102.748627,32.464207],[102.748979,32.464278],[102.749179,32.464221],[102.749341,32.464155],[102.749565,32.463957],[102.749578,32.463945],[102.749807,32.463726],[102.750031,32.463655],[102.750254,32.463584],[102.750511,32.463536],[102.750768,32.463488],[102.75113,32.463469],[102.75135,32.463488],[102.751473,32.463498],[102.751787,32.463498],[102.752148,32.463403],[102.752407,32.463352],[102.752681,32.463298],[102.752986,32.463284],[102.75329,32.46327],[102.753592,32.4632],[102.753893,32.46313],[102.754272,32.463043],[102.754651,32.462955],[102.754694,32.462948],[102.755034,32.46289],[102.755375,32.462832],[102.755689,32.462784],[102.755993,32.462813],[102.756118,32.462857],[102.756498,32.462994],[102.756679,32.463003],[102.756907,32.462955],[102.757288,32.462917],[102.757592,32.462984],[102.757897,32.463051],[102.758259,32.463212],[102.758582,32.463251],[102.758968,32.46327],[102.759353,32.463289],[102.759715,32.463327],[102.760048,32.463554],[102.760077,32.463574],[102.760372,32.463815],[102.760667,32.464056],[102.760962,32.464297],[102.761238,32.464483],[102.761514,32.464669],[102.761536,32.464681],[102.761856,32.46485],[102.762132,32.464973],[102.762504,32.465059],[102.76278,32.465126],[102.763056,32.465192],[102.763408,32.465211],[102.76376,32.46523],[102.764112,32.465325],[102.764464,32.465449],[102.764693,32.465497],[102.764988,32.465516],[102.765205,32.46558],[102.765422,32.465645],[102.765422,32.465645],[102.765422,32.465645],[102.765547,32.465686],[102.765721,32.465744],[102.765721,32.465745],[102.765721,32.465745],[102.766039,32.465868],[102.766358,32.465992],[102.766625,32.466249],[102.766798,32.466407],[102.766971,32.466565],[102.767291,32.466858],[102.766968,32.467029],[102.764686,32.468174],[102.763549,32.468578],[102.762228,32.468925],[102.761659,32.469075],[102.760208,32.469527],[102.757623,32.470277],[102.755668,32.470826],[102.754269,32.471703],[102.752602,32.473318],[102.750992,32.475094],[102.750684,32.475398],[102.750094,32.47598],[102.748555,32.477438],[102.746753,32.479422],[102.745918,32.480256],[102.743611,32.482391],[102.742389,32.483696],[102.740655,32.485416],[102.740527,32.485544],[102.738793,32.487293],[102.736673,32.48943],[102.734052,32.491559],[102.733208,32.492503],[102.732184,32.493648],[102.731148,32.495009],[102.730612,32.495811],[102.729782,32.497054],[102.728646,32.498293],[102.728629,32.498311],[102.72856,32.498386],[102.728511,32.49844],[102.728492,32.49846],[102.728485,32.498468],[102.728471,32.498483],[102.728395,32.498566],[102.728367,32.498597],[102.728166,32.498816],[102.727914,32.49909],[102.726435,32.500656],[102.724504,32.502743],[102.724398,32.502835],[102.72393,32.50324],[102.723844,32.503314],[102.723843,32.503314],[102.723842,32.503315],[102.723817,32.503337],[102.723805,32.503348],[102.723691,32.503446],[102.723365,32.503728],[102.722519,32.504459],[102.722037,32.504752],[102.721877,32.504849],[102.721875,32.50485],[102.721873,32.504851],[102.721542,32.505053],[102.721438,32.505116],[102.721414,32.50513],[102.721334,32.505179],[102.72121,32.505255],[102.721208,32.505255],[102.721208,32.505256],[102.721117,32.505311],[102.721051,32.505351],[102.720993,32.505386],[102.720291,32.505904],[102.720151,32.505862],[102.720048,32.505831],[102.720017,32.505821],[102.720007,32.505818],[102.720007,32.505818],[102.720006,32.505818],[102.719977,32.505809],[102.719934,32.505796],[102.719359,32.505622],[102.71921,32.505691],[102.719204,32.505693],[102.71919,32.5057],[102.719185,32.505702],[102.718915,32.505826],[102.718782,32.506142],[102.718745,32.50632],[102.718639,32.50683],[102.718252,32.5073],[102.717491,32.507658],[102.716892,32.507487],[102.716857,32.507477],[102.7166,32.507404],[102.716496,32.507374],[102.71638,32.507319],[102.71622,32.507243],[102.716046,32.50716],[102.715942,32.507111],[102.715862,32.507073],[102.71583,32.507058],[102.715692,32.506992],[102.715631,32.506963],[102.715568,32.506933],[102.714991,32.507453],[102.714349,32.508078],[102.713785,32.508121],[102.713287,32.508006],[102.713075,32.507869],[102.713074,32.507869],[102.713073,32.507868],[102.713047,32.507852],[102.713025,32.507837],[102.712937,32.507781],[102.712847,32.507723],[102.712821,32.507706],[102.712609,32.507569],[102.712168,32.507667],[102.712118,32.507679],[102.711979,32.507714],[102.711945,32.507722],[102.711917,32.507729],[102.711916,32.507729],[102.711915,32.507729],[102.71116,32.507914],[102.710723,32.508037],[102.71031,32.508154],[102.710292,32.508174],[102.710504,32.50832],[102.71083,32.508545],[102.710882,32.50897],[102.710806,32.5095],[102.710493,32.509494],[102.710127,32.509116],[102.710063,32.509093],[102.710039,32.509084],[102.709979,32.509063],[102.709954,32.509053],[102.709887,32.509029],[102.709817,32.509004],[102.709529,32.509284],[102.709496,32.509317],[102.709494,32.50933],[102.70949,32.509363],[102.709487,32.509387],[102.709475,32.50948],[102.709417,32.509952],[102.709095,32.510318],[102.708462,32.510571],[102.708224,32.510567],[102.708024,32.510563],[102.70764,32.510325],[102.707622,32.510314],[102.707532,32.510258],[102.707499,32.510238],[102.707407,32.510181],[102.7071,32.509963],[102.70694,32.510034],[102.706669,32.510155],[102.706659,32.51016],[102.70656,32.510204],[102.706534,32.510216],[102.706532,32.510217],[102.706529,32.510218],[102.706572,32.511015],[102.706493,32.51165],[102.706044,32.512066],[102.705732,32.512007],[102.705623,32.511782],[102.705623,32.511782],[102.705622,32.511781],[102.705622,32.511781],[102.705612,32.51176],[102.70556,32.511652],[102.705536,32.511604],[102.705316,32.511151],[102.704959,32.510401],[102.704482,32.510437],[102.704444,32.51044],[102.704394,32.510444],[102.704368,32.510512],[102.704368,32.510512],[102.704368,32.510512],[102.704323,32.510627],[102.704126,32.511129],[102.703558,32.511331],[102.70256,32.511154],[102.702492,32.511159],[102.702484,32.51116],[102.702421,32.511165],[102.702386,32.511168],[102.702384,32.511168],[102.702383,32.511168],[102.701667,32.511226],[102.701654,32.511227],[102.70162,32.51123],[102.70153,32.511237],[102.701513,32.511239],[102.701493,32.51124],[102.70036,32.511485],[102.699908,32.512007],[102.700016,32.512699],[102.700255,32.513128],[102.700242,32.513658],[102.699918,32.514077],[102.698342,32.514473],[102.697181,32.514664],[102.697136,32.514672],[102.697061,32.514684],[102.696895,32.514711],[102.696545,32.514754],[102.696356,32.514778],[102.695765,32.51485],[102.695268,32.514682],[102.695342,32.514081],[102.695344,32.514065],[102.695347,32.514047],[102.695347,32.514047],[102.695347,32.514046],[102.695447,32.513931],[102.695492,32.513878],[102.695798,32.513524],[102.695699,32.513401],[102.695663,32.513356],[102.695617,32.513298],[102.695589,32.513264],[102.695589,32.513264],[102.695589,32.513264],[102.695495,32.513147],[102.694769,32.513134],[102.694744,32.513133],[102.69471,32.513123],[102.694688,32.513116],[102.694515,32.513064],[102.694498,32.513059],[102.694386,32.513025],[102.694049,32.512923],[102.694022,32.512914],[102.693998,32.512907],[102.693927,32.512948],[102.693926,32.512948],[102.693926,32.512948],[102.693915,32.512954],[102.693903,32.512961],[102.693362,32.513267],[102.692987,32.51326],[102.692613,32.5132],[102.692448,32.513257],[102.691931,32.513438],[102.691602,32.513553],[102.69077,32.514228],[102.690441,32.514858],[102.690046,32.514998],[102.689303,32.515262],[102.688716,32.51535],[102.688046,32.515451],[102.687724,32.515764],[102.687266,32.516551],[102.686701,32.516594],[102.686671,32.516504],[102.686655,32.516456],[102.686651,32.516445],[102.686625,32.516366],[102.686613,32.516331],[102.686606,32.51631],[102.686468,32.5159],[102.686179,32.515759],[102.686095,32.515718],[102.686083,32.515712],[102.68597,32.515657],[102.685954,32.515649],[102.685788,32.515569],[102.684905,32.515818],[102.684625,32.515951],[102.68351,32.516482],[102.68311,32.517089],[102.682923,32.517373],[102.682352,32.517681],[102.681919,32.517461],[102.681926,32.51717],[102.681929,32.517076],[102.681933,32.516899],[102.681933,32.516894],[102.681934,32.516877],[102.681434,32.516815],[102.681022,32.51715],[102.681017,32.517154],[102.680962,32.517198],[102.680957,32.517203],[102.680882,32.517263],[102.680855,32.517285],[102.680667,32.517438],[102.680585,32.518179],[102.680821,32.518767],[102.680557,32.519293],[102.680065,32.518912],[102.679507,32.51869],[102.679367,32.518942],[102.679245,32.519163],[102.679067,32.519549],[102.679013,32.519669],[102.678979,32.519741],[102.678266,32.520027],[102.678163,32.520069],[102.677981,32.520142],[102.677587,32.520299],[102.677006,32.520979],[102.676171,32.521759],[102.675023,32.522587],[102.67383,32.522671],[102.673602,32.522737],[102.67358,32.522743],[102.673464,32.522776],[102.673439,32.522784],[102.673136,32.52287],[102.673223,32.522998],[102.673237,32.523004],[102.673251,32.52301],[102.673382,32.523068],[102.673403,32.523078],[102.673758,32.523236],[102.673671,32.523595],[102.672697,32.523936],[102.67211,32.524252],[102.671554,32.524486],[102.671291,32.524597],[102.670986,32.524491],[102.670793,32.524424],[102.670553,32.524212],[102.670528,32.524189],[102.670513,32.524176],[102.670492,32.524157],[102.670432,32.524104],[102.670432,32.524104],[102.670431,32.524103],[102.670378,32.524057],[102.669892,32.523459],[102.669558,32.52293],[102.669515,32.522935],[102.669513,32.522936],[102.66951,32.522936],[102.669403,32.522951],[102.6694,32.522951],[102.669399,32.522951],[102.669367,32.522955],[102.669294,32.522965],[102.669132,32.522987],[102.668774,32.523406],[102.669075,32.523706],[102.66941,32.524202],[102.66932,32.524691],[102.669042,32.52498],[102.668617,32.525005],[102.668159,32.5248],[102.668065,32.524686],[102.668035,32.52465],[102.668012,32.524621],[102.667961,32.524559],[102.667961,32.524559],[102.667961,32.524558],[102.667951,32.524547],[102.66786,32.524435],[102.667492,32.524569],[102.667477,32.524574],[102.667431,32.524591],[102.6674,32.524619],[102.667395,32.524624],[102.66728,32.524732],[102.666917,32.525072],[102.666295,32.525224],[102.666055,32.525546],[102.665926,32.526067],[102.665566,32.526551],[102.664905,32.526735],[102.664518,32.52676],[102.664161,32.527146],[102.66307,32.527518],[102.661943,32.527824],[102.661704,32.528114],[102.66135,32.528369],[102.660922,32.528492],[102.660698,32.528418],[102.66068,32.528412],[102.660672,32.52841],[102.660566,32.528375],[102.660548,32.528369],[102.660501,32.528353],[102.66008,32.528215],[102.660071,32.528223],[102.660043,32.528249],[102.66003,32.528261],[102.659953,32.528333],[102.659942,32.528343],[102.659902,32.528379],[102.659803,32.528471],[102.659987,32.528834],[102.659938,32.529226],[102.659581,32.529579],[102.658259,32.529947],[102.657409,32.529996],[102.657263,32.52996],[102.657244,32.529955],[102.657237,32.529953],[102.65713,32.529926],[102.657123,32.529925],[102.656565,32.529784],[102.65641,32.529815],[102.656314,32.529834],[102.655669,32.529963],[102.655662,32.529965],[102.655534,32.52999],[102.655517,32.529994],[102.654879,32.53081],[102.654094,32.531286],[102.653944,32.531337],[102.653643,32.53144],[102.653072,32.531635],[102.651862,32.531816],[102.651536,32.531764],[102.650709,32.531631],[102.650693,32.531584],[102.65053,32.531097],[102.650534,32.531043],[102.650535,32.531031],[102.650536,32.531019],[102.650545,32.530898],[102.650546,32.530877],[102.650605,32.530077],[102.650322,32.529826],[102.650269,32.52985],[102.650259,32.529855],[102.650175,32.529894],[102.650146,32.529907],[102.649875,32.530032],[102.649638,32.53014],[102.649002,32.530496],[102.647929,32.530966],[102.646955,32.531316],[102.646118,32.531954],[102.645453,32.532333],[102.645388,32.532371],[102.645358,32.532387],[102.645329,32.532404],[102.645286,32.532429],[102.645275,32.532438],[102.645266,32.532445],[102.64499,32.532668],[102.645046,32.532714],[102.645294,32.532915],[102.645509,32.533089],[102.645557,32.533128],[102.64564,32.533307],[102.645627,32.533787],[102.645269,32.533806],[102.644856,32.533577],[102.644796,32.533544],[102.644769,32.533529],[102.644706,32.533494],[102.644682,32.533481],[102.644681,32.53348],[102.644681,32.53348],[102.64468,32.53348],[102.644393,32.533265],[102.644197,32.533295],[102.644196,32.533295],[102.644196,32.533295],[102.644091,32.533311],[102.64409,32.533311],[102.64408,32.533313],[102.643938,32.533334],[102.643625,32.533382],[102.643052,32.533827],[102.643167,32.534021],[102.643403,32.534187],[102.643595,32.534421],[102.643747,32.534606],[102.643747,32.534607],[102.643747,32.534607],[102.643783,32.534908],[102.643805,32.535024],[102.643814,32.535071],[102.643861,32.535323],[102.643453,32.535653],[102.643005,32.535605],[102.643002,32.535605],[102.643001,32.535604],[102.642943,32.535598],[102.642909,32.535594],[102.642891,32.535593],[102.642613,32.535562],[102.642035,32.535411],[102.641925,32.535382],[102.641818,32.535354],[102.641818,32.535354],[102.641735,32.535332],[102.641687,32.535319],[102.641299,32.535284],[102.641281,32.535282],[102.641211,32.535275],[102.641096,32.535265],[102.640967,32.535253],[102.640669,32.535225],[102.640672,32.535242],[102.640675,32.535254],[102.640694,32.535356],[102.640747,32.53564],[102.640563,32.5359],[102.640427,32.535948],[102.640397,32.535959],[102.640236,32.536015],[102.640215,32.536023],[102.64016,32.536042],[102.64012,32.536042],[102.639752,32.536035],[102.639724,32.536034],[102.63956,32.536031],[102.639527,32.536031],[102.639376,32.536028],[102.639317,32.536027],[102.638913,32.536207],[102.638812,32.536694],[102.638761,32.536728],[102.638676,32.536787],[102.638603,32.536836],[102.638587,32.536847],[102.638587,32.536848],[102.638586,32.536848],[102.638572,32.536858],[102.638505,32.536904],[102.638494,32.536911],[102.638493,32.536912],[102.638376,32.536992],[102.638376,32.536992],[102.638375,32.536993],[102.638283,32.537056],[102.638224,32.537096],[102.637999,32.537479],[102.637977,32.537517],[102.637927,32.537602],[102.637863,32.537711],[102.637853,32.537728],[102.637723,32.537886],[102.637682,32.537935],[102.637676,32.537942],[102.637616,32.538015],[102.637606,32.538026],[102.637599,32.538036],[102.637578,32.538061],[102.637513,32.538057],[102.637285,32.538045],[102.637269,32.538044],[102.637093,32.538035],[102.637073,32.538034],[102.636613,32.538009],[102.636583,32.538007],[102.636515,32.538003],[102.636483,32.538003],[102.636457,32.538002],[102.636312,32.538],[102.635849,32.537991],[102.635572,32.538437],[102.635523,32.538508],[102.635512,32.538524],[102.635443,32.538626],[102.635439,32.538632],[102.63535,32.538763],[102.635295,32.538845],[102.634716,32.538909],[102.634383,32.539042],[102.634369,32.539048],[102.63427,32.539088],[102.634269,32.539088],[102.634268,32.539088],[102.634267,32.539116],[102.634263,32.539258],[102.634261,32.539351],[102.63426,32.539366],[102.63426,32.539389],[102.634332,32.539479],[102.634336,32.539484],[102.634465,32.539644],[102.634475,32.539656],[102.634502,32.539652],[102.634853,32.539595],[102.635012,32.539569],[102.635099,32.539555],[102.635224,32.539591],[102.635234,32.539594],[102.635296,32.539612],[102.635763,32.539745],[102.635773,32.539748],[102.635803,32.539756],[102.635805,32.539763],[102.635849,32.539881],[102.635864,32.539923],[102.635927,32.540097],[102.635744,32.540319],[102.635162,32.540337],[102.635121,32.540338],[102.634989,32.540342],[102.634727,32.540324],[102.634704,32.540323],[102.634236,32.540291],[102.634144,32.540353],[102.633965,32.540473],[102.633956,32.5405],[102.633821,32.540884],[102.633902,32.541164],[102.633902,32.541164],[102.633902,32.541166],[102.633928,32.541255],[102.633928,32.541256],[102.633933,32.541275],[102.633966,32.541389],[102.633984,32.541451],[102.634002,32.541525],[102.634022,32.541607],[102.634025,32.541618],[102.634028,32.54163],[102.634043,32.541692],[102.634043,32.541694],[102.634044,32.541696],[102.634104,32.541942],[102.633512,32.542532],[102.632525,32.542927],[102.632235,32.542876],[102.632217,32.542873],[102.632135,32.542859],[102.632132,32.542858],[102.63213,32.542858],[102.632039,32.542842],[102.631989,32.54277],[102.631935,32.542694],[102.631934,32.542692],[102.631933,32.54269],[102.631826,32.542538],[102.631837,32.542473],[102.63184,32.542455],[102.631842,32.542444],[102.631869,32.542291],[102.631889,32.542171],[102.631892,32.542158],[102.63193,32.541938],[102.631845,32.541759],[102.631836,32.54174],[102.63176,32.541581],[102.631678,32.541408],[102.631678,32.541408],[102.631678,32.541407],[102.631635,32.541408],[102.630901,32.541419],[102.630886,32.541419],[102.630884,32.541419],[102.630883,32.541419],[102.630881,32.541419],[102.630813,32.54142],[102.630765,32.541421],[102.630765,32.541421],[102.630756,32.541421],[102.630568,32.541424],[102.629999,32.541316],[102.629969,32.541311],[102.62988,32.541294],[102.629861,32.54129],[102.629685,32.541257],[102.629664,32.541304],[102.629571,32.54151],[102.629563,32.541528],[102.629517,32.541628],[102.629508,32.54165],[102.62945,32.541779],[102.629441,32.541815],[102.629349,32.542228],[102.629265,32.542271],[102.62922,32.542295],[102.629207,32.542302],[102.629114,32.54235],[102.629104,32.542355],[102.629047,32.542384],[102.628719,32.542554],[102.628708,32.54261],[102.628705,32.542621],[102.628685,32.542719],[102.628655,32.54286],[102.628621,32.543023],[102.628618,32.543041],[102.628567,32.543054],[102.628128,32.543169],[102.627813,32.543251],[102.626966,32.542985],[102.626669,32.542891],[102.62662,32.542915],[102.626593,32.542927],[102.626426,32.543006],[102.626403,32.543016],[102.626329,32.543051],[102.62613,32.543144],[102.625855,32.543477],[102.62537,32.543724],[102.625351,32.543734],[102.62531,32.543755],[102.62528,32.54377],[102.625001,32.543912],[102.624776,32.544049],[102.624695,32.544097],[102.624693,32.544098],[102.624692,32.544099],[102.624691,32.5441],[102.624451,32.544246],[102.624279,32.54435],[102.622941,32.544625],[102.62239,32.545329],[102.621734,32.545806],[102.6217,32.545832],[102.621648,32.545869],[102.621587,32.545914],[102.621511,32.545969],[102.621485,32.545988],[102.62146,32.546013],[102.621385,32.546088],[102.621333,32.546139],[102.621213,32.546259],[102.621212,32.54626],[102.621211,32.546261],[102.621171,32.546301],[102.620892,32.546578],[102.620664,32.54663],[102.620648,32.546634],[102.620533,32.546661],[102.620532,32.546661],[102.62053,32.546661],[102.620412,32.546688],[102.620133,32.546752],[102.619927,32.546707],[102.619825,32.546684],[102.619653,32.546646],[102.619616,32.546638],[102.619578,32.54663],[102.619383,32.546587],[102.618569,32.547173],[102.61838,32.547621],[102.618233,32.548144],[102.618076,32.549043],[102.617824,32.550203],[102.617631,32.550764],[102.617712,32.551066],[102.618283,32.551302],[102.618628,32.551647],[102.61853,32.552021],[102.618168,32.552277],[102.617194,32.552183],[102.617168,32.552177],[102.616737,32.552072],[102.616357,32.55198],[102.616033,32.552462],[102.616057,32.553252],[102.615821,32.553774],[102.614949,32.554847],[102.614437,32.555777],[102.614384,32.55592],[102.614365,32.555971],[102.614348,32.556017],[102.614332,32.556062],[102.614149,32.556561],[102.614135,32.557124],[102.61425,32.557803],[102.614545,32.558372],[102.614831,32.559317],[102.615034,32.560035],[102.615287,32.560529],[102.615703,32.560952],[102.615734,32.560985],[102.615762,32.561012],[102.616151,32.561409],[102.616296,32.56148],[102.616302,32.561483],[102.616353,32.561508],[102.616994,32.561823],[102.617028,32.561839],[102.617147,32.56201],[102.617148,32.56201],[102.617228,32.562125],[102.617354,32.562305],[102.617369,32.562326],[102.61737,32.562328],[102.617371,32.562329],[102.617405,32.562378],[102.617435,32.562421],[102.617455,32.562449],[102.617449,32.562674],[102.617223,32.562857],[102.617187,32.562887],[102.617086,32.562968],[102.616705,32.563109],[102.616523,32.563175],[102.616504,32.563183],[102.616316,32.563555],[102.616205,32.564417],[102.616144,32.565017],[102.616011,32.565504],[102.615988,32.565587],[102.615899,32.565915],[102.6159,32.565956],[102.615901,32.566006],[102.61592,32.56678],[102.615962,32.566833],[102.616059,32.56696],[102.616069,32.566972],[102.616119,32.567038],[102.616138,32.567062],[102.616478,32.567504],[102.617125,32.568231],[102.617211,32.56852],[102.617235,32.568598],[102.617237,32.568605],[102.617303,32.568825],[102.617329,32.568911],[102.617329,32.568932],[102.61733,32.569001],[102.617331,32.56903],[102.617347,32.569889],[102.617188,32.570863],[102.617127,32.571108],[102.617046,32.571433],[102.617039,32.571461],[102.616982,32.571949],[102.617373,32.572257],[102.618068,32.572834],[102.618411,32.573291],[102.618447,32.573593],[102.618232,32.573802],[102.61822,32.573814],[102.618214,32.573818],[102.618213,32.573818],[102.618213,32.573818],[102.618204,32.573824],[102.618086,32.573899],[102.618041,32.573927],[102.617779,32.574093],[102.617618,32.574196],[102.617617,32.574197],[102.617617,32.574197],[102.617588,32.574215],[102.617564,32.574246],[102.617547,32.574268],[102.617547,32.574268],[102.617546,32.574269],[102.617128,32.574808],[102.617024,32.57537],[102.616962,32.576045],[102.616933,32.577135],[102.617007,32.57732],[102.617135,32.577638],[102.617158,32.577697],[102.617264,32.577963],[102.617266,32.577968],[102.617266,32.577979],[102.617244,32.578794],[102.617495,32.5794],[102.617835,32.579564],[102.6179,32.579595],[102.617943,32.579616],[102.618065,32.579674],[102.618076,32.579699],[102.618076,32.579699],[102.618076,32.579699],[102.618089,32.579725],[102.618191,32.57994],[102.618139,32.580202],[102.61809,32.580389],[102.617912,32.580468],[102.617675,32.580574],[102.617655,32.580583],[102.617559,32.580625],[102.617559,32.580625],[102.617559,32.580626],[102.617533,32.580637],[102.617281,32.580749],[102.617094,32.581122],[102.617205,32.581575],[102.61721,32.581597],[102.617214,32.581612],[102.617246,32.581645],[102.61735,32.581753],[102.617388,32.581793],[102.617473,32.581881],[102.617738,32.581961],[102.617747,32.582039],[102.61777,32.582225],[102.617774,32.582262],[102.61777,32.582433],[102.617768,32.582485],[102.617767,32.582521],[102.617765,32.5826],[102.617679,32.582635],[102.617522,32.582697],[102.617414,32.582741],[102.617406,32.582744],[102.617249,32.582799],[102.617226,32.582808],[102.6166,32.583029],[102.616367,32.583438],[102.616362,32.583475],[102.616362,32.583477],[102.616361,32.583478],[102.61636,32.583488],[102.616351,32.583557],[102.616346,32.583592],[102.616342,32.583623],[102.616311,32.58385],[102.616365,32.584163],[102.616381,32.584261],[102.616384,32.584277],[102.616389,32.584305],[102.616401,32.584379],[102.616404,32.584397],[102.616407,32.584412],[102.616427,32.584529],[102.616227,32.585352],[102.616278,32.585615],[102.61628,32.585623],[102.616338,32.585925],[102.616344,32.585956],[102.616352,32.585974],[102.616478,32.586297],[102.616519,32.586401],[102.616552,32.586486],[102.616534,32.586583],[102.616514,32.586694],[102.616449,32.587048],[102.616342,32.587288],[102.616305,32.58737],[102.616298,32.587384],[102.616253,32.587485],[102.616247,32.587499],[102.616242,32.587511],[102.616241,32.587512],[102.616241,32.587512],[102.616166,32.587681],[102.616333,32.58806],[102.616396,32.588181],[102.616442,32.58827],[102.616519,32.588418],[102.616522,32.588425],[102.616564,32.588505],[102.616629,32.58863],[102.616997,32.588719],[102.616998,32.588719],[102.616999,32.58872],[102.617029,32.588727],[102.617206,32.58877],[102.617207,32.58877],[102.617208,32.588771],[102.617467,32.588833],[102.617815,32.589103],[102.617765,32.589328],[102.617676,32.589356],[102.617661,32.589361],[102.617608,32.589378],[102.617561,32.589394],[102.617546,32.589399],[102.617158,32.589524],[102.617122,32.589536],[102.617074,32.589552],[102.616999,32.589576],[102.616972,32.589585],[102.616779,32.589647],[102.616592,32.59002],[102.6166,32.5901],[102.616607,32.59016],[102.616616,32.590252],[102.61662,32.590286],[102.616627,32.590359],[102.617152,32.590885],[102.617265,32.590998],[102.617276,32.59101],[102.617339,32.591066],[102.617358,32.591082],[102.617441,32.591156],[102.617462,32.591174],[102.61797,32.591624],[102.618629,32.5919],[102.618865,32.592067],[102.619065,32.592209],[102.619144,32.592549],[102.618648,32.592833],[102.61849,32.592893],[102.618389,32.592931],[102.618246,32.592986],[102.618143,32.593025],[102.617866,32.59313],[102.617563,32.593467],[102.617771,32.593939],[102.618056,32.594319],[102.618823,32.594552],[102.619408,32.59475],[102.619447,32.594821],[102.619482,32.594884],[102.619536,32.59498],[102.619583,32.595065],[102.619583,32.595065],[102.619583,32.595066],[102.619571,32.595143],[102.619564,32.595186],[102.619539,32.595345],[102.619523,32.595354],[102.619127,32.595587],[102.619023,32.595659],[102.618996,32.595678],[102.618947,32.595711],[102.618912,32.595736],[102.61891,32.595738],[102.618908,32.595739],[102.618602,32.595951],[102.618557,32.596287],[102.618556,32.596293],[102.618919,32.596421],[102.618953,32.596433],[102.619213,32.596524],[102.619244,32.596551],[102.619282,32.596584],[102.61935,32.596645],[102.619548,32.59682],[102.619609,32.596874],[102.619648,32.596927],[102.620002,32.597411],[102.620046,32.59747],[102.62011,32.597558],[102.620125,32.597578],[102.620143,32.597602],[102.620386,32.598168],[102.620451,32.598311],[102.620462,32.598333],[102.62052,32.598459],[102.620521,32.598461],[102.620521,32.598461],[102.620541,32.598504],[102.620541,32.598505],[102.620541,32.598506],[102.62056,32.598545],[102.620145,32.598912],[102.62012,32.598941],[102.620093,32.598973],[102.619988,32.599097],[102.619979,32.599108],[102.619941,32.599153],[102.619624,32.599528],[102.619614,32.59954],[102.619574,32.599587],[102.619776,32.599746],[102.619899,32.599843],[102.619891,32.599908],[102.619889,32.599925],[102.619879,32.600015],[102.619878,32.600022],[102.619875,32.600045],[102.619852,32.600247],[102.619406,32.600395],[102.619385,32.600493],[102.619374,32.600544],[102.619357,32.600628],[102.619352,32.60065],[102.61934,32.60071],[102.619337,32.600725],[102.61933,32.600758],[102.619321,32.600799],[102.619576,32.601376],[102.619599,32.601428],[102.619655,32.601528],[102.619753,32.601704],[102.619784,32.601759],[102.619805,32.601797],[102.61981,32.601806],[102.620164,32.602357],[102.620595,32.602738],[102.620996,32.603038],[102.620927,32.603277],[102.620717,32.603433],[102.620715,32.603434],[102.620713,32.603436],[102.620627,32.6035],[102.620613,32.60351],[102.620611,32.603512],[102.620609,32.603513],[102.620366,32.603694],[102.620353,32.603704],[102.620236,32.603791],[102.620229,32.603796],[102.620124,32.603874],[102.620124,32.603875],[102.620124,32.603876],[102.620081,32.604039],[102.620076,32.604059],[102.620063,32.604105],[102.620037,32.604206],[102.620019,32.604272],[102.619949,32.604537],[102.619936,32.604566],[102.619885,32.604681],[102.619715,32.605065],[102.619722,32.605083],[102.619725,32.605092],[102.619734,32.605116],[102.619765,32.605202],[102.619773,32.605222],[102.619777,32.605235],[102.619869,32.605487],[102.619891,32.605547],[102.619896,32.605554],[102.620058,32.605784],[102.620064,32.605791],[102.620064,32.605792],[102.620065,32.605793],[102.620241,32.606042],[102.620407,32.606276],[102.620674,32.606738],[102.620675,32.606739],[102.620675,32.606739],[102.620718,32.606814],[102.620722,32.60682],[102.620723,32.606821],[102.620723,32.606822],[102.620828,32.607003],[102.621488,32.607016],[102.621904,32.607142],[102.621934,32.607151],[102.622028,32.607179],[102.62203,32.60718],[102.622031,32.60718],[102.62205,32.607186],[102.62205,32.607187],[102.62205,32.607188],[102.622056,32.607288],[102.622056,32.607289],[102.622056,32.60729],[102.622058,32.60732],[102.622072,32.607559],[102.621903,32.607706],[102.621892,32.607716],[102.621809,32.607789],[102.621802,32.607795],[102.621774,32.607819],[102.621653,32.607924],[102.621549,32.608132],[102.62152,32.608188],[102.621798,32.608406],[102.622085,32.60853],[102.622103,32.608538],[102.62212,32.608545],[102.622575,32.608741],[102.623239,32.608937],[102.623824,32.609111],[102.624476,32.609443],[102.625058,32.609693],[102.625316,32.609805],[102.6257,32.610144],[102.626085,32.610485],[102.626103,32.610498],[102.626128,32.610517],[102.62614,32.610526],[102.626181,32.610556],[102.626207,32.610575],[102.626208,32.610576],[102.626208,32.610576],[102.626225,32.610588],[102.626455,32.610758],[102.626729,32.610703],[102.626824,32.610684],[102.62685,32.610678],[102.627056,32.610636],[102.627375,32.610483],[102.627402,32.61047],[102.627463,32.61044],[102.627524,32.610411],[102.627534,32.610406],[102.628151,32.610442],[102.628191,32.610445],[102.628193,32.610445],[102.628194,32.610445],[102.628207,32.610464],[102.628234,32.610503],[102.628258,32.610537],[102.628436,32.610796],[102.628396,32.611017],[102.628373,32.61114],[102.628373,32.611142],[102.628372,32.611145],[102.628363,32.611194],[102.628333,32.611245],[102.628327,32.611257],[102.628317,32.611274],[102.628165,32.611536],[102.627812,32.611823],[102.627149,32.611975],[102.627071,32.611993],[102.627054,32.611997],[102.627017,32.612006],[102.626968,32.612017],[102.626966,32.612017],[102.626965,32.612018],[102.626957,32.612019],[102.626769,32.612071],[102.626761,32.612073],[102.626749,32.612076],[102.626707,32.612088],[102.626667,32.612099],[102.626667,32.612099],[102.626667,32.612099],[102.62666,32.612101],[102.626415,32.612168],[102.626406,32.612171],[102.626355,32.612185],[102.626338,32.61219],[102.626323,32.612194],[102.626323,32.612194],[102.626323,32.612194],[102.626309,32.612255],[102.626302,32.612287],[102.626252,32.612512],[102.626312,32.612569],[102.625465,32.612859],[102.624053,32.613234],[102.623637,32.613392],[102.623002,32.613632],[102.621617,32.614163],[102.620392,32.614882],[102.619166,32.615647],[102.61789,32.616226],[102.617115,32.616743],[102.616607,32.617083],[102.615944,32.617552],[102.615944,32.617552],[102.615932,32.61756],[102.615859,32.617612],[102.615854,32.617616],[102.615852,32.617617],[102.615849,32.617619],[102.615713,32.617715],[102.614268,32.618476],[102.613601,32.618651],[102.61344,32.618693],[102.613437,32.618693],[102.613434,32.618693],[102.613217,32.618688],[102.613205,32.618688],[102.613203,32.618688],[102.613201,32.618688],[102.613188,32.618688],[102.612932,32.618683],[102.611947,32.618664],[102.611765,32.618661],[102.61174,32.61866],[102.611682,32.618659],[102.61147,32.618655],[102.611469,32.618655],[102.611467,32.618655],[102.61119,32.618646],[102.611136,32.618644],[102.611033,32.618641],[102.608017,32.618543],[102.606769,32.618055],[102.606245,32.617966],[102.606222,32.617962],[102.606214,32.617961],[102.606199,32.617958],[102.606198,32.617958],[102.605241,32.617794],[102.603269,32.617757],[102.602074,32.617363],[102.602038,32.617348],[102.601474,32.617115],[102.60143,32.617097],[102.601357,32.617067],[102.601329,32.617056],[102.600466,32.6167],[102.600068,32.616536],[102.597516,32.615606],[102.595497,32.615288],[102.595396,32.615221],[102.595355,32.615193],[102.582898,32.606836],[102.582228,32.607287],[102.581482,32.608525],[102.58152,32.609175],[102.581008,32.609861],[102.57961,32.610901],[102.578108,32.611707],[102.576709,32.612793],[102.575478,32.613697],[102.573846,32.615289],[102.573049,32.616387],[102.571868,32.617478],[102.571581,32.617982],[102.571601,32.618039],[102.57126,32.617698],[102.569487,32.616365],[102.568248,32.615552],[102.566533,32.614127],[102.564395,32.612091],[102.563974,32.611707],[102.563718,32.611475],[102.562416,32.61029],[102.562163,32.610092],[102.561452,32.609536],[102.561153,32.609302],[102.560591,32.608863],[102.558981,32.607625],[102.557963,32.606542],[102.557915,32.606495],[102.556955,32.605545],[102.555829,32.604595],[102.554367,32.603963],[102.552908,32.603193],[102.551884,32.60257],[102.551303,32.60177],[102.550905,32.600277],[102.550447,32.59897],[102.550293,32.598595],[102.550069,32.596782],[102.549878,32.595711],[102.549407,32.594913],[102.548332,32.59415],[102.54731,32.593434],[102.546462,32.592397],[102.545948,32.591135],[102.545921,32.590114],[102.545678,32.588996],[102.54536,32.587976],[102.544673,32.5867],[102.543554,32.585416],[102.542467,32.584703],[102.54218,32.584338],[102.541791,32.583844],[102.541491,32.583462],[102.540609,32.582305],[102.539476,32.581509],[102.537194,32.580568],[102.536107,32.579855],[102.535204,32.579471],[102.534077,32.578471],[102.532809,32.577347],[102.531688,32.576144],[102.531133,32.575374],[102.530854,32.574988],[102.530168,32.573712],[102.529045,32.572591],[102.527781,32.571344],[102.526843,32.570471],[102.526094,32.569723],[102.5254,32.568732],[102.523355,32.569669],[102.522416,32.570587],[102.521822,32.571186],[102.521015,32.571679],[102.520208,32.572172],[102.519256,32.572703],[102.518304,32.573234],[102.517669,32.573588],[102.517034,32.573942],[102.516473,32.574236],[102.515912,32.57453],[102.515348,32.57403],[102.514792,32.573286],[102.514165,32.571605],[102.513242,32.568451],[102.51295,32.567733],[102.512657,32.567015],[102.512405,32.566541],[102.512154,32.566068],[102.511419,32.564832],[102.510436,32.563876],[102.50877,32.563232],[102.507486,32.562718],[102.506481,32.562576],[102.504697,32.562744],[102.503587,32.562885],[102.502444,32.562496],[102.501691,32.561911],[102.500606,32.561157],[102.500186,32.560653],[102.499293,32.559765],[102.49861,32.559286],[102.497559,32.558799],[102.496792,32.55869],[102.496292,32.558183],[102.495354,32.557636],[102.494116,32.557301],[102.492686,32.557272],[102.491842,32.557256],[102.489647,32.557056],[102.487423,32.556546],[102.486081,32.555991],[102.485368,32.555262],[102.484481,32.554188],[102.483219,32.553417],[102.481977,32.553206],[102.480878,32.553153],[102.479813,32.553193],[102.478815,32.553484],[102.477734,32.554084],[102.476735,32.554374],[102.475829,32.553983],[102.474416,32.553365],[102.47367,32.55248],[102.473065,32.551846],[102.472159,32.551424],[102.471013,32.550438],[102.470299,32.54974],[102.468744,32.548963],[102.467287,32.548592],[102.46605,32.548225],[102.4643,32.547848],[102.463179,32.547266],[102.460086,32.546365],[102.459078,32.546094],[102.458958,32.546062],[102.457791,32.545821],[102.456446,32.54539],[102.455121,32.54555],[102.454127,32.545685],[102.453052,32.546067],[102.452302,32.546642],[102.451482,32.547123],[102.451184,32.547272],[102.450201,32.54573],[102.449856,32.544946],[102.449447,32.54385],[102.448991,32.543126],[102.448533,32.542433],[102.448003,32.541739],[102.446959,32.53973],[102.446332,32.538567],[102.445894,32.537191],[102.445777,32.536164],[102.445949,32.535266],[102.446018,32.534118],[102.446146,32.532194],[102.445887,32.530977],[102.445242,32.530436],[102.444486,32.529924],[102.443733,32.529318],[102.443353,32.528502],[102.44224,32.526367],[102.441493,32.525544],[102.440397,32.524124],[102.439554,32.522802],[102.438827,32.521264],[102.438334,32.520571],[102.437275,32.51912],[102.436642,32.518175],[102.436476,32.51755],[102.43655,32.516247],[102.436475,32.515003],[102.436284,32.514005],[102.435728,32.512906],[102.434672,32.511362],[102.433868,32.510285],[102.433824,32.510227],[102.43312,32.509575],[102.432931,32.509401],[102.432183,32.50864],[102.431598,32.508597],[102.430677,32.508733],[102.429867,32.508841],[102.429025,32.508824],[102.428243,32.509243],[102.427608,32.509634],[102.426945,32.509744],[102.426506,32.509704],[102.425981,32.508855],[102.425522,32.508224],[102.425108,32.507315],[102.424621,32.506404],[102.423749,32.504832],[102.423334,32.503954],[102.422733,32.503165],[102.421837,32.502463],[102.420953,32.501327],[102.419839,32.500527],[102.419134,32.499549],[102.418382,32.498912],[102.417991,32.498501],[102.41708,32.498295],[102.416129,32.498214],[102.415415,32.497547],[102.414671,32.49663],[102.414039,32.495654],[102.413291,32.494893],[102.412626,32.493823],[102.412076,32.492538],[102.411555,32.491533],[102.4104,32.490262],[102.410346,32.490203],[102.409793,32.490316],[102.408235,32.490968],[102.406641,32.491587],[102.404943,32.492018],[102.403426,32.492484],[102.401838,32.492886],[102.39955,32.493429],[102.398591,32.493627],[102.39755,32.494134],[102.396198,32.495255],[102.395597,32.495771],[102.394946,32.49672],[102.39345,32.49902],[102.392357,32.500053],[102.39145,32.500998],[102.390805,32.501761],[102.388941,32.502841],[102.387068,32.5042],[102.38572,32.505197],[102.385074,32.50596],[102.383365,32.506733],[102.382615,32.507307],[102.382738,32.508149],[102.383064,32.509554],[102.383438,32.510556],[102.383621,32.511833],[102.383698,32.512953],[102.383724,32.5146],[102.383657,32.515655],[102.383771,32.516776],[102.383332,32.51801],[102.382852,32.519367],[102.382207,32.52013],[102.381558,32.521017],[102.380539,32.522021],[102.379417,32.522775],[102.378211,32.523868],[102.377822,32.524668],[102.377871,32.525476],[102.377972,32.527063],[102.377631,32.528702],[102.377549,32.530254],[102.377136,32.531861],[102.376584,32.533185],[102.376016,32.533795],[102.37504,32.534551],[102.373334,32.535199],[102.372542,32.535959],[102.372117,32.536696],[102.371844,32.537249],[102.371856,32.538088],[102.372261,32.539308],[102.373035,32.540443],[102.373745,32.541235],[102.374962,32.542285],[102.37572,32.542705],[102.374689,32.543243],[102.373359,32.543588],[102.37271,32.54403],[102.371856,32.544799],[102.371485,32.545785],[102.370863,32.547015],[102.370621,32.548584],[102.370768,32.550244],[102.371133,32.551163],[102.371114,32.551825],[102.371143,32.552489],[102.371367,32.553198],[102.371336,32.554274],[102.37106,32.555345],[102.371419,32.55643],[102.371835,32.557267],[102.372095,32.558432],[102.371833,32.559007],[102.371375,32.559618],[102.370662,32.560597],[102.36994,32.561866],[102.369078,32.562925],[102.367625,32.564096],[102.366579,32.564737],[102.36504,32.565492],[102.363617,32.565669],[102.362341,32.565808],[102.361909,32.565818],[102.360432,32.565851],[102.358537,32.565397],[102.3566,32.564735],[102.354179,32.563897],[102.352248,32.563027],[102.349503,32.561313],[102.349447,32.561278],[102.349438,32.561272],[102.349333,32.561206],[102.348553,32.561079],[102.347883,32.561673],[102.34695,32.562316],[102.345982,32.56263],[102.34583,32.56268],[102.345486,32.562374],[102.345415,32.56231],[102.345399,32.562296],[102.345385,32.562283],[102.345343,32.562247],[102.345548,32.561984],[102.345821,32.561634],[102.346003,32.56141],[102.346041,32.561381],[102.348367,32.558314],[102.348425,32.558238],[102.348522,32.558109],[102.348583,32.558026],[102.348666,32.557914],[102.348749,32.557802],[102.348847,32.55767],[102.348932,32.557554],[102.349038,32.557411],[102.349142,32.557271],[102.349231,32.55715],[102.349318,32.557032],[102.349418,32.556897],[102.349512,32.556771],[102.349695,32.556553],[102.349703,32.55654],[102.349759,32.556404],[102.349798,32.556311],[102.349878,32.556201],[102.349989,32.555919],[102.35,32.555883],[102.349991,32.555878],[102.349991,32.555878],[102.349987,32.555876],[102.349986,32.555876],[102.349925,32.555861],[102.349923,32.55586],[102.349919,32.55586],[102.349823,32.555859],[102.349894,32.555709],[102.346816,32.55505],[102.34683,32.554943],[102.346801,32.554847],[102.346762,32.554785],[102.346736,32.55474],[102.346714,32.554735],[102.346683,32.554727],[102.346649,32.554718],[102.346591,32.554702],[102.345877,32.554516],[102.34583,32.554504],[102.345829,32.554503],[102.345826,32.554502],[102.345758,32.554485],[102.345357,32.55438],[102.344319,32.554218],[102.343833,32.554143],[102.341371,32.55376],[102.340766,32.553666],[102.340686,32.553653],[102.340656,32.553649],[102.340496,32.553624],[102.34042,32.553612],[102.340021,32.553555],[102.33868,32.553364],[102.3386,32.553352],[102.33851,32.553287],[102.338472,32.553259],[102.338364,32.553181],[102.338258,32.553062],[102.338165,32.553037],[102.337747,32.552734],[102.337578,32.552612],[102.336849,32.552441],[102.336695,32.552405],[102.336584,32.552379],[102.33656,32.552374],[102.336436,32.552345],[102.336378,32.552331],[102.336358,32.552326],[102.33634,32.552322],[102.336023,32.552248],[102.334344,32.551659],[102.333546,32.55214],[102.332677,32.55284],[102.331867,32.553762],[102.33093,32.553798],[102.329113,32.553464],[102.329052,32.553474],[102.328977,32.553487],[102.328755,32.553524],[102.32853,32.553583],[102.328214,32.553667],[102.328045,32.553776],[102.327067,32.554405],[102.327033,32.554427],[102.326996,32.554451],[102.326831,32.554874],[102.326793,32.554865],[102.32676,32.554848],[102.326524,32.555242],[102.326171,32.555833],[102.325323,32.558026],[102.324932,32.559491],[102.324613,32.559874],[102.324574,32.559872],[102.324288,32.559863],[102.324067,32.559862],[102.32406,32.559863],[102.324016,32.559867],[102.323856,32.559882],[102.32385,32.559884],[102.323706,32.559915],[102.323697,32.559917],[102.323552,32.559976],[102.323525,32.559977],[102.323031,32.560192],[102.322969,32.560219],[102.322555,32.560398],[102.322485,32.560433],[102.322418,32.560466],[102.321407,32.560963],[102.319668,32.560926],[102.318094,32.561187],[102.31669,32.5616],[102.314074,32.561765],[102.312079,32.561575],[102.310799,32.560737],[102.309784,32.559757],[102.307993,32.55854],[102.306281,32.557619],[102.304401,32.556473],[102.302954,32.555411],[102.302104,32.554729],[102.301324,32.554639],[102.300189,32.554762],[102.298365,32.554649],[102.296448,32.554755],[102.294988,32.554134],[102.293699,32.553591],[102.29276,32.552991],[102.292504,32.552828],[102.292411,32.552783],[102.290274,32.551748],[102.289186,32.551087],[102.289115,32.551044],[102.289111,32.551039],[102.289096,32.551032],[102.289086,32.551026],[102.288978,32.55096],[102.2884,32.550609],[102.288414,32.550606],[102.288469,32.550587],[102.28855,32.55056],[102.288645,32.550496],[102.288745,32.550402],[102.288845,32.550276],[102.288937,32.550067],[102.28903,32.549859],[102.289039,32.549804],[102.289077,32.549568],[102.289077,32.549557],[102.28908,32.54948],[102.289081,32.549434],[102.289085,32.54931],[102.289093,32.549052],[102.289101,32.548794],[102.289109,32.548536],[102.289133,32.54839],[102.28915,32.548296],[102.28916,32.548245],[102.289175,32.548166],[102.289178,32.548149],[102.289221,32.547987],[102.28928,32.54785],[102.289303,32.547796],[102.289345,32.547706],[102.289386,32.547619],[102.289411,32.547564],[102.289487,32.547397],[102.28953,32.54725],[102.289573,32.547074],[102.289619,32.546864],[102.289623,32.546706],[102.289624,32.546653],[102.289617,32.546281],[102.289617,32.546281],[102.289617,32.546281],[102.289607,32.545957],[102.289607,32.545957],[102.2896,32.545586],[102.2896,32.545586],[102.2896,32.545586],[102.289626,32.545359],[102.289635,32.545332],[102.289667,32.545241],[102.28971,32.545118],[102.289751,32.544979],[102.289758,32.544954],[102.289779,32.544881],[102.289848,32.544644],[102.289918,32.544406],[102.289987,32.544169],[102.290056,32.543938],[102.290058,32.543929],[102.290092,32.543816],[102.290124,32.543711],[102.290191,32.543486],[102.290198,32.543463],[102.290193,32.543306],[102.290188,32.543155],[102.290166,32.542956],[102.290157,32.542879],[102.290115,32.542721],[102.290088,32.54262],[102.29002,32.542495],[102.289962,32.54239],[102.289864,32.54229],[102.28972,32.542143],[102.289495,32.541959],[102.28935,32.541812],[102.289348,32.541811],[102.289333,32.541784],[102.289308,32.541738],[102.289275,32.541679],[102.28928,32.54155],[102.28928,32.541534],[102.289411,32.541302],[102.289542,32.54107],[102.289565,32.541044],[102.28976,32.540832],[102.289841,32.540751],[102.289997,32.540595],[102.29006,32.540515],[102.290166,32.54038],[102.290335,32.540165],[102.290613,32.539815],[102.290782,32.539617],[102.29087,32.539513],[102.291002,32.539234],[102.291014,32.539208],[102.291158,32.538904],[102.291228,32.538686],[102.291285,32.538512],[102.291411,32.53812],[102.291443,32.537688],[102.291444,32.537673],[102.291473,32.537281],[102.291475,32.537256],[102.291482,32.537162],[102.291498,32.536943],[102.291507,32.536823],[102.291539,32.536391],[102.291543,32.53619],[102.291544,32.536135],[102.291545,32.536106],[102.29155,32.53588],[102.291551,32.535845],[102.291552,32.535791],[102.291556,32.535646],[102.291556,32.535635],[102.291556,32.535624],[102.291557,32.535586],[102.291558,32.535548],[102.29156,32.535457],[102.291561,32.535431],[102.291561,32.535421],[102.291562,32.535369],[102.291568,32.535128],[102.291568,32.535113],[102.291571,32.534988],[102.291574,32.534858],[102.291576,32.534775],[102.291577,32.534741],[102.29158,32.534602],[102.291585,32.534369],[102.291586,32.534347],[102.291587,32.534278],[102.291591,32.534095],[102.291591,32.534091],[102.291593,32.534041],[102.291597,32.533836],[102.2916,32.533667],[102.291601,32.533607],[102.291603,32.533474],[102.291604,32.533377],[102.291607,32.533202],[102.291608,32.533148],[102.291608,32.533143],[102.291611,32.532919],[102.291615,32.53269],[102.291618,32.532461],[102.291606,32.532234],[102.291594,32.532007],[102.2916,32.5318],[102.291606,32.531603],[102.291693,32.531281],[102.291856,32.530929],[102.291958,32.530728],[102.29206,32.530528],[102.292179,32.530385],[102.292181,32.530384],[102.292182,32.530383],[102.292266,32.530315],[102.292316,32.530275],[102.292329,32.530268],[102.292334,32.530266],[102.292363,32.53025],[102.292381,32.530241],[102.292429,32.530215],[102.29255,32.530151],[102.292693,32.530093],[102.292867,32.530023],[102.292988,32.529974],[102.293019,32.529961],[102.293185,32.529894],[102.293198,32.529882],[102.293227,32.529854],[102.293283,32.529803],[102.293323,32.529766],[102.293335,32.529728],[102.29336,32.529658],[102.293427,32.529462],[102.293358,32.529217],[102.293284,32.528984],[102.29327,32.528941],[102.293276,32.528885],[102.293287,32.528783],[102.293297,32.528699],[102.293526,32.52838],[102.293617,32.528253],[102.293646,32.528213],[102.293756,32.52806],[102.293755,32.528047],[102.293754,32.528022],[102.293746,32.52777],[102.2936,32.527508],[102.293413,32.527382],[102.293225,32.527256],[102.292904,32.527136],[102.292579,32.527113],[102.292176,32.527136],[102.291888,32.527196],[102.291654,32.52732],[102.291325,32.527442],[102.291077,32.527428],[102.290834,32.527415],[102.290829,32.527414],[102.290694,32.527395],[102.29058,32.527378],[102.290573,32.527377],[102.290447,32.527359],[102.29019,32.527312],[102.289934,32.527266],[102.289834,32.527264],[102.289666,32.527261],[102.289398,32.527255],[102.289158,32.527298],[102.288918,32.527341],[102.288762,32.527395],[102.288754,32.527398],[102.288674,32.527425],[102.288608,32.527448],[102.288592,32.527453],[102.28853,32.527475],[102.28833,32.527544],[102.288299,32.527555],[102.288066,32.527687],[102.288017,32.527715],[102.287832,32.52782],[102.287531,32.527943],[102.287231,32.528066],[102.286942,32.528141],[102.28688,32.528137],[102.286713,32.528128],[102.286645,32.528124],[102.286485,32.528114],[102.286484,32.528114],[102.286484,32.528114],[102.286415,32.528068],[102.286346,32.528022],[102.286183,32.527914],[102.286152,32.527884],[102.285979,32.527715],[102.285893,32.527406],[102.285882,32.527132],[102.285884,32.527047],[102.285889,32.526855],[102.285856,32.526676],[102.285856,32.526675],[102.285855,32.526673],[102.285855,32.526673],[102.285847,32.526658],[102.285766,32.526496],[102.285504,32.52633],[102.285296,32.526214],[102.285087,32.526098],[102.284958,32.525966],[102.284809,32.525784],[102.284718,32.525619],[102.284717,32.525617],[102.28468,32.52555],[102.284665,32.525522],[102.284656,32.525453],[102.284639,32.525333],[102.284635,32.525304],[102.284633,32.525287],[102.284602,32.525053],[102.284611,32.524729],[102.284548,32.524322],[102.284436,32.524207],[102.284286,32.524139],[102.284056,32.524134],[102.283644,32.524115],[102.28349,32.524142],[102.283199,32.52425],[102.283117,32.524298],[102.282927,32.524406],[102.2829,32.52443],[102.282726,32.52458],[102.282672,32.524628],[102.282626,32.524697],[102.282432,32.524994],[102.28231,32.525243],[102.282187,32.525491],[102.281985,32.525843],[102.281807,32.526001],[102.281711,32.526047],[102.281622,32.526062],[102.281542,32.526075],[102.281268,32.526119],[102.281229,32.526115],[102.281124,32.526105],[102.28104,32.526098],[102.280778,32.526024],[102.280517,32.52595],[102.280255,32.525876],[102.279993,32.525803],[102.279731,32.525729],[102.279469,32.525655],[102.279207,32.525582],[102.278945,32.525508],[102.278684,32.525434],[102.278422,32.52536],[102.278187,32.525303],[102.278015,32.525261],[102.277989,32.525255],[102.277952,32.525246],[102.277718,32.525189],[102.277483,32.525132],[102.277248,32.525075],[102.277143,32.525049],[102.277244,32.524826]]]]},"properties":{"cp":[102.40058259505227,32.42604846213644],"code":"513233105","name":"龙日镇","level":"street","center":[102.40058259505227,32.42604846213644],"fullCode":"513233105000","fullName":"四川省阿坝藏族羌族自治州红原县龙日镇","acreageMu":967058.51,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.484,32.3605]}},{"id":"513233202","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.164139,32.32538],[102.164223,32.325168],[102.164246,32.325109],[102.164401,32.324716],[102.164763,32.323798],[102.165261,32.322312],[102.16556,32.321436],[102.165852,32.320752],[102.165879,32.319908],[102.165875,32.318564],[102.166,32.317454],[102.16583,32.315684],[102.165822,32.315506],[102.165819,32.31544],[102.165725,32.313225],[102.165894,32.312154],[102.166521,32.310901],[102.167013,32.309607],[102.167377,32.308079],[102.167576,32.307548],[102.168019,32.306366],[102.168943,32.304276],[102.169317,32.303862],[102.169594,32.303676],[102.169845,32.303446],[102.16988,32.303412],[102.169881,32.303412],[102.170149,32.303418],[102.170447,32.303456],[102.170666,32.303588],[102.170876,32.303971],[102.171014,32.304353],[102.171151,32.304735],[102.171234,32.304987],[102.171316,32.30524],[102.171399,32.305492],[102.171482,32.305744],[102.171565,32.305997],[102.171647,32.306249],[102.17173,32.306501],[102.171761,32.306596],[102.171761,32.306597],[102.171813,32.306754],[102.171896,32.307006],[102.171978,32.307258],[102.172061,32.307511],[102.172144,32.307763],[102.172227,32.308015],[102.17231,32.308268],[102.172392,32.30852],[102.172475,32.308772],[102.172542,32.309035],[102.172609,32.309297],[102.172676,32.309559],[102.172743,32.309821],[102.172809,32.310084],[102.172876,32.310346],[102.172943,32.310608],[102.17301,32.31087],[102.173077,32.311132],[102.173144,32.311395],[102.173147,32.31153],[102.173149,32.311626],[102.173154,32.311858],[102.173159,32.31209],[102.173162,32.312223],[102.173164,32.312322],[102.173169,32.312553],[102.173174,32.312785],[102.173174,32.312789],[102.173149,32.313195],[102.173135,32.313427],[102.173124,32.313604],[102.173099,32.314014],[102.173089,32.314313],[102.17308,32.314613],[102.173092,32.314845],[102.173103,32.315054],[102.173243,32.315374],[102.173448,32.315537],[102.173654,32.315699],[102.17386,32.315862],[102.174066,32.316024],[102.174272,32.316187],[102.174442,32.316321],[102.174477,32.316349],[102.174659,32.316489],[102.174841,32.316629],[102.175022,32.316768],[102.175204,32.316908],[102.175386,32.317048],[102.175567,32.317188],[102.175749,32.317328],[102.175931,32.317467],[102.176112,32.317607],[102.176294,32.317747],[102.176508,32.317907],[102.176722,32.318068],[102.176937,32.318228],[102.177151,32.318388],[102.177365,32.318549],[102.17758,32.318709],[102.177807,32.318848],[102.178035,32.318988],[102.178263,32.319127],[102.178491,32.319266],[102.178762,32.319381],[102.178804,32.319399],[102.179102,32.319526],[102.179117,32.319532],[102.179485,32.319666],[102.179852,32.319801],[102.18013,32.319854],[102.180408,32.319908],[102.180502,32.319915],[102.180705,32.319931],[102.180802,32.319938],[102.181002,32.319953],[102.181411,32.319931],[102.181646,32.319857],[102.181881,32.319783],[102.182116,32.319709],[102.182314,32.319647],[102.182351,32.319636],[102.18258,32.31957],[102.182766,32.319517],[102.18281,32.319504],[102.18304,32.319438],[102.18327,32.319373],[102.1835,32.319307],[102.183729,32.319241],[102.183959,32.319176],[102.184189,32.31911],[102.18446,32.31906],[102.184732,32.319011],[102.185003,32.318961],[102.185223,32.318921],[102.185275,32.318912],[102.18561,32.318888],[102.185791,32.318875],[102.185946,32.318864],[102.186261,32.318887],[102.186577,32.31891],[102.186809,32.318957],[102.186836,32.318963],[102.187094,32.319015],[102.187309,32.31913],[102.187388,32.319173],[102.187524,32.319246],[102.187739,32.319361],[102.187954,32.319476],[102.188311,32.319699],[102.188668,32.319923],[102.188859,32.320043],[102.189051,32.320163],[102.189272,32.320247],[102.189493,32.32033],[102.189806,32.320432],[102.190119,32.320534],[102.190509,32.320542],[102.190899,32.320551],[102.191218,32.320479],[102.191536,32.320407],[102.191744,32.320291],[102.191953,32.320174],[102.192161,32.320058],[102.192369,32.319941],[102.192577,32.319825],[102.192786,32.319708],[102.192987,32.319574],[102.193188,32.319439],[102.193335,32.319342],[102.19339,32.319305],[102.193591,32.319171],[102.193793,32.319036],[102.193994,32.318902],[102.194001,32.318897],[102.194195,32.318767],[102.194397,32.318633],[102.194598,32.318499],[102.194799,32.318364],[102.194991,32.318175],[102.195183,32.317986],[102.195375,32.317797],[102.195567,32.317608],[102.195759,32.317419],[102.195951,32.31723],[102.196143,32.317041],[102.196335,32.316852],[102.196538,32.316678],[102.196742,32.316504],[102.196945,32.31633],[102.197149,32.316155],[102.197352,32.315981],[102.197556,32.315807],[102.197925,32.315602],[102.198295,32.315397],[102.198664,32.315192],[102.199033,32.314987],[102.199385,32.314847],[102.199736,32.314707],[102.200087,32.314567],[102.200306,32.314499],[102.200526,32.31443],[102.200745,32.314361],[102.200964,32.314293],[102.201183,32.314224],[102.201403,32.314155],[102.201644,32.314107],[102.201884,32.314059],[102.202125,32.31401],[102.202366,32.313962],[102.202607,32.313914],[102.202848,32.313866],[102.203088,32.313818],[102.203329,32.31377],[102.203579,32.313723],[102.203828,32.313676],[102.204078,32.313629],[102.204327,32.313582],[102.204576,32.313535],[102.204826,32.313488],[102.205237,32.313444],[102.205648,32.3134],[102.20602,32.313361],[102.206058,32.313357],[102.206288,32.31333],[102.206518,32.313304],[102.206748,32.313277],[102.206978,32.313251],[102.207208,32.313225],[102.207438,32.313198],[102.207863,32.313113],[102.208288,32.313027],[102.208712,32.312942],[102.209126,32.312793],[102.20954,32.312644],[102.209953,32.312495],[102.210367,32.312347],[102.210758,32.312145],[102.211149,32.311944],[102.211539,32.311742],[102.21193,32.31153],[102.212321,32.311318],[102.212712,32.311105],[102.213038,32.310797],[102.213365,32.310489],[102.213616,32.310155],[102.213756,32.309971],[102.213868,32.309821],[102.21412,32.309487],[102.214371,32.309153],[102.214513,32.308931],[102.214654,32.308708],[102.214795,32.308485],[102.214936,32.308263],[102.215037,32.308036],[102.215137,32.307809],[102.215237,32.307583],[102.215337,32.307356],[102.215384,32.307025],[102.215432,32.306695],[102.215329,32.306393],[102.215227,32.306091],[102.215127,32.305694],[102.215027,32.305298],[102.215004,32.304887],[102.215051,32.304541],[102.215224,32.304356],[102.215397,32.30417],[102.215602,32.304009],[102.215807,32.303847],[102.216012,32.303686],[102.216217,32.303525],[102.216422,32.303363],[102.216627,32.303202],[102.216832,32.303041],[102.217037,32.302879],[102.21723,32.302764],[102.217423,32.302648],[102.217616,32.302532],[102.217809,32.302417],[102.218003,32.302301],[102.218196,32.302185],[102.218389,32.30207],[102.218582,32.301954],[102.218637,32.301921],[102.218775,32.301838],[102.218969,32.301723],[102.21927,32.301635],[102.219604,32.301642],[102.219939,32.30165],[102.220196,32.30175],[102.220235,32.301766],[102.220453,32.301851],[102.220471,32.301866],[102.220635,32.301997],[102.220763,32.3021],[102.220817,32.302143],[102.220973,32.302364],[102.221129,32.302584],[102.221285,32.302804],[102.221441,32.303025],[102.221597,32.303245],[102.221753,32.303465],[102.221797,32.303528],[102.221799,32.303531],[102.221909,32.303686],[102.222065,32.303906],[102.222204,32.304209],[102.222343,32.304511],[102.22248,32.304925],[102.222492,32.304998],[102.222543,32.305305],[102.222456,32.305682],[102.222299,32.305995],[102.222177,32.306307],[102.222073,32.306598],[102.222054,32.306652],[102.222007,32.306998],[102.222069,32.30741],[102.222191,32.307665],[102.222313,32.30792],[102.222602,32.308211],[102.222891,32.308502],[102.22318,32.308792],[102.223365,32.30897],[102.223371,32.308976],[102.223507,32.309106],[102.22355,32.309147],[102.223707,32.309298],[102.223736,32.309325],[102.223921,32.309503],[102.224106,32.30968],[102.224167,32.309738],[102.224292,32.309858],[102.224477,32.310035],[102.224662,32.310213],[102.224901,32.310561],[102.22514,32.310909],[102.225379,32.311257],[102.225455,32.311511],[102.225531,32.311765],[102.225608,32.31202],[102.225684,32.312274],[102.225709,32.312546],[102.225721,32.312675],[102.22575,32.312987],[102.225758,32.313075],[102.225761,32.313099],[102.225796,32.313476],[102.225813,32.31374],[102.225819,32.313846],[102.225829,32.314003],[102.225833,32.314065],[102.225846,32.314266],[102.225861,32.3145],[102.225863,32.31453],[102.225872,32.314667],[102.22588,32.314793],[102.225896,32.315057],[102.225911,32.315172],[102.225931,32.315331],[102.225966,32.315605],[102.226001,32.31588],[102.226036,32.316154],[102.226072,32.316429],[102.226096,32.316619],[102.226107,32.316703],[102.226141,32.316878],[102.226155,32.316946],[102.226203,32.317189],[102.226252,32.317432],[102.2263,32.317675],[102.226348,32.317918],[102.226375,32.318049],[102.226397,32.318162],[102.226432,32.318253],[102.226518,32.318474],[102.226539,32.318529],[102.226627,32.318667],[102.226682,32.318754],[102.226926,32.318907],[102.226977,32.31894],[102.22717,32.319061],[102.227247,32.319081],[102.227346,32.319105],[102.227707,32.319167],[102.227909,32.319201],[102.228069,32.319229],[102.22832,32.319253],[102.22857,32.319276],[102.228571,32.319276],[102.228573,32.319277],[102.228881,32.319343],[102.229189,32.31941],[102.229497,32.319476],[102.229725,32.319529],[102.229954,32.319581],[102.230315,32.319572],[102.230734,32.319505],[102.231077,32.319434],[102.231419,32.319362],[102.231848,32.319391],[102.2322,32.31941],[102.23259,32.319524],[102.232904,32.31961],[102.233247,32.319708],[102.233589,32.319806],[102.233932,32.319905],[102.234266,32.319999],[102.234599,32.320093],[102.23485,32.320164],[102.235101,32.320235],[102.235245,32.320276],[102.235655,32.320333],[102.235861,32.320326],[102.23595,32.320323],[102.236197,32.320285],[102.236483,32.320047],[102.236721,32.319695],[102.236935,32.319567],[102.237149,32.319438],[102.237544,32.319267],[102.237939,32.319096],[102.238269,32.31895],[102.238599,32.318804],[102.238929,32.318658],[102.238996,32.318618],[102.239298,32.318442],[102.2396,32.318265],[102.239966,32.318051],[102.240333,32.317836],[102.240699,32.317621],[102.241066,32.317407],[102.241432,32.317192],[102.241825,32.317054],[102.242217,32.316916],[102.24261,32.316778],[102.243002,32.31664],[102.243343,32.316533],[102.243683,32.316426],[102.244023,32.316319],[102.244364,32.316212],[102.244792,32.316131],[102.245207,32.316052],[102.24522,32.31605],[102.24542,32.315917],[102.245439,32.315869],[102.245553,32.315584],[102.245653,32.315327],[102.245753,32.31507],[102.245841,32.314868],[102.24587,32.314813],[102.24594,32.31466],[102.246035,32.314455],[102.2462,32.314096],[102.246365,32.313737],[102.246617,32.313396],[102.24687,32.313055],[102.246953,32.312756],[102.247037,32.312457],[102.247063,32.312205],[102.24709,32.311953],[102.247022,32.311715],[102.246955,32.311477],[102.24687,32.311215],[102.246784,32.310953],[102.246699,32.310691],[102.246614,32.310429],[102.246582,32.31032],[102.246528,32.31014],[102.246496,32.310032],[102.246419,32.309773],[102.246378,32.309634],[102.24633,32.309365],[102.246307,32.309234],[102.246282,32.309095],[102.246292,32.308796],[102.246301,32.308496],[102.246422,32.308214],[102.24654,32.308001],[102.246658,32.307788],[102.246776,32.307575],[102.246894,32.307362],[102.247012,32.307149],[102.24713,32.306937],[102.247284,32.306756],[102.247439,32.306575],[102.247593,32.306394],[102.247747,32.306213],[102.247901,32.306032],[102.248055,32.305851],[102.248209,32.30567],[102.248363,32.30549],[102.248491,32.305279],[102.248618,32.305069],[102.248746,32.304858],[102.248873,32.304648],[102.249016,32.304225],[102.249158,32.303803],[102.249226,32.303394],[102.249294,32.302985],[102.24933,32.302734],[102.249366,32.302482],[102.249401,32.30223],[102.249437,32.301979],[102.249417,32.301706],[102.249403,32.301508],[102.249397,32.301434],[102.249377,32.301162],[102.249358,32.300889],[102.24932,32.300489],[102.249283,32.300088],[102.249245,32.299688],[102.249252,32.299451],[102.24926,32.299215],[102.249267,32.298978],[102.249269,32.298897],[102.249274,32.298742],[102.24932,32.298471],[102.249365,32.298201],[102.249411,32.29793],[102.249456,32.29766],[102.249502,32.297389],[102.249547,32.297118],[102.249592,32.296848],[102.249638,32.296577],[102.249683,32.296307],[102.249729,32.296036],[102.249787,32.295813],[102.249844,32.295589],[102.249902,32.295365],[102.24996,32.295142],[102.250018,32.294918],[102.250076,32.294695],[102.250133,32.294471],[102.250191,32.294247],[102.250296,32.293871],[102.2504,32.293494],[102.25041,32.293162],[102.25042,32.292831],[102.250437,32.292571],[102.250454,32.292311],[102.25046,32.292224],[102.250471,32.292051],[102.250488,32.291791],[102.250489,32.29178],[102.250493,32.291689],[102.250511,32.291335],[102.250518,32.291193],[102.250534,32.290891],[102.250556,32.290446],[102.250579,32.290002],[102.250677,32.289636],[102.250775,32.28927],[102.250873,32.288904],[102.251021,32.288592],[102.251168,32.28828],[102.251279,32.288045],[102.25139,32.28781],[102.251518,32.287584],[102.251645,32.287358],[102.251773,32.287132],[102.251901,32.286906],[102.252068,32.286699],[102.252236,32.286493],[102.252403,32.286286],[102.252571,32.286079],[102.252738,32.285873],[102.252906,32.285666],[102.252966,32.285581],[102.253061,32.285448],[102.253216,32.285231],[102.253371,32.285013],[102.253526,32.284795],[102.253656,32.28461],[102.253663,32.284601],[102.253799,32.284407],[102.253935,32.284212],[102.254071,32.284018],[102.254092,32.283969],[102.254094,32.283964],[102.254171,32.283783],[102.254271,32.283548],[102.254292,32.283364],[102.254321,32.283108],[102.254239,32.282743],[102.254158,32.282378],[102.25409,32.282157],[102.254022,32.281936],[102.253955,32.281715],[102.253887,32.281493],[102.253819,32.281272],[102.253752,32.281051],[102.253764,32.28063],[102.253777,32.28021],[102.25379,32.279789],[102.253948,32.279509],[102.254228,32.279263],[102.254508,32.279016],[102.254788,32.278769],[102.254877,32.278676],[102.254967,32.278584],[102.255029,32.27852],[102.255032,32.278516],[102.255146,32.278398],[102.255325,32.278213],[102.255504,32.278027],[102.255669,32.277856],[102.255862,32.277656],[102.256071,32.277324],[102.256279,32.276992],[102.256488,32.27666],[102.256714,32.276318],[102.256759,32.276171],[102.25687,32.275881],[102.256981,32.275591],[102.257092,32.2753],[102.257194,32.275101],[102.257236,32.27502],[102.257381,32.274739],[102.257488,32.274477],[102.257595,32.274215],[102.257623,32.274142],[102.257745,32.273822],[102.257895,32.273429],[102.257957,32.273152],[102.25802,32.272876],[102.258052,32.272647],[102.258085,32.272418],[102.258115,32.271972],[102.258117,32.271752],[102.258121,32.271317],[102.258101,32.270958],[102.258081,32.270599],[102.258061,32.270241],[102.258017,32.269881],[102.257972,32.269521],[102.257929,32.269168],[102.257907,32.268985],[102.257835,32.268646],[102.257621,32.26842],[102.257389,32.268111],[102.257297,32.267769],[102.257205,32.267427],[102.256985,32.267103],[102.256765,32.266778],[102.256437,32.266517],[102.256176,32.266267],[102.256009,32.266172],[102.255979,32.266047],[102.256039,32.265898],[102.256164,32.265708],[102.256191,32.265684],[102.256384,32.265517],[102.256604,32.265327],[102.256931,32.265079],[102.257258,32.264831],[102.257585,32.264583],[102.257895,32.26431],[102.258204,32.264036],[102.258513,32.263762],[102.258537,32.263749],[102.258784,32.263613],[102.259031,32.263477],[102.259221,32.263328],[102.259282,32.263234],[102.25934,32.263144],[102.259376,32.26284],[102.259376,32.262487],[102.259376,32.262486],[102.259376,32.262484],[102.259346,32.262222],[102.259272,32.261909],[102.259197,32.261597],[102.259111,32.261285],[102.259025,32.260973],[102.258894,32.260681],[102.258704,32.260324],[102.258484,32.260021],[102.258264,32.259717],[102.258139,32.259533],[102.258103,32.259408],[102.258168,32.259212],[102.258264,32.259063],[102.258359,32.258891],[102.258302,32.258546],[102.258246,32.2582],[102.258252,32.257873],[102.258296,32.257621],[102.258341,32.257368],[102.258389,32.257127],[102.258437,32.256886],[102.25846,32.256773],[102.258418,32.256345],[102.258377,32.255916],[102.258264,32.255637],[102.258118,32.255428],[102.257972,32.25522],[102.257868,32.254991],[102.257764,32.254762],[102.257609,32.254423],[102.257556,32.254188],[102.257502,32.253953],[102.257466,32.253575],[102.257431,32.253198],[102.257389,32.252936],[102.257336,32.252728],[102.257246,32.252567],[102.257133,32.252442],[102.257104,32.252293],[102.257115,32.252079],[102.257234,32.251758],[102.257336,32.251502],[102.257337,32.251474],[102.257357,32.25106],[102.257377,32.250646],[102.257336,32.250378],[102.25727,32.250182],[102.257128,32.250035],[102.257092,32.249997],[102.256936,32.249788],[102.256919,32.249765],[102.256753,32.249355],[102.256634,32.249153],[102.256485,32.249028],[102.256408,32.248766],[102.25639,32.248516],[102.256402,32.248254],[102.256443,32.247923],[102.256485,32.247592],[102.256527,32.247261],[102.256515,32.246862],[102.256517,32.246441],[102.25652,32.246019],[102.256521,32.245976],[102.256592,32.245661],[102.256628,32.24542],[102.256663,32.245179],[102.25686,32.244822],[102.256989,32.244548],[102.257117,32.244275],[102.257246,32.244001],[102.257353,32.243739],[102.257496,32.243537],[102.257663,32.243478],[102.257919,32.243472],[102.258204,32.243478],[102.25843,32.243495],[102.258656,32.243513],[102.258914,32.2436],[102.259172,32.243686],[102.25936,32.243775],[102.259539,32.243859],[102.259749,32.243958],[102.25996,32.244057],[102.260175,32.244125],[102.26039,32.244193],[102.260604,32.24426],[102.260819,32.244328],[102.261034,32.244396],[102.261223,32.244456],[102.261249,32.244464],[102.261629,32.244609],[102.261892,32.244709],[102.262247,32.244895],[102.262602,32.245081],[102.262779,32.245185],[102.263064,32.245329],[102.263109,32.245351],[102.263439,32.245518],[102.263689,32.245589],[102.264081,32.245723],[102.264474,32.245857],[102.264516,32.245864],[102.264737,32.245959],[102.265141,32.246134],[102.265495,32.246382],[102.265848,32.24663],[102.266223,32.246842],[102.266598,32.247053],[102.266901,32.247326],[102.267026,32.247523],[102.267097,32.247707],[102.267197,32.247788],[102.267258,32.247838],[102.267523,32.24804],[102.267787,32.248242],[102.26794,32.248354],[102.268055,32.248439],[102.268364,32.248663],[102.268674,32.248887],[102.268983,32.249111],[102.269304,32.249283],[102.269544,32.249486],[102.269679,32.2496],[102.269843,32.249804],[102.270091,32.250113],[102.270242,32.250301],[102.270393,32.250489],[102.270544,32.250677],[102.270695,32.250865],[102.270846,32.251054],[102.270997,32.251242],[102.271173,32.251419],[102.271349,32.251597],[102.271525,32.251775],[102.271701,32.251952],[102.271876,32.25213],[102.272052,32.252308],[102.272228,32.252485],[102.272404,32.252663],[102.272629,32.25282],[102.272853,32.252977],[102.273078,32.253135],[102.273302,32.253292],[102.273527,32.253449],[102.273752,32.253607],[102.273971,32.253722],[102.274191,32.253837],[102.274411,32.253952],[102.27463,32.254067],[102.27485,32.254182],[102.27507,32.254297],[102.275439,32.2544],[102.275808,32.254503],[102.276102,32.254588],[102.276397,32.254673],[102.276749,32.254713],[102.277101,32.254752],[102.277548,32.25473],[102.27797,32.25471],[102.277996,32.254708],[102.278294,32.254667],[102.278476,32.254642],[102.278593,32.254626],[102.278628,32.254615],[102.278839,32.254549],[102.278874,32.254538],[102.279156,32.25445],[102.279421,32.25425],[102.279687,32.25405],[102.279842,32.253856],[102.279996,32.253662],[102.280151,32.253468],[102.280306,32.253274],[102.280484,32.252884],[102.280663,32.252493],[102.28071,32.252194],[102.280757,32.251895],[102.280875,32.251676],[102.281065,32.251538],[102.281255,32.251401],[102.2815,32.25128],[102.281744,32.251159],[102.28212,32.25102],[102.282496,32.250881],[102.282871,32.250741],[102.283094,32.250677],[102.283318,32.250613],[102.283541,32.250548],[102.283764,32.250484],[102.283987,32.25042],[102.28421,32.250355],[102.284418,32.25025],[102.284626,32.250144],[102.284662,32.250113],[102.284949,32.249866],[102.285211,32.24964],[102.285235,32.24962],[102.285354,32.249378],[102.285473,32.249136],[102.285592,32.248894],[102.285711,32.248652],[102.285797,32.248409],[102.285883,32.248166],[102.285969,32.247924],[102.286056,32.247681],[102.286142,32.247438],[102.286228,32.247195],[102.286314,32.246952],[102.286401,32.24671],[102.286512,32.246504],[102.286624,32.246299],[102.286735,32.246093],[102.286847,32.245888],[102.286958,32.245683],[102.287069,32.245477],[102.287181,32.245272],[102.287292,32.245066],[102.28738,32.244905],[102.28738,32.244905],[102.287404,32.244861],[102.287515,32.244656],[102.287627,32.24445],[102.287738,32.244245],[102.287954,32.243924],[102.288169,32.243603],[102.288436,32.24342],[102.288651,32.243277],[102.288866,32.243134],[102.28908,32.242992],[102.289295,32.242849],[102.28951,32.242706],[102.289725,32.242564],[102.289897,32.24241],[102.290069,32.242255],[102.29024,32.242101],[102.290412,32.241947],[102.290584,32.241793],[102.29071,32.24168],[102.290756,32.241639],[102.290931,32.241406],[102.291105,32.241173],[102.291226,32.240828],[102.291348,32.240484],[102.291383,32.240248],[102.291418,32.240012],[102.291453,32.239776],[102.291488,32.23954],[102.291497,32.23924],[102.291505,32.23894],[102.291426,32.238691],[102.291347,32.238442],[102.291267,32.238193],[102.291188,32.237944],[102.291109,32.237696],[102.291029,32.237447],[102.290958,32.237234],[102.290886,32.23702],[102.290814,32.236807],[102.290742,32.236594],[102.29067,32.236381],[102.290599,32.236168],[102.290527,32.235955],[102.290455,32.235742],[102.290383,32.235529],[102.290312,32.235316],[102.29025,32.234904],[102.290295,32.234653],[102.290431,32.234435],[102.290568,32.234217],[102.29083,32.233852],[102.290958,32.233672],[102.291091,32.233486],[102.291353,32.233121],[102.291615,32.232755],[102.291785,32.232554],[102.291955,32.232353],[102.292124,32.232153],[102.292294,32.231952],[102.292464,32.231751],[102.292634,32.23155],[102.292804,32.231349],[102.292974,32.231149],[102.293003,32.231101],[102.293106,32.230934],[102.293237,32.23072],[102.293369,32.230506],[102.293501,32.230292],[102.293632,32.230078],[102.293764,32.229864],[102.293896,32.22965],[102.294027,32.229435],[102.294121,32.229187],[102.29414,32.229135],[102.294214,32.228938],[102.294308,32.22869],[102.294401,32.228441],[102.294471,32.228254],[102.294472,32.228254],[102.294495,32.228193],[102.294588,32.227944],[102.294682,32.227696],[102.294775,32.227447],[102.294869,32.227198],[102.294962,32.22695],[102.295055,32.226701],[102.295149,32.226453],[102.295226,32.226248],[102.295226,32.226248],[102.295226,32.226248],[102.295395,32.225923],[102.295575,32.225674],[102.295811,32.225519],[102.296154,32.225385],[102.296496,32.225251],[102.296668,32.225251],[102.296924,32.225394],[102.297043,32.225602],[102.297105,32.225843],[102.297168,32.226084],[102.297418,32.226435],[102.297644,32.226607],[102.297935,32.226905],[102.298227,32.227202],[102.298476,32.227434],[102.29875,32.227618],[102.299022,32.227847],[102.299293,32.228075],[102.299565,32.228303],[102.299849,32.228545],[102.300133,32.228788],[102.300402,32.229018],[102.300672,32.229248],[102.300925,32.229498],[102.301179,32.229748],[102.301433,32.229998],[102.30165,32.230188],[102.301867,32.230379],[102.302111,32.230569],[102.302355,32.230759],[102.302599,32.23095],[102.302878,32.231137],[102.303158,32.231324],[102.303313,32.231503],[102.303377,32.231638],[102.30342,32.231729],[102.303485,32.231973],[102.303568,32.232092],[102.303872,32.232258],[102.304253,32.232389],[102.304485,32.23249],[102.304657,32.232657],[102.30483,32.232847],[102.305002,32.232999],[102.305175,32.233151],[102.305398,32.233258],[102.305621,32.233365],[102.305832,32.23352],[102.306043,32.233674],[102.306218,32.233868],[102.306329,32.233989],[102.306531,32.234239],[102.306662,32.234483],[102.306793,32.234727],[102.306828,32.234793],[102.307054,32.235149],[102.307164,32.235465],[102.307275,32.23578],[102.307435,32.236179],[102.307596,32.236577],[102.307611,32.236937],[102.307625,32.237297],[102.307679,32.237606],[102.307744,32.237767],[102.307991,32.237942],[102.308238,32.238118],[102.3085,32.238252],[102.308762,32.238386],[102.309196,32.238493],[102.309398,32.238558],[102.309559,32.238671],[102.309803,32.238826],[102.309969,32.239052],[102.310154,32.239314],[102.31035,32.239444],[102.310618,32.239504],[102.311037,32.239644],[102.311181,32.239692],[102.311456,32.239783],[102.311772,32.239849],[102.31198,32.239837],[102.312283,32.239789],[102.312432,32.239744],[102.312634,32.239682],[102.312908,32.239608],[102.313182,32.239534],[102.313455,32.23954],[102.313836,32.239605],[102.314183,32.239728],[102.314185,32.239729],[102.314187,32.23973],[102.314463,32.239798],[102.31474,32.239867],[102.31496,32.239926],[102.31518,32.239986],[102.315424,32.239989],[102.315668,32.239992],[102.315909,32.239992],[102.31615,32.239992],[102.316406,32.239965],[102.316661,32.239938],[102.317084,32.239861],[102.317456,32.239792],[102.317626,32.239761],[102.317827,32.239724],[102.318256,32.239659],[102.318684,32.239593],[102.318958,32.23954],[102.319362,32.239403],[102.3196,32.239391],[102.319838,32.239379],[102.320177,32.239409],[102.320516,32.239438],[102.320903,32.239482],[102.32129,32.239526],[102.321676,32.239569],[102.321811,32.239579],[102.322127,32.239602],[102.322443,32.239624],[102.322759,32.239647],[102.322946,32.239643],[102.323044,32.239641],[102.323425,32.239563],[102.323642,32.239465],[102.323859,32.239367],[102.3241,32.239254],[102.324341,32.239141],[102.324698,32.239016],[102.325055,32.238891],[102.325373,32.238817],[102.325692,32.238742],[102.325954,32.238667],[102.326177,32.238604],[102.326399,32.23854],[102.326774,32.238368],[102.327149,32.238195],[102.327506,32.238073],[102.327863,32.237951],[102.328142,32.237842],[102.328422,32.237733],[102.328484,32.237709],[102.328702,32.237624],[102.329017,32.237535],[102.329332,32.237446],[102.329346,32.237443],[102.329613,32.237394],[102.329879,32.237345],[102.330127,32.237337],[102.330419,32.237329],[102.330712,32.237321],[102.331087,32.237291],[102.331462,32.237261],[102.331575,32.237261],[102.331854,32.237309],[102.332074,32.237333],[102.332425,32.237327],[102.332705,32.237321],[102.332985,32.237309],[102.33301,32.237302],[102.333098,32.237279],[102.333407,32.237065],[102.333681,32.236809],[102.333898,32.236654],[102.334055,32.236541],[102.334305,32.236422],[102.334579,32.236405],[102.334633,32.236396],[102.334633,32.236396],[102.334633,32.236396],[102.334894,32.236356],[102.335156,32.236315],[102.335578,32.236202],[102.335888,32.236048],[102.336286,32.235869],[102.336471,32.235787],[102.336664,32.235701],[102.336768,32.235655],[102.337012,32.235578],[102.337256,32.2355],[102.337497,32.235453],[102.337738,32.235405],[102.337992,32.235362],[102.338247,32.235318],[102.338326,32.235304],[102.338675,32.235189],[102.339024,32.235074],[102.339373,32.234959],[102.339635,32.234849],[102.339897,32.234739],[102.340144,32.234626],[102.340391,32.234513],[102.340715,32.234332],[102.341039,32.23415],[102.341322,32.234022],[102.341604,32.233894],[102.341967,32.233644],[102.34233,32.233395],[102.342693,32.233145],[102.342976,32.232946],[102.34326,32.232748],[102.343543,32.23255],[102.343829,32.232241],[102.344091,32.23189],[102.344358,32.23161],[102.344648,32.231398],[102.344937,32.231186],[102.345227,32.230974],[102.345465,32.230843],[102.345703,32.230712],[102.345893,32.230556],[102.346083,32.230401],[102.346095,32.230391],[102.346434,32.230141],[102.346613,32.229977],[102.346791,32.229814],[102.347,32.229715],[102.347208,32.229617],[102.347567,32.229427],[102.347926,32.229237],[102.348285,32.229046],[102.348692,32.228871],[102.349099,32.228695],[102.349415,32.22857],[102.349748,32.228433],[102.350085,32.228287],[102.350422,32.22814],[102.350759,32.227993],[102.351125,32.227862],[102.351491,32.227731],[102.351817,32.227606],[102.35183,32.227601],[102.352228,32.227571],[102.352615,32.227601],[102.352953,32.227658],[102.353002,32.227666],[102.353269,32.22772],[102.353424,32.227726],[102.353609,32.227708],[102.3539,32.227648],[102.354156,32.227565],[102.354382,32.227497],[102.354608,32.227428],[102.354635,32.22742],[102.355037,32.227355],[102.355145,32.227337],[102.355233,32.227333],[102.355414,32.227293],[102.355474,32.22728],[102.355506,32.227273],[102.35572,32.227208],[102.355725,32.227198],[102.35581,32.227024],[102.35582,32.226992],[102.355899,32.226744],[102.355982,32.226533],[102.356065,32.226322],[102.356089,32.226096],[102.356113,32.22587],[102.356172,32.22556],[102.356214,32.225435],[102.356428,32.225281],[102.356684,32.225037],[102.356821,32.224936],[102.356892,32.224823],[102.356976,32.224626],[102.357118,32.224489],[102.357119,32.224489],[102.35712,32.224489],[102.357326,32.224365],[102.357493,32.22424],[102.357695,32.223901],[102.357862,32.223698],[102.358153,32.223478],[102.35835,32.223371],[102.358463,32.223288],[102.358522,32.223169],[102.358599,32.22302],[102.358891,32.222717],[102.359101,32.222425],[102.359153,32.222354],[102.359211,32.222263],[102.359301,32.222122],[102.359426,32.222021],[102.359569,32.221961],[102.359719,32.221781],[102.359868,32.2216],[102.360077,32.221348],[102.360218,32.221164],[102.360345,32.220965],[102.360473,32.220766],[102.36064,32.220403],[102.360821,32.220046],[102.361003,32.219689],[102.361107,32.219335],[102.361211,32.218981],[102.361407,32.218636],[102.361621,32.218345],[102.361717,32.218113],[102.361812,32.217881],[102.361919,32.217581],[102.362026,32.217282],[102.362133,32.216982],[102.362156,32.216877],[102.362237,32.216504],[102.362317,32.216132],[102.362414,32.215829],[102.362419,32.215816],[102.362573,32.215406],[102.362674,32.215067],[102.362722,32.214734],[102.362784,32.214392],[102.362847,32.21405],[102.362972,32.213627],[102.363007,32.213455],[102.363168,32.213264],[102.363345,32.213066],[102.363522,32.212868],[102.363561,32.212824],[102.36365,32.212592],[102.363715,32.212378],[102.363769,32.21214],[102.363787,32.211839],[102.363805,32.211537],[102.363822,32.211236],[102.363786,32.210824],[102.363749,32.210413],[102.363739,32.210296],[102.363717,32.21005],[102.363715,32.210028],[102.363793,32.209689],[102.3639,32.209314],[102.36405,32.209049],[102.364064,32.209024],[102.364102,32.208958],[102.364393,32.208642],[102.364646,32.208425],[102.364899,32.208208],[102.365185,32.208044],[102.36547,32.207881],[102.365613,32.207809],[102.365672,32.207746],[102.365684,32.207732],[102.365684,32.207643],[102.365625,32.207458],[102.365595,32.2072],[102.365565,32.206941],[102.365502,32.206706],[102.365452,32.206522],[102.365339,32.206102],[102.365316,32.205829],[102.365339,32.205507],[102.365423,32.205252],[102.365537,32.204975],[102.365652,32.204699],[102.365666,32.204663],[102.36572,32.204413],[102.365747,32.204151],[102.365774,32.203889],[102.365683,32.20361],[102.365637,32.203467],[102.365559,32.203294],[102.365464,32.203062],[102.365369,32.202926],[102.365185,32.202747],[102.365101,32.20264],[102.365113,32.202343],[102.365119,32.202075],[102.365125,32.201807],[102.365131,32.201563],[102.365238,32.20123],[102.365298,32.201111],[102.365452,32.200986],[102.365637,32.200873],[102.36575,32.200719],[102.365876,32.200404],[102.36594,32.200243],[102.366012,32.200011],[102.36616,32.199749],[102.366374,32.199452],[102.366398,32.199412],[102.366402,32.199402],[102.366478,32.199242],[102.366582,32.198942],[102.366598,32.198896],[102.366572,32.198549],[102.366545,32.198478],[102.36644,32.198417],[102.366142,32.19825],[102.365893,32.198024],[102.365637,32.197816],[102.365557,32.197774],[102.3655,32.197744],[102.365434,32.197709],[102.365357,32.197619],[102.365262,32.197364],[102.365119,32.196965],[102.365039,32.196694],[102.364959,32.196424],[102.364881,32.196067],[102.36478,32.19593],[102.364593,32.195671],[102.364405,32.195412],[102.364395,32.195397],[102.364162,32.195066],[102.363929,32.194734],[102.363834,32.194556],[102.363781,32.194383],[102.363739,32.194074],[102.363674,32.193896],[102.363543,32.193723],[102.363332,32.193423],[102.36312,32.193122],[102.362948,32.192908],[102.362938,32.19271],[102.362936,32.192682],[102.362859,32.192498],[102.362639,32.192117],[102.362439,32.191879],[102.36224,32.191641],[102.362044,32.191397],[102.361943,32.191225],[102.361904,32.19115],[102.361859,32.191064],[102.361782,32.190939],[102.361681,32.19088],[102.361496,32.190874],[102.361357,32.19087],[102.360997,32.190862],[102.360824,32.190838],[102.36067,32.190737],[102.360529,32.190663],[102.360455,32.190624],[102.360271,32.190594],[102.360104,32.190523],[102.359962,32.190392],[102.359831,32.190291],[102.359724,32.190243],[102.359456,32.190225],[102.359022,32.190237],[102.358977,32.190237],[102.358843,32.190237],[102.358707,32.190166],[102.35854,32.190059],[102.358415,32.190029],[102.358201,32.190011],[102.357892,32.190035],[102.357731,32.190017],[102.357614,32.189973],[102.357558,32.189952],[102.35738,32.189767],[102.357178,32.189488],[102.357023,32.189262],[102.356934,32.18894],[102.356868,32.188661],[102.356857,32.188523],[102.356857,32.18852],[102.356857,32.188518],[102.356773,32.188411],[102.356607,32.188215],[102.356494,32.187977],[102.356529,32.187768],[102.356636,32.187584],[102.35672,32.187394],[102.356708,32.187301],[102.356702,32.187251],[102.356517,32.186906],[102.356419,32.18676],[102.356369,32.186686],[102.356268,32.186585],[102.356024,32.186424],[102.355804,32.18624],[102.355628,32.186094],[102.355453,32.185948],[102.355298,32.18571],[102.355149,32.185383],[102.355131,32.185181],[102.355042,32.18502],[102.354882,32.184866],[102.354617,32.18472],[102.354352,32.184574],[102.353954,32.184407],[102.353626,32.184158],[102.35343,32.18392],[102.353258,32.183741],[102.353097,32.183581],[102.352924,32.183515],[102.352703,32.183441],[102.352481,32.183367],[102.352193,32.183271],[102.351958,32.183182],[102.351723,32.183093],[102.35139,32.183045],[102.351223,32.183015],[102.351134,32.182873],[102.351074,32.182676],[102.351059,32.182498],[102.351039,32.182272],[102.350973,32.181887],[102.350908,32.181503],[102.350842,32.181118],[102.350765,32.180927],[102.35061,32.180761],[102.350429,32.180588],[102.350248,32.180416],[102.350019,32.180279],[102.34979,32.180142],[102.349447,32.179997],[102.349105,32.179851],[102.348963,32.179791],[102.348927,32.17972],[102.348927,32.179607],[102.349004,32.179452],[102.349123,32.179292],[102.349399,32.179026],[102.349675,32.17876],[102.349896,32.178609],[102.350117,32.178458],[102.35052,32.17832],[102.350924,32.178182],[102.351328,32.178044],[102.351731,32.177905],[102.352105,32.177791],[102.352479,32.177676],[102.352853,32.177562],[102.353226,32.177447],[102.353576,32.177364],[102.353925,32.177281],[102.354275,32.177198],[102.354703,32.177097],[102.355078,32.177055],[102.35531,32.177046],[102.355542,32.177037],[102.355851,32.176942],[102.355869,32.176936],[102.355893,32.176928],[102.356014,32.176886],[102.356243,32.176809],[102.356472,32.176732],[102.356696,32.176633],[102.356919,32.176534],[102.357171,32.176423],[102.357367,32.176336],[102.35759,32.176237],[102.357814,32.176138],[102.358013,32.17605],[102.35829,32.175865],[102.358593,32.175692],[102.358895,32.175519],[102.359198,32.175347],[102.359331,32.17527],[102.35962,32.175128],[102.359908,32.174985],[102.360021,32.174878],[102.360099,32.174753],[102.36011,32.17461],[102.360116,32.174383],[102.360122,32.174146],[102.360146,32.173944],[102.360206,32.173837],[102.360348,32.173753],[102.360551,32.173623],[102.360676,32.173426],[102.360729,32.1732],[102.360705,32.172962],[102.360661,32.172605],[102.360616,32.172248],[102.360616,32.172022],[102.360646,32.171921],[102.360967,32.171659],[102.361211,32.171576],[102.361532,32.171499],[102.361764,32.17138],[102.361931,32.171291],[102.362145,32.171148],[102.362401,32.170987],[102.362656,32.170827],[102.36293,32.170708],[102.363261,32.170513],[102.363591,32.170318],[102.363656,32.170279],[102.3639,32.170154],[102.364072,32.170006],[102.364251,32.16975],[102.36434,32.169405],[102.36434,32.169149],[102.364304,32.168953],[102.364292,32.168925],[102.364191,32.168689],[102.36409,32.168453],[102.36398,32.168185],[102.36387,32.167918],[102.363779,32.167605],[102.363727,32.167424],[102.363668,32.16702],[102.363573,32.166799],[102.363424,32.16663],[102.363275,32.16646],[102.363014,32.166281],[102.362754,32.166103],[102.362493,32.165924],[102.36246,32.165901],[102.362335,32.165776],[102.36227,32.165628],[102.362234,32.16536],[102.362198,32.165092],[102.362198,32.164848],[102.362198,32.164604],[102.362202,32.164547],[102.362213,32.164366],[102.362235,32.163995],[102.362258,32.163623],[102.362258,32.163454],[102.362258,32.163325],[102.362234,32.163129],[102.362127,32.162796],[102.362103,32.162671],[102.362109,32.162534],[102.362192,32.162427],[102.362532,32.162201],[102.362766,32.161937],[102.363,32.161674],[102.363233,32.16141],[102.363495,32.161243],[102.363727,32.161124],[102.364025,32.161047],[102.364289,32.160991],[102.364554,32.160934],[102.364881,32.160934],[102.365155,32.160952],[102.365321,32.160964],[102.365546,32.160933],[102.365583,32.160928],[102.365653,32.1609],[102.365851,32.160821],[102.366184,32.16072],[102.366449,32.160663],[102.366713,32.160607],[102.366945,32.160577],[102.367183,32.160583],[102.367198,32.160583],[102.367264,32.16057],[102.367663,32.160494],[102.368061,32.160418],[102.368253,32.160397],[102.368468,32.160339],[102.368778,32.160155],[102.369045,32.160083],[102.369273,32.160032],[102.369501,32.159981],[102.369599,32.159958],[102.370018,32.159828],[102.370437,32.159697],[102.370622,32.159661],[102.370764,32.159673],[102.370943,32.159715],[102.370988,32.159727],[102.371098,32.159756],[102.37127,32.159804],[102.371496,32.159828],[102.371764,32.159881],[102.372032,32.159935],[102.372252,32.160033],[102.372472,32.160131],[102.372692,32.160214],[102.372882,32.160286],[102.373236,32.160342],[102.37359,32.160399],[102.373745,32.160494],[102.37381,32.160619],[102.37381,32.160768],[102.37378,32.160922],[102.373774,32.160952],[102.373774,32.161148],[102.373828,32.161368],[102.373965,32.161553],[102.37406,32.161618],[102.374328,32.161713],[102.374548,32.161826],[102.374839,32.16191],[102.375048,32.161975],[102.37528,32.162017],[102.375399,32.162037],[102.375601,32.16207],[102.375672,32.162171],[102.375697,32.162262],[102.375761,32.162493],[102.37588,32.162695],[102.376071,32.162933],[102.376243,32.163218],[102.376368,32.163427],[102.3766,32.163581],[102.376975,32.16376],[102.377266,32.163891],[102.377427,32.163938],[102.377724,32.164158],[102.377897,32.164301],[102.377939,32.164372],[102.37801,32.164557],[102.378069,32.164783],[102.378135,32.164884],[102.378266,32.164949],[102.378593,32.165039],[102.378884,32.165086],[102.379122,32.165086],[102.37936,32.165074],[102.379509,32.165134],[102.379586,32.165175],[102.379795,32.165288],[102.379884,32.165336],[102.380181,32.165348],[102.38036,32.165413],[102.380538,32.165491],[102.380693,32.165544],[102.38097,32.165549],[102.381062,32.16555],[102.381466,32.165651],[102.381752,32.165782],[102.382055,32.165943],[102.382192,32.166084],[102.382233,32.166127],[102.382394,32.166401],[102.382442,32.166457],[102.382662,32.166716],[102.382799,32.166829],[102.382947,32.166871],[102.38312,32.166901],[102.383304,32.166907],[102.383602,32.166889],[102.383754,32.166892],[102.383923,32.166895],[102.384185,32.166942],[102.384369,32.166972],[102.384708,32.16696],[102.38491,32.166936],[102.385255,32.16702],[102.385427,32.167057],[102.385666,32.167109],[102.385904,32.16718],[102.386186,32.167245],[102.386468,32.167309],[102.386606,32.167341],[102.386981,32.167409],[102.387169,32.167444],[102.387211,32.167531],[102.387477,32.168163],[102.388857,32.169446],[102.391037,32.170552],[102.393159,32.171705],[102.394544,32.172842],[102.395433,32.173487],[102.396988,32.174629],[102.398376,32.17567],[102.399263,32.176363],[102.40031,32.177446],[102.401627,32.178968],[102.402338,32.179899],[102.403043,32.181022],[102.403964,32.182536],[102.404182,32.182879],[102.404271,32.183019],[102.404692,32.183682],[102.404709,32.183709],[102.404833,32.183904],[102.40533,32.184349],[102.406406,32.184419],[102.407528,32.184828],[102.408253,32.185277],[102.408992,32.187221],[102.409303,32.18824],[102.409318,32.188261],[102.409432,32.188425],[102.40958,32.188638],[102.409848,32.189023],[102.410091,32.189611],[102.410432,32.190433],[102.410594,32.190966],[102.410847,32.191792],[102.410954,32.19333],[102.410968,32.19353],[102.410968,32.19354],[102.410986,32.194881],[102.411247,32.19592],[102.411356,32.196353],[102.411547,32.19711],[102.4118,32.198187],[102.411863,32.198457],[102.411898,32.198606],[102.411933,32.198756],[102.411959,32.19887],[102.412002,32.199049],[102.412074,32.199232],[102.412156,32.199442],[102.412229,32.199627],[102.412318,32.199855],[102.412379,32.200033],[102.412438,32.200171],[102.412478,32.200265],[102.412587,32.20041],[102.412705,32.200569],[102.41282,32.200724],[102.412911,32.200846],[102.41318,32.201208],[102.413353,32.20144],[102.413513,32.202148],[102.413605,32.202554],[102.413614,32.202796],[102.413632,32.203286],[102.413637,32.203423],[102.414411,32.204114],[102.415356,32.204808],[102.416104,32.206066],[102.416547,32.20681],[102.416637,32.207632],[102.416782,32.208527],[102.416927,32.209422],[102.416984,32.209705],[102.417051,32.210043],[102.417605,32.211043],[102.417692,32.211151],[102.418648,32.212336],[102.419035,32.213332],[102.419601,32.214079],[102.419855,32.214414],[102.420014,32.214855],[102.420069,32.215005],[102.420144,32.215214],[102.419942,32.215631],[102.419914,32.215689],[102.419814,32.215896],[102.418535,32.217087],[102.418141,32.21782],[102.417613,32.218867],[102.417531,32.219554],[102.417815,32.220512],[102.418602,32.221322],[102.419013,32.222177],[102.419167,32.223345],[102.419273,32.223626],[102.419688,32.224732],[102.419912,32.225636],[102.419875,32.226958],[102.420208,32.228394],[102.420318,32.230043],[102.420339,32.230355],[102.420302,32.231677],[102.419766,32.23299],[102.419399,32.233719],[102.419323,32.23387],[102.419239,32.234037],[102.419122,32.234151],[102.418983,32.234286],[102.418831,32.234433],[102.418705,32.234556],[102.418598,32.234659],[102.418473,32.234774],[102.418325,32.23491],[102.418158,32.235063],[102.418007,32.235202],[102.417853,32.235344],[102.41775,32.235438],[102.417639,32.235539],[102.417541,32.235682],[102.417414,32.235866],[102.417309,32.236018],[102.417174,32.236213],[102.417037,32.236412],[102.416916,32.236586],[102.416804,32.236747],[102.416716,32.236876],[102.416665,32.236948],[102.416619,32.237092],[102.416555,32.237289],[102.41649,32.23749],[102.41642,32.237706],[102.416352,32.237915],[102.416279,32.238147],[102.416218,32.238329],[102.416174,32.238463],[102.416143,32.23856],[102.41612,32.238631],[102.416079,32.238774],[102.416052,32.238872],[102.416023,32.238974],[102.415968,32.239168],[102.41593,32.239304],[102.415883,32.239472],[102.415843,32.239614],[102.415806,32.239744],[102.415764,32.239893],[102.415726,32.240027],[102.415704,32.240104],[102.415676,32.240225],[102.41565,32.240335],[102.415608,32.240515],[102.415604,32.240533],[102.415577,32.240649],[102.415572,32.240669],[102.415551,32.240761],[102.415533,32.240835],[102.415506,32.240951],[102.415421,32.241316],[102.41539,32.241667],[102.415384,32.241737],[102.415376,32.241816],[102.415371,32.241877],[102.415364,32.241956],[102.415355,32.242057],[102.415347,32.242148],[102.415337,32.242266],[102.415325,32.242392],[102.415315,32.242508],[102.415303,32.242639],[102.415292,32.242763],[102.41528,32.242898],[102.415269,32.243022],[102.415259,32.243138],[102.41525,32.24324],[102.415243,32.243317],[102.415238,32.243376],[102.415229,32.243481],[102.415221,32.243576],[102.415209,32.243711],[102.415202,32.24379],[102.415198,32.243836],[102.415192,32.243905],[102.415187,32.243961],[102.415181,32.244025],[102.415175,32.244101],[102.415166,32.2442],[102.415158,32.24429],[102.415152,32.244359],[102.415148,32.244403],[102.415146,32.244433],[102.415142,32.244446],[102.415129,32.244497],[102.415114,32.244559],[102.415101,32.244609],[102.415088,32.244659],[102.415068,32.244738],[102.41505,32.244809],[102.415031,32.24488],[102.415018,32.244933],[102.415006,32.244978],[102.414985,32.24506],[102.414936,32.245253],[102.414889,32.245437],[102.414839,32.245634],[102.414796,32.245802],[102.414757,32.246127],[102.414722,32.246418],[102.414686,32.246721],[102.414657,32.246967],[102.414632,32.247174],[102.414652,32.247353],[102.414679,32.247592],[102.414703,32.247831],[102.414724,32.248002],[102.414739,32.248127],[102.414747,32.248199],[102.41477,32.2484],[102.414781,32.248501],[102.414838,32.248624],[102.414938,32.248818],[102.415024,32.249023],[102.415075,32.249142],[102.415078,32.249232],[102.415083,32.249368],[102.415087,32.249517],[102.415093,32.249679],[102.415097,32.249807],[102.415101,32.24994],[102.415105,32.250051],[102.415108,32.250148],[102.415112,32.250244],[102.415114,32.250319],[102.415117,32.250437],[102.415122,32.250547],[102.415126,32.250681],[102.415131,32.250786],[102.415135,32.2509],[102.415139,32.251002],[102.415141,32.251063],[102.415155,32.251458],[102.415166,32.251793],[102.415178,32.252108],[102.415206,32.252674],[102.415223,32.253017],[102.415242,32.253404],[102.415257,32.253697],[102.415391,32.254232],[102.415461,32.254511],[102.415537,32.254814],[102.415592,32.255207],[102.415631,32.255493],[102.415692,32.255929],[102.415758,32.256703],[102.415802,32.257217],[102.415832,32.257572],[102.415819,32.258033],[102.415811,32.258313],[102.415796,32.258842],[102.415904,32.259139],[102.416011,32.259436],[102.416096,32.259672],[102.416143,32.259802],[102.416492,32.260656],[102.416699,32.261108],[102.416786,32.261297],[102.41745,32.262051],[102.417453,32.262056],[102.417456,32.26206],[102.418229,32.263126],[102.419002,32.264412],[102.419549,32.264922],[102.420045,32.265385],[102.420277,32.265602],[102.420628,32.266403],[102.420724,32.267411],[102.420893,32.268049],[102.42177,32.267856],[102.421921,32.267703],[102.422059,32.267564],[102.422254,32.267366],[102.422484,32.267134],[102.422632,32.266984],[102.422796,32.266818],[102.423073,32.266688],[102.423305,32.26658],[102.423554,32.266463],[102.423829,32.26643],[102.424033,32.266405],[102.424304,32.266372],[102.424513,32.266241],[102.424673,32.26614],[102.424874,32.266014],[102.425064,32.265896],[102.425256,32.265777],[102.425453,32.265654],[102.425699,32.265501],[102.425892,32.265442],[102.426128,32.265369],[102.42637,32.265294],[102.426658,32.265204],[102.426934,32.265119],[102.427144,32.265054],[102.427291,32.265031],[102.427519,32.264995],[102.42776,32.264957],[102.427928,32.264931],[102.428111,32.264902],[102.428333,32.264867],[102.42863,32.26474],[102.428911,32.264616],[102.429196,32.264492],[102.429491,32.264364],[102.429622,32.264307],[102.429846,32.26421],[102.430032,32.26414],[102.430244,32.264061],[102.43055,32.263945],[102.430749,32.263871],[102.430917,32.263808],[102.431113,32.26361],[102.431173,32.263549],[102.431296,32.263705],[102.431401,32.263838],[102.431545,32.264019],[102.431713,32.264233],[102.431843,32.2644],[102.431988,32.264584],[102.432121,32.264754],[102.432211,32.264868],[102.432316,32.265001],[102.432429,32.265219],[102.432531,32.265416],[102.43262,32.265584],[102.432709,32.265757],[102.432788,32.26591],[102.432849,32.266061],[102.432896,32.266178],[102.432961,32.26634],[102.433007,32.266472],[102.433073,32.266629],[102.433139,32.266782],[102.433196,32.266924],[102.433317,32.267488],[102.433452,32.268119],[102.433526,32.268466],[102.433464,32.270687],[102.433592,32.272754],[102.433659,32.274819],[102.433249,32.276081],[102.432833,32.277608],[102.432394,32.27852],[102.432357,32.278597],[102.432303,32.278708],[102.432511,32.280194],[102.432974,32.281421],[102.432813,32.282741],[102.432327,32.283519],[102.43216,32.283786],[102.431994,32.28392],[102.431586,32.284251],[102.431242,32.285408],[102.430894,32.286724],[102.430842,32.286793],[102.430826,32.286815],[102.430739,32.286932],[102.430652,32.287048],[102.430642,32.287061],[102.430613,32.2871],[102.430585,32.287138],[102.43056,32.287172],[102.430546,32.28719],[102.430116,32.287767],[102.429922,32.287892],[102.429164,32.288382],[102.428583,32.289111],[102.428442,32.289646],[102.428394,32.289825],[102.428025,32.291217],[102.427678,32.29248],[102.427089,32.293474],[102.426431,32.29473],[102.425946,32.295245],[102.425403,32.295821],[102.424268,32.296274],[102.423392,32.296415],[102.422145,32.29657],[102.421203,32.296688],[102.419915,32.296739],[102.419457,32.296758],[102.418769,32.296758],[102.41684,32.296757],[102.414842,32.296875],[102.414055,32.29669],[102.413604,32.296585],[102.413298,32.296535],[102.412283,32.296866],[102.412026,32.29686],[102.410568,32.29683],[102.410499,32.296826],[102.409512,32.296756],[102.40948,32.296754],[102.408561,32.296689],[102.407203,32.296611],[102.406307,32.296894],[102.406286,32.297647],[102.406432,32.298755],[102.406342,32.299808],[102.406341,32.299853],[102.406337,32.299987],[102.406333,32.300126],[102.40633,32.300231],[102.406325,32.300416],[102.406319,32.300652],[102.406314,32.300817],[102.406309,32.300995],[102.406304,32.301146],[102.4063,32.301298],[102.406323,32.301464],[102.406345,32.301622],[102.406373,32.301825],[102.406403,32.30204],[102.40643,32.302229],[102.406446,32.302345],[102.406478,32.302577],[102.406507,32.302783],[102.406534,32.302981],[102.406562,32.303179],[102.406563,32.303396],[102.406563,32.303463],[102.406564,32.303568],[102.406565,32.303804],[102.406566,32.304044],[102.406566,32.304154],[102.406566,32.304193],[102.406567,32.304287],[102.406568,32.304556],[102.406569,32.304796],[102.406569,32.304863],[102.40657,32.305096],[102.406571,32.305289],[102.406571,32.305404],[102.406572,32.305591],[102.406572,32.305719],[102.406573,32.305983],[102.406573,32.306104],[102.406573,32.30611],[102.406573,32.306147],[102.406578,32.308137],[102.406479,32.308814],[102.406383,32.309472],[102.406189,32.310741],[102.405829,32.312275],[102.405008,32.313397],[102.403697,32.315111],[102.402707,32.316632],[102.401858,32.318758],[102.401741,32.320095],[102.401235,32.321224],[102.400807,32.322453],[102.400633,32.322953],[102.400456,32.324518],[102.400363,32.32534],[102.400234,32.326324],[102.399947,32.327518],[102.399466,32.33021],[102.399234,32.333035],[102.399008,32.335154],[102.397563,32.334466],[102.396598,32.334668],[102.395766,32.334799],[102.394551,32.334625],[102.393033,32.334372],[102.392014,32.33424],[102.391188,32.334133],[102.390993,32.334108],[102.389526,32.333597],[102.389072,32.333468],[102.388925,32.333294],[102.388894,32.332607],[102.389149,32.332155],[102.389373,32.331759],[102.389392,32.331457],[102.389464,32.330346],[102.389487,32.329532],[102.389525,32.329151],[102.389561,32.328778],[102.38963,32.328077],[102.389636,32.328009],[102.389704,32.327264],[102.389165,32.326696],[102.388519,32.326339],[102.388387,32.326332],[102.388139,32.326319],[102.387743,32.326298],[102.387649,32.326293],[102.387618,32.326291],[102.387208,32.326269],[102.386572,32.326499],[102.386085,32.326675],[102.386012,32.326709],[102.385369,32.327003],[102.385102,32.32711],[102.385082,32.327118],[102.384819,32.327222],[102.38475,32.32725],[102.384245,32.327451],[102.383216,32.328116],[102.382758,32.32835],[102.382698,32.328381],[102.382502,32.328481],[102.382162,32.328655],[102.382089,32.328693],[102.381887,32.328856],[102.381861,32.328876],[102.381055,32.329529],[102.380272,32.330413],[102.37984,32.33139],[102.378605,32.332179],[102.377477,32.332756],[102.376519,32.332736],[102.37576,32.332763],[102.375252,32.332881],[102.375032,32.33349],[102.376298,32.334395],[102.376631,32.334957],[102.376615,32.335512],[102.376028,32.336203],[102.375079,32.337367],[102.373813,32.338969],[102.372799,32.340872],[102.372027,32.341928],[102.371335,32.343283],[102.370191,32.345146],[102.369589,32.346355],[102.369292,32.347606],[102.368694,32.348667],[102.367972,32.34954],[102.367472,32.350232],[102.366066,32.35061],[102.364567,32.351208],[102.363549,32.351741],[102.362957,32.352617],[102.362371,32.353271],[102.362164,32.353634],[102.361683,32.354477],[102.361414,32.35621],[102.361379,32.357431],[102.36127,32.358168],[102.361199,32.359129],[102.361068,32.360643],[102.36063,32.363705],[102.360385,32.364625],[102.360052,32.36558],[102.359888,32.366723],[102.359798,32.368312],[102.35968,32.369383],[102.35931,32.370115],[102.358235,32.371091],[102.357558,32.371891],[102.356533,32.372647],[102.355159,32.373432],[102.354258,32.374412],[102.354239,32.375077],[102.354044,32.375776],[102.353752,32.376806],[102.353545,32.377949],[102.353004,32.378529],[102.352253,32.378883],[102.351855,32.37906],[102.350881,32.379595],[102.351449,32.381049],[102.351995,32.383244],[102.352552,32.385068],[102.352564,32.386142],[102.352579,32.387141],[102.352677,32.387444],[102.353236,32.389172],[102.353459,32.38986],[102.353635,32.39127],[102.354038,32.392425],[102.354352,32.393616],[102.355108,32.394594],[102.355089,32.395259],[102.35438,32.397131],[102.352698,32.399464],[102.351006,32.400686],[102.349568,32.402136],[102.34617,32.407947],[102.345785,32.408491],[102.345772,32.408509],[102.345373,32.409072],[102.3453,32.409175],[102.345289,32.40919],[102.345283,32.409199],[102.345215,32.409296],[102.344227,32.410274],[102.343993,32.410485],[102.342031,32.412263],[102.338886,32.415163],[102.337247,32.416674],[102.33675,32.417132],[102.336709,32.417169],[102.336699,32.417179],[102.336666,32.417209],[102.336623,32.417249],[102.336616,32.417255],[102.336462,32.417397],[102.336382,32.417471],[102.335594,32.417565],[102.334971,32.417589],[102.334328,32.417613],[102.332497,32.417574],[102.331197,32.417287],[102.330141,32.417065],[102.329636,32.416958],[102.327275,32.415687],[102.326135,32.415885],[102.324757,32.416781],[102.323692,32.417387],[102.322646,32.417365],[102.321596,32.417454],[102.320608,32.416952],[102.319248,32.417219],[102.319057,32.41777],[102.31871,32.419168],[102.318842,32.420614],[102.318847,32.420988],[102.318856,32.421613],[102.319034,32.422949],[102.319457,32.426362],[102.319588,32.427807],[102.319737,32.428699],[102.319935,32.429369],[102.320371,32.430858],[102.320451,32.432562],[102.320407,32.434041],[102.320707,32.435712],[102.32075,32.437193],[102.32067,32.438412],[102.320417,32.43959],[102.32037,32.44118],[102.320409,32.442809],[102.320434,32.444918],[102.32067,32.445774],[102.321341,32.446714],[102.321883,32.447539],[102.322678,32.448703],[102.323044,32.449599],[102.325506,32.454868],[102.326407,32.456885],[102.326497,32.458256],[102.32624,32.459545],[102.325773,32.460608],[102.325561,32.461861],[102.325074,32.463553],[102.325061,32.465477],[102.324895,32.466657],[102.324727,32.467911],[102.32456,32.469129],[102.324606,32.470535],[102.324006,32.471633],[102.323588,32.472475],[102.322209,32.47337],[102.321372,32.473611],[102.320272,32.473921],[102.318993,32.474375],[102.317894,32.47461],[102.316193,32.474574],[102.314795,32.474618],[102.314213,32.475123],[102.313725,32.475775],[102.313395,32.476216],[102.313131,32.476667],[102.312199,32.478262],[102.311323,32.479834],[102.311219,32.480334],[102.310916,32.481787],[102.311089,32.483307],[102.311673,32.484208],[102.311739,32.4847],[102.311816,32.485284],[102.31153,32.486092],[102.31063,32.486997],[102.309694,32.487643],[102.308793,32.488586],[102.308286,32.4895],[102.307999,32.490345],[102.307839,32.491304],[102.307815,32.492117],[102.308133,32.49316],[102.308318,32.494274],[102.30869,32.494985],[102.308679,32.495343],[102.308664,32.495872],[102.308633,32.496907],[102.308369,32.49715],[102.308319,32.497197],[102.308144,32.49723],[102.30744,32.497363],[102.307147,32.49745],[102.30559,32.497915],[102.304271,32.498257],[102.303308,32.49831],[102.301595,32.49868],[102.300504,32.498657],[102.300373,32.498609],[102.300303,32.498583],[102.299338,32.498225],[102.298297,32.498018],[102.297387,32.497776],[102.296037,32.497673],[102.295037,32.497541],[102.293911,32.49722],[102.292726,32.497454],[102.292101,32.497884],[102.291871,32.498286],[102.29189,32.499101],[102.291976,32.50062],[102.291887,32.502135],[102.291637,32.503202],[102.291601,32.503375],[102.291597,32.503393],[102.291505,32.503833],[102.29147,32.503999],[102.291382,32.504418],[102.290941,32.506036],[102.290556,32.507212],[102.290392,32.508318],[102.290603,32.510025],[102.29064,32.511691],[102.290391,32.512721],[102.29019,32.513605],[102.289346,32.515511],[102.288597,32.517196],[102.288122,32.517988],[102.287869,32.518673],[102.287337,32.518908],[102.286228,32.519032],[102.284592,32.519194],[102.283165,32.519536],[102.282892,32.519601],[102.281662,32.519821],[102.280661,32.520194],[102.280417,32.5203],[102.280201,32.520393],[102.280189,32.520398],[102.279632,32.520638],[102.279246,32.520805],[102.278934,32.521489],[102.278447,32.522401],[102.277761,32.523683],[102.277274,32.524758],[102.277244,32.524826],[102.277143,32.525049],[102.277014,32.525018],[102.276779,32.524961],[102.276544,32.524904],[102.27631,32.524846],[102.276075,32.524789],[102.275857,32.52472],[102.275639,32.524651],[102.275299,32.52453],[102.275037,32.524347],[102.274816,32.524082],[102.274802,32.52406],[102.274785,32.524033],[102.27465,32.523819],[102.274563,32.523527],[102.274535,32.523284],[102.274531,32.523251],[102.274517,32.523138],[102.274515,32.523108],[102.274514,32.523097],[102.274505,32.522976],[102.274553,32.522872],[102.274604,32.522763],[102.274627,32.522713],[102.274749,32.522451],[102.27489,32.522227],[102.274992,32.522052],[102.274988,32.522033],[102.274974,32.52197],[102.27492,32.521911],[102.274887,32.521875],[102.274809,32.521789],[102.274619,32.521705],[102.274498,32.52168],[102.274354,32.52165],[102.274185,32.521646],[102.274086,32.521644],[102.273972,32.521641],[102.273945,32.52164],[102.273685,32.521627],[102.273398,32.521613],[102.273015,32.521516],[102.27298,32.521506],[102.272871,32.521439],[102.272714,32.521341],[102.272665,32.52131],[102.272604,32.521273],[102.272433,32.521087],[102.272345,32.520991],[102.272162,32.520727],[102.271881,32.520495],[102.2716,32.520327],[102.271536,32.5203],[102.271419,32.52025],[102.271333,32.520214],[102.271306,32.520202],[102.271279,32.520191],[102.271266,32.520188],[102.27088,32.520102],[102.270641,32.520104],[102.270403,32.520107],[102.270124,32.520142],[102.269985,32.520159],[102.269845,32.520177],[102.269719,32.520168],[102.26968,32.520165],[102.2695,32.520152],[102.269215,32.520099],[102.268971,32.519948],[102.268958,32.519931],[102.268931,32.519895],[102.268903,32.519857],[102.268713,32.519601],[102.268591,32.519445],[102.268569,32.519417],[102.268556,32.5194],[102.268475,32.519297],[102.268456,32.519273],[102.268363,32.519104],[102.268242,32.518884],[102.268083,32.518596],[102.268068,32.518568],[102.268027,32.518495],[102.267986,32.51842],[102.267813,32.518106],[102.267707,32.517914],[102.267599,32.517717],[102.267445,32.517468],[102.267417,32.517423],[102.267269,32.517226],[102.267177,32.517127],[102.267019,32.517056],[102.266987,32.517041],[102.26689,32.517035],[102.266644,32.517018],[102.266565,32.517012],[102.266367,32.516998],[102.266319,32.516995],[102.26613,32.51691],[102.265982,32.51676],[102.265873,32.516548],[102.265846,32.516223],[102.265853,32.515964],[102.26592,32.515658],[102.265986,32.515353],[102.266042,32.515195],[102.266049,32.515177],[102.266072,32.515048],[102.266122,32.514677],[102.266013,32.514495],[102.265967,32.514459],[102.265938,32.514437],[102.265863,32.514378],[102.265843,32.514363],[102.265829,32.514356],[102.265524,32.514209],[102.265145,32.514023],[102.264943,32.513842],[102.264759,32.513594],[102.26463,32.513381],[102.264601,32.513044],[102.264572,32.512706],[102.264564,32.512342],[102.264564,32.512341],[102.264562,32.512254],[102.264561,32.512191],[102.264558,32.512084],[102.264557,32.51201],[102.264556,32.511978],[102.264542,32.511781],[102.264535,32.511685],[102.264529,32.511604],[102.264423,32.511328],[102.264391,32.511291],[102.26438,32.511278],[102.264308,32.511196],[102.264219,32.511096],[102.264206,32.511081],[102.2642,32.511073],[102.264173,32.511041],[102.264145,32.511008],[102.264035,32.510876],[102.263985,32.510817],[102.263944,32.510767],[102.263917,32.510743],[102.263897,32.510726],[102.263744,32.51059],[102.263644,32.510502],[102.263581,32.510464],[102.263525,32.510431],[102.263363,32.510333],[102.263221,32.510303],[102.263191,32.510297],[102.263105,32.510295],[102.263045,32.510294],[102.26302,32.510294],[102.262713,32.510303],[102.262465,32.510395],[102.262424,32.51041],[102.262381,32.510443],[102.262272,32.510524],[102.262227,32.510558],[102.262141,32.510622],[102.26211,32.510645],[102.262074,32.510672],[102.261757,32.510913],[102.261519,32.511073],[102.26149,32.511092],[102.261406,32.511148],[102.261268,32.511221],[102.26123,32.511242],[102.261069,32.511285],[102.261006,32.511302],[102.260951,32.511316],[102.260909,32.511328],[102.26085,32.511343],[102.260794,32.511358],[102.260671,32.511391],[102.260385,32.511445],[102.26027,32.511466],[102.260128,32.511493],[102.259869,32.511541],[102.259798,32.511556],[102.259764,32.511563],[102.259715,32.511573],[102.259562,32.511606],[102.259429,32.511666],[102.25942,32.511671],[102.259378,32.51169],[102.259329,32.511712],[102.259096,32.511819],[102.258952,32.511885],[102.258914,32.511902],[102.258876,32.51192],[102.258863,32.511926],[102.258699,32.512001],[102.258629,32.512032],[102.258391,32.512086],[102.258301,32.512106],[102.258153,32.51214],[102.258097,32.512144],[102.257916,32.512158],[102.257678,32.512177],[102.257343,32.512216],[102.257006,32.512303],[102.256693,32.512556],[102.256596,32.512904],[102.256523,32.513161],[102.256498,32.513251],[102.256349,32.513602],[102.256259,32.513811],[102.256169,32.514021],[102.255982,32.514205],[102.255796,32.514389],[102.255623,32.514562],[102.255451,32.514735],[102.255306,32.514932],[102.255161,32.51513],[102.254807,32.51531],[102.254454,32.515491],[102.254177,32.515462],[102.25393,32.515339],[102.253742,32.515123],[102.25361,32.514861],[102.253524,32.514484],[102.253438,32.514108],[102.253385,32.513706],[102.253332,32.513305],[102.25328,32.512903],[102.25327,32.512677],[102.25326,32.512451],[102.25325,32.512225],[102.25324,32.511999],[102.25323,32.511772],[102.25322,32.511546],[102.253211,32.51132],[102.253201,32.511094],[102.253191,32.510867],[102.253181,32.510641],[102.25318,32.510373],[102.25318,32.510106],[102.253179,32.509838],[102.253178,32.50957],[102.253178,32.509303],[102.253177,32.509035],[102.253176,32.508767],[102.253175,32.5085],[102.253175,32.508232],[102.253174,32.507964],[102.253173,32.507696],[102.253173,32.507429],[102.253172,32.507161],[102.253171,32.506893],[102.253171,32.506626],[102.25317,32.506358],[102.253154,32.50612],[102.253138,32.505882],[102.253122,32.505645],[102.253106,32.505407],[102.25309,32.505169],[102.253074,32.504931],[102.253058,32.504694],[102.253042,32.504456],[102.253026,32.504218],[102.25301,32.503981],[102.252994,32.503743],[102.252978,32.503505],[102.25293,32.503249],[102.252882,32.502993],[102.252834,32.502737],[102.252786,32.50248],[102.252738,32.502224],[102.252691,32.501968],[102.252605,32.501755],[102.25252,32.501542],[102.252435,32.501328],[102.25235,32.501115],[102.252265,32.500902],[102.252179,32.500688],[102.252094,32.500475],[102.252009,32.500262],[102.25194,32.500117],[102.251924,32.500082],[102.251843,32.499911],[102.251745,32.499705],[102.251647,32.499499],[102.25155,32.499293],[102.251452,32.499088],[102.251355,32.498882],[102.251263,32.498536],[102.251172,32.49819],[102.25111,32.497955],[102.251048,32.49772],[102.250987,32.497485],[102.250925,32.497251],[102.250863,32.497016],[102.250801,32.496781],[102.250739,32.496547],[102.250677,32.496312],[102.250615,32.496077],[102.250554,32.495842],[102.250492,32.495608],[102.25043,32.495373],[102.250368,32.495138],[102.250306,32.494904],[102.250179,32.494548],[102.250121,32.494388],[102.250051,32.494192],[102.249838,32.493833],[102.249649,32.493642],[102.249348,32.493493],[102.24896,32.493415],[102.248703,32.493409],[102.248446,32.493403],[102.248189,32.493397],[102.247931,32.493392],[102.247666,32.493421],[102.247402,32.49345],[102.247136,32.49348],[102.246871,32.493509],[102.246501,32.49376],[102.246132,32.494011],[102.245762,32.494262],[102.245711,32.494302],[102.245563,32.494415],[102.245363,32.494568],[102.245164,32.49472],[102.244965,32.494873],[102.244765,32.495025],[102.244566,32.495178],[102.244366,32.49533],[102.244167,32.495483],[102.243968,32.495635],[102.243768,32.495788],[102.243569,32.495941],[102.24337,32.496093],[102.243205,32.496252],[102.24304,32.49641],[102.242875,32.496568],[102.24271,32.496727],[102.242545,32.496885],[102.24238,32.497043],[102.242215,32.497202],[102.24205,32.49736],[102.241891,32.497565],[102.241731,32.497771],[102.241572,32.497976],[102.241413,32.498182],[102.241253,32.498387],[102.241176,32.498487],[102.241094,32.498593],[102.240934,32.498798],[102.240775,32.499004],[102.24077,32.499014],[102.240604,32.499375],[102.240433,32.499746],[102.240262,32.500117],[102.240142,32.500378],[102.24003,32.500582],[102.239918,32.500787],[102.239806,32.500992],[102.239694,32.501197],[102.239582,32.501401],[102.23947,32.501606],[102.239358,32.501811],[102.239246,32.502016],[102.239134,32.50222],[102.239022,32.502425],[102.238908,32.502678],[102.238793,32.50293],[102.238679,32.503183],[102.238565,32.503435],[102.238451,32.503688],[102.238393,32.503815],[102.238336,32.50394],[102.238282,32.50419],[102.238228,32.50444],[102.238174,32.50469],[102.23812,32.504941],[102.238066,32.505191],[102.238011,32.505441],[102.237976,32.505699],[102.23794,32.505957],[102.237934,32.506192],[102.237927,32.506427],[102.237959,32.506687],[102.237992,32.506947],[102.238086,32.507165],[102.23818,32.507384],[102.238273,32.507603],[102.238367,32.507822],[102.238461,32.508041],[102.238555,32.50826],[102.238649,32.508479],[102.238742,32.508697],[102.238836,32.508916],[102.23893,32.509135],[102.238986,32.509354],[102.239042,32.509574],[102.239099,32.509793],[102.239155,32.510012],[102.239199,32.510366],[102.239162,32.510672],[102.239042,32.510975],[102.238808,32.5113],[102.238636,32.511473],[102.238464,32.511646],[102.238175,32.511968],[102.237945,32.512246],[102.237826,32.512491],[102.237707,32.512736],[102.237615,32.513016],[102.237608,32.513257],[102.237605,32.513345],[102.237595,32.513674],[102.237694,32.514077],[102.237727,32.514337],[102.237761,32.514597],[102.237753,32.514867],[102.237744,32.515138],[102.237706,32.515514],[102.237615,32.515723],[102.237493,32.516074],[102.237432,32.516293],[102.23737,32.516512],[102.237383,32.516655],[102.237401,32.516853],[102.237433,32.517195],[102.237437,32.517501],[102.237442,32.517807],[102.237442,32.51792],[102.237443,32.518059],[102.237445,32.51831],[102.237446,32.518561],[102.237448,32.518813],[102.237449,32.519064],[102.237451,32.519315],[102.237508,32.519717],[102.237566,32.520118],[102.237527,32.520447],[102.237489,32.520776],[102.237394,32.521174],[102.237246,32.521453],[102.237099,32.521733],[102.236927,32.522082],[102.236755,32.522431],[102.236583,32.52278],[102.236322,32.523136],[102.23606,32.523491],[102.235799,32.523847],[102.235644,32.52402],[102.23549,32.524193],[102.235335,32.524366],[102.23518,32.524539],[102.235025,32.524712],[102.23487,32.524885],[102.234715,32.525059],[102.234561,32.525232],[102.234394,32.525446],[102.234227,32.52566],[102.23406,32.525874],[102.233893,32.526089],[102.233761,32.526333],[102.233629,32.526577],[102.233452,32.526903],[102.2334,32.527196],[102.233349,32.52749],[102.233335,32.527741],[102.23332,32.527992],[102.233306,32.528244],[102.233292,32.528495],[102.233336,32.528861],[102.23338,32.529227],[102.233342,32.529544],[102.233305,32.529861],[102.233239,32.530201],[102.233174,32.530541],[102.233139,32.530776],[102.233104,32.53101],[102.233047,32.531244],[102.232991,32.531479],[102.23295,32.53165],[102.232935,32.531713],[102.232879,32.531947],[102.232781,32.532192],[102.232683,32.532437],[102.232585,32.532682],[102.232487,32.532927],[102.232425,32.533144],[102.232362,32.533361],[102.2323,32.533578],[102.232238,32.533794],[102.232239,32.534027],[102.23224,32.53426],[102.23224,32.534492],[102.232241,32.534725],[102.232242,32.534958],[102.232242,32.535108],[102.232243,32.53519],[102.232244,32.535423],[102.232244,32.535656],[102.232245,32.535888],[102.232246,32.536121],[102.232205,32.536387],[102.232165,32.536653],[102.232124,32.536919],[102.232083,32.537185],[102.232043,32.537451],[102.232002,32.537717],[102.231908,32.538068],[102.231814,32.538419],[102.231733,32.538601],[102.231679,32.538722],[102.231545,32.539025],[102.231382,32.539328],[102.231219,32.539631],[102.23107,32.539933],[102.23099,32.540097],[102.230922,32.540235],[102.230841,32.540611],[102.23076,32.540986],[102.230695,32.541279],[102.230631,32.541571],[102.230618,32.541704],[102.230609,32.541784],[102.23058,32.542065],[102.230551,32.542346],[102.230566,32.542731],[102.230582,32.543115],[102.230597,32.543499],[102.230716,32.543726],[102.230834,32.543954],[102.23088,32.544262],[102.230842,32.54459],[102.230691,32.544963],[102.230652,32.545011],[102.230431,32.545287],[102.230233,32.545424],[102.230035,32.545561],[102.229751,32.545696],[102.229468,32.545831],[102.229215,32.545919],[102.228962,32.546008],[102.228623,32.546095],[102.228373,32.546112],[102.228234,32.54611],[102.227848,32.545983],[102.227462,32.545857],[102.227227,32.545731],[102.226992,32.545606],[102.226757,32.54548],[102.226523,32.545355],[102.226288,32.545229],[102.226182,32.545173],[102.226053,32.545104],[102.225859,32.54497],[102.225666,32.544836],[102.225472,32.544702],[102.225279,32.544568],[102.225086,32.544435],[102.224892,32.544301],[102.224699,32.544167],[102.224505,32.544033],[102.224312,32.543899],[102.224118,32.543765],[102.223886,32.543629],[102.223653,32.543492],[102.223421,32.543356],[102.223189,32.543219],[102.222956,32.543083],[102.222724,32.542946],[102.222491,32.542809],[102.222259,32.542673],[102.222026,32.542536],[102.221794,32.5424],[102.221562,32.542263],[102.221329,32.542126],[102.221082,32.541955],[102.220835,32.541784],[102.220508,32.541558],[102.220182,32.541332],[102.219855,32.541106],[102.219655,32.540853],[102.219504,32.540664],[102.219489,32.540645],[102.219471,32.540623],[102.219454,32.540601],[102.219242,32.540244],[102.219058,32.539886],[102.218985,32.539579],[102.218913,32.53916],[102.218841,32.538742],[102.21877,32.538323],[102.218698,32.537904],[102.21866,32.537661],[102.218622,32.537419],[102.218585,32.537177],[102.218547,32.536934],[102.218509,32.536692],[102.218471,32.53645],[102.218434,32.536208],[102.218396,32.535965],[102.218379,32.535588],[102.218249,32.535326],[102.218005,32.535062],[102.217814,32.53494],[102.217623,32.534817],[102.217266,32.534717],[102.216987,32.53471],[102.216743,32.53471],[102.2165,32.534711],[102.21634,32.534711],[102.216256,32.534712],[102.216013,32.534712],[102.215614,32.534703],[102.215215,32.534694],[102.214816,32.534686],[102.214383,32.534711],[102.213951,32.534737],[102.213688,32.5348],[102.213425,32.534862],[102.213287,32.534895],[102.213239,32.534906],[102.213172,32.534922],[102.213163,32.534925],[102.213151,32.534927],[102.213123,32.534934],[102.2129,32.534987],[102.212727,32.535028],[102.212638,32.535049],[102.212375,32.535112],[102.212113,32.535174],[102.21185,32.535237],[102.211587,32.535299],[102.211325,32.535361],[102.211063,32.535416],[102.210802,32.535472],[102.21054,32.535527],[102.210279,32.535582],[102.210017,32.535637],[102.209755,32.535692],[102.209494,32.535747],[102.209232,32.535802],[102.209173,32.535814],[102.208971,32.535857],[102.208709,32.535912],[102.208448,32.535967],[102.208291,32.536],[102.208275,32.536004],[102.208186,32.536022],[102.207774,32.53613],[102.20765,32.536163],[102.207552,32.536189],[102.207363,32.536239],[102.206951,32.536347],[102.206559,32.536393],[102.206168,32.53644],[102.205777,32.536486],[102.205771,32.536486],[102.205443,32.536491],[102.205108,32.536495],[102.204873,32.536466],[102.204637,32.536437],[102.204276,32.536406],[102.203859,32.536326],[102.203532,32.536177],[102.203313,32.536054],[102.203126,32.535791],[102.203044,32.535537],[102.202962,32.535283],[102.202879,32.535029],[102.202797,32.534774],[102.202715,32.53452],[102.202633,32.534266],[102.202551,32.534011],[102.202469,32.533757],[102.202387,32.533503],[102.202305,32.533248],[102.202223,32.532994],[102.202141,32.53274],[102.202059,32.532486],[102.201977,32.532231],[102.201895,32.531977],[102.201813,32.531723],[102.201731,32.531468],[102.201648,32.531214],[102.201566,32.53096],[102.201484,32.530706],[102.201402,32.530451],[102.20132,32.530197],[102.201247,32.529978],[102.201173,32.529758],[102.2011,32.529539],[102.201027,32.529319],[102.200953,32.5291],[102.20088,32.52888],[102.200806,32.528661],[102.200733,32.528441],[102.200675,32.528178],[102.200617,32.527915],[102.200559,32.527652],[102.200502,32.527388],[102.200444,32.527125],[102.200386,32.526862],[102.200328,32.526599],[102.20027,32.526335],[102.200253,32.525984],[102.200264,32.525605],[102.200298,32.525419],[102.200359,32.525254],[102.20053,32.525105],[102.200681,32.524974],[102.200689,32.524968],[102.200701,32.524957],[102.200874,32.524808],[102.201046,32.524659],[102.201218,32.524511],[102.20139,32.524362],[102.201563,32.524213],[102.201643,32.524144],[102.201645,32.524143],[102.201735,32.524065],[102.201907,32.523916],[102.201961,32.52387],[102.202079,32.523767],[102.202245,32.523571],[102.202412,32.523374],[102.202578,32.523178],[102.202744,32.522982],[102.202949,32.52268],[102.203069,32.522425],[102.203174,32.522191],[102.203278,32.521957],[102.203345,32.521712],[102.203411,32.521466],[102.203478,32.52122],[102.203545,32.520975],[102.203612,32.520729],[102.203679,32.520483],[102.203745,32.520238],[102.203812,32.519992],[102.203867,32.519552],[102.203922,32.519112],[102.203977,32.518671],[102.204001,32.518481],[102.204001,32.518479],[102.204002,32.518477],[102.204033,32.518231],[102.204031,32.518193],[102.204011,32.517808],[102.203989,32.517385],[102.203967,32.516961],[102.203946,32.516538],[102.203898,32.516278],[102.20385,32.516018],[102.203803,32.515758],[102.203755,32.515498],[102.203666,32.515237],[102.203577,32.514976],[102.20342,32.514643],[102.203318,32.514359],[102.203191,32.513955],[102.203108,32.513694],[102.203025,32.513433],[102.202943,32.513172],[102.20286,32.512911],[102.202851,32.512676],[102.202842,32.512441],[102.202833,32.512206],[102.202824,32.511971],[102.202815,32.511735],[102.202806,32.5115],[102.202797,32.511265],[102.202788,32.51103],[102.202779,32.510795],[102.20277,32.510559],[102.202761,32.510324],[102.202757,32.510228],[102.202752,32.510089],[102.202713,32.509853],[102.202674,32.509616],[102.202634,32.50938],[102.202595,32.509144],[102.202556,32.508907],[102.202517,32.508671],[102.202478,32.508435],[102.202439,32.508198],[102.2024,32.507962],[102.202361,32.507726],[102.202322,32.507489],[102.202282,32.507253],[102.202255,32.506992],[102.202228,32.506731],[102.202201,32.50647],[102.202174,32.506209],[102.202147,32.505948],[102.20212,32.505686],[102.202093,32.505425],[102.202066,32.505164],[102.202039,32.504903],[102.202012,32.504642],[102.201985,32.504381],[102.201958,32.50412],[102.201931,32.503859],[102.201904,32.503598],[102.201877,32.503337],[102.20185,32.503076],[102.201797,32.502674],[102.201744,32.502272],[102.201692,32.50187],[102.201537,32.501514],[102.201376,32.501276],[102.201215,32.501084],[102.201,32.500867],[102.200702,32.500578],[102.200461,32.500219],[102.200418,32.500117],[102.200281,32.499791],[102.200176,32.499577],[102.200072,32.499362],[102.19997,32.499031],[102.199923,32.498765],[102.199876,32.498499],[102.199828,32.498233],[102.199781,32.497968],[102.199731,32.497724],[102.199682,32.49748],[102.199632,32.497237],[102.199582,32.496993],[102.199532,32.496749],[102.199482,32.496506],[102.199387,32.496284],[102.199292,32.496062],[102.199274,32.496021],[102.199197,32.49584],[102.199102,32.495618],[102.199006,32.495396],[102.198989,32.495356],[102.198911,32.495175],[102.198699,32.494863],[102.198535,32.494765],[102.198314,32.49469],[102.198009,32.494685],[102.197618,32.494699],[102.197395,32.494728],[102.197172,32.494758],[102.196907,32.494776],[102.196642,32.494794],[102.196196,32.494807],[102.195751,32.494798],[102.195306,32.494788],[102.195023,32.494782],[102.194862,32.494779],[102.19464,32.494738],[102.194419,32.494697],[102.194032,32.494606],[102.193645,32.494515],[102.193386,32.494419],[102.193127,32.494323],[102.192868,32.494227],[102.192609,32.494131],[102.19235,32.494035],[102.192091,32.493939],[102.191832,32.493843],[102.191572,32.493747],[102.191313,32.493651],[102.191054,32.493555],[102.190795,32.493458],[102.190536,32.493362],[102.190422,32.493317],[102.190407,32.493101],[102.190308,32.49166],[102.190146,32.489163],[102.190196,32.48754],[102.190116,32.484999],[102.190245,32.484007],[102.190247,32.483987],[102.190347,32.483219],[102.190356,32.483147],[102.190431,32.482569],[102.190829,32.48004],[102.191084,32.478285],[102.191362,32.477039],[102.191566,32.475622],[102.191625,32.475014],[102.190869,32.473643],[102.190209,32.473019],[102.190121,32.472689],[102.189816,32.471555],[102.189845,32.470611],[102.189847,32.470541],[102.189853,32.470371],[102.189859,32.468887],[102.189859,32.468882],[102.189841,32.468837],[102.189451,32.467891],[102.189325,32.466805],[102.189001,32.465647],[102.188354,32.464651],[102.187653,32.46406],[102.186502,32.463865],[102.185543,32.463877],[102.184357,32.463512],[102.182871,32.462497],[102.182061,32.461599],[102.181184,32.460259],[102.180516,32.458653],[102.179957,32.457355],[102.178293,32.455659],[102.177609,32.45456],[102.177051,32.453262],[102.177122,32.452248],[102.17725,32.450899],[102.177301,32.450356],[102.177262,32.449069],[102.176963,32.447133],[102.176604,32.445839],[102.176494,32.444245],[102.176729,32.4431],[102.178165,32.440593],[102.178953,32.439629],[102.179582,32.438662],[102.179974,32.437621],[102.180074,32.43698],[102.179828,32.435892],[102.179334,32.435102],[102.179353,32.434493],[102.17904,32.432997],[102.178558,32.431835],[102.177884,32.430398],[102.177654,32.428802],[102.177956,32.428098],[102.17782,32.427317],[102.178134,32.426207],[102.178769,32.42507],[102.179495,32.423529],[102.180289,32.422689],[102.180403,32.422568],[102.181511,32.421577],[102.182488,32.420956],[102.183544,32.420371],[102.184198,32.419877],[102.184373,32.419374],[102.184315,32.418695],[102.183905,32.417738],[102.183051,32.416975],[102.182793,32.416292],[102.182047,32.415903],[102.181391,32.415177],[102.180948,32.414017],[102.180106,32.412881],[102.178906,32.411703],[102.178143,32.41047],[102.177899,32.409269],[102.177831,32.407833],[102.177736,32.403623],[102.177688,32.401566],[102.177022,32.3994],[102.176786,32.397915],[102.176776,32.397853],[102.176769,32.397807],[102.176743,32.397648],[102.17674,32.397624],[102.176606,32.396474],[102.177087,32.395528],[102.177899,32.394769],[102.178099,32.394304],[102.178118,32.394259],[102.178127,32.394237],[102.178067,32.394221],[102.178007,32.394204],[102.177247,32.394002],[102.1769,32.39387],[102.176874,32.39386],[102.176767,32.393819],[102.176719,32.393801],[102.176618,32.393763],[102.176551,32.393737],[102.176434,32.393693],[102.176244,32.393621],[102.176065,32.393549],[102.176002,32.393524],[102.175933,32.393496],[102.175651,32.393383],[102.175632,32.393375],[102.175611,32.393369],[102.175201,32.393203],[102.174777,32.393229],[102.174767,32.393573],[102.174765,32.393624],[102.174763,32.393681],[102.174762,32.393731],[102.174325,32.394187],[102.173881,32.394177],[102.173814,32.394176],[102.173734,32.394174],[102.173727,32.394165],[102.173699,32.394124],[102.173289,32.393519],[102.173214,32.392941],[102.173208,32.39289],[102.173205,32.392866],[102.1732,32.392827],[102.173187,32.392727],[102.173166,32.392559],[102.17316,32.392508],[102.173113,32.392123],[102.173109,32.392091],[102.173102,32.392034],[102.173086,32.3919],[102.172956,32.391882],[102.172826,32.391863],[102.17277,32.391855],[102.172758,32.391853],[102.172497,32.391815],[102.17169,32.391941],[102.170849,32.391778],[102.170823,32.391733],[102.170806,32.391705],[102.170568,32.391306],[102.170609,32.391013],[102.170614,32.390974],[102.170637,32.390813],[102.170642,32.390776],[102.170666,32.3906],[102.170655,32.390583],[102.170641,32.390528],[102.170661,32.390492],[102.170679,32.390479],[102.170687,32.390204],[102.170688,32.390169],[102.1707,32.389803],[102.170631,32.389302],[102.170641,32.389284],[102.170649,32.389249],[102.170643,32.38922],[102.170616,32.389186],[102.170597,32.389047],[102.170133,32.388674],[102.17012,32.388663],[102.170104,32.38866],[102.170087,32.388637],[102.169996,32.388564],[102.169967,32.388471],[102.169955,32.388416],[102.169912,32.388356],[102.169845,32.388303],[102.169816,32.38829],[102.169784,32.388289],[102.169707,32.388312],[102.169688,32.388329],[102.169652,32.388339],[102.16964,32.38834],[102.169601,32.388324],[102.169541,32.388284],[102.169454,32.38823],[102.169358,32.38817],[102.169323,32.388123],[102.169322,32.388089],[102.169369,32.388026],[102.169373,32.388022],[102.169378,32.388018],[102.169383,32.388014],[102.169389,32.388012],[102.169422,32.388],[102.169427,32.387998],[102.169433,32.387997],[102.16944,32.387997],[102.169446,32.387997],[102.169491,32.388002],[102.169525,32.387997],[102.169538,32.387984],[102.169543,32.387957],[102.169489,32.38785],[102.169447,32.387798],[102.169418,32.387779],[102.169411,32.387776],[102.169376,32.387748],[102.169325,32.387735],[102.169262,32.387734],[102.169219,32.387728],[102.169185,32.387711],[102.169162,32.38768],[102.169194,32.387663],[102.169185,32.38761],[102.169195,32.38756],[102.169239,32.387476],[102.169242,32.387471],[102.169289,32.387423],[102.169345,32.387398],[102.169648,32.387353],[102.169878,32.387286],[102.169979,32.387248],[102.169989,32.387242],[102.170015,32.387232],[102.170167,32.387193],[102.170272,32.387137],[102.170298,32.387088],[102.170294,32.387056],[102.17029,32.387052],[102.17026,32.387022],[102.170225,32.387013],[102.170143,32.387018],[102.170072,32.386993],[102.170057,32.386982],[102.170029,32.386963],[102.169999,32.386921],[102.169933,32.386753],[102.169897,32.386712],[102.169867,32.386677],[102.169861,32.386637],[102.169882,32.386604],[102.169927,32.386579],[102.170049,32.386559],[102.170082,32.386548],[102.170127,32.386511],[102.170136,32.386465],[102.170126,32.386438],[102.170088,32.386394],[102.169938,32.386337],[102.169927,32.38633],[102.169856,32.386286],[102.169838,32.386258],[102.16983,32.386195],[102.169857,32.386111],[102.169867,32.386081],[102.169944,32.385946],[102.170015,32.385858],[102.170108,32.385784],[102.170167,32.385569],[102.170209,32.385536],[102.170203,32.3855],[102.170304,32.385444],[102.170333,32.385419],[102.17031,32.385366],[102.170183,32.385245],[102.170178,32.385199],[102.170207,32.385147],[102.170285,32.385077],[102.170356,32.385045],[102.170419,32.385047],[102.170445,32.385062],[102.170474,32.385098],[102.170513,32.385111],[102.170544,32.385112],[102.170576,32.385106],[102.170606,32.385091],[102.170657,32.385033],[102.170657,32.384891],[102.170646,32.384821],[102.170615,32.384752],[102.170517,32.384628],[102.170476,32.384524],[102.170451,32.384503],[102.170284,32.384454],[102.170138,32.384382],[102.170112,32.38436],[102.170101,32.38434],[102.170094,32.384291],[102.170114,32.384232],[102.170167,32.384179],[102.170241,32.384142],[102.170379,32.384108],[102.170453,32.38408],[102.170512,32.384046],[102.170542,32.383997],[102.17057,32.383861],[102.170566,32.383838],[102.17054,32.383806],[102.170477,32.38378],[102.170437,32.383764],[102.170391,32.383721],[102.170312,32.383597],[102.1703,32.383573],[102.170263,32.383499],[102.170254,32.383431],[102.170266,32.383394],[102.170276,32.383384],[102.170305,32.383353],[102.170387,32.383301],[102.17053,32.38324],[102.170601,32.383166],[102.170641,32.383081],[102.170679,32.383003],[102.170783,32.382744],[102.170786,32.38271],[102.17077,32.382669],[102.170709,32.382594],[102.170627,32.382546],[102.170605,32.38254],[102.170571,32.382549],[102.170517,32.382564],[102.170486,32.382573],[102.17044,32.38257],[102.170403,32.382554],[102.170357,32.3825],[102.1703,32.382457],[102.170276,32.382424],[102.170233,32.382311],[102.170224,32.382298],[102.170189,32.382245],[102.170168,32.38223],[102.170129,32.382233],[102.170089,32.382224],[102.170053,32.382187],[102.170029,32.382121],[102.169986,32.382001],[102.16989,32.381849],[102.16989,32.381807],[102.169916,32.381785],[102.169969,32.381775],[102.170082,32.381776],[102.17011,32.38176],[102.170137,32.381729],[102.170151,32.381649],[102.170115,32.381563],[102.170123,32.381548],[102.170155,32.381529],[102.170163,32.381436],[102.170198,32.381417],[102.170226,32.381416],[102.170233,32.381406],[102.170238,32.381368],[102.170219,32.38134],[102.170209,32.381299],[102.17021,32.381261],[102.170223,32.381212],[102.170248,32.381168],[102.170283,32.381133],[102.170324,32.381115],[102.17038,32.38109],[102.17041,32.381035],[102.170411,32.381012],[102.170402,32.380993],[102.170313,32.381027],[102.1703,32.381028],[102.170252,32.381034],[102.170184,32.381022],[102.170136,32.381006],[102.170116,32.380999],[102.170083,32.380965],[102.17008,32.380928],[102.170111,32.380859],[102.170162,32.380814],[102.170226,32.380755],[102.170237,32.380746],[102.170243,32.380706],[102.170228,32.380672],[102.170213,32.380664],[102.170201,32.380664],[102.17019,32.380664],[102.170129,32.380682],[102.170051,32.380736],[102.170031,32.38079],[102.170001,32.380819],[102.169953,32.380838],[102.1699,32.380833],[102.169856,32.380804],[102.169801,32.38073],[102.169573,32.380514],[102.169541,32.380485],[102.169495,32.38043],[102.169498,32.380404],[102.169519,32.380374],[102.169658,32.380312],[102.169811,32.380203],[102.16985,32.380187],[102.16995,32.380176],[102.170017,32.380158],[102.170052,32.380128],[102.170084,32.380069],[102.170071,32.38001],[102.170048,32.379984],[102.170022,32.37997],[102.169991,32.379968],[102.169867,32.380011],[102.169842,32.380008],[102.169812,32.379992],[102.16978,32.379947],[102.169766,32.379849],[102.16978,32.379776],[102.169803,32.379745],[102.169819,32.379736],[102.169856,32.37974],[102.169943,32.37978],[102.16996,32.379769],[102.169959,32.37974],[102.169927,32.379628],[102.169877,32.379541],[102.169876,32.37952],[102.169896,32.379486],[102.169936,32.379464],[102.169967,32.37946],[102.170063,32.379508],[102.170086,32.379494],[102.170108,32.379481],[102.170135,32.379444],[102.170131,32.379421],[102.17007,32.379335],[102.170021,32.379268],[102.170007,32.379205],[102.169968,32.37916],[102.169948,32.379087],[102.169959,32.379055],[102.170025,32.378995],[102.170032,32.378983],[102.170043,32.378964],[102.170037,32.378771],[102.17003,32.378737],[102.170006,32.378733],[102.169923,32.378717],[102.16983,32.378681],[102.169701,32.378599],[102.169569,32.37854],[102.169417,32.378418],[102.169397,32.378371],[102.169415,32.378299],[102.169406,32.378264],[102.169366,32.378216],[102.169267,32.378134],[102.169085,32.377896],[102.169081,32.377878],[102.169089,32.377852],[102.169125,32.377829],[102.169139,32.3778],[102.169133,32.377781],[102.169121,32.377747],[102.169062,32.377678],[102.168867,32.377543],[102.168839,32.377493],[102.16884,32.377462],[102.168878,32.377413],[102.168897,32.377405],[102.168961,32.377401],[102.169013,32.377412],[102.169022,32.377418],[102.169062,32.377442],[102.169078,32.377458],[102.169104,32.377517],[102.169122,32.37754],[102.169204,32.377521],[102.169256,32.377492],[102.16929,32.377458],[102.169309,32.37745],[102.169344,32.377461],[102.169367,32.377481],[102.169384,32.377547],[102.169398,32.377567],[102.169432,32.377562],[102.169476,32.377519],[102.169487,32.377396],[102.169517,32.377365],[102.169554,32.377361],[102.169584,32.377234],[102.169582,32.377135],[102.169595,32.377064],[102.169588,32.377048],[102.169542,32.377018],[102.169533,32.37699],[102.169552,32.376952],[102.16963,32.376884],[102.169643,32.376861],[102.169645,32.376827],[102.169628,32.376779],[102.169601,32.376733],[102.169564,32.37674],[102.169478,32.376734],[102.169433,32.376716],[102.169417,32.376701],[102.169411,32.376683],[102.169481,32.376592],[102.169469,32.376521],[102.169481,32.376482],[102.1695,32.376463],[102.169547,32.376445],[102.169608,32.37645],[102.169641,32.376463],[102.169674,32.376454],[102.169698,32.376419],[102.169706,32.376394],[102.169707,32.376378],[102.16968,32.376327],[102.169689,32.376298],[102.16972,32.376269],[102.169846,32.376197],[102.169828,32.376162],[102.169724,32.376146],[102.169696,32.37613],[102.169658,32.376089],[102.169655,32.376069],[102.169667,32.376042],[102.169731,32.375996],[102.169733,32.37598],[102.169721,32.375955],[102.169675,32.375951],[102.169586,32.375959],[102.169542,32.37595],[102.169503,32.375921],[102.169497,32.375895],[102.169503,32.375863],[102.169532,32.375813],[102.169565,32.375793],[102.169625,32.375792],[102.169772,32.375806],[102.169921,32.375785],[102.169955,32.375757],[102.169956,32.375702],[102.169854,32.375672],[102.1698,32.375635],[102.169758,32.375595],[102.169717,32.375606],[102.169652,32.375662],[102.16963,32.375669],[102.169584,32.375661],[102.169511,32.375609],[102.169506,32.375598],[102.169493,32.375565],[102.169497,32.375535],[102.169524,32.375495],[102.169599,32.375427],[102.169606,32.375396],[102.169599,32.375325],[102.169585,32.375302],[102.169565,32.375289],[102.169513,32.375344],[102.169452,32.375366],[102.169391,32.375347],[102.169348,32.375319],[102.169341,32.375289],[102.169355,32.375259],[102.169486,32.375188],[102.169482,32.375151],[102.169455,32.375089],[102.169419,32.375068],[102.169344,32.375096],[102.169297,32.375159],[102.169256,32.375182],[102.169205,32.375182],[102.169196,32.37518],[102.169121,32.375165],[102.169104,32.375203],[102.169075,32.375271],[102.169071,32.37531],[102.169059,32.37541],[102.169025,32.375441],[102.168996,32.375454],[102.168961,32.375463],[102.168871,32.375464],[102.168844,32.375471],[102.168844,32.375478],[102.16887,32.375496],[102.168879,32.375524],[102.16886,32.37557],[102.168846,32.375582],[102.168803,32.375581],[102.168723,32.375521],[102.168668,32.37546],[102.168653,32.375429],[102.168653,32.375412],[102.168673,32.375396],[102.168711,32.375392],[102.168753,32.375359],[102.168829,32.37521],[102.168866,32.375089],[102.168885,32.375061],[102.168914,32.375041],[102.168949,32.37503],[102.168965,32.375025],[102.168992,32.375016],[102.169014,32.374997],[102.169026,32.374964],[102.169009,32.374825],[102.168987,32.374825],[102.16895,32.374837],[102.168935,32.37485],[102.168904,32.374906],[102.168897,32.374911],[102.168884,32.374919],[102.168843,32.37493],[102.16881,32.374919],[102.168761,32.374876],[102.168681,32.374878],[102.168637,32.374857],[102.168615,32.374837],[102.168604,32.374778],[102.168621,32.37474],[102.168641,32.374718],[102.168654,32.374709],[102.168705,32.374678],[102.168812,32.374645],[102.168822,32.374641],[102.168832,32.374631],[102.168835,32.374604],[102.168821,32.374578],[102.168816,32.374569],[102.168783,32.374539],[102.168764,32.374531],[102.168663,32.374557],[102.168618,32.374552],[102.168539,32.374492],[102.168512,32.374461],[102.168458,32.374334],[102.16839,32.374252],[102.16838,32.374212],[102.168397,32.374181],[102.168432,32.374166],[102.168461,32.374166],[102.168516,32.374192],[102.168546,32.374193],[102.168555,32.374178],[102.168551,32.374145],[102.168525,32.374086],[102.168496,32.374076],[102.168456,32.37408],[102.168365,32.37413],[102.168253,32.374179],[102.168245,32.374181],[102.168218,32.374189],[102.168154,32.374188],[102.168037,32.374152],[102.167963,32.374101],[102.167917,32.374041],[102.167903,32.373986],[102.167914,32.373875],[102.167914,32.373867],[102.167943,32.373783],[102.168012,32.373713],[102.16814,32.373634],[102.168688,32.373499],[102.168792,32.373495],[102.168914,32.373512],[102.168927,32.373507],[102.168953,32.373479],[102.16897,32.373441],[102.168973,32.373364],[102.168894,32.37321],[102.16888,32.373168],[102.168886,32.373145],[102.168963,32.373085],[102.16928,32.372897],[102.1693,32.372875],[102.169316,32.372826],[102.169308,32.372778],[102.169163,32.372715],[102.169156,32.37271],[102.169134,32.372691],[102.169122,32.372671],[102.169106,32.372597],[102.169107,32.372562],[102.169111,32.37248],[102.169065,32.372477],[102.169044,32.372487],[102.169023,32.372497],[102.169001,32.372555],[102.168971,32.372595],[102.168924,32.37263],[102.16885,32.372657],[102.168799,32.372651],[102.168759,32.372618],[102.168746,32.372591],[102.168743,32.372533],[102.16876,32.372475],[102.168781,32.372437],[102.168815,32.372373],[102.168864,32.372323],[102.16898,32.372278],[102.169223,32.372225],[102.169236,32.372212],[102.169231,32.372176],[102.169167,32.372149],[102.169142,32.372129],[102.169121,32.372068],[102.169128,32.372053],[102.169145,32.372039],[102.169276,32.371999],[102.169273,32.371982],[102.16925,32.37195],[102.169142,32.371925],[102.169115,32.371908],[102.169077,32.371883],[102.16905,32.371847],[102.16904,32.371789],[102.169064,32.371659],[102.169127,32.371533],[102.169184,32.37148],[102.169268,32.371455],[102.169289,32.371398],[102.169288,32.371316],[102.169271,32.371268],[102.169229,32.371224],[102.169115,32.371142],[102.169099,32.371108],[102.169103,32.371085],[102.169126,32.371047],[102.1692,32.371021],[102.169204,32.370976],[102.169193,32.370869],[102.169209,32.370821],[102.169226,32.370803],[102.169248,32.370797],[102.169286,32.370803],[102.169328,32.370822],[102.16934,32.370827],[102.169383,32.370867],[102.16947,32.370981],[102.169495,32.370997],[102.169705,32.370998],[102.169759,32.37098],[102.169799,32.370951],[102.169801,32.370894],[102.169781,32.37086],[102.169626,32.370755],[102.169604,32.370733],[102.16956,32.37069],[102.169533,32.37063],[102.169517,32.370542],[102.169484,32.370471],[102.16948,32.370425],[102.169507,32.370358],[102.169547,32.370323],[102.169611,32.370292],[102.169715,32.37028],[102.16974,32.370263],[102.169752,32.370221],[102.169658,32.370152],[102.169651,32.370131],[102.169656,32.370114],[102.169709,32.370051],[102.1698,32.369988],[102.169856,32.369935],[102.169884,32.369886],[102.169914,32.369784],[102.169895,32.369735],[102.169858,32.369687],[102.169718,32.369591],[102.169694,32.369575],[102.169625,32.369514],[102.169594,32.369468],[102.169589,32.369443],[102.169595,32.369384],[102.169619,32.369298],[102.169664,32.36919],[102.169682,32.369114],[102.169684,32.36909],[102.169685,32.369077],[102.169687,32.369057],[102.16969,32.369029],[102.169684,32.368983],[102.169668,32.368941],[102.16961,32.368871],[102.1695,32.368737],[102.169472,32.368669],[102.169462,32.368612],[102.169462,32.368533],[102.169498,32.368414],[102.169514,32.368363],[102.169512,32.368345],[102.169507,32.368289],[102.169487,32.368279],[102.169469,32.368277],[102.169427,32.368274],[102.169356,32.368282],[102.169313,32.368295],[102.169185,32.368357],[102.169178,32.368363],[102.169155,32.368383],[102.169112,32.368441],[102.169072,32.368451],[102.169007,32.368433],[102.168944,32.368372],[102.168881,32.368338],[102.168831,32.368328],[102.168739,32.368364],[102.168687,32.36837],[102.168625,32.368368],[102.168577,32.368347],[102.168541,32.36829],[102.168529,32.368238],[102.168535,32.368194],[102.168552,32.36817],[102.168616,32.368117],[102.168635,32.368045],[102.168637,32.367966],[102.168597,32.36788],[102.168603,32.367816],[102.168652,32.367733],[102.168738,32.367663],[102.168828,32.367566],[102.168907,32.367455],[102.168976,32.367326],[102.169049,32.367237],[102.16907,32.367174],[102.169066,32.367124],[102.169052,32.367089],[102.169023,32.36706],[102.168976,32.367031],[102.168878,32.366994],[102.168829,32.366988],[102.168738,32.366995],[102.168663,32.367001],[102.168645,32.367002],[102.168628,32.366998],[102.168547,32.366978],[102.168504,32.366954],[102.168482,32.366907],[102.168486,32.366788],[102.168464,32.366718],[102.168429,32.3666],[102.168404,32.366558],[102.168381,32.366519],[102.168354,32.36649],[102.168316,32.366464],[102.16831,32.36646],[102.168223,32.366436],[102.168128,32.366436],[102.168047,32.366471],[102.167941,32.366518],[102.1678,32.366549],[102.167746,32.366553],[102.167653,32.36654],[102.167592,32.366519],[102.167567,32.3665],[102.167545,32.366463],[102.167533,32.366374],[102.167542,32.366341],[102.16758,32.366279],[102.167614,32.366242],[102.167694,32.366179],[102.167739,32.366152],[102.167853,32.36611],[102.167907,32.366011],[102.167918,32.365934],[102.167908,32.365912],[102.16788,32.365885],[102.16786,32.365875],[102.167841,32.365877],[102.167735,32.365924],[102.167681,32.365928],[102.167646,32.365909],[102.167593,32.365852],[102.167577,32.365817],[102.167573,32.365776],[102.167581,32.365729],[102.167606,32.36568],[102.167653,32.365625],[102.167709,32.365578],[102.167769,32.365546],[102.167908,32.365525],[102.16797,32.365495],[102.167994,32.365468],[102.168009,32.365413],[102.16801,32.36534],[102.167986,32.365265],[102.167947,32.365194],[102.167919,32.365161],[102.16787,32.365104],[102.167772,32.365021],[102.167707,32.364984],[102.167658,32.364969],[102.167472,32.364956],[102.16735,32.364963],[102.167209,32.364984],[102.167163,32.364995],[102.166876,32.36506],[102.166765,32.365072],[102.166667,32.365059],[102.166609,32.365039],[102.166578,32.365003],[102.166573,32.364939],[102.166597,32.364869],[102.166648,32.364813],[102.166681,32.364791],[102.166729,32.364779],[102.166822,32.36478],[102.166903,32.364768],[102.16695,32.364749],[102.166962,32.364724],[102.166964,32.364696],[102.166967,32.364621],[102.166957,32.364539],[102.166782,32.364058],[102.166783,32.364],[102.166802,32.363901],[102.166824,32.363859],[102.166873,32.36383],[102.167037,32.363758],[102.167562,32.363567],[102.167807,32.363446],[102.167923,32.363402],[102.168021,32.363383],[102.168041,32.363372],[102.168045,32.36336],[102.168038,32.363307],[102.168025,32.363283],[102.168007,32.363276],[102.167879,32.363274],[102.167844,32.363266],[102.167823,32.363252],[102.167804,32.363226],[102.167783,32.363167],[102.167797,32.363124],[102.167846,32.363088],[102.167901,32.363064],[102.168006,32.363051],[102.168024,32.363037],[102.168085,32.362884],[102.168087,32.362825],[102.168063,32.362756],[102.168041,32.362751],[102.167971,32.362762],[102.167942,32.36278],[102.167862,32.362862],[102.16785,32.362873],[102.167823,32.362885],[102.16779,32.362878],[102.16775,32.362837],[102.167732,32.3628],[102.16774,32.362479],[102.167729,32.362436],[102.167687,32.362384],[102.167632,32.362341],[102.167529,32.362277],[102.167496,32.362266],[102.167412,32.36227],[102.167294,32.362299],[102.167195,32.362308],[102.167155,32.362305],[102.167095,32.362286],[102.167039,32.362247],[102.167,32.362201],[102.166941,32.362036],[102.166929,32.361939],[102.166928,32.361931],[102.166935,32.361833],[102.166951,32.361774],[102.167044,32.361546],[102.16708,32.361486],[102.167123,32.361436],[102.167177,32.361399],[102.167272,32.361357],[102.167298,32.361326],[102.167317,32.361267],[102.167291,32.361079],[102.167297,32.361049],[102.167326,32.361023],[102.167403,32.360995],[102.167426,32.360977],[102.16747,32.360919],[102.167508,32.360841],[102.167496,32.360826],[102.167385,32.360805],[102.167338,32.360762],[102.16733,32.360748],[102.167287,32.360669],[102.167272,32.360624],[102.167267,32.360568],[102.167292,32.360491],[102.167299,32.360485],[102.167309,32.360476],[102.16735,32.360467],[102.167423,32.360475],[102.167517,32.360499],[102.167602,32.360483],[102.167647,32.360453],[102.167662,32.360366],[102.167691,32.360307],[102.167718,32.360282],[102.16777,32.360267],[102.16792,32.360263],[102.168093,32.360207],[102.168135,32.3602],[102.168202,32.360208],[102.168329,32.360274],[102.168493,32.360332],[102.16851,32.360305],[102.168508,32.360247],[102.168461,32.360113],[102.168474,32.360055],[102.168509,32.359999],[102.168642,32.359892],[102.168736,32.359758],[102.168799,32.359669],[102.168822,32.359649],[102.168864,32.359632],[102.168892,32.359632],[102.168936,32.359644],[102.168987,32.359679],[102.168999,32.359727],[102.16904,32.359892],[102.169061,32.359925],[102.169095,32.359944],[102.169189,32.359971],[102.169243,32.359977],[102.169269,32.359971],[102.169307,32.359889],[102.169367,32.359825],[102.169426,32.359793],[102.169503,32.359791],[102.169536,32.359783],[102.169587,32.359745],[102.169621,32.359695],[102.169622,32.359654],[102.169549,32.359438],[102.169538,32.359405],[102.169516,32.359272],[102.169517,32.359237],[102.169537,32.359174],[102.169568,32.359126],[102.169593,32.359109],[102.169642,32.359099],[102.169753,32.35911],[102.169807,32.359126],[102.169831,32.359143],[102.169857,32.359184],[102.169867,32.359225],[102.169851,32.359377],[102.169857,32.359439],[102.169873,32.359472],[102.169894,32.359489],[102.169942,32.359512],[102.169963,32.35951],[102.170001,32.359484],[102.170051,32.359416],[102.170156,32.359349],[102.170223,32.359327],[102.170374,32.359304],[102.170404,32.359294],[102.170457,32.359262],[102.170478,32.359236],[102.170481,32.359192],[102.170472,32.359122],[102.170438,32.359024],[102.170367,32.358887],[102.170252,32.358731],[102.17023,32.358661],[102.170225,32.358642],[102.170224,32.358563],[102.170244,32.358498],[102.170265,32.358475],[102.170355,32.358375],[102.170366,32.358344],[102.170345,32.358277],[102.170256,32.358148],[102.170244,32.358132],[102.170225,32.358092],[102.170216,32.357994],[102.170221,32.35798],[102.17024,32.35793],[102.170426,32.357646],[102.170476,32.357598],[102.170529,32.357569],[102.170606,32.35755],[102.170676,32.357546],[102.170732,32.357562],[102.170817,32.357611],[102.170892,32.357643],[102.170912,32.357645],[102.170934,32.357632],[102.170972,32.357586],[102.170984,32.357553],[102.170997,32.357263],[102.171007,32.357212],[102.171047,32.357128],[102.171077,32.357091],[102.171125,32.357076],[102.171192,32.357081],[102.171309,32.357146],[102.171434,32.35719],[102.171486,32.357186],[102.171547,32.357157],[102.171565,32.357122],[102.171563,32.357065],[102.171502,32.356999],[102.171426,32.356954],[102.171401,32.356928],[102.171391,32.356879],[102.171401,32.35683],[102.17142,32.356808],[102.171479,32.35678],[102.17181,32.356693],[102.171849,32.356651],[102.171866,32.356598],[102.171863,32.356548],[102.171841,32.356496],[102.1718,32.356454],[102.171766,32.35645],[102.171642,32.356474],[102.17158,32.35647],[102.171552,32.356468],[102.17146,32.356446],[102.17143,32.356428],[102.171407,32.356401],[102.171391,32.35637],[102.171368,32.356279],[102.171364,32.356163],[102.171326,32.355972],[102.171329,32.355919],[102.171379,32.355773],[102.171372,32.355711],[102.171346,32.355649],[102.171305,32.355599],[102.171261,32.355566],[102.171176,32.355528],[102.171165,32.355509],[102.171164,32.355483],[102.171176,32.355448],[102.171199,32.355432],[102.171342,32.355415],[102.171439,32.355373],[102.171464,32.355352],[102.171473,32.355317],[102.171463,32.355266],[102.171384,32.355181],[102.171353,32.355127],[102.17135,32.355109],[102.171365,32.355086],[102.171395,32.35507],[102.171457,32.355066],[102.17149,32.355063],[102.171511,32.35505],[102.171556,32.354979],[102.171577,32.354915],[102.171573,32.354877],[102.171554,32.354859],[102.171395,32.354777],[102.171339,32.354748],[102.171297,32.354708],[102.171285,32.354639],[102.171312,32.354543],[102.171345,32.354493],[102.171355,32.354479],[102.171411,32.354429],[102.171537,32.354369],[102.171707,32.35433],[102.171785,32.354281],[102.171808,32.354257],[102.171823,32.354223],[102.171821,32.354155],[102.171773,32.354048],[102.171752,32.353948],[102.171753,32.353903],[102.171789,32.353806],[102.171789,32.353776],[102.171707,32.353686],[102.171519,32.353383],[102.1715,32.353331],[102.171509,32.353286],[102.171547,32.353236],[102.171572,32.353229],[102.171601,32.353232],[102.171727,32.353282],[102.171848,32.353345],[102.17193,32.353368],[102.172115,32.353399],[102.172148,32.353398],[102.172199,32.353378],[102.17223,32.353346],[102.172255,32.35327],[102.172272,32.35276],[102.172239,32.352665],[102.172203,32.352624],[102.171834,32.352528],[102.171722,32.352481],[102.171665,32.352448],[102.171626,32.352404],[102.171615,32.352391],[102.171592,32.352337],[102.171589,32.352302],[102.171604,32.35227],[102.171625,32.352249],[102.171706,32.352203],[102.171744,32.352198],[102.171882,32.352205],[102.17191,32.352192],[102.171934,32.352105],[102.171937,32.351919],[102.171954,32.351843],[102.171988,32.351756],[102.172034,32.351672],[102.17206,32.351623],[102.17211,32.351561],[102.172188,32.351504],[102.17226,32.351464],[102.17229,32.351448],[102.172431,32.351391],[102.17254,32.351329],[102.172582,32.351279],[102.172616,32.35121],[102.172634,32.351145],[102.172636,32.351095],[102.172618,32.351045],[102.172566,32.350973],[102.172475,32.350905],[102.172248,32.350737],[102.172169,32.350662],[102.172068,32.350508],[102.171938,32.350361],[102.171902,32.350277],[102.17189,32.350183],[102.171896,32.35013],[102.171907,32.350106],[102.171938,32.350074],[102.172128,32.349964],[102.172167,32.349904],[102.172178,32.349843],[102.172164,32.349765],[102.172113,32.349665],[102.172055,32.349517],[102.171983,32.349425],[102.171968,32.349411],[102.171929,32.349373],[102.171838,32.349308],[102.171786,32.349255],[102.171718,32.349139],[102.171672,32.349019],[102.171662,32.348993],[102.171618,32.348796],[102.17164,32.348765],[102.17171,32.348738],[102.171724,32.348696],[102.171718,32.348673],[102.17165,32.348581],[102.17164,32.348554],[102.171652,32.348522],[102.171697,32.348471],[102.171746,32.348432],[102.171756,32.348413],[102.171764,32.348254],[102.171758,32.348217],[102.17174,32.348176],[102.171713,32.348155],[102.171633,32.348157],[102.171541,32.348193],[102.171371,32.34826],[102.171262,32.348319],[102.171203,32.348334],[102.171121,32.34832],[102.171066,32.348296],[102.171014,32.348252],[102.170998,32.348207],[102.170996,32.34811],[102.171015,32.34806],[102.17103,32.348018],[102.171363,32.34756],[102.171437,32.34743],[102.171526,32.347229],[102.171562,32.347183],[102.171661,32.347055],[102.171671,32.347008],[102.171646,32.346928],[102.171613,32.346894],[102.171548,32.346866],[102.171455,32.346848],[102.171363,32.346853],[102.171288,32.34688],[102.171222,32.346903],[102.171085,32.346999],[102.170982,32.347058],[102.170881,32.347086],[102.170826,32.347085],[102.170787,32.347067],[102.170749,32.347024],[102.170727,32.346989],[102.170699,32.346909],[102.170662,32.346868],[102.170633,32.34686],[102.170465,32.346855],[102.170423,32.346844],[102.170398,32.346828],[102.170357,32.346782],[102.170302,32.346678],[102.170283,32.346606],[102.170278,32.346537],[102.170292,32.346408],[102.170297,32.346357],[102.170314,32.346288],[102.170335,32.34625],[102.170419,32.346185],[102.170425,32.346144],[102.170417,32.346112],[102.170402,32.346079],[102.170368,32.346048],[102.170262,32.345999],[102.170219,32.345971],[102.170143,32.345896],[102.170133,32.345886],[102.170101,32.345842],[102.170068,32.345763],[102.170054,32.345677],[102.169977,32.345398],[102.169974,32.345376],[102.169952,32.345233],[102.169951,32.3451],[102.169938,32.345017],[102.169903,32.344971],[102.169821,32.344921],[102.169747,32.344857],[102.169729,32.344829],[102.169724,32.344802],[102.169742,32.344742],[102.169763,32.344716],[102.169782,32.344693],[102.169965,32.344557],[102.170078,32.344489],[102.170104,32.344464],[102.170152,32.344396],[102.17025,32.344219],[102.170274,32.344147],[102.170278,32.3441],[102.170252,32.34373],[102.170254,32.343703],[102.170259,32.343651],[102.170253,32.343622],[102.170216,32.343578],[102.170178,32.343584],[102.170085,32.343598],[102.170012,32.343584],[102.169974,32.343566],[102.16993,32.343501],[102.16991,32.343487],[102.169867,32.343473],[102.169801,32.34347],[102.169767,32.343456],[102.16974,32.343422],[102.169723,32.343359],[102.169762,32.343222],[102.169716,32.343183],[102.169693,32.34315],[102.169675,32.343113],[102.169662,32.343027],[102.169633,32.343007],[102.169526,32.342982],[102.169483,32.342965],[102.169382,32.342887],[102.16933,32.3428],[102.16923,32.342777],[102.169168,32.342739],[102.169148,32.342717],[102.16913,32.342682],[102.169147,32.342589],[102.169129,32.342545],[102.16912,32.342534],[102.16909,32.342501],[102.169071,32.34248],[102.168939,32.342378],[102.168918,32.342344],[102.168913,32.342304],[102.168926,32.342287],[102.168948,32.342282],[102.169023,32.342288],[102.169045,32.342282],[102.169111,32.342241],[102.169143,32.34219],[102.169152,32.342147],[102.169148,32.341922],[102.169157,32.341827],[102.169187,32.341653],[102.169249,32.341475],[102.169253,32.34139],[102.169245,32.34133],[102.16922,32.341248],[102.169198,32.341218],[102.169086,32.341122],[102.16905,32.341032],[102.169046,32.340959],[102.169058,32.340888],[102.169085,32.340813],[102.169122,32.340771],[102.169123,32.340734],[102.169081,32.340707],[102.168968,32.340699],[102.168851,32.34066],[102.168829,32.34064],[102.16881,32.340624],[102.168806,32.340588],[102.16882,32.340556],[102.168826,32.340541],[102.168871,32.340522],[102.169106,32.340527],[102.169201,32.340517],[102.169203,32.34049],[102.169128,32.340437],[102.169105,32.3404],[102.16909,32.340348],[102.169082,32.340246],[102.169101,32.340141],[102.169179,32.340024],[102.169182,32.340009],[102.169175,32.339999],[102.169129,32.339989],[102.169091,32.339965],[102.169067,32.339937],[102.169059,32.339899],[102.169073,32.339858],[102.169152,32.339809],[102.169191,32.33975],[102.169265,32.339678],[102.169292,32.339627],[102.169296,32.339581],[102.169289,32.339556],[102.169265,32.339532],[102.169148,32.339476],[102.169033,32.339436],[102.169,32.339417],[102.168975,32.339393],[102.168939,32.339325],[102.168927,32.339263],[102.168926,32.339189],[102.168917,32.33916],[102.168877,32.339098],[102.168871,32.339067],[102.16888,32.339004],[102.168917,32.338955],[102.168924,32.338927],[102.168911,32.338904],[102.168854,32.33887],[102.168845,32.338818],[102.16885,32.338779],[102.168877,32.338701],[102.168967,32.338549],[102.168919,32.338527],[102.168826,32.338501],[102.168681,32.33847],[102.168657,32.338453],[102.168625,32.338407],[102.168628,32.33835],[102.168652,32.338305],[102.16863,32.338193],[102.168636,32.338108],[102.168662,32.338085],[102.168706,32.338073],[102.168724,32.338064],[102.16871,32.338046],[102.168695,32.338026],[102.168656,32.337908],[102.168648,32.337886],[102.168599,32.337739],[102.168537,32.33769],[102.168557,32.337613],[102.168535,32.337548],[102.168539,32.337535],[102.168541,32.337528],[102.168541,32.337492],[102.168542,32.337441],[102.168524,32.33739],[102.168534,32.337302],[102.16851,32.337278],[102.16848,32.337268],[102.168447,32.337257],[102.168446,32.33725],[102.168437,32.33722],[102.168431,32.337185],[102.168319,32.336685],[102.167762,32.3361],[102.167753,32.336091],[102.167747,32.336085],[102.167743,32.336079],[102.167643,32.335987],[102.167638,32.335982],[102.167621,32.335966],[102.167556,32.335904],[102.167511,32.335862],[102.167202,32.335569],[102.16714,32.335508],[102.167098,32.335466],[102.167094,32.335462],[102.167046,32.335415],[102.167022,32.335392],[102.166812,32.335183],[102.166782,32.335155],[102.166736,32.335109],[102.166732,32.335105],[102.166719,32.335091],[102.166714,32.335083],[102.166574,32.334914],[102.166537,32.334869],[102.166422,32.334808],[102.166336,32.334723],[102.166258,32.334664],[102.166216,32.334649],[102.166071,32.334624],[102.166032,32.334606],[102.166016,32.334589],[102.165978,32.334479],[102.165947,32.334241],[102.16591,32.334055],[102.165879,32.333994],[102.165787,32.333925],[102.165776,32.333895],[102.165778,32.333851],[102.165755,32.333809],[102.165716,32.333792],[102.165603,32.333798],[102.165537,32.333789],[102.165478,32.333762],[102.165421,32.333701],[102.165355,32.333563],[102.165327,32.333515],[102.165265,32.333494],[102.165103,32.333333],[102.164966,32.333262],[102.164921,32.333151],[102.164927,32.33305],[102.165002,32.332933],[102.164698,32.332057],[102.164263,32.331119],[102.1638,32.330034],[102.163611,32.32884],[102.163562,32.327495],[102.163733,32.326386],[102.163901,32.325966],[102.163923,32.325912],[102.164095,32.325494],[102.164139,32.32538]]]]},"properties":{"cp":[102.26744142868846,32.352994695555495],"code":"513233202","name":"江茸乡","level":"street","center":[102.26744142868846,32.352994695555495],"fullCode":"513233202000","fullName":"四川省阿坝藏族羌族自治州红原县江茸乡","acreageMu":770863.29,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.412,32.3022]}},{"id":"513233203","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[101.851556,32.335369],[101.851603,32.335224],[101.851669,32.335022],[101.851663,32.334903],[101.851614,32.334563],[101.851521,32.334334],[101.851478,32.334227],[101.851405,32.333878],[101.851332,32.333528],[101.851259,32.333178],[101.851185,32.332829],[101.851144,32.33246],[101.851457,32.332486],[101.85148,32.332488],[101.85177,32.332511],[101.852084,32.332537],[101.852316,32.332555],[101.852548,32.332573],[101.852977,32.332573],[101.852993,32.332573],[101.853317,32.332573],[101.853356,32.332573],[101.853407,32.332573],[101.85378,32.332564],[101.854063,32.332557],[101.854153,32.332555],[101.854402,32.332533],[101.854651,32.33251],[101.854901,32.332488],[101.85515,32.332465],[101.855547,32.332423],[101.855795,32.332349],[101.856043,32.332276],[101.856262,32.332211],[101.856481,32.332146],[101.856744,32.332105],[101.857042,32.332009],[101.857208,32.331896],[101.857287,32.331765],[101.857315,32.331718],[101.857565,32.331498],[101.857836,32.331284],[101.858107,32.331069],[101.858386,32.330829],[101.858666,32.330588],[101.858936,32.330341],[101.859207,32.330094],[101.859549,32.329817],[101.859891,32.329541],[101.860097,32.329273],[101.860304,32.329005],[101.86051,32.328738],[101.860703,32.328393],[101.860896,32.328048],[101.861055,32.327724],[101.861214,32.327401],[101.861372,32.327078],[101.861485,32.326798],[101.861497,32.326477],[101.861462,32.326168],[101.861446,32.32603],[101.861427,32.325859],[101.861392,32.32555],[101.861383,32.325361],[101.861373,32.325173],[101.861355,32.324797],[101.861307,32.324438],[101.861258,32.324079],[101.861208,32.323706],[101.861166,32.323448],[101.861125,32.323191],[101.861091,32.32298],[101.861069,32.322844],[101.861069,32.322552],[101.861069,32.32226],[101.861069,32.322238],[101.861065,32.321903],[101.861061,32.321546],[101.861057,32.321189],[101.861035,32.321012],[101.861021,32.320906],[101.860986,32.320624],[101.860983,32.320614],[101.860902,32.320314],[101.860819,32.320088],[101.860575,32.319714],[101.860361,32.319345],[101.860266,32.319035],[101.860135,32.318637],[101.86007,32.318304],[101.860082,32.318054],[101.860195,32.31763],[101.86023,32.317501],[101.860244,32.317407],[101.86029,32.317102],[101.860284,32.316828],[101.860224,32.316537],[101.860135,32.316287],[101.860129,32.31628],[101.859915,32.316049],[101.859713,32.315859],[101.85951,32.315668],[101.859225,32.315484],[101.858939,32.3153],[101.858701,32.314993],[101.858463,32.314687],[101.858324,32.314452],[101.858184,32.314217],[101.857964,32.313842],[101.857809,32.313711],[101.857601,32.313574],[101.857339,32.313271],[101.857317,32.313226],[101.857119,32.312825],[101.856979,32.312498],[101.856839,32.312171],[101.856756,32.311974],[101.856494,32.311742],[101.856218,32.311484],[101.855941,32.311225],[101.855674,32.310993],[101.855561,32.310796],[101.855495,32.310517],[101.85542,32.31019],[101.855345,32.309862],[101.855233,32.309503],[101.855175,32.309208],[101.855117,32.308913],[101.855112,32.30887],[101.855072,32.308494],[101.855026,32.308075],[101.854981,32.307656],[101.854975,32.307599],[101.855007,32.30722],[101.855059,32.306797],[101.855111,32.306373],[101.855144,32.306097],[101.855186,32.305734],[101.855187,32.305722],[101.855227,32.305371],[101.855227,32.30508],[101.855323,32.304788],[101.855388,32.304503],[101.855394,32.304162],[101.8554,32.303821],[101.855406,32.30348],[101.855477,32.303182],[101.855566,32.303033],[101.855627,32.303011],[101.8559,32.302909],[101.85617,32.302888],[101.856441,32.302867],[101.856784,32.302861],[101.857127,32.302855],[101.85747,32.302849],[101.857823,32.302903],[101.858176,32.302956],[101.858529,32.30301],[101.858904,32.303041],[101.859278,32.303072],[101.859653,32.303103],[101.860028,32.303135],[101.860299,32.303152],[101.860569,32.30317],[101.860831,32.30317],[101.861128,32.303111],[101.861541,32.303012],[101.861953,32.302913],[101.862366,32.302813],[101.862586,32.302715],[101.862806,32.302617],[101.863171,32.302379],[101.863181,32.302373],[101.863567,32.302189],[101.863879,32.301945],[101.863936,32.3019],[101.86419,32.301701],[101.864501,32.301457],[101.864739,32.301222],[101.864977,32.300987],[101.865156,32.300821],[101.865215,32.30066],[101.865346,32.300505],[101.865501,32.30038],[101.865685,32.300226],[101.865865,32.300075],[101.86587,32.300071],[101.866045,32.299848],[101.866221,32.299625],[101.86626,32.299547],[101.866362,32.299345],[101.866464,32.299143],[101.866726,32.298863],[101.866905,32.298727],[101.866952,32.298691],[101.867211,32.29853],[101.86747,32.29837],[101.867689,32.298179],[101.867696,32.298173],[101.867868,32.297953],[101.868154,32.297858],[101.868456,32.29773],[101.868758,32.297601],[101.868868,32.297555],[101.869103,32.297498],[101.869338,32.297442],[101.869599,32.297454],[101.869879,32.297507],[101.870254,32.297644],[101.870426,32.297757],[101.870605,32.297888],[101.870878,32.298025],[101.871194,32.298221],[101.871509,32.298417],[101.871765,32.29862],[101.872014,32.298727],[101.872181,32.298858],[101.872294,32.299],[101.872341,32.299096],[101.872354,32.299123],[101.87252,32.299458],[101.872609,32.299643],[101.872764,32.299768],[101.872919,32.299845],[101.873145,32.299994],[101.873341,32.300363],[101.873466,32.300654],[101.873573,32.300785],[101.873674,32.300838],[101.874019,32.301011],[101.874227,32.301124],[101.87437,32.301279],[101.874447,32.301421],[101.874685,32.301552],[101.874914,32.301712],[101.875138,32.301868],[101.875328,32.302028],[101.875447,32.302159],[101.875548,32.30232],[101.875715,32.302534],[101.875881,32.302629],[101.876066,32.302712],[101.876244,32.302867],[101.876345,32.303004],[101.876524,32.303325],[101.876708,32.30345],[101.877047,32.303718],[101.877246,32.303881],[101.877446,32.304045],[101.877719,32.304176],[101.877957,32.304229],[101.878368,32.304271],[101.878689,32.304425],[101.878915,32.304574],[101.879073,32.304833],[101.87923,32.305092],[101.879395,32.305349],[101.879559,32.305607],[101.879724,32.305865],[101.879867,32.306064],[101.88001,32.306263],[101.880064,32.306574],[101.880119,32.306884],[101.880173,32.307194],[101.880364,32.307514],[101.880493,32.307588],[101.880593,32.307747],[101.880879,32.307927],[101.881165,32.308107],[101.881384,32.308246],[101.881604,32.308385],[101.881823,32.308525],[101.882043,32.308664],[101.882262,32.308803],[101.882482,32.308942],[101.882701,32.309081],[101.882921,32.309221],[101.883085,32.309299],[101.883225,32.309366],[101.883529,32.309512],[101.883913,32.309621],[101.884296,32.309731],[101.884638,32.309791],[101.884979,32.309851],[101.885379,32.309842],[101.885778,32.309833],[101.886178,32.309824],[101.886615,32.309735],[101.887052,32.309645],[101.887489,32.309556],[101.887845,32.309464],[101.888211,32.309441],[101.888577,32.309419],[101.889005,32.309352],[101.889374,32.309256],[101.889743,32.30916],[101.890111,32.309064],[101.89048,32.308968],[101.890861,32.30873],[101.891042,32.308663],[101.891185,32.308602],[101.891318,32.308525],[101.891508,32.308383],[101.891675,32.308283],[101.891875,32.308187],[101.892189,32.307997],[101.892431,32.307802],[101.892601,32.307547],[101.892641,32.307488],[101.892769,32.307298],[101.892898,32.307107],[101.893162,32.30681],[101.893426,32.306512],[101.893659,32.306174],[101.89384,32.305951],[101.894064,32.305639],[101.894287,32.305327],[101.894414,32.305132],[101.89454,32.304937],[101.894706,32.304782],[101.894873,32.304628],[101.895096,32.304518],[101.895254,32.30438],[101.895501,32.304119],[101.895748,32.303857],[101.895915,32.303747],[101.89604,32.303692],[101.896077,32.303676],[101.896235,32.303621],[101.89631,32.303595],[101.896472,32.303557],[101.896605,32.303481],[101.896753,32.303338],[101.896848,32.303176],[101.897019,32.302886],[101.897233,32.302624],[101.89724,32.302616],[101.897424,32.302408],[101.897607,32.302199],[101.897652,32.302148],[101.897859,32.301972],[101.898066,32.301796],[101.898223,32.301382],[101.898223,32.301342],[101.898223,32.301101],[101.898214,32.30084],[101.898128,32.300497],[101.898102,32.300327],[101.898071,32.300121],[101.898009,32.299786],[101.897947,32.29945],[101.897947,32.29916],[101.897947,32.299081],[101.897947,32.299012],[101.897999,32.298941],[101.898095,32.298912],[101.89829,32.298974],[101.898499,32.299103],[101.898786,32.299369],[101.899073,32.299636],[101.89936,32.299902],[101.899508,32.299945],[101.899751,32.299945],[101.900041,32.299938],[101.900331,32.299931],[101.900693,32.299893],[101.900883,32.299821],[101.901121,32.299688],[101.901395,32.299476],[101.901478,32.299412],[101.901759,32.299146],[101.902073,32.298931],[101.902335,32.298827],[101.902516,32.298717],[101.902739,32.298413],[101.902925,32.298256],[101.90313,32.297975],[101.903201,32.297813],[101.903268,32.297632],[101.903344,32.297551],[101.903501,32.29747],[101.903701,32.297351],[101.903858,32.29718],[101.903929,32.296956],[101.904062,32.296628],[101.904191,32.296414],[101.904338,32.296304],[101.904552,32.296205],[101.904857,32.296086],[101.905069,32.296005],[101.905281,32.295924],[101.905499,32.295819],[101.90578,32.295629],[101.905946,32.295543],[101.906185,32.295419],[101.90648,32.295317],[101.906775,32.295215],[101.907025,32.295106],[101.907072,32.295077],[101.90728,32.294946],[101.907487,32.294816],[101.907866,32.294579],[101.907979,32.294496],[101.908279,32.29423],[101.908483,32.294058],[101.908626,32.293806],[101.908645,32.29354],[101.908702,32.29334],[101.908821,32.29313],[101.908959,32.293045],[101.909283,32.29294],[101.909468,32.292835],[101.909568,32.292716],[101.909615,32.292525],[101.909615,32.292524],[101.909616,32.292521],[101.909616,32.29235],[101.909616,32.29215],[101.909616,32.292095],[101.909616,32.291998],[101.909702,32.291731],[101.909713,32.291496],[101.909725,32.29126],[101.909678,32.290998],[101.909652,32.29095],[101.909526,32.290708],[101.909506,32.290537],[101.909521,32.290475],[101.90964,32.290399],[101.909863,32.290313],[101.910049,32.290137],[101.910135,32.289866],[101.910163,32.289609],[101.910358,32.289385],[101.910525,32.289295],[101.910756,32.289271],[101.910987,32.289247],[101.911282,32.289289],[101.911577,32.289332],[101.911824,32.289457],[101.912071,32.289581],[101.912393,32.28967],[101.912716,32.289759],[101.913039,32.289848],[101.913326,32.289939],[101.913613,32.29003],[101.913983,32.290168],[101.914353,32.290307],[101.914723,32.290446],[101.915094,32.290585],[101.915464,32.290724],[101.915772,32.290794],[101.91603,32.290852],[101.916287,32.290911],[101.916542,32.29095],[101.916796,32.29099],[101.917051,32.291029],[101.917305,32.291068],[101.917559,32.291108],[101.917697,32.291129],[101.917814,32.291147],[101.918068,32.291186],[101.918323,32.291225],[101.918577,32.291265],[101.918832,32.291304],[101.919086,32.291343],[101.91934,32.291383],[101.919611,32.291419],[101.919883,32.291455],[101.920154,32.291491],[101.920425,32.291527],[101.920696,32.291563],[101.920967,32.2916],[101.921238,32.291636],[101.921509,32.291672],[101.921902,32.291709],[101.922296,32.291747],[101.922689,32.291784],[101.922953,32.291809],[101.923232,32.291802],[101.923511,32.291796],[101.923583,32.291784],[101.923989,32.291717],[101.924225,32.291575],[101.92446,32.291434],[101.924653,32.291226],[101.924685,32.291191],[101.924846,32.291017],[101.925006,32.290796],[101.925166,32.290574],[101.925326,32.290352],[101.925486,32.29013],[101.925578,32.290002],[101.925578,32.290002],[101.925646,32.289909],[101.925806,32.289687],[101.925966,32.289465],[101.926126,32.289243],[101.926267,32.289028],[101.926407,32.288812],[101.926547,32.288596],[101.926688,32.28838],[101.926828,32.288164],[101.926968,32.287948],[101.927253,32.287662],[101.927278,32.287636],[101.927555,32.287526],[101.927993,32.287518],[101.928276,32.287613],[101.928559,32.287708],[101.928751,32.287829],[101.928942,32.28795],[101.929072,32.288032],[101.929294,32.288119],[101.929672,32.288362],[101.930051,32.288605],[101.930261,32.288744],[101.930471,32.288884],[101.930531,32.288923],[101.93076,32.289047],[101.930988,32.289171],[101.931301,32.289368],[101.931342,32.289391],[101.931559,32.289508],[101.931775,32.289626],[101.931991,32.289744],[101.932208,32.289862],[101.932383,32.289958],[101.932744,32.290094],[101.933011,32.290204],[101.933244,32.290354],[101.933477,32.290505],[101.933689,32.290642],[101.933901,32.290779],[101.933912,32.290784],[101.934043,32.290832],[101.934172,32.29086],[101.934539,32.290932],[101.934906,32.291003],[101.935328,32.29115],[101.935696,32.291249],[101.936063,32.291349],[101.93643,32.291448],[101.936868,32.291459],[101.937305,32.29147],[101.937662,32.291385],[101.938018,32.291301],[101.938352,32.291141],[101.938686,32.290981],[101.93902,32.290821],[101.939354,32.290661],[101.939634,32.290515],[101.939914,32.290369],[101.940194,32.290223],[101.940407,32.290136],[101.940621,32.290048],[101.940834,32.28996],[101.941048,32.289872],[101.941343,32.28974],[101.941638,32.289607],[101.941934,32.289475],[101.94222,32.289304],[101.942554,32.289028],[101.942601,32.288977],[101.942667,32.288905],[101.942734,32.288803],[101.942837,32.288509],[101.942939,32.288215],[101.943,32.287839],[101.94306,32.287463],[101.943064,32.28738],[101.943068,32.287292],[101.943065,32.287271],[101.94305,32.287174],[101.94293,32.286813],[101.94281,32.286453],[101.94269,32.286092],[101.942601,32.285873],[101.942512,32.285653],[101.942511,32.285653],[101.942511,32.285652],[101.94244,32.28543],[101.942369,32.285208],[101.942317,32.284853],[101.942265,32.284498],[101.942264,32.284395],[101.942338,32.284224],[101.942457,32.284221],[101.942699,32.284283],[101.94293,32.284425],[101.943161,32.284567],[101.943444,32.28474],[101.943623,32.28485],[101.943855,32.284992],[101.944086,32.285133],[101.944196,32.285195],[101.944318,32.285259],[101.944726,32.285419],[101.945133,32.285579],[101.945442,32.285658],[101.945751,32.285737],[101.946084,32.285751],[101.946417,32.285765],[101.946802,32.285717],[101.947169,32.285628],[101.947552,32.285516],[101.947935,32.285404],[101.948259,32.285283],[101.948583,32.285162],[101.948843,32.285125],[101.949103,32.285089],[101.949365,32.285097],[101.949779,32.285148],[101.950198,32.285222],[101.950616,32.285297],[101.950951,32.285343],[101.951287,32.285389],[101.951622,32.285435],[101.951731,32.285456],[101.95204,32.285515],[101.952458,32.285596],[101.952875,32.285676],[101.95314,32.285742],[101.953405,32.285809],[101.95363,32.285897],[101.953647,32.285903],[101.953981,32.286034],[101.954343,32.286224],[101.954656,32.286423],[101.954969,32.286622],[101.955281,32.286821],[101.955594,32.287019],[101.955949,32.287263],[101.956038,32.287324],[101.956155,32.287396],[101.956337,32.287529],[101.956434,32.287596],[101.956624,32.287726],[101.956911,32.287924],[101.957166,32.288112],[101.957261,32.288182],[101.957421,32.288301],[101.957757,32.288595],[101.957906,32.288791],[101.957948,32.288868],[101.957961,32.28888],[101.958028,32.289011],[101.958166,32.289258],[101.958304,32.289505],[101.95837,32.289725],[101.9585,32.290082],[101.95853,32.290249],[101.958542,32.290392],[101.958546,32.290705],[101.95855,32.291018],[101.958554,32.291332],[101.95856,32.291362],[101.958637,32.291736],[101.958679,32.291885],[101.958774,32.292081],[101.958967,32.292435],[101.959161,32.292789],[101.959277,32.292988],[101.959298,32.293025],[101.959393,32.293187],[101.959404,32.293209],[101.959464,32.293318],[101.95947,32.29333],[101.959565,32.293521],[101.959649,32.293657],[101.959756,32.293782],[101.960029,32.294023],[101.960303,32.294264],[101.960596,32.294514],[101.960889,32.294765],[101.961084,32.294931],[101.961278,32.295097],[101.961433,32.295234],[101.961546,32.295412],[101.961623,32.29568],[101.961629,32.295936],[101.961552,32.296147],[101.961475,32.296358],[101.961449,32.296404],[101.961353,32.296575],[101.961231,32.296792],[101.960954,32.297123],[101.960678,32.297453],[101.960537,32.297593],[101.960277,32.297853],[101.960017,32.298113],[101.959875,32.298339],[101.959732,32.298565],[101.959633,32.298732],[101.959601,32.298785],[101.959619,32.299029],[101.959666,32.29919],[101.959738,32.299484],[101.959809,32.299779],[101.959884,32.300001],[101.959958,32.300223],[101.960032,32.300444],[101.960107,32.300665],[101.960261,32.301064],[101.960362,32.30129],[101.960562,32.301608],[101.960761,32.301926],[101.961026,32.302285],[101.961291,32.302644],[101.961527,32.302947],[101.96153,32.302952],[101.96153,32.302952],[101.96153,32.302952],[101.961566,32.303006],[101.961713,32.303232],[101.96186,32.303458],[101.962008,32.303683],[101.962155,32.303909],[101.962275,32.304117],[101.962395,32.304325],[101.962516,32.304533],[101.962636,32.304741],[101.962757,32.304949],[101.962877,32.305157],[101.962997,32.305365],[101.963063,32.305478],[101.963066,32.305484],[101.963118,32.305573],[101.963238,32.305781],[101.963358,32.30599],[101.963479,32.306198],[101.963564,32.306345],[101.963599,32.306406],[101.963706,32.306629],[101.963813,32.306853],[101.96392,32.307077],[101.964028,32.307301],[101.964063,32.307375],[101.964135,32.307525],[101.964205,32.307671],[101.964242,32.307749],[101.964324,32.308013],[101.964406,32.308276],[101.964488,32.30854],[101.96457,32.308804],[101.964652,32.309068],[101.964734,32.309332],[101.964838,32.309588],[101.964943,32.309843],[101.965047,32.310098],[101.965151,32.310354],[101.965255,32.310609],[101.96536,32.310865],[101.965464,32.31112],[101.965492,32.311188],[101.965568,32.311376],[101.965673,32.311631],[101.965777,32.311886],[101.965938,32.312275],[101.966099,32.312663],[101.966259,32.313049],[101.966259,32.31305],[101.966259,32.31305],[101.96626,32.313052],[101.966386,32.313252],[101.966512,32.313453],[101.966638,32.313653],[101.966764,32.313853],[101.966839,32.31393],[101.967068,32.314163],[101.967372,32.314472],[101.967676,32.314782],[101.967853,32.31494],[101.96803,32.315099],[101.968207,32.315258],[101.968384,32.315416],[101.968561,32.315575],[101.968738,32.315734],[101.968915,32.315892],[101.969092,32.316051],[101.969269,32.31621],[101.969446,32.316368],[101.969669,32.31653],[101.969891,32.316692],[101.970114,32.316854],[101.970336,32.317016],[101.970558,32.317178],[101.970781,32.31734],[101.971003,32.317502],[101.971226,32.317664],[101.971448,32.317826],[101.971671,32.317988],[101.971893,32.31815],[101.971945,32.318188],[101.972116,32.318312],[101.972338,32.318474],[101.97256,32.318636],[101.972754,32.318779],[101.972903,32.318891],[101.972904,32.318891],[101.972947,32.318923],[101.97314,32.319066],[101.973333,32.319209],[101.973527,32.319353],[101.973716,32.319493],[101.973718,32.319494],[101.97372,32.319496],[101.973913,32.319639],[101.974106,32.319782],[101.9743,32.319926],[101.974493,32.320069],[101.974686,32.320212],[101.974879,32.320356],[101.975073,32.320499],[101.975266,32.320642],[101.975431,32.320798],[101.975596,32.320953],[101.975761,32.321109],[101.975926,32.321264],[101.976091,32.32142],[101.976256,32.321575],[101.976421,32.321731],[101.976587,32.321886],[101.976752,32.322042],[101.976917,32.322197],[101.977109,32.322383],[101.977302,32.322569],[101.977495,32.322755],[101.977687,32.322941],[101.97788,32.323127],[101.978073,32.323313],[101.978265,32.323499],[101.978458,32.323685],[101.978651,32.323871],[101.978843,32.324057],[101.979036,32.324243],[101.979228,32.324429],[101.979421,32.324615],[101.979614,32.324801],[101.979771,32.324991],[101.979929,32.325181],[101.980087,32.325372],[101.980244,32.325562],[101.980402,32.325752],[101.980559,32.325942],[101.980717,32.326132],[101.980875,32.326322],[101.981032,32.326513],[101.98119,32.326703],[101.981347,32.326893],[101.981505,32.327083],[101.981663,32.327273],[101.98182,32.327463],[101.981986,32.327636],[101.982152,32.327809],[101.982317,32.327981],[101.982483,32.328154],[101.982649,32.328326],[101.982815,32.328499],[101.98298,32.328671],[101.983146,32.328844],[101.983312,32.329016],[101.983478,32.329189],[101.983831,32.329424],[101.984185,32.32966],[101.984344,32.329767],[101.984379,32.329791],[101.984573,32.329922],[101.984767,32.330053],[101.984857,32.330114],[101.984865,32.330119],[101.984921,32.330157],[101.984961,32.330185],[101.985037,32.330269],[101.985169,32.330416],[101.985215,32.330586],[101.985149,32.330738],[101.985065,32.330929],[101.984714,32.331191],[101.984563,32.331304],[101.98455,32.331314],[101.984363,32.331453],[101.984358,32.331456],[101.984329,32.331468],[101.984234,32.331507],[101.984179,32.33153],[101.984146,32.331543],[101.98393,32.331634],[101.98369,32.331656],[101.983451,32.331679],[101.983129,32.331653],[101.982808,32.331627],[101.982586,32.331655],[101.982559,32.331658],[101.982472,32.331669],[101.982311,32.331689],[101.982062,32.33172],[101.981813,32.331751],[101.981595,32.331824],[101.981378,32.331897],[101.98116,32.331971],[101.980943,32.332044],[101.980726,32.332139],[101.980509,32.332235],[101.980292,32.332331],[101.980075,32.332426],[101.979859,32.332522],[101.97983,32.332535],[101.979642,32.332618],[101.979289,32.33283],[101.978936,32.333042],[101.978583,32.333254],[101.978343,32.333353],[101.978249,32.333392],[101.978141,32.333436],[101.978102,32.333452],[101.9781,32.333452],[101.978099,32.333453],[101.978013,32.333488],[101.977738,32.333704],[101.977463,32.333921],[101.977269,32.334108],[101.977075,32.334295],[101.976864,32.334431],[101.976653,32.334566],[101.976389,32.334653],[101.976262,32.334695],[101.976228,32.334706],[101.975835,32.334911],[101.975536,32.335067],[101.975508,32.335082],[101.975442,32.335116],[101.975432,32.335121],[101.975238,32.335212],[101.975034,32.335308],[101.97483,32.335404],[101.974625,32.335499],[101.974351,32.335571],[101.974076,32.335643],[101.973848,32.335714],[101.973621,32.335784],[101.973486,32.335846],[101.973438,32.335868],[101.973062,32.336085],[101.972686,32.336302],[101.972293,32.336511],[101.9719,32.33672],[101.971506,32.336929],[101.971144,32.33712],[101.970782,32.337311],[101.970705,32.337351],[101.970554,32.337431],[101.97042,32.337502],[101.970009,32.337642],[101.969598,32.337782],[101.969481,32.33782],[101.969302,32.337876],[101.969275,32.337885],[101.969005,32.33797],[101.96873,32.338015],[101.968654,32.338028],[101.968489,32.338055],[101.968455,32.338061],[101.968226,32.338099],[101.967997,32.338137],[101.967767,32.338175],[101.967726,32.338182],[101.967685,32.338189],[101.967582,32.338206],[101.967538,32.338213],[101.967364,32.338251],[101.967277,32.33827],[101.967271,32.338271],[101.967164,32.338295],[101.967004,32.33833],[101.966807,32.338373],[101.966737,32.338388],[101.966624,32.338412],[101.96647,32.338446],[101.966076,32.338625],[101.965683,32.338804],[101.965426,32.338954],[101.965364,32.33899],[101.965267,32.339047],[101.965254,32.339054],[101.96517,32.339103],[101.965007,32.339296],[101.964844,32.339489],[101.964811,32.339528],[101.964811,32.339529],[101.964738,32.339615],[101.964738,32.339615],[101.964682,32.339681],[101.964519,32.339874],[101.96435,32.340043],[101.964182,32.340212],[101.964013,32.340381],[101.963844,32.34055],[101.963675,32.340719],[101.963507,32.340888],[101.963333,32.341135],[101.963306,32.341173],[101.963306,32.341173],[101.963306,32.341173],[101.963301,32.34118],[101.963275,32.341217],[101.963267,32.341229],[101.96325,32.341252],[101.963236,32.341272],[101.963187,32.341342],[101.963181,32.341351],[101.963096,32.341471],[101.962988,32.341669],[101.962879,32.341868],[101.96277,32.342066],[101.962675,32.342239],[101.962662,32.342264],[101.962425,32.342569],[101.962378,32.34263],[101.962378,32.34263],[101.962378,32.34263],[101.962314,32.342713],[101.962189,32.342875],[101.961938,32.343212],[101.961688,32.343549],[101.961542,32.343801],[101.961397,32.344052],[101.961304,32.344269],[101.961211,32.344486],[101.961118,32.344703],[101.961026,32.34492],[101.960972,32.345151],[101.960918,32.345382],[101.960864,32.345613],[101.96081,32.345843],[101.960756,32.346074],[101.960702,32.346305],[101.960648,32.346536],[101.960594,32.346766],[101.96054,32.346997],[101.960486,32.347228],[101.960436,32.347464],[101.960386,32.347699],[101.960336,32.347935],[101.96032,32.348009],[101.960286,32.348171],[101.960236,32.348406],[101.960186,32.348642],[101.960136,32.348878],[101.960124,32.348935],[101.960086,32.349113],[101.960004,32.349434],[101.959977,32.349542],[101.959868,32.34997],[101.959851,32.350037],[101.959759,32.350398],[101.959733,32.35045],[101.959564,32.350792],[101.959506,32.35091],[101.959369,32.351186],[101.959174,32.35158],[101.95898,32.351974],[101.958856,32.35219],[101.958732,32.352406],[101.958609,32.352622],[101.958485,32.352838],[101.958362,32.353054],[101.958238,32.35327],[101.958182,32.353367],[101.958114,32.353485],[101.957991,32.353701],[101.957867,32.353917],[101.957744,32.354133],[101.95762,32.354349],[101.957496,32.354565],[101.957404,32.354684],[101.957339,32.354769],[101.957231,32.35491],[101.956966,32.355254],[101.956856,32.355396],[101.956831,32.355428],[101.95683,32.355429],[101.956772,32.355504],[101.956759,32.355521],[101.956748,32.355618],[101.956723,32.355848],[101.956688,32.356174],[101.956701,32.356565],[101.956703,32.356577],[101.956741,32.356775],[101.956766,32.356905],[101.956775,32.356954],[101.956905,32.357146],[101.956989,32.357272],[101.957024,32.357323],[101.957034,32.357338],[101.957091,32.357375],[101.957127,32.357397],[101.957135,32.357402],[101.957199,32.357443],[101.9572,32.357443],[101.957203,32.357445],[101.957253,32.357477],[101.957473,32.357615],[101.957583,32.357643],[101.957606,32.357649],[101.957652,32.357661],[101.957708,32.357675],[101.957744,32.357684],[101.957752,32.357686],[101.957796,32.357694],[101.958123,32.357757],[101.958431,32.357763],[101.958511,32.357764],[101.958604,32.357766],[101.958606,32.357766],[101.958609,32.357766],[101.958739,32.357768],[101.959093,32.357786],[101.959447,32.357804],[101.959877,32.357794],[101.960307,32.357784],[101.960631,32.357828],[101.960955,32.357873],[101.961187,32.357919],[101.96142,32.357966],[101.961652,32.358012],[101.961884,32.358059],[101.962276,32.358145],[101.962668,32.358232],[101.96306,32.358319],[101.963066,32.358321],[101.963286,32.358411],[101.963512,32.358503],[101.963738,32.358596],[101.963752,32.358601],[101.963964,32.358688],[101.964168,32.358813],[101.964295,32.358892],[101.964372,32.358939],[101.964576,32.359065],[101.96478,32.35919],[101.964841,32.359228],[101.964983,32.359316],[101.965187,32.359441],[101.965384,32.359582],[101.965581,32.359723],[101.965777,32.359863],[101.965974,32.360004],[101.966086,32.360084],[101.966171,32.360145],[101.966367,32.360286],[101.966577,32.36042],[101.966786,32.360554],[101.966995,32.360687],[101.967205,32.360821],[101.967414,32.360955],[101.967623,32.361089],[101.967919,32.361226],[101.968216,32.361363],[101.968434,32.361436],[101.968651,32.361509],[101.969052,32.361552],[101.969221,32.361548],[101.96939,32.361544],[101.969696,32.36151],[101.970123,32.361396],[101.970383,32.361351],[101.970642,32.361306],[101.970919,32.361298],[101.971165,32.361294],[101.971339,32.36129],[101.971411,32.361289],[101.971719,32.36132],[101.972027,32.361352],[101.972367,32.361396],[101.972739,32.361491],[101.972973,32.361603],[101.973207,32.361715],[101.973613,32.361887],[101.97366,32.361908],[101.973799,32.361967],[101.974019,32.36206],[101.974265,32.362107],[101.974512,32.362153],[101.974835,32.362146],[101.975159,32.362138],[101.975541,32.36209],[101.975924,32.362042],[101.976332,32.361988],[101.97674,32.361935],[101.977148,32.361881],[101.977525,32.36182],[101.977902,32.361759],[101.978279,32.361699],[101.978523,32.361628],[101.978766,32.361557],[101.97901,32.361486],[101.979192,32.361433],[101.979192,32.361433],[101.979253,32.361416],[101.979497,32.361345],[101.97974,32.361274],[101.979985,32.361209],[101.980044,32.361194],[101.980229,32.361145],[101.980473,32.36108],[101.980717,32.361015],[101.98074,32.36101],[101.980938,32.360965],[101.981159,32.360914],[101.98138,32.360863],[101.981601,32.360813],[101.981968,32.360642],[101.982334,32.360472],[101.982602,32.360192],[101.98287,32.359912],[101.983017,32.359751],[101.983044,32.359594],[101.982963,32.359335],[101.98294,32.359259],[101.982779,32.359015],[101.982617,32.358771],[101.982583,32.358689],[101.982516,32.358526],[101.982503,32.358493],[101.982463,32.358396],[101.982415,32.358281],[101.982402,32.357838],[101.982437,32.357498],[101.982472,32.357159],[101.982555,32.356883],[101.982638,32.356607],[101.982937,32.356365],[101.983165,32.356281],[101.983392,32.356198],[101.983804,32.35611],[101.983976,32.356073],[101.984217,32.356022],[101.984521,32.35595],[101.984826,32.355878],[101.985079,32.355845],[101.985221,32.355827],[101.985332,32.355813],[101.985584,32.355781],[101.985837,32.355749],[101.986221,32.355643],[101.986605,32.355538],[101.986877,32.3554],[101.986893,32.355392],[101.987036,32.35532],[101.987149,32.355263],[101.987268,32.355221],[101.987468,32.355151],[101.987786,32.355039],[101.988185,32.354979],[101.98863,32.354968],[101.989075,32.354957],[101.989393,32.354964],[101.98971,32.35497],[101.98994,32.354964],[101.99017,32.354959],[101.9904,32.354953],[101.990619,32.354948],[101.99063,32.354947],[101.990875,32.354909],[101.99112,32.354871],[101.991365,32.354833],[101.99161,32.354794],[101.991762,32.354751],[101.992036,32.354673],[101.992463,32.354552],[101.992889,32.354431],[101.993315,32.35431],[101.993533,32.354231],[101.99375,32.354152],[101.993968,32.354073],[101.994186,32.353994],[101.994403,32.353916],[101.994621,32.353837],[101.994838,32.353703],[101.995056,32.353569],[101.995273,32.353436],[101.99549,32.353302],[101.995708,32.353168],[101.995925,32.353035],[101.996142,32.352901],[101.99636,32.352767],[101.996577,32.352634],[101.996794,32.3525],[101.997012,32.352367],[101.997229,32.352233],[101.997446,32.352099],[101.997664,32.351966],[101.997878,32.351832],[101.998092,32.351699],[101.998306,32.351566],[101.99852,32.351433],[101.998734,32.3513],[101.998949,32.351167],[101.999163,32.351033],[101.999254,32.350977],[101.999255,32.350976],[101.999377,32.3509],[101.999591,32.350767],[101.999805,32.350634],[102.000019,32.350501],[102.000233,32.350368],[102.000238,32.350363],[102.000548,32.350136],[102.000749,32.349989],[102.000749,32.349989],[102.000858,32.349909],[102.001168,32.349683],[102.001268,32.349609],[102.001444,32.349481],[102.00172,32.349279],[102.001932,32.349149],[102.002143,32.349019],[102.002355,32.348889],[102.002566,32.348759],[102.002777,32.348629],[102.002871,32.348571],[102.002989,32.348499],[102.0032,32.348369],[102.003412,32.34824],[102.00377,32.348063],[102.004129,32.347887],[102.004488,32.347711],[102.004741,32.347612],[102.004991,32.347552],[102.005242,32.347492],[102.005476,32.347471],[102.00571,32.34745],[102.005943,32.347469],[102.006176,32.347487],[102.006439,32.347533],[102.006702,32.347578],[102.006946,32.347703],[102.007191,32.347828],[102.007468,32.348171],[102.007745,32.348514],[102.008022,32.348858],[102.008299,32.349201],[102.008456,32.349396],[102.008613,32.349591],[102.00877,32.349786],[102.008927,32.349982],[102.009047,32.350117],[102.009263,32.350175],[102.009606,32.350155],[102.009935,32.350071],[102.010265,32.349987],[102.010531,32.349927],[102.010798,32.349868],[102.011065,32.349808],[102.011331,32.349749],[102.011642,32.349703],[102.011952,32.349657],[102.012335,32.349665],[102.012719,32.349674],[102.013102,32.349683],[102.013536,32.349737],[102.013695,32.349757],[102.013971,32.349791],[102.01426,32.349828],[102.014405,32.349846],[102.014669,32.349852],[102.014933,32.349857],[102.015291,32.349853],[102.01565,32.349848],[102.01593,32.349829],[102.01621,32.349809],[102.016505,32.349817],[102.016801,32.349824],[102.017225,32.349878],[102.017648,32.349931],[102.018072,32.349985],[102.018287,32.350065],[102.018503,32.350145],[102.018718,32.350225],[102.018934,32.350305],[102.01909,32.350363],[102.019111,32.35037],[102.019149,32.350385],[102.019365,32.350465],[102.019465,32.350531],[102.019654,32.350656],[102.019682,32.350674],[102.019944,32.350848],[102.020184,32.351118],[102.020424,32.351389],[102.020728,32.351633],[102.021031,32.351877],[102.021161,32.351955],[102.021305,32.352042],[102.021312,32.352044],[102.021676,32.352156],[102.021939,32.352189],[102.022203,32.352222],[102.022591,32.352231],[102.022868,32.352237],[102.022979,32.35224],[102.023213,32.352232],[102.023446,32.352224],[102.023628,32.352218],[102.02368,32.352216],[102.023913,32.352209],[102.024143,32.352188],[102.024372,32.352167],[102.024601,32.352146],[102.02483,32.352124],[102.02506,32.352103],[102.025289,32.352082],[102.025505,32.35203],[102.025687,32.351986],[102.026085,32.35189],[102.026483,32.351793],[102.026734,32.351714],[102.026876,32.351669],[102.026985,32.351634],[102.027237,32.351555],[102.027488,32.351475],[102.027701,32.351394],[102.027913,32.351313],[102.028126,32.351233],[102.028339,32.351152],[102.028569,32.351012],[102.02863,32.350975],[102.028686,32.350941],[102.0288,32.350872],[102.028994,32.350754],[102.02903,32.350732],[102.029044,32.350724],[102.029066,32.350711],[102.029261,32.350593],[102.029508,32.350317],[102.029756,32.350041],[102.030004,32.349765],[102.030034,32.349732],[102.030147,32.349604],[102.030156,32.349593],[102.030308,32.349422],[102.03046,32.34925],[102.030612,32.349078],[102.030764,32.348906],[102.030916,32.348734],[102.031068,32.348562],[102.03122,32.34839],[102.03136,32.348159],[102.031499,32.347928],[102.031639,32.347697],[102.031779,32.347466],[102.031919,32.347235],[102.032058,32.347004],[102.032198,32.346773],[102.032338,32.346542],[102.032424,32.346289],[102.03251,32.346036],[102.032596,32.345782],[102.032682,32.345529],[102.032769,32.345276],[102.032855,32.345023],[102.032904,32.344773],[102.032954,32.344524],[102.033004,32.344274],[102.033053,32.344024],[102.033103,32.343775],[102.033153,32.343525],[102.033244,32.343274],[102.033335,32.343022],[102.033426,32.342771],[102.033518,32.342519],[102.033609,32.342268],[102.0337,32.342016],[102.033799,32.341765],[102.033897,32.341514],[102.033996,32.341263],[102.034094,32.341012],[102.034193,32.340761],[102.034291,32.34051],[102.03439,32.340259],[102.034488,32.340008],[102.034586,32.339757],[102.034685,32.339505],[102.034811,32.339201],[102.034837,32.339139],[102.034988,32.338773],[102.035015,32.338721],[102.035176,32.338343],[102.03521,32.338295],[102.035324,32.338135],[102.03555,32.337968],[102.035788,32.337855],[102.036127,32.33773],[102.03649,32.337683],[102.036874,32.337704],[102.037258,32.337724],[102.037507,32.337724],[102.037698,32.337707],[102.037858,32.337665],[102.03809,32.337576],[102.038263,32.337617],[102.038376,32.337796],[102.038488,32.338104],[102.03855,32.338276],[102.0386,32.338412],[102.038614,32.33845],[102.038804,32.338849],[102.038923,32.339003],[102.039072,32.339075],[102.039209,32.33914],[102.039298,32.339176],[102.039578,32.339378],[102.03975,32.339456],[102.03981,32.339539],[102.039863,32.33967],[102.039929,32.339824],[102.04,32.339925],[102.040101,32.340009],[102.040375,32.340086],[102.040667,32.340349],[102.040743,32.340401],[102.040989,32.34057],[102.041167,32.340699],[102.041296,32.340849],[102.041353,32.341034],[102.041375,32.341164],[102.041445,32.341577],[102.041545,32.341777],[102.04171,32.34208],[102.041874,32.342383],[102.042006,32.342608],[102.042138,32.342833],[102.042359,32.343104],[102.042502,32.343269],[102.042745,32.343454],[102.042811,32.343479],[102.043016,32.343554],[102.043287,32.34369],[102.043551,32.343768],[102.043815,32.343847],[102.044072,32.343932],[102.044294,32.343961],[102.044615,32.343961],[102.044865,32.343915],[102.045115,32.343868],[102.045339,32.343886],[102.045564,32.343904],[102.0457,32.343975],[102.045828,32.344118],[102.045936,32.344268],[102.046071,32.344575],[102.046159,32.344762],[102.04625,32.344953],[102.046335,32.345216],[102.046335,32.345217],[102.046335,32.345217],[102.046428,32.345374],[102.046678,32.345589],[102.046792,32.345617],[102.047096,32.345716],[102.047239,32.345852],[102.047425,32.346028],[102.047611,32.346204],[102.047797,32.34638],[102.047983,32.346556],[102.048166,32.346692],[102.048348,32.346829],[102.04853,32.346965],[102.048712,32.347101],[102.048895,32.347238],[102.049077,32.347374],[102.049305,32.347531],[102.049534,32.347688],[102.049762,32.347846],[102.049991,32.348003],[102.050219,32.34816],[102.050448,32.348317],[102.050676,32.348474],[102.050905,32.348631],[102.051232,32.348891],[102.051559,32.349151],[102.051887,32.34941],[102.052133,32.349508],[102.052379,32.349606],[102.052749,32.349693],[102.053014,32.349686],[102.053279,32.349679],[102.053513,32.349658],[102.053747,32.349637],[102.053981,32.349617],[102.054216,32.349596],[102.054636,32.349579],[102.055057,32.349562],[102.055384,32.34957],[102.05571,32.349578],[102.05602,32.349612],[102.056331,32.349645],[102.056717,32.34972],[102.057103,32.349796],[102.057536,32.349911],[102.057968,32.350026],[102.058338,32.350128],[102.058631,32.350208],[102.058709,32.35023],[102.058987,32.350275],[102.059266,32.350321],[102.059638,32.350383],[102.060009,32.350444],[102.060197,32.350481],[102.060396,32.350519],[102.060782,32.350594],[102.061046,32.350626],[102.061309,32.350659],[102.061573,32.350691],[102.061836,32.350724],[102.062272,32.35076],[102.06255,32.350832],[102.062828,32.350905],[102.063058,32.351003],[102.063288,32.351101],[102.063478,32.351237],[102.063668,32.351373],[102.063745,32.351428],[102.063942,32.351565],[102.06414,32.351702],[102.064337,32.351839],[102.064535,32.351975],[102.064711,32.352138],[102.064888,32.352301],[102.065087,32.352411],[102.065286,32.35252],[102.06553,32.352631],[102.065717,32.352637],[102.066092,32.352592],[102.06644,32.352455],[102.066787,32.352319],[102.067156,32.352133],[102.067525,32.351948],[102.067894,32.351762],[102.068124,32.351629],[102.068354,32.351496],[102.068584,32.351362],[102.068814,32.351229],[102.069105,32.350919],[102.069395,32.350608],[102.069587,32.350448],[102.069779,32.350288],[102.069971,32.350128],[102.070162,32.349968],[102.070374,32.349794],[102.070586,32.349621],[102.070798,32.349448],[102.07101,32.349275],[102.071221,32.349101],[102.071433,32.348928],[102.071645,32.348755],[102.071857,32.348581],[102.072064,32.348448],[102.072271,32.348314],[102.072478,32.348181],[102.072685,32.348047],[102.072914,32.347933],[102.073143,32.34782],[102.073372,32.347706],[102.073452,32.347666],[102.0736,32.347592],[102.073789,32.34752],[102.073821,32.347508],[102.074042,32.347424],[102.074263,32.34734],[102.074483,32.347256],[102.074704,32.347172],[102.074925,32.347088],[102.075146,32.347004],[102.075366,32.34692],[102.075612,32.346841],[102.075857,32.346763],[102.07613,32.346675],[102.076519,32.34654],[102.076542,32.346532],[102.076908,32.346405],[102.07711,32.346335],[102.077297,32.34627],[102.077686,32.346135],[102.078075,32.346],[102.078465,32.345865],[102.078854,32.34573],[102.079243,32.345595],[102.079632,32.34546],[102.079876,32.345386],[102.080121,32.345312],[102.080462,32.345186],[102.080803,32.34506],[102.081145,32.344934],[102.081486,32.344808],[102.081827,32.344682],[102.082059,32.3446],[102.082291,32.344518],[102.082491,32.344404],[102.082712,32.344275],[102.082838,32.34422],[102.082955,32.344168],[102.08326,32.344042],[102.083564,32.343916],[102.083869,32.34379],[102.084233,32.343554],[102.084383,32.343461],[102.084547,32.343426],[102.084711,32.343383],[102.084904,32.343297],[102.085197,32.343126],[102.085211,32.343122],[102.085389,32.343076],[102.085596,32.343069],[102.085903,32.342997],[102.086125,32.342876],[102.08626,32.342698],[102.08641,32.342526],[102.086532,32.342441],[102.086917,32.342276],[102.087203,32.342148],[102.087438,32.342019],[102.087688,32.341927],[102.088038,32.341798],[102.08838,32.341691],[102.088659,32.341613],[102.088823,32.341548],[102.088916,32.341441],[102.089116,32.34127],[102.089315,32.341177],[102.089465,32.34107],[102.089587,32.340884],[102.08973,32.340635],[102.08987,32.340335],[102.09001,32.340035],[102.090151,32.339735],[102.090161,32.339439],[102.090172,32.339143],[102.090186,32.338893],[102.090201,32.338643],[102.090236,32.3383],[102.090244,32.338268],[102.090297,32.338049],[102.090351,32.337829],[102.09046,32.337425],[102.09057,32.337021],[102.0906,32.336908],[102.090679,32.336666],[102.090686,32.336451],[102.09067,32.336369],[102.090586,32.335952],[102.090565,32.335758],[102.090529,32.335416],[102.090436,32.335138],[102.090429,32.334917],[102.090472,32.33471],[102.090465,32.334531],[102.090379,32.334331],[102.090343,32.334103],[102.090408,32.333967],[102.090508,32.333882],[102.090757,32.333746],[102.090936,32.333525],[102.091057,32.333175],[102.091129,32.332847],[102.091137,32.332429],[102.091145,32.332011],[102.09119,32.331725],[102.09119,32.331722],[102.091191,32.331721],[102.091193,32.331707],[102.091269,32.331431],[102.091357,32.331313],[102.091383,32.331279],[102.091545,32.331079],[102.091707,32.330879],[102.091816,32.330674],[102.091926,32.330469],[102.092069,32.330232],[102.09224,32.329927],[102.092402,32.32966],[102.092563,32.329394],[102.092699,32.3292],[102.092787,32.329076],[102.093075,32.328841],[102.093295,32.32866],[102.093515,32.32848],[102.093715,32.328352],[102.093915,32.328223],[102.094181,32.328081],[102.094372,32.328033],[102.0946,32.327957],[102.094762,32.327728],[102.094924,32.3275],[102.095114,32.327291],[102.095305,32.327081],[102.09539,32.326862],[102.095457,32.326746],[102.095581,32.326529],[102.095571,32.326158],[102.095504,32.32583],[102.095438,32.325501],[102.095448,32.325322],[102.095457,32.325168],[102.095562,32.32493],[102.095666,32.324692],[102.095799,32.324527],[102.095942,32.32435],[102.096099,32.324093],[102.096256,32.323836],[102.096409,32.323563],[102.096561,32.32329],[102.096713,32.323017],[102.096846,32.322789],[102.097075,32.322551],[102.097208,32.322341],[102.097341,32.322132],[102.097379,32.321922],[102.097484,32.321665],[102.097646,32.321504],[102.097806,32.321201],[102.097965,32.320897],[102.09809,32.320739],[102.098342,32.320455],[102.098595,32.320171],[102.098848,32.319887],[102.099024,32.319768],[102.099029,32.319765],[102.099301,32.319603],[102.099574,32.319442],[102.099851,32.319321],[102.100084,32.319219],[102.100316,32.319117],[102.100549,32.319016],[102.100782,32.318914],[102.101014,32.318813],[102.101247,32.318711],[102.101479,32.318609],[102.101712,32.318508],[102.101945,32.318406],[102.102177,32.318304],[102.10241,32.318203],[102.102643,32.318101],[102.102875,32.317999],[102.103108,32.317898],[102.103341,32.317796],[102.103573,32.317694],[102.103784,32.317611],[102.103995,32.317527],[102.104206,32.317444],[102.104417,32.31736],[102.104628,32.317277],[102.104839,32.317193],[102.10505,32.31711],[102.105261,32.317026],[102.105472,32.316943],[102.105683,32.316859],[102.10608,32.316679],[102.106476,32.316499],[102.106873,32.316319],[102.107269,32.316139],[102.107477,32.316022],[102.107685,32.315906],[102.107894,32.31579],[102.108102,32.315674],[102.10831,32.315558],[102.108518,32.315441],[102.108872,32.315249],[102.109153,32.315096],[102.109153,32.315096],[102.109225,32.315057],[102.109578,32.314865],[102.109988,32.3147],[102.110397,32.314534],[102.110806,32.314369],[102.111195,32.314241],[102.111583,32.314113],[102.111972,32.313985],[102.112236,32.313881],[102.112499,32.313777],[102.112729,32.313592],[102.112922,32.313375],[102.112935,32.312995],[102.112907,32.31268],[102.112902,32.312621],[102.11288,32.312364],[102.11285,32.312139],[102.11282,32.311913],[102.11279,32.311687],[102.112759,32.311462],[102.112729,32.311236],[102.112699,32.31101],[102.112669,32.310785],[102.112639,32.310559],[102.112646,32.310323],[102.112654,32.310086],[102.112736,32.309852],[102.112818,32.309617],[102.1129,32.309382],[102.112982,32.309147],[102.113068,32.308786],[102.113153,32.308425],[102.113148,32.307998],[102.113143,32.307572],[102.113122,32.307339],[102.113102,32.307105],[102.113081,32.306872],[102.113061,32.306639],[102.11304,32.306406],[102.11302,32.306173],[102.112999,32.305939],[102.112979,32.305706],[102.112968,32.305474],[102.112956,32.305243],[102.112945,32.305011],[102.112934,32.304779],[102.112923,32.304547],[102.112911,32.304316],[102.112936,32.30409],[102.112962,32.303864],[102.112987,32.303639],[102.113012,32.303413],[102.113136,32.303006],[102.113261,32.302598],[102.113495,32.302288],[102.113523,32.302261],[102.113725,32.302072],[102.114149,32.301987],[102.114573,32.301902],[102.114926,32.301831],[102.114998,32.301817],[102.115437,32.301748],[102.115876,32.301679],[102.116315,32.301611],[102.11661,32.301564],[102.116755,32.301542],[102.117153,32.301509],[102.117551,32.301476],[102.117949,32.301443],[102.118265,32.301434],[102.118582,32.301425],[102.118952,32.301466],[102.119323,32.301506],[102.119768,32.301516],[102.120192,32.301636],[102.120507,32.301725],[102.120617,32.301757],[102.12065,32.30178],[102.120999,32.302025],[102.121035,32.302051],[102.121381,32.302294],[102.121572,32.302429],[102.121764,32.302563],[102.121955,32.302697],[102.122146,32.302832],[102.12251,32.303093],[102.122873,32.303354],[102.122873,32.303354],[102.122873,32.303354],[102.123203,32.303488],[102.123534,32.303622],[102.123923,32.303678],[102.124312,32.303734],[102.124696,32.303753],[102.12508,32.303773],[102.125463,32.303792],[102.125815,32.303793],[102.126167,32.303795],[102.126419,32.303796],[102.12667,32.303797],[102.127107,32.303799],[102.127174,32.303799],[102.127191,32.3038],[102.127456,32.303818],[102.127721,32.303835],[102.127994,32.303853],[102.128268,32.303871],[102.128541,32.303889],[102.128815,32.303907],[102.12917,32.30393],[102.129362,32.303943],[102.129602,32.30398],[102.129843,32.304017],[102.130084,32.304054],[102.130325,32.304092],[102.130749,32.304196],[102.131173,32.3043],[102.131467,32.304402],[102.131761,32.304503],[102.13202,32.304556],[102.132279,32.304609],[102.132614,32.304617],[102.132767,32.304495],[102.13278,32.304464],[102.132864,32.304278],[102.132864,32.304278],[102.132886,32.304229],[102.133006,32.303964],[102.133065,32.303704],[102.133101,32.303546],[102.133104,32.303534],[102.133104,32.303534],[102.133124,32.303445],[102.133184,32.303186],[102.133243,32.302927],[102.133257,32.302865],[102.133302,32.302667],[102.133362,32.302408],[102.133421,32.302149],[102.13348,32.30189],[102.133566,32.301545],[102.133587,32.301461],[102.133653,32.3012],[102.13381,32.30092],[102.133894,32.300769],[102.133967,32.300639],[102.134215,32.30044],[102.134462,32.30024],[102.134679,32.300097],[102.134785,32.300027],[102.134968,32.299906],[102.135108,32.299813],[102.135353,32.299701],[102.135598,32.29959],[102.135865,32.299406],[102.135942,32.299353],[102.136131,32.299223],[102.136325,32.298959],[102.13652,32.298695],[102.136643,32.298455],[102.136765,32.298215],[102.136888,32.297975],[102.137011,32.297734],[102.137134,32.297494],[102.137257,32.297254],[102.137379,32.297014],[102.137502,32.296774],[102.137625,32.296533],[102.137748,32.296293],[102.137851,32.296075],[102.137955,32.295856],[102.138059,32.295637],[102.138162,32.295419],[102.138266,32.2952],[102.138369,32.294982],[102.138473,32.294763],[102.138577,32.294544],[102.13868,32.294326],[102.138784,32.294107],[102.13888,32.293857],[102.138976,32.293606],[102.139073,32.293356],[102.139169,32.293105],[102.139265,32.292855],[102.139361,32.292604],[102.139457,32.292354],[102.139554,32.292103],[102.139727,32.291781],[102.139844,32.291564],[102.13996,32.291347],[102.140077,32.29113],[102.140194,32.290914],[102.14031,32.290697],[102.140427,32.29048],[102.140543,32.290263],[102.14066,32.290046],[102.140819,32.289853],[102.140979,32.289659],[102.141244,32.289507],[102.141509,32.289354],[102.141847,32.289267],[102.142083,32.289207],[102.142184,32.289181],[102.142484,32.289109],[102.142784,32.289036],[102.143193,32.289046],[102.143433,32.289083],[102.143674,32.28912],[102.144042,32.289255],[102.14441,32.289389],[102.14463,32.289481],[102.144851,32.289573],[102.145071,32.289665],[102.145292,32.289756],[102.145386,32.289796],[102.145418,32.289809],[102.145512,32.289848],[102.145732,32.28994],[102.145953,32.290032],[102.145967,32.290038],[102.146173,32.290124],[102.146411,32.290261],[102.146648,32.290397],[102.146885,32.290534],[102.147123,32.290671],[102.14736,32.290808],[102.147597,32.290945],[102.147925,32.291184],[102.148252,32.291423],[102.148579,32.291662],[102.148731,32.291776],[102.148737,32.291781],[102.149051,32.292019],[102.149212,32.292228],[102.149373,32.292437],[102.149459,32.29266],[102.149545,32.292883],[102.149541,32.29296],[102.14953,32.293151],[102.149515,32.293419],[102.149513,32.293471],[102.149548,32.293716],[102.149584,32.29396],[102.149588,32.294227],[102.149582,32.29457],[102.149575,32.294914],[102.149569,32.295257],[102.149562,32.2956],[102.149522,32.29595],[102.149481,32.2963],[102.149441,32.296649],[102.1494,32.296999],[102.149389,32.297378],[102.149377,32.297757],[102.149365,32.298136],[102.14941,32.298528],[102.149432,32.298718],[102.149456,32.298921],[102.1495,32.299116],[102.14957,32.299418],[102.149639,32.29972],[102.149709,32.300022],[102.149804,32.30025],[102.149899,32.300479],[102.150008,32.300698],[102.150018,32.300717],[102.150118,32.300917],[102.150321,32.301234],[102.150548,32.301588],[102.150776,32.301942],[102.150924,32.302173],[102.151003,32.302297],[102.151193,32.302544],[102.151384,32.302792],[102.151574,32.303039],[102.15175,32.303182],[102.151787,32.303212],[102.151926,32.303325],[102.152212,32.303567],[102.152378,32.303708],[102.152497,32.30381],[102.152635,32.304015],[102.152773,32.304219],[102.152897,32.304533],[102.152983,32.30479],[102.153013,32.305201],[102.153021,32.305304],[102.153173,32.305475],[102.153306,32.305623],[102.153592,32.305942],[102.15383,32.306123],[102.153935,32.306153],[102.15423,32.306237],[102.154591,32.306247],[102.154953,32.306256],[102.155272,32.306304],[102.155581,32.306351],[102.155962,32.306375],[102.156343,32.306399],[102.156714,32.306361],[102.157085,32.306323],[102.157404,32.306318],[102.157723,32.306313],[102.157989,32.306366],[102.158256,32.306418],[102.158503,32.306518],[102.158751,32.306618],[102.159021,32.306746],[102.159274,32.306865],[102.159617,32.307037],[102.159633,32.30704],[102.160035,32.307122],[102.160359,32.307094],[102.160673,32.307113],[102.160987,32.307132],[102.161315,32.307079],[102.161576,32.307085],[102.161814,32.30709],[102.162052,32.307096],[102.162393,32.307067],[102.162499,32.307059],[102.162947,32.307021],[102.163339,32.306968],[102.163731,32.306914],[102.164135,32.306839],[102.164539,32.306764],[102.164803,32.306628],[102.165067,32.306492],[102.165404,32.306197],[102.165741,32.305901],[102.166077,32.305606],[102.166414,32.305311],[102.166751,32.305015],[102.166949,32.304841],[102.167146,32.304666],[102.167344,32.304491],[102.167542,32.304317],[102.16774,32.304142],[102.167937,32.303968],[102.16822,32.303832],[102.168503,32.303696],[102.168748,32.303607],[102.168993,32.303518],[102.169237,32.30346],[102.16948,32.303403],[102.169815,32.30341],[102.16988,32.303412],[102.169845,32.303446],[102.169594,32.303676],[102.169317,32.303862],[102.168943,32.304276],[102.168019,32.306366],[102.167576,32.307548],[102.167377,32.308079],[102.167013,32.309607],[102.166521,32.310901],[102.165894,32.312154],[102.165725,32.313225],[102.165819,32.31544],[102.165822,32.315506],[102.16583,32.315684],[102.166,32.317454],[102.165875,32.318564],[102.165879,32.319908],[102.165852,32.320752],[102.16556,32.321436],[102.165261,32.322312],[102.164763,32.323798],[102.164401,32.324716],[102.164246,32.325109],[102.164223,32.325168],[102.164139,32.32538],[102.164095,32.325494],[102.163923,32.325912],[102.163901,32.325966],[102.163733,32.326386],[102.163562,32.327495],[102.163611,32.32884],[102.1638,32.330034],[102.164263,32.331119],[102.164698,32.332057],[102.165002,32.332933],[102.164927,32.33305],[102.164921,32.333151],[102.164966,32.333262],[102.165103,32.333333],[102.165265,32.333494],[102.165327,32.333515],[102.165355,32.333563],[102.165421,32.333701],[102.165478,32.333762],[102.165537,32.333789],[102.165603,32.333798],[102.165716,32.333792],[102.165755,32.333809],[102.165778,32.333851],[102.165776,32.333895],[102.165787,32.333925],[102.165879,32.333994],[102.16591,32.334055],[102.165947,32.334241],[102.165978,32.334479],[102.166016,32.334589],[102.166032,32.334606],[102.166071,32.334624],[102.166216,32.334649],[102.166258,32.334664],[102.166336,32.334723],[102.166422,32.334808],[102.166537,32.334869],[102.166574,32.334914],[102.166714,32.335083],[102.166719,32.335091],[102.166732,32.335105],[102.166736,32.335109],[102.166782,32.335155],[102.166812,32.335183],[102.167022,32.335392],[102.167046,32.335415],[102.167094,32.335462],[102.167098,32.335466],[102.16714,32.335508],[102.167202,32.335569],[102.167511,32.335862],[102.167556,32.335904],[102.167621,32.335966],[102.167638,32.335982],[102.167643,32.335987],[102.167743,32.336079],[102.167747,32.336085],[102.167753,32.336091],[102.167762,32.3361],[102.168319,32.336685],[102.168431,32.337185],[102.168437,32.33722],[102.168446,32.33725],[102.168447,32.337257],[102.16848,32.337268],[102.16851,32.337278],[102.168534,32.337302],[102.168524,32.33739],[102.168542,32.337441],[102.168541,32.337492],[102.168541,32.337528],[102.168539,32.337535],[102.168535,32.337548],[102.168557,32.337613],[102.168537,32.33769],[102.168599,32.337739],[102.168648,32.337886],[102.168656,32.337908],[102.168695,32.338026],[102.16871,32.338046],[102.168724,32.338064],[102.168706,32.338073],[102.168662,32.338085],[102.168636,32.338108],[102.16863,32.338193],[102.168652,32.338305],[102.168628,32.33835],[102.168625,32.338407],[102.168657,32.338453],[102.168681,32.33847],[102.168826,32.338501],[102.168919,32.338527],[102.168967,32.338549],[102.168877,32.338701],[102.16885,32.338779],[102.168845,32.338818],[102.168854,32.33887],[102.168911,32.338904],[102.168924,32.338927],[102.168917,32.338955],[102.16888,32.339004],[102.168871,32.339067],[102.168877,32.339098],[102.168917,32.33916],[102.168926,32.339189],[102.168927,32.339263],[102.168939,32.339325],[102.168975,32.339393],[102.169,32.339417],[102.169033,32.339436],[102.169148,32.339476],[102.169265,32.339532],[102.169289,32.339556],[102.169296,32.339581],[102.169292,32.339627],[102.169265,32.339678],[102.169191,32.33975],[102.169152,32.339809],[102.169073,32.339858],[102.169059,32.339899],[102.169067,32.339937],[102.169091,32.339965],[102.169129,32.339989],[102.169175,32.339999],[102.169182,32.340009],[102.169179,32.340024],[102.169101,32.340141],[102.169082,32.340246],[102.16909,32.340348],[102.169105,32.3404],[102.169128,32.340437],[102.169203,32.34049],[102.169201,32.340517],[102.169106,32.340527],[102.168871,32.340522],[102.168826,32.340541],[102.16882,32.340556],[102.168806,32.340588],[102.16881,32.340624],[102.168829,32.34064],[102.168851,32.34066],[102.168968,32.340699],[102.169081,32.340707],[102.169123,32.340734],[102.169122,32.340771],[102.169085,32.340813],[102.169058,32.340888],[102.169046,32.340959],[102.16905,32.341032],[102.169086,32.341122],[102.169198,32.341218],[102.16922,32.341248],[102.169245,32.34133],[102.169253,32.34139],[102.169249,32.341475],[102.169187,32.341653],[102.169157,32.341827],[102.169148,32.341922],[102.169152,32.342147],[102.169143,32.34219],[102.169111,32.342241],[102.169045,32.342282],[102.169023,32.342288],[102.168948,32.342282],[102.168926,32.342287],[102.168913,32.342304],[102.168918,32.342344],[102.168939,32.342378],[102.169071,32.34248],[102.16909,32.342501],[102.16912,32.342534],[102.169129,32.342545],[102.169147,32.342589],[102.16913,32.342682],[102.169148,32.342717],[102.169168,32.342739],[102.16923,32.342777],[102.16933,32.3428],[102.169382,32.342887],[102.169483,32.342965],[102.169526,32.342982],[102.169633,32.343007],[102.169662,32.343027],[102.169675,32.343113],[102.169693,32.34315],[102.169716,32.343183],[102.169762,32.343222],[102.169723,32.343359],[102.16974,32.343422],[102.169767,32.343456],[102.169801,32.34347],[102.169867,32.343473],[102.16991,32.343487],[102.16993,32.343501],[102.169974,32.343566],[102.170012,32.343584],[102.170085,32.343598],[102.170178,32.343584],[102.170216,32.343578],[102.170253,32.343622],[102.170259,32.343651],[102.170254,32.343703],[102.170252,32.34373],[102.170278,32.3441],[102.170274,32.344147],[102.17025,32.344219],[102.170152,32.344396],[102.170104,32.344464],[102.170078,32.344489],[102.169965,32.344557],[102.169782,32.344693],[102.169763,32.344716],[102.169742,32.344742],[102.169724,32.344802],[102.169729,32.344829],[102.169747,32.344857],[102.169821,32.344921],[102.169903,32.344971],[102.169938,32.345017],[102.169951,32.3451],[102.169952,32.345233],[102.169974,32.345376],[102.169977,32.345398],[102.170054,32.345677],[102.170068,32.345763],[102.170101,32.345842],[102.170133,32.345886],[102.170143,32.345896],[102.170219,32.345971],[102.170262,32.345999],[102.170368,32.346048],[102.170402,32.346079],[102.170417,32.346112],[102.170425,32.346144],[102.170419,32.346185],[102.170335,32.34625],[102.170314,32.346288],[102.170297,32.346357],[102.170292,32.346408],[102.170278,32.346537],[102.170283,32.346606],[102.170302,32.346678],[102.170357,32.346782],[102.170398,32.346828],[102.170423,32.346844],[102.170465,32.346855],[102.170633,32.34686],[102.170662,32.346868],[102.170699,32.346909],[102.170727,32.346989],[102.170749,32.347024],[102.170787,32.347067],[102.170826,32.347085],[102.170881,32.347086],[102.170982,32.347058],[102.171085,32.346999],[102.171222,32.346903],[102.171288,32.34688],[102.171363,32.346853],[102.171455,32.346848],[102.171548,32.346866],[102.171613,32.346894],[102.171646,32.346928],[102.171671,32.347008],[102.171661,32.347055],[102.171562,32.347183],[102.171526,32.347229],[102.171437,32.34743],[102.171363,32.34756],[102.17103,32.348018],[102.171015,32.34806],[102.170996,32.34811],[102.170998,32.348207],[102.171014,32.348252],[102.171066,32.348296],[102.171121,32.34832],[102.171203,32.348334],[102.171262,32.348319],[102.171371,32.34826],[102.171541,32.348193],[102.171633,32.348157],[102.171713,32.348155],[102.17174,32.348176],[102.171758,32.348217],[102.171764,32.348254],[102.171756,32.348413],[102.171746,32.348432],[102.171697,32.348471],[102.171652,32.348522],[102.17164,32.348554],[102.17165,32.348581],[102.171718,32.348673],[102.171724,32.348696],[102.17171,32.348738],[102.17164,32.348765],[102.171618,32.348796],[102.171662,32.348993],[102.171672,32.349019],[102.171718,32.349139],[102.171786,32.349255],[102.171838,32.349308],[102.171929,32.349373],[102.171968,32.349411],[102.171983,32.349425],[102.172055,32.349517],[102.172113,32.349665],[102.172164,32.349765],[102.172178,32.349843],[102.172167,32.349904],[102.172128,32.349964],[102.171938,32.350074],[102.171907,32.350106],[102.171896,32.35013],[102.17189,32.350183],[102.171902,32.350277],[102.171938,32.350361],[102.172068,32.350508],[102.172169,32.350662],[102.172248,32.350737],[102.172475,32.350905],[102.172566,32.350973],[102.172618,32.351045],[102.172636,32.351095],[102.172634,32.351145],[102.172616,32.35121],[102.172582,32.351279],[102.17254,32.351329],[102.172431,32.351391],[102.17229,32.351448],[102.17226,32.351464],[102.172188,32.351504],[102.17211,32.351561],[102.17206,32.351623],[102.172034,32.351672],[102.171988,32.351756],[102.171954,32.351843],[102.171937,32.351919],[102.171934,32.352105],[102.17191,32.352192],[102.171882,32.352205],[102.171744,32.352198],[102.171706,32.352203],[102.171625,32.352249],[102.171604,32.35227],[102.171589,32.352302],[102.171592,32.352337],[102.171615,32.352391],[102.171626,32.352404],[102.171665,32.352448],[102.171722,32.352481],[102.171834,32.352528],[102.172203,32.352624],[102.172239,32.352665],[102.172272,32.35276],[102.172255,32.35327],[102.17223,32.353346],[102.172199,32.353378],[102.172148,32.353398],[102.172115,32.353399],[102.17193,32.353368],[102.171848,32.353345],[102.171727,32.353282],[102.171601,32.353232],[102.171572,32.353229],[102.171547,32.353236],[102.171509,32.353286],[102.1715,32.353331],[102.171519,32.353383],[102.171707,32.353686],[102.171789,32.353776],[102.171789,32.353806],[102.171753,32.353903],[102.171752,32.353948],[102.171773,32.354048],[102.171821,32.354155],[102.171823,32.354223],[102.171808,32.354257],[102.171785,32.354281],[102.171707,32.35433],[102.171537,32.354369],[102.171411,32.354429],[102.171355,32.354479],[102.171345,32.354493],[102.171312,32.354543],[102.171285,32.354639],[102.171297,32.354708],[102.171339,32.354748],[102.171395,32.354777],[102.171554,32.354859],[102.171573,32.354877],[102.171577,32.354915],[102.171556,32.354979],[102.171511,32.35505],[102.17149,32.355063],[102.171457,32.355066],[102.171395,32.35507],[102.171365,32.355086],[102.17135,32.355109],[102.171353,32.355127],[102.171384,32.355181],[102.171463,32.355266],[102.171473,32.355317],[102.171464,32.355352],[102.171439,32.355373],[102.171342,32.355415],[102.171199,32.355432],[102.171176,32.355448],[102.171164,32.355483],[102.171165,32.355509],[102.171176,32.355528],[102.171261,32.355566],[102.171305,32.355599],[102.171346,32.355649],[102.171372,32.355711],[102.171379,32.355773],[102.171329,32.355919],[102.171326,32.355972],[102.171364,32.356163],[102.171368,32.356279],[102.171391,32.35637],[102.171407,32.356401],[102.17143,32.356428],[102.17146,32.356446],[102.171552,32.356468],[102.17158,32.35647],[102.171642,32.356474],[102.171766,32.35645],[102.1718,32.356454],[102.171841,32.356496],[102.171863,32.356548],[102.171866,32.356598],[102.171849,32.356651],[102.17181,32.356693],[102.171479,32.35678],[102.17142,32.356808],[102.171401,32.35683],[102.171391,32.356879],[102.171401,32.356928],[102.171426,32.356954],[102.171502,32.356999],[102.171563,32.357065],[102.171565,32.357122],[102.171547,32.357157],[102.171486,32.357186],[102.171434,32.35719],[102.171309,32.357146],[102.171192,32.357081],[102.171125,32.357076],[102.171077,32.357091],[102.171047,32.357128],[102.171007,32.357212],[102.170997,32.357263],[102.170984,32.357553],[102.170972,32.357586],[102.170934,32.357632],[102.170912,32.357645],[102.170892,32.357643],[102.170817,32.357611],[102.170732,32.357562],[102.170676,32.357546],[102.170606,32.35755],[102.170529,32.357569],[102.170476,32.357598],[102.170426,32.357646],[102.17024,32.35793],[102.170221,32.35798],[102.170216,32.357994],[102.170225,32.358092],[102.170244,32.358132],[102.170256,32.358148],[102.170345,32.358277],[102.170366,32.358344],[102.170355,32.358375],[102.170265,32.358475],[102.170244,32.358498],[102.170224,32.358563],[102.170225,32.358642],[102.17023,32.358661],[102.170252,32.358731],[102.170367,32.358887],[102.170438,32.359024],[102.170472,32.359122],[102.170481,32.359192],[102.170478,32.359236],[102.170457,32.359262],[102.170404,32.359294],[102.170374,32.359304],[102.170223,32.359327],[102.170156,32.359349],[102.170051,32.359416],[102.170001,32.359484],[102.169963,32.35951],[102.169942,32.359512],[102.169894,32.359489],[102.169873,32.359472],[102.169857,32.359439],[102.169851,32.359377],[102.169867,32.359225],[102.169857,32.359184],[102.169831,32.359143],[102.169807,32.359126],[102.169753,32.35911],[102.169642,32.359099],[102.169593,32.359109],[102.169568,32.359126],[102.169537,32.359174],[102.169517,32.359237],[102.169516,32.359272],[102.169538,32.359405],[102.169549,32.359438],[102.169622,32.359654],[102.169621,32.359695],[102.169587,32.359745],[102.169536,32.359783],[102.169503,32.359791],[102.169426,32.359793],[102.169367,32.359825],[102.169307,32.359889],[102.169269,32.359971],[102.169243,32.359977],[102.169189,32.359971],[102.169095,32.359944],[102.169061,32.359925],[102.16904,32.359892],[102.168999,32.359727],[102.168987,32.359679],[102.168936,32.359644],[102.168892,32.359632],[102.168864,32.359632],[102.168822,32.359649],[102.168799,32.359669],[102.168736,32.359758],[102.168642,32.359892],[102.168509,32.359999],[102.168474,32.360055],[102.168461,32.360113],[102.168508,32.360247],[102.16851,32.360305],[102.168493,32.360332],[102.168329,32.360274],[102.168202,32.360208],[102.168135,32.3602],[102.168093,32.360207],[102.16792,32.360263],[102.16777,32.360267],[102.167718,32.360282],[102.167691,32.360307],[102.167662,32.360366],[102.167647,32.360453],[102.167602,32.360483],[102.167517,32.360499],[102.167423,32.360475],[102.16735,32.360467],[102.167309,32.360476],[102.167299,32.360485],[102.167292,32.360491],[102.167267,32.360568],[102.167272,32.360624],[102.167287,32.360669],[102.16733,32.360748],[102.167338,32.360762],[102.167385,32.360805],[102.167496,32.360826],[102.167508,32.360841],[102.16747,32.360919],[102.167426,32.360977],[102.167403,32.360995],[102.167326,32.361023],[102.167297,32.361049],[102.167291,32.361079],[102.167317,32.361267],[102.167298,32.361326],[102.167272,32.361357],[102.167177,32.361399],[102.167123,32.361436],[102.16708,32.361486],[102.167044,32.361546],[102.166951,32.361774],[102.166935,32.361833],[102.166928,32.361931],[102.166929,32.361939],[102.166941,32.362036],[102.167,32.362201],[102.167039,32.362247],[102.167095,32.362286],[102.167155,32.362305],[102.167195,32.362308],[102.167294,32.362299],[102.167412,32.36227],[102.167496,32.362266],[102.167529,32.362277],[102.167632,32.362341],[102.167687,32.362384],[102.167729,32.362436],[102.16774,32.362479],[102.167732,32.3628],[102.16775,32.362837],[102.16779,32.362878],[102.167823,32.362885],[102.16785,32.362873],[102.167862,32.362862],[102.167942,32.36278],[102.167971,32.362762],[102.168041,32.362751],[102.168063,32.362756],[102.168087,32.362825],[102.168085,32.362884],[102.168024,32.363037],[102.168006,32.363051],[102.167901,32.363064],[102.167846,32.363088],[102.167797,32.363124],[102.167783,32.363167],[102.167804,32.363226],[102.167823,32.363252],[102.167844,32.363266],[102.167879,32.363274],[102.168007,32.363276],[102.168025,32.363283],[102.168038,32.363307],[102.168045,32.36336],[102.168041,32.363372],[102.168021,32.363383],[102.167923,32.363402],[102.167807,32.363446],[102.167562,32.363567],[102.167037,32.363758],[102.166873,32.36383],[102.166824,32.363859],[102.166802,32.363901],[102.166783,32.364],[102.166782,32.364058],[102.166957,32.364539],[102.166967,32.364621],[102.166964,32.364696],[102.166962,32.364724],[102.16695,32.364749],[102.166903,32.364768],[102.166822,32.36478],[102.166729,32.364779],[102.166681,32.364791],[102.166648,32.364813],[102.166597,32.364869],[102.166573,32.364939],[102.166578,32.365003],[102.166609,32.365039],[102.166667,32.365059],[102.166765,32.365072],[102.166876,32.36506],[102.167163,32.364995],[102.167209,32.364984],[102.16735,32.364963],[102.167472,32.364956],[102.167658,32.364969],[102.167707,32.364984],[102.167772,32.365021],[102.16787,32.365104],[102.167919,32.365161],[102.167947,32.365194],[102.167986,32.365265],[102.16801,32.36534],[102.168009,32.365413],[102.167994,32.365468],[102.16797,32.365495],[102.167908,32.365525],[102.167769,32.365546],[102.167709,32.365578],[102.167653,32.365625],[102.167606,32.36568],[102.167581,32.365729],[102.167573,32.365776],[102.167577,32.365817],[102.167593,32.365852],[102.167646,32.365909],[102.167681,32.365928],[102.167735,32.365924],[102.167841,32.365877],[102.16786,32.365875],[102.16788,32.365885],[102.167908,32.365912],[102.167918,32.365934],[102.167907,32.366011],[102.167853,32.36611],[102.167739,32.366152],[102.167694,32.366179],[102.167614,32.366242],[102.16758,32.366279],[102.167542,32.366341],[102.167533,32.366374],[102.167545,32.366463],[102.167567,32.3665],[102.167592,32.366519],[102.167653,32.36654],[102.167746,32.366553],[102.1678,32.366549],[102.167941,32.366518],[102.168047,32.366471],[102.168128,32.366436],[102.168223,32.366436],[102.16831,32.36646],[102.168316,32.366464],[102.168354,32.36649],[102.168381,32.366519],[102.168404,32.366558],[102.168429,32.3666],[102.168464,32.366718],[102.168486,32.366788],[102.168482,32.366907],[102.168504,32.366954],[102.168547,32.366978],[102.168628,32.366998],[102.168645,32.367002],[102.168663,32.367001],[102.168738,32.366995],[102.168829,32.366988],[102.168878,32.366994],[102.168976,32.367031],[102.169023,32.36706],[102.169052,32.367089],[102.169066,32.367124],[102.16907,32.367174],[102.169049,32.367237],[102.168976,32.367326],[102.168907,32.367455],[102.168828,32.367566],[102.168738,32.367663],[102.168652,32.367733],[102.168603,32.367816],[102.168597,32.36788],[102.168637,32.367966],[102.168635,32.368045],[102.168616,32.368117],[102.168552,32.36817],[102.168535,32.368194],[102.168529,32.368238],[102.168541,32.36829],[102.168577,32.368347],[102.168625,32.368368],[102.168687,32.36837],[102.168739,32.368364],[102.168831,32.368328],[102.168881,32.368338],[102.168944,32.368372],[102.169007,32.368433],[102.169072,32.368451],[102.169112,32.368441],[102.169155,32.368383],[102.169178,32.368363],[102.169185,32.368357],[102.169313,32.368295],[102.169356,32.368282],[102.169427,32.368274],[102.169469,32.368277],[102.169487,32.368279],[102.169507,32.368289],[102.169512,32.368345],[102.169514,32.368363],[102.169498,32.368414],[102.169462,32.368533],[102.169462,32.368612],[102.169472,32.368669],[102.1695,32.368737],[102.16961,32.368871],[102.169668,32.368941],[102.169684,32.368983],[102.16969,32.369029],[102.169687,32.369057],[102.169685,32.369077],[102.169684,32.36909],[102.169682,32.369114],[102.169664,32.36919],[102.169619,32.369298],[102.169595,32.369384],[102.169589,32.369443],[102.169594,32.369468],[102.169625,32.369514],[102.169694,32.369575],[102.169718,32.369591],[102.169858,32.369687],[102.169895,32.369735],[102.169914,32.369784],[102.169884,32.369886],[102.169856,32.369935],[102.1698,32.369988],[102.169709,32.370051],[102.169656,32.370114],[102.169651,32.370131],[102.169658,32.370152],[102.169752,32.370221],[102.16974,32.370263],[102.169715,32.37028],[102.169611,32.370292],[102.169547,32.370323],[102.169507,32.370358],[102.16948,32.370425],[102.169484,32.370471],[102.169517,32.370542],[102.169533,32.37063],[102.16956,32.37069],[102.169604,32.370733],[102.169626,32.370755],[102.169781,32.37086],[102.169801,32.370894],[102.169799,32.370951],[102.169759,32.37098],[102.169705,32.370998],[102.169495,32.370997],[102.16947,32.370981],[102.169383,32.370867],[102.16934,32.370827],[102.169328,32.370822],[102.169286,32.370803],[102.169248,32.370797],[102.169226,32.370803],[102.169209,32.370821],[102.169193,32.370869],[102.169204,32.370976],[102.1692,32.371021],[102.169126,32.371047],[102.169103,32.371085],[102.169099,32.371108],[102.169115,32.371142],[102.169229,32.371224],[102.169271,32.371268],[102.169288,32.371316],[102.169289,32.371398],[102.169268,32.371455],[102.169184,32.37148],[102.169127,32.371533],[102.169064,32.371659],[102.16904,32.371789],[102.16905,32.371847],[102.169077,32.371883],[102.169115,32.371908],[102.169142,32.371925],[102.16925,32.37195],[102.169273,32.371982],[102.169276,32.371999],[102.169145,32.372039],[102.169128,32.372053],[102.169121,32.372068],[102.169142,32.372129],[102.169167,32.372149],[102.169231,32.372176],[102.169236,32.372212],[102.169223,32.372225],[102.16898,32.372278],[102.168864,32.372323],[102.168815,32.372373],[102.168781,32.372437],[102.16876,32.372475],[102.168743,32.372533],[102.168746,32.372591],[102.168759,32.372618],[102.168799,32.372651],[102.16885,32.372657],[102.168924,32.37263],[102.168971,32.372595],[102.169001,32.372555],[102.169023,32.372497],[102.169044,32.372487],[102.169065,32.372477],[102.169111,32.37248],[102.169107,32.372562],[102.169106,32.372597],[102.169122,32.372671],[102.169134,32.372691],[102.169156,32.37271],[102.169163,32.372715],[102.169308,32.372778],[102.169316,32.372826],[102.1693,32.372875],[102.16928,32.372897],[102.168963,32.373085],[102.168886,32.373145],[102.16888,32.373168],[102.168894,32.37321],[102.168973,32.373364],[102.16897,32.373441],[102.168953,32.373479],[102.168927,32.373507],[102.168914,32.373512],[102.168792,32.373495],[102.168688,32.373499],[102.16814,32.373634],[102.168012,32.373713],[102.167943,32.373783],[102.167914,32.373867],[102.167914,32.373875],[102.167903,32.373986],[102.167917,32.374041],[102.167963,32.374101],[102.168037,32.374152],[102.168154,32.374188],[102.168218,32.374189],[102.168245,32.374181],[102.168253,32.374179],[102.168365,32.37413],[102.168456,32.37408],[102.168496,32.374076],[102.168525,32.374086],[102.168551,32.374145],[102.168555,32.374178],[102.168546,32.374193],[102.168516,32.374192],[102.168461,32.374166],[102.168432,32.374166],[102.168397,32.374181],[102.16838,32.374212],[102.16839,32.374252],[102.168458,32.374334],[102.168512,32.374461],[102.168539,32.374492],[102.168618,32.374552],[102.168663,32.374557],[102.168764,32.374531],[102.168783,32.374539],[102.168816,32.374569],[102.168821,32.374578],[102.168835,32.374604],[102.168832,32.374631],[102.168822,32.374641],[102.168812,32.374645],[102.168705,32.374678],[102.168654,32.374709],[102.168641,32.374718],[102.168621,32.37474],[102.168604,32.374778],[102.168615,32.374837],[102.168637,32.374857],[102.168681,32.374878],[102.168761,32.374876],[102.16881,32.374919],[102.168843,32.37493],[102.168884,32.374919],[102.168897,32.374911],[102.168904,32.374906],[102.168935,32.37485],[102.16895,32.374837],[102.168987,32.374825],[102.169009,32.374825],[102.169026,32.374964],[102.169014,32.374997],[102.168992,32.375016],[102.168965,32.375025],[102.168949,32.37503],[102.168914,32.375041],[102.168885,32.375061],[102.168866,32.375089],[102.168829,32.37521],[102.168753,32.375359],[102.168711,32.375392],[102.168673,32.375396],[102.168653,32.375412],[102.168653,32.375429],[102.168668,32.37546],[102.168723,32.375521],[102.168803,32.375581],[102.168846,32.375582],[102.16886,32.37557],[102.168879,32.375524],[102.16887,32.375496],[102.168844,32.375478],[102.168844,32.375471],[102.168871,32.375464],[102.168961,32.375463],[102.168996,32.375454],[102.169025,32.375441],[102.169059,32.37541],[102.169071,32.37531],[102.169075,32.375271],[102.169104,32.375203],[102.169121,32.375165],[102.169196,32.37518],[102.169205,32.375182],[102.169256,32.375182],[102.169297,32.375159],[102.169344,32.375096],[102.169419,32.375068],[102.169455,32.375089],[102.169482,32.375151],[102.169486,32.375188],[102.169355,32.375259],[102.169341,32.375289],[102.169348,32.375319],[102.169391,32.375347],[102.169452,32.375366],[102.169513,32.375344],[102.169565,32.375289],[102.169585,32.375302],[102.169599,32.375325],[102.169606,32.375396],[102.169599,32.375427],[102.169524,32.375495],[102.169497,32.375535],[102.169493,32.375565],[102.169506,32.375598],[102.169511,32.375609],[102.169584,32.375661],[102.16963,32.375669],[102.169652,32.375662],[102.169717,32.375606],[102.169758,32.375595],[102.1698,32.375635],[102.169854,32.375672],[102.169956,32.375702],[102.169955,32.375757],[102.169921,32.375785],[102.169772,32.375806],[102.169625,32.375792],[102.169565,32.375793],[102.169532,32.375813],[102.169503,32.375863],[102.169497,32.375895],[102.169503,32.375921],[102.169542,32.37595],[102.169586,32.375959],[102.169675,32.375951],[102.169721,32.375955],[102.169733,32.37598],[102.169731,32.375996],[102.169667,32.376042],[102.169655,32.376069],[102.169658,32.376089],[102.169696,32.37613],[102.169724,32.376146],[102.169828,32.376162],[102.169846,32.376197],[102.16972,32.376269],[102.169689,32.376298],[102.16968,32.376327],[102.169707,32.376378],[102.169706,32.376394],[102.169698,32.376419],[102.169674,32.376454],[102.169641,32.376463],[102.169608,32.37645],[102.169547,32.376445],[102.1695,32.376463],[102.169481,32.376482],[102.169469,32.376521],[102.169481,32.376592],[102.169411,32.376683],[102.169417,32.376701],[102.169433,32.376716],[102.169478,32.376734],[102.169564,32.37674],[102.169601,32.376733],[102.169628,32.376779],[102.169645,32.376827],[102.169643,32.376861],[102.16963,32.376884],[102.169552,32.376952],[102.169533,32.37699],[102.169542,32.377018],[102.169588,32.377048],[102.169595,32.377064],[102.169582,32.377135],[102.169584,32.377234],[102.169554,32.377361],[102.169517,32.377365],[102.169487,32.377396],[102.169476,32.377519],[102.169432,32.377562],[102.169398,32.377567],[102.169384,32.377547],[102.169367,32.377481],[102.169344,32.377461],[102.169309,32.37745],[102.16929,32.377458],[102.169256,32.377492],[102.169204,32.377521],[102.169122,32.37754],[102.169104,32.377517],[102.169078,32.377458],[102.169062,32.377442],[102.169022,32.377418],[102.169013,32.377412],[102.168961,32.377401],[102.168897,32.377405],[102.168878,32.377413],[102.16884,32.377462],[102.168839,32.377493],[102.168867,32.377543],[102.169062,32.377678],[102.169121,32.377747],[102.169133,32.377781],[102.169139,32.3778],[102.169125,32.377829],[102.169089,32.377852],[102.169081,32.377878],[102.169085,32.377896],[102.169267,32.378134],[102.169366,32.378216],[102.169406,32.378264],[102.169415,32.378299],[102.169397,32.378371],[102.169417,32.378418],[102.169569,32.37854],[102.169701,32.378599],[102.16983,32.378681],[102.169923,32.378717],[102.170006,32.378733],[102.17003,32.378737],[102.170037,32.378771],[102.170043,32.378964],[102.170032,32.378983],[102.170025,32.378995],[102.169959,32.379055],[102.169948,32.379087],[102.169968,32.37916],[102.170007,32.379205],[102.170021,32.379268],[102.17007,32.379335],[102.170131,32.379421],[102.170135,32.379444],[102.170108,32.379481],[102.170086,32.379494],[102.170063,32.379508],[102.169967,32.37946],[102.169936,32.379464],[102.169896,32.379486],[102.169876,32.37952],[102.169877,32.379541],[102.169927,32.379628],[102.169959,32.37974],[102.16996,32.379769],[102.169943,32.37978],[102.169856,32.37974],[102.169819,32.379736],[102.169803,32.379745],[102.16978,32.379776],[102.169766,32.379849],[102.16978,32.379947],[102.169812,32.379992],[102.169842,32.380008],[102.169867,32.380011],[102.169991,32.379968],[102.170022,32.37997],[102.170048,32.379984],[102.170071,32.38001],[102.170084,32.380069],[102.170052,32.380128],[102.170017,32.380158],[102.16995,32.380176],[102.16985,32.380187],[102.169811,32.380203],[102.169658,32.380312],[102.169519,32.380374],[102.169498,32.380404],[102.169495,32.38043],[102.169541,32.380485],[102.169573,32.380514],[102.169801,32.38073],[102.169856,32.380804],[102.1699,32.380833],[102.169953,32.380838],[102.170001,32.380819],[102.170031,32.38079],[102.170051,32.380736],[102.170129,32.380682],[102.17019,32.380664],[102.170201,32.380664],[102.170213,32.380664],[102.170228,32.380672],[102.170243,32.380706],[102.170237,32.380746],[102.170226,32.380755],[102.170162,32.380814],[102.170111,32.380859],[102.17008,32.380928],[102.170083,32.380965],[102.170116,32.380999],[102.170136,32.381006],[102.170184,32.381022],[102.170252,32.381034],[102.1703,32.381028],[102.170313,32.381027],[102.170402,32.380993],[102.170411,32.381012],[102.17041,32.381035],[102.17038,32.38109],[102.170324,32.381115],[102.170283,32.381133],[102.170248,32.381168],[102.170223,32.381212],[102.17021,32.381261],[102.170209,32.381299],[102.170219,32.38134],[102.170238,32.381368],[102.170233,32.381406],[102.170226,32.381416],[102.170198,32.381417],[102.170163,32.381436],[102.170155,32.381529],[102.170123,32.381548],[102.170115,32.381563],[102.170151,32.381649],[102.170137,32.381729],[102.17011,32.38176],[102.170082,32.381776],[102.169969,32.381775],[102.169916,32.381785],[102.16989,32.381807],[102.16989,32.381849],[102.169986,32.382001],[102.170029,32.382121],[102.170053,32.382187],[102.170089,32.382224],[102.170129,32.382233],[102.170168,32.38223],[102.170189,32.382245],[102.170224,32.382298],[102.170233,32.382311],[102.170276,32.382424],[102.1703,32.382457],[102.170357,32.3825],[102.170403,32.382554],[102.17044,32.38257],[102.170486,32.382573],[102.170517,32.382564],[102.170571,32.382549],[102.170605,32.38254],[102.170627,32.382546],[102.170709,32.382594],[102.17077,32.382669],[102.170786,32.38271],[102.170783,32.382744],[102.170679,32.383003],[102.170641,32.383081],[102.170601,32.383166],[102.17053,32.38324],[102.170387,32.383301],[102.170305,32.383353],[102.170276,32.383384],[102.170266,32.383394],[102.170254,32.383431],[102.170263,32.383499],[102.1703,32.383573],[102.170312,32.383597],[102.170391,32.383721],[102.170437,32.383764],[102.170477,32.38378],[102.17054,32.383806],[102.170566,32.383838],[102.17057,32.383861],[102.170542,32.383997],[102.170512,32.384046],[102.170453,32.38408],[102.170379,32.384108],[102.170241,32.384142],[102.170167,32.384179],[102.170114,32.384232],[102.170094,32.384291],[102.170101,32.38434],[102.170112,32.38436],[102.170138,32.384382],[102.170284,32.384454],[102.170451,32.384503],[102.170476,32.384524],[102.170517,32.384628],[102.170615,32.384752],[102.170646,32.384821],[102.170657,32.384891],[102.170657,32.385033],[102.170606,32.385091],[102.170576,32.385106],[102.170544,32.385112],[102.170513,32.385111],[102.170474,32.385098],[102.170445,32.385062],[102.170419,32.385047],[102.170356,32.385045],[102.170285,32.385077],[102.170207,32.385147],[102.170178,32.385199],[102.170183,32.385245],[102.17031,32.385366],[102.170333,32.385419],[102.170304,32.385444],[102.170203,32.3855],[102.170209,32.385536],[102.170167,32.385569],[102.170108,32.385784],[102.170015,32.385858],[102.169944,32.385946],[102.169867,32.386081],[102.169857,32.386111],[102.16983,32.386195],[102.169838,32.386258],[102.169856,32.386286],[102.169927,32.38633],[102.169938,32.386337],[102.170088,32.386394],[102.170126,32.386438],[102.170136,32.386465],[102.170127,32.386511],[102.170082,32.386548],[102.170049,32.386559],[102.169927,32.386579],[102.169882,32.386604],[102.169861,32.386637],[102.169867,32.386677],[102.169897,32.386712],[102.169933,32.386753],[102.169999,32.386921],[102.170029,32.386963],[102.170057,32.386982],[102.170072,32.386993],[102.170143,32.387018],[102.170225,32.387013],[102.17026,32.387022],[102.17029,32.387052],[102.170294,32.387056],[102.170298,32.387088],[102.170272,32.387137],[102.170167,32.387193],[102.170015,32.387232],[102.169989,32.387242],[102.169979,32.387248],[102.169878,32.387286],[102.169648,32.387353],[102.169345,32.387398],[102.169289,32.387423],[102.169242,32.387471],[102.169239,32.387476],[102.169195,32.38756],[102.169185,32.38761],[102.169194,32.387663],[102.169162,32.38768],[102.169185,32.387711],[102.169219,32.387728],[102.169262,32.387734],[102.169325,32.387735],[102.169376,32.387748],[102.169411,32.387776],[102.169418,32.387779],[102.169447,32.387798],[102.169489,32.38785],[102.169543,32.387957],[102.169538,32.387984],[102.169525,32.387997],[102.169491,32.388002],[102.169446,32.387997],[102.16944,32.387997],[102.169433,32.387997],[102.169427,32.387998],[102.169422,32.388],[102.169389,32.388012],[102.169383,32.388014],[102.169378,32.388018],[102.169373,32.388022],[102.169369,32.388026],[102.169322,32.388089],[102.169323,32.388123],[102.169358,32.38817],[102.169454,32.38823],[102.169541,32.388284],[102.169601,32.388324],[102.16964,32.38834],[102.169652,32.388339],[102.169688,32.388329],[102.169707,32.388312],[102.169784,32.388289],[102.169816,32.38829],[102.169845,32.388303],[102.169912,32.388356],[102.169955,32.388416],[102.169967,32.388471],[102.169996,32.388564],[102.170087,32.388637],[102.170104,32.38866],[102.17012,32.388663],[102.170133,32.388674],[102.170597,32.389047],[102.170616,32.389186],[102.170643,32.38922],[102.170649,32.389249],[102.170641,32.389284],[102.170631,32.389302],[102.1707,32.389803],[102.170688,32.390169],[102.170687,32.390204],[102.170679,32.390479],[102.170661,32.390492],[102.170641,32.390528],[102.170655,32.390583],[102.170666,32.3906],[102.170642,32.390776],[102.170637,32.390813],[102.170614,32.390974],[102.170609,32.391013],[102.170568,32.391306],[102.170806,32.391705],[102.170823,32.391733],[102.170849,32.391778],[102.17169,32.391941],[102.172497,32.391815],[102.172758,32.391853],[102.17277,32.391855],[102.172826,32.391863],[102.172956,32.391882],[102.173086,32.3919],[102.173102,32.392034],[102.173109,32.392091],[102.173113,32.392123],[102.17316,32.392508],[102.173166,32.392559],[102.173187,32.392727],[102.1732,32.392827],[102.173205,32.392866],[102.173208,32.39289],[102.173214,32.392941],[102.173289,32.393519],[102.173699,32.394124],[102.173727,32.394165],[102.173734,32.394174],[102.173814,32.394176],[102.173881,32.394177],[102.174325,32.394187],[102.174762,32.393731],[102.174763,32.393681],[102.174765,32.393624],[102.174767,32.393573],[102.174777,32.393229],[102.175201,32.393203],[102.175611,32.393369],[102.175632,32.393375],[102.175651,32.393383],[102.175933,32.393496],[102.176002,32.393524],[102.176065,32.393549],[102.176244,32.393621],[102.176434,32.393693],[102.176551,32.393737],[102.176618,32.393763],[102.176719,32.393801],[102.176767,32.393819],[102.176874,32.39386],[102.1769,32.39387],[102.177247,32.394002],[102.178007,32.394204],[102.178067,32.394221],[102.178127,32.394237],[102.178118,32.394259],[102.178099,32.394304],[102.177899,32.394769],[102.177087,32.395528],[102.176606,32.396474],[102.17674,32.397624],[102.176743,32.397648],[102.176769,32.397807],[102.176776,32.397853],[102.176786,32.397915],[102.177022,32.3994],[102.177688,32.401566],[102.177736,32.403623],[102.177831,32.407833],[102.177899,32.409269],[102.178143,32.41047],[102.178906,32.411703],[102.180106,32.412881],[102.180948,32.414017],[102.181391,32.415177],[102.182047,32.415903],[102.182793,32.416292],[102.183051,32.416975],[102.183905,32.417738],[102.184315,32.418695],[102.184373,32.419374],[102.184198,32.419877],[102.183544,32.420371],[102.182488,32.420956],[102.181511,32.421577],[102.180403,32.422568],[102.180289,32.422689],[102.179495,32.423529],[102.178769,32.42507],[102.178134,32.426207],[102.17782,32.427317],[102.177956,32.428098],[102.177654,32.428802],[102.177884,32.430398],[102.178558,32.431835],[102.17904,32.432997],[102.179353,32.434493],[102.179334,32.435102],[102.179828,32.435892],[102.180074,32.43698],[102.179974,32.437621],[102.179582,32.438662],[102.178953,32.439629],[102.178165,32.440593],[102.176729,32.4431],[102.176494,32.444245],[102.176604,32.445839],[102.176963,32.447133],[102.177262,32.449069],[102.177301,32.450356],[102.17725,32.450899],[102.177122,32.452248],[102.177051,32.453262],[102.177609,32.45456],[102.178293,32.455659],[102.179957,32.457355],[102.180516,32.458653],[102.181184,32.460259],[102.182061,32.461599],[102.182871,32.462497],[102.184357,32.463512],[102.185543,32.463877],[102.186502,32.463865],[102.187653,32.46406],[102.188354,32.464651],[102.189001,32.465647],[102.189325,32.466805],[102.189451,32.467891],[102.189841,32.468837],[102.189859,32.468882],[102.189859,32.468887],[102.189853,32.470371],[102.189847,32.470541],[102.189845,32.470611],[102.189816,32.471555],[102.190121,32.472689],[102.190209,32.473019],[102.190869,32.473643],[102.191625,32.475014],[102.191566,32.475622],[102.191362,32.477039],[102.191084,32.478285],[102.190829,32.48004],[102.190431,32.482569],[102.190356,32.483147],[102.190347,32.483219],[102.190247,32.483987],[102.190245,32.484007],[102.190116,32.484999],[102.190196,32.48754],[102.190146,32.489163],[102.190308,32.49166],[102.190407,32.493101],[102.190422,32.493317],[102.190289,32.493264],[102.190041,32.493187],[102.189735,32.49318],[102.18965,32.493201],[102.189537,32.49327],[102.189418,32.493503],[102.189328,32.493713],[102.189211,32.493923],[102.189121,32.494108],[102.188996,32.494439],[102.18897,32.494508],[102.18882,32.494909],[102.18867,32.495309],[102.188546,32.495638],[102.188422,32.495968],[102.188242,32.496378],[102.188062,32.496789],[102.187883,32.4972],[102.187703,32.49761],[102.187523,32.498021],[102.187445,32.498283],[102.187368,32.498545],[102.18729,32.498807],[102.187213,32.499069],[102.187135,32.499331],[102.187058,32.499593],[102.18698,32.499855],[102.186903,32.500116],[102.186895,32.500143],[102.186803,32.500435],[102.18671,32.500727],[102.186614,32.501126],[102.186482,32.501323],[102.186351,32.501519],[102.186282,32.501581],[102.186155,32.501696],[102.18596,32.501872],[102.185764,32.502048],[102.185568,32.502224],[102.185373,32.5024],[102.185177,32.502576],[102.184977,32.502736],[102.184777,32.502897],[102.184577,32.503057],[102.184378,32.503218],[102.184178,32.503378],[102.184055,32.503476],[102.183978,32.503538],[102.183769,32.503671],[102.183561,32.503804],[102.183353,32.503936],[102.183144,32.504069],[102.182936,32.504202],[102.182728,32.504334],[102.182566,32.504537],[102.182403,32.504739],[102.182241,32.504941],[102.182079,32.505143],[102.181916,32.505345],[102.181754,32.505547],[102.181592,32.505749],[102.181429,32.505951],[102.181267,32.506153],[102.181105,32.506355],[102.180942,32.506557],[102.18078,32.506759],[102.180611,32.506935],[102.180442,32.507111],[102.180273,32.507287],[102.180104,32.507462],[102.179935,32.507638],[102.179766,32.507814],[102.179597,32.50799],[102.179428,32.508165],[102.179254,32.50831],[102.179079,32.508454],[102.178905,32.508599],[102.178731,32.508743],[102.178556,32.508887],[102.178382,32.509032],[102.178208,32.509176],[102.178033,32.509321],[102.177859,32.509465],[102.177685,32.50961],[102.177468,32.509723],[102.177251,32.509835],[102.177035,32.509948],[102.176818,32.510061],[102.176601,32.510174],[102.176384,32.510287],[102.176147,32.510417],[102.17591,32.510547],[102.175673,32.510677],[102.175436,32.510807],[102.175198,32.510937],[102.174961,32.511067],[102.174724,32.511197],[102.174487,32.511327],[102.174155,32.511563],[102.173822,32.511799],[102.17349,32.512035],[102.173305,32.512184],[102.173119,32.512332],[102.172934,32.512481],[102.172748,32.512629],[102.172694,32.512692],[102.17258,32.512823],[102.172412,32.513017],[102.172244,32.513211],[102.172076,32.513404],[102.171907,32.513598],[102.171739,32.513792],[102.171571,32.513986],[102.171403,32.514179],[102.171235,32.514373],[102.171066,32.514567],[102.170878,32.514742],[102.17069,32.514918],[102.170501,32.515094],[102.170313,32.515269],[102.170124,32.515445],[102.169936,32.515621],[102.169748,32.515796],[102.169559,32.515972],[102.169371,32.516148],[102.169182,32.516323],[102.168994,32.516499],[102.168805,32.516675],[102.168617,32.51685],[102.168429,32.517026],[102.168222,32.517192],[102.168015,32.517358],[102.167808,32.517525],[102.167601,32.517691],[102.167394,32.517857],[102.167187,32.518023],[102.166981,32.518189],[102.166774,32.518356],[102.166567,32.518522],[102.16636,32.518688],[102.166153,32.518854],[102.165946,32.51902],[102.16574,32.519187],[102.165533,32.519353],[102.165351,32.519507],[102.165169,32.519661],[102.164987,32.519815],[102.164806,32.519969],[102.164624,32.520123],[102.164442,32.520277],[102.16426,32.520431],[102.164078,32.520585],[102.163897,32.520739],[102.163715,32.520894],[102.163533,32.521048],[102.163351,32.521202],[102.16317,32.521356],[102.163048,32.521459],[102.162988,32.52151],[102.16279,32.521653],[102.162593,32.521797],[102.162395,32.52194],[102.162198,32.522084],[102.162,32.522227],[102.161803,32.522371],[102.161605,32.522514],[102.161408,32.522658],[102.16121,32.522801],[102.161013,32.522945],[102.160816,32.523088],[102.160618,32.523232],[102.160421,32.523375],[102.160223,32.523519],[102.160165,32.523555],[102.160001,32.523658],[102.159779,32.523798],[102.159557,32.523938],[102.159336,32.524077],[102.159114,32.524217],[102.158892,32.524356],[102.15867,32.524496],[102.158448,32.524635],[102.158226,32.524775],[102.158004,32.524914],[102.157782,32.525054],[102.15756,32.525193],[102.157338,32.525333],[102.1572,32.52542],[102.157117,32.525473],[102.157002,32.525578],[102.156787,32.525777],[102.156457,32.526082],[102.156128,32.526386],[102.155798,32.526691],[102.155603,32.526858],[102.155409,32.527026],[102.155214,32.527193],[102.155019,32.52736],[102.154825,32.527528],[102.15463,32.527695],[102.154436,32.527863],[102.154241,32.52803],[102.154046,32.528198],[102.153852,32.528365],[102.153549,32.528688],[102.153246,32.529011],[102.153017,32.52923],[102.152787,32.529448],[102.152614,32.529667],[102.15244,32.529887],[102.15235,32.530097],[102.15226,32.530307],[102.152196,32.530576],[102.152132,32.530845],[102.15211,32.53108],[102.152089,32.531315],[102.152024,32.531573],[102.151893,32.53177],[102.151762,32.531968],[102.151691,32.53207],[102.151631,32.532157],[102.1515,32.532346],[102.151368,32.532535],[102.151237,32.532724],[102.151106,32.532913],[102.150975,32.533102],[102.150843,32.533291],[102.150712,32.53348],[102.150581,32.533669],[102.15045,32.533858],[102.150287,32.534054],[102.150123,32.534249],[102.14996,32.534444],[102.149797,32.53464],[102.149634,32.534835],[102.14947,32.53503],[102.149307,32.535226],[102.149144,32.535421],[102.149072,32.535662],[102.148999,32.535904],[102.148927,32.536146],[102.148854,32.536387],[102.148782,32.536629],[102.148709,32.536871],[102.148555,32.537267],[102.148463,32.537572],[102.148421,32.537994],[102.148427,32.538265],[102.148433,32.538536],[102.148516,32.538767],[102.148599,32.538998],[102.148682,32.53923],[102.148766,32.539461],[102.148849,32.539693],[102.148932,32.539924],[102.149015,32.540156],[102.149098,32.540387],[102.149217,32.540613],[102.149335,32.540838],[102.149395,32.541123],[102.149455,32.541407],[102.149462,32.541785],[102.149465,32.541969],[102.149408,32.54223],[102.149351,32.54249],[102.149294,32.542751],[102.149237,32.543011],[102.14918,32.543272],[102.149123,32.543533],[102.149065,32.543793],[102.149008,32.544054],[102.148965,32.544288],[102.148921,32.544523],[102.148878,32.544757],[102.148834,32.544992],[102.148791,32.545226],[102.148747,32.545461],[102.148703,32.545695],[102.14866,32.54593],[102.148616,32.546164],[102.148573,32.546399],[102.148563,32.546676],[102.148554,32.546954],[102.148544,32.547232],[102.148535,32.547509],[102.148525,32.547787],[102.148516,32.548064],[102.148485,32.548456],[102.148485,32.548457],[102.148485,32.548457],[102.148454,32.548848],[102.148423,32.54924],[102.148388,32.549451],[102.148277,32.549748],[102.148266,32.549777],[102.148095,32.549926],[102.147923,32.550075],[102.14758,32.55035],[102.147237,32.550625],[102.147037,32.550797],[102.146879,32.550933],[102.146836,32.550969],[102.146715,32.55107],[102.146657,32.551118],[102.146479,32.551267],[102.1463,32.551416],[102.146121,32.551565],[102.146048,32.551652],[102.14587,32.551866],[102.145619,32.552166],[102.145368,32.552466],[102.145221,32.55268],[102.145113,32.552837],[102.145074,32.552894],[102.144927,32.553107],[102.14478,32.553321],[102.144633,32.553535],[102.144486,32.553749],[102.144339,32.553963],[102.144192,32.554176],[102.144142,32.554246],[102.144052,32.554371],[102.143912,32.554565],[102.143772,32.55476],[102.143633,32.554955],[102.143493,32.555149],[102.143353,32.555344],[102.143214,32.555538],[102.143074,32.555733],[102.142934,32.555928],[102.142798,32.556117],[102.142795,32.556122],[102.142746,32.556158],[102.142595,32.556271],[102.142395,32.556419],[102.142204,32.556558],[102.14209,32.556641],[102.142081,32.556648],[102.141954,32.556715],[102.141742,32.556828],[102.141582,32.556863],[102.141348,32.556914],[102.140972,32.556929],[102.140596,32.556943],[102.140177,32.556981],[102.139758,32.557019],[102.139507,32.557014],[102.139257,32.557008],[102.138978,32.557025],[102.138699,32.557042],[102.13842,32.557047],[102.138142,32.557053],[102.137905,32.557083],[102.137667,32.557113],[102.1374,32.557189],[102.137133,32.557266],[102.136737,32.557445],[102.136506,32.557699],[102.136304,32.557929],[102.136102,32.558159],[102.135934,32.558364],[102.135765,32.558568],[102.135596,32.558773],[102.135428,32.558977],[102.135259,32.559182],[102.13509,32.559386],[102.134921,32.55959],[102.134753,32.559795],[102.134585,32.559948],[102.134418,32.560101],[102.134251,32.560254],[102.134083,32.560407],[102.133916,32.56056],[102.133749,32.560713],[102.133438,32.560859],[102.133126,32.561005],[102.132816,32.56114],[102.132506,32.561274],[102.132224,32.561385],[102.131942,32.561496],[102.131606,32.561559],[102.13127,32.561622],[102.131011,32.561669],[102.130752,32.561716],[102.130493,32.561763],[102.130233,32.56181],[102.129813,32.561895],[102.129553,32.561966],[102.129293,32.562036],[102.129034,32.562107],[102.128774,32.562177],[102.128521,32.562254],[102.128268,32.56233],[102.128014,32.562407],[102.127929,32.562433],[102.127761,32.562484],[102.127508,32.56256],[102.127255,32.562637],[102.127002,32.562713],[102.126749,32.56279],[102.126524,32.562855],[102.126299,32.562921],[102.126172,32.562948],[102.125795,32.563027],[102.125542,32.563022],[102.125197,32.562955],[102.124851,32.562888],[102.124607,32.562718],[102.124335,32.562499],[102.12416,32.562331],[102.123984,32.562162],[102.123856,32.561962],[102.123728,32.561761],[102.1236,32.56156],[102.123472,32.561359],[102.123268,32.561225],[102.123064,32.56109],[102.122761,32.560966],[102.122457,32.560889],[102.122384,32.56087],[102.122153,32.560812],[102.121919,32.560747],[102.121685,32.560682],[102.12145,32.560642],[102.121215,32.560601],[102.120937,32.560559],[102.12066,32.560517],[102.120405,32.560492],[102.120151,32.560467],[102.119896,32.560441],[102.119642,32.560416],[102.119387,32.560391],[102.119133,32.560365],[102.118701,32.560367],[102.118348,32.560368],[102.118269,32.560368],[102.117906,32.560395],[102.117543,32.560422],[102.11718,32.560449],[102.116817,32.560476],[102.116466,32.560563],[102.116116,32.56065],[102.115863,32.560761],[102.115611,32.560872],[102.115359,32.560983],[102.115107,32.561095],[102.114855,32.561206],[102.114603,32.561317],[102.114353,32.561423],[102.114102,32.561529],[102.113852,32.561636],[102.113601,32.561742],[102.113351,32.561848],[102.1131,32.561954],[102.11285,32.56206],[102.112599,32.562166],[102.112396,32.562265],[102.112192,32.562364],[102.111988,32.562463],[102.111785,32.562562],[102.111581,32.562661],[102.111377,32.562759],[102.111173,32.562858],[102.11097,32.562957],[102.110766,32.563056],[102.110562,32.563155],[102.110374,32.56328],[102.110186,32.563405],[102.109997,32.563531],[102.109809,32.563656],[102.109631,32.563774],[102.10962,32.563781],[102.109533,32.563839],[102.109432,32.563906],[102.109243,32.564031],[102.109055,32.564157],[102.108827,32.564304],[102.1086,32.564452],[102.108372,32.5646],[102.108144,32.564748],[102.108007,32.564837],[102.107991,32.564847],[102.107917,32.564895],[102.107839,32.564946],[102.107689,32.565043],[102.107462,32.565191],[102.107234,32.565338],[102.106839,32.565494],[102.106443,32.565649],[102.106119,32.565795],[102.105794,32.565941],[102.105532,32.566004],[102.10527,32.566066],[102.105008,32.566129],[102.104747,32.566191],[102.104485,32.566254],[102.104223,32.566317],[102.103961,32.566379],[102.103699,32.566442],[102.103467,32.566501],[102.103236,32.56656],[102.103004,32.56662],[102.102772,32.566679],[102.102541,32.566738],[102.102309,32.566798],[102.102077,32.566857],[102.101846,32.566917],[102.101602,32.566997],[102.101358,32.567078],[102.101114,32.567159],[102.10087,32.56724],[102.100626,32.56732],[102.100382,32.567401],[102.100072,32.567524],[102.099762,32.567646],[102.099515,32.567746],[102.099268,32.567846],[102.099021,32.567946],[102.098774,32.568046],[102.098406,32.568214],[102.098039,32.568382],[102.097773,32.568447],[102.097506,32.568512],[102.097213,32.568552],[102.096919,32.568592],[102.096655,32.568575],[102.096391,32.568557],[102.095947,32.568499],[102.095726,32.568435],[102.095505,32.568372],[102.095286,32.568272],[102.095067,32.568173],[102.094833,32.568038],[102.0946,32.567903],[102.094219,32.567683],[102.093986,32.567548],[102.093754,32.567413],[102.093521,32.567278],[102.093289,32.567143],[102.09311,32.567039],[102.093056,32.567008],[102.092851,32.566889],[102.092824,32.566873],[102.092629,32.566816],[102.092492,32.566775],[102.092419,32.566754],[102.092015,32.566634],[102.091611,32.566515],[102.091223,32.566436],[102.090835,32.566357],[102.090552,32.566334],[102.090419,32.566324],[102.090002,32.566291],[102.089683,32.566271],[102.089363,32.566251],[102.089319,32.56625],[102.089057,32.566244],[102.088751,32.566238],[102.088514,32.566256],[102.088276,32.566274],[102.088039,32.566292],[102.087801,32.56631],[102.08752,32.566397],[102.087239,32.566485],[102.086985,32.566597],[102.086591,32.566729],[102.086284,32.566722],[102.086012,32.566726],[102.085739,32.566731],[102.085409,32.566607],[102.08516,32.566543],[102.084911,32.566478],[102.08465,32.566378],[102.084388,32.566277],[102.084074,32.566117],[102.083759,32.565957],[102.083542,32.565864],[102.083326,32.56577],[102.08311,32.565677],[102.082894,32.565583],[102.082677,32.56549],[102.082618,32.565464],[102.082461,32.565397],[102.082353,32.56535],[102.082245,32.565303],[102.082179,32.565275],[102.082029,32.56521],[102.081819,32.565149],[102.081767,32.565133],[102.081505,32.565057],[102.081254,32.565039],[102.081004,32.565022],[102.080863,32.565018],[102.080804,32.565016],[102.080753,32.565015],[102.080643,32.565012],[102.080614,32.565011],[102.080302,32.565098],[102.080279,32.565105],[102.080222,32.565121],[102.080139,32.56517],[102.0801,32.565193],[102.07988,32.565325],[102.079666,32.565465],[102.079453,32.565606],[102.07924,32.565747],[102.079026,32.565888],[102.078813,32.566028],[102.0786,32.566169],[102.078386,32.56631],[102.078173,32.56645],[102.077959,32.566591],[102.077746,32.566732],[102.077533,32.566872],[102.077319,32.567013],[102.077106,32.567154],[102.076892,32.567294],[102.076679,32.567435],[102.076466,32.567576],[102.076257,32.567746],[102.076049,32.567916],[102.075841,32.568085],[102.075632,32.568255],[102.075404,32.568463],[102.075342,32.568626],[102.075338,32.568735],[102.075337,32.568767],[102.075385,32.569004],[102.075502,32.569278],[102.075619,32.569551],[102.075723,32.569751],[102.075828,32.56995],[102.075933,32.57015],[102.076038,32.570349],[102.076143,32.570549],[102.076247,32.570749],[102.076352,32.570948],[102.076457,32.571148],[102.076595,32.571339],[102.076732,32.571531],[102.07687,32.571722],[102.077008,32.571914],[102.077146,32.572105],[102.077283,32.572297],[102.077582,32.572563],[102.07788,32.572782],[102.078183,32.57293],[102.078457,32.573054],[102.078732,32.573131],[102.079007,32.573255],[102.079256,32.573355],[102.079501,32.573502],[102.07973,32.573628],[102.07996,32.573754],[102.080189,32.573879],[102.080419,32.574005],[102.080649,32.574131],[102.080878,32.574257],[102.081111,32.574396],[102.081343,32.574534],[102.081575,32.574673],[102.081807,32.574812],[102.08204,32.57495],[102.082272,32.575089],[102.082515,32.575307],[102.082676,32.575476],[102.082754,32.575689],[102.082801,32.575926],[102.082797,32.576066],[102.082796,32.576124],[102.082794,32.576208],[102.082754,32.576536],[102.082628,32.576958],[102.082601,32.577016],[102.082595,32.57703],[102.082591,32.577038],[102.082587,32.577047],[102.082586,32.577048],[102.082574,32.577074],[102.082524,32.577179],[102.082508,32.577214],[102.082466,32.577302],[102.082424,32.577391],[102.08242,32.5774],[102.082239,32.577796],[102.082061,32.578169],[102.082006,32.578586],[102.081979,32.578799],[102.081952,32.579004],[102.081922,32.579271],[102.081893,32.579538],[102.081878,32.579673],[102.081863,32.579805],[102.081834,32.580073],[102.081804,32.58034],[102.081774,32.580607],[102.081745,32.580874],[102.081715,32.581141],[102.081734,32.581448],[102.081835,32.581756],[102.081991,32.582066],[102.082204,32.582385],[102.082417,32.582704],[102.08263,32.583023],[102.08284,32.583405],[102.082862,32.583454],[102.082965,32.583677],[102.082971,32.58369],[102.083016,32.583974],[102.083007,32.584244],[102.082999,32.584515],[102.082876,32.584841],[102.08277,32.585145],[102.082663,32.585448],[102.082445,32.585795],[102.082228,32.586141],[102.082049,32.586426],[102.082011,32.586487],[102.081738,32.586741],[102.081465,32.586994],[102.081121,32.587267],[102.080893,32.587427],[102.080665,32.587587],[102.08027,32.587742],[102.079962,32.587829],[102.079653,32.587916],[102.079357,32.588027],[102.079061,32.588138],[102.078789,32.588332],[102.078518,32.588526],[102.078287,32.588768],[102.078056,32.589009],[102.077931,32.589204],[102.077807,32.589399],[102.077682,32.589593],[102.077557,32.589788],[102.077385,32.589974],[102.07724,32.590134],[102.077089,32.590484],[102.077134,32.590814],[102.077199,32.591049],[102.077264,32.591284],[102.077329,32.591518],[102.077394,32.591753],[102.077459,32.591987],[102.077524,32.592222],[102.077589,32.592457],[102.077654,32.592691],[102.077719,32.592926],[102.077784,32.59316],[102.077829,32.593468],[102.077805,32.593773],[102.07778,32.594078],[102.077731,32.594313],[102.077682,32.594547],[102.077576,32.594938],[102.077471,32.595328],[102.077365,32.595718],[102.077266,32.595974],[102.077167,32.59623],[102.077167,32.596231],[102.077068,32.596487],[102.076969,32.596744],[102.076908,32.597007],[102.076846,32.597271],[102.076785,32.597534],[102.076724,32.597798],[102.076663,32.598062],[102.076601,32.598325],[102.07654,32.598589],[102.076479,32.598853],[102.076418,32.599116],[102.076356,32.59938],[102.07629,32.59972],[102.076224,32.60006],[102.076045,32.600384],[102.07587,32.600664],[102.075592,32.600937],[102.075315,32.60121],[102.075219,32.601304],[102.075119,32.601402],[102.074922,32.601594],[102.074726,32.601785],[102.074529,32.601977],[102.074333,32.602169],[102.074137,32.60236],[102.074053,32.602461],[102.073967,32.602564],[102.073798,32.602768],[102.073629,32.602972],[102.07346,32.603176],[102.073291,32.60338],[102.073121,32.603584],[102.072952,32.603788],[102.072783,32.603992],[102.072614,32.604196],[102.072444,32.6044],[102.072275,32.604604],[102.072106,32.604808],[102.071957,32.605016],[102.071808,32.605224],[102.071757,32.605296],[102.071659,32.605432],[102.07151,32.60564],[102.071361,32.605849],[102.071212,32.606057],[102.071063,32.606265],[102.070913,32.606473],[102.070764,32.606681],[102.070615,32.606889],[102.070466,32.607097],[102.070317,32.607305],[102.070074,32.607645],[102.069831,32.607985],[102.069588,32.608325],[102.069445,32.60856],[102.069301,32.608795],[102.069158,32.609029],[102.069014,32.609264],[102.068882,32.609481],[102.068871,32.609499],[102.068727,32.609734],[102.068584,32.609969],[102.06844,32.610204],[102.068307,32.610448],[102.068173,32.610692],[102.068124,32.610915],[102.068075,32.611137],[102.06808,32.611431],[102.068084,32.611726],[102.068112,32.611953],[102.068139,32.612179],[102.068145,32.612228],[102.068167,32.612406],[102.068195,32.612633],[102.068237,32.612717],[102.068326,32.612895],[102.068457,32.613158],[102.068575,32.613373],[102.068693,32.613588],[102.068853,32.613803],[102.069014,32.614018],[102.069229,32.614258],[102.06928,32.61437],[102.069359,32.614543],[102.069366,32.614653],[102.069377,32.614827],[102.069314,32.615174],[102.069309,32.615202],[102.069191,32.615412],[102.068971,32.615759],[102.068937,32.615812],[102.068927,32.615828],[102.06875,32.616106],[102.068627,32.616486],[102.068504,32.616865],[102.06838,32.617244],[102.068359,32.617479],[102.068337,32.617714],[102.068315,32.617949],[102.068294,32.618184],[102.068272,32.618419],[102.06825,32.618654],[102.068229,32.618889],[102.068207,32.619124],[102.068186,32.619547],[102.068166,32.61997],[102.068145,32.620393],[102.068124,32.620816],[102.068039,32.621038],[102.067954,32.621259],[102.067869,32.62148],[102.067784,32.621702],[102.067699,32.621923],[102.067614,32.622144],[102.067529,32.622365],[102.067444,32.622587],[102.06738,32.622698],[102.067369,32.622719],[102.06734,32.622769],[102.06732,32.622804],[102.067197,32.62302],[102.067074,32.623237],[102.067017,32.623337],[102.067013,32.623344],[102.066993,32.623378],[102.066991,32.623383],[102.06695,32.623454],[102.066827,32.623671],[102.066704,32.623888],[102.066563,32.624093],[102.066422,32.624299],[102.066281,32.624504],[102.06614,32.62471],[102.065998,32.624916],[102.065857,32.625121],[102.065797,32.625209],[102.065621,32.625452],[102.065446,32.625694],[102.065296,32.626045],[102.065181,32.626135],[102.064959,32.626108],[102.064628,32.626006],[102.064463,32.625908],[102.064276,32.625692],[102.064069,32.625407],[102.063862,32.625121],[102.063672,32.624859],[102.063501,32.624622],[102.06333,32.624385],[102.063205,32.624153],[102.06308,32.62392],[102.062955,32.623687],[102.06283,32.623455],[102.062768,32.62323],[102.062705,32.623005],[102.062606,32.62265],[102.062507,32.622271],[102.062463,32.621916],[102.062416,32.621655],[102.06234,32.621466],[102.062204,32.621275],[102.062016,32.621105],[102.061797,32.620983],[102.061482,32.620834],[102.061166,32.620685],[102.060951,32.620593],[102.060735,32.620502],[102.06052,32.620411],[102.060305,32.620319],[102.060089,32.620228],[102.059874,32.620137],[102.059658,32.620045],[102.059443,32.619954],[102.059228,32.619863],[102.059012,32.619771],[102.058797,32.61968],[102.058582,32.619588],[102.058348,32.619501],[102.058114,32.619413],[102.057852,32.619324],[102.057589,32.619235],[102.057229,32.619204],[102.056949,32.619267],[102.056722,32.619404],[102.056462,32.619657],[102.056287,32.619865],[102.056169,32.620074],[102.056051,32.620283],[102.055876,32.620537],[102.055564,32.620719],[102.055226,32.620829],[102.05496,32.620846],[102.054694,32.620863],[102.054327,32.620807],[102.053959,32.620751],[102.053569,32.620718],[102.053161,32.620708],[102.052752,32.620698],[102.052344,32.620689],[102.051953,32.620719],[102.051562,32.620749],[102.051171,32.620778],[102.050735,32.620875],[102.0503,32.620971],[102.050071,32.621028],[102.049841,32.621086],[102.049612,32.621143],[102.049382,32.6212],[102.049153,32.621258],[102.048924,32.621315],[102.048666,32.621349],[102.048409,32.621383],[102.048151,32.621417],[102.047894,32.621451],[102.047637,32.621485],[102.047379,32.621519],[102.047122,32.621553],[102.046864,32.621587],[102.046607,32.621621],[102.046349,32.621655],[102.046073,32.62167],[102.045796,32.621685],[102.045519,32.6217],[102.045242,32.621715],[102.044965,32.62173],[102.044688,32.621745],[102.044411,32.62176],[102.044135,32.621775],[102.043858,32.62179],[102.043581,32.621805],[102.043304,32.62182],[102.043027,32.621835],[102.042679,32.621815],[102.042331,32.621795],[102.041887,32.621749],[102.041509,32.62171],[102.041443,32.621704],[102.041125,32.621637],[102.040806,32.621571],[102.040378,32.621479],[102.039949,32.621386],[102.039728,32.621318],[102.039565,32.621268],[102.039517,32.621253],[102.039507,32.62125],[102.039286,32.621182],[102.039066,32.621114],[102.038845,32.621046],[102.038624,32.620979],[102.038432,32.620862],[102.038239,32.620746],[102.037854,32.620513],[102.03747,32.62028],[102.037085,32.620048],[102.036893,32.619931],[102.0367,32.619815],[102.036501,32.619676],[102.036302,32.619537],[102.036104,32.619399],[102.035905,32.61926],[102.035706,32.619121],[102.035507,32.618982],[102.035308,32.618843],[102.035109,32.618705],[102.03491,32.618566],[102.034711,32.618427],[102.03454,32.618274],[102.034369,32.61812],[102.034197,32.617967],[102.034026,32.617814],[102.033854,32.617661],[102.033683,32.617507],[102.033443,32.617172],[102.033204,32.616837],[102.032964,32.616501],[102.032936,32.616436],[102.032917,32.616392],[102.032874,32.616292],[102.032783,32.616083],[102.032692,32.615873],[102.032602,32.615664],[102.032511,32.615455],[102.032421,32.615246],[102.03233,32.615036],[102.032239,32.614827],[102.032149,32.614618],[102.032058,32.614409],[102.031964,32.614199],[102.03187,32.61399],[102.031776,32.613781],[102.031682,32.613572],[102.031588,32.613363],[102.031494,32.613153],[102.0314,32.612944],[102.031307,32.612735],[102.031213,32.612526],[102.031119,32.612317],[102.031052,32.612088],[102.030985,32.611858],[102.030919,32.611629],[102.030852,32.6114],[102.030785,32.611171],[102.030719,32.610942],[102.030698,32.610718],[102.030678,32.610494],[102.030658,32.610269],[102.030637,32.610045],[102.030617,32.609821],[102.030597,32.609597],[102.030605,32.60936],[102.030613,32.609123],[102.03062,32.608886],[102.030628,32.608649],[102.030636,32.608412],[102.030644,32.608175],[102.030652,32.607938],[102.03066,32.607701],[102.030747,32.60726],[102.030834,32.60682],[102.03092,32.606379],[102.031007,32.605938],[102.031094,32.605498],[102.031075,32.605236],[102.031027,32.605002],[102.030868,32.604739],[102.030668,32.604475],[102.030468,32.604211],[102.030197,32.60397],[102.029927,32.603728],[102.029761,32.603576],[102.029595,32.603425],[102.029473,32.603313],[102.029437,32.60328],[102.029429,32.603273],[102.029263,32.603121],[102.029097,32.60297],[102.028931,32.602818],[102.028765,32.602666],[102.028599,32.602515],[102.028433,32.602363],[102.028267,32.602212],[102.02794,32.601968],[102.027928,32.601958],[102.027614,32.601724],[102.027356,32.601381],[102.027099,32.601037],[102.026841,32.600694],[102.026544,32.600381],[102.026398,32.600177],[102.026251,32.599972],[102.026181,32.599595],[102.026105,32.599346],[102.02603,32.599097],[102.025876,32.598693],[102.025716,32.598478],[102.025528,32.598285],[102.025338,32.598139],[102.025145,32.598064],[102.024922,32.598035],[102.024631,32.598028],[102.024339,32.598021],[102.024047,32.59799],[102.023756,32.59796],[102.023534,32.597908],[102.023312,32.597856],[102.023065,32.597756],[102.022817,32.597656],[102.022612,32.597557],[102.022406,32.597457],[102.022202,32.597323],[102.021998,32.597189],[102.021793,32.597055],[102.021589,32.596921],[102.021309,32.596645],[102.021029,32.596369],[102.020748,32.596094],[102.020471,32.595766],[102.020194,32.595437],[102.019917,32.595109],[102.019686,32.59476],[102.019455,32.594411],[102.019314,32.594199],[102.019224,32.594062],[102.019111,32.593671],[102.018999,32.59328],[102.018958,32.593049],[102.018916,32.592819],[102.018902,32.592738],[102.018875,32.592589],[102.018834,32.592358],[102.018744,32.592144],[102.018653,32.59193],[102.01844,32.591619],[102.018172,32.591353],[102.017954,32.59116],[102.017655,32.590964],[102.017336,32.590769],[102.017018,32.590573],[102.016699,32.590377],[102.016441,32.590292],[102.016183,32.590206],[102.016,32.590145],[102.015999,32.590145],[102.015997,32.590145],[102.015925,32.59012],[102.015667,32.590035],[102.015408,32.589949],[102.01515,32.589864],[102.014892,32.589778],[102.014634,32.589692],[102.014344,32.589615],[102.014053,32.589537],[102.01382,32.589438],[102.013587,32.589338],[102.013287,32.589119],[102.012988,32.588876],[102.012813,32.588696],[102.012639,32.588515],[102.012455,32.588129],[102.012271,32.587743],[102.012087,32.587358],[102.011902,32.586972],[102.011655,32.586597],[102.011407,32.586222],[102.01116,32.585848],[102.010845,32.585542],[102.01053,32.585236],[102.010473,32.585181],[102.010215,32.584931],[102.009949,32.584571],[102.009761,32.584366],[102.009573,32.584161],[102.009412,32.58397],[102.009251,32.583778],[102.009046,32.583455],[102.009039,32.583443],[102.008866,32.583078],[102.008692,32.582713],[102.008519,32.582348],[102.008446,32.582132],[102.008372,32.581916],[102.008299,32.5817],[102.008225,32.581484],[102.008152,32.581268],[102.008078,32.581052],[102.008005,32.580836],[102.007931,32.58062],[102.00786,32.580379],[102.007789,32.580139],[102.007719,32.579898],[102.007648,32.579657],[102.007577,32.579416],[102.007506,32.579175],[102.007418,32.578947],[102.007331,32.57872],[102.007243,32.578492],[102.007156,32.578264],[102.007068,32.578036],[102.00698,32.577809],[102.006893,32.577581],[102.006805,32.577353],[102.006717,32.577126],[102.00663,32.576898],[102.006542,32.57667],[102.006455,32.576443],[102.006355,32.576225],[102.006255,32.576007],[102.006155,32.575789],[102.006055,32.575572],[102.005956,32.575354],[102.005856,32.575136],[102.005756,32.574918],[102.005656,32.574701],[102.005556,32.574483],[102.005522,32.574409],[102.005457,32.574265],[102.005344,32.574051],[102.005231,32.573836],[102.005118,32.573622],[102.005005,32.573407],[102.004893,32.573193],[102.00478,32.572978],[102.004667,32.572764],[102.004554,32.57255],[102.004441,32.572335],[102.004329,32.572121],[102.004051,32.571792],[102.003773,32.571462],[102.003496,32.571133],[102.003218,32.570804],[102.003002,32.570568],[102.002786,32.570332],[102.002578,32.57006],[102.002371,32.569789],[102.002204,32.569486],[102.002037,32.569183],[102.001893,32.568796],[102.001748,32.56841],[102.001672,32.568153],[102.001595,32.567896],[102.001592,32.567888],[102.001574,32.567827],[102.001518,32.567639],[102.001492,32.567551],[102.001481,32.567513],[102.001442,32.567383],[102.001365,32.567126],[102.001352,32.567084],[102.001318,32.566968],[102.001288,32.566869],[102.001171,32.566511],[102.001155,32.566461],[102.001095,32.56628],[102.001035,32.566096],[102.001028,32.566073],[102.00102,32.56605],[102.000944,32.565819],[102.000868,32.565588],[102.000793,32.565357],[102.000717,32.565126],[102.000597,32.565004],[102.000597,32.565004],[102.000478,32.564882],[102.000247,32.564647],[102.000238,32.564638],[102.000138,32.564678],[102.000062,32.564708],[102.000009,32.564736],[102.000001,32.56474],[101.999995,32.564744],[101.999941,32.564772],[101.999928,32.564779],[101.999928,32.564779],[101.999916,32.564786],[101.999876,32.564807],[101.999844,32.564824],[101.999844,32.564824],[101.999839,32.564827],[101.999708,32.564896],[101.999627,32.564939],[101.999354,32.565084],[101.99922,32.565155],[101.99922,32.565155],[101.999,32.565273],[101.998824,32.565428],[101.998647,32.565584],[101.998471,32.565739],[101.998295,32.565895],[101.998119,32.56605],[101.997943,32.566206],[101.997766,32.566361],[101.99759,32.566517],[101.997414,32.566673],[101.997238,32.566828],[101.997097,32.567004],[101.996957,32.567181],[101.996816,32.567357],[101.996676,32.567534],[101.996536,32.56771],[101.996395,32.567886],[101.996255,32.568063],[101.996115,32.568239],[101.995974,32.568415],[101.995834,32.568592],[101.995645,32.568733],[101.995456,32.568874],[101.995267,32.569015],[101.995078,32.569157],[101.994889,32.569298],[101.9947,32.569439],[101.994511,32.56958],[101.994322,32.569722],[101.994133,32.569863],[101.993944,32.570004],[101.993752,32.570135],[101.99356,32.570265],[101.993369,32.570396],[101.993177,32.570527],[101.992985,32.570657],[101.992793,32.570788],[101.992602,32.570919],[101.99241,32.571049],[101.992218,32.57118],[101.992027,32.571311],[101.991835,32.571441],[101.991643,32.571572],[101.991439,32.571696],[101.991235,32.57182],[101.99103,32.571944],[101.990826,32.572068],[101.990621,32.572192],[101.990417,32.572316],[101.990213,32.57244],[101.990008,32.572564],[101.98981,32.572672],[101.989611,32.572781],[101.989413,32.57289],[101.989214,32.572998],[101.988912,32.57314],[101.988611,32.573281],[101.988244,32.573352],[101.987897,32.573195],[101.987792,32.573011],[101.987723,32.572774],[101.987654,32.572537],[101.987652,32.572472],[101.987643,32.572227],[101.987654,32.572152],[101.987679,32.571967],[101.987714,32.571707],[101.98775,32.571448],[101.987785,32.571188],[101.987821,32.570928],[101.987834,32.570834],[101.987856,32.570668],[101.987892,32.570408],[101.987927,32.570148],[101.987963,32.569888],[101.987998,32.569628],[101.988061,32.56936],[101.988123,32.569091],[101.988185,32.568822],[101.988192,32.568791],[101.988247,32.568553],[101.98831,32.568284],[101.988372,32.568015],[101.988435,32.567746],[101.988497,32.567477],[101.988559,32.567208],[101.988622,32.566939],[101.988684,32.566687],[101.988747,32.566435],[101.98881,32.566183],[101.988873,32.565931],[101.988935,32.565678],[101.988998,32.565426],[101.989061,32.565174],[101.989124,32.564922],[101.989186,32.56467],[101.989249,32.564417],[101.989278,32.564157],[101.989306,32.563897],[101.989335,32.563638],[101.989363,32.563378],[101.989324,32.562943],[101.989284,32.562509],[101.989245,32.562075],[101.989206,32.561641],[101.989192,32.561206],[101.989177,32.560772],[101.989163,32.560338],[101.989186,32.560112],[101.98921,32.559886],[101.989233,32.55966],[101.989256,32.559434],[101.989279,32.559208],[101.989302,32.558982],[101.989326,32.558757],[101.989339,32.558624],[101.989349,32.558531],[101.989386,32.558261],[101.989423,32.557992],[101.98946,32.557722],[101.989498,32.557453],[101.989517,32.557314],[101.989535,32.557183],[101.989572,32.556914],[101.989609,32.556645],[101.989646,32.556375],[101.989684,32.556106],[101.989721,32.555836],[101.989724,32.555583],[101.989728,32.555331],[101.989732,32.555078],[101.989733,32.555017],[101.989736,32.554825],[101.989739,32.554572],[101.989741,32.554473],[101.989743,32.554319],[101.989747,32.554066],[101.989751,32.553813],[101.989754,32.553561],[101.989758,32.553308],[101.989699,32.552978],[101.989594,32.552772],[101.989468,32.55265],[101.989292,32.55253],[101.989071,32.552494],[101.988859,32.552516],[101.988802,32.552521],[101.988567,32.552545],[101.988533,32.552548],[101.988119,32.55262],[101.98783,32.552794],[101.987542,32.552967],[101.987321,32.553084],[101.9871,32.553202],[101.986879,32.553319],[101.986658,32.553437],[101.986449,32.553548],[101.986438,32.553554],[101.986335,32.553609],[101.986217,32.553672],[101.986123,32.553722],[101.985996,32.553789],[101.985775,32.553907],[101.985555,32.554024],[101.985334,32.554142],[101.985113,32.554259],[101.984892,32.554377],[101.984811,32.554406],[101.98466,32.554461],[101.984461,32.554533],[101.984434,32.554543],[101.984429,32.554545],[101.984418,32.554548],[101.984197,32.554628],[101.983965,32.554712],[101.983829,32.554762],[101.983733,32.554796],[101.983501,32.55488],[101.983269,32.554964],[101.983038,32.555048],[101.982806,32.555132],[101.982574,32.555216],[101.982342,32.5553],[101.982127,32.555378],[101.98211,32.555384],[101.982047,32.555406],[101.981905,32.555458],[101.981878,32.555467],[101.981647,32.555551],[101.98125,32.555726],[101.980853,32.5559],[101.980568,32.556026],[101.980546,32.556035],[101.980457,32.556075],[101.980247,32.556167],[101.980213,32.556182],[101.980203,32.556186],[101.980129,32.556219],[101.980107,32.556228],[101.98006,32.556249],[101.979906,32.556392],[101.979739,32.556547],[101.979548,32.556724],[101.979485,32.556783],[101.979419,32.556845],[101.979098,32.557142],[101.978778,32.55744],[101.978736,32.557471],[101.978687,32.557508],[101.978613,32.557563],[101.978565,32.557598],[101.978353,32.557756],[101.97814,32.557914],[101.977928,32.558072],[101.977715,32.558229],[101.977503,32.558387],[101.977291,32.558545],[101.977128,32.558666],[101.977078,32.558703],[101.976893,32.558837],[101.976707,32.558971],[101.976603,32.559046],[101.976601,32.559048],[101.976599,32.559049],[101.976558,32.559079],[101.976552,32.559083],[101.976522,32.559105],[101.976337,32.559239],[101.975989,32.559454],[101.975716,32.559623],[101.97564,32.55967],[101.97535,32.559791],[101.975196,32.559855],[101.975059,32.559912],[101.97485,32.559963],[101.974779,32.55998],[101.9745,32.560049],[101.974277,32.560103],[101.974054,32.560156],[101.973831,32.56021],[101.973608,32.560263],[101.973385,32.560317],[101.973162,32.560371],[101.972898,32.560533],[101.972634,32.560695],[101.972622,32.560711],[101.972621,32.560712],[101.972551,32.560806],[101.972521,32.560847],[101.972476,32.560908],[101.972469,32.560916],[101.972305,32.561138],[101.97216,32.561319],[101.972014,32.561501],[101.971985,32.561538],[101.971869,32.561682],[101.971724,32.561864],[101.971694,32.561902],[101.971683,32.561915],[101.971578,32.562046],[101.971478,32.562171],[101.971477,32.562172],[101.971448,32.562209],[101.971433,32.562227],[101.971288,32.562409],[101.971143,32.56259],[101.970946,32.562761],[101.97075,32.562931],[101.970553,32.563101],[101.970492,32.563155],[101.970479,32.563166],[101.970432,32.563207],[101.970425,32.563213],[101.970357,32.563272],[101.97016,32.563442],[101.969964,32.563613],[101.969767,32.563783],[101.96957,32.563953],[101.969417,32.564173],[101.969375,32.564233],[101.969317,32.564317],[101.969264,32.564392],[101.96921,32.56447],[101.969156,32.564548],[101.969111,32.564611],[101.968958,32.56483],[101.968858,32.564974],[101.968842,32.564997],[101.968805,32.56505],[101.968775,32.565093],[101.968652,32.565269],[101.968441,32.565564],[101.968351,32.565691],[101.96835,32.565691],[101.96835,32.565692],[101.96823,32.565859],[101.968227,32.565862],[101.968204,32.565882],[101.967897,32.566158],[101.967563,32.566436],[101.967351,32.566506],[101.96733,32.566512],[101.967208,32.566552],[101.96717,32.566564],[101.967151,32.566571],[101.966859,32.566639],[101.966817,32.566649],[101.966795,32.566655],[101.966567,32.566708],[101.966311,32.566756],[101.966055,32.566803],[101.965641,32.566897],[101.965241,32.56701],[101.965214,32.567017],[101.965017,32.567072],[101.964891,32.567108],[101.96484,32.567122],[101.964617,32.567249],[101.964575,32.567273],[101.964451,32.56739],[101.964416,32.567424],[101.964373,32.567465],[101.964263,32.567569],[101.964235,32.567596],[101.964171,32.567656],[101.964008,32.567898],[101.963844,32.56814],[101.963638,32.568325],[101.963629,32.568332],[101.963476,32.568469],[101.963474,32.568471],[101.963423,32.568516],[101.963415,32.568524],[101.963125,32.568649],[101.963113,32.568655],[101.963101,32.56866],[101.963047,32.568684],[101.962957,32.568722],[101.96295,32.568725],[101.962811,32.568786],[101.962469,32.568836],[101.9622,32.568842],[101.961857,32.56885],[101.961635,32.568893],[101.961613,32.568897],[101.961516,32.568921],[101.961438,32.569151],[101.961417,32.569214],[101.961382,32.569315],[101.961375,32.569337],[101.96136,32.569381],[101.961306,32.56962],[101.961273,32.569769],[101.96127,32.569781],[101.961266,32.569801],[101.961252,32.569859],[101.961125,32.57007],[101.961079,32.570145],[101.960997,32.57028],[101.960662,32.570578],[101.960459,32.570738],[101.960348,32.570825],[101.960255,32.570899],[101.960035,32.571001],[101.959814,32.571102],[101.959594,32.571204],[101.959373,32.571306],[101.959136,32.571519],[101.959048,32.571598],[101.959036,32.571608],[101.958999,32.571641],[101.958999,32.571641],[101.958999,32.571641],[101.958939,32.571695],[101.958939,32.571695],[101.958723,32.571889],[101.958397,32.57218],[101.958348,32.572224],[101.95827,32.572295],[101.958266,32.572299],[101.958247,32.572315],[101.958148,32.572404],[101.957899,32.572628],[101.957624,32.572862],[101.957417,32.573039],[101.957397,32.573056],[101.95735,32.573096],[101.957338,32.573101],[101.957095,32.573196],[101.956841,32.573295],[101.956562,32.573395],[101.956284,32.573494],[101.956079,32.573603],[101.955874,32.573712],[101.955623,32.573924],[101.955373,32.574137],[101.955233,32.574348],[101.955093,32.574558],[101.954957,32.574798],[101.954955,32.574801],[101.954953,32.574803],[101.954914,32.574872],[101.954907,32.574885],[101.954902,32.574894],[101.954841,32.575001],[101.954839,32.575004],[101.954799,32.575075],[101.954722,32.575211],[101.954388,32.575508],[101.95412,32.575555],[101.954099,32.575552],[101.953848,32.575521],[101.95365,32.575442],[101.953399,32.575283],[101.953109,32.57501],[101.953068,32.574971],[101.953004,32.574911],[101.952819,32.574737],[101.952563,32.574432],[101.952394,32.574146],[101.952225,32.573859],[101.952125,32.573655],[101.952025,32.573451],[101.951924,32.573246],[101.951824,32.573042],[101.951724,32.572838],[101.951624,32.572633],[101.951524,32.572429],[101.951423,32.572225],[101.951323,32.572021],[101.951223,32.571816],[101.951103,32.571598],[101.950984,32.57138],[101.950864,32.571161],[101.950745,32.570943],[101.950625,32.570725],[101.950506,32.570506],[101.95044,32.570386],[101.95042,32.57035],[101.950386,32.570288],[101.950267,32.57007],[101.950147,32.569851],[101.950028,32.569633],[101.949908,32.569414],[101.949789,32.569196],[101.949762,32.569146],[101.949669,32.568968],[101.949549,32.56874],[101.949429,32.568511],[101.949309,32.568283],[101.9493,32.568266],[101.949189,32.568055],[101.949069,32.567827],[101.948949,32.567598],[101.948829,32.56737],[101.948709,32.567142],[101.948589,32.566913],[101.948469,32.566685],[101.948348,32.566457],[101.948271,32.566239],[101.948194,32.566021],[101.948116,32.565803],[101.948039,32.565584],[101.947961,32.565366],[101.947884,32.565148],[101.947806,32.56493],[101.947729,32.564712],[101.947634,32.564493],[101.947539,32.564274],[101.947444,32.564055],[101.947349,32.563836],[101.947254,32.563617],[101.947159,32.563399],[101.947064,32.56318],[101.946969,32.562961],[101.946874,32.562742],[101.946779,32.562523],[101.946684,32.562304],[101.946589,32.562085],[101.946483,32.561855],[101.946376,32.561624],[101.94627,32.561394],[101.946164,32.561163],[101.946058,32.560933],[101.945951,32.560702],[101.945845,32.560472],[101.945739,32.560241],[101.945622,32.560044],[101.945506,32.559847],[101.945389,32.559651],[101.945272,32.559454],[101.945155,32.559257],[101.945039,32.559061],[101.944922,32.558864],[101.944873,32.558781],[101.944805,32.558667],[101.944672,32.558459],[101.94465,32.558426],[101.944538,32.558252],[101.944405,32.558044],[101.944271,32.557837],[101.944138,32.557629],[101.944004,32.557421],[101.943827,32.557252],[101.94365,32.557083],[101.943473,32.556913],[101.943295,32.556744],[101.943118,32.556574],[101.942941,32.556405],[101.942764,32.556236],[101.942642,32.556119],[101.942623,32.556101],[101.942587,32.556066],[101.942428,32.55589],[101.942269,32.555714],[101.942111,32.555537],[101.941952,32.555361],[101.941793,32.555184],[101.941635,32.555008],[101.941476,32.554832],[101.941318,32.554655],[101.941159,32.554479],[101.941072,32.554382],[101.941,32.554303],[101.940974,32.554277],[101.940893,32.554199],[101.940817,32.554125],[101.94068,32.553992],[101.940591,32.553906],[101.940538,32.553854],[101.940408,32.553729],[101.940382,32.553704],[101.94036,32.553682],[101.940228,32.553554],[101.940039,32.553372],[101.939697,32.553117],[101.939484,32.552959],[101.939437,32.552924],[101.939354,32.552863],[101.939315,32.552834],[101.939269,32.552799],[101.939012,32.552608],[101.938669,32.552354],[101.938462,32.5522],[101.938255,32.552046],[101.937891,32.55179],[101.937527,32.551534],[101.937164,32.551279],[101.937117,32.551245],[101.9368,32.551023],[101.936623,32.550893],[101.936486,32.550792],[101.936172,32.550561],[101.936145,32.550526],[101.936131,32.550508],[101.936127,32.550504],[101.936121,32.550496],[101.936031,32.550381],[101.935989,32.550327],[101.935969,32.550301],[101.935891,32.550201],[101.93575,32.550022],[101.935609,32.549842],[101.935547,32.549763],[101.935468,32.549662],[101.935328,32.549483],[101.935261,32.549413],[101.935153,32.549301],[101.934978,32.549119],[101.934804,32.548937],[101.93472,32.548849],[101.934675,32.548803],[101.934629,32.548755],[101.934574,32.548697],[101.934454,32.548573],[101.93428,32.548391],[101.934268,32.548383],[101.933916,32.548135],[101.933553,32.547879],[101.933347,32.547734],[101.933345,32.547733],[101.933343,32.547731],[101.933189,32.547623],[101.932959,32.547461],[101.932826,32.547368],[101.932788,32.547334],[101.932759,32.547308],[101.932643,32.547204],[101.932601,32.547167],[101.932579,32.547147],[101.932562,32.547132],[101.932555,32.547126],[101.93246,32.547041],[101.932277,32.546878],[101.932094,32.546715],[101.931911,32.546551],[101.931728,32.546388],[101.931698,32.546361],[101.931578,32.546255],[101.931545,32.546225],[101.931361,32.546062],[101.931178,32.545898],[101.930995,32.545735],[101.930812,32.545572],[101.930629,32.545409],[101.930496,32.545262],[101.930465,32.545228],[101.930426,32.545184],[101.930301,32.545047],[101.930147,32.544877],[101.930138,32.544866],[101.929974,32.544685],[101.92981,32.544504],[101.929646,32.544323],[101.929482,32.544142],[101.92946,32.544118],[101.929319,32.543962],[101.929155,32.543781],[101.928991,32.5436],[101.928827,32.543419],[101.928663,32.543238],[101.928598,32.543165],[101.9285,32.543057],[101.928336,32.542876],[101.928134,32.542705],[101.927932,32.542533],[101.927732,32.542364],[101.92773,32.542362],[101.927698,32.542335],[101.927528,32.54219],[101.927339,32.542019],[101.92715,32.541848],[101.927087,32.541789],[101.926876,32.541591],[101.926846,32.541563],[101.92684,32.541557],[101.926592,32.541279],[101.926384,32.540916],[101.926177,32.540553],[101.925969,32.540191],[101.925873,32.540023],[101.925851,32.539986],[101.925761,32.539828],[101.925708,32.53971],[101.925692,32.539675],[101.925664,32.539611],[101.925658,32.539599],[101.925634,32.539545],[101.925567,32.539394],[101.925469,32.539178],[101.92539,32.539001],[101.925372,32.538961],[101.92532,32.538844],[101.925275,32.538744],[101.925178,32.538528],[101.925081,32.538311],[101.925052,32.538245],[101.925035,32.538208],[101.924984,32.538094],[101.924887,32.537877],[101.92479,32.537661],[101.924714,32.537492],[101.924692,32.537444],[101.924595,32.537227],[101.924528,32.537089],[101.924477,32.536983],[101.924359,32.536739],[101.924318,32.536654],[101.924294,32.536604],[101.924241,32.536495],[101.924122,32.53625],[101.924038,32.536076],[101.924021,32.536041],[101.924004,32.536006],[101.923886,32.535762],[101.923768,32.535518],[101.923649,32.535274],[101.923531,32.535029],[101.923413,32.534785],[101.923295,32.534541],[101.923177,32.534297],[101.923081,32.53407],[101.922986,32.533843],[101.922891,32.533616],[101.922877,32.533582],[101.922796,32.533389],[101.922701,32.533162],[101.922667,32.533082],[101.922606,32.532935],[101.922511,32.532708],[101.922415,32.532481],[101.92232,32.532254],[101.922225,32.532027],[101.92213,32.531801],[101.922035,32.531574],[101.92194,32.531347],[101.921844,32.53112],[101.921746,32.530891],[101.921648,32.530663],[101.921549,32.530434],[101.921451,32.530205],[101.921352,32.529977],[101.921254,32.529748],[101.92122,32.52967],[101.921201,32.529626],[101.921156,32.52952],[101.921057,32.529291],[101.921003,32.529164],[101.920959,32.529062],[101.92086,32.528834],[101.920825,32.528751],[101.920762,32.528605],[101.920664,32.528377],[101.920565,32.528148],[101.920524,32.528054],[101.920509,32.528019],[101.920467,32.52792],[101.920457,32.527899],[101.920361,32.527692],[101.920353,32.527676],[101.920255,32.527464],[101.920211,32.52737],[101.920149,32.527237],[101.920067,32.527061],[101.920043,32.527009],[101.91995,32.526808],[101.919938,32.526782],[101.919929,32.526763],[101.919832,32.526554],[101.919726,32.526326],[101.91962,32.526099],[101.919548,32.525943],[101.919545,32.525936],[101.919527,32.525899],[101.919514,32.525871],[101.919413,32.525653],[101.919409,32.525644],[101.919395,32.525619],[101.91939,32.52561],[101.919226,32.525302],[101.919217,32.525286],[101.919203,32.52526],[101.919043,32.524961],[101.918947,32.524781],[101.91886,32.52462],[101.918856,32.52461],[101.918703,32.524292],[101.918649,32.524086],[101.918617,32.523924],[101.918604,32.523859],[101.918567,32.523667],[101.91856,32.523632],[101.918543,32.523537],[101.918517,32.523397],[101.918515,32.523385],[101.91847,32.523137],[101.918426,32.52289],[101.918381,32.522642],[101.918322,32.522363],[101.918301,32.522262],[101.918263,32.522085],[101.918202,32.521651],[101.918195,32.521453],[101.918192,32.52134],[101.918196,32.521192],[101.918204,32.520967],[101.91822,32.520718],[101.918227,32.520685],[101.918234,32.520657],[101.918263,32.520531],[101.918354,32.520301],[101.91836,32.520286],[101.918366,32.520271],[101.918458,32.52004],[101.918555,32.519795],[101.918653,32.51955],[101.918738,32.519314],[101.918824,32.519078],[101.918909,32.518842],[101.918994,32.518606],[101.919055,32.518436],[101.919067,32.518405],[101.919079,32.518369],[101.919165,32.518133],[101.91925,32.517897],[101.919312,32.517725],[101.919325,32.517688],[101.919335,32.517661],[101.91942,32.517425],[101.919506,32.517189],[101.919536,32.517082],[101.91954,32.517066],[101.919574,32.516946],[101.919643,32.516704],[101.919712,32.516461],[101.91978,32.516219],[101.919832,32.516039],[101.919849,32.515976],[101.919903,32.515785],[101.919918,32.515734],[101.919987,32.515491],[101.920034,32.515325],[101.920055,32.515249],[101.920108,32.515016],[101.920141,32.514868],[101.920177,32.514708],[101.920184,32.514678],[101.920227,32.514487],[101.920313,32.514106],[101.920311,32.513853],[101.920309,32.513599],[101.920306,32.513345],[101.920304,32.513092],[101.920346,32.512863],[101.920348,32.512855],[101.920356,32.512822],[101.920418,32.51258],[101.920425,32.512553],[101.92044,32.512494],[101.92048,32.512337],[101.920488,32.512306],[101.920535,32.512126],[101.920629,32.511757],[101.920694,32.511487],[101.92071,32.511259],[101.920704,32.511051],[101.92068,32.510972],[101.920673,32.510946],[101.920649,32.510866],[101.920514,32.510497],[101.920379,32.510128],[101.920245,32.509767],[101.920197,32.509637],[101.920177,32.509581],[101.920123,32.509438],[101.920112,32.509406],[101.920067,32.509166],[101.920023,32.508926],[101.919979,32.508686],[101.919934,32.508445],[101.91989,32.508205],[101.919846,32.507965],[101.919843,32.507701],[101.919841,32.507437],[101.919839,32.507206],[101.919839,32.507172],[101.919836,32.506908],[101.919834,32.506857],[101.919834,32.50683],[101.919823,32.506515],[101.91986,32.506182],[101.919927,32.505974],[101.920045,32.505764],[101.920075,32.50569],[101.920085,32.505664],[101.920112,32.505596],[101.920091,32.505348],[101.920071,32.5051],[101.920051,32.505037],[101.919962,32.50475],[101.919852,32.5044],[101.919772,32.504174],[101.919691,32.503948],[101.919546,32.503641],[101.919528,32.503603],[101.919402,32.503333],[101.91939,32.503313],[101.919292,32.503158],[101.919273,32.503128],[101.919168,32.50296],[101.919134,32.502905],[101.918934,32.502588],[101.918899,32.502531],[101.918701,32.502215],[101.91861,32.501973],[101.91852,32.501732],[101.918463,32.50158],[101.918435,32.501506],[101.918429,32.50149],[101.918339,32.501249],[101.918248,32.501008],[101.918158,32.500766],[101.918067,32.500525],[101.917977,32.500283],[101.917936,32.500122],[101.917877,32.499887],[101.917818,32.499653],[101.917777,32.499492],[101.917759,32.499418],[101.917729,32.4993],[101.917722,32.499272],[101.9177,32.499184],[101.917641,32.49895],[101.917623,32.498879],[101.917616,32.498851],[101.917582,32.498715],[101.917553,32.498599],[101.917478,32.498292],[101.917458,32.498211],[101.917451,32.498185],[101.91744,32.498137],[101.917406,32.497999],[101.917406,32.497998],[101.917401,32.497979],[101.917374,32.497868],[101.917358,32.497804],[101.917342,32.497738],[101.917308,32.497601],[101.91727,32.497445],[101.917149,32.497247],[101.917029,32.497049],[101.916969,32.496952],[101.916908,32.496852],[101.916788,32.496654],[101.916667,32.496457],[101.916546,32.496259],[101.916402,32.495972],[101.916258,32.495685],[101.916098,32.495296],[101.915992,32.49505],[101.915958,32.494751],[101.915923,32.494451],[101.915928,32.494217],[101.915933,32.493984],[101.915938,32.493751],[101.915942,32.493549],[101.915942,32.493517],[101.915922,32.493269],[101.915901,32.493021],[101.915867,32.49269],[101.915762,32.492464],[101.915657,32.492239],[101.915608,32.492148],[101.915593,32.492121],[101.91554,32.492024],[101.915422,32.49181],[101.915304,32.491596],[101.915186,32.491382],[101.915063,32.49108],[101.915052,32.491054],[101.915035,32.491012],[101.914926,32.490744],[101.914884,32.490642],[101.914734,32.490272],[101.914652,32.490025],[101.914571,32.489779],[101.914489,32.489532],[101.914408,32.489285],[101.914349,32.488955],[101.91429,32.488666],[101.914253,32.488315],[101.914247,32.4881],[101.914246,32.488072],[101.914245,32.488045],[101.914239,32.487842],[101.914237,32.487776],[101.914241,32.487571],[101.914241,32.487534],[101.914246,32.487292],[101.91425,32.48705],[101.914255,32.486808],[101.914259,32.4866],[101.914259,32.486567],[101.91426,32.486554],[101.91426,32.486545],[101.914264,32.486338],[101.914264,32.486325],[101.91425,32.486222],[101.914238,32.486134],[101.914232,32.486088],[101.914202,32.485869],[101.914199,32.48585],[101.914196,32.485839],[101.914194,32.485832],[101.914137,32.485651],[101.914137,32.485651],[101.914124,32.48561],[101.914048,32.485369],[101.913973,32.485128],[101.913897,32.484887],[101.913833,32.484659],[101.913768,32.484431],[101.913704,32.484202],[101.913639,32.483974],[101.913575,32.483746],[101.91351,32.483517],[101.913446,32.483289],[101.913381,32.483061],[101.913317,32.482833],[101.913252,32.482604],[101.913188,32.482376],[101.913123,32.482148],[101.913034,32.481922],[101.912945,32.481696],[101.912855,32.481471],[101.912766,32.481245],[101.912677,32.481019],[101.912588,32.480794],[101.912498,32.480568],[101.912409,32.480342],[101.91232,32.480116],[101.912231,32.479891],[101.912142,32.479665],[101.912052,32.479439],[101.91195,32.479216],[101.911847,32.478992],[101.911744,32.478769],[101.911641,32.478545],[101.911538,32.478322],[101.911436,32.478098],[101.911339,32.477887],[101.911333,32.477874],[101.911322,32.477851],[101.911266,32.477728],[101.91123,32.477651],[101.911127,32.477427],[101.911025,32.477204],[101.910969,32.477064],[101.910939,32.47699],[101.910934,32.476976],[101.910854,32.476777],[101.910769,32.476563],[101.910683,32.476349],[101.910598,32.476136],[101.910513,32.475922],[101.910431,32.475717],[101.910427,32.475709],[101.910342,32.475495],[101.910296,32.47538],[101.910257,32.475281],[101.910171,32.475068],[101.910147,32.474912],[101.910141,32.474872],[101.910121,32.474749],[101.910102,32.474625],[101.910092,32.474564],[101.910032,32.474182],[101.909963,32.473739],[101.909893,32.473296],[101.90985,32.472849],[101.909806,32.472403],[101.909763,32.471956],[101.909719,32.471509],[101.909675,32.471063],[101.909676,32.47071],[101.909677,32.470407],[101.909677,32.470358],[101.909669,32.470089],[101.90966,32.469978],[101.909648,32.469841],[101.909628,32.469593],[101.909606,32.469282],[101.909596,32.469139],[101.909584,32.468972],[101.909527,32.468735],[101.90951,32.468665],[101.90947,32.468499],[101.909418,32.468282],[101.909413,32.468263],[101.909409,32.468244],[101.90936,32.468042],[101.909356,32.468027],[101.909264,32.467822],[101.909172,32.467617],[101.909079,32.467412],[101.908987,32.467207],[101.908895,32.467002],[101.908891,32.466995],[101.908882,32.466974],[101.90887,32.466947],[101.908849,32.4669],[101.908836,32.466871],[101.908809,32.466812],[101.908802,32.466797],[101.908734,32.466646],[101.908732,32.466641],[101.90871,32.466592],[101.908617,32.466387],[101.90856,32.466259],[101.908556,32.46625],[101.908537,32.466208],[101.908527,32.466186],[101.908526,32.466184],[101.908525,32.466182],[101.908498,32.466122],[101.908433,32.465977],[101.908356,32.465737],[101.908278,32.465497],[101.908201,32.465257],[101.908124,32.465017],[101.908047,32.464776],[101.907969,32.464536],[101.907915,32.464281],[101.90787,32.464069],[101.90786,32.464026],[101.907855,32.464003],[101.907845,32.463955],[101.907823,32.46385],[101.907806,32.463771],[101.907751,32.463516],[101.907697,32.463261],[101.907642,32.463006],[101.907621,32.462904],[101.907616,32.462881],[101.907607,32.462838],[101.907605,32.462828],[101.907588,32.46275],[101.907533,32.462495],[101.907494,32.462311],[101.907479,32.46224],[101.907476,32.462228],[101.907424,32.461985],[101.90738,32.461793],[101.907367,32.461738],[101.907357,32.461694],[101.907338,32.461613],[101.90731,32.461491],[101.907275,32.461159],[101.907252,32.460936],[101.907238,32.460808],[101.907228,32.460456],[101.907245,32.460207],[101.907282,32.459853],[101.907344,32.459521],[101.907346,32.459505],[101.907386,32.45925],[101.907372,32.458858],[101.907372,32.458858],[101.907372,32.458858],[101.907353,32.458718],[101.907316,32.458454],[101.907313,32.458427],[101.907313,32.458427],[101.907264,32.45807],[101.907256,32.458017],[101.907211,32.457686],[101.907168,32.457452],[101.907126,32.457217],[101.907107,32.457113],[101.907083,32.456983],[101.90706,32.456854],[101.907041,32.456748],[101.906998,32.456514],[101.906956,32.456279],[101.906913,32.456045],[101.906871,32.455811],[101.906829,32.455576],[101.906786,32.455342],[101.906786,32.455342],[101.906744,32.455107],[101.906743,32.455105],[101.906743,32.455103],[101.906701,32.454873],[101.906659,32.454639],[101.906616,32.454404],[101.906572,32.454162],[101.906527,32.45392],[101.906497,32.453758],[101.906497,32.453755],[101.906494,32.453738],[101.906483,32.453678],[101.906464,32.453578],[101.906464,32.453576],[101.906438,32.453435],[101.906438,32.453433],[101.906438,32.453432],[101.906425,32.453361],[101.906394,32.453193],[101.906349,32.452951],[101.906305,32.452709],[101.90626,32.452467],[101.906252,32.452424],[101.906247,32.452397],[101.906239,32.45235],[101.906229,32.452296],[101.906216,32.452225],[101.906171,32.451983],[101.906157,32.451905],[101.906144,32.451837],[101.906127,32.45174],[101.906107,32.451634],[101.906105,32.451621],[101.906101,32.451602],[101.9061,32.451594],[101.906082,32.451498],[101.906064,32.451245],[101.906045,32.450993],[101.906026,32.45074],[101.906008,32.450487],[101.905989,32.450234],[101.90597,32.449982],[101.905952,32.449729],[101.905933,32.449476],[101.905914,32.449223],[101.905896,32.448971],[101.905877,32.448718],[101.905868,32.448597],[101.905868,32.448595],[101.905868,32.448593],[101.905858,32.448465],[101.90584,32.448212],[101.905821,32.447959],[101.905832,32.447525],[101.905844,32.447091],[101.905855,32.446657],[101.905862,32.44638],[101.905866,32.446223],[101.905902,32.445984],[101.905937,32.445744],[101.905972,32.445505],[101.906007,32.445266],[101.906042,32.445027],[101.906078,32.444788],[101.906113,32.444549],[101.906148,32.444309],[101.906196,32.444078],[101.906243,32.443846],[101.906291,32.443615],[101.906338,32.443383],[101.906386,32.443151],[101.906433,32.44292],[101.906481,32.442688],[101.906529,32.442457],[101.90656,32.442192],[101.906591,32.441927],[101.906623,32.441663],[101.906654,32.441398],[101.906674,32.441229],[101.906686,32.441133],[101.906717,32.440869],[101.906748,32.440604],[101.90678,32.440339],[101.906784,32.440101],[101.906789,32.439862],[101.906793,32.439624],[101.906798,32.439385],[101.906803,32.439147],[101.906807,32.438908],[101.906812,32.43867],[101.906816,32.438431],[101.906821,32.438193],[101.906826,32.437954],[101.90683,32.437716],[101.906835,32.437477],[101.906799,32.437217],[101.906763,32.436957],[101.906727,32.436697],[101.906691,32.436437],[101.906655,32.436176],[101.906619,32.435916],[101.906583,32.435656],[101.906547,32.435396],[101.906502,32.435143],[101.906457,32.43489],[101.906412,32.434637],[101.906367,32.434384],[101.906322,32.434132],[101.906278,32.433879],[101.906233,32.433626],[101.906188,32.433373],[101.906155,32.43319],[101.906143,32.43312],[101.906098,32.432867],[101.906053,32.432615],[101.906008,32.432362],[101.905975,32.432087],[101.905942,32.431813],[101.905909,32.431538],[101.905876,32.431263],[101.905843,32.430989],[101.90581,32.430714],[101.905847,32.430361],[101.905884,32.430007],[101.906031,32.42959],[101.906178,32.429172],[101.906285,32.428949],[101.906392,32.428725],[101.906498,32.428501],[101.906605,32.428278],[101.906712,32.428055],[101.906712,32.428054],[101.906713,32.428052],[101.906716,32.428046],[101.906819,32.42783],[101.906945,32.427673],[101.906955,32.427661],[101.906986,32.427623],[101.90715,32.427418],[101.907315,32.427213],[101.907479,32.427009],[101.907643,32.426804],[101.907808,32.426599],[101.907972,32.426395],[101.908155,32.426209],[101.908337,32.426024],[101.90839,32.42597],[101.908403,32.425957],[101.90846,32.425899],[101.90847,32.425889],[101.90852,32.425838],[101.908702,32.425653],[101.908885,32.425467],[101.909067,32.425282],[101.90925,32.425097],[101.909432,32.424911],[101.909615,32.424726],[101.909797,32.42454],[101.90998,32.424355],[101.910162,32.42417],[101.910378,32.424023],[101.910593,32.423877],[101.910809,32.42373],[101.911024,32.423584],[101.91124,32.423437],[101.911455,32.42329],[101.911664,32.423182],[101.911873,32.423073],[101.912081,32.422965],[101.91229,32.422856],[101.912499,32.422748],[101.912707,32.422639],[101.912892,32.422532],[101.912935,32.422506],[101.912952,32.422496],[101.913026,32.422454],[101.913164,32.422373],[101.913173,32.422368],[101.913392,32.42224],[101.91362,32.422107],[101.913848,32.421974],[101.914018,32.421875],[101.914076,32.421841],[101.914385,32.421551],[101.914694,32.42126],[101.915003,32.420969],[101.915174,32.420753],[101.915344,32.420536],[101.915515,32.42032],[101.915685,32.420104],[101.91582,32.419708],[101.915824,32.419459],[101.915828,32.419209],[101.915793,32.418899],[101.915761,32.418672],[101.915619,32.418267],[101.915476,32.417861],[101.915394,32.417627],[101.915333,32.417456],[101.915191,32.417051],[101.915094,32.416787],[101.915009,32.416559],[101.914925,32.41633],[101.914841,32.416102],[101.914757,32.415873],[101.914673,32.415645],[101.914589,32.415416],[101.914505,32.415188],[101.914484,32.415132],[101.914459,32.415065],[101.914453,32.415048],[101.914421,32.41496],[101.914336,32.414731],[101.914252,32.414503],[101.914045,32.414145],[101.913838,32.413787],[101.91366,32.413574],[101.913482,32.41336],[101.913292,32.413177],[101.913102,32.412995],[101.912919,32.412649],[101.912736,32.412303],[101.912692,32.412071],[101.912648,32.411838],[101.912603,32.411606],[101.912559,32.411373],[101.912453,32.411066],[101.912346,32.410799],[101.912214,32.410532],[101.912024,32.41035],[101.911835,32.410168],[101.911637,32.41003],[101.911439,32.409891],[101.911242,32.409753],[101.911044,32.409614],[101.910846,32.409476],[101.910649,32.409337],[101.910451,32.409199],[101.910253,32.40906],[101.910056,32.408922],[101.909858,32.408783],[101.909636,32.408618],[101.909414,32.408453],[101.909192,32.408287],[101.908971,32.408122],[101.908749,32.407956],[101.908527,32.407791],[101.908305,32.407626],[101.908248,32.407583],[101.908083,32.40746],[101.907861,32.407295],[101.907691,32.407168],[101.907666,32.407149],[101.90764,32.407129],[101.907418,32.406964],[101.907196,32.406799],[101.907012,32.406649],[101.906827,32.4065],[101.906643,32.40635],[101.906459,32.406201],[101.906275,32.406051],[101.90609,32.405902],[101.905906,32.405752],[101.905722,32.405603],[101.905538,32.405453],[101.905353,32.405304],[101.905169,32.405155],[101.904985,32.405005],[101.904761,32.404896],[101.904537,32.404787],[101.904254,32.404731],[101.903971,32.404676],[101.903676,32.40463],[101.903522,32.404606],[101.903381,32.404585],[101.903252,32.404574],[101.903147,32.404565],[101.903098,32.40456],[101.902975,32.40455],[101.902816,32.404536],[101.902547,32.404553],[101.902279,32.40457],[101.902106,32.404607],[101.902013,32.404627],[101.901747,32.404685],[101.901584,32.40472],[101.901517,32.404734],[101.901481,32.404742],[101.901467,32.404745],[101.901215,32.404799],[101.901112,32.40484],[101.900913,32.40492],[101.900751,32.404985],[101.90061,32.405041],[101.900283,32.405132],[101.899955,32.405223],[101.899724,32.405259],[101.899493,32.405296],[101.899066,32.405336],[101.898639,32.405377],[101.898395,32.405393],[101.89815,32.405409],[101.897796,32.405438],[101.897442,32.405467],[101.897174,32.405504],[101.896906,32.405542],[101.896555,32.405622],[101.896204,32.405702],[101.89596,32.40576],[101.895717,32.405817],[101.895461,32.405875],[101.895206,32.405932],[101.894891,32.406002],[101.894475,32.406012],[101.894179,32.405956],[101.893907,32.40588],[101.893683,32.40575],[101.893459,32.405621],[101.893182,32.405379],[101.892964,32.405073],[101.892747,32.404767],[101.892565,32.404459],[101.89246,32.404208],[101.892354,32.403957],[101.892248,32.403705],[101.892142,32.403454],[101.892036,32.403202],[101.89193,32.402951],[101.891824,32.402699],[101.891719,32.402448],[101.891593,32.402233],[101.891467,32.402019],[101.891341,32.401804],[101.891215,32.40159],[101.89109,32.401376],[101.890964,32.401161],[101.890838,32.400947],[101.890712,32.400732],[101.890586,32.400518],[101.890461,32.400303],[101.890335,32.400089],[101.890209,32.399875],[101.890046,32.399655],[101.889883,32.399436],[101.88972,32.399217],[101.889557,32.398997],[101.889394,32.398778],[101.889231,32.398559],[101.889068,32.39834],[101.888905,32.39812],[101.888569,32.397831],[101.888233,32.397542],[101.887897,32.397253],[101.887703,32.397107],[101.887509,32.396961],[101.887314,32.396815],[101.88712,32.39667],[101.886908,32.39653],[101.886696,32.39639],[101.886435,32.396271],[101.886175,32.396152],[101.885903,32.396065],[101.885631,32.395978],[101.885368,32.395911],[101.885335,32.395902],[101.885244,32.395878],[101.885124,32.395848],[101.885086,32.395838],[101.885039,32.395826],[101.884791,32.395738],[101.884544,32.39565],[101.884221,32.395523],[101.883899,32.395396],[101.883588,32.395217],[101.883278,32.395038],[101.883141,32.394839],[101.883004,32.394641],[101.882867,32.394442],[101.88273,32.394243],[101.882614,32.394041],[101.882497,32.393839],[101.882381,32.393636],[101.882264,32.393434],[101.882148,32.393231],[101.882031,32.393029],[101.881914,32.392826],[101.881798,32.392624],[101.881681,32.392421],[101.881565,32.392219],[101.881439,32.392003],[101.881313,32.391787],[101.881188,32.391571],[101.881062,32.391355],[101.880936,32.391139],[101.880883,32.391048],[101.88081,32.390924],[101.880801,32.390908],[101.88074,32.390803],[101.880685,32.390708],[101.880559,32.390492],[101.880433,32.390276],[101.88035,32.390133],[101.880307,32.39006],[101.880182,32.389844],[101.880056,32.389628],[101.879877,32.389373],[101.879697,32.389119],[101.879517,32.38896],[101.879337,32.388802],[101.879156,32.388644],[101.878976,32.388485],[101.878796,32.388327],[101.878616,32.388169],[101.878316,32.38801],[101.87797,32.387893],[101.877674,32.387817],[101.877256,32.387745],[101.876819,32.387693],[101.876814,32.387693],[101.876771,32.387682],[101.876717,32.387668],[101.876703,32.387664],[101.876592,32.387635],[101.876371,32.387578],[101.876167,32.387479],[101.875798,32.387301],[101.875586,32.387171],[101.875375,32.387041],[101.87516,32.38687],[101.874946,32.386698],[101.874733,32.386516],[101.87452,32.386334],[101.874318,32.386142],[101.874116,32.385951],[101.873978,32.385827],[101.873919,32.385773],[101.87389,32.385748],[101.873848,32.38571],[101.873665,32.385545],[101.873337,32.385264],[101.873105,32.385161],[101.873026,32.385126],[101.873018,32.385123],[101.873018,32.385122],[101.872938,32.385087],[101.872831,32.385039],[101.872716,32.384988],[101.872456,32.38489],[101.872196,32.384793],[101.871854,32.384545],[101.871852,32.384543],[101.871849,32.384542],[101.871772,32.384486],[101.871772,32.384486],[101.871511,32.384297],[101.871169,32.384049],[101.871085,32.384],[101.870949,32.38392],[101.870897,32.38389],[101.870729,32.383791],[101.870621,32.383728],[101.870554,32.383688],[101.870509,32.383662],[101.870289,32.383533],[101.870069,32.383404],[101.869848,32.383275],[101.869628,32.383146],[101.869408,32.383017],[101.869188,32.382888],[101.868968,32.382759],[101.868748,32.38263],[101.868528,32.3825],[101.868308,32.382371],[101.868087,32.382242],[101.867867,32.382113],[101.867647,32.381984],[101.867597,32.381959],[101.867468,32.381894],[101.867443,32.381881],[101.867371,32.381846],[101.867264,32.381792],[101.867238,32.381779],[101.867033,32.381676],[101.866829,32.381573],[101.866624,32.38147],[101.866419,32.381368],[101.866215,32.381265],[101.86601,32.381162],[101.865805,32.381059],[101.865601,32.380957],[101.865367,32.3809],[101.865132,32.380843],[101.864895,32.380828],[101.864658,32.380813],[101.864422,32.380797],[101.864185,32.380782],[101.863948,32.380766],[101.863711,32.380751],[101.863416,32.380717],[101.863121,32.380661],[101.862895,32.380479],[101.862765,32.380243],[101.862635,32.380008],[101.862501,32.379638],[101.862444,32.379479],[101.862443,32.379474],[101.86242,32.379412],[101.862414,32.379393],[101.862389,32.379323],[101.86234,32.379186],[101.862336,32.379073],[101.862336,32.37907],[101.862332,32.378937],[101.862324,32.378689],[101.862316,32.37844],[101.862309,32.378192],[101.862301,32.377943],[101.862293,32.377695],[101.862285,32.377447],[101.862277,32.377198],[101.862294,32.376938],[101.862312,32.376679],[101.862329,32.376419],[101.862346,32.376159],[101.862363,32.375899],[101.862381,32.37564],[101.862398,32.37538],[101.862415,32.37512],[101.862427,32.374938],[101.862439,32.3747],[101.862451,32.374461],[101.862463,32.374223],[101.862475,32.373984],[101.862487,32.373745],[101.862493,32.373626],[101.862499,32.373507],[101.862503,32.373436],[101.862511,32.373268],[101.862524,32.37303],[101.862536,32.372791],[101.862548,32.372552],[101.862559,32.37212],[101.862565,32.371876],[101.86257,32.371687],[101.862579,32.37132],[101.862581,32.371255],[101.862592,32.370822],[101.862646,32.370603],[101.862701,32.370384],[101.862723,32.370326],[101.862783,32.370172],[101.862814,32.370091],[101.862879,32.36984],[101.862888,32.369811],[101.862937,32.36965],[101.862968,32.369548],[101.863084,32.369339],[101.863149,32.369094],[101.863215,32.368849],[101.86328,32.368603],[101.863333,32.368405],[101.863346,32.368358],[101.863373,32.368131],[101.863377,32.368101],[101.863409,32.367845],[101.863439,32.367599],[101.863497,32.367259],[101.863552,32.366935],[101.863553,32.366933],[101.863555,32.36692],[101.863613,32.36658],[101.86364,32.366294],[101.863666,32.366008],[101.863667,32.365995],[101.863623,32.365553],[101.863578,32.36511],[101.863534,32.364668],[101.863489,32.364226],[101.863466,32.364002],[101.863387,32.363576],[101.863307,32.363151],[101.863227,32.362725],[101.863148,32.3623],[101.863068,32.361874],[101.862977,32.361468],[101.862899,32.361123],[101.862827,32.360804],[101.862821,32.360779],[101.862757,32.360492],[101.862693,32.360206],[101.862693,32.35993],[101.862693,32.359654],[101.862697,32.359392],[101.862702,32.35913],[101.862702,32.358972],[101.862702,32.358683],[101.862636,32.358369],[101.862588,32.358102],[101.862626,32.357769],[101.862759,32.357455],[101.862869,32.357231],[101.862978,32.357008],[101.863035,32.356684],[101.863026,32.356427],[101.862908,32.355998],[101.862855,32.355805],[101.862848,32.355787],[101.862848,32.355786],[101.862848,32.355786],[101.862844,32.355774],[101.862771,32.355566],[101.86276,32.355533],[101.862687,32.355327],[101.862606,32.355138],[101.862606,32.355138],[101.862606,32.355138],[101.862444,32.354762],[101.862282,32.354387],[101.86222,32.354295],[101.862181,32.354238],[101.862043,32.354056],[101.861905,32.353875],[101.861866,32.353832],[101.861791,32.35375],[101.86152,32.35345],[101.861352,32.353286],[101.861184,32.353122],[101.861006,32.352969],[101.860827,32.352815],[101.860513,32.352615],[101.860335,32.352458],[101.86027,32.352244],[101.860263,32.352016],[101.860227,32.351701],[101.860162,32.351579],[101.860121,32.351503],[101.860042,32.351412],[101.859817,32.351167],[101.859593,32.350922],[101.859365,32.350659],[101.859192,32.35046],[101.859019,32.350261],[101.858847,32.350062],[101.858674,32.349863],[101.858448,32.349511],[101.858221,32.349159],[101.857995,32.348808],[101.857768,32.348456],[101.857588,32.348295],[101.857407,32.348133],[101.857226,32.347972],[101.857046,32.34781],[101.856865,32.347648],[101.856685,32.347487],[101.856367,32.347217],[101.856049,32.346948],[101.855731,32.346679],[101.8555,32.346345],[101.85527,32.346012],[101.855039,32.345679],[101.854922,32.345464],[101.854819,32.345274],[101.854805,32.345249],[101.854689,32.345034],[101.854572,32.344819],[101.854437,32.34457],[101.854326,32.344477],[101.854012,32.344242],[101.853892,32.344132],[101.853822,32.344069],[101.853777,32.344028],[101.853591,32.343746],[101.853406,32.343464],[101.853313,32.343232],[101.85322,32.343],[101.853077,32.342714],[101.852934,32.342429],[101.852791,32.342125],[101.852749,32.342036],[101.852656,32.341615],[101.852649,32.341237],[101.852642,32.340858],[101.852599,32.34068],[101.852549,32.340516],[101.852492,32.340409],[101.852406,32.340209],[101.852406,32.340002],[101.852392,32.339873],[101.852335,32.339709],[101.852381,32.339416],[101.852428,32.339124],[101.852499,32.338867],[101.852497,32.338843],[101.85247,32.338574],[101.852473,32.338228],[101.852475,32.337882],[101.852404,32.337654],[101.852379,32.337504],[101.852297,32.337083],[101.852254,32.336958],[101.852198,32.336881],[101.852198,32.33688],[101.852197,32.336879],[101.852111,32.336804],[101.851942,32.336622],[101.851785,32.336343],[101.851627,32.336063],[101.851514,32.335801],[101.851478,32.335605],[101.851556,32.335369]]]]},"properties":{"cp":[102.04239391087305,32.455224568167694],"code":"513233203","name":"查尔玛乡","level":"street","center":[102.04239391087305,32.455224568167694],"fullCode":"513233203000","fullName":"四川省阿坝藏族羌族自治州红原县查尔玛乡","acreageMu":1092920.26,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[101.921,32.5029]}},{"id":"513233204","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.485374,33.088931],[102.485341,33.088785],[102.485348,33.088537],[102.485356,33.088289],[102.485367,33.087863],[102.485377,33.087532],[102.485397,33.087205],[102.485417,33.086878],[102.485309,33.086675],[102.485202,33.086471],[102.48493,33.086183],[102.484751,33.086002],[102.484573,33.08582],[102.484395,33.085675],[102.484216,33.085529],[102.484007,33.085442],[102.483798,33.085355],[102.48338,33.085251],[102.483112,33.085246],[102.482844,33.085241],[102.482449,33.08528],[102.482155,33.085262],[102.48186,33.085245],[102.481496,33.085167],[102.481246,33.08502],[102.481032,33.08466],[102.480954,33.084446],[102.480876,33.084231],[102.480797,33.084005],[102.480719,33.083778],[102.480506,33.083457],[102.480449,33.083371],[102.480314,33.083155],[102.48018,33.08294],[102.480046,33.082712],[102.479912,33.082485],[102.479791,33.082293],[102.47967,33.082102],[102.479455,33.081718],[102.479351,33.081456],[102.479162,33.08113],[102.479138,33.080902],[102.479113,33.080675],[102.479089,33.080447],[102.479064,33.080219],[102.479039,33.079992],[102.479015,33.079764],[102.47899,33.079537],[102.478966,33.079309],[102.478941,33.079082],[102.478916,33.078854],[102.478894,33.078579],[102.478871,33.078305],[102.478849,33.07803],[102.478826,33.077756],[102.478803,33.077481],[102.478781,33.077207],[102.478758,33.076932],[102.478735,33.076658],[102.478713,33.076383],[102.47869,33.076109],[102.478667,33.075834],[102.478645,33.075559],[102.478596,33.075299],[102.478548,33.075038],[102.478502,33.074634],[102.478427,33.074325],[102.478354,33.074104],[102.478281,33.073883],[102.478208,33.073662],[102.478135,33.073441],[102.478062,33.07322],[102.477988,33.072999],[102.477907,33.07279],[102.477826,33.07258],[102.477745,33.07237],[102.477664,33.07216],[102.477582,33.071951],[102.477501,33.071741],[102.47742,33.071531],[102.477339,33.071321],[102.477257,33.071111],[102.477176,33.070902],[102.477092,33.070676],[102.477007,33.070449],[102.476923,33.070223],[102.476839,33.069997],[102.476755,33.069771],[102.47667,33.069545],[102.476586,33.069319],[102.476502,33.069093],[102.476417,33.068867],[102.476333,33.068641],[102.47625,33.068381],[102.476167,33.06812],[102.476084,33.06786],[102.476001,33.0676],[102.475918,33.06734],[102.475835,33.06708],[102.475752,33.066819],[102.475669,33.066559],[102.475586,33.066299],[102.475503,33.066039],[102.47542,33.065779],[102.475337,33.065518],[102.475254,33.065258],[102.475171,33.064998],[102.475042,33.064577],[102.474914,33.064157],[102.474785,33.063736],[102.474694,33.063427],[102.474604,33.063117],[102.474633,33.062859],[102.474662,33.0626],[102.474691,33.062341],[102.47472,33.062082],[102.474788,33.061843],[102.474856,33.061604],[102.474924,33.061364],[102.474992,33.061125],[102.47508,33.060812],[102.475292,33.060436],[102.475504,33.060061],[102.475702,33.059694],[102.475901,33.059327],[102.476099,33.05896],[102.476316,33.058571],[102.476533,33.058181],[102.476623,33.057788],[102.476713,33.057395],[102.476716,33.057121],[102.476719,33.056847],[102.476682,33.05653],[102.476644,33.056213],[102.476607,33.055896],[102.476555,33.055455],[102.476549,33.055064],[102.476543,33.054673],[102.476537,33.054282],[102.476531,33.05406],[102.476521,33.053734],[102.476511,33.053408],[102.476504,33.053084],[102.476496,33.052759],[102.476488,33.052435],[102.47642,33.052174],[102.476351,33.051913],[102.476291,33.051686],[102.476231,33.051459],[102.476115,33.051083],[102.475999,33.050706],[102.47598,33.050644],[102.475833,33.050356],[102.475686,33.050069],[102.47554,33.049781],[102.475349,33.049436],[102.475159,33.049091],[102.47512,33.048987],[102.474994,33.048655],[102.474868,33.048323],[102.474743,33.047991],[102.474637,33.047791],[102.474528,33.047586],[102.474291,33.047212],[102.474008,33.046911],[102.473725,33.046611],[102.473689,33.046536],[102.473642,33.046438],[102.473666,33.046212],[102.47366,33.045849],[102.473654,33.045486],[102.473688,33.045178],[102.473722,33.04487],[102.473749,33.044624],[102.473775,33.044255],[102.473801,33.043886],[102.473827,33.043517],[102.473828,33.043352],[102.47383,33.042991],[102.473833,33.042629],[102.473836,33.042267],[102.473838,33.041905],[102.473856,33.041537],[102.473904,33.041311],[102.474047,33.041067],[102.474172,33.040847],[102.474296,33.040626],[102.474499,33.040406],[102.474701,33.040186],[102.474826,33.039996],[102.474945,33.039764],[102.474998,33.039484],[102.475117,33.039223],[102.475177,33.039116],[102.475179,33.039109],[102.47519,33.03866],[102.475201,33.03829],[102.475211,33.03792],[102.475222,33.037549],[102.475261,33.037297],[102.475299,33.037044],[102.475338,33.036792],[102.475377,33.036539],[102.475416,33.036287],[102.475455,33.036034],[102.475493,33.035782],[102.475532,33.035529],[102.475574,33.035261],[102.475582,33.035207],[102.475637,33.03523],[102.476507,33.035744],[102.477346,33.03604],[102.478298,33.036277],[102.478923,33.036351],[102.478959,33.036352],[102.479841,33.036463],[102.480447,33.03719],[102.480949,33.037666],[102.481976,33.037842],[102.482808,33.038417],[102.483751,33.038964],[102.484244,33.03975],[102.484622,33.04072],[102.484898,33.041378],[102.485531,33.042477],[102.486396,33.043147],[102.487775,33.04392],[102.489316,33.044199],[102.490709,33.044015],[102.490944,33.043984],[102.492318,33.043639],[102.493072,33.043033],[102.494461,33.04216],[102.494835,33.040647],[102.495199,33.039536],[102.495965,33.038496],[102.497306,33.036691],[102.498087,33.035154],[102.499122,33.035051],[102.499675,33.035062],[102.500222,33.035185],[102.500546,33.035083],[102.501299,33.034557],[102.501858,33.034108],[102.502507,33.033851],[102.502766,33.033775],[102.503184,33.033756],[102.503601,33.033792],[102.504169,33.034128],[102.505439,33.034667],[102.506104,33.035005],[102.506864,33.035372],[102.507595,33.03563],[102.508559,33.035622],[102.509431,33.03545],[102.510549,33.035218],[102.511503,33.035064],[102.512043,33.035053],[102.512733,33.035197],[102.51329,33.035489],[102.513953,33.035654],[102.514969,33.036085],[102.515863,33.036276],[102.516349,33.036351],[102.517473,33.036568],[102.518386,33.036997],[102.519404,33.037342],[102.519916,33.037396],[102.522811,33.038062],[102.523696,33.038027],[102.524803,33.03817],[102.525561,33.038272],[102.526239,33.038286],[102.526871,33.038454],[102.527509,33.038449],[102.528049,33.038269],[102.528543,33.038227],[102.529272,33.037913],[102.530071,33.037407],[102.530795,33.036826],[102.531727,33.035888],[102.532038,33.03534],[102.532231,33.034928],[102.53248,33.034849],[102.532688,33.035034],[102.533093,33.035277],[102.533533,33.035438],[102.53399,33.035572],[102.534416,33.035636],[102.534951,33.035924],[102.535533,33.03631],[102.536001,33.036638],[102.537837,33.037931],[102.538575,33.038537],[102.539558,33.039192],[102.540183,33.039411],[102.540789,33.039719],[102.542123,33.040346],[102.543113,33.040937],[102.543737,33.041245],[102.544176,33.041431],[102.544879,33.041406],[102.545443,33.041338],[102.546175,33.041096],[102.54684,33.040735],[102.547299,33.040231],[102.54766,33.039864],[102.54839,33.039701],[102.549396,33.03972],[102.550049,33.039812],[102.550889,33.039908],[102.551708,33.039904],[102.553137,33.039853],[102.553888,33.039809],[102.554891,33.039927],[102.555916,33.040105],[102.556472,33.040293],[102.556985,33.040382],[102.557617,33.040375],[102.559062,33.04058],[102.559556,33.040511],[102.560478,33.040155],[102.561196,33.039597],[102.561634,33.038994],[102.561676,33.038325],[102.56179,33.037558],[102.561623,33.036826],[102.5616,33.035978],[102.561842,33.034839],[102.562602,33.033573],[102.563055,33.032418],[102.563595,33.030334],[102.563754,33.029327],[102.564152,33.027113],[102.564351,33.026233],[102.564996,33.024583],[102.565489,33.023014],[102.565268,33.022255],[102.564832,33.021152],[102.564503,33.019769],[102.564702,33.017414],[102.565032,33.016325],[102.565145,33.01585],[102.565203,33.015718],[102.565244,33.015624],[102.565393,33.015285],[102.565433,33.015195],[102.565508,33.015198],[102.565561,33.015211],[102.565608,33.015223],[102.565636,33.015245],[102.565658,33.015278],[102.565666,33.015309],[102.565667,33.01538],[102.565662,33.015432],[102.565642,33.015471],[102.565607,33.015517],[102.565605,33.01553],[102.565637,33.015558],[102.565684,33.01556],[102.565717,33.01555],[102.56577,33.01552],[102.565802,33.015493],[102.565852,33.015458],[102.565891,33.015428],[102.565952,33.015401],[102.566021,33.015384],[102.566053,33.015381],[102.566192,33.015377],[102.566269,33.015359],[102.566301,33.015328],[102.566314,33.015297],[102.566315,33.015268],[102.566298,33.01524],[102.566274,33.015213],[102.56634,33.015218],[102.566342,33.015157],[102.566316,33.015122],[102.566235,33.015069],[102.566174,33.015041],[102.56612,33.015038],[102.566059,33.015055],[102.565981,33.015083],[102.565927,33.015105],[102.565874,33.015116],[102.565848,33.015115],[102.565803,33.015099],[102.565774,33.015075],[102.56575,33.015037],[102.565722,33.014962],[102.56572,33.014955],[102.565709,33.014878],[102.565705,33.014794],[102.56569,33.014713],[102.565667,33.014665],[102.565623,33.014628],[102.565608,33.014616],[102.56554,33.014581],[102.565446,33.014556],[102.56541,33.014546],[102.56533,33.014531],[102.565257,33.014509],[102.565201,33.014488],[102.565159,33.014465],[102.565139,33.014437],[102.565127,33.014387],[102.56515,33.014316],[102.565187,33.014265],[102.56524,33.014238],[102.565273,33.014237],[102.56535,33.014261],[102.565421,33.01431],[102.565487,33.014334],[102.56553,33.014338],[102.565605,33.014317],[102.56566,33.01428],[102.565718,33.014212],[102.565756,33.014174],[102.565796,33.014128],[102.565832,33.014114],[102.565868,33.014113],[102.565929,33.014147],[102.566033,33.014201],[102.5661,33.014221],[102.566184,33.014236],[102.566269,33.01423],[102.566342,33.014224],[102.566406,33.014238],[102.566455,33.014276],[102.566501,33.01421],[102.56654,33.0142],[102.566559,33.014235],[102.566561,33.014264],[102.566558,33.014317],[102.566541,33.014371],[102.566525,33.01441],[102.566502,33.014452],[102.566472,33.014505],[102.566449,33.014539],[102.566419,33.014589],[102.566413,33.014636],[102.566427,33.014654],[102.566458,33.014667],[102.566533,33.01467],[102.566574,33.014662],[102.566625,33.014637],[102.566657,33.014613],[102.566684,33.014584],[102.56671,33.014548],[102.566742,33.014499],[102.566751,33.014475],[102.566762,33.014449],[102.566762,33.014384],[102.566753,33.014335],[102.566738,33.014279],[102.56672,33.014238],[102.566706,33.014202],[102.566684,33.014162],[102.566687,33.014128],[102.566694,33.014109],[102.56671,33.014092],[102.566746,33.014059],[102.566768,33.014035],[102.566794,33.014014],[102.566837,33.014003],[102.566886,33.014005],[102.56692,33.014019],[102.566961,33.014052],[102.566988,33.014081],[102.567028,33.014119],[102.567072,33.014156],[102.567113,33.014192],[102.567205,33.014274],[102.567256,33.014326],[102.567285,33.01437],[102.567332,33.014434],[102.567387,33.014464],[102.567442,33.014478],[102.567501,33.014482],[102.56754,33.014474],[102.567603,33.014452],[102.567646,33.014432],[102.567725,33.014424],[102.567768,33.014426],[102.567805,33.01443],[102.567845,33.01444],[102.56788,33.014448],[102.567914,33.014463],[102.567944,33.014481],[102.567966,33.014504],[102.567994,33.014572],[102.567994,33.014617],[102.567991,33.014652],[102.56796,33.014701],[102.567908,33.014749],[102.567853,33.014792],[102.567788,33.014833],[102.567713,33.014859],[102.567706,33.014862],[102.567675,33.014873],[102.567639,33.014903],[102.567637,33.014943],[102.567647,33.014967],[102.567668,33.014986],[102.567695,33.015012],[102.567728,33.015039],[102.567748,33.015072],[102.567799,33.015115],[102.567837,33.01514],[102.567889,33.015149],[102.567947,33.015145],[102.567987,33.015124],[102.568009,33.015103],[102.568033,33.015064],[102.568051,33.015022],[102.568057,33.01498],[102.56807,33.014907],[102.568073,33.01486],[102.568082,33.014828],[102.568115,33.014775],[102.568146,33.014746],[102.568178,33.014721],[102.568183,33.014718],[102.568234,33.01469],[102.568272,33.01468],[102.568333,33.01469],[102.568385,33.014721],[102.568425,33.014737],[102.568571,33.014829],[102.568597,33.014883],[102.568605,33.014951],[102.568596,33.015006],[102.568559,33.015057],[102.568512,33.015102],[102.568484,33.015122],[102.568456,33.015143],[102.568398,33.015176],[102.568353,33.015191],[102.568317,33.015215],[102.568267,33.015253],[102.568229,33.015291],[102.568249,33.015338],[102.568283,33.015382],[102.568316,33.015398],[102.56837,33.015403],[102.568408,33.015372],[102.568414,33.015368],[102.568466,33.015337],[102.568536,33.015276],[102.56859,33.015241],[102.568607,33.015225],[102.568662,33.01519],[102.568715,33.015156],[102.568759,33.015133],[102.568801,33.015106],[102.56884,33.015082],[102.568899,33.015046],[102.568917,33.015033],[102.569055,33.015019],[102.569089,33.015016],[102.569146,33.01501],[102.569426,33.014529],[102.569787,33.014311],[102.570199,33.014242],[102.57059,33.014177],[102.570725,33.014127],[102.570748,33.014119],[102.570984,33.014032],[102.571029,33.014015],[102.571149,33.013971],[102.571212,33.013973],[102.571312,33.013987],[102.571378,33.013999],[102.57148,33.014024],[102.57152,33.014066],[102.571586,33.014136],[102.571648,33.014213],[102.571679,33.014289],[102.571686,33.014315],[102.571705,33.014382],[102.571895,33.014331],[102.572006,33.014429],[102.571682,33.01491],[102.571574,33.015164],[102.571572,33.015169],[102.571586,33.01517],[102.57161,33.015172],[102.57163,33.015177],[102.571651,33.015183],[102.571701,33.015202],[102.571753,33.015256],[102.571792,33.015319],[102.571839,33.015361],[102.571897,33.015427],[102.571952,33.015495],[102.571989,33.015561],[102.571998,33.015576],[102.572005,33.015578],[102.57224,33.015632],[102.572479,33.015843],[102.57249,33.015853],[102.572602,33.015851],[102.572703,33.015863],[102.572802,33.015895],[102.572828,33.015924],[102.572855,33.015967],[102.572873,33.015994],[102.572882,33.016036],[102.572882,33.016083],[102.572857,33.016122],[102.572807,33.016178],[102.572758,33.016214],[102.572672,33.016248],[102.572706,33.016465],[102.572606,33.016875],[102.572569,33.016975],[102.572567,33.01698],[102.572514,33.017123],[102.57251,33.017135],[102.572587,33.017165],[102.572601,33.01717],[102.572818,33.017254],[102.573309,33.017151],[102.573531,33.017193],[102.573914,33.017799],[102.574333,33.018077],[102.574453,33.018156],[102.574533,33.01821],[102.574612,33.018262],[102.574703,33.018313],[102.575218,33.018598],[102.57523,33.018604],[102.575247,33.018595],[102.575282,33.018579],[102.575326,33.01858],[102.575384,33.01858],[102.57547,33.018581],[102.575537,33.018614],[102.57562,33.018684],[102.575653,33.018748],[102.575669,33.018787],[102.575929,33.018887],[102.576139,33.01934],[102.576176,33.019603],[102.576066,33.019799],[102.575989,33.019937],[102.57597,33.019953],[102.575993,33.019987],[102.57599,33.020037],[102.575967,33.020082],[102.575907,33.02015],[102.575843,33.020201],[102.575753,33.020236],[102.575708,33.020251],[102.57564,33.020246],[102.575625,33.020258],[102.575533,33.02034],[102.575489,33.020564],[102.575482,33.020602],[102.575479,33.020714],[102.575467,33.021125],[102.575115,33.021513],[102.575101,33.021529],[102.575107,33.021604],[102.575111,33.021674],[102.57511,33.021715],[102.575103,33.021787],[102.57509,33.021827],[102.575045,33.021888],[102.574983,33.021913],[102.574898,33.021918],[102.574812,33.021904],[102.574724,33.021856],[102.574624,33.021791],[102.574606,33.021779],[102.574594,33.021766],[102.57456,33.021781],[102.574404,33.021932],[102.574332,33.022001],[102.574501,33.022342],[102.574928,33.022949],[102.574919,33.023286],[102.574688,33.023618],[102.574313,33.024323],[102.574305,33.024612],[102.574305,33.024622],[102.574304,33.024659],[102.574358,33.024698],[102.574415,33.024738],[102.574522,33.024814],[102.574835,33.024745],[102.575447,33.024217],[102.575472,33.024195],[102.575488,33.024185],[102.575602,33.02411],[102.57565,33.024079],[102.57597,33.023868],[102.576169,33.023872],[102.576459,33.023878],[102.576574,33.024062],[102.576519,33.024115],[102.576576,33.024175],[102.576621,33.024138],[102.576672,33.024219],[102.576877,33.024822],[102.57682,33.025308],[102.577393,33.025468],[102.577466,33.025474],[102.577488,33.025476],[102.577502,33.025471],[102.577597,33.025435],[102.577719,33.025382],[102.577846,33.025382],[102.577993,33.025375],[102.578068,33.025354],[102.578151,33.0253],[102.578271,33.025223],[102.578381,33.025173],[102.578465,33.025182],[102.578554,33.02523],[102.578613,33.025312],[102.578625,33.025407],[102.578603,33.025482],[102.578573,33.025518],[102.578536,33.025544],[102.578459,33.025577],[102.578394,33.025597],[102.578412,33.025601],[102.578422,33.025619],[102.578624,33.025979],[102.578856,33.026539],[102.578865,33.026561],[102.578919,33.0266],[102.578967,33.026692],[102.578958,33.026736],[102.578945,33.026754],[102.578999,33.026885],[102.579209,33.027339],[102.579322,33.027438],[102.579386,33.027371],[102.579474,33.027289],[102.579553,33.027281],[102.579635,33.027288],[102.5797,33.027316],[102.579741,33.02735],[102.579766,33.027376],[102.579776,33.027395],[102.579781,33.027391],[102.579831,33.027351],[102.580229,33.027433],[102.580349,33.027715],[102.580365,33.027754],[102.580407,33.027851],[102.580409,33.027857],[102.580438,33.027924],[102.580833,33.028082],[102.58106,33.027936],[102.581295,33.027454],[102.5814,33.026857],[102.581564,33.02686],[102.581712,33.026863],[102.5818,33.026865],[102.581869,33.02692],[102.581881,33.026929],[102.581881,33.026973],[102.581879,33.027013],[102.581875,33.027071],[102.58188,33.027106],[102.581897,33.027129],[102.58193,33.027138],[102.582007,33.02714],[102.58206,33.027141],[102.582107,33.027138],[102.582137,33.027135],[102.582155,33.027137],[102.582207,33.027148],[102.582294,33.027218],[102.582492,33.027366],[102.58253,33.027407],[102.582562,33.027427],[102.582632,33.027511],[102.582682,33.027584],[102.582714,33.027629],[102.582759,33.027683],[102.582788,33.027724],[102.582816,33.027764],[102.582829,33.027774],[102.58285,33.027768],[102.582867,33.027746],[102.582872,33.027719],[102.582876,33.027658],[102.582875,33.027625],[102.582891,33.027635],[102.583036,33.0277],[102.583051,33.027706],[102.583154,33.027752],[102.583203,33.027803],[102.583413,33.028019],[102.583445,33.028507],[102.583558,33.028618],[102.58373,33.028787],[102.583777,33.028794],[102.583863,33.028828],[102.583938,33.028918],[102.584161,33.028982],[102.584225,33.029],[102.58454,33.02909],[102.58478,33.029044],[102.584898,33.029022],[102.585206,33.028996],[102.585243,33.028993],[102.585345,33.028985],[102.585759,33.028951],[102.585767,33.028951],[102.586011,33.028931],[102.586039,33.028928],[102.586204,33.028913],[102.586367,33.028897],[102.586502,33.028885],[102.586629,33.028873],[102.587086,33.02883],[102.587403,33.0288],[102.587423,33.028798],[102.58766,33.028776],[102.587814,33.028606],[102.588027,33.028371],[102.58808,33.028104],[102.588233,33.027326],[102.588196,33.027087],[102.588099,33.026455],[102.588082,33.02635],[102.587868,33.025627],[102.587867,33.025622],[102.587835,33.025516],[102.587821,33.025516],[102.587808,33.025504],[102.587795,33.025484],[102.587779,33.025436],[102.587752,33.025364],[102.587722,33.025307],[102.587693,33.025238],[102.587682,33.025154],[102.58767,33.025072],[102.587637,33.024948],[102.587601,33.024853],[102.587576,33.024778],[102.587537,33.024649],[102.587518,33.024537],[102.587511,33.024436],[102.587522,33.02426],[102.587533,33.02416],[102.587567,33.024012],[102.587602,33.023894],[102.58767,33.023781],[102.587689,33.023667],[102.587717,33.023529],[102.587717,33.023498],[102.587708,33.023479],[102.587684,33.023436],[102.587651,33.023372],[102.587611,33.0233],[102.587566,33.023207],[102.587534,33.023077],[102.587502,33.022953],[102.587477,33.022865],[102.587484,33.022815],[102.587525,33.022743],[102.587584,33.022693],[102.587663,33.022666],[102.587759,33.022624],[102.587813,33.022599],[102.587852,33.022603],[102.587872,33.022622],[102.587871,33.022651],[102.587857,33.022688],[102.587833,33.022713],[102.587836,33.022727],[102.587852,33.022736],[102.587876,33.022744],[102.587911,33.02274],[102.587944,33.02273],[102.587992,33.022703],[102.588098,33.022645],[102.588169,33.022586],[102.5882,33.022549],[102.5882,33.02253],[102.588183,33.02251],[102.588143,33.022492],[102.588106,33.022475],[102.588079,33.022449],[102.588085,33.022421],[102.5881,33.022403],[102.588144,33.022386],[102.588218,33.022382],[102.588312,33.022383],[102.588379,33.022393],[102.588426,33.022415],[102.588438,33.022402],[102.588579,33.022258],[102.58907,33.022159],[102.589152,33.022143],[102.589212,33.022163],[102.589334,33.022195],[102.589411,33.022213],[102.589576,33.022218],[102.589647,33.022218],[102.589704,33.022208],[102.589786,33.022188],[102.589907,33.022161],[102.590051,33.02212],[102.590142,33.022091],[102.590266,33.02204],[102.590511,33.021851],[102.591144,33.021708],[102.591161,33.021702],[102.591167,33.021699],[102.591902,33.021417],[102.592401,33.021225],[102.593002,33.020995],[102.59303,33.020981],[102.5936,33.020705],[102.593784,33.020616],[102.594183,33.020423],[102.594985,33.020034],[102.595286,33.019805],[102.595949,33.019299],[102.596136,33.019157],[102.596736,33.018017],[102.596761,33.017969],[102.596793,33.017892],[102.596987,33.017422],[102.597047,33.017276],[102.59709,33.01717],[102.597085,33.017167],[102.597084,33.017153],[102.597096,33.017099],[102.597126,33.01699],[102.597157,33.016801],[102.597174,33.016722],[102.597173,33.016653],[102.597178,33.016596],[102.597201,33.016546],[102.597226,33.016476],[102.597221,33.016398],[102.597217,33.016297],[102.597218,33.016187],[102.597169,33.015997],[102.597145,33.015832],[102.597124,33.015689],[102.597101,33.015493],[102.597057,33.015335],[102.597028,33.015083],[102.596998,33.014977],[102.596958,33.014857],[102.59689,33.014527],[102.596855,33.014254],[102.5968,33.013921],[102.596793,33.01388],[102.59678,33.013734],[102.596735,33.013516],[102.596723,33.013455],[102.596676,33.01334],[102.596637,33.01322],[102.596618,33.013132],[102.596619,33.012985],[102.5966,33.012861],[102.596583,33.012755],[102.596582,33.012722],[102.596587,33.01271],[102.596602,33.012707],[102.596501,33.012145],[102.596487,33.012067],[102.596486,33.012062],[102.596409,33.011956],[102.596377,33.011896],[102.596351,33.011828],[102.596329,33.011745],[102.596306,33.01165],[102.596279,33.011572],[102.596241,33.01145],[102.596222,33.011359],[102.596203,33.01129],[102.596194,33.0112],[102.596176,33.011106],[102.596159,33.011058],[102.596128,33.011012],[102.596117,33.010984],[102.596114,33.010931],[102.596111,33.010826],[102.596103,33.010737],[102.596067,33.010644],[102.596038,33.010551],[102.59602,33.010378],[102.596016,33.010342],[102.595964,33.009979],[102.595842,33.009421],[102.59581,33.00918],[102.595808,33.009091],[102.595796,33.008998],[102.595795,33.008862],[102.595803,33.00879],[102.595822,33.008722],[102.595851,33.008616],[102.595873,33.00855],[102.595979,33.008387],[102.596019,33.008347],[102.596058,33.00829],[102.596133,33.008224],[102.596165,33.008181],[102.59621,33.008151],[102.596247,33.008125],[102.596271,33.008089],[102.596302,33.00806],[102.596341,33.008054],[102.596361,33.008056],[102.596374,33.008063],[102.596502,33.007872],[102.597201,33.007266],[102.597291,33.007188],[102.597632,33.006829],[102.597681,33.006776],[102.597774,33.006678],[102.597988,33.006453],[102.598268,33.006157],[102.598568,33.005621],[102.598841,33.005135],[102.599175,33.004538],[102.599514,33.003933],[102.599699,33.003498],[102.599772,33.003328],[102.599868,33.003102],[102.600175,33.002382],[102.600288,33.002117],[102.600337,33.002],[102.600242,33.001836],[102.600198,33.001761],[102.599949,33.00133],[102.599487,33.000535],[102.599261,32.999641],[102.599114,32.999063],[102.599064,32.998867],[102.599032,32.998739],[102.599097,32.998698],[102.598982,32.998588],[102.598888,32.998445],[102.598769,32.998313],[102.597865,32.996847],[102.597802,32.996745],[102.597653,32.996432],[102.597535,32.996184],[102.59753,32.996173],[102.597496,32.996102],[102.597438,32.99598],[102.597539,32.995619],[102.597571,32.995504],[102.597736,32.995108],[102.597751,32.994957],[102.597837,32.994828],[102.597933,32.994676],[102.597978,32.994587],[102.59798,32.994457],[102.597985,32.994385],[102.597985,32.994376],[102.598043,32.994268],[102.598142,32.994094],[102.598145,32.994089],[102.598198,32.994014],[102.5982,32.99401],[102.598241,32.993894],[102.598252,32.99382],[102.598252,32.993758],[102.59824,32.993684],[102.598225,32.993622],[102.598197,32.993556],[102.598165,32.993482],[102.598135,32.993447],[102.598473,32.99306],[102.598643,32.992707],[102.598882,32.99221],[102.599116,32.991723],[102.599161,32.991631],[102.59971,32.991318],[102.599707,32.991307],[102.599715,32.991277],[102.599762,32.991106],[102.5998,32.991002],[102.599868,32.990857],[102.599935,32.990717],[102.600071,32.990565],[102.600144,32.990448],[102.600212,32.990406],[102.600289,32.990359],[102.600339,32.990322],[102.600399,32.990296],[102.600477,32.990284],[102.600506,32.990336],[102.600635,32.990232],[102.601333,32.989671],[102.60139,32.989583],[102.60146,32.989478],[102.601489,32.989433],[102.601541,32.989354],[102.601927,32.988769],[102.602002,32.988656],[102.602137,32.988388],[102.602371,32.987928],[102.602399,32.987871],[102.602545,32.987584],[102.602738,32.986789],[102.60284,32.986373],[102.602852,32.986324],[102.602978,32.985807],[102.60364,32.985062],[102.603682,32.98503],[102.603843,32.984905],[102.604081,32.984722],[102.604093,32.984712],[102.604134,32.984681],[102.604552,32.984358],[102.60496,32.984044],[102.605213,32.983848],[102.605268,32.983813],[102.606012,32.983334],[102.606602,32.982955],[102.607282,32.982517],[102.607396,32.982444],[102.6075,32.982377],[102.607528,32.982322],[102.607575,32.982231],[102.607727,32.981937],[102.607807,32.981784],[102.607811,32.981776],[102.607824,32.98175],[102.607817,32.981747],[102.607814,32.981738],[102.607814,32.981721],[102.607797,32.981674],[102.607784,32.981641],[102.607752,32.981596],[102.607727,32.981564],[102.607714,32.981534],[102.607699,32.981491],[102.607691,32.981449],[102.607691,32.981409],[102.607697,32.981342],[102.60771,32.981293],[102.607782,32.981204],[102.607824,32.98115],[102.60785,32.981107],[102.607863,32.981065],[102.607859,32.981006],[102.607853,32.980936],[102.607853,32.980869],[102.607853,32.980823],[102.607876,32.980759],[102.6079,32.980714],[102.607973,32.980628],[102.608028,32.980565],[102.608067,32.980495],[102.608097,32.980417],[102.608111,32.980371],[102.608148,32.980306],[102.608179,32.980261],[102.608216,32.980212],[102.608255,32.98014],[102.608276,32.980093],[102.608318,32.980065],[102.608326,32.980026],[102.60836,32.979838],[102.608452,32.979338],[102.608634,32.978352],[102.608636,32.978341],[102.608683,32.978282],[102.609001,32.977883],[102.609661,32.977056],[102.609699,32.977009],[102.610059,32.976693],[102.610081,32.976673],[102.610133,32.976627],[102.611094,32.975783],[102.611145,32.975738],[102.61265,32.974684],[102.612817,32.973998],[102.612939,32.9735],[102.612956,32.972851],[102.612603,32.972121],[102.612486,32.971878],[102.612348,32.971595],[102.612087,32.971478],[102.611207,32.971086],[102.611063,32.971029],[102.609539,32.970427],[102.609448,32.970391],[102.609047,32.970233],[102.609021,32.970216],[102.608589,32.969944],[102.608164,32.969675],[102.60807,32.969515],[102.608028,32.969443],[102.607989,32.969376],[102.60784,32.969122],[102.607427,32.968416],[102.607465,32.968105],[102.60747,32.968069],[102.607479,32.967994],[102.607494,32.967873],[102.607592,32.967067],[102.608788,32.965575],[102.609314,32.96527],[102.609357,32.965245],[102.609366,32.965239],[102.609626,32.965088],[102.609643,32.965079],[102.609676,32.96506],[102.609724,32.965032],[102.609961,32.964894],[102.610591,32.964906],[102.610987,32.964914],[102.611173,32.964917],[102.611051,32.964849],[102.611023,32.964837],[102.611,32.964814],[102.611003,32.96479],[102.611042,32.964775],[102.611113,32.964775],[102.611178,32.964775],[102.611226,32.964791],[102.611283,32.964827],[102.611354,32.964876],[102.611411,32.964929],[102.611433,32.964949],[102.611508,32.964992],[102.611579,32.965007],[102.611763,32.964986],[102.611856,32.964984],[102.611934,32.964987],[102.61198,32.964988],[102.612054,32.964968],[102.612068,32.964969],[102.612279,32.964982],[102.612445,32.964992],[102.612526,32.964997],[102.613554,32.964913],[102.614134,32.964866],[102.6142,32.964794],[102.614205,32.96479],[102.614255,32.964736],[102.614498,32.964475],[102.614554,32.964459],[102.61458,32.964406],[102.614576,32.96435],[102.614576,32.964278],[102.614606,32.964203],[102.614633,32.964126],[102.614661,32.964044],[102.614694,32.963962],[102.614731,32.963871],[102.614782,32.963811],[102.614795,32.96374],[102.614801,32.963688],[102.614816,32.963624],[102.614839,32.963528],[102.614901,32.963397],[102.614914,32.963326],[102.614924,32.963263],[102.61495,32.963164],[102.614992,32.963075],[102.614993,32.963056],[102.614996,32.963009],[102.615004,32.962926],[102.615008,32.96285],[102.615013,32.962764],[102.615004,32.962685],[102.61501,32.962636],[102.615045,32.962578],[102.615087,32.962527],[102.615101,32.96249],[102.615068,32.962424],[102.61506,32.962364],[102.615063,32.962228],[102.615074,32.962184],[102.61514,32.962163],[102.615175,32.962145],[102.615148,32.962077],[102.615143,32.962032],[102.615145,32.961999],[102.615167,32.961966],[102.615228,32.961926],[102.615258,32.961906],[102.615264,32.961873],[102.61569,32.962006],[102.615704,32.962011],[102.615916,32.962077],[102.615949,32.962087],[102.61794,32.962709],[102.618418,32.962804],[102.618494,32.962819],[102.619296,32.962979],[102.619415,32.963002],[102.619534,32.963026],[102.619545,32.963028],[102.619898,32.963098],[102.621186,32.963584],[102.621599,32.963739],[102.621695,32.963776],[102.621943,32.963869],[102.62215,32.963947],[102.622206,32.963968],[102.622228,32.963976],[102.622259,32.963988],[102.622854,32.964212],[102.624804,32.965004],[102.625129,32.96511],[102.62515,32.965116],[102.625202,32.965133],[102.625251,32.965149],[102.625517,32.965235],[102.625633,32.965272],[102.627837,32.965465],[102.628738,32.965587],[102.629563,32.965699],[102.631407,32.965986],[102.633611,32.965652],[102.635503,32.965123],[102.637224,32.964289],[102.638671,32.963675],[102.640033,32.962872],[102.641353,32.961992],[102.642505,32.960695],[102.643612,32.959435],[102.644205,32.958994],[102.644971,32.958744],[102.645697,32.958343],[102.646026,32.957747],[102.647238,32.957543],[102.649124,32.95724],[102.650025,32.956955],[102.651058,32.956786],[102.652834,32.957234],[102.653898,32.957593],[102.655903,32.95782],[102.657777,32.957968],[102.658295,32.958001],[102.65869,32.958026],[102.659473,32.958075],[102.661343,32.958374],[102.66317,32.958597],[102.664637,32.958888],[102.665795,32.95906],[102.66674,32.958814],[102.667381,32.958529],[102.668662,32.960426],[102.669856,32.962223],[102.670758,32.962785],[102.672389,32.964408],[102.673007,32.965511],[102.673966,32.965984],[102.676001,32.966568],[102.677882,32.966876],[102.678521,32.967068],[102.678685,32.967118],[102.680498,32.96797],[102.681946,32.968316],[102.68301,32.968881],[102.683574,32.970029],[102.683979,32.971037],[102.684403,32.973411],[102.685128,32.974561],[102.685795,32.975893],[102.686783,32.977321],[102.687721,32.978612],[102.688071,32.979665],[102.689113,32.981094],[102.690873,32.9819],[102.692481,32.982339],[102.693452,32.982357],[102.694762,32.98179],[102.695747,32.981262],[102.695866,32.981138],[102.695949,32.981122],[102.69608,32.981094],[102.696233,32.98102],[102.696396,32.98088],[102.696599,32.98065],[102.696966,32.980321],[102.697073,32.980172],[102.697083,32.98012],[102.697123,32.98001],[102.697098,32.979899],[102.697029,32.979737],[102.697309,32.97929],[102.697858,32.978936],[102.698725,32.978816],[102.699548,32.978648],[102.699627,32.978666],[102.699777,32.978697],[102.700037,32.978715],[102.700187,32.978722],[102.700314,32.978727],[102.700434,32.978724],[102.700581,32.978702],[102.70066,32.97867],[102.700754,32.978623],[102.700955,32.978536],[102.701082,32.978495],[102.701226,32.978445],[102.701421,32.978385],[102.701515,32.978352],[102.701665,32.978326],[102.701746,32.97832],[102.701882,32.978319],[102.701913,32.978323],[102.702012,32.978316],[102.703087,32.978242],[102.703451,32.978201],[102.703688,32.978167],[102.703748,32.978161],[102.704193,32.97812],[102.704448,32.978073],[102.704826,32.978018],[102.705015,32.978002],[102.705063,32.977983],[102.705176,32.977944],[102.705261,32.977908],[102.705345,32.977862],[102.705402,32.977816],[102.705455,32.977756],[102.705514,32.977692],[102.705592,32.977591],[102.705654,32.977498],[102.705701,32.977438],[102.705777,32.977349],[102.705929,32.977236],[102.706028,32.977181],[102.706146,32.977142],[102.706271,32.977108],[102.706395,32.977078],[102.706595,32.977039],[102.706776,32.976986],[102.706875,32.97694],[102.706993,32.976875],[102.7071,32.976786],[102.707246,32.976649],[102.707364,32.976534],[102.707446,32.976455],[102.707496,32.97638],[102.707563,32.976304],[102.707645,32.97626],[102.707797,32.976183],[102.707851,32.97613],[102.70789,32.976049],[102.70794,32.975956],[102.708021,32.975874],[102.708083,32.975847],[102.708153,32.975752],[102.708215,32.975644],[102.708262,32.97557],[102.708321,32.975493],[102.708383,32.975431],[102.708473,32.975335],[102.708599,32.975219],[102.708675,32.975162],[102.708742,32.975111],[102.708855,32.975044],[102.708968,32.975],[102.709075,32.974973],[102.7092,32.974968],[102.709358,32.974967],[102.709545,32.975005],[102.70956,32.975008],[102.709755,32.97507],[102.709911,32.975114],[102.710064,32.975178],[102.710224,32.975261],[102.710373,32.97535],[102.710505,32.975432],[102.710686,32.975545],[102.71072,32.975526],[102.7109,32.975471],[102.711006,32.975453],[102.711225,32.975434],[102.711476,32.975414],[102.711653,32.975396],[102.711836,32.975377],[102.71196,32.975352],[102.71213,32.975309],[102.712468,32.975191],[102.712683,32.975071],[102.712852,32.97495],[102.713024,32.97483],[102.713334,32.974629],[102.713465,32.974586],[102.713638,32.974546],[102.713804,32.974495],[102.714033,32.974407],[102.714198,32.974334],[102.714286,32.974262],[102.714346,32.974178],[102.714388,32.974089],[102.714387,32.974044],[102.714425,32.973969],[102.714527,32.973873],[102.714594,32.973861],[102.714697,32.973869],[102.714828,32.973904],[102.714963,32.973957],[102.715048,32.974001],[102.715319,32.974173],[102.715432,32.974247],[102.715685,32.974424],[102.715777,32.974477],[102.715951,32.974551],[102.716065,32.974607],[102.716239,32.974666],[102.716452,32.974739],[102.716675,32.974797],[102.716814,32.974844],[102.71697,32.974912],[102.717108,32.974968],[102.717218,32.975006],[102.717499,32.975141],[102.717655,32.975236],[102.717801,32.975354],[102.717933,32.975476],[102.718022,32.975586],[102.71819,32.975776],[102.71824,32.975859],[102.718309,32.975966],[102.718401,32.976016],[102.718468,32.976039],[102.718649,32.976068],[102.718776,32.976068],[102.718918,32.976058],[102.719013,32.976066],[102.719176,32.976113],[102.719279,32.97616],[102.719386,32.976219],[102.719532,32.976287],[102.719667,32.976334],[102.719759,32.976366],[102.719823,32.976401],[102.719858,32.976449],[102.719887,32.976517],[102.719902,32.976604],[102.719917,32.976684],[102.719931,32.976726],[102.719953,32.97675],[102.720045,32.976809],[102.72012,32.976841],[102.720233,32.976873],[102.720347,32.976896],[102.720489,32.976955],[102.720574,32.977035],[102.720646,32.977139],[102.72075,32.977303],[102.7208,32.977377],[102.720875,32.977466],[102.720936,32.977522],[102.721003,32.977576],[102.721106,32.977641],[102.721164,32.977697],[102.721189,32.97775],[102.721189,32.977813],[102.721188,32.977826],[102.721282,32.977901],[102.721369,32.977982],[102.721563,32.978086],[102.721599,32.978114],[102.721593,32.978136],[102.721591,32.978159],[102.721591,32.97819],[102.721607,32.978197],[102.721657,32.978226],[102.721664,32.97826],[102.72168,32.978298],[102.721687,32.978327],[102.721706,32.97834],[102.72176,32.97834],[102.721801,32.978332],[102.721843,32.978325],[102.721848,32.978324],[102.721873,32.978343],[102.721873,32.978358],[102.721871,32.978381],[102.721851,32.978402],[102.721845,32.978421],[102.721874,32.978432],[102.721924,32.978432],[102.721936,32.97843],[102.721995,32.978499],[102.722054,32.978557],[102.722056,32.97858],[102.722057,32.978607],[102.72205,32.978643],[102.722039,32.978682],[102.722023,32.978703],[102.722008,32.978724],[102.72199,32.978733],[102.72196,32.978739],[102.721949,32.978745],[102.721965,32.978768],[102.721986,32.978785],[102.722008,32.978806],[102.722027,32.978829],[102.722028,32.978843],[102.722032,32.978871],[102.722016,32.97888],[102.721986,32.97888],[102.721974,32.978862],[102.721961,32.978842],[102.721941,32.978816],[102.721918,32.978793],[102.72189,32.978782],[102.721823,32.97878],[102.721771,32.978788],[102.721721,32.978794],[102.721712,32.978813],[102.721737,32.978828],[102.72176,32.978861],[102.721773,32.97887],[102.721776,32.978873],[102.721713,32.978899],[102.721774,32.978931],[102.721718,32.978952],[102.7216,32.978993],[102.7216,32.978999],[102.721602,32.979054],[102.721838,32.980377],[102.721906,32.981925],[102.722161,32.982521],[102.723982,32.983055],[102.726878,32.98379],[102.72754,32.983958],[102.727843,32.984035],[102.729457,32.984246],[102.730261,32.984443],[102.730849,32.984681],[102.730877,32.98523],[102.73089,32.985484],[102.730894,32.985565],[102.730902,32.985731],[102.730921,32.986092],[102.73105,32.987368],[102.731337,32.988351],[102.731398,32.988557],[102.73255,32.989943],[102.73399,32.990606],[102.734674,32.991301],[102.735613,32.992591],[102.736182,32.993557],[102.737294,32.994396],[102.739037,32.995883],[102.740258,32.996724],[102.741226,32.996832],[102.741881,32.996571],[102.741919,32.995071],[102.742054,32.994027],[102.74248,32.993057],[102.742569,32.992854],[102.743522,32.991461],[102.743771,32.990192],[102.744401,32.988747],[102.744713,32.98707],[102.74496,32.985846],[102.74509,32.984984],[102.745489,32.984173],[102.745726,32.983313],[102.745721,32.981402],[102.74575,32.980266],[102.746421,32.979322],[102.747383,32.977566],[102.748527,32.976023],[102.748573,32.97596],[102.748677,32.97582],[102.748602,32.975817],[102.748514,32.975799],[102.748427,32.975771],[102.748302,32.97573],[102.74822,32.975692],[102.748206,32.975637],[102.748201,32.975555],[102.748229,32.975442],[102.748291,32.975306],[102.748423,32.975139],[102.748536,32.975063],[102.748577,32.975041],[102.74874,32.974867],[102.748886,32.974742],[102.749074,32.974619],[102.749236,32.974514],[102.749238,32.974513],[102.749338,32.974456],[102.749484,32.974377],[102.749566,32.974292],[102.74959,32.974253],[102.749638,32.974219],[102.74975,32.9742],[102.749773,32.974205],[102.749867,32.974226],[102.749954,32.974109],[102.752386,32.971833],[102.753006,32.97119],[102.753331,32.970853],[102.754014,32.970145],[102.754325,32.969821],[102.755924,32.968485],[102.756612,32.967712],[102.756631,32.967691],[102.75665,32.96767],[102.756662,32.967656],[102.756709,32.967604],[102.756723,32.967588],[102.756737,32.967572],[102.756973,32.967307],[102.756987,32.967291],[102.757178,32.967077],[102.757175,32.967062],[102.757137,32.966989],[102.7571,32.966894],[102.7571,32.966864],[102.757109,32.966842],[102.757133,32.966819],[102.757146,32.966812],[102.757174,32.966812],[102.757209,32.966816],[102.757316,32.96684],[102.757377,32.966849],[102.757429,32.966861],[102.757473,32.966848],[102.757499,32.966829],[102.757519,32.966804],[102.757526,32.966782],[102.757538,32.966744],[102.757537,32.966673],[102.757706,32.966483],[102.757757,32.966426],[102.758814,32.965171],[102.759517,32.964523],[102.759649,32.9644],[102.759974,32.9641],[102.760814,32.962887],[102.76097,32.962704],[102.76101,32.962656],[102.762149,32.961319],[102.764134,32.959673],[102.764298,32.959538],[102.76462,32.959262],[102.766063,32.958023],[102.767549,32.956867],[102.768272,32.955942],[102.768497,32.955655],[102.768538,32.955606],[102.768894,32.955187],[102.769094,32.954952],[102.769219,32.954804],[102.769561,32.954415],[102.769858,32.954077],[102.770164,32.953729],[102.770371,32.953438],[102.770611,32.9531],[102.77083,32.953415],[102.771028,32.953699],[102.77153,32.953991],[102.771908,32.95421],[102.772304,32.954447],[102.77269,32.954674],[102.773048,32.954872],[102.773346,32.955001],[102.773607,32.955113],[102.773923,32.955249],[102.774347,32.955432],[102.77481,32.955632],[102.775093,32.955812],[102.775548,32.956102],[102.775941,32.956354],[102.77635,32.956614],[102.776161,32.958036],[102.776151,32.958112],[102.776143,32.958432],[102.776118,32.959431],[102.776114,32.959593],[102.776077,32.961067],[102.776039,32.962568],[102.776066,32.96366],[102.776523,32.964805],[102.77741,32.966004],[102.77878,32.967302],[102.779723,32.968456],[102.781472,32.969715],[102.786111,32.971981],[102.787012,32.972634],[102.788022,32.973243],[102.789142,32.973764],[102.789884,32.974323],[102.791195,32.975847],[102.792179,32.977502],[102.792915,32.978288],[102.794242,32.979176],[102.795519,32.979927],[102.796524,32.980763],[102.798027,32.981063],[102.799009,32.98067],[102.80048,32.980105],[102.801797,32.979218],[102.801875,32.979166],[102.802073,32.979035],[102.803059,32.978376],[102.804862,32.977498],[102.805465,32.977145],[102.806382,32.977161],[102.807907,32.976597],[102.809487,32.975987],[102.810955,32.975558],[102.811809,32.975937],[102.813195,32.976644],[102.814265,32.977026],[102.815819,32.977463],[102.816384,32.977446],[102.817384,32.976424],[102.817708,32.976191],[102.818462,32.975606],[102.819401,32.974725],[102.820127,32.974064],[102.820311,32.973953],[102.820849,32.973626],[102.821336,32.973013],[102.821793,32.972472],[102.822168,32.971681],[102.822274,32.971483],[102.822335,32.971369],[102.822974,32.970174],[102.823218,32.969968],[102.823477,32.96975],[102.823699,32.969563],[102.824126,32.96954],[102.82438,32.969525],[102.826164,32.970354],[102.827426,32.97075],[102.828182,32.971287],[102.829415,32.971683],[102.830507,32.971776],[102.831339,32.971641],[102.832757,32.971716],[102.833971,32.971687],[102.835834,32.971694],[102.837553,32.971574],[102.839267,32.971268],[102.839335,32.971256],[102.84064,32.971129],[102.841619,32.971021],[102.84238,32.971334],[102.84263,32.97147],[102.842919,32.97144],[102.843118,32.971444],[102.843218,32.971431],[102.843486,32.971518],[102.843563,32.97156],[102.84357,32.971563],[102.843797,32.971686],[102.843972,32.971822],[102.844076,32.971876],[102.844129,32.971926],[102.84419,32.971994],[102.844191,32.972072],[102.844142,32.972126],[102.844075,32.972171],[102.843972,32.972247],[102.843996,32.972277],[102.844927,32.973424],[102.845412,32.975118],[102.84538,32.976404],[102.845782,32.977209],[102.845784,32.977216],[102.84612,32.978163],[102.846225,32.978459],[102.846324,32.978653],[102.846332,32.978669],[102.846525,32.979047],[102.846553,32.979101],[102.846727,32.979443],[102.846785,32.980114],[102.846813,32.980434],[102.846845,32.980817],[102.846856,32.980936],[102.846892,32.981354],[102.847113,32.983087],[102.847091,32.983208],[102.847085,32.983243],[102.847078,32.983278],[102.847073,32.983306],[102.847006,32.983679],[102.847003,32.983697],[102.846999,32.983722],[102.846965,32.983908],[102.84693,32.984104],[102.846533,32.985295],[102.846467,32.985599],[102.846456,32.985653],[102.846456,32.985653],[102.846356,32.986117],[102.846309,32.986335],[102.846295,32.9864],[102.846271,32.986698],[102.846121,32.988511],[102.846126,32.98858],[102.84622,32.988564],[102.846298,32.988564],[102.846337,32.988587],[102.84637,32.988697],[102.846336,32.988793],[102.84629,32.988838],[102.846149,32.988913],[102.846226,32.989992],[102.846212,32.990035],[102.846145,32.990243],[102.84577,32.991403],[102.845761,32.991448],[102.845653,32.991957],[102.845557,32.992407],[102.845532,32.992523],[102.84578,32.993888],[102.846594,32.995025],[102.848012,32.998625],[102.84811,32.998776],[102.848335,32.999122],[102.848353,32.99915],[102.848753,32.999765],[102.848992,33.000135],[102.849273,33.000567],[102.849408,33.000739],[102.84943,33.000767],[102.849431,33.000768],[102.849522,33.000883],[102.849565,33.000939],[102.849953,33.001413],[102.849954,33.001414],[102.84996,33.001421],[102.850149,33.001653],[102.850544,33.003383],[102.850866,33.003953],[102.850895,33.004014],[102.851009,33.004252],[102.851248,33.00475],[102.851266,33.004823],[102.851285,33.004902],[102.851583,33.006139],[102.851562,33.007013],[102.851312,33.00763],[102.850754,33.008552],[102.850632,33.008782],[102.850449,33.008855],[102.850304,33.008986],[102.850136,33.009268],[102.850107,33.009517],[102.850117,33.009651],[102.850162,33.009757],[102.84989,33.01102],[102.849655,33.012427],[102.849572,33.013075],[102.849761,33.013586],[102.851089,33.014291],[102.85133,33.014245],[102.852178,33.014483],[102.852586,33.014663],[102.853221,33.01522],[102.853395,33.015513],[102.85453,33.016079],[102.85455,33.016089],[102.854623,33.016126],[102.855511,33.016434],[102.855534,33.016442],[102.855541,33.016445],[102.855544,33.016446],[102.855579,33.016458],[102.855598,33.016465],[102.856308,33.016712],[102.856349,33.016726],[102.857779,33.017224],[102.858539,33.017689],[102.858594,33.018169],[102.858102,33.01912],[102.857836,33.019781],[102.857759,33.01997],[102.857639,33.02027],[102.85701,33.021331],[102.856625,33.022002],[102.856544,33.022593],[102.85659,33.023469],[102.857227,33.024806],[102.857501,33.025968],[102.857282,33.026698],[102.856808,33.02827],[102.856445,33.02945],[102.856091,33.030234],[102.855469,33.030985],[102.854791,33.03134],[102.854443,33.031842],[102.854085,33.032796],[102.853801,33.034173],[102.85374,33.034468],[102.853592,33.035186],[102.853084,33.036786],[102.852846,33.038278],[102.852891,33.039182],[102.852986,33.04082],[102.852059,33.044501],[102.851659,33.045792],[102.851163,33.046885],[102.85111,33.04701],[102.851068,33.04711],[102.850947,33.047394],[102.850701,33.047977],[102.850368,33.049242],[102.850289,33.049748],[102.849892,33.050927],[102.849238,33.051621],[102.848508,33.052709],[102.848225,33.053325],[102.847498,33.054272],[102.846876,33.055023],[102.846806,33.056518],[102.846591,33.057107],[102.846445,33.057584],[102.845688,33.058389],[102.845335,33.059145],[102.845546,33.060108],[102.84563,33.060759],[102.84601,33.061697],[102.846066,33.062149],[102.84569,33.062453],[102.845547,33.062818],[102.844961,33.063485],[102.843901,33.064313],[102.843883,33.065075],[102.844117,33.066462],[102.844119,33.066488],[102.844189,33.06762],[102.844198,33.067669],[102.844589,33.069865],[102.844711,33.07062],[102.844725,33.070707],[102.84485,33.071477],[102.845118,33.072038],[102.845204,33.072041],[102.845242,33.072058],[102.845263,33.072102],[102.845273,33.072178],[102.845272,33.072264],[102.845259,33.072336],[102.845459,33.073577],[102.845469,33.073643],[102.8455,33.073836],[102.845496,33.073923],[102.845548,33.073897],[102.845582,33.073888],[102.845607,33.073897],[102.845605,33.073935],[102.845592,33.073981],[102.845563,33.07405],[102.845532,33.074119],[102.845519,33.074188],[102.84552,33.074258],[102.845527,33.074306],[102.845541,33.074363],[102.845541,33.074403],[102.845535,33.074447],[102.845517,33.07448],[102.845469,33.074509],[102.845455,33.074811],[102.845218,33.075529],[102.845265,33.075541],[102.845276,33.075575],[102.84528,33.075629],[102.845258,33.075685],[102.845243,33.075728],[102.845203,33.075757],[102.845141,33.075762],[102.84501,33.076158],[102.845079,33.076199],[102.845103,33.076236],[102.845115,33.076287],[102.845117,33.076336],[102.845099,33.076369],[102.845065,33.076391],[102.845031,33.0764],[102.844994,33.076401],[102.844935,33.07639],[102.844671,33.077231],[102.84467,33.077303],[102.844669,33.077341],[102.844646,33.078265],[102.844645,33.078323],[102.844641,33.07835],[102.844578,33.07883],[102.844569,33.078895],[102.844506,33.079376],[102.84443,33.079385],[102.844382,33.079401],[102.844495,33.079459],[102.844487,33.079513],[102.844508,33.079591],[102.84451,33.079602],[102.844512,33.07961],[102.844514,33.079618],[102.844559,33.079789],[102.844655,33.080159],[102.84525,33.080499],[102.845257,33.080503],[102.845298,33.080522],[102.845361,33.080552],[102.845363,33.080553],[102.845381,33.080562],[102.845398,33.080569],[102.845445,33.080591],[102.846283,33.080984],[102.846558,33.081086],[102.847221,33.081334],[102.847443,33.08131],[102.847586,33.081323],[102.847683,33.081317],[102.847819,33.0813],[102.847929,33.081285],[102.848028,33.081272],[102.84815,33.081248],[102.848238,33.081223],[102.848321,33.081192],[102.84839,33.081165],[102.84849,33.081112],[102.848577,33.081023],[102.84862,33.080975],[102.848658,33.080933],[102.848697,33.080876],[102.848697,33.080876],[102.848701,33.08087],[102.848731,33.080818],[102.848758,33.080799],[102.848817,33.080776],[102.848885,33.080757],[102.848931,33.080737],[102.848963,33.080715],[102.848969,33.080701],[102.848998,33.080643],[102.849001,33.080629],[102.849112,33.080743],[102.849713,33.080503],[102.850058,33.08164],[102.850294,33.083945],[102.8503,33.084349],[102.850301,33.084383],[102.850301,33.0844],[102.850318,33.085526],[102.850086,33.086506],[102.850374,33.089233],[102.850422,33.09071],[102.850403,33.09149],[102.850402,33.091519],[102.850378,33.092483],[102.850522,33.092517],[102.851355,33.092713],[102.851419,33.092728],[102.851453,33.092736],[102.851526,33.092753],[102.851535,33.092755],[102.852391,33.092957],[102.852889,33.093255],[102.852894,33.093258],[102.854324,33.094114],[102.855045,33.094495],[102.856554,33.095223],[102.857046,33.095461],[102.858194,33.096306],[102.858509,33.09655],[102.85889,33.096845],[102.85994,33.097442],[102.861071,33.098129],[102.861065,33.098389],[102.861061,33.098533],[102.861061,33.098539],[102.86106,33.098556],[102.861044,33.098582],[102.861033,33.098598],[102.861023,33.098613],[102.86101,33.098642],[102.861004,33.098666],[102.860991,33.098698],[102.860981,33.098735],[102.860968,33.098759],[102.86095,33.098794],[102.86093,33.098823],[102.860904,33.098841],[102.860862,33.09888],[102.860836,33.098903],[102.860807,33.098916],[102.860786,33.098915],[102.860755,33.098913],[102.860741,33.098919],[102.860737,33.098931],[102.860733,33.098949],[102.860725,33.098969],[102.860716,33.099011],[102.860713,33.099037],[102.860705,33.099086],[102.86071,33.099107],[102.860719,33.099122],[102.860743,33.099141],[102.860767,33.099153],[102.860783,33.099167],[102.8608,33.099188],[102.860808,33.099205],[102.860823,33.099223],[102.86055,33.099531],[102.860332,33.099777],[102.86032,33.099766],[102.860306,33.099764],[102.860286,33.099765],[102.860274,33.09978],[102.860267,33.099809],[102.860262,33.099833],[102.860259,33.099867],[102.860109,33.100093],[102.859586,33.100879],[102.859505,33.101633],[102.85946,33.102616],[102.859614,33.104024],[102.85943,33.104706],[102.859011,33.105138],[102.859009,33.105141],[102.85894,33.105212],[102.858917,33.105196],[102.85889,33.105181],[102.858874,33.105183],[102.858854,33.105195],[102.858841,33.105217],[102.858842,33.10523],[102.858861,33.105255],[102.858881,33.105272],[102.858927,33.105335],[102.858942,33.105392],[102.858947,33.105411],[102.858932,33.105501],[102.85888,33.105546],[102.858816,33.10557],[102.858744,33.10554],[102.858651,33.105511],[102.858625,33.105504],[102.858593,33.1055],[102.858585,33.105513],[102.858585,33.105536],[102.858591,33.105555],[102.858601,33.105574],[102.858535,33.105655],[102.858533,33.105658],[102.858459,33.10575],[102.8581,33.106194],[102.858056,33.106573],[102.858054,33.106595],[102.858049,33.106638],[102.858048,33.10665],[102.858042,33.1067],[102.857995,33.107105],[102.85789,33.107543],[102.85791,33.107566],[102.857915,33.107591],[102.857909,33.107607],[102.857891,33.107625],[102.857869,33.107631],[102.857842,33.107648],[102.857822,33.10766],[102.857799,33.107671],[102.857769,33.10769],[102.857747,33.107706],[102.857732,33.107722],[102.857725,33.107741],[102.857732,33.107759],[102.857748,33.107772],[102.857774,33.107783],[102.857804,33.10779],[102.85783,33.107792],[102.85779,33.107866],[102.857773,33.107899],[102.857133,33.109093],[102.857054,33.109278],[102.857044,33.109303],[102.857035,33.109324],[102.856712,33.110087],[102.856575,33.110577],[102.856583,33.111086],[102.856485,33.111682],[102.855896,33.112743],[102.855313,33.113541],[102.85473,33.114357],[102.854244,33.115437],[102.854168,33.116016],[102.854051,33.11654],[102.854206,33.117035],[102.854426,33.117408],[102.854543,33.117761],[102.854455,33.117953],[102.854298,33.118248],[102.854264,33.11824],[102.854234,33.11824],[102.854211,33.118248],[102.854176,33.118258],[102.854148,33.11827],[102.854131,33.118289],[102.854114,33.118314],[102.854114,33.118362],[102.854129,33.118395],[102.854151,33.11842],[102.854175,33.118441],[102.854193,33.118461],[102.854211,33.118491],[102.854222,33.118521],[102.854223,33.118562],[102.854217,33.118592],[102.854213,33.118627],[102.854211,33.118663],[102.854225,33.118689],[102.854252,33.118707],[102.854291,33.11872],[102.854306,33.118726],[102.854362,33.118723],[102.854394,33.118731],[102.85441,33.118759],[102.854413,33.118787],[102.854399,33.118796],[102.854376,33.118803],[102.854335,33.118801],[102.854301,33.118794],[102.854286,33.118788],[102.854248,33.118772],[102.854212,33.118761],[102.854139,33.118735],[102.854094,33.118716],[102.854077,33.118712],[102.854031,33.118709],[102.853997,33.118714],[102.853972,33.118723],[102.853954,33.118751],[102.853947,33.118778],[102.853949,33.118823],[102.853966,33.118863],[102.854038,33.118965],[102.854095,33.119045],[102.854166,33.119131],[102.854181,33.11914],[102.854178,33.11916],[102.854174,33.119177],[102.85412,33.119686],[102.853982,33.12021],[102.853571,33.120801],[102.85348,33.121958],[102.853504,33.122696],[102.853509,33.123364],[102.853622,33.123875],[102.85372,33.124966],[102.853662,33.125633],[102.853441,33.126173],[102.852825,33.127445],[102.852286,33.128138],[102.851337,33.129387],[102.850987,33.130066],[102.85087,33.130573],[102.850819,33.130941],[102.850642,33.131377],[102.850197,33.132493],[102.8502,33.133214],[102.850457,33.133798],[102.851046,33.134493],[102.8511,33.134863],[102.851124,33.135206],[102.851131,33.135302],[102.851089,33.135465],[102.851015,33.135757],[102.851047,33.136144],[102.851189,33.136322],[102.851521,33.136416],[102.851627,33.136446],[102.851671,33.136459],[102.851688,33.136473],[102.851702,33.136484],[102.851723,33.136495],[102.851751,33.136504],[102.851779,33.136511],[102.851798,33.136513],[102.851827,33.136512],[102.851832,33.136504],[102.851847,33.13649],[102.851868,33.136476],[102.851891,33.136467],[102.851923,33.136459],[102.851946,33.136454],[102.851979,33.136456],[102.852017,33.136465],[102.852053,33.136475],[102.852095,33.136494],[102.852112,33.136522],[102.852121,33.136544],[102.852123,33.136568],[102.852104,33.136603],[102.85209,33.136639],[102.852091,33.136659],[102.852091,33.136678],[102.852095,33.136698],[102.852105,33.136728],[102.852118,33.136748],[102.852128,33.136758],[102.852173,33.136778],[102.852215,33.136781],[102.852248,33.136776],[102.852266,33.13679],[102.852469,33.136941],[102.852832,33.137457],[102.852861,33.138121],[102.852869,33.138295],[102.852872,33.138371],[102.852986,33.138727],[102.853008,33.138794],[102.853026,33.138802],[102.853035,33.138805],[102.853088,33.138824],[102.853089,33.138839],[102.853089,33.13888],[102.853092,33.138913],[102.853098,33.138939],[102.853107,33.138956],[102.853122,33.138961],[102.853139,33.138962],[102.85316,33.138958],[102.853177,33.13895],[102.853205,33.138929],[102.85322,33.138914],[102.853244,33.138881],[102.853256,33.138865],[102.853286,33.138848],[102.853316,33.138835],[102.853345,33.138832],[102.853376,33.138832],[102.853393,33.138841],[102.853413,33.13886],[102.853423,33.138881],[102.853436,33.13895],[102.853567,33.138998],[102.85381,33.139045],[102.853848,33.139052],[102.853854,33.139064],[102.853864,33.139078],[102.853873,33.139094],[102.853881,33.139114],[102.853877,33.139125],[102.853863,33.139138],[102.853841,33.139155],[102.853816,33.139177],[102.853795,33.139206],[102.853791,33.139229],[102.853786,33.139245],[102.853798,33.139281],[102.853832,33.139319],[102.853866,33.139336],[102.853909,33.139338],[102.853982,33.139336],[102.854048,33.139305],[102.854106,33.139261],[102.854139,33.139216],[102.854173,33.139158],[102.854186,33.139134],[102.854293,33.139168],[102.854451,33.13954],[102.854528,33.139805],[102.854537,33.139898],[102.854561,33.140174],[102.85473,33.140365],[102.854846,33.140495],[102.854948,33.140517],[102.854987,33.140525],[102.854982,33.140539],[102.854952,33.140618],[102.854951,33.140664],[102.854965,33.140707],[102.854985,33.140758],[102.855005,33.140816],[102.855021,33.140868],[102.855043,33.140907],[102.855063,33.140926],[102.855073,33.140935],[102.855143,33.140953],[102.855172,33.140954],[102.855249,33.140936],[102.855349,33.1409],[102.855441,33.140877],[102.855493,33.140839],[102.855528,33.140789],[102.855553,33.14073],[102.85556,33.140705],[102.855567,33.14069],[102.855716,33.140756],[102.855855,33.14104],[102.855825,33.141443],[102.855628,33.141791],[102.855242,33.142224],[102.854334,33.142629],[102.853763,33.142953],[102.853168,33.143365],[102.852716,33.143919],[102.852429,33.144564],[102.852192,33.144876],[102.852083,33.145032],[102.85227,33.145088],[102.852482,33.144951],[102.852932,33.144777],[102.852965,33.144764],[102.852951,33.144732],[102.852939,33.144708],[102.852936,33.144686],[102.852938,33.144657],[102.852957,33.144616],[102.852969,33.144585],[102.852982,33.144554],[102.852993,33.144536],[102.853022,33.144513],[102.853061,33.1445],[102.853092,33.144486],[102.853135,33.144481],[102.853134,33.144491],[102.853139,33.144507],[102.853148,33.144523],[102.853164,33.144545],[102.853181,33.144557],[102.853198,33.144572],[102.853213,33.144591],[102.853239,33.144635],[102.853263,33.144665],[102.85331,33.144793],[102.853336,33.144851],[102.853364,33.144872],[102.853389,33.144883],[102.85342,33.144891],[102.853441,33.144889],[102.853486,33.14488],[102.85354,33.144859],[102.85365,33.144798],[102.853749,33.144732],[102.853756,33.144743],[102.853817,33.144838],[102.853821,33.144845],[102.853837,33.14487],[102.853755,33.144926],[102.8537,33.145038],[102.853699,33.145148],[102.853781,33.145297],[102.853896,33.145411],[102.854034,33.145519],[102.854226,33.145579],[102.85439,33.145581],[102.85455,33.145567],[102.854776,33.145569],[102.854947,33.145547],[102.855225,33.145487],[102.855509,33.145482],[102.855613,33.145539],[102.855598,33.145652],[102.85554,33.145764],[102.855516,33.145842],[102.855599,33.145876],[102.855789,33.145868],[102.855974,33.145804],[102.856089,33.14567],[102.856094,33.145585],[102.856045,33.145471],[102.856066,33.145388],[102.85616,33.145378],[102.856239,33.145446],[102.856245,33.145579],[102.856248,33.145822],[102.856272,33.145942],[102.856332,33.146023],[102.856461,33.146098],[102.856477,33.146163],[102.856424,33.146239],[102.856377,33.146316],[102.856421,33.146351],[102.856472,33.146434],[102.856384,33.146497],[102.856284,33.146505],[102.856168,33.146517],[102.856006,33.146612],[102.855852,33.146782],[102.855717,33.14691],[102.855579,33.146957],[102.855498,33.146889],[102.855453,33.146737],[102.855495,33.146601],[102.855659,33.146507],[102.855919,33.14642],[102.855979,33.146311],[102.855956,33.146215],[102.855822,33.146085],[102.855653,33.146024],[102.855534,33.146069],[102.85545,33.146149],[102.855352,33.146178],[102.855179,33.146183],[102.85511,33.146201],[102.855055,33.146318],[102.855086,33.14641],[102.855192,33.146522],[102.855236,33.146616],[102.855235,33.146732],[102.855157,33.146821],[102.855105,33.146836],[102.854999,33.146813],[102.854734,33.146718],[102.854548,33.146725],[102.854436,33.146795],[102.854388,33.146909],[102.854392,33.147019],[102.854387,33.147135],[102.854312,33.147169],[102.854224,33.14718],[102.854104,33.147179],[102.854015,33.14711],[102.853843,33.146878],[102.853679,33.146759],[102.853561,33.146715],[102.853444,33.146772],[102.853351,33.146871],[102.853303,33.147027],[102.853313,33.147122],[102.8534,33.147209],[102.853387,33.147215],[102.853364,33.147242],[102.853354,33.147254],[102.853194,33.14744],[102.853204,33.147897],[102.8534,33.148427],[102.853415,33.148458],[102.854155,33.149986],[102.85451,33.150835],[102.854685,33.151383],[102.854651,33.151927],[102.854557,33.152364],[102.854841,33.152703],[102.855174,33.152744],[102.855307,33.152592],[102.855372,33.152518],[102.855379,33.15251],[102.855508,33.152364],[102.85544,33.152273],[102.85541,33.152176],[102.855457,33.152109],[102.855547,33.152032],[102.855608,33.152005],[102.855643,33.151981],[102.855684,33.151956],[102.855704,33.151944],[102.855746,33.151933],[102.855789,33.151913],[102.855806,33.151899],[102.855822,33.151871],[102.855829,33.151844],[102.85583,33.151806],[102.855824,33.151769],[102.855803,33.15173],[102.855774,33.151695],[102.855752,33.151676],[102.855729,33.151658],[102.85571,33.151645],[102.855697,33.151634],[102.855689,33.151627],[102.855693,33.151609],[102.855704,33.151558],[102.855902,33.15114],[102.856594,33.151029],[102.857314,33.150602],[102.857804,33.150347],[102.857815,33.150341],[102.857839,33.150329],[102.857872,33.150312],[102.857882,33.150306],[102.858096,33.150194],[102.858822,33.1504],[102.85898,33.150789],[102.85901,33.151264],[102.859011,33.151537],[102.859011,33.151654],[102.859011,33.15167],[102.859012,33.151914],[102.859012,33.152037],[102.859004,33.152152],[102.858998,33.152237],[102.858995,33.152278],[102.858981,33.152475],[102.859028,33.152578],[102.859159,33.152865],[102.859383,33.153097],[102.859653,33.153154],[102.859765,33.153089],[102.859773,33.153084],[102.859809,33.153063],[102.859868,33.153076],[102.859935,33.153071],[102.860054,33.153038],[102.860215,33.152977],[102.860474,33.152937],[102.860837,33.152894],[102.860979,33.15291],[102.861046,33.153017],[102.861085,33.15315],[102.861123,33.153199],[102.861209,33.153191],[102.861275,33.15311],[102.86129,33.152994],[102.861229,33.152841],[102.861199,33.152716],[102.861222,33.152602],[102.861298,33.152558],[102.861424,33.152514],[102.861549,33.152506],[102.861616,33.152473],[102.861647,33.152404],[102.861624,33.152334],[102.861546,33.152268],[102.861504,33.152214],[102.861509,33.152158],[102.861555,33.152114],[102.861664,33.152065],[102.861823,33.152065],[102.861971,33.15208],[102.862039,33.152125],[102.862069,33.152217],[102.862069,33.152279],[102.862075,33.152367],[102.862058,33.152421],[102.862004,33.152495],[102.861962,33.152606],[102.862011,33.152698],[102.862113,33.152775],[102.862352,33.15288],[102.862458,33.15295],[102.862465,33.153008],[102.862453,33.153064],[102.862355,33.153086],[102.862212,33.153072],[102.862068,33.153041],[102.861989,33.153035],[102.861933,33.15307],[102.861884,33.153142],[102.861932,33.153235],[102.862139,33.153353],[102.862346,33.153449],[102.862383,33.153511],[102.862355,33.153554],[102.862262,33.153572],[102.862172,33.153568],[102.862053,33.153518],[102.861934,33.15344],[102.861797,33.153295],[102.861669,33.153154],[102.861592,33.153088],[102.861501,33.153072],[102.861445,33.153084],[102.861412,33.153129],[102.861378,33.153225],[102.86138,33.153301],[102.861445,33.153399],[102.861568,33.153538],[102.861669,33.153586],[102.861786,33.153597],[102.861951,33.153617],[102.862159,33.153744],[102.862241,33.153789],[102.862326,33.153777],[102.862478,33.153719],[102.862541,33.153721],[102.862582,33.153802],[102.86254,33.153853],[102.86244,33.153904],[102.862327,33.153945],[102.86223,33.153974],[102.8622,33.154043],[102.862199,33.154105],[102.862288,33.154155],[102.862377,33.154192],[102.862501,33.154205],[102.862604,33.154185],[102.862698,33.154113],[102.862897,33.153876],[102.86303,33.153675],[102.863146,33.153478],[102.863233,33.153429],[102.863339,33.153423],[102.863418,33.153405],[102.863483,33.153358],[102.863523,33.153372],[102.863529,33.153375],[102.863801,33.153472],[102.863919,33.153772],[102.864053,33.154249],[102.864187,33.15476],[102.864531,33.155241],[102.864896,33.155651],[102.865472,33.156047],[102.86569,33.156508],[102.865764,33.156895],[102.865664,33.157596],[102.86563,33.158123],[102.865555,33.158631],[102.865422,33.158975],[102.865406,33.159015],[102.865324,33.159033],[102.865248,33.159128],[102.865281,33.159241],[102.865596,33.159537],[102.865897,33.159707],[102.865913,33.159812],[102.865844,33.159867],[102.865668,33.15994],[102.865293,33.159982],[102.865059,33.159868],[102.864926,33.159835],[102.8648,33.159867],[102.864647,33.159967],[102.864519,33.159978],[102.864448,33.159918],[102.864468,33.159805],[102.864648,33.159691],[102.864819,33.159546],[102.86477,33.159426],[102.864538,33.159352],[102.864366,33.159369],[102.864263,33.159523],[102.864195,33.159734],[102.864172,33.159927],[102.864097,33.15993],[102.864087,33.15993],[102.864074,33.159931],[102.863895,33.159937],[102.863574,33.160248],[102.863502,33.160633],[102.863574,33.161108],[102.863879,33.161447],[102.864355,33.161631],[102.864754,33.161533],[102.864783,33.161509],[102.864873,33.161516],[102.864999,33.161521],[102.86525,33.161519],[102.865401,33.161506],[102.865589,33.161469],[102.865705,33.161424],[102.865759,33.16138],[102.865898,33.161269],[102.865943,33.161156],[102.865944,33.161058],[102.866143,33.161082],[102.866454,33.161227],[102.866535,33.161265],[102.86663,33.16167],[102.866684,33.162022],[102.866571,33.16213],[102.866565,33.162137],[102.866534,33.162126],[102.866468,33.162123],[102.866373,33.162138],[102.866243,33.162176],[102.866144,33.162241],[102.866104,33.162299],[102.866091,33.162355],[102.86609,33.162408],[102.866102,33.162461],[102.866124,33.162507],[102.866115,33.162514],[102.865747,33.162779],[102.865361,33.163177],[102.865602,33.163567],[102.866019,33.163627],[102.866049,33.163623],[102.866067,33.16362],[102.866087,33.163638],[102.866129,33.163664],[102.866189,33.163679],[102.866274,33.163688],[102.866401,33.163689],[102.86647,33.163684],[102.866604,33.163657],[102.866747,33.163615],[102.866805,33.163586],[102.866848,33.163563],[102.867022,33.163591],[102.86706,33.16375],[102.866885,33.164063],[102.866586,33.164357],[102.865868,33.164661],[102.865665,33.164893],[102.865616,33.16495],[102.86546,33.165128],[102.865702,33.165501],[102.866131,33.165877],[102.866544,33.166939],[102.86676,33.167373],[102.866764,33.167381],[102.866766,33.167386],[102.866786,33.167427],[102.866659,33.167582],[102.866645,33.167692],[102.866774,33.167739],[102.867033,33.167719],[102.867305,33.167618],[102.867519,33.167525],[102.86762,33.167553],[102.86763,33.167738],[102.8675,33.167968],[102.867306,33.168085],[102.86713,33.168122],[102.866879,33.16811],[102.866426,33.167984],[102.866066,33.167791],[102.865703,33.16752],[102.865508,33.167464],[102.865339,33.167433],[102.864892,33.167447],[102.864819,33.167533],[102.864747,33.167748],[102.864756,33.167881],[102.864866,33.168042],[102.864779,33.168146],[102.864555,33.168273],[102.864278,33.168436],[102.864056,33.168472],[102.863676,33.168258],[102.863466,33.168173],[102.863342,33.168191],[102.86317,33.168344],[102.86302,33.168427],[102.862941,33.168382],[102.862874,33.168211],[102.862836,33.167979],[102.862764,33.167736],[102.86265,33.167623],[102.862477,33.167608],[102.862307,33.167643],[102.862227,33.167727],[102.862176,33.167832],[102.862188,33.167935],[102.862212,33.168096],[102.862176,33.168216],[102.862051,33.168323],[102.861926,33.168373],[102.861776,33.168376],[102.861677,33.168331],[102.861593,33.168154],[102.861512,33.168096],[102.861444,33.168095],[102.861402,33.168229],[102.861505,33.168555],[102.861583,33.168773],[102.861749,33.168787],[102.862067,33.168776],[102.862206,33.168813],[102.862234,33.168919],[102.862153,33.169042],[102.861936,33.169123],[102.861687,33.169168],[102.861351,33.169146],[102.861059,33.16906],[102.860881,33.168954],[102.860573,33.16873],[102.860453,33.168635],[102.860316,33.168625],[102.860218,33.168672],[102.860066,33.168801],[102.859907,33.168838],[102.859743,33.168882],[102.859713,33.168954],[102.859809,33.169103],[102.860098,33.169344],[102.860249,33.169469],[102.860213,33.169551],[102.860084,33.169589],[102.859929,33.169577],[102.859826,33.169508],[102.859616,33.169344],[102.859416,33.169167],[102.859409,33.169194],[102.859404,33.169211],[102.8594,33.169228],[102.859343,33.169437],[102.859239,33.169561],[102.859056,33.169544],[102.858712,33.169257],[102.858524,33.168762],[102.858248,33.16842],[102.857959,33.167952],[102.857931,33.167917],[102.857922,33.167907],[102.857972,33.167881],[102.858029,33.167835],[102.858095,33.167748],[102.858135,33.167654],[102.858139,33.16759],[102.85813,33.167542],[102.858114,33.167501],[102.858093,33.167467],[102.858071,33.167444],[102.858038,33.16743],[102.857942,33.167426],[102.857857,33.167432],[102.857825,33.16744],[102.857799,33.167465],[102.857777,33.16751],[102.857736,33.167605],[102.857718,33.167656],[102.857711,33.167647],[102.857643,33.167564],[102.857122,33.166926],[102.8571,33.166922],[102.857076,33.166912],[102.857051,33.166896],[102.857039,33.166879],[102.85703,33.166857],[102.857034,33.166819],[102.857039,33.166796],[102.85706,33.16675],[102.857104,33.166699],[102.857175,33.166641],[102.857276,33.166588],[102.857307,33.166574],[102.857309,33.166554],[102.857302,33.166535],[102.857291,33.166525],[102.857284,33.166519],[102.857252,33.166501],[102.857208,33.166477],[102.857132,33.16644],[102.85696,33.166411],[102.856906,33.166414],[102.856868,33.166425],[102.856835,33.166424],[102.85679,33.166425],[102.856746,33.166441],[102.856711,33.166475],[102.856688,33.166519],[102.856692,33.166568],[102.856691,33.166602],[102.856673,33.166599],[102.856625,33.166589],[102.8566,33.166584],[102.85634,33.166533],[102.855953,33.166653],[102.85588,33.166919],[102.855957,33.167187],[102.856167,33.167472],[102.856597,33.167662],[102.856908,33.167892],[102.856943,33.168003],[102.856966,33.168075],[102.856987,33.168142],[102.856926,33.16813],[102.856884,33.168128],[102.856872,33.168127],[102.856856,33.168134],[102.856843,33.168161],[102.85684,33.168189],[102.856841,33.168213],[102.85685,33.168257],[102.85686,33.168311],[102.856863,33.168345],[102.856859,33.168364],[102.856843,33.168379],[102.85681,33.168398],[102.85676,33.168403],[102.856693,33.168403],[102.856622,33.168396],[102.856574,33.168388],[102.856517,33.168351],[102.856489,33.168322],[102.856458,33.168259],[102.856444,33.168215],[102.856441,33.168165],[102.856449,33.168129],[102.856521,33.167951],[102.856551,33.167918],[102.856582,33.167874],[102.856595,33.167834],[102.856603,33.167797],[102.856603,33.167773],[102.856599,33.167758],[102.856592,33.167748],[102.856569,33.167743],[102.856545,33.167745],[102.8565,33.16775],[102.856354,33.167807],[102.856333,33.167814],[102.856278,33.167848],[102.856262,33.167865],[102.856256,33.167881],[102.856258,33.167899],[102.856292,33.167954],[102.856306,33.167983],[102.856312,33.168014],[102.856313,33.168053],[102.856313,33.168071],[102.856309,33.168124],[102.85632,33.16818],[102.856335,33.168224],[102.856349,33.168261],[102.856368,33.1683],[102.856373,33.16831],[102.856379,33.168347],[102.856378,33.16838],[102.856371,33.168405],[102.856354,33.168429],[102.856326,33.168455],[102.856297,33.168464],[102.856263,33.168472],[102.856219,33.168475],[102.85618,33.168471],[102.856149,33.168464],[102.856094,33.168422],[102.856034,33.168371],[102.856021,33.168364],[102.856004,33.168361],[102.855992,33.168367],[102.855983,33.168388],[102.855949,33.168487],[102.85587,33.168433],[102.855857,33.168446],[102.855838,33.168458],[102.855817,33.168462],[102.855788,33.168459],[102.855756,33.168447],[102.855734,33.168435],[102.85572,33.168431],[102.855609,33.168429],[102.855538,33.16843],[102.855463,33.168429],[102.855406,33.168438],[102.855371,33.168453],[102.855337,33.168482],[102.85532,33.16852],[102.855319,33.168555],[102.855329,33.168594],[102.855358,33.168637],[102.855403,33.168671],[102.855457,33.168681],[102.855518,33.168681],[102.855547,33.168681],[102.855583,33.168693],[102.855594,33.168696],[102.855595,33.168758],[102.855513,33.168811],[102.855466,33.168844],[102.855409,33.168881],[102.855308,33.16893],[102.855245,33.168964],[102.855212,33.168993],[102.855192,33.169022],[102.855186,33.169059],[102.855195,33.169088],[102.85521,33.169108],[102.855252,33.169131],[102.855296,33.169159],[102.855341,33.169185],[102.855382,33.169193],[102.855413,33.16919],[102.855477,33.169174],[102.855521,33.16917],[102.855528,33.169169],[102.855675,33.169172],[102.855712,33.169172],[102.855764,33.169166],[102.85581,33.169145],[102.855842,33.169141],[102.855865,33.169169],[102.855874,33.169204],[102.85589,33.169255],[102.855918,33.169305],[102.855948,33.16934],[102.85598,33.169407],[102.855999,33.169492],[102.856027,33.169536],[102.856061,33.169569],[102.856104,33.169579],[102.856156,33.169578],[102.856212,33.16957],[102.856246,33.16956],[102.856274,33.169541],[102.856326,33.169505],[102.856363,33.169483],[102.856448,33.169426],[102.856501,33.169407],[102.856552,33.169407],[102.856612,33.169411],[102.856653,33.16942],[102.856692,33.169455],[102.856706,33.169484],[102.856704,33.169532],[102.856683,33.169562],[102.856641,33.169596],[102.856597,33.169639],[102.856585,33.169674],[102.856589,33.169718],[102.856601,33.169763],[102.856625,33.169799],[102.856671,33.169839],[102.856709,33.169865],[102.856788,33.169907],[102.856839,33.16992],[102.856891,33.169935],[102.856928,33.169946],[102.856944,33.169959],[102.856947,33.169976],[102.856942,33.169997],[102.856916,33.170026],[102.856879,33.170054],[102.856835,33.170071],[102.856783,33.170071],[102.856735,33.170068],[102.856697,33.17006],[102.85666,33.170041],[102.856613,33.170009],[102.856572,33.169987],[102.85653,33.169983],[102.856442,33.169986],[102.856364,33.170004],[102.856315,33.170021],[102.85626,33.170055],[102.856233,33.170104],[102.856207,33.170157],[102.856186,33.17017],[102.856143,33.170184],[102.856097,33.170204],[102.856064,33.170227],[102.856049,33.170249],[102.85605,33.170283],[102.856063,33.170315],[102.85609,33.170345],[102.856108,33.17036],[102.856173,33.170398],[102.856287,33.17043],[102.856386,33.170435],[102.856585,33.170469],[102.856712,33.170487],[102.856807,33.170497],[102.856898,33.17051],[102.85694,33.170544],[102.856957,33.170575],[102.856962,33.170616],[102.856962,33.170674],[102.856957,33.170714],[102.856938,33.170765],[102.856924,33.170825],[102.856924,33.170884],[102.856935,33.170937],[102.856946,33.170997],[102.856957,33.17105],[102.85694,33.171077],[102.856903,33.171114],[102.856845,33.171171],[102.856805,33.171211],[102.856777,33.171246],[102.856779,33.171275],[102.856786,33.171303],[102.856801,33.171337],[102.856807,33.171369],[102.856807,33.171396],[102.85679,33.171408],[102.856761,33.171403],[102.856675,33.171325],[102.856601,33.171244],[102.856562,33.171184],[102.856514,33.17112],[102.856492,33.171103],[102.856459,33.171087],[102.85643,33.17108],[102.856393,33.17108],[102.856363,33.171088],[102.856339,33.171101],[102.856314,33.171125],[102.856312,33.171128],[102.856289,33.171179],[102.85628,33.171261],[102.856287,33.171378],[102.85631,33.171476],[102.85633,33.171511],[102.856336,33.171525],[102.856337,33.171558],[102.856331,33.171578],[102.856317,33.171582],[102.856267,33.171576],[102.85629,33.17162],[102.856245,33.171608],[102.85606,33.171533],[102.856043,33.171431],[102.856113,33.171284],[102.856257,33.170989],[102.856186,33.170805],[102.856081,33.170778],[102.855947,33.17082],[102.855806,33.170955],[102.855686,33.171148],[102.855636,33.171369],[102.855642,33.171499],[102.855575,33.171539],[102.855532,33.171497],[102.855523,33.171488],[102.855469,33.171435],[102.855461,33.171429],[102.855157,33.171219],[102.855041,33.171202],[102.855005,33.171286],[102.854901,33.171467],[102.854511,33.171713],[102.854437,33.171779],[102.854426,33.171789],[102.85433,33.171874],[102.854049,33.172126],[102.853644,33.17233],[102.852718,33.172623],[102.85213,33.172768],[102.852044,33.172905],[102.852058,33.172935],[102.852073,33.172976],[102.852082,33.173006],[102.852099,33.173051],[102.85214,33.173095],[102.852192,33.173125],[102.852237,33.173137],[102.852301,33.173148],[102.852331,33.173199],[102.852582,33.173393],[102.852959,33.173695],[102.853418,33.174068],[102.853463,33.174094],[102.85351,33.174122],[102.853906,33.173709],[102.854238,33.173342],[102.854302,33.173219],[102.854332,33.173127],[102.85435,33.172652],[102.854404,33.172652],[102.854494,33.172654],[102.854534,33.17279],[102.854684,33.172877],[102.855221,33.172888],[102.855663,33.172954],[102.856086,33.173109],[102.856217,33.17329],[102.856137,33.173504],[102.855868,33.173689],[102.855719,33.173823],[102.855707,33.17396],[102.855776,33.174117],[102.85594,33.174207],[102.856179,33.174188],[102.856328,33.173994],[102.856494,33.173635],[102.856714,33.173269],[102.857016,33.173076],[102.857299,33.173132],[102.857395,33.173369],[102.857242,33.173623],[102.856968,33.173815],[102.856708,33.174051],[102.856567,33.174424],[102.856441,33.174547],[102.856024,33.174698],[102.855619,33.174788],[102.855425,33.17492],[102.855369,33.175146],[102.855541,33.175322],[102.856057,33.175644],[102.856167,33.175862],[102.856038,33.176036],[102.855606,33.176157],[102.855556,33.176287],[102.855665,33.176531],[102.855851,33.176542],[102.856289,33.176468],[102.856598,33.176491],[102.856723,33.176825],[102.85676,33.177042],[102.856698,33.177297],[102.856483,33.177428],[102.856151,33.177578],[102.855763,33.177666],[102.855164,33.177819],[102.854894,33.177926],[102.854849,33.178117],[102.854903,33.178352],[102.855138,33.178474],[102.855364,33.178674],[102.855804,33.179088],[102.856238,33.17942],[102.856454,33.179801],[102.856415,33.179975],[102.85608,33.18014],[102.855702,33.180375],[102.855445,33.180412],[102.855288,33.180313],[102.855175,33.180115],[102.8552,33.179943],[102.855286,33.179729],[102.855208,33.179613],[102.855038,33.179555],[102.854861,33.17962],[102.854819,33.179859],[102.854888,33.180189],[102.854971,33.180526],[102.854965,33.180722],[102.85484,33.180846],[102.854603,33.180874],[102.854372,33.180787],[102.854121,33.18066],[102.854027,33.180679],[102.853948,33.180836],[102.853887,33.181026],[102.853915,33.181135],[102.854056,33.181274],[102.854435,33.181477],[102.854627,33.181643],[102.854615,33.181885],[102.854597,33.182196],[102.854584,33.182508],[102.854372,33.182789],[102.85431,33.183057],[102.854236,33.183283],[102.854177,33.183334],[102.854064,33.183327],[102.853893,33.183215],[102.853636,33.182961],[102.853336,33.182695],[102.853154,33.182295],[102.853024,33.181977],[102.852848,33.181963],[102.852663,33.182093],[102.852549,33.182296],[102.852552,33.182487],[102.852691,33.18277],[102.852761,33.183031],[102.852804,33.18326],[102.852919,33.183342],[102.85319,33.183439],[102.853239,33.183504],[102.853136,33.183586],[102.852772,33.18371],[102.852448,33.183722],[102.85214,33.183616],[102.852051,33.18333],[102.851944,33.182979],[102.851841,33.182918],[102.851651,33.183053],[102.851108,33.18347],[102.850898,33.183715],[102.850819,33.183976],[102.851029,33.184095],[102.851538,33.184096],[102.852272,33.184126],[102.85259,33.184497],[102.852927,33.185096],[102.853149,33.185151],[102.853271,33.185035],[102.853386,33.184747],[102.853548,33.184514],[102.853971,33.184332],[102.854266,33.184372],[102.854544,33.184654],[102.854868,33.18493],[102.855164,33.185104],[102.85541,33.185052],[102.855977,33.184947],[102.856161,33.185002],[102.856193,33.185223],[102.856055,33.18546],[102.855861,33.185676],[102.855846,33.185837],[102.856065,33.185865],[102.856291,33.185584],[102.856502,33.185369],[102.856712,33.185359],[102.856835,33.185578],[102.856954,33.186002],[102.85706,33.186716],[102.857127,33.186833],[102.857288,33.186878],[102.857428,33.186812],[102.857578,33.186476],[102.857712,33.186129],[102.857964,33.186082],[102.858294,33.186339],[102.858553,33.186566],[102.858638,33.186848],[102.858746,33.187039],[102.858977,33.18702],[102.859235,33.186823],[102.859393,33.18688],[102.859741,33.187323],[102.860062,33.187779],[102.860288,33.188138],[102.860301,33.188496],[102.860373,33.188691],[102.860739,33.18882],[102.861396,33.188919],[102.861854,33.189231],[102.862218,33.189396],[102.862522,33.189389],[102.862897,33.189376],[102.863164,33.189458],[102.863532,33.189559],[102.863676,33.189272],[102.863892,33.189149],[102.864033,33.189344],[102.863899,33.18961],[102.863689,33.189923],[102.863695,33.190473],[102.863618,33.190695],[102.863271,33.190752],[102.86302,33.190831],[102.862945,33.190957],[102.863189,33.191131],[102.863653,33.19119],[102.864031,33.191048],[102.864323,33.19085],[102.864723,33.19076],[102.86515,33.19083],[102.865354,33.191015],[102.865437,33.191342],[102.865572,33.191543],[102.865916,33.191681],[102.866537,33.191707],[102.866913,33.191579],[102.867118,33.191274],[102.867154,33.190942],[102.866997,33.19073],[102.866556,33.190579],[102.866222,33.190423],[102.865726,33.190372],[102.865304,33.19031],[102.865188,33.190118],[102.865233,33.189854],[102.865637,33.18949],[102.866046,33.189096],[102.866163,33.188845],[102.866085,33.188669],[102.865865,33.188487],[102.86585,33.188391],[102.866066,33.188317],[102.866306,33.188392],[102.8669,33.188803],[102.867363,33.189134],[102.867759,33.18938],[102.868,33.189369],[102.868087,33.189224],[102.868062,33.188988],[102.867732,33.188688],[102.867612,33.188564],[102.867667,33.188406],[102.867978,33.188293],[102.868247,33.188182],[102.868295,33.188021],[102.868124,33.187929],[102.86795,33.187698],[102.867821,33.187109],[102.867654,33.18676],[102.867559,33.186512],[102.867636,33.186342],[102.867811,33.186257],[102.868261,33.186406],[102.868873,33.186657],[102.868996,33.186802],[102.86901,33.186978],[102.869012,33.187142],[102.869186,33.187254],[102.869403,33.187321],[102.869645,33.187264],[102.869943,33.187205],[102.870056,33.187295],[102.870022,33.187494],[102.869847,33.187687],[102.869735,33.187858],[102.869765,33.188021],[102.869903,33.188075],[102.870106,33.187997],[102.87034,33.187774],[102.870545,33.187568],[102.870774,33.18752],[102.870958,33.187566],[102.871106,33.187748],[102.871219,33.187862],[102.871402,33.187851],[102.871574,33.187525],[102.871766,33.187247],[102.872046,33.187197],[102.872172,33.187269],[102.872207,33.187451],[102.872124,33.187605],[102.872107,33.187895],[102.872055,33.188207],[102.872009,33.188515],[102.872182,33.188655],[102.872397,33.188704],[102.872461,33.188719],[102.872783,33.188895],[102.87286,33.188897],[102.873122,33.188904],[102.873336,33.188737],[102.87347,33.188385],[102.873641,33.188082],[102.873879,33.188068],[102.874013,33.188298],[102.873936,33.188647],[102.873724,33.189367],[102.873707,33.189662],[102.873812,33.189904],[102.874092,33.189954],[102.874436,33.189882],[102.874778,33.189949],[102.874902,33.190154],[102.874874,33.190339],[102.874562,33.19054],[102.874168,33.190886],[102.873756,33.19115],[102.87376,33.191274],[102.873942,33.191373],[102.874351,33.191556],[102.874508,33.191868],[102.874645,33.19205],[102.875228,33.19206],[102.875511,33.192157],[102.875701,33.192389],[102.875536,33.192611],[102.875157,33.192781],[102.874901,33.192999],[102.874933,33.193129],[102.875286,33.1932],[102.875919,33.193122],[102.87614,33.192925],[102.876395,33.192531],[102.876719,33.192525],[102.876817,33.192882],[102.876812,33.193258],[102.877043,33.193372],[102.877263,33.1933],[102.877451,33.192989],[102.877415,33.19263],[102.877449,33.192332],[102.877707,33.192285],[102.877897,33.192712],[102.877772,33.193017],[102.877537,33.19345],[102.877164,33.193916],[102.876879,33.194242],[102.876882,33.194419],[102.877191,33.194468],[102.877701,33.194402],[102.878099,33.194368],[102.878267,33.19459],[102.878249,33.194794],[102.877983,33.19503],[102.877598,33.195196],[102.87714,33.195287],[102.876999,33.195394],[102.877035,33.195574],[102.877286,33.195692],[102.87745,33.1958],[102.877485,33.195929],[102.877387,33.196029],[102.877212,33.196114],[102.877071,33.196216],[102.877068,33.196344],[102.877256,33.196444],[102.877707,33.196482],[102.878042,33.196635],[102.878419,33.197029],[102.878504,33.197386],[102.878398,33.197604],[102.878233,33.197725],[102.877974,33.197868],[102.877907,33.198012],[102.878042,33.198175],[102.878364,33.198178],[102.879058,33.198093],[102.879687,33.198165],[102.879742,33.198317],[102.87966,33.198478],[102.879259,33.19879],[102.879215,33.19896],[102.879372,33.199172],[102.879953,33.199189],[102.880336,33.199244],[102.880946,33.19957],[102.881179,33.199804],[102.881181,33.19999],[102.881012,33.200122],[102.880801,33.20031],[102.88065,33.2005],[102.880722,33.200646],[102.880923,33.200765],[102.881327,33.200729],[102.881942,33.200578],[102.882119,33.200652],[102.882102,33.200846],[102.881928,33.20102],[102.881786,33.201224],[102.881844,33.201388],[102.882159,33.20152],[102.882604,33.201581],[102.882693,33.201699],[102.882907,33.201918],[102.883051,33.202162],[102.883038,33.202385],[102.882941,33.2026],[102.88274,33.202735],[102.882372,33.202846],[102.881961,33.2029],[102.881688,33.202817],[102.881583,33.202584],[102.881501,33.202238],[102.881393,33.202143],[102.881229,33.202132],[102.880979,33.202245],[102.880859,33.202455],[102.880912,33.202619],[102.881126,33.202932],[102.881335,33.203136],[102.881566,33.20326],[102.881841,33.2034],[102.881906,33.203546],[102.881774,33.203669],[102.881377,33.203707],[102.881129,33.20364],[102.88073,33.203266],[102.880498,33.20312],[102.880336,33.203098],[102.880178,33.203187],[102.88006,33.203396],[102.879948,33.20361],[102.879794,33.203701],[102.879562,33.203741],[102.879305,33.203841],[102.879244,33.204007],[102.879455,33.204408],[102.879752,33.204771],[102.880229,33.204905],[102.88027,33.205071],[102.880021,33.205196],[102.879562,33.205345],[102.879447,33.205494],[102.879475,33.205672],[102.880042,33.205948],[102.880437,33.206174],[102.880653,33.206459],[102.880786,33.206708],[102.88097,33.206753],[102.881599,33.20656],[102.881807,33.206692],[102.882021,33.207197],[102.882086,33.207533],[102.881954,33.207666],[102.88177,33.207706],[102.88148,33.207627],[102.880866,33.207459],[102.880327,33.207389],[102.879435,33.207332],[102.878863,33.207368],[102.878347,33.207519],[102.878146,33.207542],[102.878058,33.207389],[102.878141,33.207131],[102.87815,33.206971],[102.877948,33.206934],[102.877598,33.20697],[102.877276,33.207013],[102.876899,33.207062],[102.876816,33.207255],[102.876904,33.207495],[102.877028,33.207618],[102.877392,33.208067],[102.877455,33.208384],[102.877327,33.208604],[102.877053,33.208925],[102.876723,33.209343],[102.876555,33.20959],[102.876614,33.209746],[102.877007,33.209719],[102.877352,33.20954],[102.877606,33.20926],[102.87784,33.208646],[102.878047,33.208411],[102.87839,33.208345],[102.878707,33.208739],[102.878609,33.209555],[102.878665,33.210143],[102.878486,33.210202],[102.878036,33.210041],[102.877638,33.210067],[102.87749,33.210271],[102.877402,33.21071],[102.877371,33.211157],[102.877482,33.211476],[102.877831,33.211528],[102.87822,33.211259],[102.878891,33.210734],[102.879219,33.210952],[102.879335,33.211228],[102.879264,33.211475],[102.878795,33.211747],[102.878261,33.211904],[102.877611,33.211889],[102.876957,33.211928],[102.876879,33.212038],[102.876911,33.212229],[102.87745,33.212346],[102.878098,33.212251],[102.878578,33.212178],[102.878935,33.212246],[102.879453,33.212491],[102.879793,33.212787],[102.879963,33.213079],[102.879914,33.213325],[102.879743,33.213542],[102.879436,33.213658],[102.878894,33.213612],[102.878588,33.213428],[102.87789,33.21295],[102.87759,33.212991],[102.877485,33.213115],[102.87748,33.213354],[102.877595,33.213788],[102.877638,33.214136],[102.877576,33.214323],[102.877072,33.214298],[102.876716,33.214141],[102.876528,33.213858],[102.876565,33.213449],[102.876725,33.213034],[102.876722,33.212873],[102.876289,33.212859],[102.876145,33.213003],[102.876081,33.213211],[102.876195,33.213451],[102.876171,33.213722],[102.876054,33.214189],[102.875865,33.214363],[102.875557,33.214765],[102.875677,33.214959],[102.876039,33.214946],[102.876602,33.214694],[102.876906,33.21466],[102.877047,33.214934],[102.876838,33.215236],[102.876453,33.215431],[102.87584,33.215588],[102.87548,33.215566],[102.875188,33.215411],[102.874663,33.214707],[102.874311,33.214335],[102.874007,33.214233],[102.873825,33.214297],[102.873742,33.214479],[102.873798,33.214896],[102.874043,33.215262],[102.87456,33.215623],[102.875222,33.215942],[102.875718,33.215945],[102.876598,33.215851],[102.876764,33.21598],[102.876791,33.216186],[102.876742,33.21636],[102.876501,33.216491],[102.876018,33.216626],[102.875401,33.216764],[102.87527,33.216943],[102.87526,33.217109],[102.875468,33.217255],[102.875901,33.217478],[102.876438,33.217628],[102.876517,33.21763],[102.876919,33.217639],[102.877422,33.217525],[102.878134,33.217403],[102.878452,33.217475],[102.878655,33.217627],[102.878813,33.21783],[102.878788,33.218144],[102.878636,33.218257],[102.878276,33.218302],[102.877835,33.218388],[102.877646,33.218529],[102.877591,33.218741],[102.87769,33.218967],[102.878208,33.219444],[102.878635,33.219896],[102.878605,33.220041],[102.878397,33.220148],[102.878032,33.220276],[102.877952,33.220433],[102.878093,33.220621],[102.878608,33.220927],[102.879037,33.221043],[102.879335,33.220916],[102.879482,33.220651],[102.87951,33.220405],[102.879434,33.220021],[102.879404,33.219671],[102.879485,33.219508],[102.879722,33.219436],[102.880109,33.219437],[102.880335,33.219572],[102.880419,33.219811],[102.880538,33.220309],[102.880496,33.220597],[102.880425,33.22094],[102.880412,33.221079],[102.88056,33.221167],[102.880773,33.221087],[102.880946,33.220894],[102.881144,33.220709],[102.881418,33.220599],[102.881724,33.220602],[102.882309,33.220678],[102.882516,33.220616],[102.882813,33.22048],[102.883136,33.220489],[102.883571,33.220592],[102.883763,33.220655],[102.884003,33.220622],[102.884236,33.22061],[102.884372,33.220649],[102.884458,33.220786],[102.884507,33.220964],[102.884587,33.221201],[102.884615,33.221397],[102.884611,33.221624],[102.884594,33.222066],[102.88469,33.222463],[102.884879,33.222571],[102.885279,33.222559],[102.885777,33.222554],[102.885982,33.22267],[102.88598,33.222849],[102.88569,33.223094],[102.885317,33.223368],[102.885301,33.223496],[102.885456,33.223606],[102.885738,33.223582],[102.886025,33.223404],[102.886486,33.222829],[102.886929,33.222156],[102.887182,33.222059],[102.88735,33.222165],[102.887351,33.222323],[102.887083,33.223284],[102.886881,33.224173],[102.886656,33.224978],[102.886652,33.225178],[102.886773,33.225222],[102.887335,33.224988],[102.887719,33.22489],[102.88793,33.224916],[102.888442,33.225208],[102.888722,33.225427],[102.888766,33.225625],[102.88868,33.225783],[102.888423,33.226394],[102.888141,33.227232],[102.887977,33.227336],[102.887689,33.227256],[102.887502,33.227143],[102.886993,33.22674],[102.886835,33.226434],[102.886748,33.225892],[102.886656,33.225617],[102.88636,33.225543],[102.886035,33.225567],[102.885743,33.225722],[102.885578,33.225929],[102.885606,33.226216],[102.885872,33.226623],[102.886061,33.226983],[102.886162,33.227884],[102.886237,33.228639],[102.886503,33.228746],[102.886771,33.228909],[102.88681,33.229111],[102.88671,33.229269],[102.886361,33.229416],[102.885909,33.229402],[102.884948,33.229353],[102.884144,33.229267],[102.883596,33.229144],[102.883219,33.22881],[102.882999,33.228686],[102.882816,33.228726],[102.88273,33.229128],[102.882805,33.229593],[102.883041,33.230494],[102.883432,33.230886],[102.883645,33.230958],[102.8839,33.230826],[102.88417,33.230331],[102.884403,33.229662],[102.884605,33.229554],[102.884872,33.22964],[102.885304,33.229768],[102.885683,33.229834],[102.886169,33.229821],[102.886355,33.22985],[102.886318,33.23],[102.886141,33.230177],[102.885533,33.230879],[102.885255,33.231377],[102.88518,33.231593],[102.885261,33.231703],[102.885497,33.231744],[102.885966,33.23162],[102.886469,33.231435],[102.886753,33.231426],[102.88693,33.231496],[102.887065,33.231665],[102.887173,33.231934],[102.887334,33.232467],[102.887353,33.232666],[102.887254,33.232817],[102.887074,33.232833],[102.88683,33.232844],[102.886515,33.232891],[102.886205,33.232957],[102.886112,33.233058],[102.886143,33.233207],[102.886338,33.233358],[102.886677,33.233472],[102.88697,33.23345],[102.887288,33.233387],[102.887654,33.233339],[102.888415,33.233116],[102.889023,33.232847],[102.889106,33.232582],[102.889187,33.232291],[102.889355,33.232205],[102.889523,33.232236],[102.889832,33.232529],[102.890171,33.232977],[102.890233,33.233132],[102.89004,33.233276],[102.889766,33.233494],[102.889417,33.233794],[102.888742,33.234203],[102.888388,33.234381],[102.888307,33.234524],[102.888403,33.234632],[102.888722,33.234691],[102.889308,33.23478],[102.889447,33.234878],[102.889469,33.235083],[102.889301,33.235258],[102.888952,33.235426],[102.888621,33.235487],[102.888223,33.235521],[102.887839,33.235474],[102.887152,33.235156],[102.886755,33.234968],[102.886697,33.234862],[102.886779,33.234708],[102.886945,33.234411],[102.886993,33.234245],[102.886818,33.234178],[102.886645,33.234228],[102.886336,33.234504],[102.886005,33.234933],[102.885894,33.235239],[102.88575,33.235887],[102.885654,33.235997],[102.885538,33.236025],[102.885424,33.235934],[102.885224,33.235722],[102.885037,33.235579],[102.884805,33.235541],[102.884645,33.235591],[102.884464,33.235773],[102.884382,33.236088],[102.884376,33.236331],[102.884594,33.236461],[102.885068,33.236788],[102.885294,33.237065],[102.885354,33.237343],[102.885254,33.237528],[102.885069,33.23768],[102.884622,33.237852],[102.884345,33.23784],[102.883727,33.237662],[102.883055,33.237506],[102.882795,33.237591],[102.882744,33.237793],[102.88296,33.238079],[102.883384,33.238282],[102.884197,33.238521],[102.884537,33.238525],[102.884742,33.23831],[102.885012,33.238159],[102.88524,33.23813],[102.885324,33.238343],[102.885333,33.238752],[102.885351,33.239348],[102.88529,33.239803],[102.88507,33.239879],[102.884398,33.239742],[102.884024,33.239736],[102.883863,33.239882],[102.883846,33.240162],[102.884194,33.240336],[102.884848,33.240541],[102.885931,33.240851],[102.886625,33.241094],[102.886962,33.241286],[102.887068,33.241412],[102.887066,33.241559],[102.886971,33.241722],[102.886906,33.241905],[102.886872,33.242161],[102.886869,33.242297],[102.887023,33.242332],[102.88727,33.242238],[102.887805,33.24201],[102.888687,33.241701],[102.889379,33.241501],[102.889574,33.241516],[102.889703,33.241628],[102.889737,33.241851],[102.889561,33.242176],[102.88931,33.242391],[102.889041,33.242784],[102.889042,33.242905],[102.889181,33.243007],[102.889383,33.243044],[102.889892,33.24299],[102.890284,33.242971],[102.890503,33.243012],[102.890846,33.243211],[102.891113,33.243297],[102.891266,33.243225],[102.891251,33.243046],[102.89107,33.242802],[102.890757,33.242475],[102.890742,33.242299],[102.890848,33.242154],[102.891057,33.242077],[102.891472,33.242111],[102.892056,33.242296],[102.892356,33.242473],[102.892435,33.242723],[102.892283,33.243067],[102.891935,33.243422],[102.891163,33.24389],[102.890562,33.244241],[102.889853,33.244604],[102.889654,33.244733],[102.889557,33.244944],[102.889802,33.245114],[102.890317,33.2452],[102.890887,33.245127],[102.891293,33.244869],[102.891645,33.244558],[102.892258,33.244044],[102.892504,33.243968],[102.892716,33.243995],[102.893113,33.244172],[102.893426,33.244428],[102.893923,33.244959],[102.89429,33.245438],[102.894264,33.245594],[102.894022,33.245742],[102.893459,33.245776],[102.89241,33.245672],[102.892226,33.245703],[102.892149,33.245779],[102.892141,33.245979],[102.892439,33.24628],[102.892784,33.24648],[102.893311,33.246555],[102.893818,33.246548],[102.894883,33.246468],[102.895153,33.246499],[102.895398,33.24658],[102.89582,33.246931],[102.896192,33.247056],[102.896394,33.246997],[102.896449,33.246828],[102.896273,33.246549],[102.895895,33.246229],[102.895818,33.246078],[102.895906,33.245939],[102.896189,33.245865],[102.896799,33.245863],[102.897115,33.245915],[102.897341,33.246041],[102.897529,33.24623],[102.897822,33.246552],[102.898129,33.246865],[102.898144,33.24697],[102.897862,33.247193],[102.897746,33.24737],[102.89772,33.247506],[102.897828,33.247606],[102.89805,33.247686],[102.898386,33.247744],[102.899047,33.247929],[102.899276,33.248081],[102.899398,33.248322],[102.899431,33.248606],[102.899403,33.2491],[102.899288,33.249309],[102.898936,33.249619],[102.898817,33.249805],[102.898974,33.249935],[102.899372,33.250204],[102.899654,33.250625],[102.899824,33.251013],[102.899726,33.251142],[102.899016,33.251156],[102.898378,33.251233],[102.897627,33.251277],[102.897016,33.251388],[102.896725,33.251494],[102.896494,33.251712],[102.89637,33.251827],[102.896213,33.25182],[102.896089,33.25161],[102.895998,33.251345],[102.895913,33.250906],[102.895741,33.250662],[102.895498,33.250669],[102.895342,33.250815],[102.895287,33.251103],[102.895287,33.251499],[102.895229,33.251543],[102.895215,33.251553],[102.895108,33.251635],[102.895065,33.251667],[102.8946,33.252208],[102.894164,33.252633],[102.894157,33.252639],[102.894068,33.252726],[102.894085,33.252752],[102.894194,33.252928],[102.894255,33.253026],[102.895721,33.255386],[102.895736,33.255445],[102.895739,33.255484],[102.895741,33.255526],[102.895741,33.255564],[102.895732,33.255602],[102.895716,33.25565],[102.895714,33.25568],[102.895713,33.2557],[102.895726,33.255718],[102.895744,33.255718],[102.89575,33.255705],[102.895762,33.255691],[102.895771,33.255693],[102.895782,33.255703],[102.895788,33.25571],[102.895805,33.255748],[102.89583,33.255811],[102.895843,33.255845],[102.895863,33.255849],[102.895875,33.255844],[102.895879,33.255821],[102.895877,33.255776],[102.895862,33.25574],[102.895853,33.255707],[102.895852,33.25568],[102.895851,33.255654],[102.895862,33.255613],[102.896195,33.256149],[102.896639,33.256863],[102.896783,33.257095],[102.897857,33.258822],[102.918741,33.29242],[102.918913,33.292696],[102.918917,33.292834],[102.919007,33.292947],[102.919032,33.293128],[102.918998,33.293294],[102.918977,33.293403],[102.918996,33.293508],[102.919071,33.293562],[102.919194,33.293638],[102.91929,33.293746],[102.919345,33.29385],[102.919388,33.29395],[102.919384,33.294087],[102.919316,33.294215],[102.91927,33.294281],[102.919245,33.294396],[102.91929,33.294488],[102.919364,33.29455],[102.919532,33.29459],[102.919662,33.294607],[102.919821,33.294617],[102.919901,33.294644],[102.920008,33.294696],[102.920188,33.294747],[102.920341,33.29463],[102.920409,33.294639],[102.92046,33.294618],[102.920504,33.294597],[102.920524,33.294569],[102.920537,33.294543],[102.920567,33.294497],[102.920603,33.294483],[102.920786,33.294569],[102.921041,33.294573],[102.921283,33.294565],[102.921339,33.294614],[102.92125,33.294756],[102.920962,33.29493],[102.920874,33.295036],[102.920799,33.295032],[102.920757,33.295015],[102.920713,33.294983],[102.920685,33.294959],[102.920664,33.294929],[102.920652,33.294904],[102.920621,33.294895],[102.920584,33.294903],[102.920547,33.294919],[102.920524,33.294925],[102.920476,33.294921],[102.920443,33.294912],[102.92039,33.294918],[102.92035,33.294943],[102.920329,33.294973],[102.920226,33.295043],[102.920174,33.295158],[102.920147,33.295233],[102.9201,33.295312],[102.920066,33.295363],[102.920028,33.295426],[102.920021,33.295494],[102.920026,33.295557],[102.920055,33.295598],[102.920094,33.295609],[102.92021,33.295614],[102.920307,33.295606],[102.920416,33.29558],[102.920493,33.295573],[102.92057,33.295515],[102.92063,33.295457],[102.920666,33.295516],[102.92071,33.295589],[102.920946,33.295986],[102.921019,33.296109],[102.92084,33.296106],[102.920608,33.296102],[102.920377,33.296098],[102.920145,33.296095],[102.919913,33.296091],[102.919682,33.296087],[102.91945,33.296083],[102.919219,33.296079],[102.918987,33.296075],[102.918746,33.296088],[102.918506,33.2961],[102.918265,33.296112],[102.918024,33.296125],[102.917783,33.296137],[102.917542,33.296149],[102.917301,33.296161],[102.917061,33.296174],[102.91682,33.296186],[102.916666,33.296194],[102.916579,33.296198],[102.916338,33.296211],[102.916097,33.296223],[102.915841,33.296232],[102.915585,33.296242],[102.915329,33.296251],[102.915072,33.29626],[102.914816,33.29627],[102.91456,33.296279],[102.914303,33.296288],[102.914047,33.296297],[102.913791,33.296307],[102.913534,33.296316],[102.913278,33.296325],[102.913022,33.296335],[102.912766,33.296344],[102.912509,33.296353],[102.912253,33.296363],[102.911997,33.296372],[102.911729,33.296377],[102.911462,33.296381],[102.911195,33.296385],[102.910927,33.29639],[102.91066,33.296394],[102.910392,33.296399],[102.910125,33.296403],[102.909858,33.296408],[102.90959,33.296412],[102.909323,33.296417],[102.909065,33.296439],[102.908808,33.296462],[102.908486,33.296493],[102.908164,33.296524],[102.907886,33.296609],[102.907561,33.296751],[102.907552,33.296755],[102.907217,33.296902],[102.906998,33.297096],[102.906779,33.297289],[102.906645,33.297448],[102.906462,33.297587],[102.906278,33.297726],[102.906095,33.297866],[102.905912,33.298005],[102.905728,33.298144],[102.905545,33.298283],[102.905362,33.298422],[102.905178,33.298561],[102.904894,33.298843],[102.904609,33.299125],[102.904325,33.299407],[102.904115,33.299655],[102.903906,33.299902],[102.903742,33.30007],[102.903578,33.300238],[102.903381,33.300379],[102.903056,33.300553],[102.902731,33.300727],[102.902397,33.300855],[102.902063,33.300984],[102.901842,33.301061],[102.90162,33.301138],[102.901399,33.301215],[102.901178,33.301293],[102.900797,33.301404],[102.900416,33.301516],[102.900116,33.301566],[102.899838,33.301579],[102.899582,33.301539],[102.899347,33.301518],[102.898919,33.301493],[102.898585,33.301603],[102.898251,33.301713],[102.898056,33.30185],[102.89786,33.301988],[102.897664,33.302125],[102.897469,33.302263],[102.897273,33.3024],[102.897078,33.302538],[102.896903,33.302696],[102.896728,33.302854],[102.896553,33.303013],[102.896378,33.303171],[102.896203,33.30333],[102.896028,33.303488],[102.895853,33.303647],[102.895678,33.303805],[102.895483,33.303972],[102.895288,33.304138],[102.895093,33.304305],[102.894898,33.304471],[102.894703,33.304637],[102.894508,33.304804],[102.894212,33.305077],[102.893916,33.30535],[102.893763,33.305509],[102.893567,33.305684],[102.893349,33.305807],[102.893198,33.305857],[102.892907,33.305969],[102.892616,33.30608],[102.892337,33.306165],[102.892014,33.306215],[102.891725,33.306237],[102.891436,33.306258],[102.891007,33.306269],[102.890579,33.306279],[102.890354,33.306302],[102.89013,33.306326],[102.88984,33.306356],[102.88955,33.306387],[102.889388,33.306385],[102.889136,33.306343],[102.888883,33.3063],[102.888587,33.306231],[102.888291,33.306162],[102.88793,33.306061],[102.887568,33.30596],[102.887359,33.305848],[102.887149,33.305736],[102.886927,33.305643],[102.886705,33.30555],[102.886483,33.305456],[102.88626,33.305363],[102.886038,33.305269],[102.885816,33.305176],[102.885594,33.305082],[102.885371,33.304989],[102.885022,33.304839],[102.884829,33.304853],[102.88453,33.304884],[102.884206,33.304968],[102.884009,33.305163],[102.883766,33.305499],[102.883586,33.305882],[102.883405,33.306264],[102.883206,33.306584],[102.883006,33.30685],[102.882841,33.307053],[102.882676,33.307257],[102.882521,33.307443],[102.882367,33.307629],[102.882189,33.307904],[102.882011,33.308178],[102.881919,33.308462],[102.88185,33.308677],[102.88178,33.308892],[102.881676,33.309175],[102.881571,33.309458],[102.881455,33.309814],[102.881428,33.310066],[102.881442,33.310371],[102.881519,33.310696],[102.881566,33.310983],[102.881612,33.311271],[102.88165,33.311504],[102.881685,33.311847],[102.881719,33.312151],[102.881713,33.312402],[102.881707,33.312653],[102.881636,33.31294],[102.881566,33.31319],[102.881428,33.313598],[102.881326,33.313968],[102.881225,33.314337],[102.881123,33.314707],[102.881055,33.31495],[102.880988,33.315192],[102.88092,33.315435],[102.880853,33.315678],[102.880785,33.315921],[102.880718,33.316164],[102.88065,33.316406],[102.880583,33.316649],[102.880463,33.316898],[102.880343,33.317147],[102.880223,33.317396],[102.880103,33.317646],[102.879983,33.317895],[102.879863,33.318144],[102.879661,33.318517],[102.879419,33.318835],[102.879176,33.319154],[102.878903,33.319392],[102.878629,33.319629],[102.878304,33.319785],[102.878067,33.319871],[102.877679,33.319972],[102.877336,33.320012],[102.876993,33.320051],[102.876591,33.320052],[102.87619,33.320053],[102.876116,33.320053],[102.875867,33.320025],[102.875619,33.319996],[102.87537,33.319968],[102.875121,33.31994],[102.874872,33.319912],[102.874623,33.319884],[102.874353,33.319885],[102.874083,33.319886],[102.873813,33.319887],[102.873543,33.319888],[102.873147,33.31989],[102.872751,33.319892],[102.872386,33.319958],[102.872133,33.32003],[102.87188,33.320102],[102.871627,33.320174],[102.871374,33.320246],[102.871121,33.320317],[102.870868,33.320389],[102.870615,33.320461],[102.870362,33.320533],[102.870137,33.320602],[102.869913,33.320672],[102.869688,33.320741],[102.869464,33.320811],[102.869239,33.32088],[102.869015,33.32095],[102.868791,33.321019],[102.868566,33.321088],[102.868342,33.321158],[102.868117,33.321227],[102.867893,33.321297],[102.867668,33.321366],[102.867268,33.32142],[102.867031,33.321452],[102.866796,33.321448],[102.866561,33.321444],[102.866338,33.321378],[102.866115,33.321311],[102.865936,33.321164],[102.865757,33.321017],[102.865454,33.320725],[102.865151,33.320432],[102.864936,33.320272],[102.864721,33.320111],[102.864506,33.319951],[102.864291,33.31979],[102.864059,33.319643],[102.863828,33.319495],[102.863572,33.319455],[102.863316,33.319415],[102.863048,33.319354],[102.86278,33.319294],[102.862512,33.319234],[102.862244,33.319174],[102.861976,33.319114],[102.861708,33.319054],[102.86144,33.318993],[102.861172,33.318933],[102.860904,33.318873],[102.860636,33.318813],[102.860259,33.318641],[102.859882,33.318469],[102.859505,33.318297],[102.859092,33.318124],[102.858679,33.317951],[102.858266,33.317778],[102.857853,33.317605],[102.857639,33.317525],[102.857424,33.317445],[102.857209,33.317365],[102.856995,33.317285],[102.85678,33.317205],[102.856566,33.317125],[102.856351,33.317045],[102.856136,33.316965],[102.855892,33.316916],[102.855648,33.316866],[102.855351,33.316772],[102.855011,33.316641],[102.854652,33.316473],[102.854421,33.316272],[102.854171,33.316034],[102.854,33.315851],[102.85383,33.315669],[102.85366,33.315487],[102.85349,33.315304],[102.85332,33.315122],[102.853149,33.31494],[102.852878,33.314675],[102.852606,33.31441],[102.85233,33.314315],[102.851914,33.314281],[102.851498,33.314246],[102.851082,33.314212],[102.850683,33.314199],[102.850284,33.314186],[102.849885,33.314172],[102.849671,33.314222],[102.849498,33.314256],[102.849248,33.314404],[102.848998,33.314552],[102.848747,33.314763],[102.848496,33.314973],[102.848324,33.315025],[102.848217,33.31504],[102.847896,33.315035],[102.847661,33.315013],[102.847342,33.314935],[102.847096,33.314814],[102.846851,33.314694],[102.846605,33.314573],[102.84636,33.314452],[102.846114,33.314331],[102.845868,33.31421],[102.845623,33.314089],[102.845377,33.313969],[102.845153,33.313826],[102.84493,33.313683],[102.844706,33.31354],[102.844482,33.313397],[102.844258,33.313254],[102.844034,33.313112],[102.843811,33.312969],[102.843587,33.312826],[102.84337,33.312715],[102.843154,33.312603],[102.842938,33.312492],[102.842721,33.312381],[102.842478,33.312287],[102.842234,33.312192],[102.842011,33.31213],[102.841788,33.312068],[102.841565,33.312006],[102.841341,33.311944],[102.841065,33.311903],[102.840788,33.311863],[102.840516,33.311844],[102.840244,33.311826],[102.839972,33.311807],[102.839701,33.311789],[102.839429,33.31177],[102.839157,33.311752],[102.838886,33.311733],[102.838614,33.311714],[102.838386,33.311701],[102.838158,33.311688],[102.83793,33.311675],[102.837702,33.311662],[102.837474,33.311649],[102.837246,33.311636],[102.836842,33.311594],[102.836628,33.311573],[102.836393,33.311567],[102.836072,33.31158],[102.835672,33.31177],[102.835271,33.31196],[102.835096,33.312125],[102.834921,33.312289],[102.834746,33.312454],[102.834571,33.312619],[102.834396,33.312783],[102.834221,33.312948],[102.833979,33.313176],[102.833827,33.313244],[102.833612,33.313313],[102.833333,33.313345],[102.832991,33.313356],[102.832565,33.31326],[102.832237,33.313137],[102.831908,33.313015],[102.831741,33.312841],[102.831574,33.312668],[102.831408,33.312463],[102.831242,33.312258],[102.831076,33.312054],[102.83091,33.311849],[102.830744,33.311644],[102.830578,33.31144],[102.830412,33.311235],[102.830246,33.31103],[102.830037,33.310834],[102.829815,33.31067],[102.829593,33.310506],[102.829319,33.310369],[102.829046,33.310232],[102.828983,33.310219],[102.828625,33.310122],[102.828266,33.310025],[102.827908,33.309928],[102.827566,33.309922],[102.827225,33.309916],[102.82686,33.309964],[102.826579,33.310031],[102.826451,33.310083],[102.826255,33.310258],[102.826032,33.310612],[102.82596,33.310926],[102.825887,33.311239],[102.825839,33.311489],[102.82579,33.31174],[102.825632,33.312059],[102.825475,33.312289],[102.825301,33.312465],[102.824954,33.312621],[102.824707,33.31268],[102.824459,33.312739],[102.824237,33.312792],[102.824015,33.312844],[102.823792,33.312897],[102.82357,33.31295],[102.823348,33.313003],[102.823125,33.313056],[102.822899,33.313112],[102.822672,33.313168],[102.822445,33.313225],[102.822218,33.313281],[102.821991,33.313337],[102.821764,33.313393],[102.821537,33.313449],[102.82131,33.313506],[102.821083,33.313562],[102.820856,33.313618],[102.820641,33.313684],[102.820425,33.313749],[102.82021,33.313815],[102.819994,33.31388],[102.819779,33.313946],[102.819563,33.314011],[102.819348,33.314077],[102.819132,33.314142],[102.818743,33.314338],[102.818353,33.314533],[102.817964,33.314728],[102.817574,33.314924],[102.817247,33.315178],[102.816919,33.315433],[102.816688,33.315698],[102.816456,33.315962],[102.816149,33.316284],[102.815841,33.316607],[102.815534,33.316929],[102.815227,33.317251],[102.814895,33.317529],[102.814563,33.317808],[102.814301,33.318001],[102.813977,33.318138],[102.813689,33.318168],[102.813677,33.318169],[102.813292,33.318143],[102.812933,33.318029],[102.812592,33.317917],[102.812347,33.317867],[102.812103,33.317818],[102.811739,33.317789],[102.811665,33.317783],[102.811228,33.317748],[102.810958,33.317746],[102.810688,33.317743],[102.810418,33.317741],[102.810148,33.317739],[102.809878,33.317736],[102.809608,33.317734],[102.809517,33.317733],[102.809338,33.317731],[102.809211,33.31773],[102.809068,33.317729],[102.808798,33.317726],[102.808528,33.317724],[102.808456,33.317723],[102.808258,33.317721],[102.807988,33.317719],[102.807718,33.317716],[102.807448,33.317714],[102.807178,33.317711],[102.806908,33.317709],[102.806639,33.317717],[102.80637,33.317724],[102.8061,33.317732],[102.805831,33.31774],[102.805562,33.317748],[102.805292,33.317756],[102.805023,33.317763],[102.804754,33.317771],[102.804484,33.317779],[102.804215,33.317787],[102.803946,33.317795],[102.803676,33.317802],[102.803407,33.31781],[102.803138,33.317818],[102.802868,33.317826],[102.802599,33.317833],[102.80233,33.317841],[102.80206,33.317849],[102.801791,33.317857],[102.801522,33.317865],[102.801251,33.317896],[102.80098,33.317927],[102.800709,33.317958],[102.800439,33.317989],[102.800168,33.31802],[102.799897,33.318051],[102.799626,33.318082],[102.799355,33.318113],[102.799085,33.318144],[102.798814,33.318175],[102.798543,33.318206],[102.798272,33.318237],[102.798001,33.318268],[102.797731,33.318299],[102.79746,33.31833],[102.797189,33.318361],[102.796943,33.318396],[102.796698,33.318431],[102.796453,33.318466],[102.796207,33.3185],[102.795962,33.318535],[102.795716,33.31857],[102.795481,33.318584],[102.795245,33.318597],[102.79501,33.318611],[102.794774,33.318625],[102.794538,33.318638],[102.794303,33.318652],[102.7942,33.318647],[102.79387,33.318631],[102.793438,33.31861],[102.793005,33.318589],[102.792573,33.318567],[102.792196,33.318525],[102.791818,33.318482],[102.791441,33.318439],[102.791079,33.318406],[102.790717,33.318373],[102.790267,33.318365],[102.789818,33.318357],[102.789551,33.318339],[102.789284,33.318321],[102.789017,33.318302],[102.788751,33.318284],[102.788484,33.318266],[102.788217,33.318248],[102.78795,33.31823],[102.787683,33.318212],[102.787324,33.318122],[102.786964,33.318032],[102.786557,33.317924],[102.786196,33.317795],[102.785945,33.3177],[102.785693,33.317605],[102.785369,33.317518],[102.785045,33.31743],[102.784816,33.317366],[102.784586,33.317301],[102.784356,33.317236],[102.784127,33.317171],[102.783897,33.317106],[102.783667,33.317041],[102.783437,33.316976],[102.783208,33.316911],[102.782978,33.316846],[102.782748,33.316781],[102.782519,33.316716],[102.782289,33.316651],[102.782059,33.316586],[102.78183,33.316521],[102.781544,33.316374],[102.781329,33.316259],[102.781114,33.316144],[102.780846,33.315961],[102.780577,33.315778],[102.780309,33.315595],[102.779943,33.315336],[102.779577,33.315077],[102.77921,33.314818],[102.778844,33.314559],[102.778711,33.31433],[102.778644,33.314111],[102.77854,33.313688],[102.778435,33.313264],[102.778297,33.313031],[102.778159,33.312798],[102.778111,33.312725],[102.77793,33.312455],[102.777769,33.312303],[102.777768,33.312303],[102.77755,33.312227],[102.777232,33.312171],[102.777226,33.31217],[102.776969,33.312093],[102.776817,33.312017],[102.776731,33.311913],[102.776636,33.311741],[102.776494,33.311622],[102.776383,33.311554],[102.776174,33.311426],[102.775965,33.311298],[102.775756,33.311169],[102.775547,33.311041],[102.775337,33.310913],[102.775128,33.310785],[102.774919,33.310657],[102.77471,33.310529],[102.774353,33.31031],[102.774095,33.310276],[102.773705,33.310171],[102.77345,33.310067],[102.773333,33.310019],[102.773086,33.309838],[102.772867,33.309543],[102.772751,33.309225],[102.772635,33.308906],[102.772518,33.308588],[102.772505,33.308553],[102.772315,33.308381],[102.771925,33.308172],[102.771606,33.308025],[102.771287,33.307877],[102.771147,33.307815],[102.771049,33.307772],[102.770878,33.307687],[102.770659,33.307658],[102.770373,33.30763],[102.770069,33.307534],[102.76974,33.307434],[102.769412,33.307335],[102.769098,33.307135],[102.768869,33.306963],[102.768842,33.306882],[102.768727,33.306542],[102.768612,33.306202],[102.768543,33.306032],[102.768368,33.305901],[102.768181,33.305762],[102.767995,33.305623],[102.767643,33.30536],[102.767316,33.305187],[102.766988,33.305014],[102.766661,33.304841],[102.766376,33.304699],[102.76609,33.304558],[102.7657,33.304365],[102.765395,33.304089],[102.765215,33.303861],[102.765189,33.303824],[102.765053,33.303632],[102.764862,33.30347],[102.764615,33.303404],[102.764196,33.303356],[102.763904,33.303437],[102.763612,33.303517],[102.763473,33.303556],[102.763346,33.303581],[102.763178,33.303613],[102.762854,33.303584],[102.762473,33.303508],[102.762212,33.303423],[102.76195,33.303337],[102.761769,33.303223],[102.761636,33.303097],[102.761598,33.303061],[102.76148,33.302914],[102.761295,33.302844],[102.76114,33.302794],[102.760907,33.302813],[102.760675,33.302833],[102.760351,33.302804],[102.760027,33.30268],[102.759732,33.302595],[102.759437,33.302509],[102.759171,33.302394],[102.759085,33.302357],[102.758762,33.302252],[102.758438,33.302147],[102.758124,33.302109],[102.75781,33.302223],[102.757496,33.302484],[102.757182,33.302744],[102.756867,33.303004],[102.756866,33.303004],[102.756865,33.303005],[102.756605,33.303123],[102.756344,33.303242],[102.755906,33.303318],[102.75564,33.303328],[102.755373,33.303337],[102.755021,33.303251],[102.75481,33.303166],[102.7546,33.303081],[102.754574,33.303071],[102.754269,33.302918],[102.753917,33.302658],[102.753566,33.302398],[102.753214,33.302137],[102.75306,33.302024],[102.75281,33.301849],[102.752559,33.301675],[102.752308,33.3015],[102.752213,33.301433],[102.752118,33.301272],[102.752099,33.30092],[102.75208,33.300567],[102.752054,33.300482],[102.751948,33.300129],[102.751842,33.299777],[102.751731,33.299489],[102.75162,33.2992],[102.751536,33.298981],[102.751509,33.298911],[102.751515,33.298699],[102.751518,33.298578],[102.75154,33.298207],[102.751562,33.297836],[102.751583,33.297479],[102.751604,33.297122],[102.751585,33.296694],[102.751573,33.296427],[102.751561,33.29616],[102.751477,33.295949],[102.751443,33.295901],[102.751362,33.295786],[102.751219,33.295702],[102.751187,33.295684],[102.750976,33.295561],[102.750701,33.295465],[102.750425,33.295368],[102.750285,33.295321],[102.750227,33.295254],[102.750195,33.295218],[102.750005,33.294971],[102.749848,33.294766],[102.749691,33.294562],[102.749482,33.294409],[102.74922,33.294309],[102.748958,33.294209],[102.748673,33.294117],[102.748387,33.294025],[102.748102,33.293933],[102.747883,33.293819],[102.74773,33.293667],[102.747678,33.293573],[102.747645,33.293515],[102.747645,33.293463],[102.747645,33.293018],[102.747645,33.292572],[102.747616,33.292334],[102.747501,33.291937],[102.747387,33.29154],[102.747272,33.291142],[102.747226,33.290983],[102.747116,33.290655],[102.747007,33.290326],[102.746769,33.290079],[102.746498,33.290017],[102.746227,33.289955],[102.745836,33.289879],[102.745541,33.289755],[102.745227,33.289527],[102.744994,33.289256],[102.744761,33.288985],[102.74458,33.288775],[102.744294,33.288613],[102.744018,33.288565],[102.743601,33.288615],[102.743557,33.288603],[102.743279,33.288588],[102.743094,33.288578],[102.743001,33.288573],[102.742638,33.288565],[102.742325,33.288539],[102.742013,33.288473],[102.741701,33.288406],[102.741364,33.288339],[102.741102,33.288194],[102.740914,33.287987],[102.740753,33.28768],[102.740674,33.287446],[102.740595,33.287211],[102.740485,33.286864],[102.74037,33.286558],[102.740257,33.286292],[102.740021,33.286086],[102.739773,33.285868],[102.739525,33.285651],[102.739364,33.285475],[102.739202,33.2853],[102.73904,33.285125],[102.738879,33.28495],[102.738717,33.284775],[102.738555,33.284599],[102.738393,33.284424],[102.738232,33.284249],[102.738042,33.284099],[102.737853,33.283948],[102.737664,33.283798],[102.737474,33.283647],[102.737285,33.283497],[102.737095,33.283346],[102.736906,33.283196],[102.736717,33.283045],[102.736473,33.282943],[102.73623,33.282842],[102.735942,33.282746],[102.735655,33.282649],[102.735392,33.282553],[102.735128,33.282457],[102.734816,33.28236],[102.734504,33.282263],[102.734203,33.282237],[102.733902,33.282212],[102.733712,33.282244],[102.733417,33.282387],[102.733121,33.282531],[102.732825,33.282674],[102.732464,33.282798],[102.73215,33.282817],[102.731921,33.282798],[102.731636,33.282702],[102.731322,33.282502],[102.731007,33.282303],[102.73077,33.282248],[102.730567,33.282232],[102.730254,33.282226],[102.73004,33.282235],[102.729796,33.282293],[102.729551,33.28235],[102.729199,33.282388],[102.729018,33.28235],[102.728733,33.282245],[102.728585,33.282118],[102.72839,33.28195],[102.728228,33.281779],[102.728162,33.281532],[102.728151,33.281488],[102.728095,33.281256],[102.728019,33.280865],[102.727762,33.28077],[102.727376,33.280713],[102.726991,33.280656],[102.726779,33.280578],[102.726705,33.280551],[102.726477,33.280437],[102.72623,33.280342],[102.725925,33.28018],[102.725738,33.279968],[102.725448,33.279638],[102.72544,33.279628],[102.725225,33.279433],[102.725011,33.279238],[102.724791,33.279128],[102.724571,33.279018],[102.724554,33.279009],[102.724269,33.278902],[102.723983,33.278794],[102.723698,33.278686],[102.723422,33.278643],[102.723146,33.2786],[102.722781,33.278575],[102.722416,33.278549],[102.722051,33.278524],[102.721623,33.278476],[102.721261,33.278305],[102.721004,33.278115],[102.720814,33.277734],[102.720647,33.277496],[102.720481,33.277258],[102.72029,33.277001],[102.720162,33.276778],[102.720148,33.276754],[102.720014,33.276525],[102.719795,33.276316],[102.71951,33.27604],[102.719509,33.276039],[102.719509,33.276038],[102.719301,33.275678],[102.71911,33.27545],[102.718882,33.275126],[102.718644,33.274917],[102.718463,33.274745],[102.718257,33.274498],[102.718051,33.274251],[102.717892,33.27406],[102.717678,33.27376],[102.717464,33.273461],[102.717424,33.273264],[102.717375,33.273193],[102.717264,33.27303],[102.71713,33.272937],[102.716907,33.272785],[102.716683,33.272632],[102.71646,33.272326],[102.716237,33.272019],[102.71615,33.2719],[102.716084,33.2717],[102.716055,33.271424],[102.716029,33.271202],[102.716007,33.271014],[102.715961,33.270858],[102.71595,33.270824],[102.715865,33.270634],[102.715722,33.270443],[102.715579,33.270253],[102.715403,33.27011],[102.715227,33.269967],[102.715181,33.269933],[102.714968,33.26977],[102.71483,33.269592],[102.714692,33.269413],[102.714462,33.269201],[102.714231,33.26899],[102.714114,33.268771],[102.713998,33.268552],[102.713931,33.268457],[102.713803,33.268361],[102.713741,33.268261],[102.713739,33.268248],[102.713717,33.268076],[102.713684,33.267766],[102.713677,33.267674],[102.71366,33.26741],[102.713555,33.267005],[102.713455,33.266798],[102.713355,33.266591],[102.713222,33.266443],[102.713046,33.266334],[102.712807,33.266241],[102.712665,33.266187],[102.71228,33.265996],[102.711894,33.265806],[102.711642,33.265634],[102.711494,33.265515],[102.71128,33.265187],[102.711214,33.265092],[102.71119,33.264973],[102.711171,33.264849],[102.711028,33.264649],[102.710909,33.26444],[102.7107,33.264354],[102.710533,33.264259],[102.710428,33.264164],[102.710338,33.26405],[102.710262,33.263974],[102.710133,33.263897],[102.709857,33.26384],[102.70947,33.263733],[102.709082,33.263626],[102.708782,33.263498],[102.708425,33.263257],[102.708068,33.263017],[102.707721,33.262765],[102.707602,33.262608],[102.707421,33.26237],[102.707383,33.262284],[102.707359,33.262118],[102.707349,33.262078],[102.707311,33.261932],[102.707235,33.261832],[102.707069,33.261737],[102.706975,33.261688],[102.706686,33.261539],[102.706398,33.26139],[102.706298,33.261294],[102.706274,33.261223],[102.706272,33.261209],[102.70626,33.261123],[102.706198,33.261014],[102.706074,33.260952],[102.705908,33.260937],[102.7059,33.260938],[102.705636,33.260971],[102.705432,33.260937],[102.705294,33.260876],[102.70507,33.260709],[102.704846,33.260542],[102.704632,33.260447],[102.704342,33.260352],[102.704144,33.260237],[102.704013,33.260162],[102.703785,33.259986],[102.703633,33.259795],[102.703452,33.259434],[102.703361,33.259348],[102.703138,33.259267],[102.702947,33.259196],[102.702729,33.259096],[102.702581,33.258967],[102.702315,33.258748],[102.702048,33.258529],[102.701846,33.258284],[102.701644,33.258039],[102.701501,33.257768],[102.701372,33.25772],[102.701229,33.25773],[102.70112,33.257801],[102.700977,33.257901],[102.700735,33.257977],[102.70071,33.25798],[102.700421,33.258009],[102.700363,33.258015],[102.700225,33.258039],[102.70013,33.258073],[102.70004,33.258149],[102.699887,33.258353],[102.699714,33.258701],[102.69954,33.259048],[102.699335,33.259265],[102.699131,33.259481],[102.698926,33.259614],[102.698769,33.259729],[102.698541,33.259781],[102.698312,33.25981],[102.698208,33.259857],[102.698096,33.260183],[102.697984,33.260509],[102.697872,33.260835],[102.69776,33.261161],[102.697629,33.261572],[102.697497,33.261983],[102.697365,33.262394],[102.69734,33.262465],[102.697212,33.262828],[102.697108,33.263122],[102.69698,33.263369],[102.696885,33.263502],[102.696516,33.263729],[102.696147,33.263955],[102.696071,33.263974],[102.695866,33.26395],[102.695505,33.263888],[102.695152,33.263737],[102.6948,33.263587],[102.694448,33.263436],[102.694086,33.263291],[102.693725,33.263146],[102.693472,33.263086],[102.69322,33.263027],[102.692898,33.262995],[102.692576,33.262963],[102.692254,33.262931],[102.691914,33.262858],[102.691878,33.262851],[102.691721,33.262822],[102.691517,33.262865],[102.691226,33.263036],[102.690967,33.263329],[102.690707,33.263622],[102.690448,33.263915],[102.690188,33.264207],[102.689894,33.264346],[102.689568,33.26433],[102.689242,33.264314],[102.688954,33.264248],[102.688686,33.264124],[102.68846,33.264019],[102.688121,33.263729],[102.687782,33.263439],[102.687444,33.263148],[102.687261,33.262959],[102.687079,33.262771],[102.686897,33.262582],[102.686715,33.262393],[102.686533,33.262204],[102.68635,33.262015],[102.686168,33.261826],[102.685986,33.261637],[102.685804,33.261448],[102.685622,33.26126],[102.685439,33.261071],[102.685257,33.260882],[102.685075,33.260693],[102.684893,33.260504],[102.68471,33.260315],[102.684528,33.260126],[102.684415,33.260009],[102.684379,33.259972],[102.684346,33.259937],[102.684164,33.259748],[102.684042,33.259622],[102.683982,33.25956],[102.683911,33.259486],[102.683799,33.259371],[102.68353,33.259111],[102.683261,33.258852],[102.682992,33.258592],[102.68278,33.258366],[102.682569,33.258139],[102.682418,33.257913],[102.682267,33.257687],[102.682117,33.257431],[102.681967,33.257174],[102.681814,33.256979],[102.681662,33.256783],[102.681416,33.256525],[102.68117,33.256267],[102.680963,33.256096],[102.680756,33.255925],[102.680549,33.255754],[102.680342,33.255583],[102.68014,33.255455],[102.679938,33.255327],[102.679736,33.255199],[102.679535,33.255071],[102.679333,33.254943],[102.679131,33.254815],[102.678929,33.254687],[102.678727,33.254559],[102.678498,33.254435],[102.678305,33.254331],[102.67827,33.254312],[102.678269,33.254311],[102.678247,33.254299],[102.678179,33.254262],[102.678041,33.254188],[102.677812,33.254064],[102.677584,33.25394],[102.677355,33.253816],[102.677127,33.253693],[102.676969,33.253607],[102.676899,33.253569],[102.676899,33.253569],[102.676898,33.253569],[102.67667,33.253445],[102.676441,33.253321],[102.676242,33.253204],[102.676043,33.253086],[102.675844,33.252969],[102.675645,33.252851],[102.675418,33.252766],[102.675191,33.25268],[102.674759,33.252591],[102.674519,33.252525],[102.67428,33.25246],[102.673872,33.252351],[102.673621,33.252266],[102.67337,33.25218],[102.673119,33.252063],[102.672868,33.251946],[102.67256,33.251739],[102.672322,33.251593],[102.672238,33.251559],[102.672107,33.251507],[102.671939,33.25144],[102.671893,33.251421],[102.671652,33.251367],[102.671412,33.251312],[102.671123,33.251266],[102.670834,33.25122],[102.670497,33.251194],[102.670147,33.251187],[102.669797,33.25118],[102.669674,33.251259],[102.669623,33.251379],[102.669594,33.251562],[102.669601,33.251767],[102.669607,33.251927],[102.66964,33.251985],[102.669816,33.252294],[102.66998,33.252481],[102.670144,33.252667],[102.670304,33.252968],[102.670351,33.253055],[102.670351,33.253056],[102.670351,33.253056],[102.670319,33.253339],[102.670098,33.253497],[102.669829,33.253633],[102.669797,33.253661],[102.669705,33.253741],[102.669671,33.253771],[102.669557,33.25387],[102.669532,33.253892],[102.669502,33.254094],[102.669554,33.254439],[102.669564,33.254499],[102.669644,33.254669],[102.669747,33.254889],[102.669908,33.255195],[102.669962,33.25543],[102.670016,33.255664],[102.670033,33.255949],[102.670025,33.256242],[102.670017,33.256536],[102.669961,33.256819],[102.669877,33.257014],[102.669698,33.257229],[102.669684,33.257246],[102.669627,33.257314],[102.669553,33.257393],[102.669532,33.257407],[102.669481,33.257441],[102.669233,33.25761],[102.668915,33.257767],[102.668524,33.257942],[102.668255,33.258058],[102.668156,33.258158],[102.668129,33.258259],[102.668172,33.258442],[102.668334,33.258729],[102.668373,33.258803],[102.668402,33.258859],[102.668464,33.258977],[102.668477,33.259001],[102.668495,33.259036],[102.668497,33.259042],[102.668529,33.259172],[102.668581,33.259382],[102.668575,33.259686],[102.668525,33.259726],[102.668427,33.259764],[102.668395,33.259769],[102.668268,33.259789],[102.668245,33.259792],[102.668185,33.259801],[102.66799,33.259847],[102.667869,33.259875],[102.667567,33.25987],[102.667495,33.259868],[102.667423,33.259867],[102.667359,33.259866],[102.667224,33.259863],[102.666976,33.259859],[102.666529,33.259851],[102.666388,33.259848],[102.666319,33.259847],[102.666082,33.259842],[102.665719,33.259886],[102.665355,33.25993],[102.665303,33.259939],[102.665101,33.259976],[102.664846,33.260021],[102.66458,33.260046],[102.664313,33.260072],[102.664059,33.260067],[102.663805,33.260063],[102.663384,33.260005],[102.662963,33.259947],[102.66253,33.259867],[102.662098,33.259787],[102.661784,33.259781],[102.661351,33.259753],[102.660965,33.259746],[102.660531,33.259658],[102.660196,33.259549],[102.659861,33.259441],[102.659623,33.259317],[102.659384,33.259194],[102.659146,33.25907],[102.658908,33.258947],[102.65867,33.258823],[102.658431,33.258699],[102.658193,33.258576],[102.657955,33.258452],[102.657658,33.258237],[102.657352,33.257947],[102.657045,33.257657],[102.656809,33.25745],[102.65655,33.257203],[102.656336,33.257077],[102.656003,33.256868],[102.655693,33.25673],[102.655384,33.256592],[102.655169,33.256492],[102.654954,33.256392],[102.654739,33.256291],[102.654524,33.256191],[102.654225,33.256094],[102.653926,33.255997],[102.653661,33.255911],[102.653303,33.255783],[102.652993,33.255655],[102.652635,33.255466],[102.652495,33.255302],[102.652235,33.255113],[102.652045,33.254928],[102.651788,33.254659],[102.651482,33.254349],[102.651285,33.254051],[102.651088,33.253753],[102.650862,33.2534],[102.650636,33.253046],[102.65041,33.252692],[102.650184,33.252338],[102.649918,33.252038],[102.649716,33.251923],[102.649514,33.251808],[102.649154,33.251699],[102.648746,33.25163],[102.648337,33.251562],[102.64817,33.251519],[102.647881,33.251432],[102.647585,33.251244],[102.647288,33.251056],[102.647103,33.250907],[102.646918,33.250758],[102.646733,33.25061],[102.646548,33.250461],[102.646363,33.250312],[102.646178,33.250163],[102.646109,33.250122],[102.645797,33.249933],[102.645462,33.249805],[102.64521,33.249759],[102.644957,33.249714],[102.644729,33.249679],[102.6445,33.249645],[102.644117,33.249516],[102.64371,33.249387],[102.643499,33.249243],[102.643288,33.249099],[102.643077,33.248955],[102.642866,33.248811],[102.642642,33.248656],[102.642419,33.248501],[102.642195,33.248346],[102.641972,33.248192],[102.641748,33.248037],[102.641525,33.247882],[102.641301,33.247727],[102.641078,33.247572],[102.640854,33.247417],[102.640631,33.247263],[102.640407,33.247108],[102.640184,33.246953],[102.63996,33.246798],[102.639737,33.246643],[102.639545,33.246507],[102.639521,33.24649],[102.639304,33.246336],[102.639088,33.246182],[102.638872,33.246029],[102.638655,33.245875],[102.638439,33.245722],[102.638223,33.245568],[102.638007,33.245415],[102.637669,33.245265],[102.637641,33.245252],[102.637344,33.24512],[102.637305,33.245103],[102.637275,33.24509],[102.637194,33.245053],[102.637148,33.245033],[102.636988,33.244962],[102.63691,33.244927],[102.636563,33.244789],[102.636217,33.244651],[102.635792,33.244516],[102.635367,33.244381],[102.634942,33.244247],[102.634516,33.244112],[102.634115,33.243939],[102.633713,33.243767],[102.633311,33.243595],[102.633074,33.243428],[102.632863,33.243201],[102.632841,33.243162],[102.632755,33.24301],[102.632748,33.242996],[102.632734,33.242611],[102.632812,33.242389],[102.632891,33.242168],[102.633048,33.24187],[102.633081,33.241806],[102.633272,33.241445],[102.633376,33.241183],[102.633479,33.240922],[102.633537,33.240579],[102.633572,33.240194],[102.633583,33.240099],[102.633603,33.239931],[102.633634,33.239668],[102.633642,33.239371],[102.633644,33.239304],[102.633614,33.239081],[102.633584,33.238857],[102.633509,33.238637],[102.633469,33.238517],[102.633435,33.238416],[102.63336,33.238195],[102.633286,33.237975],[102.633211,33.237754],[102.633137,33.237533],[102.633027,33.237336],[102.632918,33.237139],[102.632808,33.236942],[102.632699,33.236745],[102.63259,33.236547],[102.63248,33.23635],[102.632371,33.236153],[102.632262,33.235956],[102.63209,33.235598],[102.631919,33.23524],[102.631794,33.234954],[102.631669,33.234669],[102.631578,33.234446],[102.631488,33.234224],[102.631397,33.234002],[102.631306,33.233779],[102.631216,33.233557],[102.631125,33.233335],[102.631034,33.233112],[102.630944,33.23289],[102.630843,33.232635],[102.630742,33.232381],[102.630632,33.231953],[102.630614,33.231694],[102.630638,33.231606],[102.630696,33.23139],[102.630809,33.23119],[102.630923,33.23099],[102.631111,33.23073],[102.631299,33.230469],[102.631454,33.230087],[102.631546,33.229816],[102.631639,33.229544],[102.631674,33.229119],[102.631638,33.228672],[102.631596,33.228418],[102.631555,33.228164],[102.631457,33.227787],[102.631359,33.22741],[102.631274,33.227149],[102.631189,33.226888],[102.631105,33.226627],[102.63102,33.226366],[102.630935,33.226105],[102.630851,33.225844],[102.630766,33.225583],[102.630681,33.225322],[102.630597,33.225061],[102.630512,33.224799],[102.630449,33.22458],[102.630386,33.22436],[102.630323,33.22414],[102.630261,33.22392],[102.630198,33.2237],[102.630135,33.223481],[102.630098,33.223074],[102.630044,33.22283],[102.629991,33.222585],[102.629902,33.2223],[102.629813,33.222015],[102.629591,33.221767],[102.629368,33.22152],[102.629146,33.221253],[102.628923,33.220985],[102.628779,33.220786],[102.628635,33.220586],[102.62849,33.220387],[102.628346,33.220187],[102.628202,33.219988],[102.628057,33.219789],[102.627913,33.219589],[102.627769,33.21939],[102.627625,33.21919],[102.62748,33.218991],[102.627288,33.218624],[102.627095,33.218258],[102.626903,33.217891],[102.626801,33.217666],[102.626698,33.217442],[102.626613,33.217054],[102.626571,33.216821],[102.62653,33.216587],[102.626439,33.216373],[102.626347,33.216159],[102.626185,33.215904],[102.626046,33.215686],[102.625812,33.215418],[102.625554,33.21515],[102.625244,33.214962],[102.625019,33.214836],[102.624793,33.21471],[102.624436,33.21446],[102.62413,33.214231],[102.623979,33.214045],[102.623827,33.21386],[102.623724,33.213634],[102.623621,33.213409],[102.623593,33.213145],[102.623564,33.212881],[102.623646,33.212526],[102.62375,33.212265],[102.623853,33.212003],[102.624077,33.211744],[102.624252,33.211524],[102.624427,33.211304],[102.624583,33.21111],[102.62474,33.210916],[102.624896,33.210721],[102.625052,33.210527],[102.625196,33.210332],[102.62534,33.210137],[102.625484,33.209942],[102.625628,33.209747],[102.625731,33.209545],[102.625821,33.209304],[102.625912,33.209063],[102.625965,33.20876],[102.626018,33.208457],[102.626054,33.208254],[102.626089,33.207871],[102.626097,33.207597],[102.626106,33.207324],[102.626053,33.206988],[102.626001,33.206652],[102.625885,33.20641],[102.625746,33.206163],[102.625631,33.205918],[102.625615,33.205634],[102.625716,33.205473],[102.625951,33.205129],[102.626186,33.204785],[102.626194,33.204773],[102.62646,33.204447],[102.626726,33.204122],[102.626992,33.203796],[102.627284,33.203497],[102.627576,33.203199],[102.627868,33.2029],[102.628159,33.202601],[102.628333,33.202363],[102.628489,33.201979],[102.62855,33.201758],[102.628611,33.201536],[102.628671,33.201314],[102.628732,33.201092],[102.628805,33.200827],[102.628879,33.200563],[102.628952,33.200298],[102.629026,33.200033],[102.629099,33.199769],[102.629173,33.199504],[102.629246,33.199239],[102.62932,33.198975],[102.629332,33.198573],[102.629289,33.19835],[102.629247,33.198127],[102.629162,33.19772],[102.629076,33.197312],[102.628917,33.196934],[102.628758,33.196556],[102.628631,33.196202],[102.628504,33.195848],[102.628377,33.195495],[102.628263,33.195249],[102.628149,33.195004],[102.628047,33.194759],[102.627945,33.194514],[102.627759,33.194185],[102.627573,33.193959],[102.627349,33.193793],[102.627124,33.193626],[102.626811,33.193424],[102.626498,33.193222],[102.626186,33.19302],[102.626057,33.192937],[102.625814,33.192758],[102.625648,33.192613],[102.625416,33.192305],[102.625301,33.19207],[102.625187,33.191835],[102.625121,33.1916],[102.625054,33.191366],[102.624968,33.190989],[102.624882,33.190613],[102.624749,33.190226],[102.624658,33.18999],[102.624567,33.189755],[102.624455,33.189449],[102.624342,33.189142],[102.624146,33.188824],[102.62395,33.188507],[102.623754,33.188148],[102.623558,33.18779],[102.623385,33.187496],[102.623211,33.187201],[102.623049,33.186934],[102.622861,33.186768],[102.622552,33.18656],[102.62222,33.186391],[102.621788,33.186292],[102.621355,33.186192],[102.621098,33.186152],[102.620842,33.186112],[102.620585,33.186071],[102.620328,33.186031],[102.620071,33.18599],[102.619815,33.18595],[102.619558,33.185909],[102.619301,33.185869],[102.619044,33.185829],[102.618788,33.185788],[102.618531,33.185748],[102.618274,33.185707],[102.618017,33.185667],[102.61776,33.185626],[102.617504,33.185586],[102.617247,33.185546],[102.616973,33.185514],[102.616698,33.185482],[102.616424,33.185451],[102.61615,33.185419],[102.615875,33.185388],[102.615601,33.185356],[102.615327,33.185325],[102.615053,33.185293],[102.614778,33.185262],[102.614504,33.18523],[102.61427,33.185192],[102.614195,33.185179],[102.614169,33.185175],[102.614036,33.185153],[102.613803,33.185115],[102.613569,33.185076],[102.613335,33.185038],[102.613101,33.185],[102.612868,33.184961],[102.612634,33.184923],[102.6124,33.184885],[102.612166,33.184846],[102.611933,33.184808],[102.611699,33.18477],[102.611435,33.184704],[102.611171,33.184638],[102.611034,33.184604],[102.610908,33.184572],[102.610644,33.184507],[102.61038,33.184441],[102.610117,33.184375],[102.609882,33.184338],[102.609786,33.184322],[102.6097,33.184308],[102.609648,33.1843],[102.609479,33.184273],[102.609414,33.184263],[102.609179,33.184225],[102.609081,33.184209],[102.609001,33.184196],[102.608945,33.184188],[102.608774,33.18416],[102.608711,33.18415],[102.608477,33.184113],[102.608242,33.184075],[102.608014,33.184054],[102.607968,33.184049],[102.607785,33.184032],[102.607557,33.184011],[102.607376,33.183994],[102.607328,33.183989],[102.6071,33.183968],[102.606871,33.183946],[102.606437,33.183939],[102.606098,33.183973],[102.605735,33.184047],[102.605371,33.184121],[102.605121,33.184197],[102.604872,33.184273],[102.604863,33.184276],[102.604622,33.184349],[102.604373,33.184426],[102.604123,33.184502],[102.604109,33.184506],[102.604085,33.184514],[102.603873,33.184578],[102.603624,33.184654],[102.603374,33.184731],[102.60313,33.184843],[102.602886,33.184954],[102.602641,33.185066],[102.602397,33.185178],[102.602152,33.18529],[102.601908,33.185402],[102.601842,33.185432],[102.601664,33.185514],[102.601419,33.185626],[102.60117,33.185713],[102.600922,33.185801],[102.600531,33.185915],[102.600313,33.185972],[102.600094,33.186029],[102.599744,33.186052],[102.599393,33.186076],[102.598966,33.186108],[102.598539,33.18614],[102.598112,33.186173],[102.597668,33.186168],[102.597224,33.186163],[102.59678,33.186158],[102.596655,33.186157],[102.596348,33.186154],[102.596301,33.186154],[102.595916,33.186151],[102.595688,33.186123],[102.595687,33.186123],[102.595687,33.186123],[102.59555,33.186107],[102.595459,33.186096],[102.595418,33.186091],[102.595231,33.186069],[102.595002,33.186042],[102.594774,33.186015],[102.594545,33.185987],[102.594316,33.18596],[102.594088,33.185933],[102.593835,33.185915],[102.593582,33.185896],[102.593329,33.185878],[102.593076,33.185859],[102.592824,33.185841],[102.592571,33.185822],[102.592341,33.18578],[102.592111,33.185738],[102.591881,33.185696],[102.591651,33.185653],[102.591421,33.185611],[102.591191,33.185569],[102.590961,33.185527],[102.590731,33.185485],[102.59047,33.185421],[102.590209,33.185357],[102.589948,33.185294],[102.589688,33.18523],[102.589427,33.185167],[102.589166,33.185103],[102.588906,33.185039],[102.588645,33.184976],[102.588384,33.184912],[102.588124,33.184848],[102.58801,33.184821],[102.587863,33.184785],[102.587662,33.184736],[102.587602,33.184721],[102.587452,33.184685],[102.587342,33.184658],[102.587081,33.184594],[102.587175,33.184202],[102.58727,33.18381],[102.587269,33.183796],[102.587251,33.1834],[102.587198,33.183066],[102.587115,33.182782],[102.58695,33.182623],[102.586923,33.182597],[102.586922,33.182595],[102.586785,33.182463],[102.58662,33.182303],[102.586456,33.182144],[102.586171,33.181972],[102.585887,33.1818],[102.585586,33.181679],[102.585284,33.181558],[102.584936,33.181449],[102.584588,33.18134],[102.584349,33.181284],[102.58411,33.181228],[102.584043,33.181212],[102.583989,33.1812],[102.583872,33.181172],[102.583633,33.181116],[102.583394,33.18106],[102.583156,33.181004],[102.582917,33.180949],[102.582678,33.180893],[102.582378,33.180747],[102.582373,33.180745],[102.582348,33.180733],[102.582017,33.180573],[102.581701,33.180387],[102.581386,33.180202],[102.581163,33.180005],[102.580939,33.179809],[102.580777,33.179601],[102.580615,33.179393],[102.580561,33.179157],[102.580506,33.178921],[102.580452,33.178684],[102.580398,33.178448],[102.580405,33.178141],[102.580444,33.177861],[102.580541,33.177631],[102.580638,33.17748],[102.58088,33.177242],[102.580919,33.177203],[102.581023,33.177009],[102.581123,33.176823],[102.581326,33.176443],[102.581469,33.176178],[102.581481,33.176155],[102.58153,33.176063],[102.581546,33.175853],[102.581554,33.175744],[102.58156,33.175671],[102.581572,33.175503],[102.581579,33.175424],[102.581583,33.175369],[102.581595,33.175242],[102.5816,33.175181],[102.581622,33.174939],[102.581753,33.174583],[102.581948,33.174227],[102.582134,33.174053],[102.582207,33.173939],[102.582238,33.173889],[102.582459,33.173746],[102.582572,33.17362],[102.582688,33.173403],[102.582664,33.173274],[102.58261,33.173017],[102.582583,33.172928],[102.582507,33.172677],[102.582242,33.172338],[102.582176,33.1722],[102.582069,33.171976],[102.581984,33.171758],[102.581898,33.171539],[102.581808,33.171437],[102.581692,33.171304],[102.581421,33.171171],[102.581086,33.171138],[102.580843,33.171082],[102.580658,33.171055],[102.580449,33.171024],[102.580087,33.170862],[102.579908,33.170705],[102.579733,33.170446],[102.579554,33.170059],[102.579376,33.169672],[102.579256,33.169431],[102.579135,33.169189],[102.579015,33.168948],[102.578894,33.168707],[102.578774,33.168466],[102.578653,33.168224],[102.578448,33.167965],[102.57818,33.167728],[102.577968,33.167648],[102.577756,33.167568],[102.577438,33.167497],[102.577121,33.167426],[102.576755,33.167336],[102.576726,33.167329],[102.576534,33.167282],[102.576332,33.167232],[102.576163,33.167177],[102.576,33.167123],[102.575667,33.167014],[102.575304,33.166905],[102.574941,33.166795],[102.574924,33.166791],[102.57454,33.166683],[102.574155,33.166575],[102.57373,33.166477],[102.573306,33.166378],[102.572897,33.166281],[102.572487,33.166184],[102.572064,33.166073],[102.57164,33.165962],[102.5714,33.165829],[102.57116,33.165697],[102.570921,33.1655],[102.570683,33.165303],[102.57052,33.165121],[102.570358,33.164939],[102.570182,33.164562],[102.570007,33.164185],[102.569832,33.163808],[102.569654,33.163599],[102.569491,33.163443],[102.569328,33.163287],[102.569091,33.163052],[102.568971,33.162985],[102.568957,33.162966],[102.568761,33.162752],[102.568642,33.16252],[102.568386,33.16236],[102.568095,33.162253],[102.567803,33.162276],[102.567473,33.162475],[102.56722,33.162627],[102.567095,33.162717],[102.566923,33.16274],[102.566739,33.162675],[102.566643,33.162449],[102.566582,33.162157],[102.56656,33.16205],[102.56653,33.161747],[102.566352,33.161467],[102.566123,33.161203],[102.565929,33.16098],[102.565784,33.160751],[102.565638,33.160522],[102.565538,33.160194],[102.565437,33.159867],[102.565412,33.159784],[102.565341,33.159683],[102.565263,33.159611],[102.565132,33.159582],[102.564919,33.159593],[102.564811,33.1596],[102.56446,33.159641],[102.564234,33.159611],[102.564074,33.159492],[102.563901,33.159356],[102.563776,33.15926],[102.563663,33.159254],[102.563366,33.159272],[102.56314,33.15935],[102.562908,33.159308],[102.562673,33.159189],[102.562438,33.15907],[102.562075,33.158969],[102.561712,33.158868],[102.561357,33.158746],[102.56114,33.15882],[102.560923,33.158895],[102.560521,33.159091],[102.560242,33.159253],[102.559963,33.159414],[102.559649,33.159715],[102.559463,33.159852],[102.559277,33.15999],[102.559242,33.160013],[102.559043,33.160151],[102.559011,33.160174],[102.558809,33.160313],[102.558532,33.160423],[102.558254,33.160533],[102.557827,33.160601],[102.557477,33.160568],[102.557127,33.160536],[102.556896,33.160504],[102.556679,33.160385],[102.55656,33.160319],[102.55634,33.16026],[102.556013,33.160319],[102.555922,33.160351],[102.555757,33.160408],[102.555531,33.160485],[102.555305,33.160563],[102.555011,33.160674],[102.554717,33.160785],[102.554423,33.160896],[102.554187,33.160986],[102.553848,33.161152],[102.553616,33.161164],[102.553431,33.161099],[102.553211,33.160956],[102.553033,33.160664],[102.552955,33.160441],[102.552878,33.160218],[102.552747,33.160099],[102.552609,33.160041],[102.55242,33.159962],[102.552345,33.159906],[102.552182,33.159784],[102.551926,33.159605],[102.551629,33.159397],[102.551492,33.159189],[102.55132,33.158817],[102.551147,33.158445],[102.550992,33.158083],[102.550927,33.157904],[102.550772,33.15772],[102.550736,33.157565],[102.550593,33.157486],[102.550201,33.15727],[102.549809,33.157053],[102.549613,33.156946],[102.549464,33.156964],[102.549291,33.156845],[102.548928,33.15675],[102.548637,33.156673],[102.548593,33.156656],[102.548256,33.15653],[102.548051,33.156408],[102.547846,33.156286],[102.547542,33.156012],[102.547358,33.155825],[102.547173,33.155638],[102.546878,33.155473],[102.546582,33.155308],[102.546477,33.155227],[102.546251,33.154864],[102.54621,33.154692],[102.546073,33.154507],[102.546002,33.154377],[102.545906,33.15418],[102.545847,33.153948],[102.545834,33.153855],[102.545787,33.153512],[102.54574,33.153169],[102.545752,33.152824],[102.545829,33.152527],[102.545829,33.152417],[102.545829,33.151993],[102.545829,33.151569],[102.545805,33.15142],[102.545696,33.151243],[102.54534,33.151018],[102.544948,33.150856],[102.544624,33.150778],[102.544374,33.150752],[102.544223,33.150736],[102.543946,33.150706],[102.54367,33.150677],[102.543414,33.150629],[102.543301,33.150558],[102.543174,33.150431],[102.543075,33.150332],[102.542849,33.150308],[102.542726,33.150324],[102.542533,33.150349],[102.542233,33.150445],[102.541933,33.15054],[102.541671,33.150546],[102.541377,33.15046],[102.541084,33.150375],[102.54079,33.15029],[102.540416,33.150236],[102.539987,33.150254],[102.539583,33.150314],[102.539268,33.150465],[102.538952,33.150617],[102.538875,33.150666],[102.538562,33.150864],[102.538248,33.151062],[102.537935,33.151259],[102.537656,33.151518],[102.537376,33.151777],[102.537351,33.151829],[102.537215,33.15211],[102.536971,33.152259],[102.536626,33.15239],[102.5365,33.15241],[102.536186,33.152461],[102.535832,33.152717],[102.535478,33.152973],[102.535303,33.153139],[102.535127,33.153306],[102.534954,33.153376],[102.534878,33.153407],[102.534741,33.153413],[102.534574,33.153365],[102.534342,33.153234],[102.534166,33.153212],[102.533994,33.153216],[102.533704,33.153223],[102.533606,33.153207],[102.533491,33.153211],[102.533242,33.153258],[102.532992,33.153306],[102.532778,33.153246],[102.53254,33.153145],[102.532236,33.153115],[102.532187,33.153119],[102.531964,33.153136],[102.531921,33.153139],[102.53186,33.153156],[102.531522,33.153246],[102.531195,33.153425],[102.530868,33.153603],[102.530621,33.153779],[102.530374,33.153955],[102.530136,33.154096],[102.529898,33.154236],[102.529897,33.154236],[102.529896,33.154237],[102.529638,33.154324],[102.529381,33.154412],[102.529149,33.154501],[102.528917,33.154589],[102.528662,33.154584],[102.528407,33.154579],[102.52811,33.154523],[102.527814,33.154467],[102.527551,33.154147],[102.527482,33.153881],[102.527413,33.153615],[102.527356,33.15322],[102.527299,33.152826],[102.527212,33.152588],[102.527125,33.15235],[102.526877,33.152031],[102.526764,33.151885],[102.526764,33.151885],[102.526763,33.151884],[102.526361,33.151698],[102.525958,33.151511],[102.525559,33.151403],[102.525159,33.151295],[102.52476,33.151187],[102.52445,33.15109],[102.524141,33.150993],[102.523832,33.150897],[102.523523,33.150786],[102.523215,33.150675],[102.522906,33.150563],[102.522716,33.150352],[102.522527,33.150141],[102.522457,33.149911],[102.522387,33.14968],[102.522402,33.149428],[102.522432,33.14909],[102.522462,33.148753],[102.522492,33.148416],[102.522546,33.148071],[102.522582,33.147785],[102.522617,33.1475],[102.52257,33.147238],[102.522522,33.146976],[102.522445,33.146759],[102.522368,33.146542],[102.522198,33.14626],[102.522028,33.145977],[102.521922,33.145791],[102.521755,33.1455],[102.521588,33.14521],[102.521474,33.144993],[102.521309,33.14468],[102.52113,33.144347],[102.520934,33.144062],[102.520708,33.143913],[102.520342,33.14372],[102.519976,33.143526],[102.519792,33.143306],[102.51972,33.143003],[102.519688,33.14278],[102.519655,33.142557],[102.519697,33.14211],[102.519738,33.141664],[102.51978,33.141218],[102.519756,33.140921],[102.519738,33.14065],[102.51972,33.140378],[102.519628,33.140072],[102.519616,33.140031],[102.519536,33.139765],[102.519278,33.139469],[102.51902,33.139173],[102.518762,33.138877],[102.518428,33.138656],[102.518161,33.138479],[102.517893,33.138301],[102.51748,33.138193],[102.517066,33.138085],[102.516768,33.138017],[102.516469,33.137949],[102.516171,33.137881],[102.516062,33.137847],[102.51606,33.137846],[102.516058,33.137846],[102.515742,33.137718],[102.515425,33.137589],[102.515211,33.137471],[102.514914,33.137195],[102.514616,33.136919],[102.514319,33.136644],[102.514105,33.136352],[102.514004,33.136025],[102.513962,33.135686],[102.513994,33.135377],[102.514026,33.135067],[102.514057,33.134758],[102.514016,33.134356],[102.513974,33.133955],[102.513967,33.133598],[102.51396,33.13324],[102.513956,33.133063],[102.513909,33.132694],[102.513825,33.132414],[102.513647,33.132081],[102.513638,33.132068],[102.513467,33.131822],[102.513296,33.131575],[102.513128,33.13137],[102.512961,33.131164],[102.512774,33.130934],[102.512517,33.130618],[102.512344,33.13035],[102.512172,33.130082],[102.511975,33.129847],[102.511779,33.129612],[102.511603,33.129458],[102.511428,33.129303],[102.511285,33.129],[102.511249,33.12875],[102.511291,33.128339],[102.511398,33.128066],[102.511505,33.127792],[102.511624,33.127572],[102.511725,33.127167],[102.511535,33.126906],[102.511336,33.1267],[102.511136,33.126495],[102.510904,33.126311],[102.510672,33.126126],[102.51039,33.125988],[102.510108,33.12585],[102.509766,33.125682],[102.509423,33.125514],[102.509106,33.125397],[102.508789,33.12528],[102.508471,33.125163],[102.508125,33.125022],[102.507778,33.124881],[102.507431,33.12474],[102.507129,33.124617],[102.506828,33.124494],[102.506526,33.124372],[102.506187,33.124215],[102.505848,33.124058],[102.505509,33.123902],[102.505268,33.123795],[102.505027,33.123687],[102.5047,33.123497],[102.504495,33.123334],[102.50429,33.12317],[102.504052,33.12298],[102.503703,33.122823],[102.503354,33.122666],[102.503005,33.12251],[102.502658,33.122361],[102.502311,33.122212],[102.501964,33.122064],[102.501658,33.121951],[102.501353,33.121838],[102.501252,33.121786],[102.500924,33.121574],[102.500596,33.121363],[102.500267,33.121151],[102.500176,33.121076],[102.499831,33.120791],[102.499486,33.120506],[102.499217,33.120271],[102.49892,33.120013],[102.498622,33.119754],[102.498325,33.119495],[102.498023,33.119332],[102.497722,33.119168],[102.49742,33.119005],[102.497119,33.118841],[102.496763,33.118629],[102.496408,33.118417],[102.496367,33.118384],[102.496163,33.118132],[102.495959,33.117879],[102.495715,33.117543],[102.495556,33.117185],[102.495507,33.116937],[102.495457,33.11669],[102.49546,33.116438],[102.495462,33.116185],[102.495465,33.115933],[102.495467,33.115681],[102.49547,33.115428],[102.495472,33.115176],[102.495511,33.114799],[102.495507,33.114697],[102.495495,33.114396],[102.495459,33.114135],[102.495424,33.113874],[102.495366,33.113448],[102.495308,33.113021],[102.49537,33.112809],[102.495404,33.112597],[102.495556,33.112221],[102.495763,33.11187],[102.495911,33.111613],[102.496002,33.111379],[102.496041,33.111001],[102.496019,33.110811],[102.495996,33.110679],[102.495994,33.110668],[102.495944,33.110455],[102.495767,33.110205],[102.49559,33.109955],[102.495497,33.109728],[102.495404,33.109501],[102.495304,33.109074],[102.495258,33.108695],[102.495271,33.108269],[102.49528,33.107914],[102.495289,33.107608],[102.495325,33.107324],[102.495449,33.106948],[102.495455,33.106711],[102.495376,33.106497],[102.495187,33.106233],[102.494911,33.106038],[102.494578,33.105889],[102.494342,33.105766],[102.494106,33.105644],[102.493787,33.105495],[102.493467,33.105347],[102.493204,33.105188],[102.492942,33.105029],[102.492763,33.104871],[102.492584,33.104714],[102.492338,33.104449],[102.492327,33.104204],[102.492315,33.103958],[102.4923,33.103509],[102.492211,33.103242],[102.492196,33.1032],[102.492093,33.10289],[102.491899,33.102744],[102.491851,33.102722],[102.491622,33.10262],[102.491491,33.102592],[102.491383,33.102569],[102.491259,33.102542],[102.491191,33.102499],[102.49112,33.102454],[102.491065,33.102419],[102.491054,33.102412],[102.490871,33.102297],[102.490655,33.101938],[102.490592,33.1017],[102.490528,33.101462],[102.49051,33.101411],[102.490484,33.10134],[102.490424,33.101177],[102.49018,33.100864],[102.489877,33.100621],[102.489517,33.100425],[102.489302,33.100357],[102.489196,33.100324],[102.489086,33.100289],[102.488875,33.100223],[102.488608,33.100194],[102.488341,33.100165],[102.488232,33.100168],[102.488185,33.10017],[102.488102,33.100172],[102.488087,33.100173],[102.487862,33.100179],[102.487814,33.100203],[102.487785,33.100218],[102.487591,33.100315],[102.487457,33.100383],[102.48732,33.100452],[102.487115,33.100731],[102.486944,33.100964],[102.486909,33.101011],[102.486705,33.101256],[102.486502,33.1015],[102.486273,33.101613],[102.486079,33.101539],[102.486032,33.101437],[102.485974,33.101313],[102.485945,33.101251],[102.485955,33.100897],[102.486053,33.100497],[102.486156,33.100286],[102.486157,33.100285],[102.486158,33.100284],[102.486241,33.100115],[102.48626,33.100075],[102.48632,33.099937],[102.486356,33.099852],[102.486451,33.09963],[102.486547,33.099407],[102.486642,33.099184],[102.486738,33.098961],[102.486834,33.098739],[102.486945,33.098511],[102.487057,33.098284],[102.487169,33.098057],[102.487281,33.09783],[102.487288,33.097592],[102.487212,33.097284],[102.487136,33.096998],[102.487059,33.096713],[102.486952,33.09651],[102.486846,33.096307],[102.486683,33.09609],[102.48652,33.095874],[102.486371,33.095694],[102.486221,33.095513],[102.486034,33.095155],[102.48599,33.094752],[102.485997,33.094492],[102.486004,33.094232],[102.486044,33.09383],[102.486112,33.093405],[102.486189,33.093171],[102.486266,33.092936],[102.486417,33.09256],[102.486569,33.092184],[102.486661,33.091925],[102.486674,33.091501],[102.486593,33.09131],[102.486406,33.090935],[102.486299,33.09072],[102.486193,33.090505],[102.486058,33.09029],[102.485924,33.090074],[102.485803,33.089882],[102.485682,33.08969],[102.485561,33.089464],[102.485518,33.089381],[102.485472,33.089294],[102.485441,33.089237],[102.485391,33.089011],[102.485382,33.08897],[102.485374,33.088931]]]]},"properties":{"cp":[102.6838973693402,33.13732598840634],"code":"513233204","name":"瓦切镇","level":"street","center":[102.6838973693402,33.13732598840634],"fullCode":"513233204000","fullName":"四川省阿坝藏族羌族自治州红原县瓦切镇","acreageMu":1486490.28,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.669,33.2578]}},{"id":"513233205","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.615039,32.961439],[102.615041,32.961423],[102.61506,32.961253],[102.615113,32.960767],[102.615237,32.959638],[102.615775,32.958729],[102.615969,32.958606],[102.616157,32.958487],[102.61641,32.958327],[102.616466,32.958292],[102.616657,32.958171],[102.616683,32.958155],[102.616813,32.958071],[102.616773,32.957989],[102.61714,32.957866],[102.617603,32.957574],[102.61982,32.956263],[102.620567,32.955685],[102.621524,32.954943],[102.622672,32.953755],[102.62291,32.953509],[102.623137,32.953362],[102.623227,32.953304],[102.62369,32.953007],[102.623828,32.952861],[102.623952,32.952768],[102.624102,32.95268],[102.624407,32.952583],[102.624521,32.952567],[102.624575,32.952549],[102.624634,32.95253],[102.624718,32.952503],[102.624784,32.952481],[102.624898,32.952443],[102.624993,32.952412],[102.625048,32.952413],[102.625092,32.952414],[102.625819,32.952428],[102.625966,32.95243],[102.626001,32.952431],[102.62601,32.952431],[102.626055,32.952432],[102.626411,32.952439],[102.626533,32.952441],[102.628126,32.95285],[102.629362,32.95283],[102.629667,32.952825],[102.629867,32.952653],[102.630014,32.952525],[102.630043,32.952501],[102.630072,32.952476],[102.630581,32.952036],[102.630586,32.952031],[102.631193,32.951022],[102.631212,32.950989],[102.631325,32.950801],[102.631305,32.95058],[102.631292,32.950435],[102.631289,32.950407],[102.631281,32.950321],[102.631268,32.950179],[102.631261,32.950096],[102.631253,32.950011],[102.631239,32.949864],[102.631226,32.949717],[102.631147,32.949632],[102.631026,32.949501],[102.630945,32.949414],[102.630797,32.949254],[102.630717,32.949168],[102.630664,32.949111],[102.630559,32.949094],[102.630223,32.94904],[102.630073,32.949016],[102.629896,32.948988],[102.629789,32.94897],[102.629708,32.948958],[102.629671,32.948952],[102.62965,32.948949],[102.629514,32.948927],[102.629305,32.949017],[102.629284,32.949026],[102.629275,32.949029],[102.629149,32.949084],[102.629124,32.949091],[102.629128,32.949072],[102.629128,32.949052],[102.629128,32.94903],[102.629132,32.94902],[102.62915,32.949005],[102.629183,32.948969],[102.629237,32.948921],[102.629284,32.948885],[102.62931,32.948845],[102.629287,32.948833],[102.629242,32.94884],[102.62918,32.948888],[102.629121,32.948941],[102.629036,32.948996],[102.628909,32.949071],[102.628805,32.949141],[102.628718,32.949208],[102.628679,32.949261],[102.628679,32.949286],[102.62867,32.94929],[102.627807,32.949785],[102.627695,32.949759],[102.627607,32.949758],[102.627511,32.949803],[102.627333,32.949871],[102.627195,32.949893],[102.627028,32.949901],[102.626858,32.949902],[102.626711,32.949872],[102.626617,32.949834],[102.626523,32.949756],[102.626241,32.949485],[102.62597,32.949274],[102.625912,32.949199],[102.625857,32.949129],[102.625849,32.949119],[102.625835,32.949102],[102.625803,32.949061],[102.625727,32.948963],[102.625684,32.948907],[102.625731,32.948804],[102.625736,32.948794],[102.625673,32.948727],[102.625545,32.948604],[102.625474,32.948537],[102.625371,32.948488],[102.625351,32.948476],[102.625221,32.948308],[102.624921,32.94792],[102.624661,32.947719],[102.624519,32.94761],[102.624337,32.947469],[102.62409,32.947278],[102.6239,32.947298],[102.623772,32.947322],[102.623654,32.947338],[102.623541,32.947333],[102.623575,32.947311],[102.623661,32.947282],[102.623752,32.947253],[102.623829,32.94723],[102.623969,32.947185],[102.62395,32.94717],[102.623915,32.947143],[102.623865,32.947114],[102.623832,32.947094],[102.623569,32.946939],[102.62325,32.946751],[102.622588,32.94636],[102.622215,32.94592],[102.622203,32.945672],[102.6222,32.945615],[102.622184,32.94527],[102.622188,32.945178],[102.622282,32.945131],[102.622399,32.94504],[102.622461,32.944995],[102.62253,32.944946],[102.622554,32.944902],[102.622627,32.944914],[102.624358,32.944947],[102.624897,32.944973],[102.624921,32.944974],[102.624962,32.944976],[102.625021,32.944979],[102.6252,32.944988],[102.625312,32.944994],[102.625517,32.945004],[102.625704,32.945013],[102.625829,32.945011],[102.625877,32.945011],[102.626547,32.945002],[102.626715,32.944999],[102.626771,32.944999],[102.626956,32.944996],[102.627475,32.944827],[102.627538,32.944807],[102.627781,32.944728],[102.627788,32.944485],[102.627799,32.944073],[102.6278,32.944038],[102.6278,32.94398],[102.627805,32.943247],[102.627806,32.943155],[102.627807,32.942856],[102.627808,32.94282],[102.627809,32.94268],[102.62781,32.942466],[102.62781,32.942438],[102.627811,32.942347],[102.627815,32.941644],[102.627778,32.941492],[102.627763,32.941406],[102.627746,32.941325],[102.627734,32.941265],[102.627706,32.941115],[102.627707,32.941113],[102.627744,32.94106],[102.627748,32.941041],[102.627755,32.941008],[102.627766,32.94096],[102.627786,32.940914],[102.627817,32.940889],[102.627836,32.940881],[102.627841,32.940702],[102.627853,32.940184],[102.627855,32.940176],[102.627857,32.940081],[102.627863,32.93986],[102.627846,32.939758],[102.627841,32.939733],[102.627815,32.93958],[102.627797,32.939471],[102.627788,32.939417],[102.627655,32.938638],[102.627586,32.938556],[102.627572,32.938538],[102.627485,32.938434],[102.62737,32.938296],[102.627091,32.937961],[102.627068,32.937934],[102.627002,32.937855],[102.626862,32.937789],[102.626004,32.937389],[102.625218,32.937134],[102.625103,32.937156],[102.62506,32.937158],[102.624961,32.937152],[102.624854,32.937123],[102.624805,32.937105],[102.624752,32.937074],[102.624729,32.936978],[102.623426,32.93661],[102.623307,32.936597],[102.622872,32.936552],[102.622375,32.936501],[102.62226,32.936489],[102.621987,32.936461],[102.621837,32.936446],[102.620499,32.936311],[102.620468,32.936312],[102.620401,32.936314],[102.620007,32.936327],[102.618958,32.936362],[102.618905,32.936357],[102.617919,32.936263],[102.617902,32.936261],[102.617001,32.935757],[102.616202,32.934903],[102.616183,32.934882],[102.616112,32.934807],[102.616086,32.933994],[102.616977,32.933038],[102.617518,32.933099],[102.617755,32.933125],[102.617769,32.933127],[102.617902,32.933142],[102.618273,32.933184],[102.618315,32.933188],[102.618538,32.933206],[102.618546,32.933207],[102.619521,32.933289],[102.619924,32.933347],[102.620041,32.933364],[102.620127,32.933377],[102.620815,32.933476],[102.621431,32.933512],[102.621677,32.933527],[102.621682,32.933559],[102.621699,32.933675],[102.621698,32.93368],[102.621696,32.93369],[102.621693,32.933708],[102.621769,32.93371],[102.621854,32.933686],[102.621881,32.933675],[102.621992,32.933632],[102.622146,32.933591],[102.622308,32.933513],[102.622452,32.933447],[102.622607,32.933378],[102.622749,32.933313],[102.622869,32.933262],[102.622959,32.933214],[102.623006,32.933178],[102.623085,32.933154],[102.623205,32.933127],[102.623314,32.933071],[102.623394,32.933046],[102.62347,32.932992],[102.623547,32.932913],[102.623691,32.932796],[102.623785,32.932719],[102.623863,32.932619],[102.623915,32.932574],[102.624021,32.932543],[102.624131,32.932516],[102.624212,32.932505],[102.62425,32.932496],[102.624268,32.932451],[102.624296,32.932367],[102.624322,32.932275],[102.62434,32.932118],[102.624352,32.932108],[102.624417,32.932049],[102.624694,32.931801],[102.62483,32.931679],[102.624812,32.931628],[102.624823,32.931597],[102.624853,32.931583],[102.624893,32.931572],[102.624945,32.931545],[102.62497,32.931512],[102.624988,32.931461],[102.624994,32.931421],[102.625017,32.931375],[102.625046,32.931365],[102.625083,32.931365],[102.625159,32.931349],[102.625181,32.931332],[102.625195,32.931307],[102.625206,32.931274],[102.625206,32.931252],[102.625197,32.931232],[102.625169,32.931228],[102.625177,32.931215],[102.625332,32.930966],[102.625345,32.930946],[102.625524,32.93066],[102.625606,32.930529],[102.625621,32.930505],[102.625668,32.93043],[102.625868,32.930111],[102.626012,32.929882],[102.626642,32.929153],[102.626655,32.929138],[102.626676,32.929114],[102.626806,32.928964],[102.627594,32.928481],[102.627833,32.928334],[102.628244,32.927368],[102.62809,32.926724],[102.628072,32.926649],[102.628035,32.926495],[102.627952,32.926149],[102.627941,32.926104],[102.627842,32.925932],[102.627826,32.925905],[102.627822,32.925898],[102.627717,32.925716],[102.627565,32.925452],[102.627544,32.925416],[102.627509,32.925355],[102.627443,32.925242],[102.62737,32.925116],[102.62724,32.924891],[102.627204,32.924827],[102.627159,32.92475],[102.627123,32.924718],[102.626866,32.924491],[102.626683,32.92433],[102.626609,32.924265],[102.626462,32.924135],[102.626306,32.923997],[102.626219,32.92392],[102.626133,32.923866],[102.625869,32.923702],[102.625858,32.923709],[102.625821,32.923754],[102.625802,32.923772],[102.625774,32.923775],[102.625746,32.923751],[102.625732,32.923722],[102.625703,32.92369],[102.625661,32.923676],[102.625633,32.923653],[102.625586,32.923629],[102.62553,32.923609],[102.625475,32.923596],[102.625424,32.923582],[102.625375,32.923548],[102.625368,32.923522],[102.625361,32.923485],[102.625316,32.923467],[102.625238,32.923459],[102.625196,32.923452],[102.625141,32.923431],[102.625101,32.923415],[102.625048,32.923421],[102.624994,32.923441],[102.624965,32.923437],[102.624953,32.923416],[102.624956,32.923393],[102.624992,32.923371],[102.625042,32.923351],[102.625088,32.923338],[102.625125,32.923322],[102.625135,32.923302],[102.625123,32.923279],[102.625064,32.923265],[102.624911,32.923211],[102.624853,32.923176],[102.62479,32.923129],[102.624716,32.923072],[102.624547,32.922905],[102.624522,32.922893],[102.62437,32.922788],[102.624427,32.922741],[102.624406,32.922721],[102.624385,32.922701],[102.62438,32.922696],[102.62423,32.922553],[102.62413,32.922457],[102.623484,32.921839],[102.622876,32.921123],[102.622695,32.920909],[102.6226,32.920797],[102.622552,32.92074],[102.622518,32.920701],[102.622504,32.920684],[102.622472,32.920638],[102.622378,32.920501],[102.622343,32.92045],[102.622252,32.920318],[102.622187,32.920224],[102.622164,32.92019],[102.622167,32.919965],[102.622119,32.919923],[102.62206,32.91986],[102.622022,32.919816],[102.622121,32.919364],[102.622252,32.918768],[102.622264,32.91871],[102.622268,32.918691],[102.622344,32.918642],[102.622456,32.91857],[102.622537,32.918518],[102.622575,32.918494],[102.622727,32.918396],[102.623325,32.91801],[102.624304,32.91738],[102.624471,32.917272],[102.624972,32.916551],[102.625006,32.916494],[102.625056,32.91641],[102.625147,32.916259],[102.625475,32.915709],[102.626131,32.914873],[102.62621,32.914864],[102.626231,32.91482],[102.626316,32.914762],[102.626331,32.914751],[102.626464,32.914602],[102.62657,32.914466],[102.626826,32.914228],[102.627014,32.914039],[102.627174,32.913921],[102.627188,32.913927],[102.627293,32.913989],[102.6273,32.913985],[102.62732,32.913971],[102.627406,32.913915],[102.627409,32.913899],[102.627408,32.913845],[102.627407,32.913819],[102.627407,32.913805],[102.627403,32.913797],[102.627386,32.913787],[102.627359,32.913775],[102.627343,32.913764],[102.627329,32.913749],[102.627312,32.913727],[102.627311,32.913725],[102.627301,32.913705],[102.627296,32.913693],[102.627294,32.913681],[102.627293,32.913665],[102.627293,32.913637],[102.627372,32.913652],[102.627486,32.913682],[102.627566,32.913712],[102.627622,32.913737],[102.627673,32.913766],[102.627717,32.913797],[102.627757,32.913764],[102.627804,32.913724],[102.627857,32.913679],[102.627826,32.913638],[102.627938,32.913564],[102.628346,32.913364],[102.628357,32.913358],[102.628468,32.913304],[102.628729,32.913174],[102.629248,32.912921],[102.629346,32.912872],[102.629352,32.912869],[102.629619,32.912738],[102.630083,32.91251],[102.630222,32.912471],[102.630646,32.912353],[102.63074,32.912327],[102.63089,32.912285],[102.63096,32.912265],[102.631066,32.912236],[102.631528,32.912107],[102.631709,32.912057],[102.632098,32.911948],[102.632122,32.911942],[102.632265,32.911902],[102.632352,32.911849],[102.632554,32.911727],[102.63295,32.911488],[102.633064,32.911482],[102.633099,32.911405],[102.633161,32.911223],[102.633158,32.911157],[102.633459,32.910423],[102.633451,32.909577],[102.633448,32.909315],[102.633446,32.909084],[102.633672,32.908455],[102.633697,32.908384],[102.633706,32.908358],[102.633669,32.908378],[102.633673,32.90837],[102.63376,32.908214],[102.633982,32.908013],[102.634106,32.907965],[102.634151,32.907921],[102.634259,32.907906],[102.634405,32.907885],[102.634408,32.907894],[102.634425,32.907924],[102.63444,32.907938],[102.63451,32.907935],[102.634578,32.90792],[102.634622,32.90792],[102.634669,32.907916],[102.634725,32.907908],[102.634773,32.907902],[102.63481,32.907899],[102.634866,32.90789],[102.634881,32.90788],[102.634845,32.907863],[102.634825,32.907857],[102.634803,32.907842],[102.6348,32.907831],[102.634893,32.907818],[102.634924,32.907813],[102.635186,32.907955],[102.635295,32.908014],[102.635437,32.90806],[102.635548,32.908071],[102.635648,32.908099],[102.635734,32.908135],[102.635777,32.908162],[102.635831,32.908216],[102.635759,32.908208],[102.635631,32.908196],[102.636014,32.908402],[102.636056,32.908415],[102.636157,32.908447],[102.636298,32.908491],[102.636569,32.908575],[102.636573,32.908576],[102.637189,32.908768],[102.637197,32.90877],[102.6372,32.908772],[102.637379,32.908827],[102.637467,32.908792],[102.637512,32.908781],[102.637542,32.908784],[102.637562,32.908815],[102.637562,32.90884],[102.637544,32.908877],[102.63776,32.908864],[102.637774,32.908863],[102.638553,32.908816],[102.638689,32.908634],[102.638712,32.908603],[102.638719,32.908595],[102.638775,32.908519],[102.63883,32.908446],[102.638818,32.908252],[102.638808,32.908094],[102.638816,32.907979],[102.638854,32.907902],[102.638858,32.907849],[102.638857,32.907807],[102.638875,32.907784],[102.638899,32.907758],[102.638926,32.907731],[102.638949,32.907703],[102.638974,32.907675],[102.638991,32.907659],[102.638979,32.90757],[102.638977,32.90756],[102.638906,32.907058],[102.638899,32.907013],[102.638848,32.906654],[102.638847,32.906642],[102.638846,32.906641],[102.63881,32.906386],[102.638776,32.906093],[102.638742,32.905803],[102.638736,32.905752],[102.638736,32.90575],[102.638653,32.905044],[102.638717,32.904836],[102.63872,32.904826],[102.638729,32.904799],[102.638725,32.904683],[102.638813,32.904022],[102.638917,32.903767],[102.639114,32.903378],[102.639166,32.903117],[102.639282,32.902909],[102.639399,32.90291],[102.639537,32.902585],[102.639571,32.902558],[102.639772,32.902395],[102.63978,32.902389],[102.640913,32.901475],[102.641605,32.901035],[102.64163,32.901019],[102.641649,32.901007],[102.641843,32.900884],[102.642057,32.900824],[102.642078,32.900818],[102.642113,32.900808],[102.6432,32.900504],[102.643417,32.900587],[102.643604,32.900659],[102.643616,32.900664],[102.643849,32.900753],[102.643867,32.90076],[102.644057,32.900946],[102.644144,32.901032],[102.644163,32.901051],[102.644176,32.901064],[102.644289,32.901174],[102.644939,32.902038],[102.645604,32.902375],[102.646228,32.902343],[102.646439,32.902333],[102.64648,32.90233],[102.64676,32.902316],[102.647604,32.901963],[102.64764,32.901948],[102.647781,32.901889],[102.647921,32.901721],[102.647949,32.901687],[102.647956,32.901679],[102.647988,32.90164],[102.648278,32.90129],[102.648493,32.900872],[102.64858,32.900704],[102.648589,32.900687],[102.648685,32.900502],[102.648717,32.900438],[102.648734,32.900406],[102.648746,32.900349],[102.64878,32.900186],[102.648955,32.899355],[102.648741,32.898383],[102.64874,32.898377],[102.648705,32.898318],[102.648697,32.898305],[102.648722,32.898283],[102.648726,32.898265],[102.648715,32.89824],[102.64869,32.898216],[102.648662,32.898199],[102.64862,32.898176],[102.648604,32.89815],[102.648575,32.8981],[102.648468,32.897922],[102.648421,32.897844],[102.648415,32.897833],[102.648333,32.897805],[102.648051,32.897713],[102.647969,32.897665],[102.64793,32.897624],[102.64786,32.897547],[102.647846,32.897512],[102.647823,32.897475],[102.647788,32.897445],[102.647752,32.897419],[102.647728,32.897394],[102.647717,32.897316],[102.647714,32.897294],[102.647879,32.896904],[102.647916,32.896819],[102.648151,32.89655],[102.648187,32.896508],[102.648212,32.89648],[102.64829,32.896338],[102.648418,32.896141],[102.648588,32.895963],[102.648795,32.895776],[102.649038,32.895568],[102.64909,32.895525],[102.649158,32.895495],[102.649227,32.895473],[102.649337,32.895435],[102.649552,32.895349],[102.649682,32.895287],[102.649687,32.895212],[102.649741,32.895177],[102.650277,32.894835],[102.650313,32.894808],[102.651363,32.894026],[102.651553,32.893885],[102.652916,32.893261],[102.65373,32.893353],[102.653779,32.893359],[102.654404,32.893727],[102.654774,32.893945],[102.654798,32.893966],[102.654896,32.894049],[102.654965,32.894054],[102.655054,32.894067],[102.655118,32.894094],[102.655163,32.894122],[102.655207,32.894169],[102.655241,32.89421],[102.655286,32.894246],[102.655358,32.894329],[102.655407,32.894417],[102.655436,32.894503],[102.655666,32.894697],[102.655688,32.894715],[102.655809,32.894817],[102.656172,32.895635],[102.65702,32.896301],[102.657266,32.89632],[102.657312,32.896324],[102.657283,32.896342],[102.657314,32.896348],[102.657345,32.896369],[102.657355,32.896381],[102.657375,32.896389],[102.657405,32.896396],[102.657512,32.896339],[102.657554,32.89631],[102.657595,32.896269],[102.657647,32.896223],[102.65768,32.896189],[102.657707,32.89615],[102.657719,32.896123],[102.657734,32.896075],[102.657742,32.896022],[102.657748,32.895951],[102.65776,32.895902],[102.657775,32.895842],[102.657791,32.89579],[102.657799,32.895756],[102.657788,32.895639],[102.657788,32.895596],[102.657781,32.895561],[102.657774,32.895521],[102.657763,32.89547],[102.657763,32.89542],[102.657769,32.895364],[102.657779,32.895304],[102.657807,32.895215],[102.657831,32.895167],[102.657837,32.895136],[102.657844,32.895084],[102.657853,32.895028],[102.657877,32.894944],[102.657896,32.894884],[102.657916,32.894839],[102.65794,32.894795],[102.657951,32.894777],[102.65794,32.894737],[102.657903,32.8946],[102.65772,32.893918],[102.657717,32.893906],[102.657666,32.893716],[102.657708,32.893378],[102.657727,32.89323],[102.658175,32.893014],[102.658214,32.892995],[102.659423,32.892734],[102.659453,32.892706],[102.660163,32.892018],[102.660845,32.891706],[102.661289,32.891693],[102.661711,32.891681],[102.662236,32.891849],[102.662522,32.89194],[102.662943,32.892394],[102.663252,32.89328],[102.663256,32.893293],[102.663256,32.893314],[102.663254,32.893365],[102.663282,32.893498],[102.663286,32.893564],[102.663283,32.89368],[102.663284,32.893795],[102.663309,32.893941],[102.663343,32.893988],[102.663323,32.89421],[102.66337,32.89451],[102.663371,32.89486],[102.663359,32.895057],[102.663396,32.895284],[102.663669,32.895898],[102.664223,32.89676],[102.664933,32.89722],[102.664967,32.897222],[102.664991,32.897223],[102.665116,32.897231],[102.665347,32.897244],[102.665707,32.897265],[102.665743,32.897268],[102.665941,32.897279],[102.666727,32.896685],[102.668332,32.895985],[102.668715,32.895839],[102.668775,32.895816],[102.668799,32.895807],[102.669116,32.895686],[102.669132,32.89568],[102.669277,32.895625],[102.66945,32.895559],[102.66958,32.895536],[102.66962,32.895528],[102.669704,32.895513],[102.670465,32.895375],[102.67052,32.895342],[102.670569,32.895312],[102.670716,32.895224],[102.671247,32.894903],[102.671862,32.894594],[102.671904,32.894503],[102.67193,32.894503],[102.671994,32.894497],[102.672181,32.894434],[102.672417,32.894316],[102.672699,32.894213],[102.673208,32.894028],[102.673582,32.893891],[102.673727,32.893784],[102.673732,32.89378],[102.673905,32.893652],[102.673934,32.893631],[102.67406,32.893538],[102.674171,32.893456],[102.674267,32.893385],[102.674244,32.893347],[102.674224,32.89325],[102.674259,32.893207],[102.674391,32.893184],[102.674546,32.89318],[102.67471,32.89306],[102.674932,32.893105],[102.674934,32.893105],[102.675121,32.893143],[102.675156,32.89315],[102.675214,32.893161],[102.67538,32.893194],[102.67542,32.893233],[102.675437,32.893248],[102.6766,32.894353],[102.67769,32.89476],[102.677699,32.894764],[102.677744,32.89478],[102.677992,32.89485],[102.678985,32.895128],[102.679132,32.895223],[102.67922,32.895247],[102.679411,32.895317],[102.679629,32.895423],[102.679745,32.895517],[102.679779,32.895555],[102.679814,32.895643],[102.67982,32.895665],[102.680026,32.895797],[102.680198,32.895948],[102.680475,32.896192],[102.68052,32.896233],[102.681483,32.897082],[102.682138,32.897476],[102.682161,32.89749],[102.682273,32.897558],[102.682409,32.89764],[102.682525,32.89771],[102.682605,32.89778],[102.682616,32.89779],[102.683137,32.898249],[102.683128,32.898592],[102.683182,32.898554],[102.683219,32.89852],[102.683253,32.898474],[102.683266,32.898424],[102.683302,32.898416],[102.683301,32.898442],[102.683301,32.89855],[102.683286,32.898632],[102.683259,32.898671],[102.683163,32.898703],[102.683124,32.898712],[102.683121,32.898865],[102.683117,32.898998],[102.683116,32.899033],[102.683115,32.89906],[102.683071,32.899073],[102.683051,32.899082],[102.683031,32.899093],[102.683013,32.899108],[102.682987,32.89914],[102.682675,32.899336],[102.682595,32.899352],[102.682578,32.899356],[102.682538,32.899364],[102.68195,32.899485],[102.681367,32.899717],[102.68106,32.9],[102.680776,32.900262],[102.680677,32.900354],[102.680458,32.900829],[102.680429,32.90089],[102.680419,32.900913],[102.680306,32.901158],[102.680333,32.90119],[102.680348,32.901209],[102.680387,32.901265],[102.680397,32.901294],[102.680399,32.901325],[102.680397,32.90136],[102.68039,32.9014],[102.680548,32.901609],[102.681053,32.901841],[102.681107,32.901866],[102.681351,32.901978],[102.681595,32.90209],[102.682116,32.902328],[102.683152,32.9032],[102.683054,32.903717],[102.683052,32.903728],[102.682995,32.904034],[102.682939,32.904074],[102.682898,32.904094],[102.68285,32.904113],[102.682817,32.904128],[102.682796,32.904149],[102.68277,32.904196],[102.682647,32.904257],[102.682643,32.904259],[102.681571,32.904794],[102.681325,32.905214],[102.681288,32.905277],[102.681218,32.905396],[102.681343,32.906169],[102.68191,32.906545],[102.682449,32.906578],[102.682606,32.906587],[102.682777,32.906597],[102.682784,32.906598],[102.682832,32.906601],[102.682871,32.906603],[102.683042,32.906606],[102.683315,32.906611],[102.683784,32.90662],[102.683806,32.906623],[102.684065,32.906654],[102.684176,32.906668],[102.684588,32.906717],[102.684669,32.906727],[102.685024,32.90677],[102.685174,32.906788],[102.685367,32.906812],[102.685487,32.906818],[102.68578,32.906834],[102.685877,32.906839],[102.686487,32.906872],[102.68652,32.906874],[102.686622,32.906833],[102.686633,32.906829],[102.686929,32.90671],[102.686953,32.906701],[102.687006,32.90668],[102.688349,32.906826],[102.688397,32.906859],[102.688524,32.906942],[102.689484,32.907578],[102.689666,32.907732],[102.689737,32.907793],[102.689756,32.907809],[102.690044,32.908054],[102.690057,32.908066],[102.690442,32.908393],[102.690785,32.908684],[102.690849,32.908739],[102.691092,32.908822],[102.691436,32.908938],[102.691508,32.908962],[102.691524,32.908967],[102.691541,32.908973],[102.691632,32.909004],[102.691648,32.909009],[102.692375,32.909255],[102.694242,32.909614],[102.695183,32.90955],[102.69524,32.909546],[102.696122,32.909486],[102.697161,32.909169],[102.697536,32.909054],[102.697544,32.909051],[102.697625,32.909027],[102.697734,32.908993],[102.69829,32.90882],[102.698352,32.908801],[102.698446,32.908772],[102.698983,32.908605],[102.700235,32.908392],[102.700258,32.908388],[102.700469,32.908352],[102.700916,32.908276],[102.701927,32.907981],[102.702094,32.907932],[102.702106,32.907929],[102.702224,32.907894],[102.702512,32.907857],[102.703616,32.907717],[102.703656,32.907712],[102.703674,32.90771],[102.703898,32.907681],[102.704457,32.90761],[102.704478,32.907608],[102.704734,32.907575],[102.704856,32.907609],[102.70505,32.907662],[102.705442,32.907771],[102.705574,32.907808],[102.705833,32.907879],[102.705886,32.907918],[102.705893,32.907924],[102.706339,32.908251],[102.706367,32.908272],[102.706412,32.908304],[102.706683,32.908504],[102.707575,32.908692],[102.707646,32.908707],[102.707735,32.908726],[102.708094,32.908687],[102.708159,32.90868],[102.708216,32.908674],[102.708361,32.908658],[102.7087,32.908622],[102.709571,32.908435],[102.710292,32.908524],[102.710722,32.908578],[102.710755,32.908581],[102.710802,32.908622],[102.710956,32.908706],[102.71108,32.908821],[102.711279,32.908959],[102.711516,32.909092],[102.711733,32.909211],[102.711933,32.909306],[102.712116,32.909376],[102.712227,32.909408],[102.712252,32.909414],[102.712418,32.909461],[102.712609,32.909589],[102.712665,32.909666],[102.712776,32.909808],[102.712907,32.910053],[102.713413,32.910575],[102.713932,32.910911],[102.714123,32.911034],[102.714274,32.911047],[102.714299,32.911049],[102.714365,32.911054],[102.714747,32.911086],[102.71487,32.911103],[102.714956,32.911162],[102.715039,32.911186],[102.715117,32.911207],[102.715182,32.911236],[102.715254,32.911274],[102.715321,32.911309],[102.715372,32.911327],[102.715443,32.911336],[102.715582,32.911339],[102.715599,32.911339],[102.716182,32.911853],[102.716183,32.911854],[102.716218,32.911884],[102.716229,32.911912],[102.71643,32.912388],[102.716465,32.91247],[102.71658,32.912743],[102.71758,32.913167],[102.718304,32.913058],[102.71978,32.912873],[102.719994,32.912846],[102.720509,32.912563],[102.720696,32.91246],[102.721067,32.912257],[102.722416,32.911998],[102.722522,32.911978],[102.722528,32.911977],[102.722541,32.911974],[102.722608,32.911961],[102.722614,32.91196],[102.722804,32.912009],[102.722942,32.912045],[102.72308,32.91208],[102.723202,32.912112],[102.723754,32.912254],[102.72387,32.912284],[102.724068,32.912336],[102.724086,32.91234],[102.724443,32.912432],[102.724455,32.912436],[102.724466,32.912438],[102.724754,32.912513],[102.724813,32.912528],[102.724963,32.912605],[102.72498,32.912613],[102.724997,32.912622],[102.726047,32.913159],[102.726388,32.913223],[102.726459,32.913236],[102.726484,32.913241],[102.726503,32.913245],[102.726707,32.913283],[102.726669,32.913316],[102.726672,32.913328],[102.726683,32.913328],[102.726769,32.913295],[102.727005,32.913339],[102.727323,32.913157],[102.727329,32.913152],[102.727385,32.913042],[102.727519,32.912918],[102.727617,32.912821],[102.727718,32.912715],[102.7278,32.912634],[102.72786,32.9126],[102.727891,32.912583],[102.728089,32.912489],[102.728131,32.912471],[102.728178,32.912451],[102.728273,32.91241],[102.728318,32.91239],[102.728723,32.912359],[102.728853,32.912364],[102.728923,32.912373],[102.728956,32.912386],[102.729003,32.912416],[102.729104,32.912447],[102.729271,32.91247],[102.729416,32.912485],[102.729546,32.912448],[102.729624,32.912485],[102.72991,32.912621],[102.730192,32.913232],[102.730268,32.913397],[102.730317,32.913503],[102.730318,32.913505],[102.730393,32.913668],[102.730416,32.913718],[102.730457,32.913807],[102.730451,32.914056],[102.73045,32.914098],[102.730431,32.914821],[102.730604,32.915148],[102.730611,32.915197],[102.730646,32.915269],[102.730666,32.915328],[102.730692,32.915396],[102.73071,32.915442],[102.730742,32.915484],[102.730774,32.915564],[102.730825,32.915564],[102.730844,32.9156],[102.7311,32.915744],[102.731291,32.915851],[102.732131,32.916324],[102.732409,32.916481],[102.732834,32.917172],[102.732956,32.917371],[102.733084,32.91758],[102.733241,32.917835],[102.733385,32.91797],[102.733601,32.918174],[102.733813,32.918373],[102.733821,32.918381],[102.733962,32.918514],[102.734196,32.918751],[102.734407,32.918941],[102.734604,32.919118],[102.734786,32.919267],[102.734929,32.919384],[102.735104,32.919528],[102.735408,32.919777],[102.735575,32.919913],[102.735707,32.920021],[102.735922,32.920198],[102.736177,32.920407],[102.736439,32.920621],[102.73663,32.920778],[102.736807,32.920895],[102.736945,32.920987],[102.737116,32.921101],[102.737241,32.921184],[102.737408,32.921296],[102.737582,32.921412],[102.737763,32.921532],[102.737933,32.921646],[102.738081,32.921744],[102.73822,32.921837],[102.738326,32.921907],[102.738424,32.921973],[102.738578,32.922075],[102.738677,32.922141],[102.738759,32.922196],[102.738913,32.922291],[102.739069,32.922388],[102.73921,32.922475],[102.739349,32.922569],[102.739501,32.92266],[102.739661,32.922755],[102.739811,32.922848],[102.739923,32.922917],[102.740037,32.922988],[102.740175,32.923074],[102.740282,32.92314],[102.740368,32.923194],[102.74047,32.923257],[102.740621,32.923268],[102.740795,32.923289],[102.740974,32.92334],[102.74112,32.923392],[102.741241,32.923447],[102.74136,32.923474],[102.742381,32.923703],[102.742473,32.923724],[102.742664,32.923748],[102.742859,32.923772],[102.742902,32.923777],[102.742914,32.923778],[102.742972,32.923786],[102.743241,32.923819],[102.74332,32.923671],[102.743392,32.923538],[102.743306,32.923128],[102.743254,32.923076],[102.743238,32.923032],[102.74322,32.922971],[102.743208,32.92291],[102.743198,32.922843],[102.743198,32.922799],[102.743221,32.922724],[102.743266,32.922591],[102.743284,32.92251],[102.743288,32.922482],[102.743265,32.922461],[102.743185,32.922477],[102.743209,32.92233],[102.743253,32.922069],[102.743256,32.922054],[102.74328,32.921913],[102.743304,32.921767],[102.743312,32.921719],[102.74334,32.921553],[102.743591,32.921428],[102.743748,32.92135],[102.74378,32.921278],[102.743816,32.921258],[102.743884,32.921212],[102.744126,32.921157],[102.744397,32.92113],[102.744411,32.921129],[102.744895,32.921081],[102.744916,32.92106],[102.744943,32.921059],[102.744962,32.921075],[102.745525,32.92102],[102.746005,32.921121],[102.746019,32.921124],[102.746121,32.921145],[102.746329,32.921189],[102.746567,32.921239],[102.746578,32.921241],[102.747119,32.921684],[102.747138,32.9217],[102.747181,32.921783],[102.747305,32.922024],[102.747367,32.922131],[102.747411,32.922251],[102.747439,32.922325],[102.747439,32.922335],[102.747441,32.92239],[102.748182,32.922896],[102.748981,32.923567],[102.749043,32.92362],[102.749067,32.92364],[102.749539,32.923916],[102.75014,32.924268],[102.750821,32.924666],[102.750897,32.92471],[102.752718,32.925775],[102.753762,32.926362],[102.754013,32.926339],[102.754486,32.926294],[102.755005,32.926005],[102.75512,32.92594],[102.755324,32.925675],[102.755343,32.92565],[102.755767,32.9251],[102.755851,32.925049],[102.75694,32.92439],[102.757962,32.923922],[102.759033,32.923413],[102.760483,32.923155],[102.76197,32.923076],[102.763326,32.923003],[102.763664,32.922917],[102.763759,32.922893],[102.763859,32.922868],[102.765263,32.922511],[102.768211,32.921995],[102.768917,32.921832],[102.769064,32.921799],[102.770498,32.921468],[102.770824,32.921393],[102.771647,32.921183],[102.772644,32.92093],[102.772761,32.9209],[102.774166,32.920519],[102.774659,32.920528],[102.775261,32.920538],[102.775272,32.920539],[102.775292,32.920549],[102.775406,32.92053],[102.775565,32.920533],[102.775685,32.920557],[102.775724,32.920578],[102.775837,32.920637],[102.775953,32.920716],[102.77599,32.920763],[102.776038,32.920889],[102.776038,32.920923],[102.776003,32.920942],[102.776782,32.921742],[102.777396,32.9222],[102.778451,32.92234],[102.779793,32.922567],[102.780707,32.922543],[102.780821,32.922521],[102.780877,32.92251],[102.781004,32.922486],[102.781198,32.922448],[102.781227,32.922443],[102.781286,32.922431],[102.781674,32.922357],[102.781909,32.922218],[102.781916,32.922214],[102.782113,32.922097],[102.782407,32.921923],[102.783091,32.921058],[102.783102,32.921043],[102.783114,32.921025],[102.783167,32.92094],[102.783366,32.92062],[102.783454,32.920564],[102.783543,32.920473],[102.783617,32.920393],[102.783675,32.920321],[102.78412,32.920115],[102.784185,32.920084],[102.78422,32.920068],[102.784388,32.919977],[102.784709,32.919681],[102.785332,32.919338],[102.785571,32.919205],[102.785616,32.919177],[102.785818,32.919049],[102.785914,32.918988],[102.786003,32.918932],[102.786149,32.918839],[102.786208,32.918801],[102.786525,32.918546],[102.786551,32.918524],[102.78661,32.918476],[102.786756,32.918358],[102.787174,32.918127],[102.78726,32.918079],[102.787287,32.918051],[102.787318,32.917956],[102.787394,32.917881],[102.787617,32.917841],[102.787644,32.917837],[102.787859,32.917819],[102.787935,32.917821],[102.788048,32.917806],[102.788186,32.917746],[102.788313,32.917692],[102.788329,32.917688],[102.788463,32.917656],[102.788542,32.91766],[102.788644,32.917719],[102.788656,32.91774],[102.78886,32.917735],[102.789098,32.91773],[102.789228,32.917726],[102.789246,32.917726],[102.789323,32.917724],[102.789727,32.917693],[102.790093,32.91736],[102.790161,32.917035],[102.790185,32.91692],[102.790195,32.916871],[102.790195,32.916856],[102.790184,32.916358],[102.790176,32.915935],[102.790175,32.915889],[102.790168,32.915826],[102.790066,32.914868],[102.790069,32.914745],[102.790084,32.91414],[102.79009,32.913887],[102.790291,32.913022],[102.790959,32.912533],[102.791086,32.91244],[102.791095,32.912434],[102.791248,32.912322],[102.791313,32.912243],[102.791388,32.912299],[102.791459,32.912257],[102.791503,32.91218],[102.791515,32.912118],[102.791531,32.912086],[102.791561,32.912038],[102.791593,32.911993],[102.79161,32.911953],[102.791637,32.911851],[102.791772,32.911688],[102.791795,32.91166],[102.792171,32.911206],[102.79235,32.910484],[102.792381,32.91036],[102.792427,32.910174],[102.79243,32.91016],[102.792448,32.91009],[102.792451,32.910076],[102.792469,32.910003],[102.792499,32.909857],[102.792674,32.908987],[102.792659,32.908868],[102.792589,32.908296],[102.792588,32.908293],[102.792562,32.908079],[102.79258,32.907362],[102.792598,32.906607],[102.792311,32.905583],[102.792201,32.904599],[102.792147,32.904164],[102.79194,32.902481],[102.791918,32.901574],[102.791897,32.90063],[102.792016,32.899424],[102.792136,32.898708],[102.792174,32.898483],[102.792529,32.897642],[102.792982,32.896572],[102.793136,32.895782],[102.793334,32.894993],[102.793577,32.894242],[102.794106,32.892741],[102.794852,32.891546],[102.795242,32.890232],[102.795807,32.887297],[102.796124,32.88534],[102.795936,32.884076],[102.795932,32.884053],[102.795721,32.883558],[102.794845,32.882788],[102.794064,32.88183],[102.792755,32.880486],[102.792195,32.879607],[102.792015,32.87783],[102.791732,32.876617],[102.791887,32.875789],[102.791954,32.874884],[102.791453,32.873441],[102.790717,32.872446],[102.790649,32.871614],[102.790525,32.871394],[102.789877,32.870242],[102.78952,32.869795],[102.789357,32.869591],[102.788486,32.868632],[102.787961,32.868131],[102.787511,32.86784],[102.787497,32.867831],[102.787411,32.867776],[102.787402,32.86777],[102.787301,32.867705],[102.786635,32.867461],[102.78658,32.867441],[102.786548,32.867429],[102.786326,32.867347],[102.785864,32.867321],[102.785395,32.867294],[102.785388,32.867293],[102.784325,32.866859],[102.784121,32.866063],[102.784091,32.865458],[102.78402,32.864739],[102.783364,32.862349],[102.782933,32.859888],[102.782824,32.858867],[102.782848,32.857923],[102.782782,32.856978],[102.78237,32.855536],[102.781341,32.853782],[102.780965,32.852718],[102.780298,32.850743],[102.77869,32.848865],[102.778394,32.84818],[102.778601,32.847051],[102.77866,32.844711],[102.778935,32.840828],[102.779019,32.839244],[102.778864,32.838297],[102.778723,32.836784],[102.777969,32.834732],[102.777469,32.833251],[102.777068,32.831432],[102.776906,32.830668],[102.776818,32.830249],[102.776788,32.830105],[102.776835,32.829659],[102.776963,32.828447],[102.777092,32.8281],[102.77749,32.827022],[102.777562,32.825929],[102.777201,32.824299],[102.776928,32.822671],[102.776819,32.82165],[102.77715,32.820938],[102.778082,32.819407],[102.778698,32.818021],[102.778842,32.815834],[102.778791,32.814285],[102.778952,32.813193],[102.778714,32.811981],[102.778086,32.810271],[102.778451,32.808201],[102.778828,32.807415],[102.779383,32.80667],[102.779207,32.806553],[102.777841,32.805774],[102.774801,32.803983],[102.772867,32.802665],[102.771281,32.801731],[102.77063,32.800927],[102.769432,32.798791],[102.7685,32.796736],[102.767758,32.794231],[102.767846,32.792496],[102.768283,32.791107],[102.768401,32.789977],[102.768603,32.789036],[102.768283,32.783934],[102.766972,32.782778],[102.764572,32.780432],[102.76358,32.779018],[102.762794,32.778286],[102.762059,32.777292],[102.760564,32.776321],[102.759334,32.775469],[102.757893,32.774121],[102.757023,32.7732],[102.756686,32.772363],[102.756347,32.77164],[102.755127,32.77041],[102.753668,32.76978],[102.751567,32.769817],[102.749698,32.769482],[102.749676,32.769478],[102.749675,32.769477],[102.74874,32.769307],[102.748725,32.769304],[102.748457,32.769256],[102.748441,32.769253],[102.74832,32.769231],[102.747987,32.769127],[102.747886,32.769096],[102.747007,32.768823],[102.746988,32.768817],[102.746903,32.768791],[102.746896,32.768786],[102.746884,32.768778],[102.745408,32.767744],[102.743606,32.766541],[102.74239,32.76516],[102.740571,32.764057],[102.739106,32.763074],[102.738288,32.762456],[102.736213,32.762066],[102.734195,32.761778],[102.733005,32.761706],[102.732346,32.761845],[102.731268,32.762077],[102.729958,32.762053],[102.728347,32.762125],[102.726982,32.761949],[102.725669,32.762026],[102.723295,32.761681],[102.722461,32.761665],[102.721722,32.761859],[102.721562,32.761901],[102.721528,32.761909],[102.721535,32.761574],[102.721403,32.760994],[102.721183,32.760042],[102.721268,32.758641],[102.721303,32.758239],[102.721475,32.756253],[102.72146,32.754933],[102.721534,32.753945],[102.720966,32.753233],[102.720301,32.75252],[102.719211,32.751263],[102.719018,32.751013],[102.718502,32.750343],[102.717787,32.749711],[102.717373,32.748714],[102.717,32.748006],[102.71673,32.745239],[102.716646,32.743862],[102.716626,32.743546],[102.716983,32.73914],[102.717228,32.737165],[102.717499,32.736098],[102.717708,32.735566],[102.716965,32.734109],[102.716123,32.732691],[102.715777,32.730953],[102.714921,32.728174],[102.71461,32.727312],[102.714009,32.725642],[102.713869,32.723495],[102.713414,32.722209],[102.713119,32.720389],[102.712902,32.719354],[102.712407,32.717695],[102.711905,32.716367],[102.711114,32.714868],[102.710765,32.713253],[102.709942,32.711094],[102.709183,32.710255],[102.709519,32.70857],[102.710358,32.706276],[102.710897,32.705149],[102.711045,32.704072],[102.710474,32.703337],[102.710017,32.702332],[102.709341,32.701549],[102.708339,32.700897],[102.707656,32.700386],[102.706591,32.70014],[102.705215,32.699435],[102.704211,32.698918],[102.703359,32.698676],[102.702284,32.698838],[102.70224,32.698831],[102.701003,32.698633],[102.699845,32.697841],[102.69933,32.697017],[102.698919,32.696329],[102.698738,32.695012],[102.698869,32.694109],[102.698802,32.692522],[102.698076,32.691602],[102.696438,32.690711],[102.695055,32.690323],[102.693941,32.690213],[102.693933,32.690212],[102.693482,32.690181],[102.693023,32.69015],[102.691877,32.691413],[102.68777,32.695936],[102.687705,32.696008],[102.683759,32.700354],[102.68316,32.700868],[102.682445,32.701482],[102.681951,32.701906],[102.680319,32.702827],[102.678915,32.703254],[102.678,32.703419],[102.676411,32.70271],[102.675476,32.70156],[102.675466,32.701628],[102.675395,32.701302],[102.675186,32.700339],[102.675227,32.698736],[102.674756,32.696418],[102.674282,32.694228],[102.673717,32.692614],[102.67323,32.690937],[102.672292,32.689059],[102.671802,32.687511],[102.671464,32.685901],[102.671496,32.684682],[102.67192,32.682958],[102.672356,32.681203],[102.672635,32.680083],[102.672656,32.679999],[102.672682,32.679893],[102.673309,32.679135],[102.674451,32.678964],[102.67544,32.678854],[102.676287,32.679232],[102.67635,32.67926],[102.676639,32.67939],[102.678383,32.679422],[102.680135,32.679134],[102.681366,32.678451],[102.681637,32.678265],[102.681667,32.678244],[102.681706,32.678218],[102.681757,32.678183],[102.681831,32.678132],[102.682246,32.677847],[102.682241,32.677779],[102.682238,32.677683],[102.682263,32.677557],[102.682279,32.677463],[102.68229,32.677449],[102.682321,32.677414],[102.682326,32.677409],[102.682385,32.677355],[102.682413,32.677294],[102.682416,32.677278],[102.682431,32.677204],[102.68247,32.677154],[102.682618,32.677107],[102.682743,32.677065],[102.682844,32.677026],[102.682918,32.677014],[102.682963,32.677006],[102.683032,32.677005],[102.683093,32.677005],[102.683215,32.676868],[102.683384,32.676676],[102.683689,32.675608],[102.683601,32.675309],[102.683561,32.675298],[102.683283,32.675222],[102.68256,32.675187],[102.682356,32.675177],[102.682117,32.675122],[102.681991,32.67516],[102.681835,32.675168],[102.681748,32.675149],[102.681649,32.6751],[102.681521,32.675014],[102.681482,32.674975],[102.681411,32.674893],[102.681323,32.674784],[102.681159,32.674621],[102.681082,32.674508],[102.681038,32.674407],[102.681001,32.674262],[102.681076,32.673936],[102.681534,32.673566],[102.682123,32.673486],[102.68224,32.67347],[102.682334,32.673489],[102.683125,32.673646],[102.683294,32.673679],[102.683994,32.673692],[102.684191,32.67371],[102.684761,32.673761],[102.685199,32.673653],[102.685276,32.673635],[102.685326,32.673616],[102.685475,32.673561],[102.685527,32.673541],[102.68576,32.673454],[102.685769,32.673103],[102.685713,32.672804],[102.685395,32.672717],[102.684462,32.672916],[102.684081,32.672828],[102.683798,32.672606],[102.683765,32.672199],[102.683765,32.672191],[102.68375,32.67201],[102.68374,32.671985],[102.683692,32.67186],[102.683682,32.671834],[102.683669,32.671799],[102.683542,32.67147],[102.68354,32.671465],[102.683467,32.671388],[102.683452,32.671372],[102.683415,32.671332],[102.683073,32.670969],[102.682674,32.670861],[102.682626,32.670848],[102.682328,32.670767],[102.682315,32.670764],[102.68225,32.670765],[102.682149,32.670761],[102.682008,32.670744],[102.681933,32.670728],[102.681834,32.670695],[102.681696,32.670622],[102.681564,32.670516],[102.681539,32.670496],[102.681376,32.670362],[102.681293,32.670263],[102.681219,32.670179],[102.681207,32.670113],[102.681199,32.670106],[102.680891,32.669823],[102.680857,32.669791],[102.68084,32.669776],[102.680831,32.669767],[102.680707,32.669653],[102.680427,32.669351],[102.679888,32.669178],[102.67976,32.669138],[102.679442,32.669037],[102.679356,32.66901],[102.679342,32.669005],[102.679253,32.668977],[102.67908,32.668782],[102.678911,32.668592],[102.678699,32.668128],[102.678713,32.667587],[102.67855,32.666735],[102.678393,32.666535],[102.678355,32.666486],[102.678324,32.666447],[102.678085,32.66614],[102.678058,32.666133],[102.677949,32.666105],[102.677937,32.666103],[102.677703,32.666043],[102.67728,32.665935],[102.677243,32.665925],[102.677131,32.665897],[102.677008,32.665897],[102.676871,32.665897],[102.675732,32.6659],[102.675723,32.6659],[102.675556,32.6659],[102.675492,32.6659],[102.675141,32.665901],[102.675118,32.665901],[102.674944,32.665901],[102.674897,32.665896],[102.674869,32.665893],[102.674833,32.665856],[102.674781,32.665836],[102.674713,32.665832],[102.674644,32.665833],[102.674558,32.665833],[102.674498,32.665851],[102.674354,32.665835],[102.674347,32.665834],[102.674246,32.665823],[102.674038,32.665799],[102.6739,32.665784],[102.673508,32.665739],[102.673251,32.665666],[102.673228,32.665659],[102.6732,32.665651],[102.672814,32.66554],[102.672603,32.665479],[102.672538,32.6654],[102.672506,32.665382],[102.672453,32.665356],[102.672368,32.665317],[102.672287,32.665292],[102.672161,32.665199],[102.671979,32.665064],[102.671966,32.665055],[102.671874,32.664987],[102.671203,32.664118],[102.670967,32.663856],[102.670925,32.663809],[102.670858,32.663736],[102.67085,32.663727],[102.670729,32.663593],[102.670713,32.663575],[102.670581,32.663429],[102.67017,32.662835],[102.669943,32.662767],[102.669939,32.662765],[102.669852,32.662739],[102.669561,32.662815],[102.669047,32.66295],[102.668465,32.663198],[102.668238,32.663295],[102.667752,32.663338],[102.667533,32.663334],[102.667305,32.663349],[102.6669,32.66324],[102.666766,32.663204],[102.666715,32.66319],[102.665581,32.662885],[102.664943,32.662681],[102.664908,32.66267],[102.664897,32.662666],[102.664682,32.662598],[102.664653,32.662576],[102.664645,32.662571],[102.66456,32.662507],[102.664054,32.662135],[102.664002,32.661992],[102.663999,32.661985],[102.663952,32.661856],[102.663873,32.661639],[102.663914,32.66163],[102.663935,32.661619],[102.664063,32.661558],[102.664012,32.661519],[102.663976,32.661466],[102.663946,32.661403],[102.66393,32.661365],[102.663909,32.661314],[102.663901,32.661238],[102.664145,32.660693],[102.664301,32.660276],[102.664308,32.660258],[102.664328,32.660206],[102.664431,32.659931],[102.664496,32.659481],[102.664352,32.659195],[102.664291,32.659076],[102.664166,32.658972],[102.663957,32.658847],[102.663842,32.65881],[102.663774,32.658798],[102.663745,32.658782],[102.663392,32.658874],[102.663113,32.659534],[102.663051,32.65968],[102.662612,32.660168],[102.662547,32.660146],[102.662537,32.660143],[102.662515,32.660135],[102.662432,32.660107],[102.662423,32.660104],[102.662194,32.660027],[102.662165,32.660017],[102.662145,32.66001],[102.661976,32.659953],[102.661766,32.659881],[102.661715,32.659887],[102.661588,32.659901],[102.661071,32.659959],[102.66048,32.660083],[102.660468,32.660086],[102.660331,32.660115],[102.660263,32.660129],[102.660221,32.660138],[102.660115,32.66016],[102.659891,32.660207],[102.659854,32.660197],[102.658885,32.659918],[102.658876,32.659914],[102.658804,32.659884],[102.658717,32.659846],[102.65828,32.65966],[102.658154,32.659607],[102.657777,32.659446],[102.657708,32.659398],[102.657242,32.659078],[102.657165,32.658991],[102.656969,32.658771],[102.656384,32.658111],[102.6562,32.657822],[102.655813,32.657212],[102.655451,32.656865],[102.655442,32.656856],[102.655278,32.656699],[102.655095,32.65655],[102.655075,32.656533],[102.655036,32.656501],[102.655026,32.656493],[102.654896,32.656387],[102.654696,32.656224],[102.654614,32.656204],[102.654515,32.656123],[102.654352,32.656076],[102.654241,32.656052],[102.654197,32.656099],[102.654116,32.656229],[102.653911,32.656557],[102.65393,32.657544],[102.65393,32.657563],[102.653927,32.657591],[102.65391,32.657751],[102.65394,32.657765],[102.654034,32.657839],[102.654096,32.657886],[102.654141,32.657929],[102.654177,32.65799],[102.654189,32.658071],[102.654178,32.658126],[102.654139,32.658164],[102.654065,32.658218],[102.653984,32.658258],[102.65393,32.658313],[102.653873,32.658375],[102.653794,32.658421],[102.65373,32.658464],[102.65366,32.658502],[102.653657,32.658504],[102.653635,32.658509],[102.653568,32.658526],[102.653463,32.658536],[102.653388,32.658525],[102.653297,32.658495],[102.653215,32.658451],[102.653212,32.658448],[102.653197,32.658435],[102.653175,32.658414],[102.653146,32.658386],[102.653084,32.658345],[102.653027,32.658352],[102.652912,32.658365],[102.652811,32.658376],[102.652703,32.658389],[102.652586,32.658402],[102.6524,32.658423],[102.65181,32.658258],[102.651782,32.658126],[102.651773,32.658083],[102.651744,32.657942],[102.651729,32.65787],[102.651863,32.65769],[102.651868,32.657683],[102.651958,32.657562],[102.652013,32.657488],[102.652065,32.657399],[102.652131,32.657286],[102.652137,32.657275],[102.652146,32.65726],[102.652178,32.657206],[102.652329,32.656947],[102.652348,32.656915],[102.652341,32.656723],[102.652334,32.65654],[102.652321,32.65618],[102.652298,32.65615],[102.652172,32.655985],[102.651953,32.6557],[102.651995,32.655655],[102.652012,32.655609],[102.652021,32.655556],[102.652023,32.655492],[102.652016,32.655442],[102.651995,32.655409],[102.651961,32.655391],[102.651932,32.65539],[102.65192,32.655396],[102.651906,32.655414],[102.651905,32.655441],[102.651905,32.655491],[102.651904,32.655534],[102.651904,32.655567],[102.651907,32.655641],[102.651844,32.655558],[102.651851,32.655516],[102.651856,32.655485],[102.651856,32.655457],[102.651846,32.655427],[102.651826,32.655408],[102.6518,32.655389],[102.651773,32.655371],[102.651747,32.655363],[102.651682,32.655348],[102.651658,32.655317],[102.651494,32.655286],[102.651474,32.655282],[102.650978,32.655188],[102.650023,32.654938],[102.649976,32.654918],[102.649797,32.654842],[102.6496,32.654759],[102.649299,32.654632],[102.649164,32.654574],[102.648968,32.654534],[102.64823,32.654383],[102.648138,32.654364],[102.647894,32.654314],[102.64771,32.654277],[102.647462,32.654346],[102.64723,32.654411],[102.647189,32.654423],[102.647065,32.654458],[102.64697,32.65444],[102.6469,32.654426],[102.646513,32.654353],[102.646156,32.654286],[102.646001,32.654009],[102.645981,32.653973],[102.645964,32.653355],[102.646166,32.652983],[102.646516,32.652746],[102.646582,32.652727],[102.646644,32.652708],[102.64667,32.6527],[102.646794,32.652663],[102.646825,32.652654],[102.646914,32.652627],[102.647089,32.652574],[102.647419,32.652475],[102.647597,32.652484],[102.647701,32.652483],[102.647775,32.652486],[102.647845,32.65248],[102.647933,32.652445],[102.647995,32.652416],[102.648144,32.652384],[102.648169,32.652376],[102.648164,32.652357],[102.648169,32.652348],[102.648201,32.652328],[102.648233,32.652318],[102.64829,32.652285],[102.648312,32.65226],[102.648334,32.652229],[102.648366,32.652188],[102.648393,32.652157],[102.648441,32.652112],[102.648468,32.652086],[102.648502,32.65205],[102.648537,32.652014],[102.64856,32.651958],[102.648568,32.651915],[102.648578,32.651865],[102.64858,32.651819],[102.648579,32.651759],[102.648575,32.651712],[102.64855,32.651674],[102.648505,32.651632],[102.64847,32.6516],[102.648426,32.65157],[102.648366,32.651541],[102.648281,32.651509],[102.648176,32.651471],[102.648223,32.651471],[102.648271,32.651475],[102.648312,32.651489],[102.648381,32.651514],[102.648417,32.651528],[102.648461,32.651549],[102.64852,32.651575],[102.648556,32.651602],[102.648582,32.651622],[102.648614,32.651649],[102.648631,32.651676],[102.64865,32.651705],[102.648686,32.651785],[102.648693,32.651852],[102.64869,32.651893],[102.648689,32.651941],[102.648679,32.651971],[102.648671,32.651991],[102.64865,32.652053],[102.648731,32.651947],[102.648825,32.651823],[102.64883,32.651649],[102.648832,32.651555],[102.648833,32.651528],[102.648838,32.651321],[102.648067,32.651187],[102.647838,32.651148],[102.646467,32.651122],[102.646263,32.651067],[102.646112,32.650997],[102.646097,32.651022],[102.646091,32.651021],[102.64607,32.651015],[102.646024,32.651003],[102.646015,32.651],[102.645972,32.651079],[102.64594,32.651134],[102.64584,32.651101],[102.645741,32.651096],[102.645628,32.651118],[102.645614,32.65112],[102.645556,32.651139],[102.645458,32.651296],[102.645486,32.651413],[102.645481,32.651488],[102.645476,32.651547],[102.645477,32.651662],[102.645463,32.651673],[102.645447,32.651715],[102.645425,32.651879],[102.645396,32.651912],[102.645371,32.651967],[102.645358,32.652007],[102.645341,32.652059],[102.645298,32.652125],[102.645292,32.652155],[102.64527,32.652195],[102.645229,32.652236],[102.645194,32.652271],[102.645171,32.652291],[102.645118,32.652329],[102.645079,32.652351],[102.645011,32.652382],[102.644947,32.652408],[102.644877,32.652428],[102.644819,32.652438],[102.64478,32.652438],[102.644741,32.652462],[102.644727,32.652471],[102.644661,32.65251],[102.64456,32.652469],[102.644537,32.652481],[102.644492,32.65248],[102.64442,32.652467],[102.644323,32.65244],[102.644241,32.652409],[102.644178,32.652405],[102.644126,32.652437],[102.644092,32.652477],[102.644052,32.652526],[102.64399,32.65255],[102.643908,32.652568],[102.643872,32.652504],[102.643885,32.652001],[102.643881,32.651991],[102.643868,32.651966],[102.643823,32.651874],[102.643845,32.651854],[102.643842,32.651837],[102.643825,32.651802],[102.643802,32.651766],[102.643774,32.65173],[102.643712,32.65165],[102.643629,32.651628],[102.643304,32.65154],[102.643265,32.65153],[102.643258,32.651528],[102.64294,32.651442],[102.642827,32.651464],[102.642411,32.651544],[102.642375,32.651551],[102.642338,32.651558],[102.642118,32.6516],[102.642042,32.651658],[102.642012,32.651676],[102.641971,32.651695],[102.641925,32.651696],[102.641851,32.651719],[102.641762,32.651737],[102.641696,32.651726],[102.641652,32.651713],[102.641614,32.651704],[102.641545,32.651695],[102.641479,32.651693],[102.641428,32.651698],[102.641348,32.651694],[102.64127,32.651691],[102.641198,32.65168],[102.641184,32.651674],[102.641069,32.65165],[102.640984,32.651616],[102.640909,32.651578],[102.640842,32.65154],[102.640778,32.651495],[102.640749,32.651456],[102.64075,32.651425],[102.640756,32.651378],[102.640767,32.651324],[102.640776,32.65128],[102.640792,32.651222],[102.640869,32.651121],[102.640918,32.65108],[102.640971,32.651057],[102.641024,32.651053],[102.641096,32.651054],[102.641233,32.650909],[102.641238,32.650903],[102.641464,32.650665],[102.641482,32.650646],[102.641594,32.650527],[102.6417,32.650316],[102.641725,32.650267],[102.641779,32.650159],[102.641854,32.65019],[102.641842,32.650144],[102.641847,32.650098],[102.641835,32.650049],[102.641836,32.650018],[102.641844,32.649988],[102.641878,32.64995],[102.641809,32.649892],[102.641788,32.649839],[102.641754,32.649773],[102.641713,32.649751],[102.641682,32.649738],[102.641637,32.64972],[102.641591,32.649711],[102.641516,32.649696],[102.641514,32.649688],[102.641502,32.649682],[102.641474,32.649688],[102.641448,32.649701],[102.641429,32.6497],[102.641406,32.649681],[102.641388,32.649639],[102.641373,32.649595],[102.641362,32.649555],[102.641355,32.649515],[102.641167,32.64936],[102.640851,32.649238],[102.640534,32.649116],[102.640256,32.649266],[102.640241,32.649274],[102.639978,32.649415],[102.639883,32.649521],[102.639815,32.649597],[102.63958,32.649859],[102.639559,32.649884],[102.639396,32.650066],[102.639383,32.65008],[102.639366,32.650099],[102.639039,32.650364],[102.638588,32.650123],[102.638462,32.649486],[102.638391,32.649507],[102.638388,32.649487],[102.638388,32.649476],[102.638381,32.649463],[102.638382,32.649447],[102.638393,32.649429],[102.638405,32.649414],[102.63844,32.649372],[102.638427,32.649308],[102.638406,32.649244],[102.638403,32.649235],[102.638398,32.649219],[102.638374,32.649146],[102.638258,32.648789],[102.638176,32.64872],[102.638128,32.64867],[102.638039,32.648598],[102.637989,32.648553],[102.637953,32.648494],[102.637928,32.648438],[102.637878,32.648376],[102.63779,32.648292],[102.637703,32.6482],[102.637607,32.648111],[102.637508,32.64809],[102.636909,32.647966],[102.636895,32.64797],[102.636676,32.648048],[102.636641,32.64806],[102.636494,32.648112],[102.636437,32.64868],[102.636436,32.648687],[102.636432,32.64873],[102.636395,32.648859],[102.636376,32.648927],[102.63628,32.649268],[102.636256,32.649282],[102.636118,32.649359],[102.636105,32.649366],[102.635796,32.649538],[102.63569,32.649598],[102.63568,32.649603],[102.635178,32.649768],[102.635153,32.649776],[102.635004,32.649825],[102.634991,32.649829],[102.634957,32.64984],[102.634894,32.64986],[102.634653,32.64992],[102.634284,32.650011],[102.63402,32.650076],[102.633705,32.649915],[102.633645,32.649691],[102.63359,32.64969],[102.633558,32.649691],[102.633564,32.6496],[102.633585,32.649578],[102.63359,32.64957],[102.633605,32.649544],[102.633615,32.649434],[102.633619,32.64936],[102.633595,32.649235],[102.633557,32.64912],[102.63354,32.649026],[102.633506,32.648948],[102.633469,32.648894],[102.633404,32.648827],[102.633373,32.648769],[102.633357,32.648718],[102.633338,32.648674],[102.633326,32.64866],[102.633296,32.648666],[102.633277,32.648675],[102.633258,32.648684],[102.63325,32.648698],[102.63322,32.648699],[102.633203,32.648688],[102.633183,32.648672],[102.633158,32.648647],[102.633136,32.648631],[102.633071,32.648598],[102.633005,32.648566],[102.632908,32.648529],[102.632804,32.648476],[102.632706,32.648412],[102.632522,32.648303],[102.632396,32.648214],[102.63231,32.648166],[102.632105,32.648184],[102.632104,32.648217],[102.632101,32.648348],[102.632096,32.648532],[102.632808,32.649241],[102.632558,32.649501],[102.632541,32.649519],[102.632512,32.649549],[102.63248,32.649583],[102.632467,32.649588],[102.631907,32.649842],[102.63174,32.649917],[102.631415,32.649935],[102.630687,32.649974],[102.630377,32.649879],[102.63037,32.649878],[102.629463,32.649603],[102.628923,32.649284],[102.628938,32.648743],[102.629165,32.648404],[102.62919,32.648367],[102.629271,32.648247],[102.629329,32.648163],[102.629346,32.648138],[102.62936,32.648141],[102.629374,32.648141],[102.629399,32.648129],[102.629418,32.648096],[102.629461,32.648035],[102.629481,32.647999],[102.629498,32.647951],[102.629543,32.647885],[102.629574,32.647841],[102.629597,32.647817],[102.629628,32.647802],[102.629659,32.647782],[102.629718,32.647744],[102.629771,32.647687],[102.629857,32.647492],[102.629887,32.647434],[102.629909,32.647389],[102.629915,32.647365],[102.629915,32.647354],[102.62991,32.647343],[102.629906,32.647337],[102.629891,32.647289],[102.629792,32.647173],[102.629766,32.647138],[102.629731,32.647103],[102.629681,32.647056],[102.629548,32.646963],[102.629532,32.646956],[102.629469,32.646928],[102.629217,32.646815],[102.628614,32.646829],[102.628551,32.646831],[102.628425,32.646834],[102.628404,32.646834],[102.628302,32.646837],[102.628276,32.646863],[102.627867,32.647264],[102.627784,32.647345],[102.627824,32.647393],[102.627842,32.64742],[102.627854,32.647442],[102.627855,32.647458],[102.627853,32.647466],[102.627844,32.647475],[102.627818,32.647486],[102.627799,32.647495],[102.627785,32.647505],[102.62777,32.647517],[102.62776,32.647528],[102.627754,32.647544],[102.62775,32.647559],[102.627746,32.647577],[102.627735,32.647597],[102.627723,32.647608],[102.6277,32.647623],[102.627673,32.647635],[102.627609,32.647639],[102.627595,32.647639],[102.627567,32.647637],[102.627493,32.647633],[102.627459,32.647624],[102.627409,32.647608],[102.627375,32.647589],[102.627176,32.647669],[102.627165,32.647674],[102.627145,32.647682],[102.627092,32.647703],[102.626417,32.64769],[102.626356,32.647689],[102.626224,32.647686],[102.626168,32.647672],[102.626156,32.647669],[102.626006,32.647629],[102.625589,32.64752],[102.625589,32.647488],[102.625602,32.64702],[102.625664,32.646948],[102.625811,32.646784],[102.625832,32.64676],[102.625842,32.64675],[102.625867,32.646721],[102.626103,32.646457],[102.626159,32.646395],[102.626178,32.646418],[102.626202,32.646444],[102.626213,32.64646],[102.626216,32.646457],[102.626223,32.646445],[102.626223,32.646432],[102.62622,32.646402],[102.62622,32.646374],[102.626216,32.646332],[102.626573,32.646042],[102.626583,32.646035],[102.626595,32.646025],[102.626614,32.64601],[102.626733,32.645913],[102.626742,32.645906],[102.626868,32.645804],[102.627083,32.645475],[102.627088,32.645468],[102.627124,32.645413],[102.627184,32.645323],[102.627197,32.645303],[102.6272,32.645298],[102.627344,32.645079],[102.627494,32.645015],[102.627505,32.64501],[102.627553,32.64499],[102.627697,32.644929],[102.627714,32.644922],[102.628129,32.644746],[102.628065,32.643701],[102.62774,32.643381],[102.627773,32.643365],[102.627792,32.643357],[102.627833,32.643358],[102.6278,32.643345],[102.627768,32.643337],[102.627736,32.64333],[102.627716,32.643315],[102.627683,32.643285],[102.627652,32.643251],[102.62762,32.643225],[102.627593,32.643198],[102.627548,32.643157],[102.627463,32.643137],[102.627452,32.643152],[102.627443,32.643145],[102.627155,32.642935],[102.627103,32.642935],[102.626987,32.642894],[102.626939,32.642875],[102.626893,32.642851],[102.626865,32.642816],[102.626845,32.642772],[102.626824,32.642728],[102.626794,32.642697],[102.626737,32.64267],[102.626647,32.642619],[102.626611,32.642578],[102.626596,32.642531],[102.626578,32.642495],[102.626576,32.642456],[102.626588,32.642396],[102.626415,32.642201],[102.626363,32.641808],[102.626358,32.64177],[102.626374,32.641763],[102.626391,32.641751],[102.626407,32.641713],[102.626462,32.641605],[102.626511,32.641553],[102.62656,32.641504],[102.626569,32.641496],[102.626634,32.641435],[102.626767,32.641306],[102.627,32.641052],[102.62712,32.640927],[102.627319,32.64076],[102.627601,32.640522],[102.62797,32.640143],[102.628064,32.640045],[102.628118,32.639991],[102.62806,32.639901],[102.628013,32.639828],[102.627959,32.639744],[102.627942,32.639717],[102.627741,32.639565],[102.627629,32.639479],[102.627123,32.639585],[102.626942,32.639769],[102.626928,32.639782],[102.626915,32.639796],[102.626824,32.639888],[102.626748,32.639965],[102.626732,32.639974],[102.626713,32.639973],[102.626673,32.639961],[102.626613,32.639958],[102.626546,32.639963],[102.62647,32.63998],[102.626389,32.64003],[102.62635,32.640055],[102.626332,32.640083],[102.626311,32.640101],[102.62629,32.640105],[102.626254,32.640108],[102.626168,32.64015],[102.626149,32.640171],[102.626143,32.640198],[102.626141,32.640219],[102.626136,32.640243],[102.626126,32.640256],[102.626099,32.640264],[102.626074,32.640276],[102.626022,32.640335],[102.626011,32.640364],[102.625999,32.640385],[102.625998,32.640401],[102.625997,32.640411],[102.62595,32.640439],[102.625866,32.640489],[102.625755,32.64051],[102.625683,32.640524],[102.625131,32.64063],[102.624709,32.640828],[102.624669,32.640847],[102.624653,32.640854],[102.62453,32.640866],[102.624426,32.640901],[102.624365,32.640937],[102.624306,32.640993],[102.624265,32.641052],[102.624211,32.641122],[102.624108,32.641187],[102.623956,32.641283],[102.623925,32.641303],[102.623331,32.64133],[102.622841,32.640819],[102.622849,32.640525],[102.62285,32.640505],[102.622852,32.640433],[102.622854,32.640355],[102.622942,32.640263],[102.622984,32.64022],[102.623183,32.640013],[102.623913,32.640027],[102.624517,32.639652],[102.624478,32.639223],[102.624446,32.638877],[102.624339,32.638636],[102.624188,32.638293],[102.623922,32.638299],[102.623867,32.6383],[102.623826,32.638301],[102.623522,32.638308],[102.623511,32.638309],[102.623273,32.638314],[102.622581,32.638572],[102.622298,32.638459],[102.622234,32.638433],[102.622226,32.638408],[102.622218,32.638381],[102.622209,32.638351],[102.622197,32.638314],[102.622178,32.63827],[102.622146,32.638221],[102.62212,32.638188],[102.622075,32.638137],[102.621974,32.637859],[102.621961,32.637825],[102.622061,32.637636],[102.622087,32.637586],[102.622202,32.637366],[102.622242,32.637317],[102.622579,32.636909],[102.622619,32.636891],[102.623227,32.636612],[102.623736,32.636598],[102.623709,32.636569],[102.623661,32.636536],[102.62384,32.636548],[102.623961,32.636569],[102.62406,32.636582],[102.624076,32.636571],[102.624422,32.636326],[102.624567,32.636049],[102.624609,32.635969],[102.624568,32.635921],[102.624521,32.635878],[102.624414,32.635802],[102.624326,32.635751],[102.624304,32.635733],[102.624297,32.635714],[102.624291,32.635699],[102.624273,32.635671],[102.624212,32.635638],[102.624154,32.635618],[102.624089,32.635615],[102.624033,32.635618],[102.623957,32.635651],[102.623899,32.63569],[102.623853,32.635693],[102.623799,32.635695],[102.623595,32.635824],[102.62358,32.63588],[102.623579,32.635904],[102.623549,32.635903],[102.623492,32.635916],[102.623472,32.635938],[102.623449,32.635967],[102.623423,32.635991],[102.623391,32.636009],[102.623358,32.636024],[102.623311,32.636038],[102.623236,32.636054],[102.623213,32.63605],[102.62319,32.636023],[102.623158,32.635977],[102.623155,32.635954],[102.623085,32.635952],[102.623025,32.635951],[102.623011,32.635951],[102.62297,32.63595],[102.622878,32.635882],[102.622872,32.635878],[102.622867,32.635874],[102.622701,32.635752],[102.622802,32.635406],[102.622929,32.635292],[102.622945,32.635277],[102.622952,32.635249],[102.622961,32.635228],[102.622988,32.635201],[102.623045,32.635153],[102.623142,32.635072],[102.623261,32.634973],[102.623259,32.634943],[102.623269,32.634927],[102.623291,32.634903],[102.623309,32.634889],[102.623364,32.634868],[102.623413,32.634838],[102.623455,32.634817],[102.623474,32.634804],[102.623512,32.634789],[102.623581,32.634765],[102.62364,32.63472],[102.623701,32.634688],[102.623756,32.634668],[102.623806,32.63465],[102.623857,32.634616],[102.623897,32.634583],[102.623929,32.634542],[102.623941,32.63451],[102.623969,32.634443],[102.624022,32.634379],[102.624045,32.634351],[102.624072,32.634278],[102.624101,32.634209],[102.624124,32.634171],[102.624132,32.634145],[102.624138,32.63412],[102.624144,32.634063],[102.624174,32.63402],[102.624231,32.633945],[102.624248,32.633897],[102.624256,32.633857],[102.624258,32.63382],[102.624254,32.633795],[102.624238,32.633779],[102.624231,32.633768],[102.624223,32.633759],[102.62421,32.633742],[102.624198,32.633719],[102.624192,32.633697],[102.624189,32.633673],[102.624188,32.633651],[102.624181,32.63361],[102.624173,32.633609],[102.62409,32.633596],[102.623628,32.633527],[102.623071,32.633865],[102.622798,32.634106],[102.622783,32.634119],[102.622692,32.634199],[102.622557,32.634319],[102.622451,32.634349],[102.622082,32.634455],[102.622065,32.634459],[102.62205,32.634464],[102.622031,32.63443],[102.621963,32.634307],[102.621964,32.634275],[102.621986,32.63425],[102.622042,32.63418],[102.622046,32.634175],[102.62207,32.634127],[102.62207,32.634117],[102.622076,32.634029],[102.622103,32.633843],[102.622148,32.633676],[102.622175,32.633609],[102.62218,32.633586],[102.622182,32.633571],[102.622179,32.633564],[102.622172,32.63356],[102.622267,32.633335],[102.62236,32.633117],[102.622331,32.632498],[102.622075,32.632303],[102.622017,32.63226],[102.621846,32.632138],[102.62184,32.632134],[102.621807,32.632111],[102.62168,32.632021],[102.621662,32.632008],[102.621344,32.631783],[102.621257,32.631659],[102.621237,32.63163],[102.621219,32.631604],[102.621124,32.63147],[102.621132,32.63116],[102.621273,32.631113],[102.621303,32.631102],[102.62132,32.631097],[102.621642,32.630987],[102.621737,32.630955],[102.621778,32.630941],[102.622201,32.630485],[102.62213,32.62971],[102.622103,32.629658],[102.622102,32.629657],[102.622088,32.62963],[102.622083,32.629619],[102.622036,32.629529],[102.622026,32.629509],[102.622001,32.629462],[102.621924,32.629313],[102.621826,32.629125],[102.622087,32.628956],[102.622102,32.628946],[102.622158,32.62891],[102.622224,32.628867],[102.622286,32.628878],[102.622343,32.628893],[102.622382,32.628908],[102.622437,32.628921],[102.622477,32.628922],[102.62256,32.628907],[102.622586,32.628892],[102.622627,32.628872],[102.622669,32.628869],[102.622691,32.62887],[102.622737,32.628865],[102.622773,32.628851],[102.622801,32.628841],[102.622837,32.628835],[102.622907,32.628829],[102.622941,32.628825],[102.623011,32.628821],[102.623081,32.628828],[102.62321,32.628868],[102.623298,32.628917],[102.623359,32.628922],[102.623886,32.62897],[102.624528,32.628867],[102.625035,32.628488],[102.625051,32.628476],[102.625078,32.628456],[102.625085,32.628451],[102.625134,32.628414],[102.625142,32.628097],[102.625147,32.627908],[102.625159,32.627448],[102.625101,32.626937],[102.625074,32.626704],[102.625048,32.62648],[102.624968,32.62631],[102.624943,32.626257],[102.624939,32.626249],[102.62493,32.626229],[102.624909,32.626185],[102.624597,32.625522],[102.624576,32.625477],[102.624561,32.625447],[102.624345,32.624987],[102.624313,32.624919],[102.624322,32.624879],[102.6244,32.624549],[102.624463,32.624281],[102.624486,32.624265],[102.624863,32.624273],[102.624876,32.624273],[102.624971,32.624253],[102.625082,32.624253],[102.625161,32.624285],[102.625295,32.624371],[102.625402,32.624458],[102.625533,32.624554],[102.625551,32.624586],[102.625921,32.625222],[102.625926,32.62523],[102.62593,32.625237],[102.625986,32.625333],[102.625994,32.625347],[102.626004,32.625364],[102.626079,32.625494],[102.626268,32.625571],[102.626576,32.625697],[102.626607,32.625687],[102.626673,32.625666],[102.626807,32.625624],[102.62684,32.625532],[102.626845,32.625518],[102.626961,32.625203],[102.626968,32.625182],[102.627102,32.624818],[102.627107,32.624623],[102.627108,32.624593],[102.62711,32.624529],[102.62711,32.624521],[102.627111,32.624469],[102.627112,32.624435],[102.62712,32.624122],[102.626967,32.623588],[102.626957,32.623553],[102.626953,32.623539],[102.626959,32.623484],[102.626971,32.623374],[102.626956,32.623352],[102.626953,32.62333],[102.626951,32.623303],[102.626954,32.623277],[102.626967,32.623244],[102.626988,32.623223],[102.627064,32.623118],[102.627155,32.623061],[102.627307,32.622987],[102.627439,32.622946],[102.627606,32.62301],[102.627689,32.62332],[102.627692,32.623327],[102.627731,32.623476],[102.627745,32.623485],[102.627846,32.623551],[102.627966,32.623628],[102.627983,32.623639],[102.628041,32.6237],[102.628085,32.623727],[102.628151,32.623761],[102.628334,32.623809],[102.628397,32.623817],[102.628444,32.623818],[102.628508,32.623811],[102.628561,32.623796],[102.628588,32.623785],[102.628717,32.623675],[102.628803,32.623708],[102.628935,32.623537],[102.629142,32.62327],[102.6292,32.623195],[102.629267,32.622988],[102.62935,32.622734],[102.629314,32.622685],[102.629246,32.622589],[102.629232,32.62257],[102.629041,32.622303],[102.628513,32.622107],[102.628496,32.622101],[102.628477,32.622093],[102.628362,32.622051],[102.628335,32.622086],[102.628316,32.62211],[102.628308,32.622136],[102.628293,32.62217],[102.628282,32.622188],[102.628255,32.622197],[102.628187,32.622181],[102.628165,32.622161],[102.628151,32.62213],[102.628127,32.622091],[102.628104,32.622059],[102.628054,32.622022],[102.628022,32.622004],[102.627994,32.621985],[102.627975,32.621956],[102.627964,32.621917],[102.627948,32.62186],[102.627935,32.621842],[102.627927,32.621828],[102.627905,32.621813],[102.627891,32.621803],[102.627875,32.62179],[102.627858,32.621771],[102.62785,32.621752],[102.627851,32.621739],[102.627858,32.621721],[102.627867,32.621707],[102.627882,32.621691],[102.627898,32.621668],[102.627901,32.621655],[102.627902,32.62163],[102.627898,32.621606],[102.627881,32.621591],[102.627879,32.621572],[102.627888,32.621522],[102.627909,32.621483],[102.62792,32.621467],[102.627935,32.621453],[102.627948,32.621443],[102.627959,32.621436],[102.627975,32.621437],[102.627984,32.621442],[102.627998,32.621386],[102.628,32.62138],[102.628003,32.621367],[102.628067,32.621125],[102.628506,32.620979],[102.62862,32.620942],[102.628627,32.620947],[102.628634,32.620953],[102.628766,32.621054],[102.628787,32.621071],[102.628932,32.621183],[102.628969,32.621235],[102.629037,32.6213],[102.629104,32.62135],[102.629144,32.621379],[102.629176,32.621402],[102.629193,32.62141],[102.629226,32.621418],[102.629255,32.621422],[102.629277,32.621429],[102.629291,32.621447],[102.629301,32.621469],[102.629337,32.621496],[102.629422,32.621507],[102.629432,32.621508],[102.629701,32.621542],[102.62987,32.62133],[102.629905,32.621285],[102.62992,32.621268],[102.630058,32.621094],[102.630126,32.621009],[102.630125,32.620995],[102.630123,32.620981],[102.630053,32.620312],[102.630051,32.620293],[102.62995,32.620178],[102.629837,32.6201],[102.629772,32.620038],[102.629754,32.619986],[102.629754,32.619921],[102.629819,32.619935],[102.629952,32.61994],[102.630005,32.619941],[102.630003,32.619926],[102.629994,32.619862],[102.629992,32.619847],[102.629977,32.61973],[102.629827,32.619381],[102.629822,32.61937],[102.629809,32.619339],[102.629793,32.619302],[102.629778,32.61931],[102.629764,32.619314],[102.629753,32.619317],[102.629744,32.61932],[102.629733,32.619318],[102.629723,32.619315],[102.629706,32.619314],[102.629696,32.619316],[102.629685,32.619322],[102.629676,32.619332],[102.629667,32.619343],[102.629637,32.619291],[102.62964,32.619268],[102.629706,32.619233],[102.629742,32.619184],[102.629676,32.619029],[102.629823,32.618645],[102.629966,32.618136],[102.629805,32.617975],[102.629496,32.617618],[102.629476,32.617571],[102.629432,32.617523],[102.629352,32.617438],[102.629347,32.617432],[102.628642,32.616651],[102.628652,32.616278],[102.628664,32.616229],[102.628667,32.616217],[102.628674,32.616187],[102.628701,32.616074],[102.628707,32.616047],[102.628718,32.615648],[102.62832,32.615214],[102.628268,32.615004],[102.628255,32.614951],[102.628235,32.614866],[102.62831,32.614415],[102.628316,32.614403],[102.62847,32.614105],[102.628542,32.613967],[102.628628,32.613684],[102.628679,32.613517],[102.628681,32.613503],[102.628698,32.613319],[102.628723,32.613065],[102.628543,32.612715],[102.62836,32.612499],[102.62808,32.612387],[102.627877,32.612463],[102.62785,32.612473],[102.627798,32.612493],[102.627674,32.612539],[102.627626,32.612589],[102.62759,32.612638],[102.62755,32.612693],[102.627505,32.612733],[102.627436,32.612777],[102.627426,32.612784],[102.627376,32.6128],[102.6273,32.612826],[102.62729,32.612828],[102.627266,32.612851],[102.627185,32.612929],[102.626827,32.612922],[102.626681,32.61292],[102.626531,32.612777],[102.626375,32.612629],[102.626329,32.612585],[102.626312,32.612569],[102.626252,32.612512],[102.626302,32.612287],[102.626309,32.612255],[102.626323,32.612194],[102.626323,32.612194],[102.626323,32.612194],[102.626338,32.61219],[102.626355,32.612185],[102.626406,32.612171],[102.626415,32.612168],[102.62666,32.612101],[102.626667,32.612099],[102.626667,32.612099],[102.626667,32.612099],[102.626707,32.612088],[102.626749,32.612076],[102.626761,32.612073],[102.626769,32.612071],[102.626957,32.612019],[102.626965,32.612018],[102.626966,32.612017],[102.626968,32.612017],[102.627017,32.612006],[102.627054,32.611997],[102.627071,32.611993],[102.627149,32.611975],[102.627812,32.611823],[102.628165,32.611536],[102.628317,32.611274],[102.628327,32.611257],[102.628333,32.611245],[102.628363,32.611194],[102.628372,32.611145],[102.628373,32.611142],[102.628373,32.61114],[102.628396,32.611017],[102.628436,32.610796],[102.628258,32.610537],[102.628234,32.610503],[102.628207,32.610464],[102.628194,32.610445],[102.628193,32.610445],[102.628191,32.610445],[102.628151,32.610442],[102.627534,32.610406],[102.627524,32.610411],[102.627463,32.61044],[102.627402,32.61047],[102.627375,32.610483],[102.627056,32.610636],[102.62685,32.610678],[102.626824,32.610684],[102.626729,32.610703],[102.626455,32.610758],[102.626225,32.610588],[102.626208,32.610576],[102.626208,32.610576],[102.626207,32.610575],[102.626181,32.610556],[102.62614,32.610526],[102.626128,32.610517],[102.626103,32.610498],[102.626085,32.610485],[102.6257,32.610144],[102.625316,32.609805],[102.625058,32.609693],[102.624476,32.609443],[102.623824,32.609111],[102.623239,32.608937],[102.622575,32.608741],[102.62212,32.608545],[102.622103,32.608538],[102.622085,32.60853],[102.621798,32.608406],[102.62152,32.608188],[102.621549,32.608132],[102.621653,32.607924],[102.621774,32.607819],[102.621802,32.607795],[102.621809,32.607789],[102.621892,32.607716],[102.621903,32.607706],[102.622072,32.607559],[102.622058,32.60732],[102.622056,32.60729],[102.622056,32.607289],[102.622056,32.607288],[102.62205,32.607188],[102.62205,32.607187],[102.62205,32.607186],[102.622031,32.60718],[102.62203,32.60718],[102.622028,32.607179],[102.621934,32.607151],[102.621904,32.607142],[102.621488,32.607016],[102.620828,32.607003],[102.620723,32.606822],[102.620723,32.606821],[102.620722,32.60682],[102.620718,32.606814],[102.620675,32.606739],[102.620675,32.606739],[102.620674,32.606738],[102.620407,32.606276],[102.620241,32.606042],[102.620065,32.605793],[102.620064,32.605792],[102.620064,32.605791],[102.620058,32.605784],[102.619896,32.605554],[102.619891,32.605547],[102.619869,32.605487],[102.619777,32.605235],[102.619773,32.605222],[102.619765,32.605202],[102.619734,32.605116],[102.619725,32.605092],[102.619722,32.605083],[102.619715,32.605065],[102.619885,32.604681],[102.619936,32.604566],[102.619949,32.604537],[102.620019,32.604272],[102.620037,32.604206],[102.620063,32.604105],[102.620076,32.604059],[102.620081,32.604039],[102.620124,32.603876],[102.620124,32.603875],[102.620124,32.603874],[102.620229,32.603796],[102.620236,32.603791],[102.620353,32.603704],[102.620366,32.603694],[102.620609,32.603513],[102.620611,32.603512],[102.620613,32.60351],[102.620627,32.6035],[102.620713,32.603436],[102.620715,32.603434],[102.620717,32.603433],[102.620927,32.603277],[102.620996,32.603038],[102.620595,32.602738],[102.620164,32.602357],[102.61981,32.601806],[102.619805,32.601797],[102.619784,32.601759],[102.619753,32.601704],[102.619655,32.601528],[102.619599,32.601428],[102.619576,32.601376],[102.619321,32.600799],[102.61933,32.600758],[102.619337,32.600725],[102.61934,32.60071],[102.619352,32.60065],[102.619357,32.600628],[102.619374,32.600544],[102.619385,32.600493],[102.619406,32.600395],[102.619852,32.600247],[102.619875,32.600045],[102.619878,32.600022],[102.619879,32.600015],[102.619889,32.599925],[102.619891,32.599908],[102.619899,32.599843],[102.619776,32.599746],[102.619574,32.599587],[102.619614,32.59954],[102.619624,32.599528],[102.619941,32.599153],[102.619979,32.599108],[102.619988,32.599097],[102.620093,32.598973],[102.62012,32.598941],[102.620145,32.598912],[102.62056,32.598545],[102.620541,32.598506],[102.620541,32.598505],[102.620541,32.598504],[102.620521,32.598461],[102.620521,32.598461],[102.62052,32.598459],[102.620462,32.598333],[102.620451,32.598311],[102.620386,32.598168],[102.620143,32.597602],[102.620125,32.597578],[102.62011,32.597558],[102.620046,32.59747],[102.620002,32.597411],[102.619648,32.596927],[102.619609,32.596874],[102.619548,32.59682],[102.61935,32.596645],[102.619282,32.596584],[102.619244,32.596551],[102.619213,32.596524],[102.618953,32.596433],[102.618919,32.596421],[102.618556,32.596293],[102.618557,32.596287],[102.618602,32.595951],[102.618908,32.595739],[102.61891,32.595738],[102.618912,32.595736],[102.618947,32.595711],[102.618996,32.595678],[102.619023,32.595659],[102.619127,32.595587],[102.619523,32.595354],[102.619539,32.595345],[102.619564,32.595186],[102.619571,32.595143],[102.619583,32.595066],[102.619583,32.595065],[102.619583,32.595065],[102.619536,32.59498],[102.619482,32.594884],[102.619447,32.594821],[102.619408,32.59475],[102.618823,32.594552],[102.618056,32.594319],[102.617771,32.593939],[102.617563,32.593467],[102.617866,32.59313],[102.618143,32.593025],[102.618246,32.592986],[102.618389,32.592931],[102.61849,32.592893],[102.618648,32.592833],[102.619144,32.592549],[102.619065,32.592209],[102.618865,32.592067],[102.618629,32.5919],[102.61797,32.591624],[102.617462,32.591174],[102.617441,32.591156],[102.617358,32.591082],[102.617339,32.591066],[102.617276,32.59101],[102.617265,32.590998],[102.617152,32.590885],[102.616627,32.590359],[102.61662,32.590286],[102.616616,32.590252],[102.616607,32.59016],[102.6166,32.5901],[102.616592,32.59002],[102.616779,32.589647],[102.616972,32.589585],[102.616999,32.589576],[102.617074,32.589552],[102.617122,32.589536],[102.617158,32.589524],[102.617546,32.589399],[102.617561,32.589394],[102.617608,32.589378],[102.617661,32.589361],[102.617676,32.589356],[102.617765,32.589328],[102.617815,32.589103],[102.617467,32.588833],[102.617208,32.588771],[102.617207,32.58877],[102.617206,32.58877],[102.617029,32.588727],[102.616999,32.58872],[102.616998,32.588719],[102.616997,32.588719],[102.616629,32.58863],[102.616564,32.588505],[102.616522,32.588425],[102.616519,32.588418],[102.616442,32.58827],[102.616396,32.588181],[102.616333,32.58806],[102.616166,32.587681],[102.616241,32.587512],[102.616241,32.587512],[102.616242,32.587511],[102.616247,32.587499],[102.616253,32.587485],[102.616298,32.587384],[102.616305,32.58737],[102.616342,32.587288],[102.616449,32.587048],[102.616514,32.586694],[102.616534,32.586583],[102.616552,32.586486],[102.616519,32.586401],[102.616478,32.586297],[102.616352,32.585974],[102.616344,32.585956],[102.616338,32.585925],[102.61628,32.585623],[102.616278,32.585615],[102.616227,32.585352],[102.616427,32.584529],[102.616407,32.584412],[102.616404,32.584397],[102.616401,32.584379],[102.616389,32.584305],[102.616384,32.584277],[102.616381,32.584261],[102.616365,32.584163],[102.616311,32.58385],[102.616342,32.583623],[102.616346,32.583592],[102.616351,32.583557],[102.61636,32.583488],[102.616361,32.583478],[102.616362,32.583477],[102.616362,32.583475],[102.616367,32.583438],[102.6166,32.583029],[102.617226,32.582808],[102.617249,32.582799],[102.617406,32.582744],[102.617414,32.582741],[102.617522,32.582697],[102.617679,32.582635],[102.617765,32.5826],[102.617767,32.582521],[102.617768,32.582485],[102.61777,32.582433],[102.617774,32.582262],[102.61777,32.582225],[102.617747,32.582039],[102.617738,32.581961],[102.617473,32.581881],[102.617388,32.581793],[102.61735,32.581753],[102.617246,32.581645],[102.617214,32.581612],[102.61721,32.581597],[102.617205,32.581575],[102.617094,32.581122],[102.617281,32.580749],[102.617533,32.580637],[102.617559,32.580626],[102.617559,32.580625],[102.617559,32.580625],[102.617655,32.580583],[102.617675,32.580574],[102.617912,32.580468],[102.61809,32.580389],[102.618139,32.580202],[102.618191,32.57994],[102.618089,32.579725],[102.618076,32.579699],[102.618076,32.579699],[102.618076,32.579699],[102.618065,32.579674],[102.617943,32.579616],[102.6179,32.579595],[102.617835,32.579564],[102.617495,32.5794],[102.617244,32.578794],[102.617266,32.577979],[102.617266,32.577968],[102.617264,32.577963],[102.617158,32.577697],[102.617135,32.577638],[102.617007,32.57732],[102.616933,32.577135],[102.616962,32.576045],[102.617024,32.57537],[102.617128,32.574808],[102.617546,32.574269],[102.617547,32.574268],[102.617547,32.574268],[102.617564,32.574246],[102.617588,32.574215],[102.617617,32.574197],[102.617617,32.574197],[102.617618,32.574196],[102.617779,32.574093],[102.618041,32.573927],[102.618086,32.573899],[102.618204,32.573824],[102.618213,32.573818],[102.618213,32.573818],[102.618214,32.573818],[102.61822,32.573814],[102.618232,32.573802],[102.618447,32.573593],[102.618411,32.573291],[102.618068,32.572834],[102.617373,32.572257],[102.616982,32.571949],[102.617039,32.571461],[102.617046,32.571433],[102.617127,32.571108],[102.617188,32.570863],[102.617347,32.569889],[102.617331,32.56903],[102.61733,32.569001],[102.617329,32.568932],[102.617329,32.568911],[102.617303,32.568825],[102.617237,32.568605],[102.617235,32.568598],[102.617211,32.56852],[102.617125,32.568231],[102.616478,32.567504],[102.616138,32.567062],[102.616119,32.567038],[102.616069,32.566972],[102.616059,32.56696],[102.615962,32.566833],[102.61592,32.56678],[102.615901,32.566006],[102.6159,32.565956],[102.615899,32.565915],[102.615988,32.565587],[102.616011,32.565504],[102.616144,32.565017],[102.616205,32.564417],[102.616316,32.563555],[102.616504,32.563183],[102.616523,32.563175],[102.616705,32.563109],[102.617086,32.562968],[102.617187,32.562887],[102.617223,32.562857],[102.617449,32.562674],[102.617455,32.562449],[102.617435,32.562421],[102.617405,32.562378],[102.617371,32.562329],[102.61737,32.562328],[102.617369,32.562326],[102.617354,32.562305],[102.617228,32.562125],[102.617148,32.56201],[102.617147,32.56201],[102.617028,32.561839],[102.616994,32.561823],[102.616353,32.561508],[102.616302,32.561483],[102.616296,32.56148],[102.616151,32.561409],[102.615762,32.561012],[102.615734,32.560985],[102.615703,32.560952],[102.615287,32.560529],[102.615034,32.560035],[102.614831,32.559317],[102.614545,32.558372],[102.61425,32.557803],[102.614135,32.557124],[102.614149,32.556561],[102.614332,32.556062],[102.614348,32.556017],[102.614365,32.555971],[102.614384,32.55592],[102.614437,32.555777],[102.614949,32.554847],[102.615821,32.553774],[102.616057,32.553252],[102.616033,32.552462],[102.616357,32.55198],[102.616737,32.552072],[102.617168,32.552177],[102.617194,32.552183],[102.618168,32.552277],[102.61853,32.552021],[102.618628,32.551647],[102.618283,32.551302],[102.617712,32.551066],[102.617631,32.550764],[102.617824,32.550203],[102.618076,32.549043],[102.618233,32.548144],[102.61838,32.547621],[102.618569,32.547173],[102.619383,32.546587],[102.619578,32.54663],[102.619616,32.546638],[102.619653,32.546646],[102.619825,32.546684],[102.619927,32.546707],[102.620133,32.546752],[102.620412,32.546688],[102.62053,32.546661],[102.620532,32.546661],[102.620533,32.546661],[102.620648,32.546634],[102.620664,32.54663],[102.620892,32.546578],[102.621171,32.546301],[102.621211,32.546261],[102.621212,32.54626],[102.621213,32.546259],[102.621333,32.546139],[102.621385,32.546088],[102.62146,32.546013],[102.621485,32.545988],[102.621511,32.545969],[102.621587,32.545914],[102.621648,32.545869],[102.6217,32.545832],[102.621734,32.545806],[102.62239,32.545329],[102.622941,32.544625],[102.624279,32.54435],[102.624451,32.544246],[102.624691,32.5441],[102.624692,32.544099],[102.624693,32.544098],[102.624695,32.544097],[102.624776,32.544049],[102.625001,32.543912],[102.62528,32.54377],[102.62531,32.543755],[102.625351,32.543734],[102.62537,32.543724],[102.625855,32.543477],[102.62613,32.543144],[102.626329,32.543051],[102.626403,32.543016],[102.626426,32.543006],[102.626593,32.542927],[102.62662,32.542915],[102.626669,32.542891],[102.626966,32.542985],[102.627813,32.543251],[102.628128,32.543169],[102.628567,32.543054],[102.628618,32.543041],[102.628621,32.543023],[102.628655,32.54286],[102.628685,32.542719],[102.628705,32.542621],[102.628708,32.54261],[102.628719,32.542554],[102.629047,32.542384],[102.629104,32.542355],[102.629114,32.54235],[102.629207,32.542302],[102.62922,32.542295],[102.629265,32.542271],[102.629349,32.542228],[102.629441,32.541815],[102.62945,32.541779],[102.629508,32.54165],[102.629517,32.541628],[102.629563,32.541528],[102.629571,32.54151],[102.629664,32.541304],[102.629685,32.541257],[102.629861,32.54129],[102.62988,32.541294],[102.629969,32.541311],[102.629999,32.541316],[102.630568,32.541424],[102.630756,32.541421],[102.630765,32.541421],[102.630765,32.541421],[102.630813,32.54142],[102.630881,32.541419],[102.630883,32.541419],[102.630884,32.541419],[102.630886,32.541419],[102.630901,32.541419],[102.631635,32.541408],[102.631678,32.541407],[102.631678,32.541408],[102.631678,32.541408],[102.63176,32.541581],[102.631836,32.54174],[102.631845,32.541759],[102.63193,32.541938],[102.631892,32.542158],[102.631889,32.542171],[102.631869,32.542291],[102.631842,32.542444],[102.63184,32.542455],[102.631837,32.542473],[102.631826,32.542538],[102.631933,32.54269],[102.631934,32.542692],[102.631935,32.542694],[102.631989,32.54277],[102.632039,32.542842],[102.63213,32.542858],[102.632132,32.542858],[102.632135,32.542859],[102.632217,32.542873],[102.632235,32.542876],[102.632525,32.542927],[102.633512,32.542532],[102.634104,32.541942],[102.634044,32.541696],[102.634043,32.541694],[102.634043,32.541692],[102.634028,32.54163],[102.634025,32.541618],[102.634022,32.541607],[102.634002,32.541525],[102.633984,32.541451],[102.633966,32.541389],[102.633933,32.541275],[102.633928,32.541256],[102.633928,32.541255],[102.633902,32.541166],[102.633902,32.541164],[102.633902,32.541164],[102.633821,32.540884],[102.633956,32.5405],[102.633965,32.540473],[102.634144,32.540353],[102.634236,32.540291],[102.634704,32.540323],[102.634727,32.540324],[102.634989,32.540342],[102.635121,32.540338],[102.635162,32.540337],[102.635744,32.540319],[102.635927,32.540097],[102.635864,32.539923],[102.635849,32.539881],[102.635805,32.539763],[102.635803,32.539756],[102.635773,32.539748],[102.635763,32.539745],[102.635296,32.539612],[102.635234,32.539594],[102.635224,32.539591],[102.635099,32.539555],[102.635012,32.539569],[102.634853,32.539595],[102.634502,32.539652],[102.634475,32.539656],[102.634465,32.539644],[102.634336,32.539484],[102.634332,32.539479],[102.63426,32.539389],[102.63426,32.539366],[102.634261,32.539351],[102.634263,32.539258],[102.634267,32.539116],[102.634268,32.539088],[102.634269,32.539088],[102.63427,32.539088],[102.634369,32.539048],[102.634383,32.539042],[102.634716,32.538909],[102.635295,32.538845],[102.63535,32.538763],[102.635439,32.538632],[102.635443,32.538626],[102.635512,32.538524],[102.635523,32.538508],[102.635572,32.538437],[102.635849,32.537991],[102.636312,32.538],[102.636457,32.538002],[102.636483,32.538003],[102.636515,32.538003],[102.636583,32.538007],[102.636613,32.538009],[102.637073,32.538034],[102.637093,32.538035],[102.637269,32.538044],[102.637285,32.538045],[102.637513,32.538057],[102.637578,32.538061],[102.637599,32.538036],[102.637606,32.538026],[102.637616,32.538015],[102.637676,32.537942],[102.637682,32.537935],[102.637723,32.537886],[102.637853,32.537728],[102.637863,32.537711],[102.637927,32.537602],[102.637977,32.537517],[102.637999,32.537479],[102.638224,32.537096],[102.638283,32.537056],[102.638375,32.536993],[102.638376,32.536992],[102.638376,32.536992],[102.638493,32.536912],[102.638494,32.536911],[102.638505,32.536904],[102.638572,32.536858],[102.638586,32.536848],[102.638587,32.536848],[102.638587,32.536847],[102.638603,32.536836],[102.638676,32.536787],[102.638761,32.536728],[102.638812,32.536694],[102.638913,32.536207],[102.639317,32.536027],[102.639376,32.536028],[102.639527,32.536031],[102.63956,32.536031],[102.639724,32.536034],[102.639752,32.536035],[102.64012,32.536042],[102.64016,32.536042],[102.640215,32.536023],[102.640236,32.536015],[102.640397,32.535959],[102.640427,32.535948],[102.640563,32.5359],[102.640747,32.53564],[102.640694,32.535356],[102.640675,32.535254],[102.640672,32.535242],[102.640669,32.535225],[102.640967,32.535253],[102.641096,32.535265],[102.641211,32.535275],[102.641281,32.535282],[102.641299,32.535284],[102.641687,32.535319],[102.641735,32.535332],[102.641818,32.535354],[102.641818,32.535354],[102.641925,32.535382],[102.642035,32.535411],[102.642613,32.535562],[102.642891,32.535593],[102.642909,32.535594],[102.642943,32.535598],[102.643001,32.535604],[102.643002,32.535605],[102.643005,32.535605],[102.643453,32.535653],[102.643861,32.535323],[102.643814,32.535071],[102.643805,32.535024],[102.643783,32.534908],[102.643747,32.534607],[102.643747,32.534607],[102.643747,32.534606],[102.643595,32.534421],[102.643403,32.534187],[102.643167,32.534021],[102.643052,32.533827],[102.643625,32.533382],[102.643938,32.533334],[102.64408,32.533313],[102.64409,32.533311],[102.644091,32.533311],[102.644196,32.533295],[102.644196,32.533295],[102.644197,32.533295],[102.644393,32.533265],[102.64468,32.53348],[102.644681,32.53348],[102.644681,32.53348],[102.644682,32.533481],[102.644706,32.533494],[102.644769,32.533529],[102.644796,32.533544],[102.644856,32.533577],[102.645269,32.533806],[102.645627,32.533787],[102.64564,32.533307],[102.645557,32.533128],[102.645509,32.533089],[102.645294,32.532915],[102.645046,32.532714],[102.64499,32.532668],[102.645266,32.532445],[102.645275,32.532438],[102.645286,32.532429],[102.645329,32.532404],[102.645358,32.532387],[102.645388,32.532371],[102.645453,32.532333],[102.646118,32.531954],[102.646955,32.531316],[102.647929,32.530966],[102.649002,32.530496],[102.649638,32.53014],[102.649875,32.530032],[102.650146,32.529907],[102.650175,32.529894],[102.650259,32.529855],[102.650269,32.52985],[102.650322,32.529826],[102.650605,32.530077],[102.650546,32.530877],[102.650545,32.530898],[102.650536,32.531019],[102.650535,32.531031],[102.650534,32.531043],[102.65053,32.531097],[102.650693,32.531584],[102.650709,32.531631],[102.651536,32.531764],[102.651862,32.531816],[102.653072,32.531635],[102.653643,32.53144],[102.653944,32.531337],[102.654094,32.531286],[102.654879,32.53081],[102.655517,32.529994],[102.655534,32.52999],[102.655662,32.529965],[102.655669,32.529963],[102.656314,32.529834],[102.65641,32.529815],[102.656565,32.529784],[102.657123,32.529925],[102.65713,32.529926],[102.657237,32.529953],[102.657244,32.529955],[102.657263,32.52996],[102.657409,32.529996],[102.658259,32.529947],[102.659581,32.529579],[102.659938,32.529226],[102.659987,32.528834],[102.659803,32.528471],[102.659902,32.528379],[102.659942,32.528343],[102.659953,32.528333],[102.66003,32.528261],[102.660043,32.528249],[102.660071,32.528223],[102.66008,32.528215],[102.660501,32.528353],[102.660548,32.528369],[102.660566,32.528375],[102.660672,32.52841],[102.66068,32.528412],[102.660698,32.528418],[102.660922,32.528492],[102.66135,32.528369],[102.661704,32.528114],[102.661943,32.527824],[102.66307,32.527518],[102.664161,32.527146],[102.664518,32.52676],[102.664905,32.526735],[102.665566,32.526551],[102.665926,32.526067],[102.666055,32.525546],[102.666295,32.525224],[102.666917,32.525072],[102.66728,32.524732],[102.667395,32.524624],[102.6674,32.524619],[102.667431,32.524591],[102.667477,32.524574],[102.667492,32.524569],[102.66786,32.524435],[102.667951,32.524547],[102.667961,32.524558],[102.667961,32.524559],[102.667961,32.524559],[102.668012,32.524621],[102.668035,32.52465],[102.668065,32.524686],[102.668159,32.5248],[102.668617,32.525005],[102.669042,32.52498],[102.66932,32.524691],[102.66941,32.524202],[102.669075,32.523706],[102.668774,32.523406],[102.669132,32.522987],[102.669294,32.522965],[102.669367,32.522955],[102.669399,32.522951],[102.6694,32.522951],[102.669403,32.522951],[102.66951,32.522936],[102.669513,32.522936],[102.669515,32.522935],[102.669558,32.52293],[102.669892,32.523459],[102.670378,32.524057],[102.670431,32.524103],[102.670432,32.524104],[102.670432,32.524104],[102.670492,32.524157],[102.670513,32.524176],[102.670528,32.524189],[102.670553,32.524212],[102.670793,32.524424],[102.670986,32.524491],[102.671291,32.524597],[102.671554,32.524486],[102.67211,32.524252],[102.672697,32.523936],[102.673671,32.523595],[102.673758,32.523236],[102.673403,32.523078],[102.673382,32.523068],[102.673251,32.52301],[102.673237,32.523004],[102.673223,32.522998],[102.673136,32.52287],[102.673439,32.522784],[102.673464,32.522776],[102.67358,32.522743],[102.673602,32.522737],[102.67383,32.522671],[102.675023,32.522587],[102.676171,32.521759],[102.677006,32.520979],[102.677587,32.520299],[102.677981,32.520142],[102.678163,32.520069],[102.678266,32.520027],[102.678979,32.519741],[102.679013,32.519669],[102.679067,32.519549],[102.679245,32.519163],[102.679367,32.518942],[102.679507,32.51869],[102.680065,32.518912],[102.680557,32.519293],[102.680821,32.518767],[102.680585,32.518179],[102.680667,32.517438],[102.680855,32.517285],[102.680882,32.517263],[102.680957,32.517203],[102.680962,32.517198],[102.681017,32.517154],[102.681022,32.51715],[102.681434,32.516815],[102.681934,32.516877],[102.681933,32.516894],[102.681933,32.516899],[102.681929,32.517076],[102.681926,32.51717],[102.681919,32.517461],[102.682352,32.517681],[102.682923,32.517373],[102.68311,32.517089],[102.68351,32.516482],[102.684625,32.515951],[102.684905,32.515818],[102.685788,32.515569],[102.685954,32.515649],[102.68597,32.515657],[102.686083,32.515712],[102.686095,32.515718],[102.686179,32.515759],[102.686468,32.5159],[102.686606,32.51631],[102.686613,32.516331],[102.686625,32.516366],[102.686651,32.516445],[102.686655,32.516456],[102.686671,32.516504],[102.686701,32.516594],[102.687266,32.516551],[102.687724,32.515764],[102.688046,32.515451],[102.688716,32.51535],[102.689303,32.515262],[102.690046,32.514998],[102.690441,32.514858],[102.69077,32.514228],[102.691602,32.513553],[102.691931,32.513438],[102.692448,32.513257],[102.692613,32.5132],[102.692987,32.51326],[102.693362,32.513267],[102.693903,32.512961],[102.693915,32.512954],[102.693926,32.512948],[102.693926,32.512948],[102.693927,32.512948],[102.693998,32.512907],[102.694022,32.512914],[102.694049,32.512923],[102.694386,32.513025],[102.694498,32.513059],[102.694515,32.513064],[102.694688,32.513116],[102.69471,32.513123],[102.694744,32.513133],[102.694769,32.513134],[102.695495,32.513147],[102.695589,32.513264],[102.695589,32.513264],[102.695589,32.513264],[102.695617,32.513298],[102.695663,32.513356],[102.695699,32.513401],[102.695798,32.513524],[102.695492,32.513878],[102.695447,32.513931],[102.695347,32.514046],[102.695347,32.514047],[102.695347,32.514047],[102.695344,32.514065],[102.695342,32.514081],[102.695268,32.514682],[102.695765,32.51485],[102.696356,32.514778],[102.696545,32.514754],[102.696895,32.514711],[102.697061,32.514684],[102.697136,32.514672],[102.697181,32.514664],[102.698342,32.514473],[102.699918,32.514077],[102.700242,32.513658],[102.700255,32.513128],[102.700016,32.512699],[102.699908,32.512007],[102.70036,32.511485],[102.701493,32.51124],[102.701513,32.511239],[102.70153,32.511237],[102.70162,32.51123],[102.701654,32.511227],[102.701667,32.511226],[102.702383,32.511168],[102.702384,32.511168],[102.702386,32.511168],[102.702421,32.511165],[102.702484,32.51116],[102.702492,32.511159],[102.70256,32.511154],[102.703558,32.511331],[102.704126,32.511129],[102.704323,32.510627],[102.704368,32.510512],[102.704368,32.510512],[102.704368,32.510512],[102.704394,32.510444],[102.704444,32.51044],[102.704482,32.510437],[102.704959,32.510401],[102.705316,32.511151],[102.705536,32.511604],[102.70556,32.511652],[102.705612,32.51176],[102.705622,32.511781],[102.705622,32.511781],[102.705623,32.511782],[102.705623,32.511782],[102.705732,32.512007],[102.706044,32.512066],[102.706493,32.51165],[102.706572,32.511015],[102.706529,32.510218],[102.706532,32.510217],[102.706534,32.510216],[102.70656,32.510204],[102.706659,32.51016],[102.706669,32.510155],[102.70694,32.510034],[102.7071,32.509963],[102.707407,32.510181],[102.707499,32.510238],[102.707532,32.510258],[102.707622,32.510314],[102.70764,32.510325],[102.708024,32.510563],[102.708224,32.510567],[102.708462,32.510571],[102.709095,32.510318],[102.709417,32.509952],[102.709475,32.50948],[102.709487,32.509387],[102.70949,32.509363],[102.709494,32.50933],[102.709496,32.509317],[102.709529,32.509284],[102.709817,32.509004],[102.709887,32.509029],[102.709954,32.509053],[102.709979,32.509063],[102.710039,32.509084],[102.710063,32.509093],[102.710127,32.509116],[102.710493,32.509494],[102.710806,32.5095],[102.710882,32.50897],[102.71083,32.508545],[102.710504,32.50832],[102.710292,32.508174],[102.71031,32.508154],[102.710723,32.508037],[102.71116,32.507914],[102.711915,32.507729],[102.711916,32.507729],[102.711917,32.507729],[102.711945,32.507722],[102.711979,32.507714],[102.712118,32.507679],[102.712168,32.507667],[102.712609,32.507569],[102.712821,32.507706],[102.712847,32.507723],[102.712937,32.507781],[102.713025,32.507837],[102.713047,32.507852],[102.713073,32.507868],[102.713074,32.507869],[102.713075,32.507869],[102.713287,32.508006],[102.713785,32.508121],[102.714349,32.508078],[102.714991,32.507453],[102.715568,32.506933],[102.715631,32.506963],[102.715692,32.506992],[102.71583,32.507058],[102.715862,32.507073],[102.715942,32.507111],[102.716046,32.50716],[102.71622,32.507243],[102.71638,32.507319],[102.716496,32.507374],[102.7166,32.507404],[102.716857,32.507477],[102.716892,32.507487],[102.717491,32.507658],[102.718252,32.5073],[102.718639,32.50683],[102.718745,32.50632],[102.718782,32.506142],[102.718915,32.505826],[102.719185,32.505702],[102.71919,32.5057],[102.719204,32.505693],[102.71921,32.505691],[102.719359,32.505622],[102.719934,32.505796],[102.719977,32.505809],[102.720006,32.505818],[102.720007,32.505818],[102.720007,32.505818],[102.720017,32.505821],[102.720048,32.505831],[102.720151,32.505862],[102.720291,32.505904],[102.720993,32.505386],[102.721051,32.505351],[102.721117,32.505311],[102.721208,32.505256],[102.721208,32.505255],[102.72121,32.505255],[102.721334,32.505179],[102.721414,32.50513],[102.721438,32.505116],[102.721542,32.505053],[102.721873,32.504851],[102.721875,32.50485],[102.721877,32.504849],[102.722037,32.504752],[102.722519,32.504459],[102.723365,32.503728],[102.723691,32.503446],[102.723805,32.503348],[102.723817,32.503337],[102.723842,32.503315],[102.723843,32.503314],[102.723844,32.503314],[102.72393,32.50324],[102.724398,32.502835],[102.724504,32.502743],[102.726435,32.500656],[102.727914,32.49909],[102.728166,32.498816],[102.728367,32.498597],[102.728395,32.498566],[102.728471,32.498483],[102.728485,32.498468],[102.728492,32.49846],[102.728511,32.49844],[102.72856,32.498386],[102.728629,32.498311],[102.728646,32.498293],[102.729782,32.497054],[102.730612,32.495811],[102.731148,32.495009],[102.732184,32.493648],[102.733208,32.492503],[102.734052,32.491559],[102.736673,32.48943],[102.738793,32.487293],[102.740527,32.485544],[102.740655,32.485416],[102.742389,32.483696],[102.743611,32.482391],[102.745918,32.480256],[102.746753,32.479422],[102.748555,32.477438],[102.750094,32.47598],[102.750684,32.475398],[102.750992,32.475094],[102.752602,32.473318],[102.754269,32.471703],[102.755668,32.470826],[102.757623,32.470277],[102.760208,32.469527],[102.761659,32.469075],[102.762228,32.468925],[102.763549,32.468578],[102.764686,32.468174],[102.766968,32.467029],[102.767291,32.466858],[102.767291,32.466858],[102.767291,32.466858],[102.767501,32.46702],[102.76771,32.467181],[102.768054,32.467329],[102.768399,32.467477],[102.768643,32.467581],[102.768995,32.467731],[102.769195,32.46781],[102.76928,32.467902],[102.769409,32.467974],[102.769609,32.468024],[102.769837,32.468124],[102.769894,32.468338],[102.769909,32.468588],[102.76998,32.468709],[102.770058,32.46883],[102.77008,32.468973],[102.770101,32.469405],[102.770123,32.469837],[102.770116,32.470037],[102.769923,32.470372],[102.769959,32.470629],[102.770044,32.471],[102.770098,32.471089],[102.770242,32.471326],[102.770387,32.471564],[102.77058,32.4718],[102.770672,32.472078],[102.770779,32.472278],[102.770979,32.472535],[102.771022,32.47261],[102.771186,32.472892],[102.771222,32.473071],[102.771251,32.473328],[102.771279,32.473585],[102.771251,32.47397],[102.771183,32.474402],[102.771115,32.474834],[102.771086,32.475159],[102.771058,32.475483],[102.770919,32.475847],[102.770779,32.476211],[102.770669,32.476579],[102.770558,32.476947],[102.770572,32.477089],[102.770658,32.477168],[102.770787,32.477254],[102.771097,32.477325],[102.771408,32.477396],[102.771734,32.477444],[102.77206,32.477492],[102.772236,32.477518],[102.772525,32.477625],[102.772814,32.477732],[102.773092,32.477832],[102.773371,32.477932],[102.773799,32.478053],[102.774049,32.478203],[102.774299,32.478353],[102.774391,32.478406],[102.774598,32.478524],[102.774798,32.478524],[102.775195,32.478453],[102.775591,32.478382],[102.775912,32.478336],[102.776233,32.478291],[102.776554,32.478246],[102.776933,32.478224],[102.777222,32.478142],[102.777511,32.47806],[102.777729,32.477946],[102.777946,32.477832],[102.778268,32.477632],[102.778632,32.477596],[102.77886,32.477582],[102.779146,32.47755],[102.779431,32.477518],[102.77971,32.477511],[102.779988,32.477504],[102.780213,32.477507],[102.780438,32.477511],[102.780677,32.477589],[102.780916,32.477668],[102.781166,32.477775],[102.781416,32.477882],[102.781698,32.47797],[102.781981,32.478059],[102.782008,32.478067],[102.782312,32.47811],[102.782615,32.478153],[102.782847,32.478192],[102.783079,32.478232],[102.783222,32.47821],[102.783621,32.478082],[102.783832,32.477971],[102.784043,32.47786],[102.784235,32.477714],[102.784428,32.477568],[102.784709,32.477406],[102.78499,32.477244],[102.78527,32.477082],[102.785531,32.477064],[102.785791,32.477047],[102.78617,32.477068],[102.786548,32.477089],[102.786934,32.477125],[102.787276,32.477318],[102.787612,32.477549],[102.787947,32.47778],[102.788283,32.47801],[102.788603,32.478216],[102.788922,32.478422],[102.789004,32.478474],[102.789289,32.478724],[102.789575,32.478974],[102.789867,32.479224],[102.790067,32.479395],[102.790126,32.479539],[102.790146,32.479588],[102.790274,32.479802],[102.790396,32.479959],[102.790681,32.480177],[102.790967,32.480395],[102.791202,32.480602],[102.791356,32.480826],[102.791509,32.481051],[102.791756,32.481397],[102.792002,32.481744],[102.79208,32.481886],[102.79208,32.482001],[102.791995,32.482101],[102.791659,32.482393],[102.791496,32.482604],[102.791388,32.482743],[102.791238,32.482957],[102.791152,32.483071],[102.790995,32.483107],[102.790767,32.483164],[102.790738,32.483171],[102.79036,32.483257],[102.790232,32.483321],[102.790053,32.483507],[102.789875,32.483757],[102.789718,32.483935],[102.789603,32.484042],[102.789518,32.484214],[102.789511,32.484328],[102.789546,32.484553],[102.789582,32.484778],[102.789482,32.484985],[102.78935,32.48517],[102.789218,32.485356],[102.789218,32.485356],[102.789217,32.485357],[102.789056,32.485639],[102.788989,32.485755],[102.788911,32.486051],[102.788832,32.486346],[102.788754,32.486641],[102.788691,32.486903],[102.788628,32.487166],[102.788568,32.487412],[102.788472,32.487811],[102.788376,32.488211],[102.788276,32.488514],[102.788176,32.488818],[102.788088,32.488952],[102.787957,32.489153],[102.787826,32.489353],[102.78764,32.489639],[102.787569,32.489856],[102.787498,32.490074],[102.787492,32.490101],[102.787405,32.490503],[102.787405,32.490838],[102.787405,32.491174],[102.787405,32.491438],[102.787365,32.491662],[102.787326,32.491887],[102.787324,32.491912],[102.787298,32.492151],[102.787291,32.492294],[102.787233,32.492551],[102.787169,32.492851],[102.787151,32.493276],[102.787133,32.4937],[102.787098,32.494122],[102.786976,32.494329],[102.786898,32.494557],[102.786877,32.494871],[102.786877,32.495128],[102.786905,32.495407],[102.786869,32.495564],[102.786812,32.495655],[102.786748,32.495756],[102.78647,32.495949],[102.786248,32.496045],[102.786027,32.496142],[102.785767,32.496164],[102.785692,32.49617],[102.78527,32.496206],[102.784963,32.496277],[102.784656,32.496349],[102.78435,32.49642],[102.78395,32.496531],[102.78355,32.496642],[102.783186,32.496763],[102.782912,32.496903],[102.782639,32.497044],[102.782365,32.497184],[102.782058,32.497373],[102.781751,32.497562],[102.781394,32.497805],[102.781037,32.498048],[102.780843,32.498153],[102.780558,32.498307],[102.780274,32.498462],[102.780071,32.498557],[102.779724,32.498719],[102.779453,32.498883],[102.779181,32.498919],[102.778953,32.498947],[102.778724,32.498976],[102.778697,32.498981],[102.778654,32.498989],[102.778408,32.499036],[102.778161,32.499083],[102.777889,32.499165],[102.777618,32.499247],[102.777261,32.49934],[102.776947,32.499554],[102.776769,32.499761],[102.776583,32.500161],[102.776441,32.50041],[102.776347,32.500575],[102.776069,32.500917],[102.775849,32.501231],[102.77563,32.501546],[102.77541,32.50186],[102.775191,32.502174],[102.774984,32.502395],[102.774777,32.502616],[102.774584,32.502859],[102.774391,32.503102],[102.774263,32.503237],[102.774042,32.503316],[102.773795,32.503395],[102.773548,32.503474],[102.77337,32.503531],[102.773085,32.503623],[102.772735,32.503773],[102.772386,32.503923],[102.772022,32.504105],[102.771657,32.504287],[102.7714,32.504447],[102.771144,32.504608],[102.770858,32.504851],[102.770826,32.504881],[102.770587,32.505108],[102.77043,32.505436],[102.770339,32.505684],[102.77022,32.506009],[102.770101,32.506335],[102.769994,32.506564],[102.769887,32.506792],[102.769616,32.507056],[102.769345,32.507321],[102.76906,32.507473],[102.768775,32.507626],[102.768545,32.507749],[102.768367,32.507892],[102.768317,32.507956],[102.768295,32.508042],[102.768324,32.508077],[102.768663,32.508231],[102.769002,32.508384],[102.769327,32.508498],[102.769652,32.508613],[102.77003,32.508727],[102.770255,32.508837],[102.77048,32.508948],[102.770815,32.509087],[102.771151,32.509226],[102.771536,32.509419],[102.771779,32.509562],[102.772067,32.509793],[102.772355,32.510024],[102.772643,32.510254],[102.772821,32.510472],[102.772999,32.51069],[102.773185,32.51109],[102.773264,32.511439],[102.773342,32.511789],[102.773406,32.512125],[102.773571,32.51246],[102.773689,32.512655],[102.773848,32.512914],[102.774006,32.513174],[102.774056,32.513506],[102.774106,32.513838],[102.77422,32.514148],[102.774334,32.514459],[102.774347,32.514488],[102.774448,32.514713],[102.774549,32.514937],[102.774602,32.515233],[102.774656,32.51553],[102.774756,32.515851],[102.774855,32.516079],[102.774955,32.516308],[102.775162,32.516636],[102.775344,32.5169],[102.775526,32.517164],[102.775634,32.517371],[102.775741,32.517578],[102.775791,32.517914],[102.775813,32.518135],[102.775841,32.518414],[102.775883,32.518671],[102.775926,32.518928],[102.776048,32.519263],[102.776172,32.519455],[102.776297,32.519647],[102.776326,32.519691],[102.776526,32.51992],[102.776597,32.520155],[102.776612,32.520498],[102.776597,32.520759],[102.776583,32.521019],[102.776644,32.521362],[102.776704,32.521704],[102.776751,32.521947],[102.776797,32.52219],[102.776859,32.522497],[102.776921,32.522804],[102.776983,32.523111],[102.777004,32.52341],[102.776963,32.523703],[102.776922,32.523997],[102.776881,32.524289],[102.77684,32.524581],[102.776729,32.524845],[102.776619,32.525109],[102.776612,32.525288],[102.776647,32.525473],[102.776738,32.525614],[102.776917,32.525891],[102.777096,32.526168],[102.777275,32.526444],[102.77749,32.526769],[102.777704,32.527094],[102.777875,32.527222],[102.777996,32.527279],[102.778325,32.527272],[102.778675,32.527229],[102.778903,32.527215],[102.779109,32.527215],[102.779153,32.527215],[102.77936,32.527258],[102.779667,32.527429],[102.779912,32.52761],[102.780168,32.527798],[102.780423,32.527986],[102.780766,32.528161],[102.781109,32.528336],[102.781401,32.528557],[102.781544,32.528757],[102.781798,32.528796],[102.782051,32.528836],[102.782322,32.528832],[102.782593,32.528828],[102.782915,32.528768],[102.783236,32.528707],[102.783644,32.528625],[102.783871,32.528579],[102.784292,32.528543],[102.784477,32.528554],[102.784792,32.528571],[102.785188,32.5285],[102.785584,32.528429],[102.785906,32.528354],[102.786227,32.528279],[102.786612,32.528207],[102.786948,32.528179],[102.787191,32.528172],[102.787483,32.5282],[102.787726,32.528272],[102.787922,32.528386],[102.788119,32.5285],[102.78849,32.5287],[102.788647,32.528821],[102.788847,32.529082],[102.789047,32.529342],[102.789314,32.529564],[102.789582,32.529785],[102.789921,32.530063],[102.79026,32.530342],[102.790588,32.530549],[102.790917,32.530756],[102.791139,32.530865],[102.791452,32.53102],[102.791458,32.531025],[102.791701,32.531233],[102.791945,32.531441],[102.792162,32.53162],[102.79238,32.531798],[102.792673,32.53198],[102.792966,32.532162],[102.793287,32.532401],[102.793608,32.53264],[102.793821,32.532942],[102.793915,32.533076],[102.794099,32.53344],[102.794243,32.533725],[102.794347,32.533975],[102.79445,32.534225],[102.794498,32.534335],[102.794485,32.534424],[102.794612,32.53465],[102.794622,32.534682],[102.79475,32.534775],[102.794776,32.534784],[102.794971,32.534853],[102.795014,32.534862],[102.795384,32.534921],[102.795522,32.534971],[102.795671,32.535003],[102.795819,32.535079],[102.795835,32.535084],[102.795841,32.535089],[102.796163,32.535253],[102.796485,32.535417],[102.796678,32.535589],[102.796929,32.535954],[102.797064,32.53615],[102.797199,32.536345],[102.797317,32.5366],[102.797418,32.536819],[102.79752,32.537038],[102.797547,32.537102],[102.79762,32.537273],[102.797741,32.537373],[102.798041,32.537602],[102.798255,32.537809],[102.798469,32.538016],[102.798612,32.538251],[102.798912,32.538351],[102.799304,32.538487],[102.799573,32.538581],[102.79959,32.538587],[102.799811,32.538665],[102.79999,32.538794],[102.800166,32.538946],[102.800342,32.539098],[102.800493,32.5392],[102.800702,32.539342],[102.800911,32.539483],[102.801021,32.539639],[102.801041,32.539794],[102.800921,32.540004],[102.80078,32.540208],[102.800638,32.540413],[102.800497,32.540618],[102.800355,32.540822],[102.800281,32.541013],[102.800276,32.541265],[102.80043,32.541478],[102.800727,32.541781],[102.800896,32.541953],[102.801066,32.542125],[102.801235,32.542297],[102.801404,32.542469],[102.801573,32.542641],[102.801742,32.542813],[102.801974,32.543067],[102.802207,32.543322],[102.802362,32.543497],[102.80247,32.54373],[102.802596,32.544162],[102.802722,32.544593],[102.802848,32.545025],[102.8029,32.545252],[102.802951,32.545479],[102.803003,32.545707],[102.803054,32.545934],[102.803048,32.546261],[102.802881,32.54649],[102.802608,32.546813],[102.802334,32.547136],[102.802061,32.547459],[102.801913,32.547673],[102.801766,32.547887],[102.801619,32.548101],[102.801471,32.548316],[102.801326,32.548673],[102.80118,32.54903],[102.801035,32.549387],[102.800926,32.549743],[102.800817,32.550099],[102.800708,32.550455],[102.800665,32.550781],[102.800626,32.551087],[102.800623,32.551107],[102.800637,32.551483],[102.800651,32.551859],[102.800733,32.552208],[102.800783,32.552418],[102.800816,32.552557],[102.800931,32.552734],[102.800953,32.552878],[102.801062,32.553169],[102.801203,32.553549],[102.801307,32.553759],[102.80141,32.55397],[102.801692,32.55432],[102.80176,32.554405],[102.802067,32.554648],[102.802374,32.554891],[102.802745,32.555142],[102.803116,32.555394],[102.803488,32.555646],[102.803859,32.555897],[102.804201,32.556115],[102.804544,32.556333],[102.804758,32.55649],[102.804944,32.556583],[102.805094,32.556697],[102.805158,32.556839],[102.805186,32.557002],[102.805188,32.55709],[102.805196,32.557363],[102.805118,32.55776],[102.805099,32.557855],[102.805062,32.558178],[102.805024,32.558501],[102.804987,32.558824],[102.804851,32.559238],[102.804818,32.559337],[102.804715,32.559638],[102.804595,32.559812],[102.804523,32.559916],[102.804316,32.560123],[102.804247,32.560195],[102.803992,32.560462],[102.803737,32.56073],[102.803537,32.560951],[102.803338,32.561172],[102.803211,32.561378],[102.803085,32.561583],[102.802938,32.561822],[102.802795,32.562093],[102.802652,32.562365],[102.802463,32.562682],[102.802274,32.563],[102.802103,32.563271],[102.801839,32.56361],[102.801574,32.563949],[102.80146,32.564149],[102.801377,32.564292],[102.801153,32.564677],[102.801004,32.564859],[102.800889,32.564999],[102.800889,32.565106],[102.800953,32.565249],[102.801253,32.565427],[102.80134,32.565504],[102.80151,32.565655],[102.801741,32.565879],[102.801972,32.566103],[102.802203,32.566326],[102.802213,32.566341],[102.802395,32.566605],[102.802542,32.56683],[102.802688,32.567055],[102.802834,32.567265],[102.802981,32.567476],[102.803273,32.56774],[102.803552,32.567958],[102.80383,32.568175],[102.804134,32.568325],[102.804437,32.568475],[102.804751,32.568539],[102.805151,32.568625],[102.805465,32.568561],[102.805779,32.568496],[102.806122,32.568447],[102.806432,32.568418],[102.806743,32.568389],[102.807088,32.568382],[102.807433,32.568375],[102.807778,32.568368],[102.80811,32.568404],[102.808442,32.568439],[102.808781,32.568504],[102.80912,32.568568],[102.809441,32.568621],[102.809762,32.568675],[102.810164,32.568851],[102.810402,32.568956],[102.81064,32.56906],[102.810658,32.569069],[102.811009,32.569247],[102.811359,32.569425],[102.81171,32.569603],[102.812061,32.569781],[102.812396,32.569956],[102.812732,32.570131],[102.813017,32.570414],[102.813303,32.570697],[102.813588,32.570981],[102.813831,32.571184],[102.814074,32.571388],[102.814381,32.571509],[102.814523,32.571559],[102.814895,32.571473],[102.815152,32.571259],[102.815409,32.571045],[102.815787,32.570809],[102.816165,32.570574],[102.816558,32.570502],[102.816951,32.570431],[102.817386,32.570364],[102.817821,32.570298],[102.818257,32.570231],[102.81857,32.5702],[102.818913,32.570165],[102.819256,32.570131],[102.819556,32.570174],[102.819857,32.570216],[102.820157,32.570259],[102.820363,32.570288],[102.820795,32.570388],[102.821226,32.570488],[102.821521,32.570559],[102.821817,32.570631],[102.822112,32.570702],[102.822461,32.570838],[102.822811,32.570973],[102.823128,32.571271],[102.823444,32.571568],[102.823761,32.571866],[102.824032,32.572206],[102.824303,32.572546],[102.824574,32.572887],[102.824769,32.573201],[102.824965,32.573515],[102.82516,32.573829],[102.825289,32.574103],[102.825418,32.574377],[102.825547,32.57465],[102.825567,32.574693],[102.825752,32.575092],[102.825913,32.575289],[102.826073,32.575485],[102.826395,32.575696],[102.826716,32.575906],[102.827111,32.576075],[102.827506,32.576244],[102.827901,32.576413],[102.828215,32.576538],[102.828529,32.576663],[102.828907,32.576877],[102.829286,32.577091],[102.8296,32.577227],[102.829914,32.577362],[102.830214,32.577562],[102.830242,32.577605],[102.830242,32.577606],[102.830242,32.577607],[102.830242,32.577684],[102.830157,32.577841],[102.829885,32.578055],[102.829718,32.578217],[102.8296,32.578333],[102.829478,32.57864],[102.829357,32.579068],[102.829236,32.579497],[102.829114,32.579925],[102.829014,32.580339],[102.828914,32.580753],[102.828879,32.581181],[102.828864,32.581446],[102.828972,32.581806],[102.829079,32.582166],[102.82916,32.582481],[102.82924,32.582795],[102.829321,32.583109],[102.829418,32.58338],[102.829514,32.583651],[102.829694,32.584014],[102.829875,32.584377],[102.830055,32.584739],[102.830206,32.585043],[102.830367,32.585432],[102.830528,32.585821],[102.830688,32.58621],[102.830849,32.586599],[102.831031,32.586994],[102.831106,32.587156],[102.831127,32.587313],[102.831085,32.587563],[102.830956,32.587749],[102.830737,32.588004],[102.830519,32.588259],[102.830485,32.588298],[102.830197,32.588627],[102.82991,32.588957],[102.829842,32.589034],[102.829734,32.589242],[102.829626,32.589451],[102.829564,32.589569],[102.829386,32.58994],[102.829207,32.590311],[102.829076,32.590663],[102.828946,32.591015],[102.828886,32.591175],[102.828907,32.591475],[102.828929,32.591775],[102.828872,32.592139],[102.828797,32.592481],[102.828722,32.592824],[102.828658,32.593115],[102.828595,32.593406],[102.828544,32.59364],[102.828493,32.593873],[102.828493,32.59428],[102.828496,32.59434],[102.828506,32.594577],[102.828516,32.594813],[102.828529,32.595143],[102.828543,32.595472],[102.828632,32.595772],[102.828722,32.596072],[102.828738,32.596151],[102.828822,32.596565],[102.828836,32.596789],[102.82885,32.597014],[102.828793,32.5974],[102.828679,32.59765],[102.828565,32.597899],[102.828364,32.598181],[102.82819,32.598426],[102.828015,32.59867],[102.82795,32.598777],[102.827614,32.599066],[102.827303,32.599387],[102.826992,32.599708],[102.826681,32.600028],[102.826371,32.600349],[102.826206,32.600549],[102.826041,32.600748],[102.825896,32.601112],[102.825843,32.601419],[102.825813,32.601766],[102.825806,32.601997],[102.8258,32.602228],[102.825761,32.602458],[102.825721,32.602688],[102.825659,32.602918],[102.825596,32.603149],[102.825522,32.603379],[102.825448,32.603609],[102.82534,32.603847],[102.825231,32.604086],[102.825181,32.604317],[102.82513,32.604547],[102.82506,32.604786],[102.824991,32.605024],[102.824922,32.605263],[102.824852,32.605501],[102.824731,32.605807],[102.824611,32.606113],[102.824509,32.606516],[102.8245,32.606921],[102.824582,32.607289],[102.824732,32.607657],[102.824928,32.608027],[102.825124,32.608396],[102.82532,32.608766],[102.825516,32.609135],[102.825579,32.609358],[102.825643,32.60958],[102.825749,32.60989],[102.825855,32.610201],[102.825938,32.610604],[102.826021,32.611007],[102.826059,32.611296],[102.825983,32.611602],[102.825817,32.611947],[102.825716,32.612186],[102.825615,32.612425],[102.825514,32.612664],[102.825414,32.612903],[102.825313,32.613142],[102.825233,32.613332],[102.825212,32.613381],[102.825113,32.613687],[102.824924,32.613954],[102.824715,32.614124],[102.824472,32.614255],[102.824229,32.614385],[102.823848,32.61459],[102.823667,32.614688],[102.823539,32.614725],[102.823232,32.614767],[102.822925,32.61481],[102.82254,32.614857],[102.822154,32.614903],[102.821826,32.614989],[102.821433,32.615117],[102.821085,32.615334],[102.820791,32.615517],[102.820505,32.615649],[102.82022,32.615781],[102.820179,32.615813],[102.819917,32.61602],[102.819613,32.616259],[102.819501,32.616394],[102.819328,32.616602],[102.819063,32.616909],[102.819006,32.617095],[102.819006,32.617344],[102.819091,32.617611],[102.819092,32.617616],[102.819263,32.617889],[102.819435,32.618163],[102.819606,32.618437],[102.819681,32.618686],[102.819756,32.618936],[102.819777,32.619074],[102.819799,32.619215],[102.819763,32.619572],[102.819699,32.619804],[102.819635,32.620036],[102.819583,32.62019],[102.81952,32.620378],[102.819456,32.620535],[102.819346,32.620669],[102.819292,32.620735],[102.819067,32.620906],[102.818842,32.621078],[102.818704,32.621131],[102.818348,32.621269],[102.817993,32.621406],[102.817707,32.621575],[102.817422,32.621744],[102.817136,32.621913],[102.816911,32.622064],[102.81671,32.622199],[102.816508,32.622334],[102.816322,32.622491],[102.816208,32.62262],[102.816237,32.622791],[102.816239,32.62287],[102.816244,32.623005],[102.81623,32.62321],[102.81623,32.623219],[102.81613,32.623533],[102.81593,32.623893],[102.81573,32.624252],[102.81553,32.624611],[102.81528,32.624915],[102.81503,32.625218],[102.814702,32.625518],[102.814374,32.625818],[102.814045,32.626118],[102.813753,32.626417],[102.813653,32.626482],[102.813467,32.626546],[102.81341,32.626565],[102.813296,32.626603],[102.813046,32.626717],[102.812832,32.626888],[102.812618,32.627045],[102.81251,32.627167],[102.812296,32.627324],[102.812196,32.627481],[102.812096,32.627738],[102.811954,32.627938],[102.811832,32.628045],[102.811718,32.628159],[102.81164,32.628316],[102.811618,32.628516],[102.811661,32.628896],[102.811668,32.628959],[102.811725,32.629401],[102.811781,32.629844],[102.811782,32.629851],[102.811782,32.630229],[102.811707,32.630618],[102.811632,32.631007],[102.811554,32.6314],[102.81144,32.631714],[102.811404,32.631892],[102.81144,32.632],[102.811604,32.632199],[102.811911,32.632464],[102.812218,32.632728],[102.812453,32.63302],[102.812689,32.633199],[102.812889,32.633263],[102.813131,32.633299],[102.813141,32.633302],[102.813223,32.633361],[102.813512,32.633655],[102.813682,32.633973],[102.813708,32.634024],[102.813906,32.634374],[102.81402,32.634574],[102.814135,32.634774],[102.81425,32.634973],[102.814365,32.635173],[102.814553,32.635388],[102.814741,32.635602],[102.814944,32.635731],[102.815111,32.635838],[102.815147,32.63586],[102.815392,32.636048],[102.815628,32.636228],[102.815638,32.636235],[102.815958,32.636504],[102.816279,32.636773],[102.816599,32.637042],[102.816824,32.63719],[102.817049,32.637338],[102.817377,32.637553],[102.817507,32.637682],[102.81751,32.637687],[102.81765,32.637932],[102.817832,32.638185],[102.818014,32.638438],[102.81825,32.63866],[102.818649,32.638831],[102.818985,32.639092],[102.81932,32.639352],[102.819556,32.639645],[102.819877,32.639887],[102.820141,32.64008],[102.820405,32.640273],[102.820712,32.640392],[102.821019,32.640511],[102.821326,32.64063],[102.821601,32.640786],[102.821875,32.640942],[102.822104,32.641072],[102.822291,32.641237],[102.822597,32.641508],[102.822861,32.641708],[102.823125,32.641908],[102.823389,32.642107],[102.823624,32.642257],[102.823859,32.642406],[102.824192,32.642617],[102.824524,32.642828],[102.82481,32.643071],[102.825095,32.643314],[102.825285,32.643507],[102.825474,32.643699],[102.825602,32.643956],[102.825816,32.644206],[102.826009,32.644285],[102.826384,32.644424],[102.826759,32.644563],[102.827073,32.644717],[102.827387,32.64487],[102.827662,32.645077],[102.827936,32.645284],[102.828163,32.645553],[102.828389,32.645822],[102.828615,32.646091],[102.828712,32.64618],[102.828872,32.646326],[102.829086,32.646433],[102.82945,32.646655],[102.829624,32.646755],[102.829735,32.646819],[102.82985,32.646954],[102.829892,32.647154],[102.829895,32.647186],[102.829921,32.647461],[102.829875,32.647861],[102.829828,32.648261],[102.829757,32.648614],[102.829685,32.648967],[102.829589,32.649207],[102.829493,32.649446],[102.829279,32.64981],[102.829209,32.649879],[102.829029,32.65006],[102.828857,32.650217],[102.828743,32.650452],[102.828686,32.650788],[102.828661,32.650906],[102.828593,32.65123],[102.828465,32.651559],[102.828336,32.651887],[102.828168,32.652187],[102.828001,32.652487],[102.827929,32.652658],[102.827737,32.652879],[102.827423,32.653116],[102.827109,32.653353],[102.827094,32.653365],[102.82683,32.6536],[102.826666,32.653836],[102.826644,32.654136],[102.826752,32.654336],[102.827019,32.65461],[102.827287,32.654885],[102.827555,32.65516],[102.827822,32.655435],[102.827978,32.655628],[102.828133,32.655821],[102.828236,32.655949],[102.828336,32.656142],[102.828429,32.656299],[102.828429,32.656491],[102.828386,32.656663],[102.828193,32.656955],[102.82812,32.657215],[102.828047,32.657474],[102.828018,32.657682],[102.827976,32.657981],[102.827953,32.658152],[102.827949,32.658176],[102.827938,32.658404],[102.827926,32.658633],[102.827922,32.658704],[102.827869,32.658943],[102.827815,32.659182],[102.827722,32.659418],[102.827672,32.659618],[102.82768,32.659854],[102.827887,32.66025],[102.828094,32.660646],[102.82826,32.660901],[102.828322,32.660996],[102.828436,32.661217],[102.828436,32.661345],[102.828543,32.661424],[102.828765,32.661538],[102.829139,32.661624],[102.829514,32.661709],[102.829889,32.661795],[102.830264,32.661881],[102.830606,32.662021],[102.830949,32.662162],[102.831292,32.662302],[102.83157,32.662454],[102.831848,32.662607],[102.832127,32.662759],[102.83234,32.662956],[102.832576,32.663175],[102.832812,32.663394],[102.832998,32.663682],[102.833183,32.66397],[102.833369,32.664258],[102.833643,32.664585],[102.83389,32.664879],[102.834068,32.665222],[102.834168,32.665386],[102.834325,32.665436],[102.834482,32.665393],[102.834732,32.665332],[102.834982,32.665272],[102.835239,32.665261],[102.835496,32.66525],[102.835808,32.665298],[102.836119,32.665346],[102.836162,32.665358],[102.836554,32.665558],[102.836946,32.665757],[102.837338,32.665957],[102.837663,32.666128],[102.837987,32.666299],[102.838348,32.666564],[102.838708,32.666828],[102.839008,32.667078],[102.839308,32.667327],[102.839672,32.66757],[102.839779,32.667749],[102.839929,32.667998],[102.840079,32.668248],[102.8401,32.668284],[102.840322,32.668512],[102.8405,32.668634],[102.84075,32.668748],[102.841064,32.668791],[102.841378,32.668834],[102.841685,32.668886],[102.841992,32.668938],[102.842299,32.668991],[102.842486,32.669046],[102.842784,32.669133],[102.843113,32.669355],[102.843434,32.669469],[102.843655,32.669569],[102.843827,32.669847],[102.844059,32.6702],[102.844225,32.670452],[102.84439,32.670704],[102.844559,32.670923],[102.844728,32.671142],[102.844945,32.671422],[102.845161,32.671703],[102.845347,32.67191],[102.845533,32.672117],[102.845694,32.672245],[102.845704,32.672253],[102.84574,32.67227],[102.845802,32.672302],[102.845825,32.672308],[102.845924,32.672334],[102.846118,32.672346],[102.846375,32.67231],[102.846561,32.672285],[102.847003,32.672224],[102.847267,32.672224],[102.84753,32.672224],[102.847596,32.672224],[102.847986,32.672286],[102.848244,32.672327],[102.848376,32.672348],[102.848766,32.67241],[102.849159,32.672481],[102.849552,32.672553],[102.849944,32.672624],[102.850183,32.672674],[102.850422,32.672724],[102.850601,32.672791],[102.851001,32.672939],[102.8514,32.673088],[102.8518,32.67325],[102.8522,32.673413],[102.8526,32.673575],[102.852999,32.673738],[102.853263,32.673905],[102.853528,32.674073],[102.853727,32.674252],[102.853927,32.674344],[102.854113,32.674355],[102.85417,32.674359],[102.85451,32.674249],[102.854851,32.67414],[102.855191,32.67403],[102.855278,32.67398],[102.855541,32.673827],[102.855805,32.673673],[102.856033,32.673449],[102.856262,32.673224],[102.856487,32.673073],[102.856519,32.673052],[102.856761,32.67296],[102.857068,32.672924],[102.857318,32.672938],[102.857568,32.672952],[102.857839,32.673013],[102.85811,32.673074],[102.858209,32.673122],[102.858452,32.673199],[102.858668,32.673285],[102.858885,32.673371],[102.859101,32.673457],[102.859317,32.673543],[102.859533,32.673629],[102.859749,32.673715],[102.859955,32.673849],[102.860161,32.673984],[102.860296,32.674072],[102.860581,32.674232],[102.860866,32.674392],[102.861151,32.674551],[102.861398,32.674753],[102.861645,32.674954],[102.861651,32.674958],[102.861777,32.675088],[102.861953,32.67527],[102.862129,32.675451],[102.862286,32.675644],[102.862579,32.675908],[102.862869,32.676067],[102.86316,32.676227],[102.86345,32.676386],[102.863714,32.67652],[102.863979,32.676653],[102.864278,32.676804],[102.864578,32.676956],[102.864878,32.677107],[102.865107,32.677208],[102.86519,32.677318],[102.865304,32.677458],[102.865312,32.677546],[102.865295,32.677613],[102.865074,32.677945],[102.864853,32.678277],[102.864781,32.678484],[102.864674,32.678798],[102.864696,32.679112],[102.864781,32.679384],[102.864938,32.679698],[102.865232,32.679999],[102.865488,32.680262],[102.865631,32.680476],[102.865773,32.68069],[102.865848,32.680943],[102.865923,32.681197],[102.865945,32.681425],[102.865816,32.681682],[102.865823,32.681868],[102.865909,32.682011],[102.865952,32.682196],[102.865995,32.68241],[102.865988,32.682646],[102.866016,32.682839],[102.866088,32.683046],[102.866173,32.683188],[102.866316,32.683281],[102.866687,32.683388],[102.866998,32.683428],[102.867308,32.683467],[102.867465,32.683545],[102.867697,32.683692],[102.867929,32.683838],[102.868136,32.683995],[102.868229,32.684145],[102.868251,32.684331],[102.868272,32.684538],[102.86835,32.684652],[102.868486,32.684752],[102.868832,32.684912],[102.869178,32.685073],[102.869236,32.685141],[102.8694,32.685337],[102.869568,32.685505],[102.869735,32.685673],[102.869887,32.685872],[102.870142,32.686208],[102.870385,32.686493],[102.870613,32.686743],[102.87091,32.686954],[102.871206,32.687164],[102.871225,32.68718],[102.871563,32.68745],[102.871834,32.687764],[102.871977,32.687989],[102.87212,32.688214],[102.872173,32.688612],[102.872198,32.688799],[102.872177,32.68911],[102.872155,32.68942],[102.872127,32.689583],[102.872062,32.689948],[102.871985,32.690345],[102.871907,32.690741],[102.871905,32.690748],[102.871913,32.690934],[102.872034,32.691162],[102.872079,32.691238],[102.872198,32.69144],[102.872323,32.691651],[102.872448,32.691862],[102.872499,32.691967],[102.872662,32.692304],[102.872719,32.692529],[102.872725,32.692553],[102.872776,32.692754],[102.872933,32.693054],[102.873078,32.693209],[102.873138,32.69329],[102.873315,32.693446],[102.873331,32.69346],[102.873637,32.693638],[102.873943,32.693816],[102.874084,32.693819],[102.874226,32.693797],[102.874496,32.693671],[102.874785,32.69354],[102.875074,32.693409],[102.875362,32.693278],[102.87564,32.69318],[102.875917,32.693082],[102.876263,32.693053],[102.87661,32.693023],[102.876667,32.693018],[102.877021,32.693008],[102.877376,32.692999],[102.87773,32.692989],[102.878059,32.692925],[102.878401,32.692775],[102.87866,32.692634],[102.878919,32.692493],[102.878951,32.692475],[102.879151,32.69234],[102.87954,32.692236],[102.879929,32.692133],[102.880286,32.692083],[102.880643,32.692033],[102.880886,32.691999],[102.88109,32.691948],[102.881454,32.691905],[102.881817,32.691862],[102.882169,32.691848],[102.882313,32.691891],[102.882335,32.69189],[102.882592,32.69194],[102.882849,32.69199],[102.88317,32.692126],[102.883484,32.692375],[102.883798,32.692625],[102.883962,32.692854],[102.884155,32.693196],[102.88425,32.693335],[102.884485,32.693493],[102.884719,32.69365],[102.884972,32.693763],[102.885225,32.693877],[102.885251,32.693885],[102.885481,32.693994],[102.885711,32.694103],[102.885979,32.694206],[102.886246,32.69431],[102.886599,32.694331],[102.886951,32.694353],[102.887303,32.694374],[102.887703,32.694474],[102.887981,32.694474],[102.888145,32.694353],[102.888171,32.694333],[102.888499,32.694072],[102.888828,32.693812],[102.888866,32.693782],[102.889188,32.693547],[102.889511,32.693312],[102.889523,32.693303],[102.88983,32.693089],[102.890227,32.693034],[102.890237,32.693032],[102.890451,32.693061],[102.890858,32.693096],[102.891161,32.693139],[102.891465,32.693182],[102.891842,32.693225],[102.892188,32.693264],[102.892535,32.693303],[102.892835,32.693313],[102.893135,32.693323],[102.893435,32.693332],[102.893627,32.693361],[102.893892,32.693432],[102.894093,32.693514],[102.894371,32.693626],[102.894648,32.693739],[102.894962,32.693867],[102.895276,32.693996],[102.895519,32.694067],[102.895748,32.694124],[102.895976,32.694182],[102.896267,32.694221],[102.896497,32.694253],[102.89674,32.694274],[102.896968,32.69436],[102.897197,32.694446],[102.897446,32.694681],[102.897604,32.694863],[102.897761,32.695045],[102.897937,32.695274],[102.898003,32.695359],[102.8982,32.695612],[102.898396,32.695866],[102.898549,32.696082],[102.898589,32.696137],[102.898731,32.696402],[102.898867,32.69663],[102.899088,32.696716],[102.899388,32.696762],[102.899688,32.696808],[102.900026,32.696844],[102.900364,32.69688],[102.900702,32.696916],[102.901087,32.697037],[102.901473,32.697158],[102.901687,32.697233],[102.901901,32.697308],[102.902229,32.697426],[102.902558,32.697544],[102.902797,32.697676],[102.903036,32.697808],[102.903375,32.698033],[102.903714,32.698258],[102.903925,32.698365],[102.904135,32.698472],[102.904378,32.698661],[102.904621,32.69885],[102.904856,32.698993],[102.905227,32.699128],[102.905366,32.699249],[102.90562,32.699471],[102.905756,32.699542],[102.905899,32.69957],[102.905972,32.699593],[102.906074,32.699581],[102.906177,32.699539],[102.90634,32.699435],[102.906635,32.699134],[102.906929,32.698833],[102.907224,32.698532],[102.907519,32.698231],[102.907787,32.698006],[102.908054,32.697782],[102.908277,32.697642],[102.908475,32.697531],[102.908672,32.69742],[102.908955,32.697318],[102.909237,32.697216],[102.909545,32.697148],[102.909853,32.69708],[102.910139,32.69713],[102.910306,32.697196],[102.910517,32.69728],[102.910827,32.697433],[102.911138,32.697587],[102.911452,32.697782],[102.911802,32.698001],[102.912134,32.69824],[102.912466,32.698479],[102.912644,32.698566],[102.913022,32.69875],[102.913262,32.698896],[102.913501,32.699043],[102.913822,32.69915],[102.913869,32.699175],[102.914143,32.699321],[102.914257,32.699421],[102.914285,32.69954],[102.914286,32.699541],[102.914286,32.699542],[102.914343,32.699735],[102.914436,32.699807],[102.9147,32.699821],[102.914814,32.699792],[102.915171,32.699814],[102.915457,32.699899],[102.915771,32.699878],[102.916024,32.699824],[102.916278,32.699771],[102.916645,32.699749],[102.917013,32.699728],[102.917248,32.699714],[102.917484,32.699699],[102.917789,32.699623],[102.918084,32.69955],[102.918394,32.699528],[102.918705,32.699507],[102.918972,32.699528],[102.91924,32.69955],[102.919612,32.699654],[102.919954,32.699749],[102.920351,32.699804],[102.920749,32.699859],[102.921146,32.699914],[102.921179,32.69992],[102.921484,32.699977],[102.921788,32.700035],[102.92221,32.700049],[102.92247,32.700021],[102.922731,32.699992],[102.923049,32.699895],[102.923368,32.699797],[102.923687,32.699699],[102.924078,32.699517],[102.924469,32.699334],[102.924805,32.699121],[102.924805,32.699121],[102.924806,32.69912],[102.925015,32.698987],[102.925224,32.698855],[102.925433,32.698722],[102.925642,32.698589],[102.925851,32.698456],[102.92606,32.698323],[102.926269,32.69819],[102.926478,32.698057],[102.926825,32.697921],[102.927173,32.697784],[102.927491,32.697691],[102.92781,32.697597],[102.928068,32.697552],[102.928326,32.697506],[102.928641,32.697531],[102.928957,32.697556],[102.929235,32.69765],[102.929513,32.697743],[102.92987,32.697996],[102.930227,32.698249],[102.930485,32.698543],[102.930678,32.698763],[102.930768,32.699014],[102.930938,32.699353],[102.930954,32.699385],[102.931118,32.699621],[102.931218,32.699792],[102.931368,32.700078],[102.931468,32.700378],[102.931639,32.700735],[102.931875,32.701113],[102.931996,32.701227],[102.932196,32.701377],[102.932481,32.701625],[102.932667,32.701787],[102.932753,32.701862],[102.932896,32.702005],[102.932981,32.702127],[102.933053,32.702266],[102.933081,32.702319],[102.93314,32.702599],[102.933198,32.702878],[102.933238,32.703265],[102.933278,32.703653],[102.933319,32.70404],[102.933339,32.704234],[102.933369,32.704521],[102.933399,32.704808],[102.933459,32.705029],[102.933519,32.705249],[102.933565,32.705421],[102.933706,32.705768],[102.933829,32.706082],[102.933952,32.706395],[102.934059,32.706624],[102.934166,32.706852],[102.934281,32.707038],[102.93453,32.707252],[102.934656,32.707324],[102.934903,32.707466],[102.935151,32.707609],[102.935432,32.707694],[102.935595,32.707743],[102.935623,32.707752],[102.935987,32.70798],[102.936269,32.708191],[102.936551,32.708401],[102.936746,32.708637],[102.936941,32.708872],[102.937136,32.709108],[102.937346,32.709479],[102.937557,32.70985],[102.937678,32.710134],[102.9377,32.710186],[102.937832,32.710497],[102.937964,32.710808],[102.938021,32.710942],[102.938085,32.711107],[102.938157,32.71121],[102.93831,32.711319],[102.93862,32.711454],[102.938929,32.711589],[102.939301,32.711725],[102.939673,32.711862],[102.940044,32.711999],[102.940416,32.712136],[102.940813,32.712337],[102.941205,32.712535],[102.941597,32.712734],[102.94199,32.712932],[102.942382,32.713131],[102.94239,32.713133],[102.942561,32.713181],[102.942826,32.713255],[102.943029,32.713312],[102.943089,32.713329],[102.943351,32.713402],[102.943614,32.713476],[102.943877,32.713549],[102.94414,32.713623],[102.944402,32.713696],[102.944665,32.71377],[102.944928,32.713843],[102.945315,32.713928],[102.945702,32.714013],[102.94609,32.714099],[102.946475,32.714174],[102.946859,32.71425],[102.947112,32.714267],[102.947366,32.714284],[102.947619,32.714302],[102.947872,32.714319],[102.948125,32.714336],[102.948378,32.714354],[102.948818,32.714374],[102.949259,32.714395],[102.949488,32.714406],[102.949699,32.714416],[102.949933,32.71442],[102.950142,32.714522],[102.950347,32.714723],[102.950471,32.714918],[102.950595,32.715112],[102.95065,32.715199],[102.950818,32.715361],[102.951057,32.715726],[102.951296,32.716092],[102.951457,32.71627],[102.951617,32.716449],[102.951831,32.716651],[102.952046,32.716853],[102.952176,32.717091],[102.95226,32.717376],[102.952323,32.717633],[102.952387,32.71789],[102.952415,32.718005],[102.952445,32.718127],[102.952522,32.718435],[102.952587,32.718697],[102.952652,32.718959],[102.952807,32.719209],[102.953069,32.719518],[102.95336,32.719831],[102.95339,32.719863],[102.953711,32.720049],[102.954032,32.720236],[102.954354,32.720422],[102.954556,32.720517],[102.95477,32.720636],[102.95483,32.720755],[102.954861,32.720923],[102.954865,32.720946],[102.954888,32.721244],[102.954889,32.721255],[102.954877,32.721636],[102.955032,32.721886],[102.95521,32.722052],[102.955282,32.72235],[102.955329,32.722695],[102.955591,32.72304],[102.955829,32.723295],[102.956067,32.723551],[102.956373,32.72369],[102.956567,32.723777],[102.956799,32.723849],[102.957031,32.72392],[102.957366,32.724001],[102.957667,32.724073],[102.957967,32.724145],[102.958268,32.724217],[102.958613,32.724467],[102.958684,32.724527],[102.958744,32.724753],[102.958732,32.724991],[102.95872,32.725229],[102.958714,32.72552],[102.958708,32.725812],[102.958803,32.726157],[102.959029,32.72643],[102.959351,32.72668],[102.959707,32.726859],[102.959815,32.726966],[102.959823,32.726983],[102.959922,32.72718],[102.959986,32.727502],[102.959993,32.727537],[102.959981,32.727838],[102.959969,32.72814],[102.959957,32.728441],[102.959962,32.728774],[102.959979,32.728813],[102.960143,32.729193],[102.960343,32.729412],[102.960619,32.729574],[102.961,32.729716],[102.961212,32.729778],[102.961428,32.72984],[102.961871,32.729894],[102.962294,32.729945],[102.96257,32.73005],[102.962722,32.730211],[102.962894,32.730392],[102.96291,32.730419],[102.963046,32.730639],[102.963183,32.73086],[102.963217,32.730916],[102.963465,32.73122],[102.963779,32.731392],[102.964093,32.731582],[102.964407,32.731772],[102.96455,32.731858],[102.964731,32.731991],[102.964864,32.732172],[102.964917,32.732264],[102.965007,32.732419],[102.965179,32.732592],[102.965197,32.73261],[102.965549,32.732857],[102.965755,32.732983],[102.965961,32.733108],[102.965987,32.733124],[102.966239,32.733343],[102.966491,32.733562],[102.966634,32.733761],[102.966758,32.733999],[102.966929,32.734171],[102.967072,32.734342],[102.967111,32.734414],[102.967186,32.734551],[102.967321,32.734969],[102.967367,32.735113],[102.967557,32.73547],[102.967629,32.735584],[102.96765,32.73577],[102.967586,32.73597],[102.967357,32.736277],[102.96715,32.736551],[102.966943,32.736826],[102.966747,32.737105],[102.966551,32.737383],[102.966551,32.737383],[102.966551,32.737383],[102.96636,32.737635],[102.966168,32.737886],[102.966144,32.737918],[102.965965,32.738254],[102.965659,32.738518],[102.96538,32.738789],[102.96508,32.739053],[102.964852,32.73925],[102.964773,32.739318],[102.964524,32.73956],[102.964523,32.739562],[102.964427,32.739781],[102.964424,32.739789],[102.964331,32.740133],[102.964295,32.740267],[102.964247,32.740533],[102.964198,32.740799],[102.964181,32.740895],[102.964167,32.74094],[102.964109,32.74112],[102.964038,32.741345],[102.963931,32.741559],[102.963738,32.741702],[102.963417,32.741745],[102.963146,32.741784],[102.962875,32.741823],[102.96276,32.741849],[102.962496,32.741909],[102.962132,32.741959],[102.961797,32.74198],[102.961497,32.741966],[102.961439,32.741961],[102.961254,32.741944],[102.96123,32.741944],[102.96099,32.741944],[102.960783,32.742041],[102.960576,32.742137],[102.960393,32.74239],[102.960254,32.742452],[102.96004,32.742547],[102.959825,32.742643],[102.95961,32.742738],[102.959395,32.742833],[102.959185,32.742926],[102.95918,32.742929],[102.958965,32.743024],[102.958751,32.743119],[102.958536,32.743215],[102.958165,32.743393],[102.957795,32.743571],[102.957424,32.74375],[102.957208,32.743911],[102.956991,32.744073],[102.956774,32.744235],[102.956557,32.744396],[102.956395,32.744576],[102.956233,32.744756],[102.956071,32.744936],[102.955909,32.745116],[102.955715,32.745449],[102.95552,32.745782],[102.955439,32.746013],[102.955357,32.746244],[102.955276,32.746474],[102.955194,32.746705],[102.955122,32.746953],[102.95505,32.747201],[102.954979,32.747449],[102.954907,32.747697],[102.954761,32.747942],[102.954614,32.748187],[102.954363,32.748449],[102.954112,32.748712],[102.953945,32.748867],[102.953777,32.749023],[102.95361,32.749178],[102.953442,32.749333],[102.953275,32.749489],[102.953107,32.749644],[102.953075,32.749672],[102.952832,32.74988],[102.952557,32.750116],[102.952533,32.750136],[102.952248,32.750381],[102.951904,32.750553],[102.951879,32.750566],[102.951561,32.750725],[102.951255,32.750818],[102.950948,32.750912],[102.950524,32.751014],[102.9501,32.751116],[102.949992,32.75113],[102.949684,32.751169],[102.949267,32.751221],[102.948851,32.751274],[102.948435,32.751326],[102.948189,32.751337],[102.947943,32.751348],[102.947697,32.751358],[102.947451,32.751369],[102.947207,32.75138],[102.947205,32.75138],[102.946959,32.751391],[102.946713,32.751401],[102.946467,32.751412],[102.946221,32.751423],[102.945975,32.751434],[102.945729,32.751444],[102.945483,32.751455],[102.945251,32.751473],[102.945019,32.751491],[102.944788,32.751509],[102.944556,32.751527],[102.94418,32.7516],[102.943803,32.751673],[102.943556,32.751748],[102.943309,32.751822],[102.943046,32.752035],[102.942829,32.752348],[102.942667,32.752528],[102.942504,32.752708],[102.942342,32.752888],[102.94218,32.753068],[102.942026,32.753285],[102.941983,32.753346],[102.941976,32.753355],[102.941872,32.753502],[102.941718,32.75372],[102.941563,32.753937],[102.941543,32.753966],[102.941485,32.754047],[102.941409,32.754154],[102.941395,32.754175],[102.941255,32.754372],[102.941101,32.754589],[102.940947,32.754806],[102.940816,32.755011],[102.940685,32.755215],[102.940555,32.755419],[102.940424,32.755623],[102.940293,32.755827],[102.940162,32.756031],[102.940047,32.756252],[102.939931,32.756472],[102.939815,32.756692],[102.939699,32.756912],[102.939527,32.757255],[102.939354,32.757598],[102.93926,32.757959],[102.939167,32.75832],[102.939073,32.758681],[102.939087,32.759089],[102.939101,32.759497],[102.939115,32.759906],[102.939144,32.760171],[102.939173,32.760437],[102.939202,32.760702],[102.939231,32.760968],[102.93926,32.761233],[102.939289,32.761498],[102.939246,32.761804],[102.939203,32.76211],[102.939032,32.762482],[102.93891,32.762707],[102.938788,32.762932],[102.938684,32.763024],[102.93846,32.763221],[102.938237,32.763418],[102.937973,32.763729],[102.937825,32.763904],[102.937709,32.76404],[102.937608,32.76435],[102.937553,32.764703],[102.937616,32.764972],[102.937643,32.765085],[102.93768,32.765241],[102.937769,32.765449],[102.937858,32.765658],[102.937947,32.765867],[102.938036,32.766076],[102.938147,32.766315],[102.938259,32.766554],[102.938323,32.766822],[102.938388,32.767089],[102.93841,32.767475],[102.938432,32.76786],[102.938454,32.768246],[102.938495,32.768493],[102.938536,32.768741],[102.938684,32.769157],[102.938712,32.769237],[102.938893,32.769517],[102.939052,32.769718],[102.939211,32.769918],[102.939324,32.770137],[102.939437,32.770355],[102.939476,32.770634],[102.939491,32.771029],[102.93946,32.771343],[102.939404,32.771719],[102.93942,32.772094],[102.939461,32.772247],[102.939528,32.772491],[102.939655,32.772707],[102.939782,32.772923],[102.939909,32.773139],[102.940036,32.773355],[102.940163,32.773571],[102.94029,32.773787],[102.940418,32.774003],[102.940545,32.774219],[102.940651,32.774443],[102.940757,32.774667],[102.940862,32.774891],[102.940968,32.775115],[102.941067,32.775413],[102.941166,32.775711],[102.941251,32.776068],[102.941336,32.776425],[102.941398,32.776791],[102.94146,32.777158],[102.941453,32.777444],[102.941446,32.77773],[102.941429,32.777987],[102.941411,32.778243],[102.94137,32.778509],[102.941337,32.778722],[102.941329,32.778775],[102.941265,32.779031],[102.941201,32.779287],[102.941107,32.779531],[102.941014,32.779775],[102.94092,32.78002],[102.940826,32.780264],[102.940608,32.780609],[102.940389,32.780954],[102.940171,32.781299],[102.939944,32.781664],[102.939717,32.782029],[102.93949,32.782394],[102.939221,32.782737],[102.938953,32.783081],[102.938684,32.783424],[102.938414,32.783769],[102.938143,32.784115],[102.937873,32.78446],[102.937766,32.784672],[102.93766,32.784883],[102.937553,32.785094],[102.937534,32.785132],[102.937486,32.785226],[102.937452,32.785294],[102.937446,32.785306],[102.93734,32.785517],[102.937233,32.785728],[102.937191,32.785833],[102.937139,32.785964],[102.937133,32.785979],[102.937122,32.786009],[102.937034,32.786229],[102.936934,32.786479],[102.936835,32.786729],[102.936724,32.787142],[102.936613,32.787555],[102.936524,32.787886],[102.936502,32.787968],[102.936457,32.788363],[102.936413,32.788758],[102.936404,32.789139],[102.936395,32.789521],[102.936387,32.789902],[102.936423,32.790326],[102.936459,32.79075],[102.936453,32.791027],[102.936447,32.791304],[102.936427,32.791544],[102.936406,32.791784],[102.936383,32.792054],[102.936327,32.792448],[102.936296,32.79267],[102.936271,32.792842],[102.936237,32.793024],[102.936193,32.793255],[102.936191,32.793268],[102.936111,32.793695],[102.936076,32.793879],[102.93603,32.794122],[102.93599,32.794375],[102.935968,32.79451],[102.935959,32.794566],[102.935949,32.794627],[102.935908,32.79488],[102.935867,32.795133],[102.935839,32.795311],[102.935829,32.79537],[102.935827,32.795386],[102.935786,32.795639],[102.93571,32.795874],[102.935645,32.796076],[102.935634,32.79611],[102.935602,32.796209],[102.935558,32.796346],[102.935482,32.796581],[102.935396,32.796818],[102.93531,32.797055],[102.935278,32.797143],[102.935224,32.797292],[102.935138,32.797529],[102.935053,32.797766],[102.934967,32.798003],[102.934881,32.79824],[102.934795,32.798477],[102.934709,32.798714],[102.934623,32.798952],[102.934537,32.799189],[102.934452,32.799426],[102.934395,32.799682],[102.934338,32.799938],[102.934281,32.800194],[102.934225,32.80045],[102.934168,32.800706],[102.934111,32.800962],[102.934074,32.801215],[102.934037,32.801468],[102.934,32.801721],[102.933963,32.801973],[102.933926,32.802226],[102.933889,32.802479],[102.93388,32.802884],[102.933871,32.803289],[102.9339,32.80371],[102.933929,32.80413],[102.933958,32.804551],[102.934029,32.804765],[102.9341,32.804978],[102.934172,32.805192],[102.934243,32.805406],[102.934399,32.805725],[102.934555,32.806043],[102.934797,32.806389],[102.935039,32.806736],[102.935281,32.807082],[102.935459,32.807248],[102.935637,32.807414],[102.935814,32.80758],[102.935992,32.807746],[102.936063,32.807793],[102.936013,32.80783],[102.934879,32.808317],[102.933789,32.808695],[102.933748,32.808709],[102.932941,32.809186],[102.932352,32.809534],[102.931927,32.809785],[102.931088,32.810276],[102.930562,32.810583],[102.929342,32.811574],[102.928809,32.811976],[102.927929,32.812814],[102.927908,32.812834],[102.92793,32.813059],[102.927881,32.813193],[102.927826,32.813299],[102.927769,32.813337],[102.927719,32.813338],[102.927605,32.813305],[102.927426,32.813288],[102.926973,32.813715],[102.92583,32.814612],[102.924806,32.815195],[102.923798,32.815581],[102.922549,32.81651],[102.921764,32.817317],[102.921287,32.818021],[102.920757,32.818833],[102.920502,32.819929],[102.920294,32.821177],[102.920074,32.821821],[102.919937,32.822229],[102.919542,32.823064],[102.919081,32.823862],[102.918583,32.824746],[102.917569,32.825852],[102.916515,32.827186],[102.916182,32.828332],[102.916115,32.829712],[102.916032,32.83184],[102.916081,32.832647],[102.916265,32.833514],[102.915939,32.83581],[102.915777,32.83693],[102.915502,32.837198],[102.915253,32.837439],[102.91442,32.838099],[102.913864,32.838538],[102.912854,32.839471],[102.912321,32.840383],[102.912231,32.841331],[102.912993,32.843704],[102.913418,32.844488],[102.913605,32.844679],[102.914017,32.845102],[102.914889,32.845721],[102.914945,32.84624],[102.914884,32.846419],[102.914653,32.847098],[102.914301,32.847809],[102.914116,32.848183],[102.913412,32.849121],[102.912774,32.850175],[102.912105,32.851084],[102.911271,32.851346],[102.910971,32.85144],[102.909854,32.851133],[102.909759,32.851113],[102.909691,32.851098],[102.909683,32.851097],[102.909637,32.851087],[102.90952,32.851062],[102.909397,32.851035],[102.909209,32.850995],[102.909152,32.850983],[102.909006,32.850952],[102.9089,32.850929],[102.908868,32.850922],[102.908844,32.850917],[102.908804,32.850908],[102.908682,32.850882],[102.908667,32.850879],[102.908656,32.850877],[102.908603,32.850866],[102.908585,32.850862],[102.908395,32.850821],[102.907379,32.850545],[102.906262,32.850181],[102.905111,32.849845],[102.904054,32.849827],[102.902658,32.849775],[102.901531,32.849871],[102.900031,32.849846],[102.899478,32.850182],[102.899453,32.851218],[102.899529,32.852341],[102.900031,32.854191],[102.900346,32.85529],[102.900999,32.85651],[102.901606,32.858247],[102.90189,32.85923],[102.901703,32.859946],[102.901726,32.860407],[102.901708,32.861155],[102.901659,32.861816],[102.901196,32.86552],[102.901096,32.866871],[102.900589,32.868129],[102.899904,32.871167],[102.899493,32.874124],[102.899108,32.875988],[102.899044,32.877282],[102.898907,32.878719],[102.898709,32.881334],[102.899057,32.882491],[102.899003,32.883325],[102.898817,32.883983],[102.89849,32.884389],[102.89829,32.884636],[102.8978,32.885175],[102.897787,32.885186],[102.897278,32.885626],[102.896146,32.887334],[102.895571,32.88859],[102.895698,32.888995],[102.895751,32.889629],[102.895731,32.890464],[102.895235,32.8927],[102.894937,32.893759],[102.894535,32.894904],[102.894308,32.895821],[102.894356,32.896685],[102.894163,32.897215],[102.894094,32.897403],[102.893845,32.898086],[102.893579,32.899262],[102.89373,32.90007],[102.893743,32.900962],[102.893818,32.902114],[102.893929,32.903181],[102.893877,32.903928],[102.893691,32.904587],[102.893298,32.905329],[102.893252,32.905846],[102.89303,32.906561],[102.892434,32.907242],[102.891588,32.908408],[102.891018,32.909434],[102.890012,32.910136],[102.887136,32.912016],[102.886416,32.912147],[102.885692,32.91248],[102.884545,32.913353],[102.883882,32.914004],[102.883036,32.91514],[102.882087,32.916275],[102.881664,32.916844],[102.880757,32.917692],[102.879803,32.917647],[102.879321,32.91756],[102.87904,32.917509],[102.877821,32.917289],[102.876403,32.917034],[102.8761,32.916979],[102.876038,32.917017],[102.871981,32.91947],[102.871968,32.919496],[102.870938,32.920345],[102.870533,32.921255],[102.870228,32.923298],[102.870064,32.924805],[102.869858,32.925394],[102.869007,32.926242],[102.868257,32.92817],[102.867081,32.929228],[102.865955,32.93088],[102.865398,32.932757],[102.86523,32.934426],[102.865707,32.935889],[102.866382,32.937033],[102.866716,32.937779],[102.866746,32.937848],[102.866625,32.938309],[102.866394,32.939189],[102.865904,32.94096],[102.864585,32.942662],[102.863643,32.944587],[102.862638,32.94651],[102.861969,32.947739],[102.861808,32.949137],[102.861775,32.950484],[102.861744,32.950788],[102.861691,32.951315],[102.86162,32.951313],[102.861651,32.951857],[102.86167,32.952186],[102.861624,32.953016],[102.861455,32.953297],[102.861363,32.953469],[102.861205,32.953713],[102.861087,32.953893],[102.860996,32.95408],[102.860905,32.954352],[102.860864,32.954539],[102.86083,32.954846],[102.860635,32.955175],[102.860484,32.955576],[102.860467,32.955601],[102.8603,32.955824],[102.860098,32.956054],[102.859863,32.956364],[102.859755,32.956557],[102.85963,32.956773],[102.859496,32.956982],[102.859387,32.957147],[102.859254,32.957377],[102.859153,32.957528],[102.85902,32.957772],[102.858932,32.957991],[102.858705,32.9583],[102.858044,32.95907],[102.854856,32.961091],[102.853988,32.961587],[102.853286,32.962597],[102.85298,32.963434],[102.851996,32.964319],[102.850872,32.965052],[102.84967,32.966084],[102.8473,32.968208],[102.845807,32.969445],[102.844901,32.970021],[102.843744,32.970467],[102.842155,32.970493],[102.840628,32.970574],[102.839288,32.970765],[102.839267,32.971268],[102.837553,32.971574],[102.835834,32.971694],[102.833971,32.971687],[102.832757,32.971716],[102.831339,32.971641],[102.830507,32.971776],[102.829415,32.971683],[102.828182,32.971287],[102.827426,32.97075],[102.826164,32.970354],[102.82438,32.969525],[102.824126,32.96954],[102.823699,32.969563],[102.823477,32.96975],[102.823218,32.969968],[102.822974,32.970174],[102.822335,32.971369],[102.822274,32.971483],[102.822168,32.971681],[102.821793,32.972472],[102.821336,32.973013],[102.820849,32.973626],[102.820311,32.973953],[102.820127,32.974064],[102.819401,32.974725],[102.818462,32.975606],[102.817708,32.976191],[102.817384,32.976424],[102.816384,32.977446],[102.815819,32.977463],[102.814265,32.977026],[102.813195,32.976644],[102.811809,32.975937],[102.810955,32.975558],[102.809487,32.975987],[102.807907,32.976597],[102.806382,32.977161],[102.805465,32.977145],[102.804862,32.977498],[102.803059,32.978376],[102.802073,32.979035],[102.801875,32.979166],[102.801797,32.979218],[102.80048,32.980105],[102.799009,32.98067],[102.798027,32.981063],[102.796524,32.980763],[102.795519,32.979927],[102.794242,32.979176],[102.792915,32.978288],[102.792179,32.977502],[102.791195,32.975847],[102.789884,32.974323],[102.789142,32.973764],[102.788022,32.973243],[102.787012,32.972634],[102.786111,32.971981],[102.781472,32.969715],[102.779723,32.968456],[102.77878,32.967302],[102.77741,32.966004],[102.776523,32.964805],[102.776066,32.96366],[102.776039,32.962568],[102.776077,32.961067],[102.776114,32.959593],[102.776118,32.959431],[102.776143,32.958432],[102.776151,32.958112],[102.776161,32.958036],[102.77635,32.956614],[102.775941,32.956354],[102.775548,32.956102],[102.775093,32.955812],[102.77481,32.955632],[102.774347,32.955432],[102.773923,32.955249],[102.773607,32.955113],[102.773346,32.955001],[102.773048,32.954872],[102.77269,32.954674],[102.772304,32.954447],[102.771908,32.95421],[102.77153,32.953991],[102.771028,32.953699],[102.77083,32.953415],[102.770611,32.9531],[102.770371,32.953438],[102.770164,32.953729],[102.769858,32.954077],[102.769561,32.954415],[102.769219,32.954804],[102.769094,32.954952],[102.768894,32.955187],[102.768538,32.955606],[102.768497,32.955655],[102.768272,32.955942],[102.767549,32.956867],[102.766063,32.958023],[102.76462,32.959262],[102.764298,32.959538],[102.764134,32.959673],[102.762149,32.961319],[102.76101,32.962656],[102.76097,32.962704],[102.760814,32.962887],[102.759974,32.9641],[102.759649,32.9644],[102.759517,32.964523],[102.758814,32.965171],[102.757757,32.966426],[102.757706,32.966483],[102.757537,32.966673],[102.757538,32.966744],[102.757526,32.966782],[102.757519,32.966804],[102.757499,32.966829],[102.757473,32.966848],[102.757429,32.966861],[102.757377,32.966849],[102.757316,32.96684],[102.757209,32.966816],[102.757174,32.966812],[102.757146,32.966812],[102.757133,32.966819],[102.757109,32.966842],[102.7571,32.966864],[102.7571,32.966894],[102.757137,32.966989],[102.757175,32.967062],[102.757178,32.967077],[102.756987,32.967291],[102.756973,32.967307],[102.756737,32.967572],[102.756723,32.967588],[102.756709,32.967604],[102.756662,32.967656],[102.75665,32.96767],[102.756631,32.967691],[102.756612,32.967712],[102.755924,32.968485],[102.754325,32.969821],[102.754014,32.970145],[102.753331,32.970853],[102.753006,32.97119],[102.752386,32.971833],[102.749954,32.974109],[102.749867,32.974226],[102.749773,32.974205],[102.74975,32.9742],[102.749638,32.974219],[102.74959,32.974253],[102.749566,32.974292],[102.749484,32.974377],[102.749338,32.974456],[102.749238,32.974513],[102.749236,32.974514],[102.749074,32.974619],[102.748886,32.974742],[102.74874,32.974867],[102.748577,32.975041],[102.748536,32.975063],[102.748423,32.975139],[102.748291,32.975306],[102.748229,32.975442],[102.748201,32.975555],[102.748206,32.975637],[102.74822,32.975692],[102.748302,32.97573],[102.748427,32.975771],[102.748514,32.975799],[102.748602,32.975817],[102.748677,32.97582],[102.748573,32.97596],[102.748527,32.976023],[102.747383,32.977566],[102.746421,32.979322],[102.74575,32.980266],[102.745721,32.981402],[102.745726,32.983313],[102.745489,32.984173],[102.74509,32.984984],[102.74496,32.985846],[102.744713,32.98707],[102.744401,32.988747],[102.743771,32.990192],[102.743522,32.991461],[102.742569,32.992854],[102.74248,32.993057],[102.742054,32.994027],[102.741919,32.995071],[102.741881,32.996571],[102.741226,32.996832],[102.740258,32.996724],[102.739037,32.995883],[102.737294,32.994396],[102.736182,32.993557],[102.735613,32.992591],[102.734674,32.991301],[102.73399,32.990606],[102.73255,32.989943],[102.731398,32.988557],[102.731337,32.988351],[102.73105,32.987368],[102.730921,32.986092],[102.730902,32.985731],[102.730894,32.985565],[102.73089,32.985484],[102.730877,32.98523],[102.730849,32.984681],[102.730261,32.984443],[102.729457,32.984246],[102.727843,32.984035],[102.72754,32.983958],[102.726878,32.98379],[102.723982,32.983055],[102.722161,32.982521],[102.721906,32.981925],[102.721838,32.980377],[102.721602,32.979054],[102.7216,32.978999],[102.7216,32.978993],[102.721718,32.978952],[102.721774,32.978931],[102.721713,32.978899],[102.721776,32.978873],[102.721773,32.97887],[102.72176,32.978861],[102.721737,32.978828],[102.721712,32.978813],[102.721721,32.978794],[102.721771,32.978788],[102.721823,32.97878],[102.72189,32.978782],[102.721918,32.978793],[102.721941,32.978816],[102.721961,32.978842],[102.721974,32.978862],[102.721986,32.97888],[102.722016,32.97888],[102.722032,32.978871],[102.722028,32.978843],[102.722027,32.978829],[102.722008,32.978806],[102.721986,32.978785],[102.721965,32.978768],[102.721949,32.978745],[102.72196,32.978739],[102.72199,32.978733],[102.722008,32.978724],[102.722023,32.978703],[102.722039,32.978682],[102.72205,32.978643],[102.722057,32.978607],[102.722056,32.97858],[102.722054,32.978557],[102.721995,32.978499],[102.721936,32.97843],[102.721924,32.978432],[102.721874,32.978432],[102.721845,32.978421],[102.721851,32.978402],[102.721871,32.978381],[102.721873,32.978358],[102.721873,32.978343],[102.721848,32.978324],[102.721843,32.978325],[102.721801,32.978332],[102.72176,32.97834],[102.721706,32.97834],[102.721687,32.978327],[102.72168,32.978298],[102.721664,32.97826],[102.721657,32.978226],[102.721607,32.978197],[102.721591,32.97819],[102.721591,32.978159],[102.721593,32.978136],[102.721599,32.978114],[102.721563,32.978086],[102.721369,32.977982],[102.721282,32.977901],[102.721188,32.977826],[102.721189,32.977813],[102.721189,32.97775],[102.721164,32.977697],[102.721106,32.977641],[102.721003,32.977576],[102.720936,32.977522],[102.720875,32.977466],[102.7208,32.977377],[102.72075,32.977303],[102.720646,32.977139],[102.720574,32.977035],[102.720489,32.976955],[102.720347,32.976896],[102.720233,32.976873],[102.72012,32.976841],[102.720045,32.976809],[102.719953,32.97675],[102.719931,32.976726],[102.719917,32.976684],[102.719902,32.976604],[102.719887,32.976517],[102.719858,32.976449],[102.719823,32.976401],[102.719759,32.976366],[102.719667,32.976334],[102.719532,32.976287],[102.719386,32.976219],[102.719279,32.97616],[102.719176,32.976113],[102.719013,32.976066],[102.718918,32.976058],[102.718776,32.976068],[102.718649,32.976068],[102.718468,32.976039],[102.718401,32.976016],[102.718309,32.975966],[102.71824,32.975859],[102.71819,32.975776],[102.718022,32.975586],[102.717933,32.975476],[102.717801,32.975354],[102.717655,32.975236],[102.717499,32.975141],[102.717218,32.975006],[102.717108,32.974968],[102.71697,32.974912],[102.716814,32.974844],[102.716675,32.974797],[102.716452,32.974739],[102.716239,32.974666],[102.716065,32.974607],[102.715951,32.974551],[102.715777,32.974477],[102.715685,32.974424],[102.715432,32.974247],[102.715319,32.974173],[102.715048,32.974001],[102.714963,32.973957],[102.714828,32.973904],[102.714697,32.973869],[102.714594,32.973861],[102.714527,32.973873],[102.714425,32.973969],[102.714387,32.974044],[102.714388,32.974089],[102.714346,32.974178],[102.714286,32.974262],[102.714198,32.974334],[102.714033,32.974407],[102.713804,32.974495],[102.713638,32.974546],[102.713465,32.974586],[102.713334,32.974629],[102.713024,32.97483],[102.712852,32.97495],[102.712683,32.975071],[102.712468,32.975191],[102.71213,32.975309],[102.71196,32.975352],[102.711836,32.975377],[102.711653,32.975396],[102.711476,32.975414],[102.711225,32.975434],[102.711006,32.975453],[102.7109,32.975471],[102.71072,32.975526],[102.710686,32.975545],[102.710505,32.975432],[102.710373,32.97535],[102.710224,32.975261],[102.710064,32.975178],[102.709911,32.975114],[102.709755,32.97507],[102.70956,32.975008],[102.709545,32.975005],[102.709358,32.974967],[102.7092,32.974968],[102.709075,32.974973],[102.708968,32.975],[102.708855,32.975044],[102.708742,32.975111],[102.708675,32.975162],[102.708599,32.975219],[102.708473,32.975335],[102.708383,32.975431],[102.708321,32.975493],[102.708262,32.97557],[102.708215,32.975644],[102.708153,32.975752],[102.708083,32.975847],[102.708021,32.975874],[102.70794,32.975956],[102.70789,32.976049],[102.707851,32.97613],[102.707797,32.976183],[102.707645,32.97626],[102.707563,32.976304],[102.707496,32.97638],[102.707446,32.976455],[102.707364,32.976534],[102.707246,32.976649],[102.7071,32.976786],[102.706993,32.976875],[102.706875,32.97694],[102.706776,32.976986],[102.706595,32.977039],[102.706395,32.977078],[102.706271,32.977108],[102.706146,32.977142],[102.706028,32.977181],[102.705929,32.977236],[102.705777,32.977349],[102.705701,32.977438],[102.705654,32.977498],[102.705592,32.977591],[102.705514,32.977692],[102.705455,32.977756],[102.705402,32.977816],[102.705345,32.977862],[102.705261,32.977908],[102.705176,32.977944],[102.705063,32.977983],[102.705015,32.978002],[102.704826,32.978018],[102.704448,32.978073],[102.704193,32.97812],[102.703748,32.978161],[102.703688,32.978167],[102.703451,32.978201],[102.703087,32.978242],[102.702012,32.978316],[102.701913,32.978323],[102.701882,32.978319],[102.701746,32.97832],[102.701665,32.978326],[102.701515,32.978352],[102.701421,32.978385],[102.701226,32.978445],[102.701082,32.978495],[102.700955,32.978536],[102.700754,32.978623],[102.70066,32.97867],[102.700581,32.978702],[102.700434,32.978724],[102.700314,32.978727],[102.700187,32.978722],[102.700037,32.978715],[102.699777,32.978697],[102.699627,32.978666],[102.699548,32.978648],[102.698725,32.978816],[102.697858,32.978936],[102.697309,32.97929],[102.697029,32.979737],[102.697098,32.979899],[102.697123,32.98001],[102.697083,32.98012],[102.697073,32.980172],[102.696966,32.980321],[102.696599,32.98065],[102.696396,32.98088],[102.696233,32.98102],[102.69608,32.981094],[102.695949,32.981122],[102.695866,32.981138],[102.695747,32.981262],[102.694762,32.98179],[102.693452,32.982357],[102.692481,32.982339],[102.690873,32.9819],[102.689113,32.981094],[102.688071,32.979665],[102.687721,32.978612],[102.686783,32.977321],[102.685795,32.975893],[102.685128,32.974561],[102.684403,32.973411],[102.683979,32.971037],[102.683574,32.970029],[102.68301,32.968881],[102.681946,32.968316],[102.680498,32.96797],[102.678685,32.967118],[102.678521,32.967068],[102.677882,32.966876],[102.676001,32.966568],[102.673966,32.965984],[102.673007,32.965511],[102.672389,32.964408],[102.670758,32.962785],[102.669856,32.962223],[102.668662,32.960426],[102.667381,32.958529],[102.66674,32.958814],[102.665795,32.95906],[102.664637,32.958888],[102.66317,32.958597],[102.661343,32.958374],[102.659473,32.958075],[102.65869,32.958026],[102.658295,32.958001],[102.657777,32.957968],[102.655903,32.95782],[102.653898,32.957593],[102.652834,32.957234],[102.651058,32.956786],[102.650025,32.956955],[102.649124,32.95724],[102.647238,32.957543],[102.646026,32.957747],[102.645697,32.958343],[102.644971,32.958744],[102.644205,32.958994],[102.643612,32.959435],[102.642505,32.960695],[102.641353,32.961992],[102.640033,32.962872],[102.638671,32.963675],[102.637224,32.964289],[102.635503,32.965123],[102.633611,32.965652],[102.631407,32.965986],[102.629563,32.965699],[102.628738,32.965587],[102.627837,32.965465],[102.625633,32.965272],[102.625517,32.965235],[102.625251,32.965149],[102.625202,32.965133],[102.62515,32.965116],[102.625129,32.96511],[102.624804,32.965004],[102.622854,32.964212],[102.622259,32.963988],[102.622228,32.963976],[102.622206,32.963968],[102.62215,32.963947],[102.621943,32.963869],[102.621695,32.963776],[102.621599,32.963739],[102.621186,32.963584],[102.619898,32.963098],[102.619545,32.963028],[102.619534,32.963026],[102.619415,32.963002],[102.619296,32.962979],[102.618494,32.962819],[102.618418,32.962804],[102.61794,32.962709],[102.615949,32.962087],[102.615916,32.962077],[102.615704,32.962011],[102.61569,32.962006],[102.615264,32.961873],[102.615128,32.961831],[102.615001,32.961791],[102.615024,32.961581],[102.615039,32.961439]]]]},"properties":{"cp":[102.84021326842111,32.73181473528267],"code":"513233205","name":"阿木乡","level":"street","center":[102.84021326842111,32.73181473528267],"fullCode":"513233205000","fullName":"四川省阿坝藏族羌族自治州红原县阿木乡","acreageMu":1338297.24,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.789,32.9154]}},{"id":"513233207","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.844495,33.079459],[102.844382,33.079401],[102.84443,33.079385],[102.844506,33.079376],[102.844569,33.078895],[102.844578,33.07883],[102.844641,33.07835],[102.844645,33.078323],[102.844646,33.078265],[102.844669,33.077341],[102.84467,33.077303],[102.844671,33.077231],[102.844935,33.07639],[102.844994,33.076401],[102.845031,33.0764],[102.845065,33.076391],[102.845099,33.076369],[102.845117,33.076336],[102.845115,33.076287],[102.845103,33.076236],[102.845079,33.076199],[102.84501,33.076158],[102.845141,33.075762],[102.845203,33.075757],[102.845243,33.075728],[102.845258,33.075685],[102.84528,33.075629],[102.845276,33.075575],[102.845265,33.075541],[102.845218,33.075529],[102.845455,33.074811],[102.845469,33.074509],[102.845517,33.07448],[102.845535,33.074447],[102.845541,33.074403],[102.845541,33.074363],[102.845527,33.074306],[102.84552,33.074258],[102.845519,33.074188],[102.845532,33.074119],[102.845563,33.07405],[102.845592,33.073981],[102.845605,33.073935],[102.845607,33.073897],[102.845582,33.073888],[102.845548,33.073897],[102.845496,33.073923],[102.8455,33.073836],[102.845469,33.073643],[102.845459,33.073577],[102.845259,33.072336],[102.845272,33.072264],[102.845273,33.072178],[102.845263,33.072102],[102.845242,33.072058],[102.845204,33.072041],[102.845118,33.072038],[102.84485,33.071477],[102.844725,33.070707],[102.844711,33.07062],[102.844589,33.069865],[102.844198,33.067669],[102.844189,33.06762],[102.844119,33.066488],[102.844117,33.066462],[102.843883,33.065075],[102.843901,33.064313],[102.844961,33.063485],[102.845547,33.062818],[102.84569,33.062453],[102.846066,33.062149],[102.84601,33.061697],[102.84563,33.060759],[102.845546,33.060108],[102.845335,33.059145],[102.845688,33.058389],[102.846445,33.057584],[102.846591,33.057107],[102.846806,33.056518],[102.846876,33.055023],[102.847498,33.054272],[102.848225,33.053325],[102.848508,33.052709],[102.849238,33.051621],[102.849892,33.050927],[102.850289,33.049748],[102.850368,33.049242],[102.850701,33.047977],[102.850947,33.047394],[102.851068,33.04711],[102.85111,33.04701],[102.851163,33.046885],[102.851659,33.045792],[102.852059,33.044501],[102.852986,33.04082],[102.852891,33.039182],[102.852846,33.038278],[102.853084,33.036786],[102.853592,33.035186],[102.85374,33.034468],[102.853801,33.034173],[102.854085,33.032796],[102.854443,33.031842],[102.854791,33.03134],[102.855469,33.030985],[102.856091,33.030234],[102.856445,33.02945],[102.856808,33.02827],[102.857282,33.026698],[102.857501,33.025968],[102.857227,33.024806],[102.85659,33.023469],[102.856544,33.022593],[102.856625,33.022002],[102.85701,33.021331],[102.857639,33.02027],[102.857759,33.01997],[102.857836,33.019781],[102.858102,33.01912],[102.858594,33.018169],[102.858539,33.017689],[102.857779,33.017224],[102.856349,33.016726],[102.856308,33.016712],[102.855598,33.016465],[102.855579,33.016458],[102.855544,33.016446],[102.855541,33.016445],[102.855534,33.016442],[102.855511,33.016434],[102.854623,33.016126],[102.85455,33.016089],[102.85453,33.016079],[102.853395,33.015513],[102.853221,33.01522],[102.852586,33.014663],[102.852178,33.014483],[102.85133,33.014245],[102.851089,33.014291],[102.849761,33.013586],[102.849572,33.013075],[102.849655,33.012427],[102.84989,33.01102],[102.850162,33.009757],[102.850117,33.009651],[102.850107,33.009517],[102.850136,33.009268],[102.850304,33.008986],[102.850449,33.008855],[102.850632,33.008782],[102.850754,33.008552],[102.851312,33.00763],[102.851562,33.007013],[102.851583,33.006139],[102.851285,33.004902],[102.851266,33.004823],[102.851248,33.00475],[102.851009,33.004252],[102.850895,33.004014],[102.850866,33.003953],[102.850544,33.003383],[102.850149,33.001653],[102.84996,33.001421],[102.849954,33.001414],[102.849953,33.001413],[102.849565,33.000939],[102.849522,33.000883],[102.849431,33.000768],[102.84943,33.000767],[102.849408,33.000739],[102.849273,33.000567],[102.848992,33.000135],[102.848753,32.999765],[102.848353,32.99915],[102.848335,32.999122],[102.84811,32.998776],[102.848012,32.998625],[102.846594,32.995025],[102.84578,32.993888],[102.845532,32.992523],[102.845557,32.992407],[102.845653,32.991957],[102.845761,32.991448],[102.84577,32.991403],[102.846145,32.990243],[102.846212,32.990035],[102.846226,32.989992],[102.846149,32.988913],[102.84629,32.988838],[102.846336,32.988793],[102.84637,32.988697],[102.846337,32.988587],[102.846298,32.988564],[102.84622,32.988564],[102.846126,32.98858],[102.846121,32.988511],[102.846271,32.986698],[102.846295,32.9864],[102.846309,32.986335],[102.846356,32.986117],[102.846456,32.985653],[102.846456,32.985653],[102.846467,32.985599],[102.846533,32.985295],[102.84693,32.984104],[102.846965,32.983908],[102.846999,32.983722],[102.847003,32.983697],[102.847006,32.983679],[102.847073,32.983306],[102.847078,32.983278],[102.847085,32.983243],[102.847091,32.983208],[102.847113,32.983087],[102.846892,32.981354],[102.846856,32.980936],[102.846845,32.980817],[102.846813,32.980434],[102.846785,32.980114],[102.846727,32.979443],[102.846553,32.979101],[102.846525,32.979047],[102.846332,32.978669],[102.846324,32.978653],[102.846225,32.978459],[102.84612,32.978163],[102.845784,32.977216],[102.845782,32.977209],[102.84538,32.976404],[102.845412,32.975118],[102.844927,32.973424],[102.843996,32.972277],[102.843972,32.972247],[102.844075,32.972171],[102.844142,32.972126],[102.844191,32.972072],[102.84419,32.971994],[102.844129,32.971926],[102.844076,32.971876],[102.843972,32.971822],[102.843797,32.971686],[102.84357,32.971563],[102.843563,32.97156],[102.843486,32.971518],[102.843218,32.971431],[102.843118,32.971444],[102.842919,32.97144],[102.84263,32.97147],[102.84238,32.971334],[102.841619,32.971021],[102.84064,32.971129],[102.839335,32.971256],[102.839267,32.971268],[102.839288,32.970765],[102.840628,32.970574],[102.842155,32.970493],[102.843744,32.970467],[102.844901,32.970021],[102.845807,32.969445],[102.8473,32.968208],[102.84967,32.966084],[102.850872,32.965052],[102.851996,32.964319],[102.85298,32.963434],[102.853286,32.962597],[102.853988,32.961587],[102.854856,32.961091],[102.858044,32.95907],[102.858705,32.9583],[102.858932,32.957991],[102.85902,32.957772],[102.859153,32.957528],[102.859254,32.957377],[102.859387,32.957147],[102.859496,32.956982],[102.85963,32.956773],[102.859755,32.956557],[102.859863,32.956364],[102.860098,32.956054],[102.8603,32.955824],[102.860467,32.955601],[102.860484,32.955576],[102.860635,32.955175],[102.86083,32.954846],[102.860864,32.954539],[102.860905,32.954352],[102.860996,32.95408],[102.861087,32.953893],[102.861205,32.953713],[102.861363,32.953469],[102.861455,32.953297],[102.861624,32.953016],[102.86167,32.952186],[102.861651,32.951857],[102.86162,32.951313],[102.861691,32.951315],[102.861744,32.950788],[102.861775,32.950484],[102.861808,32.949137],[102.861969,32.947739],[102.862638,32.94651],[102.863643,32.944587],[102.864585,32.942662],[102.865904,32.94096],[102.866394,32.939189],[102.866625,32.938309],[102.866746,32.937848],[102.866716,32.937779],[102.866382,32.937033],[102.865707,32.935889],[102.86523,32.934426],[102.865398,32.932757],[102.865955,32.93088],[102.867081,32.929228],[102.868257,32.92817],[102.869007,32.926242],[102.869858,32.925394],[102.870064,32.924805],[102.870228,32.923298],[102.870533,32.921255],[102.870938,32.920345],[102.871968,32.919496],[102.871693,32.92007],[102.871316,32.92156],[102.871284,32.922912],[102.871605,32.923752],[102.872158,32.924883],[102.87269,32.925439],[102.873804,32.925947],[102.874892,32.92611],[102.875972,32.926617],[102.876812,32.92715],[102.877686,32.927682],[102.878487,32.928444],[102.879622,32.929499],[102.880462,32.93006],[102.88147,32.930711],[102.882746,32.931567],[102.88366,32.931899],[102.884597,32.932663],[102.885266,32.933221],[102.886338,32.934045],[102.887179,32.934577],[102.888025,32.93485],[102.889218,32.934928],[102.89017,32.935088],[102.890806,32.935588],[102.891001,32.935994],[102.891224,32.93666],[102.891513,32.937442],[102.89211,32.938171],[102.892844,32.938845],[102.893542,32.939663],[102.893773,32.939983],[102.89386,32.940647],[102.893875,32.941453],[102.893751,32.942343],[102.893623,32.943434],[102.893464,32.944352],[102.8936,32.944383],[102.894722,32.944575],[102.89584,32.944939],[102.897195,32.945336],[102.898181,32.945496],[102.899676,32.945809],[102.900765,32.945914],[102.901924,32.945962],[102.902951,32.945864],[102.903707,32.945618],[102.904564,32.945489],[102.905414,32.945589],[102.906153,32.94612],[102.907391,32.947176],[102.907846,32.948134],[102.908545,32.948893],[102.909038,32.949679],[102.909909,32.950384],[102.911449,32.951647],[102.912465,32.951981],[102.912939,32.952161],[102.913242,32.952339],[102.912622,32.952587],[102.912574,32.952611],[102.912009,32.952887],[102.911482,32.953144],[102.910888,32.953738],[102.910227,32.954274],[102.909535,32.954665],[102.908971,32.955404],[102.908231,32.956428],[102.907793,32.957629],[102.907528,32.958718],[102.907099,32.959545],[102.907069,32.960811],[102.906946,32.961701],[102.906749,32.96423],[102.906522,32.965176],[102.906497,32.965334],[102.906495,32.965869],[102.906499,32.966255],[102.906439,32.966646],[102.90634,32.966847],[102.906244,32.967051],[102.906205,32.967212],[102.90613,32.967694],[102.906121,32.967749],[102.906063,32.968122],[102.906027,32.968355],[102.905999,32.968534],[102.906001,32.968584],[102.906008,32.968794],[102.906009,32.968813],[102.906011,32.968862],[102.906043,32.969763],[102.906044,32.969792],[102.906081,32.970837],[102.906163,32.971906],[102.906168,32.971965],[102.906193,32.972293],[102.906212,32.972537],[102.90621,32.972547],[102.906126,32.973054],[102.905943,32.97316],[102.905842,32.973237],[102.905686,32.973453],[102.905547,32.973693],[102.905436,32.973985],[102.905404,32.974157],[102.905462,32.974266],[102.905519,32.974347],[102.905554,32.974447],[102.905561,32.974561],[102.905513,32.974791],[102.90551,32.974799],[102.905355,32.975544],[102.90527,32.976262],[102.905155,32.976807],[102.904836,32.97732],[102.9047,32.978167],[102.904686,32.978259],[102.904675,32.978324],[102.904655,32.97847],[102.904633,32.978632],[102.904594,32.978913],[102.904561,32.979147],[102.904447,32.979969],[102.904366,32.980111],[102.904266,32.980259],[102.904233,32.980345],[102.904212,32.980503],[102.90423,32.980617],[102.904332,32.980799],[102.90433,32.98081],[102.904305,32.980994],[102.904256,32.981626],[102.904443,32.982349],[102.905163,32.983859],[102.905481,32.984526],[102.90555,32.98467],[102.906417,32.9869],[102.906576,32.987204],[102.906623,32.987326],[102.906681,32.987451],[102.906775,32.987602],[102.906836,32.987721],[102.90684,32.987808],[102.906877,32.987951],[102.906932,32.988087],[102.906997,32.988218],[102.907083,32.988337],[102.907148,32.988468],[102.907153,32.988593],[102.907112,32.988706],[102.907123,32.988829],[102.907153,32.98893],[102.907203,32.989031],[102.907229,32.989134],[102.907256,32.989241],[102.907257,32.989243],[102.907289,32.989367],[102.907377,32.989707],[102.907402,32.989805],[102.907673,32.989889],[102.907766,32.989945],[102.907883,32.990079],[102.907984,32.990283],[102.908002,32.990469],[102.907905,32.990584],[102.907786,32.990689],[102.907644,32.99074],[102.907704,32.990972],[102.907721,32.991037],[102.90796,32.99248],[102.908895,32.993387],[102.910068,32.994328],[102.910665,32.995057],[102.911393,32.996048],[102.911415,32.996074],[102.911493,32.996166],[102.91169,32.99629],[102.911844,32.996382],[102.911964,32.996527],[102.912034,32.996735],[102.912104,32.996916],[102.912156,32.996998],[102.912232,32.997048],[102.913258,32.998065],[102.913707,32.998406],[102.913747,32.998558],[102.913804,32.998675],[102.91386,32.998768],[102.91392,32.998843],[102.914031,32.998892],[102.914129,32.998931],[102.914209,32.998956],[102.914892,32.999732],[102.915434,32.999943],[102.916052,32.99978],[102.916126,32.999771],[102.916174,32.999764],[102.9162,32.999761],[102.917011,32.999653],[102.917514,32.999675],[102.918035,32.999698],[102.919982,32.999645],[102.920907,32.999516],[102.92169,32.999644],[102.922491,32.999642],[102.922543,32.999642],[102.923193,32.999641],[102.924316,32.999774],[102.925448,32.999592],[102.926467,32.99981],[102.926518,32.999816],[102.92683,32.999855],[102.927284,32.99991],[102.927557,32.999943],[102.928347,32.999726],[102.929353,32.999111],[102.929906,32.998774],[102.930204,32.998433],[102.930503,32.998093],[102.930961,32.997598],[102.930748,32.997514],[102.930684,32.997468],[102.930679,32.997396],[102.930704,32.997321],[102.930788,32.997263],[102.930902,32.997248],[102.931051,32.997236],[102.931208,32.997199],[102.93139,32.997147],[102.931714,32.997056],[102.932275,32.99677],[102.932608,32.996656],[102.932769,32.996601],[102.933285,32.996425],[102.933962,32.996193],[102.934749,32.996211],[102.935232,32.996222],[102.935324,32.99626],[102.935719,32.996425],[102.935852,32.996481],[102.936192,32.996622],[102.936612,32.996739],[102.936622,32.996741],[102.936887,32.996815],[102.936929,32.996827],[102.936943,32.997076],[102.93695,32.997206],[102.93694,32.997237],[102.936909,32.997338],[102.936905,32.997399],[102.936909,32.997525],[102.936929,32.997644],[102.936947,32.997751],[102.936954,32.99777],[102.936963,32.997787],[102.93698,32.997818],[102.937059,32.9979],[102.937139,32.997955],[102.937163,32.997974],[102.937142,32.998014],[102.937106,32.998043],[102.937052,32.998056],[102.936996,32.99804],[102.936958,32.998015],[102.936957,32.998075],[102.936956,32.998086],[102.936945,32.998557],[102.937224,32.99885],[102.93752,32.998759],[102.937586,32.998738],[102.937629,32.998709],[102.937689,32.99868],[102.937752,32.998662],[102.937807,32.99867],[102.938021,32.998604],[102.93804,32.998564],[102.93806,32.998523],[102.938081,32.998497],[102.938108,32.998472],[102.93813,32.998454],[102.938159,32.998434],[102.938193,32.998422],[102.938222,32.998415],[102.938256,32.998408],[102.938292,32.99841],[102.938331,32.998411],[102.938357,32.998413],[102.938389,32.998419],[102.938415,32.998425],[102.938434,32.998436],[102.938453,32.99845],[102.938469,32.998464],[102.938477,32.998497],[102.93883,32.998444],[102.93911,32.998689],[102.939105,32.998697],[102.9391,32.998709],[102.93907,32.998767],[102.939059,32.99879],[102.939043,32.998821],[102.938956,32.998995],[102.938944,32.999019],[102.938928,32.99905],[102.938898,32.999111],[102.938885,32.999137],[102.938751,32.999404],[102.938834,32.999835],[102.938853,32.999934],[102.938867,32.999974],[102.938875,32.999997],[102.938895,33.000053],[102.939019,33.000403],[102.939021,33.00041],[102.939024,33.000418],[102.939042,33.000467],[102.939069,33.000543],[102.939078,33.000571],[102.93931,33.001223],[102.939829,33.001618],[102.939572,33.002059],[102.940057,33.002453],[102.940541,33.002848],[102.940178,33.003287],[102.940114,33.003419],[102.939985,33.003684],[102.939919,33.003818],[102.939759,33.004002],[102.939731,33.004033],[102.93961,33.004071],[102.939537,33.004108],[102.939495,33.004134],[102.939403,33.004261],[102.939403,33.004286],[102.93889,33.004098],[102.938337,33.003766],[102.938229,33.003701],[102.938188,33.003968],[102.938272,33.004117],[102.938274,33.00412],[102.938383,33.004314],[102.938409,33.00436],[102.938425,33.004388],[102.938358,33.004432],[102.938342,33.004443],[102.938327,33.004453],[102.938262,33.004496],[102.938249,33.004505],[102.93823,33.004517],[102.937816,33.004794],[102.937788,33.004904],[102.937787,33.00491],[102.937786,33.004917],[102.93777,33.004977],[102.937741,33.005091],[102.937714,33.005202],[102.93766,33.005415],[102.93767,33.005428],[102.937918,33.005742],[102.937935,33.005764],[102.937969,33.005806],[102.93811,33.005948],[102.938167,33.006005],[102.93821,33.006048],[102.938205,33.006077],[102.938199,33.006109],[102.938197,33.006118],[102.938129,33.006492],[102.937805,33.006754],[102.937096,33.006951],[102.936373,33.007711],[102.936262,33.007878],[102.936249,33.007898],[102.936213,33.007952],[102.93608,33.008152],[102.935914,33.008704],[102.935908,33.008724],[102.935813,33.009039],[102.935438,33.009984],[102.934819,33.010806],[102.934762,33.010955],[102.934481,33.011691],[102.93449,33.011729],[102.934704,33.012705],[102.935033,33.013621],[102.935054,33.013682],[102.935069,33.013722],[102.935134,33.013858],[102.935164,33.013919],[102.935204,33.014003],[102.935674,33.01498],[102.93571,33.01506],[102.935717,33.015074],[102.935734,33.015114],[102.935742,33.01513],[102.935778,33.015212],[102.935942,33.015578],[102.936065,33.015696],[102.936191,33.015817],[102.936235,33.015859],[102.937046,33.016636],[102.93746,33.017342],[102.937508,33.017424],[102.937521,33.017447],[102.93782,33.017896],[102.938168,33.01842],[102.938174,33.01843],[102.938274,33.018581],[102.938279,33.018589],[102.938286,33.018599],[102.938339,33.018678],[102.938343,33.018702],[102.938345,33.018712],[102.93837,33.018701],[102.938446,33.018669],[102.938521,33.018625],[102.93852,33.018718],[102.938376,33.018899],[102.938525,33.019781],[102.938288,33.020847],[102.938445,33.021681],[102.938479,33.021746],[102.939121,33.02297],[102.939399,33.023421],[102.939937,33.024291],[102.940119,33.024354],[102.940279,33.024408],[102.940391,33.024447],[102.940623,33.024366],[102.940872,33.024278],[102.940879,33.024276],[102.941164,33.024176],[102.94128,33.024135],[102.942032,33.02392],[102.942559,33.02377],[102.943649,33.023907],[102.944453,33.024217],[102.945046,33.024524],[102.945566,33.024919],[102.945727,33.025575],[102.945435,33.026194],[102.945281,33.026518],[102.945072,33.026791],[102.944445,33.027604],[102.944594,33.027943],[102.944814,33.028442],[102.944982,33.028989],[102.945043,33.029189],[102.945058,33.030051],[102.944664,33.031827],[102.94418,33.032918],[102.943913,33.033805],[102.944072,33.034551],[102.944095,33.034921],[102.944123,33.035384],[102.944424,33.036102],[102.944406,33.036874],[102.944209,33.037241],[102.944185,33.037286],[102.943602,33.038079],[102.943658,33.038704],[102.943924,33.039421],[102.94475,33.040297],[102.945123,33.040957],[102.945112,33.041432],[102.944747,33.041931],[102.944704,33.042287],[102.944946,33.042499],[102.945685,33.04257],[102.946802,33.042783],[102.946879,33.042798],[102.947222,33.043098],[102.94723,33.043106],[102.947401,33.043255],[102.947433,33.043283],[102.947847,33.043646],[102.950089,33.046339],[102.950358,33.046662],[102.950379,33.046815],[102.950431,33.046911],[102.950535,33.047031],[102.950573,33.047075],[102.950715,33.047228],[102.950835,33.047306],[102.95104,33.047444],[102.951177,33.047521],[102.951336,33.04762],[102.951473,33.047748],[102.951564,33.047883],[102.951633,33.048022],[102.951643,33.048115],[102.951621,33.048179],[102.952035,33.048677],[102.952143,33.048753],[102.953077,33.049407],[102.954887,33.050447],[102.955224,33.051136],[102.954598,33.052421],[102.954577,33.052464],[102.954345,33.05294],[102.95424,33.053644],[102.954164,33.054391],[102.954105,33.054534],[102.954077,33.054667],[102.954007,33.054911],[102.953928,33.055083],[102.953828,33.055234],[102.953817,33.055363],[102.953789,33.055517],[102.953701,33.055665],[102.953639,33.05583],[102.95362,33.056019],[102.95363,33.056188],[102.953632,33.056324],[102.953616,33.056485],[102.953635,33.056631],[102.953696,33.056813],[102.953668,33.056932],[102.953601,33.057025],[102.953547,33.057108],[102.953527,33.057188],[102.953518,33.057226],[102.953515,33.057373],[102.953482,33.057455],[102.953438,33.057575],[102.953429,33.057599],[102.953401,33.057727],[102.953395,33.057754],[102.953401,33.058019],[102.953426,33.05914],[102.953439,33.059687],[102.953557,33.060173],[102.953721,33.060844],[102.954309,33.062117],[102.954944,33.063279],[102.955595,33.063773],[102.956519,33.063899],[102.957133,33.064058],[102.958356,33.064598],[102.959416,33.064541],[102.960792,33.064192],[102.962617,33.063516],[102.963865,33.06317],[102.96396,33.063143],[102.96426,33.06306],[102.965237,33.062816],[102.966028,33.06294],[102.966722,33.063472],[102.967116,33.06407],[102.967168,33.06407],[102.967212,33.06407],[102.967249,33.064082],[102.967288,33.064113],[102.9673,33.064167],[102.967297,33.064203],[102.96728,33.064215],[102.967228,33.064239],[102.967489,33.064636],[102.967934,33.065222],[102.968175,33.065539],[102.968292,33.06621],[102.968286,33.066451],[102.96828,33.06672],[102.968278,33.06679],[102.968298,33.066793],[102.968312,33.066798],[102.968323,33.066807],[102.96833,33.066818],[102.968346,33.066844],[102.968384,33.066858],[102.968404,33.066859],[102.968424,33.06686],[102.968462,33.066864],[102.96848,33.066872],[102.96849,33.066884],[102.968491,33.066904],[102.968473,33.066925],[102.968445,33.066929],[102.968403,33.066932],[102.96835,33.066937],[102.968321,33.066945],[102.968296,33.066961],[102.968281,33.066974],[102.96827,33.066993],[102.968269,33.067009],[102.968271,33.067024],[102.968278,33.067036],[102.96829,33.067047],[102.968302,33.067056],[102.968321,33.067071],[102.968356,33.067091],[102.968372,33.067101],[102.968392,33.067112],[102.968426,33.067137],[102.968447,33.067161],[102.968454,33.06718],[102.968445,33.067198],[102.968411,33.067212],[102.968398,33.067212],[102.968356,33.06722],[102.96835,33.067222],[102.968337,33.067232],[102.968324,33.06725],[102.968318,33.067277],[102.968322,33.0673],[102.968335,33.067312],[102.968363,33.067332],[102.968384,33.067336],[102.968404,33.067423],[102.968477,33.067736],[102.968553,33.067811],[102.969168,33.068416],[102.969685,33.068683],[102.969735,33.068709],[102.969749,33.068733],[102.969759,33.068742],[102.969795,33.068764],[102.969825,33.068783],[102.969864,33.068801],[102.969896,33.06882],[102.96992,33.068804],[102.969985,33.068838],[102.970433,33.069069],[102.971306,33.06967],[102.971649,33.069906],[102.971661,33.069933],[102.972195,33.071104],[102.972578,33.072109],[102.972614,33.072204],[102.972621,33.072223],[102.972648,33.072262],[102.972665,33.072291],[102.972677,33.072314],[102.972691,33.072337],[102.972705,33.072352],[102.972723,33.072365],[102.972746,33.07238],[102.972775,33.072413],[102.972803,33.072437],[102.972827,33.072459],[102.972831,33.072473],[102.972835,33.072484],[102.972837,33.072503],[102.972834,33.072516],[102.972809,33.072543],[102.972789,33.072563],[102.972789,33.072577],[102.972797,33.072602],[102.972803,33.072619],[102.972833,33.072668],[102.97286,33.072701],[102.972888,33.072742],[102.97291,33.072771],[102.972938,33.072801],[102.972978,33.072833],[102.972995,33.072855],[102.973046,33.072884],[102.973066,33.072893],[102.973059,33.072937],[102.973106,33.072967],[102.973176,33.073006],[102.973223,33.073032],[102.973267,33.073062],[102.973277,33.073082],[102.973282,33.073118],[102.973292,33.073146],[102.973322,33.073165],[102.97335,33.073177],[102.973391,33.07319],[102.973423,33.073214],[102.973442,33.07323],[102.973454,33.073252],[102.973466,33.073296],[102.973482,33.073314],[102.973529,33.073341],[102.973559,33.073361],[102.973583,33.073397],[102.973606,33.073428],[102.973636,33.073459],[102.97366,33.073485],[102.973776,33.073635],[102.973819,33.073704],[102.973849,33.07375],[102.973854,33.073756],[102.973904,33.07375],[102.97394,33.073796],[102.973967,33.07383],[102.973998,33.073857],[102.974025,33.073888],[102.974102,33.073961],[102.974151,33.074007],[102.974187,33.074036],[102.974217,33.074074],[102.974257,33.074135],[102.974299,33.074177],[102.974345,33.074214],[102.974391,33.074242],[102.974457,33.074265],[102.974485,33.07427],[102.974528,33.07428],[102.974546,33.074304],[102.974551,33.074329],[102.97453,33.074342],[102.9745,33.074373],[102.974482,33.074397],[102.974482,33.074409],[102.974503,33.074424],[102.974517,33.074424],[102.97453,33.074424],[102.974557,33.074417],[102.974592,33.074408],[102.974623,33.074427],[102.974632,33.074449],[102.97463,33.074478],[102.974618,33.0745],[102.974619,33.074523],[102.974631,33.074543],[102.974665,33.074558],[102.97468,33.074559],[102.974696,33.074559],[102.974716,33.074547],[102.974725,33.074528],[102.974725,33.0745],[102.974726,33.074486],[102.974729,33.074471],[102.974754,33.07446],[102.974774,33.074456],[102.974815,33.074466],[102.974832,33.074474],[102.974852,33.074486],[102.97486,33.074507],[102.974866,33.074527],[102.974873,33.074544],[102.974891,33.07456],[102.974915,33.074575],[102.974927,33.074586],[102.974935,33.074608],[102.974944,33.074623],[102.974963,33.074639],[102.974976,33.074656],[102.974975,33.074673],[102.974957,33.074692],[102.974947,33.074706],[102.974947,33.074717],[102.974953,33.074723],[102.974965,33.074727],[102.97498,33.074728],[102.974994,33.074725],[102.975017,33.074722],[102.975035,33.074711],[102.975037,33.074695],[102.97504,33.074675],[102.975047,33.074666],[102.975082,33.074672],[102.975101,33.074697],[102.97511,33.074721],[102.975128,33.074737],[102.975135,33.07474],[102.975155,33.07475],[102.975167,33.074772],[102.975148,33.074797],[102.975138,33.074808],[102.975132,33.074814],[102.975117,33.074839],[102.975114,33.07485],[102.975118,33.074861],[102.975127,33.074869],[102.975139,33.074872],[102.975161,33.074879],[102.975185,33.074894],[102.975209,33.074905],[102.97523,33.074922],[102.975258,33.074939],[102.975287,33.07496],[102.975302,33.074971],[102.975311,33.074994],[102.975308,33.075013],[102.975285,33.075026],[102.975268,33.075031],[102.975247,33.075035],[102.975233,33.07504],[102.975231,33.075048],[102.975234,33.07506],[102.975243,33.075066],[102.975253,33.075068],[102.975269,33.075069],[102.97529,33.075067],[102.975329,33.075072],[102.975356,33.075084],[102.975399,33.075081],[102.975412,33.075079],[102.975424,33.075074],[102.975457,33.075066],[102.975472,33.075075],[102.975479,33.075096],[102.975493,33.075107],[102.975505,33.075119],[102.975504,33.075149],[102.975497,33.075178],[102.975475,33.0752],[102.975454,33.075205],[102.975431,33.075194],[102.975432,33.075175],[102.975438,33.075152],[102.975437,33.075143],[102.975418,33.075143],[102.975409,33.075149],[102.975405,33.075162],[102.975405,33.07518],[102.975408,33.075202],[102.975409,33.075212],[102.975411,33.075229],[102.975412,33.075243],[102.97541,33.075255],[102.975403,33.075271],[102.975456,33.075352],[102.975708,33.075731],[102.975784,33.07606],[102.97587,33.076434],[102.9759,33.076565],[102.975931,33.076617],[102.975964,33.076668],[102.975994,33.076703],[102.976014,33.076721],[102.976044,33.076726],[102.976075,33.076731],[102.976139,33.076753],[102.976173,33.076777],[102.976197,33.076794],[102.976206,33.07682],[102.976207,33.076849],[102.976188,33.07689],[102.976152,33.076913],[102.976124,33.076942],[102.97611,33.076969],[102.976124,33.076997],[102.976134,33.077043],[102.976141,33.077065],[102.97615,33.077096],[102.976148,33.077127],[102.976137,33.077151],[102.976115,33.077176],[102.976067,33.077204],[102.976021,33.077226],[102.975987,33.077236],[102.975936,33.077246],[102.975916,33.077252],[102.975882,33.07774],[102.976311,33.078305],[102.977408,33.078583],[102.97755,33.078663],[102.978148,33.079003],[102.978661,33.079571],[102.978966,33.079908],[102.979567,33.080661],[102.980294,33.081676],[102.981612,33.081958],[102.982003,33.082224],[102.982649,33.082903],[102.983512,33.083772],[102.984031,33.084226],[102.984499,33.085014],[102.985049,33.086026],[102.985132,33.086162],[102.985363,33.086542],[102.985606,33.086943],[102.985688,33.087077],[102.985791,33.087132],[102.985844,33.087097],[102.985954,33.087109],[102.986004,33.08717],[102.986062,33.087192],[102.986151,33.087228],[102.986235,33.087244],[102.986326,33.087276],[102.986372,33.087311],[102.986403,33.08737],[102.986421,33.087408],[102.986387,33.087446],[102.98656,33.087537],[102.986654,33.087565],[102.987126,33.087706],[102.987181,33.087722],[102.987238,33.087739],[102.987875,33.08793],[102.988353,33.088182],[102.98871,33.08837],[102.988824,33.08843],[102.988965,33.088505],[102.988999,33.088951],[102.988992,33.089262],[102.988989,33.08941],[102.989081,33.089449],[102.989128,33.089493],[102.989139,33.089546],[102.989134,33.089602],[102.989111,33.089673],[102.989084,33.08971],[102.989027,33.089721],[102.988982,33.089715],[102.988919,33.08973],[102.988867,33.089752],[102.988813,33.08978],[102.988806,33.089824],[102.988826,33.089876],[102.98889,33.089939],[102.988927,33.089973],[102.988983,33.090017],[102.989034,33.090084],[102.989064,33.090145],[102.98911,33.090215],[102.989172,33.090273],[102.989269,33.090339],[102.989364,33.090465],[102.989491,33.090631],[102.990656,33.091231],[102.990756,33.091283],[102.990985,33.092048],[102.991003,33.092105],[102.991231,33.092496],[102.991257,33.092503],[102.991334,33.092519],[102.99138,33.092545],[102.99138,33.09259],[102.991339,33.092682],[102.99128,33.092725],[102.991255,33.092758],[102.991244,33.092806],[102.99125,33.092842],[102.991264,33.092873],[102.991287,33.092873],[102.99143,33.092838],[102.991706,33.093312],[102.991724,33.093342],[102.991725,33.093344],[102.991776,33.093355],[102.99183,33.093432],[102.991842,33.093494],[102.991864,33.093598],[102.991904,33.093685],[102.991958,33.093747],[102.992026,33.093815],[102.992094,33.093871],[102.992155,33.093915],[102.992219,33.093995],[102.992241,33.094058],[102.992209,33.094111],[102.992198,33.094183],[102.992208,33.094264],[102.992217,33.094338],[102.99226,33.094404],[102.992323,33.094442],[102.992435,33.094488],[102.992556,33.094709],[102.992569,33.094733],[102.992645,33.094872],[102.992657,33.094894],[102.992714,33.094999],[102.992724,33.095018],[102.992778,33.095116],[102.992791,33.09514],[102.992882,33.095307],[102.992893,33.095326],[102.992898,33.095336],[102.992957,33.095443],[102.992963,33.095448],[102.992987,33.095468],[102.993024,33.095499],[102.993059,33.095529],[102.993073,33.09554],[102.993191,33.09555],[102.993223,33.095552],[102.993248,33.09558],[102.993257,33.095624],[102.993266,33.095702],[102.993371,33.09579],[102.993453,33.095858],[102.993528,33.095921],[102.993551,33.09594],[102.993953,33.096277],[102.994552,33.097104],[102.995163,33.097344],[102.99534,33.097414],[102.995491,33.097303],[102.995513,33.097287],[102.995616,33.097212],[102.995789,33.097086],[102.995836,33.097096],[102.996039,33.097137],[102.996049,33.097139],[102.996102,33.09715],[102.99658,33.097248],[102.996695,33.097323],[102.996696,33.097265],[102.996695,33.097258],[102.996755,33.097256],[102.996838,33.097266],[102.996882,33.097285],[102.996913,33.097317],[102.996921,33.097354],[102.996911,33.097401],[102.996895,33.097455],[102.996909,33.097464],[102.997102,33.097591],[102.997232,33.097846],[102.99729,33.097841],[102.997343,33.097873],[102.997366,33.097918],[102.997368,33.097952],[102.99735,33.098004],[102.997308,33.098053],[102.997269,33.098059],[102.997233,33.09805],[102.997188,33.098032],[102.997137,33.098023],[102.997117,33.098035],[102.997103,33.098058],[102.997106,33.098094],[102.997135,33.098114],[102.997192,33.098145],[102.997242,33.098183],[102.997264,33.098226],[102.997264,33.098252],[102.997253,33.09827],[102.997227,33.098283],[102.997205,33.098296],[102.997209,33.098322],[102.997229,33.098339],[102.997277,33.09835],[102.997257,33.09855],[102.997256,33.098559],[102.997261,33.098615],[102.997271,33.098733],[102.997283,33.098875],[102.997206,33.098814],[102.997176,33.098787],[102.997123,33.098759],[102.99708,33.098754],[102.997051,33.098769],[102.997049,33.098811],[102.997095,33.098853],[102.997173,33.098898],[102.997243,33.098937],[102.997298,33.098966],[102.997385,33.099005],[102.997433,33.099035],[102.997437,33.099062],[102.997408,33.099089],[102.997359,33.099106],[102.997245,33.09913],[102.997172,33.099122],[102.99712,33.099096],[102.997095,33.099069],[102.997072,33.099044],[102.997038,33.099053],[102.997021,33.099073],[102.997039,33.099118],[102.997092,33.099162],[102.997137,33.099183],[102.997202,33.099217],[102.997226,33.099245],[102.997236,33.099284],[102.99724,33.099318],[102.997229,33.099362],[102.997202,33.099375],[102.997156,33.09938],[102.997122,33.099373],[102.9971,33.099379],[102.997073,33.099441],[102.997065,33.09949],[102.997027,33.099529],[102.996954,33.099554],[102.996924,33.099588],[102.996922,33.099634],[102.996923,33.099675],[102.996888,33.099719],[102.99685,33.09973],[102.996832,33.099749],[102.996854,33.099772],[102.99689,33.099779],[102.996915,33.099769],[102.996949,33.099732],[102.996991,33.099665],[102.997023,33.099625],[102.997057,33.099629],[102.997096,33.09965],[102.997132,33.099661],[102.997193,33.099649],[102.99725,33.099618],[102.997295,33.099615],[102.997341,33.099643],[102.997363,33.099695],[102.997361,33.099735],[102.997318,33.09976],[102.997232,33.099787],[102.997161,33.099794],[102.99711,33.09981],[102.997119,33.099837],[102.997156,33.099868],[102.997185,33.099874],[102.997206,33.099869],[102.997239,33.099837],[102.997281,33.099804],[102.997319,33.099782],[102.997366,33.099756],[102.997403,33.09975],[102.997437,33.099751],[102.997473,33.099767],[102.997485,33.099807],[102.99749,33.099873],[102.997499,33.099931],[102.997508,33.09996],[102.997532,33.100005],[102.99756,33.100042],[102.997607,33.100056],[102.997651,33.100049],[102.9978,33.099964],[102.997858,33.099933],[102.997886,33.099945],[102.997924,33.099988],[102.997929,33.100036],[102.997922,33.100064],[102.997913,33.10008],[102.997882,33.10011],[102.997876,33.100149],[102.997883,33.100164],[102.997911,33.100193],[102.997955,33.100218],[102.998054,33.100247],[102.99809,33.100244],[102.998117,33.100225],[102.998153,33.100255],[102.998188,33.100283],[102.998445,33.100478],[102.998839,33.100777],[102.999123,33.101199],[102.999213,33.101333],[102.999221,33.101345],[102.999211,33.101419],[102.999219,33.10149],[102.99924,33.101526],[102.999299,33.101548],[102.999332,33.101555],[102.999365,33.10156],[102.999383,33.101556],[102.999431,33.101555],[102.99948,33.101555],[102.99955,33.101557],[102.999567,33.101567],[102.99956,33.101582],[102.999525,33.101596],[102.999425,33.10163],[102.999457,33.101658],[102.99957,33.101757],[102.999784,33.101944],[103.000106,33.102294],[103.000462,33.10268],[103.000611,33.103062],[103.000655,33.103075],[103.000689,33.103106],[103.000712,33.103138],[103.000733,33.103183],[103.000763,33.103218],[103.000804,33.103233],[103.000831,33.103253],[103.000861,33.103282],[103.000853,33.103309],[103.000822,33.103328],[103.000788,33.10334],[103.00074,33.103394],[103.000745,33.103408],[103.000818,33.103578],[103.000854,33.103663],[103.001029,33.104074],[103.001466,33.104616],[103.00167,33.104724],[103.001836,33.104811],[103.002321,33.104818],[103.002523,33.104738],[103.002571,33.104718],[103.00256,33.104701],[103.002561,33.104674],[103.002573,33.104646],[103.002598,33.10461],[103.002622,33.104577],[103.002643,33.104541],[103.002658,33.104529],[103.002673,33.104527],[103.002698,33.104549],[103.002706,33.104574],[103.002712,33.104598],[103.002719,33.104615],[103.002728,33.104625],[103.002753,33.10463],[103.002788,33.104621],[103.002821,33.104602],[103.002833,33.104573],[103.002837,33.104544],[103.002842,33.104515],[103.002854,33.104493],[103.002885,33.104484],[103.002919,33.104494],[103.002962,33.104516],[103.002983,33.104539],[103.00299,33.104569],[103.003026,33.104565],[103.003063,33.104554],[103.003089,33.104541],[103.003113,33.104531],[103.003137,33.104528],[103.003157,33.104528],[103.003185,33.104535],[103.003215,33.104544],[103.003236,33.104542],[103.003675,33.104494],[103.003857,33.104717],[103.00381,33.105126],[103.003771,33.105182],[103.003661,33.105336],[103.003653,33.105348],[103.003608,33.105411],[103.003668,33.105385],[103.003688,33.105378],[103.003733,33.105374],[103.003761,33.105384],[103.003766,33.105404],[103.003751,33.105424],[103.003718,33.105444],[103.003664,33.105459],[103.003608,33.105478],[103.003584,33.105493],[103.003553,33.105529],[103.003535,33.105556],[103.003519,33.105584],[103.003495,33.105613],[103.003465,33.10564],[103.003447,33.105681],[103.003393,33.105798],[103.003386,33.105814],[103.003347,33.105898],[103.003344,33.105905],[103.003415,33.106097],[103.003428,33.106132],[103.003433,33.106145],[103.003433,33.106145],[103.003507,33.106343],[103.003516,33.106369],[103.003487,33.10638],[103.00347,33.106374],[103.003449,33.106364],[103.003438,33.106356],[103.003432,33.106401],[103.003435,33.106458],[103.003453,33.106491],[103.003558,33.10652],[103.003708,33.106527],[103.003742,33.106542],[103.003747,33.10657],[103.003729,33.106607],[103.003699,33.10671],[103.003699,33.106752],[103.003701,33.106825],[103.003722,33.106883],[103.003756,33.106942],[103.003803,33.106974],[103.003907,33.106978],[103.004004,33.106968],[103.004061,33.106946],[103.004131,33.106907],[103.004186,33.106848],[103.004233,33.106786],[103.004308,33.106712],[103.004325,33.106664],[103.004345,33.106648],[103.00437,33.106652],[103.004399,33.106657],[103.00444,33.10668],[103.004461,33.106699],[103.004482,33.106748],[103.004496,33.106799],[103.004506,33.106828],[103.004519,33.106844],[103.00455,33.106869],[103.004616,33.106874],[103.004659,33.106866],[103.004743,33.106819],[103.00483,33.106814],[103.004875,33.10685],[103.004908,33.10688],[103.004916,33.106908],[103.004904,33.106996],[103.004934,33.10703],[103.004985,33.107085],[103.005013,33.107163],[103.004992,33.107208],[103.004963,33.107274],[103.004968,33.107329],[103.004978,33.107358],[103.005021,33.107416],[103.005063,33.107478],[103.005115,33.10752],[103.005172,33.107558],[103.005246,33.107583],[103.005359,33.107587],[103.005458,33.107614],[103.005522,33.107672],[103.005559,33.107681],[103.005603,33.10769],[103.005652,33.107725],[103.005677,33.10776],[103.005706,33.107784],[103.005742,33.107806],[103.00579,33.107832],[103.005847,33.107851],[103.005915,33.107876],[103.005961,33.107893],[103.005998,33.107912],[103.006019,33.107956],[103.006044,33.107994],[103.006084,33.108065],[103.006087,33.108071],[103.006123,33.108138],[103.006175,33.108189],[103.006197,33.108208],[103.006188,33.108258],[103.006154,33.108294],[103.006129,33.108331],[103.006118,33.108386],[103.006117,33.108444],[103.006144,33.108498],[103.006168,33.108517],[103.00619,33.108526],[103.006234,33.108528],[103.006266,33.108524],[103.006357,33.108508],[103.00638,33.108531],[103.006379,33.10856],[103.006369,33.108576],[103.006348,33.108603],[103.006355,33.10864],[103.006369,33.10867],[103.006384,33.108684],[103.00641,33.108697],[103.006518,33.108739],[103.006557,33.108762],[103.006601,33.108786],[103.006632,33.108787],[103.006687,33.108786],[103.006695,33.10878],[103.006728,33.108793],[103.006768,33.10882],[103.006804,33.108836],[103.006842,33.108845],[103.006822,33.108886],[103.006861,33.108955],[103.006867,33.108965],[103.006869,33.108988],[103.006866,33.10903],[103.006872,33.109076],[103.006899,33.109105],[103.006951,33.109125],[103.00699,33.109143],[103.007032,33.109168],[103.007074,33.109199],[103.007127,33.109235],[103.00719,33.109263],[103.007251,33.109271],[103.007288,33.109267],[103.007331,33.109251],[103.007364,33.109229],[103.007389,33.109207],[103.007427,33.10919],[103.007481,33.109181],[103.007532,33.109172],[103.007569,33.109152],[103.0076,33.109133],[103.00762,33.109107],[103.007631,33.109081],[103.00765,33.109055],[103.007681,33.109035],[103.00774,33.109025],[103.007767,33.109031],[103.007805,33.109058],[103.007843,33.109091],[103.007875,33.109118],[103.007899,33.109136],[103.007941,33.109158],[103.007972,33.109163],[103.008006,33.109164],[103.008024,33.109151],[103.008034,33.10913],[103.008035,33.109108],[103.008104,33.109123],[103.008133,33.109129],[103.008298,33.10914],[103.00854,33.109156],[103.008569,33.109158],[103.008768,33.109171],[103.008904,33.10925],[103.008943,33.109273],[103.0091,33.109365],[103.009122,33.109384],[103.00918,33.109435],[103.009376,33.109607],[103.00943,33.109653],[103.009375,33.109836],[103.00936,33.109883],[103.009268,33.110186],[103.009288,33.110682],[103.009292,33.110784],[103.009659,33.111186],[103.009682,33.11121],[103.009723,33.111256],[103.00973,33.111263],[103.009893,33.111342],[103.009935,33.111325],[103.01,33.111311],[103.010083,33.111311],[103.010156,33.111314],[103.010265,33.11135],[103.010366,33.111375],[103.010445,33.111369],[103.010554,33.111331],[103.010665,33.111322],[103.010739,33.111335],[103.010801,33.111368],[103.010876,33.111395],[103.010967,33.111397],[103.011032,33.111365],[103.011101,33.111305],[103.011155,33.111273],[103.01121,33.111226],[103.011258,33.111167],[103.011289,33.111109],[103.011292,33.111046],[103.011297,33.110965],[103.011296,33.110948],[103.011294,33.110872],[103.011289,33.110846],[103.011283,33.110811],[103.011261,33.110768],[103.011244,33.110724],[103.011261,33.110682],[103.01129,33.110681],[103.011367,33.110686],[103.011415,33.110684],[103.011445,33.110668],[103.01145,33.110631],[103.01145,33.110589],[103.011445,33.110502],[103.011426,33.110441],[103.011399,33.110405],[103.011351,33.110362],[103.011326,33.110322],[103.011289,33.110261],[103.011244,33.110198],[103.011191,33.110137],[103.011166,33.110087],[103.011161,33.110039],[103.01121,33.110019],[103.011342,33.110021],[103.01139,33.11003],[103.011419,33.110059],[103.011431,33.110094],[103.011452,33.110135],[103.011465,33.110176],[103.011465,33.110202],[103.011477,33.110236],[103.011494,33.110262],[103.011517,33.110275],[103.011539,33.110286],[103.011574,33.110294],[103.011618,33.110295],[103.011663,33.110288],[103.011723,33.110264],[103.01176,33.110249],[103.011802,33.110238],[103.011854,33.110239],[103.011867,33.110243],[103.011884,33.11025],[103.011908,33.110262],[103.011949,33.110279],[103.011996,33.11031],[103.012034,33.110329],[103.012073,33.110335],[103.012119,33.110336],[103.01215,33.110323],[103.012179,33.110306],[103.012215,33.110292],[103.012249,33.110307],[103.012279,33.110326],[103.012294,33.110346],[103.012315,33.110363],[103.01233,33.110377],[103.012354,33.110384],[103.012387,33.110395],[103.012399,33.110411],[103.012417,33.110456],[103.012438,33.110483],[103.01246,33.110524],[103.012476,33.110539],[103.012514,33.110544],[103.012549,33.110541],[103.012582,33.110521],[103.012608,33.11049],[103.012624,33.110462],[103.012635,33.110433],[103.012645,33.110402],[103.012647,33.110383],[103.012651,33.110309],[103.012655,33.110247],[103.012664,33.110181],[103.012681,33.110114],[103.012711,33.110064],[103.012754,33.110042],[103.012834,33.110054],[103.012879,33.11008],[103.01294,33.110128],[103.012976,33.110158],[103.013011,33.110179],[103.013046,33.110188],[103.013076,33.11019],[103.013119,33.110184],[103.013163,33.110173],[103.013213,33.110147],[103.013263,33.110121],[103.013321,33.110092],[103.013499,33.110002],[103.013621,33.110004],[103.014019,33.11001],[103.014171,33.110012],[103.014503,33.110238],[103.01452,33.110348],[103.01456,33.110604],[103.014577,33.110714],[103.014617,33.110722],[103.01463,33.110731],[103.014637,33.110752],[103.014632,33.110773],[103.014622,33.110794],[103.014613,33.110827],[103.014606,33.110852],[103.014608,33.110882],[103.014616,33.110908],[103.014622,33.11093],[103.014623,33.11095],[103.014608,33.11097],[103.014606,33.110971],[103.01461,33.111045],[103.014627,33.111373],[103.014501,33.112],[103.014595,33.112058],[103.014631,33.112079],[103.014639,33.112084],[103.01468,33.112056],[103.014699,33.112052],[103.01473,33.112067],[103.01474,33.112083],[103.014753,33.112105],[103.01476,33.112128],[103.014799,33.112181],[103.014803,33.11219],[103.01483,33.112213],[103.014869,33.112235],[103.014891,33.112254],[103.0149,33.112265],[103.014899,33.112282],[103.014883,33.112291],[103.014869,33.112315],[103.01487,33.112339],[103.014885,33.112356],[103.014915,33.112368],[103.014983,33.11238],[103.015029,33.112371],[103.015072,33.112441],[103.015159,33.112584],[103.015171,33.112604],[103.015233,33.112705],[103.015147,33.113207],[103.015495,33.113537],[103.015586,33.113623],[103.015586,33.113623],[103.015607,33.113647],[103.015956,33.114065],[103.015987,33.114101],[103.016025,33.114142],[103.016091,33.114214],[103.016252,33.114387],[103.016462,33.114613],[103.016481,33.114728],[103.016576,33.115299],[103.016578,33.115309],[103.016582,33.115332],[103.016593,33.115402],[103.016594,33.115406],[103.016597,33.115423],[103.016625,33.115571],[103.016629,33.115591],[103.016629,33.115595],[103.016641,33.115655],[103.016642,33.11566],[103.016644,33.115674],[103.016688,33.11591],[103.016692,33.115932],[103.016736,33.116165],[103.01674,33.116186],[103.016794,33.116475],[103.017154,33.116731],[103.017179,33.116749],[103.017276,33.116817],[103.017298,33.116833],[103.017383,33.116893],[103.017663,33.116975],[103.017705,33.116953],[103.017729,33.116943],[103.017775,33.11694],[103.017807,33.116952],[103.01784,33.116968],[103.01788,33.116993],[103.017896,33.117014],[103.01791,33.117046],[103.018059,33.11709],[103.018113,33.117106],[103.018131,33.117111],[103.018339,33.117171],[103.018373,33.117162],[103.01848,33.11713],[103.018576,33.117134],[103.018644,33.117219],[103.018717,33.117248],[103.018781,33.117259],[103.01886,33.117251],[103.018922,33.117232],[103.018993,33.117217],[103.019029,33.117227],[103.019063,33.117257],[103.01909,33.117324],[103.019136,33.117383],[103.019171,33.117423],[103.019227,33.117455],[103.019271,33.117467],[103.01934,33.117468],[103.01941,33.117467],[103.019487,33.117487],[103.019513,33.1175],[103.019526,33.117542],[103.019522,33.117614],[103.019517,33.117658],[103.019664,33.117741],[103.019643,33.117793],[103.019632,33.117834],[103.019632,33.117883],[103.019655,33.117933],[103.019679,33.11796],[103.01971,33.117963],[103.019749,33.117945],[103.019803,33.117915],[103.01985,33.117903],[103.019911,33.117897],[103.019928,33.117944],[103.019958,33.118024],[103.019978,33.118007],[103.019996,33.11798],[103.020016,33.117962],[103.020043,33.117953],[103.020088,33.11795],[103.020128,33.117959],[103.020157,33.117976],[103.02019,33.117999],[103.020206,33.118021],[103.020221,33.118044],[103.020234,33.11808],[103.020226,33.118118],[103.020222,33.118142],[103.020238,33.118171],[103.02026,33.118182],[103.020298,33.118188],[103.020332,33.118208],[103.020321,33.118223],[103.020284,33.118238],[103.020264,33.11825],[103.020241,33.118255],[103.020212,33.118261],[103.020172,33.118265],[103.020138,33.11826],[103.020111,33.118242],[103.020092,33.118216],[103.020085,33.11819],[103.020078,33.118171],[103.020058,33.118124],[103.02004,33.118113],[103.020011,33.1181],[103.019985,33.118097],[103.020003,33.118145],[103.020047,33.118264],[103.020116,33.118448],[103.020461,33.118531],[103.020674,33.118582],[103.021023,33.118707],[103.021082,33.118727],[103.02123,33.11878],[103.021264,33.118818],[103.021668,33.119259],[103.021699,33.119563],[103.021709,33.119658],[103.021755,33.119696],[103.021771,33.119717],[103.0218,33.119749],[103.021803,33.119782],[103.021798,33.119809],[103.02179,33.119836],[103.021779,33.119871],[103.02177,33.119906],[103.021761,33.119946],[103.02174,33.119989],[103.021719,33.120008],[103.021712,33.120032],[103.021712,33.120054],[103.021732,33.120073],[103.021747,33.120079],[103.02175,33.120118],[103.02175,33.120128],[103.021751,33.120141],[103.021759,33.120236],[103.021818,33.120291],[103.021938,33.120401],[103.022415,33.120837],[103.022528,33.120941],[103.022644,33.121014],[103.022688,33.121041],[103.022719,33.12106],[103.022731,33.121077],[103.022764,33.121121],[103.022797,33.121165],[103.022819,33.121194],[103.022852,33.121206],[103.022891,33.121212],[103.023045,33.121264],[103.023128,33.121265],[103.023429,33.12127],[103.023567,33.121273],[103.023582,33.121267],[103.023599,33.121261],[103.023618,33.121256],[103.023699,33.121247],[103.023802,33.121254],[103.023859,33.121263],[103.024107,33.121217],[103.024118,33.121215],[103.024267,33.121187],[103.024305,33.121197],[103.024323,33.121202],[103.024347,33.121204],[103.024391,33.121216],[103.024421,33.121228],[103.024436,33.121242],[103.024437,33.121252],[103.024436,33.121282],[103.024428,33.121298],[103.024411,33.121327],[103.024412,33.121345],[103.024417,33.121366],[103.024447,33.12138],[103.024487,33.121386],[103.024533,33.121385],[103.024584,33.121375],[103.024615,33.121359],[103.024641,33.121332],[103.024656,33.121303],[103.024667,33.12127],[103.024676,33.121243],[103.02469,33.121208],[103.024697,33.121179],[103.024707,33.12115],[103.024712,33.121132],[103.024706,33.121106],[103.024694,33.121069],[103.024691,33.121055],[103.024673,33.121016],[103.024667,33.120986],[103.024668,33.120965],[103.024707,33.120954],[103.024752,33.120978],[103.024784,33.121002],[103.02483,33.121043],[103.024841,33.12108],[103.024842,33.1211],[103.024838,33.12112],[103.024832,33.121139],[103.024827,33.121157],[103.024818,33.121179],[103.02481,33.1212],[103.02481,33.12122],[103.024813,33.121242],[103.024828,33.121258],[103.024857,33.121269],[103.024913,33.12128],[103.024953,33.12128],[103.024998,33.121276],[103.025021,33.121267],[103.025046,33.121243],[103.025058,33.121226],[103.025074,33.121189],[103.025083,33.121166],[103.02508,33.121149],[103.025077,33.121132],[103.025074,33.121114],[103.02507,33.121097],[103.025068,33.12108],[103.025069,33.12106],[103.025233,33.121048],[103.025968,33.120996],[103.026047,33.121012],[103.027122,33.121234],[103.027291,33.121322],[103.027936,33.121656],[103.028157,33.122108],[103.028165,33.122123],[103.028195,33.122184],[103.028227,33.12225],[103.028294,33.122386],[103.028276,33.123172],[103.028262,33.123248],[103.02826,33.123263],[103.028233,33.123408],[103.028224,33.123457],[103.028215,33.123508],[103.028197,33.12361],[103.028191,33.123643],[103.02828,33.123744],[103.028341,33.123746],[103.028413,33.123757],[103.028481,33.123776],[103.028525,33.123794],[103.028573,33.123817],[103.028609,33.123843],[103.028641,33.123869],[103.028654,33.123896],[103.028675,33.123929],[103.028697,33.123947],[103.028743,33.123974],[103.028931,33.124001],[103.029399,33.123982],[103.029492,33.123979],[103.029903,33.124017],[103.030231,33.124303],[103.030184,33.124324],[103.030172,33.124341],[103.03015,33.12438],[103.03015,33.124395],[103.030169,33.124422],[103.030176,33.124426],[103.0302,33.124441],[103.030236,33.124452],[103.030261,33.124464],[103.030276,33.12446],[103.030311,33.124589],[103.030332,33.124666],[103.030344,33.124711],[103.030371,33.124811],[103.030514,33.125128],[103.030848,33.125228],[103.031089,33.125104],[103.031158,33.125069],[103.031265,33.125014],[103.031688,33.124485],[103.032065,33.124366],[103.032677,33.124505],[103.032726,33.124516],[103.032809,33.124535],[103.032961,33.124553],[103.033704,33.124643],[103.034095,33.12459],[103.034243,33.12457],[103.034517,33.124532],[103.034525,33.124553],[103.034536,33.124568],[103.034593,33.124613],[103.034631,33.124633],[103.034661,33.124638],[103.034692,33.124636],[103.034729,33.124615],[103.034762,33.124594],[103.034789,33.124577],[103.034813,33.124572],[103.034847,33.124581],[103.034875,33.124596],[103.034905,33.124603],[103.034955,33.1246],[103.034989,33.124583],[103.035013,33.124569],[103.035031,33.124554],[103.035045,33.124538],[103.035058,33.124523],[103.03507,33.124501],[103.03508,33.124475],[103.035076,33.124449],[103.035065,33.124432],[103.035036,33.124404],[103.035004,33.124382],[103.034983,33.124362],[103.034979,33.124341],[103.034987,33.12433],[103.035002,33.124321],[103.035036,33.124313],[103.03506,33.124312],[103.035083,33.124318],[103.035103,33.124328],[103.035114,33.124342],[103.035128,33.124365],[103.03514,33.124393],[103.035152,33.12442],[103.035161,33.124444],[103.035171,33.124467],[103.035184,33.124484],[103.035197,33.124492],[103.035224,33.124505],[103.035254,33.124513],[103.035282,33.124514],[103.035358,33.124509],[103.035388,33.124499],[103.035418,33.124485],[103.035435,33.12447],[103.035452,33.124452],[103.035468,33.124439],[103.03549,33.124428],[103.035528,33.124416],[103.035556,33.124417],[103.035585,33.124433],[103.035582,33.12446],[103.035569,33.124475],[103.035554,33.12448],[103.035521,33.124498],[103.035506,33.124507],[103.035488,33.124515],[103.035468,33.124537],[103.035457,33.124556],[103.03545,33.124578],[103.035469,33.124601],[103.035495,33.124618],[103.035524,33.124635],[103.0356,33.124646],[103.035688,33.124632],[103.035736,33.124615],[103.035986,33.124648],[103.036034,33.124659],[103.036544,33.124782],[103.037105,33.12476],[103.037527,33.124326],[103.037817,33.124189],[103.03798,33.124113],[103.038271,33.124135],[103.038306,33.124154],[103.038333,33.124163],[103.038373,33.124166],[103.038415,33.124173],[103.038444,33.124185],[103.038464,33.124202],[103.038484,33.124223],[103.038517,33.124245],[103.038539,33.124276],[103.038553,33.12431],[103.038555,33.124333],[103.038546,33.124362],[103.038518,33.124381],[103.038501,33.124398],[103.038481,33.124411],[103.038436,33.124434],[103.038411,33.124474],[103.038413,33.124513],[103.038425,33.124551],[103.038448,33.124571],[103.038513,33.124587],[103.038555,33.124586],[103.038605,33.124583],[103.038675,33.124583],[103.038688,33.124588],[103.0387,33.12462],[103.038692,33.124676],[103.03867,33.124712],[103.038656,33.124758],[103.038661,33.124809],[103.038684,33.124856],[103.038519,33.125097],[103.038596,33.125186],[103.038802,33.125427],[103.038847,33.12548],[103.038988,33.125489],[103.039482,33.125521],[103.039545,33.125507],[103.040122,33.125374],[103.040426,33.125425],[103.040679,33.125468],[103.040783,33.125486],[103.040853,33.125498],[103.040882,33.125522],[103.040899,33.125528],[103.040928,33.125534],[103.040956,33.125543],[103.040983,33.125552],[103.041059,33.125596],[103.041078,33.12561],[103.041119,33.125639],[103.041149,33.12566],[103.041236,33.125722],[103.041531,33.125931],[103.041659,33.126276],[103.041739,33.126492],[103.041742,33.126501],[103.041752,33.126598],[103.041773,33.126816],[103.042328,33.127077],[103.04289,33.127023],[103.043303,33.126866],[103.043569,33.126765],[103.043607,33.126751],[103.044159,33.126667],[103.044217,33.126658],[103.044232,33.126656],[103.044241,33.126667],[103.044264,33.126685],[103.044317,33.1267],[103.044374,33.12671],[103.04443,33.126712],[103.044487,33.126698],[103.044542,33.126679],[103.044581,33.126657],[103.044608,33.126639],[103.044652,33.126598],[103.044706,33.126591],[103.044869,33.12657],[103.045201,33.126527],[103.045221,33.126524],[103.045236,33.126522],[103.045671,33.126437],[103.046265,33.126666],[103.04653,33.126727],[103.047009,33.126836],[103.04773,33.126817],[103.047767,33.126806],[103.047826,33.12679],[103.047852,33.126782],[103.047872,33.126786],[103.048322,33.126667],[103.048922,33.126582],[103.048939,33.126581],[103.049416,33.126555],[103.049724,33.126539],[103.049737,33.126538],[103.049821,33.126533],[103.05046,33.126324],[103.051291,33.126053],[103.052377,33.125975],[103.053574,33.125963],[103.054513,33.12582],[103.055303,33.125741],[103.055351,33.125736],[103.0556,33.125711],[103.05683,33.12561],[103.057211,33.125579],[103.058862,33.125353],[103.06006,33.125308],[103.061785,33.125115],[103.062842,33.125031],[103.063434,33.124983],[103.064328,33.125155],[103.065495,33.128226],[103.065744,33.128796],[103.066639,33.128904],[103.067463,33.128854],[103.069706,33.128952],[103.070755,33.128874],[103.072174,33.12899],[103.073453,33.130363],[103.073888,33.131056],[103.073944,33.131144],[103.074176,33.131514],[103.074196,33.131545],[103.074197,33.131547],[103.074212,33.131571],[103.074849,33.133249],[103.074696,33.133199],[103.074522,33.1332],[103.074424,33.133219],[103.074404,33.133266],[103.074413,33.133348],[103.074453,33.133441],[103.074526,33.133497],[103.07465,33.13355],[103.07474,33.13361],[103.074899,33.133736],[103.074911,33.133848],[103.075345,33.134516],[103.075937,33.13484],[103.078205,33.135473],[103.080146,33.135692],[103.081307,33.135615],[103.082047,33.135973],[103.082068,33.135976],[103.082831,33.136079],[103.083459,33.136435],[103.083375,33.136533],[103.083405,33.136675],[103.083504,33.136861],[103.083655,33.137189],[103.083754,33.137388],[103.083836,33.137593],[103.083871,33.137692],[103.083958,33.137849],[103.084016,33.137963],[103.084086,33.138087],[103.084166,33.138143],[103.084226,33.138185],[103.084857,33.139622],[103.085072,33.140113],[103.085129,33.140151],[103.085224,33.140233],[103.085315,33.140379],[103.085354,33.14045],[103.085389,33.140536],[103.085421,33.140686],[103.085444,33.140803],[103.085465,33.141064],[103.085475,33.141297],[103.085472,33.141386],[103.085452,33.141455],[103.085415,33.141544],[103.085437,33.141634],[103.085523,33.141687],[103.085621,33.141764],[103.085691,33.14185],[103.085825,33.14194],[103.085881,33.142075],[103.08591,33.142201],[103.085918,33.142236],[103.08612,33.143117],[103.086857,33.144555],[103.086859,33.144561],[103.08696,33.144758],[103.087435,33.145684],[103.087456,33.145725],[103.08805,33.146885],[103.0884,33.146937],[103.088753,33.147005],[103.089233,33.147077],[103.089483,33.147159],[103.089447,33.147234],[103.089426,33.147278],[103.08918,33.147425],[103.089075,33.14754],[103.088967,33.147656],[103.088687,33.147881],[103.088571,33.147901],[103.088994,33.148728],[103.088996,33.148731],[103.089146,33.149024],[103.08933,33.149383],[103.089382,33.149484],[103.089539,33.14979],[103.089566,33.149843],[103.089882,33.150504],[103.090067,33.150889],[103.090161,33.15174],[103.090206,33.152182],[103.090263,33.152222],[103.090656,33.152496],[103.09081,33.152518],[103.090868,33.152624],[103.090998,33.152814],[103.091019,33.15284],[103.09107,33.152903],[103.091142,33.152998],[103.091137,33.153141],[103.091011,33.153279],[103.090636,33.153434],[103.090474,33.153492],[103.090573,33.153681],[103.090963,33.154428],[103.091088,33.154546],[103.09188,33.155292],[103.092615,33.155869],[103.093157,33.15679],[103.093466,33.157091],[103.093816,33.15743],[103.093868,33.157689],[103.093918,33.157935],[103.093917,33.157965],[103.093906,33.158476],[103.093905,33.158502],[103.093633,33.159001],[103.093483,33.159257],[103.09305,33.159999],[103.092612,33.160511],[103.09225,33.160935],[103.091754,33.161517],[103.09159,33.161708],[103.09157,33.162652],[103.091701,33.163844],[103.091756,33.164341],[103.091772,33.164486],[103.091883,33.165497],[103.091888,33.165537],[103.09182,33.1656],[103.091591,33.165584],[103.091443,33.165639],[103.091433,33.165645],[103.09152,33.165732],[103.091714,33.165909],[103.091808,33.166057],[103.091888,33.166253],[103.092005,33.166424],[103.092069,33.166813],[103.09211,33.167067],[103.092237,33.168139],[103.093096,33.169946],[103.093294,33.170724],[103.093337,33.170894],[103.09339,33.171894],[103.09339,33.171902],[103.093389,33.172164],[103.093385,33.172831],[103.093383,33.173386],[103.093379,33.174136],[103.093372,33.174438],[103.093362,33.174923],[103.093373,33.175038],[103.093422,33.175514],[103.093454,33.175837],[103.093441,33.175994],[103.093354,33.177032],[103.093047,33.17776],[103.092959,33.17797],[103.092198,33.178525],[103.091267,33.179046],[103.090721,33.179352],[103.090478,33.179431],[103.088874,33.179953],[103.087701,33.180367],[103.087594,33.180405],[103.087304,33.180507],[103.087252,33.180526],[103.086823,33.180677],[103.08563,33.181099],[103.085248,33.181439],[103.085214,33.181739],[103.085211,33.181768],[103.085202,33.181848],[103.085297,33.182636],[103.085289,33.182678],[103.085324,33.182877],[103.08527,33.183026],[103.085192,33.183183],[103.08519,33.183189],[103.08515,33.183397],[103.08506,33.183867],[103.085001,33.184174],[103.084871,33.18499],[103.084533,33.185342],[103.084335,33.185548],[103.083301,33.186533],[103.082806,33.187004],[103.082559,33.187315],[103.08246,33.187439],[103.082395,33.187642],[103.082383,33.187679],[103.082203,33.188242],[103.082092,33.188588],[103.082058,33.188692],[103.082014,33.188936],[103.081956,33.189255],[103.081952,33.189281],[103.081888,33.189634],[103.081577,33.190154],[103.081422,33.190414],[103.080772,33.191033],[103.080742,33.191309],[103.080725,33.191473],[103.080745,33.191523],[103.080751,33.191537],[103.080823,33.191713],[103.080836,33.191745],[103.08084,33.191756],[103.080867,33.191821],[103.081351,33.191955],[103.081721,33.191943],[103.081886,33.191938],[103.081899,33.191938],[103.081958,33.191902],[103.082066,33.19181],[103.082112,33.191757],[103.082329,33.19159],[103.082392,33.191547],[103.082398,33.191543],[103.082451,33.191505],[103.082488,33.191492],[103.082516,33.191495],[103.082555,33.191513],[103.082596,33.191542],[103.08263,33.191599],[103.082653,33.191658],[103.082677,33.191719],[103.082695,33.191768],[103.082716,33.191841],[103.082902,33.191816],[103.082976,33.191806],[103.083019,33.1918],[103.083076,33.191792],[103.083448,33.191924],[103.083553,33.19224],[103.082907,33.192671],[103.081883,33.19365],[103.081745,33.194453],[103.081953,33.194776],[103.08197,33.194802],[103.082122,33.195038],[103.082174,33.19506],[103.082217,33.195077],[103.082723,33.195284],[103.082857,33.195266],[103.082981,33.19525],[103.083076,33.195224],[103.083133,33.195194],[103.083142,33.195189],[103.083191,33.195164],[103.083254,33.195153],[103.08331,33.195161],[103.083358,33.195175],[103.083421,33.195206],[103.083501,33.195271],[103.083544,33.195327],[103.083584,33.19541],[103.083614,33.195485],[103.083626,33.195557],[103.083651,33.195652],[103.083755,33.195693],[103.083847,33.195835],[103.083875,33.195878],[103.083887,33.196067],[103.083859,33.196239],[103.083729,33.196406],[103.083663,33.196439],[103.083446,33.196549],[103.083383,33.196555],[103.083266,33.196556],[103.0831,33.196536],[103.082739,33.196522],[103.082591,33.196513],[103.082365,33.196522],[103.082357,33.196523],[103.08222,33.196539],[103.082137,33.196549],[103.081945,33.196573],[103.081785,33.196592],[103.081622,33.196605],[103.081491,33.196606],[103.081331,33.196609],[103.081241,33.1966],[103.081251,33.196628],[103.08127,33.196648],[103.081124,33.196732],[103.081085,33.196772],[103.080943,33.196909],[103.080742,33.197243],[103.080539,33.197582],[103.080587,33.198112],[103.080676,33.198268],[103.080688,33.19829],[103.080789,33.198467],[103.080895,33.198517],[103.081137,33.19863],[103.081144,33.198634],[103.081234,33.198676],[103.081715,33.198582],[103.081888,33.198513],[103.082099,33.198428],[103.08244,33.198291],[103.082489,33.198296],[103.082555,33.198217],[103.08262,33.198143],[103.082697,33.198082],[103.082699,33.198079],[103.082786,33.198074],[103.082865,33.19809],[103.082921,33.198124],[103.082945,33.19817],[103.082961,33.19822],[103.082971,33.198278],[103.082963,33.198341],[103.083068,33.198351],[103.083177,33.198456],[103.083157,33.198507],[103.08312,33.198664],[103.083084,33.198775],[103.083059,33.198872],[103.083042,33.198998],[103.083035,33.199121],[103.083008,33.199311],[103.083005,33.199443],[103.083003,33.199518],[103.082924,33.199781],[103.082907,33.199878],[103.082892,33.199956],[103.082862,33.199997],[103.082788,33.200041],[103.082741,33.20011],[103.082688,33.200272],[103.082583,33.200607],[103.082499,33.200811],[103.082465,33.200898],[103.082445,33.200929],[103.082419,33.200969],[103.082386,33.201009],[103.082332,33.201038],[103.08222,33.201098],[103.082175,33.20115],[103.082164,33.201173],[103.082127,33.201252],[103.082114,33.201326],[103.082113,33.201417],[103.082133,33.201491],[103.082138,33.201509],[103.082184,33.201616],[103.082276,33.20179],[103.082301,33.201884],[103.082302,33.201969],[103.082285,33.202088],[103.082246,33.202247],[103.0822,33.202403],[103.082153,33.202553],[103.082127,33.202666],[103.082116,33.202755],[103.082113,33.202857],[103.082111,33.202899],[103.082112,33.203],[103.082119,33.203097],[103.082164,33.203194],[103.082263,33.203352],[103.082379,33.203491],[103.082453,33.203514],[103.082527,33.203537],[103.082759,33.203546],[103.082942,33.20351],[103.083046,33.203846],[103.083152,33.204185],[103.083178,33.20427],[103.083508,33.204275],[103.084149,33.203898],[103.084175,33.203883],[103.084268,33.203856],[103.08441,33.203814],[103.084467,33.203797],[103.084665,33.203739],[103.084748,33.203715],[103.08492,33.204071],[103.084919,33.204119],[103.084809,33.204158],[103.084768,33.204206],[103.084741,33.204302],[103.08475,33.204377],[103.084751,33.204513],[103.084662,33.204581],[103.084546,33.204601],[103.084496,33.204653],[103.084471,33.20473],[103.084434,33.204851],[103.084458,33.204939],[103.084369,33.205068],[103.08418,33.20523],[103.083937,33.2055],[103.083681,33.205639],[103.083577,33.205667],[103.083534,33.205638],[103.083541,33.20545],[103.083512,33.205459],[103.083355,33.205349],[103.083251,33.205276],[103.083043,33.20513],[103.082716,33.2049],[103.082598,33.204817],[103.082133,33.204598],[103.082023,33.205058],[103.082209,33.20634],[103.082276,33.206795],[103.082283,33.20685],[103.082431,33.207171],[103.082703,33.207763],[103.083185,33.20825],[103.083445,33.208513],[103.083783,33.208807],[103.0838,33.208759],[103.083913,33.208796],[103.084071,33.208828],[103.084195,33.208844],[103.084357,33.20886],[103.084457,33.208862],[103.084523,33.208973],[103.084538,33.209077],[103.084512,33.209245],[103.084455,33.209414],[103.084403,33.209471],[103.084466,33.209557],[103.0845,33.209603],[103.084356,33.209695],[103.084287,33.209739],[103.084253,33.209761],[103.084202,33.209769],[103.084099,33.209766],[103.083986,33.209752],[103.083821,33.209821],[103.083671,33.209884],[103.083589,33.209832],[103.083535,33.209788],[103.08346,33.209738],[103.083403,33.209732],[103.083301,33.209763],[103.083195,33.209848],[103.083094,33.209968],[103.082996,33.210085],[103.082863,33.210232],[103.082793,33.210313],[103.082724,33.210421],[103.082694,33.210516],[103.082618,33.210733],[103.082548,33.211232],[103.082421,33.211445],[103.082177,33.21175],[103.082181,33.211758],[103.082168,33.211786],[103.082143,33.211857],[103.082129,33.211944],[103.082133,33.212066],[103.082149,33.212129],[103.082156,33.212156],[103.082211,33.21222],[103.082311,33.212262],[103.082484,33.212292],[103.082946,33.212355],[103.083309,33.212205],[103.08364,33.212147],[103.08384,33.212116],[103.084106,33.211842],[103.084296,33.211648],[103.084646,33.211327],[103.084655,33.211319],[103.084809,33.211178],[103.085233,33.21079],[103.085705,33.211133],[103.085768,33.21129],[103.085838,33.211467],[103.085894,33.211606],[103.085928,33.211682],[103.085923,33.211687],[103.085892,33.211741],[103.085868,33.211806],[103.085862,33.21189],[103.085868,33.211953],[103.085904,33.21204],[103.085956,33.212135],[103.086012,33.212196],[103.086132,33.212289],[103.08628,33.212369],[103.086416,33.212429],[103.086487,33.212438],[103.086579,33.212419],[103.086675,33.212388],[103.086749,33.21234],[103.086809,33.212274],[103.086863,33.212205],[103.086918,33.212132],[103.086974,33.212107],[103.087082,33.21206],[103.087138,33.212024],[103.087409,33.211845],[103.087483,33.211797],[103.088134,33.211368],[103.088166,33.211322],[103.088214,33.211253],[103.088284,33.211175],[103.088358,33.211118],[103.088428,33.211072],[103.088509,33.211018],[103.088594,33.210987],[103.088654,33.210987],[103.088718,33.211004],[103.0888,33.211058],[103.089103,33.21095],[103.08945,33.211051],[103.089505,33.211067],[103.089515,33.21107],[103.08963,33.211104],[103.089752,33.211139],[103.089768,33.211352],[103.089793,33.211677],[103.089357,33.212118],[103.089001,33.212424],[103.088595,33.212772],[103.088567,33.212796],[103.088552,33.212809],[103.088538,33.212821],[103.088515,33.212841],[103.088435,33.212909],[103.088319,33.213355],[103.088362,33.213803],[103.088473,33.213777],[103.088578,33.213753],[103.088595,33.213749],[103.088854,33.213688],[103.088898,33.213677],[103.089024,33.213628],[103.089207,33.213476],[103.089281,33.213397],[103.089287,33.213362],[103.08933,33.213327],[103.089548,33.21315],[103.089597,33.213132],[103.089609,33.213127],[103.089959,33.212995],[103.090418,33.212822],[103.090461,33.212806],[103.09061,33.21291],[103.090615,33.212914],[103.090723,33.212989],[103.090518,33.213398],[103.090501,33.213433],[103.090215,33.213892],[103.090059,33.214143],[103.090069,33.214208],[103.090071,33.214221],[103.090102,33.214434],[103.090105,33.214456],[103.090846,33.214692],[103.091044,33.214685],[103.091067,33.214685],[103.091566,33.214668],[103.091568,33.214682],[103.091641,33.215074],[103.091658,33.215388],[103.091622,33.215637],[103.091606,33.215711],[103.091756,33.215721],[103.091844,33.216224],[103.091862,33.216351],[103.091967,33.217109],[103.09238,33.217454],[103.092421,33.217488],[103.092437,33.217502],[103.092636,33.217668],[103.092713,33.217735],[103.092743,33.217743],[103.0928,33.21776],[103.092896,33.217811],[103.092979,33.217875],[103.093082,33.217944],[103.093176,33.218056],[103.093206,33.218121],[103.093223,33.218182],[103.093224,33.218229],[103.093224,33.218296],[103.093214,33.218354],[103.093201,33.218384],[103.093205,33.218526],[103.09321,33.218703],[103.092939,33.219019],[103.092929,33.219031],[103.092482,33.219551],[103.092484,33.219643],[103.092484,33.219656],[103.09249,33.219883],[103.092495,33.220173],[103.092511,33.220188],[103.09257,33.220251],[103.092636,33.220322],[103.092932,33.220641],[103.092978,33.220654],[103.093031,33.220665],[103.093087,33.220684],[103.093155,33.220711],[103.093251,33.220765],[103.093483,33.220904],[103.093548,33.220946],[103.093591,33.220984],[103.093632,33.22102],[103.093642,33.221031],[103.093765,33.221058],[103.094547,33.22123],[103.095763,33.221463],[103.096141,33.221538],[103.096285,33.221519],[103.096425,33.22151],[103.096561,33.221496],[103.09672,33.221477],[103.096929,33.221462],[103.096986,33.221467],[103.097043,33.221491],[103.097086,33.221531],[103.097135,33.221597],[103.09716,33.221682],[103.097175,33.221786],[103.097163,33.221866],[103.097342,33.221965],[103.097471,33.222561],[103.097457,33.222587],[103.0971,33.223158],[103.096815,33.223719],[103.096935,33.224042],[103.096969,33.22413],[103.09709,33.224442],[103.097097,33.224505],[103.097104,33.224577],[103.09712,33.224732],[103.096991,33.224807],[103.096842,33.224777],[103.096861,33.224728],[103.096861,33.224691],[103.096851,33.224655],[103.09679,33.224609],[103.096716,33.224561],[103.096663,33.224547],[103.096632,33.224553],[103.096611,33.224584],[103.096581,33.22463],[103.096538,33.22466],[103.096477,33.224672],[103.09609,33.224472],[103.096048,33.224451],[103.09594,33.224397],[103.095932,33.224394],[103.095875,33.224422],[103.095818,33.22444],[103.09572,33.224456],[103.095604,33.224454],[103.095539,33.224448],[103.095476,33.224429],[103.09542,33.224401],[103.095369,33.224345],[103.09537,33.224363],[103.095378,33.224614],[103.095442,33.225012],[103.095644,33.225207],[103.09578,33.225338],[103.095913,33.225464],[103.095934,33.225483],[103.096224,33.225756],[103.096264,33.225744],[103.096297,33.22573],[103.096315,33.225718],[103.096334,33.225706],[103.096384,33.22567],[103.096491,33.225626],[103.096537,33.225627],[103.0966,33.225634],[103.096638,33.225651],[103.096667,33.225676],[103.096691,33.225713],[103.096719,33.225773],[103.096734,33.225832],[103.096735,33.225903],[103.096725,33.225978],[103.096709,33.226027],[103.09669,33.226065],[103.096745,33.226101],[103.096919,33.226408],[103.09683,33.226647],[103.096784,33.226809],[103.096704,33.226972],[103.096666,33.227085],[103.096622,33.227148],[103.096586,33.227188],[103.096527,33.227243],[103.096425,33.2273],[103.096347,33.227339],[103.096229,33.227373],[103.096149,33.227384],[103.096029,33.227385],[103.095937,33.227377],[103.095831,33.227359],[103.095741,33.227323],[103.095695,33.2273],[103.095665,33.227304],[103.095555,33.22732],[103.095094,33.227619],[103.095262,33.22781],[103.095272,33.22782],[103.095649,33.228009],[103.095724,33.228028],[103.095804,33.228019],[103.095927,33.228014],[103.096073,33.228025],[103.096131,33.228036],[103.096223,33.228053],[103.096376,33.228103],[103.096436,33.228135],[103.096444,33.228134],[103.096628,33.228131],[103.096658,33.228128],[103.096794,33.228165],[103.097034,33.228201],[103.097134,33.2282],[103.097209,33.228193],[103.097287,33.228165],[103.097357,33.228118],[103.097421,33.228052],[103.097723,33.228063],[103.097757,33.228052],[103.097831,33.228048],[103.097926,33.228043],[103.098002,33.228044],[103.098058,33.228058],[103.098091,33.228076],[103.098138,33.228078],[103.098486,33.228197],[103.098532,33.228213],[103.098932,33.22835],[103.099295,33.228594],[103.099292,33.228707],[103.099287,33.228849],[103.099295,33.228928],[103.099287,33.229126],[103.099325,33.22928],[103.099552,33.229709],[103.099744,33.230109],[103.100051,33.230478],[103.100121,33.230493],[103.100202,33.23052],[103.100289,33.230561],[103.100326,33.230579],[103.100366,33.230599],[103.100409,33.230632],[103.100463,33.230692],[103.100528,33.230765],[103.100568,33.230821],[103.100579,33.230837],[103.100614,33.230895],[103.100655,33.230996],[103.100684,33.231063],[103.100689,33.231081],[103.100689,33.231104],[103.100688,33.231119],[103.100718,33.231151],[103.10072,33.231157],[103.100749,33.231288],[103.100771,33.231443],[103.100749,33.231626],[103.10069,33.231778],[103.100632,33.23193],[103.100545,33.232049],[103.100442,33.232165],[103.100277,33.232264],[103.100119,33.232345],[103.099925,33.232418],[103.099787,33.232437],[103.099344,33.232369],[103.099155,33.23234],[103.098956,33.232232],[103.098755,33.232122],[103.098728,33.232107],[103.098594,33.232107],[103.098442,33.232104],[103.09829,33.232067],[103.098153,33.232022],[103.098016,33.231963],[103.097934,33.231907],[103.0979,33.231872],[103.097881,33.231868],[103.097324,33.231742],[103.097318,33.23174],[103.097265,33.231699],[103.09715,33.231639],[103.096787,33.231478],[103.09662,33.231412],[103.096522,33.231383],[103.09642,33.231365],[103.096359,33.231365],[103.096214,33.231302],[103.095845,33.231263],[103.095799,33.231303],[103.095737,33.231346],[103.095626,33.23137],[103.09555,33.231379],[103.095468,33.231383],[103.095388,33.231375],[103.09527,33.231347],[103.095188,33.231414],[103.095121,33.231468],[103.095046,33.231529],[103.094911,33.231893],[103.094936,33.232413],[103.095287,33.232969],[103.095344,33.233096],[103.095505,33.233459],[103.095547,33.233553],[103.095446,33.233682],[103.095427,33.233831],[103.095392,33.233918],[103.095369,33.233996],[103.095327,33.234115],[103.095307,33.234211],[103.095288,33.234339],[103.095314,33.234396],[103.095291,33.234466],[103.095281,33.234628],[103.095263,33.234939],[103.095433,33.235172],[103.095446,33.235188],[103.095601,33.235402],[103.095648,33.235405],[103.095684,33.235412],[103.095766,33.235437],[103.095816,33.235462],[103.095876,33.235499],[103.095926,33.235521],[103.095945,33.235528],[103.095987,33.235544],[103.096051,33.235563],[103.096155,33.235592],[103.096252,33.235624],[103.096329,33.235652],[103.096461,33.235733],[103.09651,33.235776],[103.09656,33.235827],[103.09677,33.235863],[103.096823,33.235886],[103.097226,33.236057],[103.097256,33.236069],[103.097298,33.236126],[103.097415,33.236286],[103.097153,33.236633],[103.096642,33.23702],[103.09658,33.237067],[103.096548,33.237115],[103.096541,33.237126],[103.096373,33.237385],[103.09642,33.23759],[103.096439,33.237676],[103.096569,33.23777],[103.096656,33.23776],[103.096791,33.237769],[103.096885,33.237802],[103.096928,33.237856],[103.096977,33.237861],[103.097072,33.237869],[103.097192,33.237772],[103.09722,33.237749],[103.097479,33.237539],[103.09754,33.237492],[103.09764,33.237417],[103.098183,33.237006],[103.09831,33.23691],[103.098607,33.236733],[103.098702,33.236676],[103.09891,33.236552],[103.099157,33.236404],[103.099791,33.236551],[103.100005,33.236738],[103.100003,33.237054],[103.099892,33.237211],[103.099339,33.237771],[103.09873,33.238018],[103.098694,33.238166],[103.098626,33.238444],[103.098623,33.238457],[103.098599,33.238467],[103.098535,33.238496],[103.098348,33.238579],[103.098347,33.238579],[103.098255,33.23862],[103.098144,33.238772],[103.09788,33.239134],[103.097791,33.239548],[103.097771,33.239638],[103.097739,33.239789],[103.097794,33.240092],[103.097852,33.240417],[103.097885,33.240519],[103.097887,33.240527],[103.098125,33.241276],[103.097955,33.241564],[103.097685,33.241568],[103.097427,33.241571],[103.097363,33.241517],[103.097327,33.241487],[103.097325,33.241485],[103.097318,33.241479],[103.096892,33.24112],[103.096243,33.240104],[103.096112,33.239932],[103.096064,33.239941],[103.095986,33.239892],[103.095795,33.239738],[103.095763,33.239739],[103.095589,33.239747],[103.095525,33.239749],[103.095508,33.23975],[103.095431,33.239753],[103.094674,33.240119],[103.09465,33.240131],[103.094604,33.240153],[103.094458,33.240168],[103.093711,33.240246],[103.093265,33.240223],[103.093203,33.24022],[103.093182,33.240235],[103.093065,33.240286],[103.092893,33.240343],[103.092764,33.240367],[103.092608,33.240354],[103.092525,33.240332],[103.092486,33.240345],[103.092473,33.24035],[103.092267,33.240606],[103.092307,33.24074],[103.092327,33.240806],[103.092386,33.241005],[103.092683,33.241544],[103.093072,33.242039],[103.093301,33.242525],[103.093305,33.242533],[103.09342,33.242778],[103.093421,33.242783],[103.093453,33.242923],[103.093569,33.243437],[103.093523,33.24391],[103.093321,33.24409],[103.093037,33.244345],[103.092837,33.244526],[103.092437,33.244641],[103.092251,33.244694],[103.092233,33.2447],[103.091934,33.244669],[103.091544,33.244628],[103.090967,33.244466],[103.090912,33.244451],[103.0906,33.24443],[103.090583,33.244461],[103.090563,33.244491],[103.09053,33.244517],[103.090472,33.244538],[103.09038,33.244557],[103.090299,33.244561],[103.09025,33.244564],[103.090176,33.244558],[103.090102,33.244548],[103.090046,33.244537],[103.089991,33.244511],[103.089965,33.244502],[103.089934,33.244497],[103.089894,33.244499],[103.089852,33.2445],[103.089812,33.244501],[103.089776,33.244494],[103.089752,33.24448],[103.08974,33.244463],[103.08973,33.244436],[103.08942,33.244487],[103.089341,33.2445],[103.089328,33.244502],[103.08932,33.244508],[103.088878,33.244814],[103.088572,33.245025],[103.088561,33.245036],[103.088527,33.245073],[103.08848,33.245123],[103.088445,33.245086],[103.088406,33.245035],[103.088365,33.24502],[103.08834,33.245031],[103.088307,33.245079],[103.088296,33.24512],[103.088294,33.245131],[103.088296,33.245173],[103.088306,33.245224],[103.08834,33.245273],[103.08805,33.245582],[103.087851,33.245679],[103.087788,33.24571],[103.087607,33.245798],[103.087614,33.245824],[103.087593,33.24584],[103.087561,33.245853],[103.0875,33.245888],[103.087463,33.245911],[103.087416,33.245933],[103.087372,33.245959],[103.087356,33.245968],[103.087303,33.245946],[103.087076,33.246056],[103.087027,33.246056],[103.086943,33.246081],[103.086814,33.246122],[103.086683,33.246157],[103.086539,33.246182],[103.086428,33.246182],[103.0863,33.246182],[103.086194,33.24617],[103.086052,33.246147],[103.085975,33.246138],[103.085801,33.246174],[103.085379,33.246351],[103.084995,33.246483],[103.0845,33.246658],[103.084142,33.246792],[103.08395,33.246864],[103.083719,33.247186],[103.08376,33.247533],[103.083928,33.247652],[103.084217,33.247855],[103.084235,33.247868],[103.084261,33.247887],[103.085003,33.248306],[103.085645,33.248507],[103.085822,33.248563],[103.086052,33.248559],[103.086387,33.248554],[103.086477,33.248552],[103.086523,33.248548],[103.086823,33.24852],[103.087035,33.2485],[103.087184,33.248481],[103.087235,33.248413],[103.087267,33.248361],[103.087309,33.248372],[103.087344,33.248379],[103.087366,33.248406],[103.08738,33.248455],[103.087594,33.248427],[103.087619,33.248493],[103.087686,33.248673],[103.087685,33.248704],[103.087685,33.248725],[103.087673,33.249284],[103.087682,33.249314],[103.087619,33.249334],[103.087603,33.249357],[103.087608,33.24938],[103.087635,33.249395],[103.08767,33.249402],[103.087711,33.249408],[103.087783,33.249642],[103.087784,33.249646],[103.087786,33.249652],[103.088002,33.249757],[103.088269,33.249741],[103.088346,33.249678],[103.08859,33.249481],[103.088721,33.24935],[103.088728,33.249343],[103.088729,33.249343],[103.088816,33.249256],[103.088817,33.249256],[103.08883,33.249243],[103.089247,33.248829],[103.089358,33.248719],[103.089398,33.248706],[103.089704,33.248606],[103.089895,33.248544],[103.090329,33.248632],[103.090575,33.248813],[103.090608,33.248838],[103.090861,33.249024],[103.090882,33.24904],[103.090949,33.24909],[103.091106,33.249389],[103.091229,33.249624],[103.091336,33.25027],[103.091286,33.251084],[103.09112,33.251642],[103.091077,33.251787],[103.091058,33.252656],[103.091151,33.252795],[103.091204,33.252875],[103.091277,33.252985],[103.091881,33.253429],[103.092194,33.253895],[103.092359,33.254247],[103.092367,33.254264],[103.092421,33.254379],[103.092564,33.254652],[103.092666,33.254847],[103.092823,33.255148],[103.093182,33.255414],[103.093252,33.255466],[103.093575,33.255705],[103.093655,33.255764],[103.093717,33.255731],[103.093745,33.255719],[103.09378,33.255712],[103.093804,33.255707],[103.093842,33.255707],[103.093769,33.255827],[103.09397,33.255932],[103.094051,33.25584],[103.094098,33.255785],[103.094187,33.255693],[103.094362,33.255544],[103.09443,33.255476],[103.094524,33.255409],[103.0946,33.255361],[103.094616,33.255352],[103.09468,33.255315],[103.094766,33.255283],[103.094871,33.255247],[103.094972,33.255226],[103.095045,33.255226],[103.095123,33.255228],[103.095227,33.25524],[103.095352,33.255273],[103.095397,33.255293],[103.095583,33.255369],[103.095668,33.255422],[103.095859,33.255611],[103.095962,33.25579],[103.096067,33.256109],[103.096083,33.256266],[103.096084,33.256348],[103.096116,33.256321],[103.09613,33.256316],[103.09612,33.256447],[103.096106,33.256565],[103.096063,33.25668],[103.095973,33.25677],[103.095749,33.256918],[103.095601,33.257018],[103.095316,33.257127],[103.095308,33.257131],[103.095097,33.257227],[103.094745,33.25737],[103.094507,33.257493],[103.094269,33.257598],[103.093969,33.257731],[103.093603,33.257865],[103.093255,33.257948],[103.092908,33.258031],[103.092798,33.258069],[103.09266,33.258084],[103.092575,33.258079],[103.092446,33.258036],[103.092342,33.258003],[103.092166,33.257993],[103.092042,33.257998],[103.091923,33.258041],[103.091828,33.258122],[103.091771,33.258207],[103.091747,33.258283],[103.091747,33.258341],[103.091766,33.25845],[103.091818,33.25855],[103.091894,33.258645],[103.092037,33.258755],[103.092166,33.25884],[103.09242,33.258931],[103.092675,33.259021],[103.092922,33.259064],[103.09317,33.259107],[103.093376,33.259156],[103.093565,33.259202],[103.093674,33.25925],[103.093812,33.259383],[103.093826,33.259497],[103.093779,33.259654],[103.093712,33.259749],[103.093652,33.259806],[103.093617,33.25984],[103.09338,33.259992],[103.093143,33.260145],[103.092987,33.260256],[103.09273,33.260456],[103.092427,33.260606],[103.092123,33.260756],[103.091724,33.260863],[103.091395,33.260927],[103.091117,33.260963],[103.09071,33.260963],[103.090372,33.260906],[103.090034,33.260849],[103.089696,33.260792],[103.089368,33.260728],[103.089061,33.260728],[103.08879,33.260749],[103.088618,33.260813],[103.088404,33.260956],[103.088247,33.261134],[103.08814,33.261334],[103.088062,33.261513],[103.088056,33.261535],[103.087997,33.261763],[103.087933,33.261905],[103.087812,33.262034],[103.087633,33.26212],[103.087455,33.262198],[103.087284,33.262212],[103.087119,33.262184],[103.086955,33.262127],[103.086691,33.261948],[103.08657,33.261663],[103.086391,33.261256],[103.086353,33.261155],[103.086299,33.261013],[103.086227,33.26087],[103.08612,33.260713],[103.085992,33.260628],[103.085877,33.260628],[103.085706,33.260685],[103.085606,33.260792],[103.085492,33.26097],[103.085374,33.261234],[103.085256,33.261498],[103.085092,33.261841],[103.085006,33.262048],[103.084892,33.262277],[103.084749,33.262455],[103.084478,33.262683],[103.084307,33.262812],[103.084286,33.262825],[103.084086,33.262948],[103.083893,33.263147],[103.083857,33.263326],[103.0839,33.263483],[103.083979,33.263669],[103.084093,33.263861],[103.084378,33.264061],[103.084585,33.26414],[103.084807,33.264161],[103.084921,33.264154],[103.085006,33.264083],[103.085174,33.263865],[103.085342,33.263647],[103.085417,33.26354],[103.085485,33.263444],[103.085628,33.26324],[103.085742,33.263076],[103.08592,33.262876],[103.086199,33.262691],[103.086406,33.262612],[103.086527,33.262583],[103.08667,33.262576],[103.087019,33.262583],[103.087405,33.262683],[103.087562,33.262748],[103.087691,33.262833],[103.087862,33.263005],[103.087905,33.263083],[103.087927,33.263104],[103.088019,33.26319],[103.088147,33.263255],[103.088297,33.263276],[103.088454,33.263269],[103.088633,33.263219],[103.08879,33.263112],[103.088795,33.263107],[103.088897,33.263005],[103.088997,33.262762],[103.089061,33.262612],[103.089082,33.262491],[103.089111,33.262376],[103.089218,33.262277],[103.089397,33.262205],[103.089438,33.262195],[103.089539,33.262169],[103.089704,33.262169],[103.08982,33.262178],[103.090003,33.262191],[103.090253,33.262341],[103.090382,33.262519],[103.090467,33.262691],[103.090471,33.262696],[103.090537,33.262805],[103.090624,33.262948],[103.090717,33.263205],[103.090717,33.263387],[103.090717,33.263404],[103.090689,33.263547],[103.090574,33.263776],[103.090417,33.264054],[103.090324,33.264232],[103.09026,33.264354],[103.090068,33.264468],[103.089868,33.264568],[103.089642,33.264632],[103.089589,33.264646],[103.089254,33.264675],[103.088861,33.264704],[103.088497,33.264768],[103.088119,33.264961],[103.08793,33.2651],[103.08774,33.265239],[103.087405,33.265482],[103.087069,33.265724],[103.086827,33.265917],[103.086684,33.26611],[103.08667,33.266267],[103.086677,33.266374],[103.086741,33.266502],[103.086884,33.266688],[103.087066,33.266984],[103.087248,33.267281],[103.087298,33.267566],[103.087434,33.267894],[103.087619,33.268173],[103.087876,33.268423],[103.088112,33.268608],[103.088362,33.26874],[103.088611,33.268872],[103.088875,33.268922],[103.089268,33.268894],[103.089561,33.268822],[103.089961,33.268808],[103.090332,33.268808],[103.090374,33.26881],[103.090564,33.268819],[103.090796,33.26883],[103.091106,33.26888],[103.091417,33.26893],[103.091595,33.268979],[103.091874,33.269101],[103.091945,33.269186],[103.091995,33.269308],[103.091999,33.269389],[103.092002,33.269458],[103.091959,33.269743],[103.091902,33.270022],[103.091816,33.270222],[103.091652,33.270414],[103.091445,33.270564],[103.091231,33.2707],[103.090931,33.270857],[103.09066,33.270971],[103.090389,33.271085],[103.090091,33.271221],[103.089794,33.271357],[103.089497,33.271492],[103.089254,33.271671],[103.08904,33.271871],[103.089025,33.271999],[103.089054,33.272149],[103.089161,33.272299],[103.089361,33.272434],[103.089618,33.27257],[103.089946,33.272646],[103.090275,33.272722],[103.090603,33.272799],[103.090913,33.272913],[103.091224,33.273027],[103.091253,33.273038],[103.091502,33.273134],[103.091709,33.273355],[103.091781,33.273519],[103.091838,33.273698],[103.091824,33.273862],[103.091774,33.273983],[103.091717,33.274041],[103.09151,33.274126],[103.091388,33.274169],[103.09106,33.274226],[103.090817,33.274226],[103.09046,33.274191],[103.090075,33.274133],[103.089778,33.274108],[103.089482,33.274083],[103.089132,33.274033],[103.088783,33.273983],[103.088404,33.273983],[103.088382,33.273984],[103.088133,33.273991],[103.087898,33.274041],[103.087698,33.274141],[103.087491,33.274326],[103.087391,33.274483],[103.087312,33.274626],[103.087298,33.274797],[103.087298,33.274997],[103.087326,33.275176],[103.08744,33.275524],[103.087604,33.275835],[103.087631,33.276088],[103.087561,33.276411],[103.087496,33.276564],[103.08737,33.276716],[103.0873,33.276784],[103.087238,33.276844],[103.087197,33.276884],[103.087024,33.277052],[103.086852,33.27722],[103.086824,33.277248],[103.086679,33.277388],[103.086603,33.277462],[103.086506,33.277557],[103.086333,33.277725],[103.08616,33.277893],[103.085987,33.278061],[103.085842,33.278234],[103.085831,33.278248],[103.085674,33.278436],[103.085518,33.278623],[103.085455,33.278697],[103.085403,33.27876],[103.085361,33.27881],[103.085205,33.278997],[103.085048,33.279184],[103.084892,33.279371],[103.084736,33.279559],[103.084579,33.279746],[103.084423,33.279933],[103.084266,33.28012],[103.08411,33.280307],[103.083934,33.280496],[103.083759,33.280685],[103.083583,33.280874],[103.083408,33.281064],[103.083233,33.281253],[103.083057,33.281442],[103.082882,33.281631],[103.082706,33.28182],[103.082505,33.281957],[103.082304,33.282094],[103.081905,33.282241],[103.081492,33.282312],[103.081079,33.282383],[103.080833,33.282412],[103.080587,33.282441],[103.080341,33.282471],[103.080095,33.2825],[103.079849,33.282529],[103.079603,33.282558],[103.079357,33.282587],[103.079112,33.282616],[103.078859,33.282666],[103.078607,33.282715],[103.078354,33.282765],[103.078102,33.282814],[103.07785,33.282863],[103.077597,33.282913],[103.077345,33.282962],[103.077093,33.283011],[103.07684,33.283061],[103.076588,33.28311],[103.076336,33.28316],[103.076083,33.283209],[103.075847,33.28326],[103.075611,33.283311],[103.075375,33.283362],[103.075139,33.283413],[103.074902,33.283464],[103.074666,33.283516],[103.07443,33.283567],[103.074194,33.283618],[103.073958,33.283669],[103.073722,33.28372],[103.073486,33.283771],[103.07325,33.283822],[103.073013,33.283873],[103.072777,33.283924],[103.072616,33.283965],[103.07244,33.284009],[103.072103,33.284093],[103.071886,33.284268],[103.071822,33.28442],[103.07182,33.284427],[103.07181,33.284481],[103.071753,33.284778],[103.071647,33.284981],[103.071541,33.285184],[103.071435,33.285386],[103.071328,33.285589],[103.071222,33.285792],[103.071116,33.285994],[103.070927,33.286299],[103.070738,33.286603],[103.070458,33.286871],[103.070178,33.287139],[103.069898,33.287408],[103.069744,33.287614],[103.06959,33.287821],[103.069436,33.288028],[103.069282,33.288234],[103.069173,33.28838],[103.069128,33.288441],[103.06906,33.288531],[103.069056,33.288537],[103.068973,33.288648],[103.068819,33.288854],[103.068665,33.289061],[103.068521,33.289269],[103.068376,33.289476],[103.068231,33.289683],[103.068087,33.289891],[103.067942,33.290098],[103.067797,33.290306],[103.067653,33.290513],[103.067564,33.29064],[103.067508,33.290721],[103.067364,33.290928],[103.067275,33.291055],[103.06725,33.29109],[103.067219,33.291136],[103.066996,33.291463],[103.066986,33.291478],[103.066773,33.29179],[103.066644,33.29198],[103.066515,33.29217],[103.066386,33.29236],[103.066256,33.29255],[103.066127,33.29274],[103.065998,33.29293],[103.065868,33.29312],[103.065739,33.29331],[103.06559,33.29353],[103.065441,33.29375],[103.065292,33.293969],[103.065143,33.294189],[103.065045,33.294334],[103.064994,33.294408],[103.064977,33.294434],[103.064845,33.294628],[103.064696,33.294848],[103.064547,33.295067],[103.064398,33.295287],[103.064249,33.295507],[103.06411,33.295704],[103.064078,33.29575],[103.063971,33.295901],[103.063832,33.296099],[103.063731,33.296241],[103.063693,33.296296],[103.063539,33.296514],[103.063385,33.296732],[103.063231,33.296951],[103.063077,33.297169],[103.062923,33.297387],[103.062769,33.297606],[103.062568,33.297781],[103.062366,33.297956],[103.061968,33.298079],[103.061539,33.298166],[103.06111,33.298252],[103.060682,33.298339],[103.060652,33.298344],[103.060246,33.298416],[103.05981,33.298492],[103.059374,33.298568],[103.058938,33.298644],[103.058693,33.298705],[103.058448,33.298765],[103.058203,33.298825],[103.057958,33.298885],[103.057799,33.29892],[103.057717,33.298938],[103.057476,33.29899],[103.057236,33.299042],[103.056995,33.299094],[103.056754,33.299146],[103.056513,33.299198],[103.056273,33.299251],[103.056266,33.299252],[103.056032,33.299303],[103.055791,33.299355],[103.05555,33.299407],[103.05531,33.299459],[103.055069,33.299511],[103.054811,33.299579],[103.054554,33.299646],[103.054296,33.299714],[103.054039,33.299782],[103.053781,33.299849],[103.053524,33.299917],[103.053266,33.299984],[103.053009,33.300052],[103.052751,33.300119],[103.052494,33.300187],[103.052251,33.300221],[103.052007,33.300256],[103.051764,33.30029],[103.051521,33.300325],[103.051277,33.300359],[103.051034,33.300394],[103.050791,33.300428],[103.050547,33.300462],[103.050304,33.300497],[103.050061,33.300531],[103.049817,33.300566],[103.049574,33.3006],[103.049331,33.300635],[103.049088,33.300669],[103.048844,33.300704],[103.048601,33.300738],[103.048344,33.30076],[103.04833,33.300761],[103.04828,33.300765],[103.048087,33.300781],[103.04783,33.300803],[103.047573,33.300824],[103.047316,33.300846],[103.047059,33.300867],[103.046802,33.300889],[103.046545,33.30091],[103.046458,33.300918],[103.046404,33.300922],[103.046288,33.300932],[103.046031,33.300953],[103.045774,33.300975],[103.045517,33.300997],[103.045283,33.301014],[103.045049,33.301031],[103.044815,33.301049],[103.044581,33.301066],[103.044347,33.301084],[103.044113,33.301101],[103.043894,33.301141],[103.043874,33.301144],[103.043634,33.301188],[103.043395,33.301231],[103.043155,33.301274],[103.042944,33.301312],[103.042916,33.301317],[103.042676,33.30136],[103.042257,33.301385],[103.041837,33.301411],[103.041417,33.301436],[103.040997,33.301461],[103.040733,33.301457],[103.040469,33.301453],[103.040205,33.301449],[103.039941,33.301444],[103.039677,33.30144],[103.039413,33.301436],[103.039151,33.301435],[103.038889,33.301433],[103.038627,33.301432],[103.038365,33.30143],[103.038103,33.301429],[103.037841,33.301427],[103.037579,33.301426],[103.037317,33.301424],[103.037055,33.301423],[103.036793,33.301421],[103.036474,33.301409],[103.036388,33.301406],[103.035982,33.301391],[103.035576,33.301376],[103.035171,33.301338],[103.035149,33.301336],[103.034722,33.301296],[103.034295,33.301256],[103.033868,33.301216],[103.033442,33.301157],[103.033015,33.301097],[103.032588,33.301037],[103.032162,33.300977],[103.0318,33.300879],[103.031439,33.30078],[103.031213,33.300741],[103.030987,33.300702],[103.030733,33.300689],[103.030376,33.300683],[103.030366,33.300682],[103.03008,33.300661],[103.029818,33.300639],[103.029524,33.300599],[103.029209,33.300541],[103.028894,33.300483],[103.028662,33.300431],[103.028586,33.300413],[103.028483,33.30039],[103.028431,33.300378],[103.028166,33.300343],[103.0279,33.300307],[103.027635,33.300272],[103.02737,33.300237],[103.027097,33.300195],[103.026824,33.300154],[103.026793,33.300149],[103.026552,33.300112],[103.026279,33.30007],[103.026047,33.300053],[103.025816,33.300036],[103.025489,33.300031],[103.025162,33.300026],[103.024935,33.300036],[103.024708,33.300045],[103.02439,33.30008],[103.024073,33.300115],[103.02384,33.300154],[103.023607,33.300193],[103.023374,33.300232],[103.023142,33.300271],[103.022909,33.30031],[103.022676,33.300349],[103.02228,33.300404],[103.021884,33.300459],[103.021586,33.300521],[103.021289,33.300584],[103.020896,33.300692],[103.020751,33.300754],[103.02068,33.300785],[103.020463,33.300877],[103.020314,33.300963],[103.020121,33.301132],[103.019928,33.301302],[103.019731,33.301564],[103.019653,33.301757],[103.019567,33.302039],[103.019482,33.302321],[103.01938,33.302603],[103.01925,33.302761],[103.019154,33.302864],[103.019045,33.30296],[103.01895,33.303003],[103.018811,33.30308],[103.018673,33.303131],[103.018365,33.303188],[103.018111,33.3032],[103.017858,33.303211],[103.017605,33.303223],[103.017352,33.303234],[103.016904,33.303223],[103.016457,33.303213],[103.016009,33.303202],[103.015567,33.303144],[103.015124,33.303086],[103.014682,33.303029],[103.014239,33.302971],[103.013977,33.302925],[103.013715,33.302878],[103.013454,33.302831],[103.013192,33.302785],[103.01293,33.302738],[103.012668,33.302692],[103.012484,33.302659],[103.012406,33.302645],[103.012144,33.302599],[103.011882,33.302552],[103.011621,33.302506],[103.011359,33.302459],[103.011097,33.302413],[103.010835,33.302366],[103.010573,33.30232],[103.010311,33.302273],[103.010049,33.302227],[103.009787,33.30218],[103.009526,33.302134],[103.009264,33.302087],[103.009024,33.302044],[103.009002,33.302041],[103.0088,33.302005],[103.00874,33.301994],[103.008478,33.301948],[103.008216,33.301901],[103.007954,33.301854],[103.007693,33.301808],[103.007431,33.301761],[103.007169,33.301715],[103.006907,33.301668],[103.006653,33.301629],[103.006398,33.30159],[103.006144,33.301551],[103.005889,33.301511],[103.005635,33.301472],[103.005381,33.301433],[103.005126,33.301394],[103.004872,33.301355],[103.004618,33.301315],[103.004363,33.301276],[103.004109,33.301237],[103.003855,33.301198],[103.0036,33.301158],[103.003346,33.301119],[103.003076,33.301076],[103.002807,33.301032],[103.002538,33.300988],[103.002269,33.300945],[103.001999,33.300901],[103.00173,33.300857],[103.001461,33.300814],[103.001191,33.30077],[103.000961,33.300733],[103.000731,33.300696],[103.000501,33.300658],[103.000271,33.300621],[103.000029,33.300608],[102.999786,33.300594],[102.999544,33.300581],[102.999301,33.300567],[102.999059,33.300554],[102.998816,33.30054],[102.998574,33.300527],[102.998332,33.300513],[102.998089,33.3005],[102.997847,33.300486],[102.997604,33.300472],[102.997362,33.300459],[102.997124,33.300415],[102.996887,33.300372],[102.99665,33.300328],[102.996412,33.300285],[102.996406,33.300283],[102.996184,33.300243],[102.996175,33.300241],[102.995938,33.300198],[102.995815,33.300175],[102.995733,33.30016],[102.995701,33.300154],[102.995463,33.30011],[102.995226,33.300067],[102.994989,33.300023],[102.994751,33.29998],[102.994514,33.299936],[102.994277,33.299893],[102.994039,33.299849],[102.993613,33.299825],[102.99342,33.299822],[102.993205,33.29989],[102.99287,33.300178],[102.992535,33.300466],[102.992201,33.300754],[102.99194,33.300937],[102.99168,33.301121],[102.991431,33.301243],[102.991181,33.301364],[102.990771,33.301528],[102.990361,33.301692],[102.990352,33.301696],[102.990108,33.301776],[102.989855,33.301859],[102.989601,33.301942],[102.989348,33.302025],[102.989095,33.302108],[102.988841,33.302191],[102.988461,33.302281],[102.988081,33.30237],[102.987701,33.302459],[102.987455,33.302482],[102.987209,33.302505],[102.986824,33.302499],[102.986439,33.302494],[102.98611,33.302398],[102.985781,33.302302],[102.98558,33.302198],[102.985379,33.302094],[102.985178,33.30199],[102.984977,33.301886],[102.984776,33.301782],[102.984575,33.301677],[102.984374,33.301573],[102.984174,33.301469],[102.983947,33.301322],[102.983721,33.301175],[102.983494,33.301028],[102.983268,33.30088],[102.983041,33.300733],[102.982815,33.300586],[102.982588,33.300439],[102.982362,33.300292],[102.981996,33.300082],[102.98163,33.299873],[102.981264,33.299664],[102.98091,33.29952],[102.980556,33.299376],[102.980168,33.29919],[102.97978,33.299004],[102.979392,33.298818],[102.979095,33.298697],[102.978799,33.298576],[102.978671,33.298558],[102.978372,33.298515],[102.978138,33.298476],[102.977903,33.298436],[102.977669,33.298396],[102.977441,33.298357],[102.977435,33.298356],[102.977201,33.298317],[102.976967,33.298277],[102.976714,33.298264],[102.976461,33.298251],[102.976209,33.298238],[102.975956,33.298225],[102.975703,33.298212],[102.97545,33.298199],[102.975197,33.298185],[102.974944,33.298172],[102.974692,33.298159],[102.974439,33.298146],[102.974186,33.298133],[102.973933,33.29812],[102.973665,33.298117],[102.973396,33.298114],[102.973127,33.298111],[102.972859,33.298108],[102.97259,33.298105],[102.972321,33.298102],[102.972053,33.298098],[102.971784,33.298095],[102.971515,33.298092],[102.971247,33.298089],[102.970978,33.298086],[102.970709,33.298083],[102.970441,33.29808],[102.970172,33.298077],[102.969907,33.298083],[102.969642,33.29809],[102.969377,33.298097],[102.969113,33.298104],[102.968848,33.298111],[102.968583,33.298117],[102.968318,33.298124],[102.968053,33.298131],[102.967661,33.298149],[102.967268,33.298167],[102.966876,33.298184],[102.966515,33.298168],[102.966484,33.298166],[102.966093,33.298148],[102.965701,33.29813],[102.965472,33.298112],[102.965242,33.298095],[102.965013,33.298078],[102.964784,33.29806],[102.964554,33.298043],[102.964325,33.298026],[102.964096,33.298009],[102.963867,33.297991],[102.963609,33.29799],[102.963351,33.297988],[102.963093,33.297987],[102.962836,33.297985],[102.962578,33.297984],[102.96232,33.297982],[102.962062,33.29798],[102.961805,33.297979],[102.961547,33.297977],[102.961289,33.297976],[102.961031,33.297974],[102.960774,33.297973],[102.960516,33.297971],[102.960258,33.297969],[102.960001,33.297968],[102.959743,33.297966],[102.959485,33.297965],[102.959227,33.297963],[102.95897,33.297962],[102.958712,33.29796],[102.958453,33.297957],[102.958195,33.297954],[102.957936,33.297951],[102.957678,33.297949],[102.957419,33.297946],[102.957161,33.297943],[102.956902,33.29794],[102.956643,33.297937],[102.956385,33.297934],[102.956126,33.297931],[102.955868,33.297928],[102.955609,33.297925],[102.955351,33.297923],[102.955092,33.29792],[102.954834,33.297917],[102.954575,33.297914],[102.954317,33.297911],[102.954058,33.297908],[102.953799,33.297905],[102.953541,33.297902],[102.953282,33.2979],[102.953024,33.297897],[102.952765,33.297894],[102.952507,33.297891],[102.952248,33.297888],[102.95199,33.297885],[102.951731,33.297882],[102.951473,33.297879],[102.951214,33.297864],[102.950955,33.297848],[102.950697,33.297832],[102.950438,33.297816],[102.950179,33.2978],[102.94992,33.297784],[102.949662,33.297768],[102.94946,33.297756],[102.949403,33.297753],[102.949322,33.297748],[102.949144,33.297737],[102.948886,33.297721],[102.948627,33.297705],[102.948368,33.297689],[102.94811,33.297673],[102.947851,33.297657],[102.947598,33.297657],[102.947345,33.297656],[102.947092,33.297655],[102.946839,33.297654],[102.946586,33.297654],[102.946333,33.297653],[102.94608,33.297652],[102.945968,33.297652],[102.945827,33.297651],[102.945573,33.29765],[102.94532,33.29765],[102.944872,33.297678],[102.944636,33.297728],[102.944336,33.297759],[102.94393,33.297752],[102.943502,33.297741],[102.943075,33.297729],[102.942647,33.297718],[102.942564,33.297716],[102.942219,33.297707],[102.941985,33.2977],[102.941979,33.2977],[102.941739,33.297694],[102.941498,33.297688],[102.941258,33.297681],[102.941018,33.297675],[102.940778,33.297669],[102.940537,33.297662],[102.940297,33.297656],[102.940083,33.297653],[102.939977,33.297615],[102.939871,33.297505],[102.939834,33.297307],[102.939865,33.296913],[102.939876,33.296465],[102.939837,33.296349],[102.939815,33.296284],[102.93967,33.29612],[102.939544,33.296029],[102.939352,33.296007],[102.939158,33.296004],[102.938966,33.296055],[102.93879,33.296213],[102.93869,33.296416],[102.938538,33.296724],[102.938387,33.297032],[102.938358,33.29711],[102.938341,33.297157],[102.938296,33.297211],[102.938257,33.297253],[102.938231,33.297281],[102.938122,33.297316],[102.937972,33.29733],[102.937674,33.297289],[102.937399,33.29716],[102.937273,33.297062],[102.937232,33.29703],[102.937125,33.297011],[102.936976,33.29701],[102.936903,33.297018],[102.936718,33.29704],[102.936483,33.297054],[102.936248,33.297037],[102.936162,33.297031],[102.93602,33.297012],[102.936014,33.297011],[102.935908,33.296937],[102.935869,33.296793],[102.935853,33.296541],[102.935927,33.296112],[102.935934,33.296077],[102.935977,33.295827],[102.936002,33.295683],[102.935985,33.295521],[102.935945,33.295359],[102.935929,33.295336],[102.935884,33.295268],[102.935849,33.295257],[102.935649,33.295193],[102.935308,33.295169],[102.934988,33.29524],[102.934977,33.295243],[102.93491,33.295258],[102.934513,33.295346],[102.934115,33.295434],[102.933834,33.295483],[102.933428,33.295513],[102.933065,33.295506],[102.932787,33.295511],[102.932509,33.295515],[102.932245,33.295531],[102.93198,33.295548],[102.931716,33.295565],[102.931452,33.295581],[102.931188,33.295598],[102.930924,33.295614],[102.930658,33.29562],[102.930392,33.295626],[102.930126,33.295632],[102.92986,33.295637],[102.929595,33.295643],[102.929329,33.295649],[102.929063,33.295655],[102.928797,33.295661],[102.928531,33.295666],[102.928265,33.295672],[102.927999,33.295678],[102.927733,33.295684],[102.927467,33.295689],[102.927202,33.295695],[102.926962,33.295714],[102.926723,33.295733],[102.926483,33.295752],[102.926244,33.295771],[102.926004,33.29579],[102.925765,33.295809],[102.925526,33.295828],[102.925286,33.295847],[102.925047,33.295866],[102.924807,33.295885],[102.924572,33.295906],[102.924336,33.295928],[102.9241,33.295949],[102.923865,33.29597],[102.923629,33.295991],[102.923393,33.296013],[102.923158,33.296034],[102.922922,33.296055],[102.922686,33.296076],[102.922451,33.296097],[102.922066,33.29609],[102.921766,33.296122],[102.921535,33.296118],[102.921303,33.296114],[102.921071,33.29611],[102.921019,33.296109],[102.920946,33.295986],[102.92071,33.295589],[102.920666,33.295516],[102.92063,33.295457],[102.92057,33.295515],[102.920493,33.295573],[102.920416,33.29558],[102.920307,33.295606],[102.92021,33.295614],[102.920094,33.295609],[102.920055,33.295598],[102.920026,33.295557],[102.920021,33.295494],[102.920028,33.295426],[102.920066,33.295363],[102.9201,33.295312],[102.920147,33.295233],[102.920174,33.295158],[102.920226,33.295043],[102.920329,33.294973],[102.92035,33.294943],[102.92039,33.294918],[102.920443,33.294912],[102.920476,33.294921],[102.920524,33.294925],[102.920547,33.294919],[102.920584,33.294903],[102.920621,33.294895],[102.920652,33.294904],[102.920664,33.294929],[102.920685,33.294959],[102.920713,33.294983],[102.920757,33.295015],[102.920799,33.295032],[102.920874,33.295036],[102.920962,33.29493],[102.92125,33.294756],[102.921339,33.294614],[102.921283,33.294565],[102.921041,33.294573],[102.920786,33.294569],[102.920603,33.294483],[102.920567,33.294497],[102.920537,33.294543],[102.920524,33.294569],[102.920504,33.294597],[102.92046,33.294618],[102.920409,33.294639],[102.920341,33.29463],[102.920188,33.294747],[102.920008,33.294696],[102.919901,33.294644],[102.919821,33.294617],[102.919662,33.294607],[102.919532,33.29459],[102.919364,33.29455],[102.91929,33.294488],[102.919245,33.294396],[102.91927,33.294281],[102.919316,33.294215],[102.919384,33.294087],[102.919388,33.29395],[102.919345,33.29385],[102.91929,33.293746],[102.919194,33.293638],[102.919071,33.293562],[102.918996,33.293508],[102.918977,33.293403],[102.918998,33.293294],[102.919032,33.293128],[102.919007,33.292947],[102.918917,33.292834],[102.918913,33.292696],[102.918741,33.29242],[102.897857,33.258822],[102.896783,33.257095],[102.896639,33.256863],[102.896195,33.256149],[102.895862,33.255613],[102.895851,33.255654],[102.895852,33.25568],[102.895853,33.255707],[102.895862,33.25574],[102.895877,33.255776],[102.895879,33.255821],[102.895875,33.255844],[102.895863,33.255849],[102.895843,33.255845],[102.89583,33.255811],[102.895805,33.255748],[102.895788,33.25571],[102.895782,33.255703],[102.895771,33.255693],[102.895762,33.255691],[102.89575,33.255705],[102.895744,33.255718],[102.895726,33.255718],[102.895713,33.2557],[102.895714,33.25568],[102.895716,33.25565],[102.895732,33.255602],[102.895741,33.255564],[102.895741,33.255526],[102.895739,33.255484],[102.895736,33.255445],[102.895721,33.255386],[102.894255,33.253026],[102.894194,33.252928],[102.894085,33.252752],[102.894068,33.252726],[102.894157,33.252639],[102.894164,33.252633],[102.8946,33.252208],[102.895065,33.251667],[102.895108,33.251635],[102.895215,33.251553],[102.895229,33.251543],[102.895287,33.251499],[102.895287,33.251103],[102.895342,33.250815],[102.895498,33.250669],[102.895741,33.250662],[102.895913,33.250906],[102.895998,33.251345],[102.896089,33.25161],[102.896213,33.25182],[102.89637,33.251827],[102.896494,33.251712],[102.896725,33.251494],[102.897016,33.251388],[102.897627,33.251277],[102.898378,33.251233],[102.899016,33.251156],[102.899726,33.251142],[102.899824,33.251013],[102.899654,33.250625],[102.899372,33.250204],[102.898974,33.249935],[102.898817,33.249805],[102.898936,33.249619],[102.899288,33.249309],[102.899403,33.2491],[102.899431,33.248606],[102.899398,33.248322],[102.899276,33.248081],[102.899047,33.247929],[102.898386,33.247744],[102.89805,33.247686],[102.897828,33.247606],[102.89772,33.247506],[102.897746,33.24737],[102.897862,33.247193],[102.898144,33.24697],[102.898129,33.246865],[102.897822,33.246552],[102.897529,33.24623],[102.897341,33.246041],[102.897115,33.245915],[102.896799,33.245863],[102.896189,33.245865],[102.895906,33.245939],[102.895818,33.246078],[102.895895,33.246229],[102.896273,33.246549],[102.896449,33.246828],[102.896394,33.246997],[102.896192,33.247056],[102.89582,33.246931],[102.895398,33.24658],[102.895153,33.246499],[102.894883,33.246468],[102.893818,33.246548],[102.893311,33.246555],[102.892784,33.24648],[102.892439,33.24628],[102.892141,33.245979],[102.892149,33.245779],[102.892226,33.245703],[102.89241,33.245672],[102.893459,33.245776],[102.894022,33.245742],[102.894264,33.245594],[102.89429,33.245438],[102.893923,33.244959],[102.893426,33.244428],[102.893113,33.244172],[102.892716,33.243995],[102.892504,33.243968],[102.892258,33.244044],[102.891645,33.244558],[102.891293,33.244869],[102.890887,33.245127],[102.890317,33.2452],[102.889802,33.245114],[102.889557,33.244944],[102.889654,33.244733],[102.889853,33.244604],[102.890562,33.244241],[102.891163,33.24389],[102.891935,33.243422],[102.892283,33.243067],[102.892435,33.242723],[102.892356,33.242473],[102.892056,33.242296],[102.891472,33.242111],[102.891057,33.242077],[102.890848,33.242154],[102.890742,33.242299],[102.890757,33.242475],[102.89107,33.242802],[102.891251,33.243046],[102.891266,33.243225],[102.891113,33.243297],[102.890846,33.243211],[102.890503,33.243012],[102.890284,33.242971],[102.889892,33.24299],[102.889383,33.243044],[102.889181,33.243007],[102.889042,33.242905],[102.889041,33.242784],[102.88931,33.242391],[102.889561,33.242176],[102.889737,33.241851],[102.889703,33.241628],[102.889574,33.241516],[102.889379,33.241501],[102.888687,33.241701],[102.887805,33.24201],[102.88727,33.242238],[102.887023,33.242332],[102.886869,33.242297],[102.886872,33.242161],[102.886906,33.241905],[102.886971,33.241722],[102.887066,33.241559],[102.887068,33.241412],[102.886962,33.241286],[102.886625,33.241094],[102.885931,33.240851],[102.884848,33.240541],[102.884194,33.240336],[102.883846,33.240162],[102.883863,33.239882],[102.884024,33.239736],[102.884398,33.239742],[102.88507,33.239879],[102.88529,33.239803],[102.885351,33.239348],[102.885333,33.238752],[102.885324,33.238343],[102.88524,33.23813],[102.885012,33.238159],[102.884742,33.23831],[102.884537,33.238525],[102.884197,33.238521],[102.883384,33.238282],[102.88296,33.238079],[102.882744,33.237793],[102.882795,33.237591],[102.883055,33.237506],[102.883727,33.237662],[102.884345,33.23784],[102.884622,33.237852],[102.885069,33.23768],[102.885254,33.237528],[102.885354,33.237343],[102.885294,33.237065],[102.885068,33.236788],[102.884594,33.236461],[102.884376,33.236331],[102.884382,33.236088],[102.884464,33.235773],[102.884645,33.235591],[102.884805,33.235541],[102.885037,33.235579],[102.885224,33.235722],[102.885424,33.235934],[102.885538,33.236025],[102.885654,33.235997],[102.88575,33.235887],[102.885894,33.235239],[102.886005,33.234933],[102.886336,33.234504],[102.886645,33.234228],[102.886818,33.234178],[102.886993,33.234245],[102.886945,33.234411],[102.886779,33.234708],[102.886697,33.234862],[102.886755,33.234968],[102.887152,33.235156],[102.887839,33.235474],[102.888223,33.235521],[102.888621,33.235487],[102.888952,33.235426],[102.889301,33.235258],[102.889469,33.235083],[102.889447,33.234878],[102.889308,33.23478],[102.888722,33.234691],[102.888403,33.234632],[102.888307,33.234524],[102.888388,33.234381],[102.888742,33.234203],[102.889417,33.233794],[102.889766,33.233494],[102.89004,33.233276],[102.890233,33.233132],[102.890171,33.232977],[102.889832,33.232529],[102.889523,33.232236],[102.889355,33.232205],[102.889187,33.232291],[102.889106,33.232582],[102.889023,33.232847],[102.888415,33.233116],[102.887654,33.233339],[102.887288,33.233387],[102.88697,33.23345],[102.886677,33.233472],[102.886338,33.233358],[102.886143,33.233207],[102.886112,33.233058],[102.886205,33.232957],[102.886515,33.232891],[102.88683,33.232844],[102.887074,33.232833],[102.887254,33.232817],[102.887353,33.232666],[102.887334,33.232467],[102.887173,33.231934],[102.887065,33.231665],[102.88693,33.231496],[102.886753,33.231426],[102.886469,33.231435],[102.885966,33.23162],[102.885497,33.231744],[102.885261,33.231703],[102.88518,33.231593],[102.885255,33.231377],[102.885533,33.230879],[102.886141,33.230177],[102.886318,33.23],[102.886355,33.22985],[102.886169,33.229821],[102.885683,33.229834],[102.885304,33.229768],[102.884872,33.22964],[102.884605,33.229554],[102.884403,33.229662],[102.88417,33.230331],[102.8839,33.230826],[102.883645,33.230958],[102.883432,33.230886],[102.883041,33.230494],[102.882805,33.229593],[102.88273,33.229128],[102.882816,33.228726],[102.882999,33.228686],[102.883219,33.22881],[102.883596,33.229144],[102.884144,33.229267],[102.884948,33.229353],[102.885909,33.229402],[102.886361,33.229416],[102.88671,33.229269],[102.88681,33.229111],[102.886771,33.228909],[102.886503,33.228746],[102.886237,33.228639],[102.886162,33.227884],[102.886061,33.226983],[102.885872,33.226623],[102.885606,33.226216],[102.885578,33.225929],[102.885743,33.225722],[102.886035,33.225567],[102.88636,33.225543],[102.886656,33.225617],[102.886748,33.225892],[102.886835,33.226434],[102.886993,33.22674],[102.887502,33.227143],[102.887689,33.227256],[102.887977,33.227336],[102.888141,33.227232],[102.888423,33.226394],[102.88868,33.225783],[102.888766,33.225625],[102.888722,33.225427],[102.888442,33.225208],[102.88793,33.224916],[102.887719,33.22489],[102.887335,33.224988],[102.886773,33.225222],[102.886652,33.225178],[102.886656,33.224978],[102.886881,33.224173],[102.887083,33.223284],[102.887351,33.222323],[102.88735,33.222165],[102.887182,33.222059],[102.886929,33.222156],[102.886486,33.222829],[102.886025,33.223404],[102.885738,33.223582],[102.885456,33.223606],[102.885301,33.223496],[102.885317,33.223368],[102.88569,33.223094],[102.88598,33.222849],[102.885982,33.22267],[102.885777,33.222554],[102.885279,33.222559],[102.884879,33.222571],[102.88469,33.222463],[102.884594,33.222066],[102.884611,33.221624],[102.884615,33.221397],[102.884587,33.221201],[102.884507,33.220964],[102.884458,33.220786],[102.884372,33.220649],[102.884236,33.22061],[102.884003,33.220622],[102.883763,33.220655],[102.883571,33.220592],[102.883136,33.220489],[102.882813,33.22048],[102.882516,33.220616],[102.882309,33.220678],[102.881724,33.220602],[102.881418,33.220599],[102.881144,33.220709],[102.880946,33.220894],[102.880773,33.221087],[102.88056,33.221167],[102.880412,33.221079],[102.880425,33.22094],[102.880496,33.220597],[102.880538,33.220309],[102.880419,33.219811],[102.880335,33.219572],[102.880109,33.219437],[102.879722,33.219436],[102.879485,33.219508],[102.879404,33.219671],[102.879434,33.220021],[102.87951,33.220405],[102.879482,33.220651],[102.879335,33.220916],[102.879037,33.221043],[102.878608,33.220927],[102.878093,33.220621],[102.877952,33.220433],[102.878032,33.220276],[102.878397,33.220148],[102.878605,33.220041],[102.878635,33.219896],[102.878208,33.219444],[102.87769,33.218967],[102.877591,33.218741],[102.877646,33.218529],[102.877835,33.218388],[102.878276,33.218302],[102.878636,33.218257],[102.878788,33.218144],[102.878813,33.21783],[102.878655,33.217627],[102.878452,33.217475],[102.878134,33.217403],[102.877422,33.217525],[102.876919,33.217639],[102.876517,33.21763],[102.876438,33.217628],[102.875901,33.217478],[102.875468,33.217255],[102.87526,33.217109],[102.87527,33.216943],[102.875401,33.216764],[102.876018,33.216626],[102.876501,33.216491],[102.876742,33.21636],[102.876791,33.216186],[102.876764,33.21598],[102.876598,33.215851],[102.875718,33.215945],[102.875222,33.215942],[102.87456,33.215623],[102.874043,33.215262],[102.873798,33.214896],[102.873742,33.214479],[102.873825,33.214297],[102.874007,33.214233],[102.874311,33.214335],[102.874663,33.214707],[102.875188,33.215411],[102.87548,33.215566],[102.87584,33.215588],[102.876453,33.215431],[102.876838,33.215236],[102.877047,33.214934],[102.876906,33.21466],[102.876602,33.214694],[102.876039,33.214946],[102.875677,33.214959],[102.875557,33.214765],[102.875865,33.214363],[102.876054,33.214189],[102.876171,33.213722],[102.876195,33.213451],[102.876081,33.213211],[102.876145,33.213003],[102.876289,33.212859],[102.876722,33.212873],[102.876725,33.213034],[102.876565,33.213449],[102.876528,33.213858],[102.876716,33.214141],[102.877072,33.214298],[102.877576,33.214323],[102.877638,33.214136],[102.877595,33.213788],[102.87748,33.213354],[102.877485,33.213115],[102.87759,33.212991],[102.87789,33.21295],[102.878588,33.213428],[102.878894,33.213612],[102.879436,33.213658],[102.879743,33.213542],[102.879914,33.213325],[102.879963,33.213079],[102.879793,33.212787],[102.879453,33.212491],[102.878935,33.212246],[102.878578,33.212178],[102.878098,33.212251],[102.87745,33.212346],[102.876911,33.212229],[102.876879,33.212038],[102.876957,33.211928],[102.877611,33.211889],[102.878261,33.211904],[102.878795,33.211747],[102.879264,33.211475],[102.879335,33.211228],[102.879219,33.210952],[102.878891,33.210734],[102.87822,33.211259],[102.877831,33.211528],[102.877482,33.211476],[102.877371,33.211157],[102.877402,33.21071],[102.87749,33.210271],[102.877638,33.210067],[102.878036,33.210041],[102.878486,33.210202],[102.878665,33.210143],[102.878609,33.209555],[102.878707,33.208739],[102.87839,33.208345],[102.878047,33.208411],[102.87784,33.208646],[102.877606,33.20926],[102.877352,33.20954],[102.877007,33.209719],[102.876614,33.209746],[102.876555,33.20959],[102.876723,33.209343],[102.877053,33.208925],[102.877327,33.208604],[102.877455,33.208384],[102.877392,33.208067],[102.877028,33.207618],[102.876904,33.207495],[102.876816,33.207255],[102.876899,33.207062],[102.877276,33.207013],[102.877598,33.20697],[102.877948,33.206934],[102.87815,33.206971],[102.878141,33.207131],[102.878058,33.207389],[102.878146,33.207542],[102.878347,33.207519],[102.878863,33.207368],[102.879435,33.207332],[102.880327,33.207389],[102.880866,33.207459],[102.88148,33.207627],[102.88177,33.207706],[102.881954,33.207666],[102.882086,33.207533],[102.882021,33.207197],[102.881807,33.206692],[102.881599,33.20656],[102.88097,33.206753],[102.880786,33.206708],[102.880653,33.206459],[102.880437,33.206174],[102.880042,33.205948],[102.879475,33.205672],[102.879447,33.205494],[102.879562,33.205345],[102.880021,33.205196],[102.88027,33.205071],[102.880229,33.204905],[102.879752,33.204771],[102.879455,33.204408],[102.879244,33.204007],[102.879305,33.203841],[102.879562,33.203741],[102.879794,33.203701],[102.879948,33.20361],[102.88006,33.203396],[102.880178,33.203187],[102.880336,33.203098],[102.880498,33.20312],[102.88073,33.203266],[102.881129,33.20364],[102.881377,33.203707],[102.881774,33.203669],[102.881906,33.203546],[102.881841,33.2034],[102.881566,33.20326],[102.881335,33.203136],[102.881126,33.202932],[102.880912,33.202619],[102.880859,33.202455],[102.880979,33.202245],[102.881229,33.202132],[102.881393,33.202143],[102.881501,33.202238],[102.881583,33.202584],[102.881688,33.202817],[102.881961,33.2029],[102.882372,33.202846],[102.88274,33.202735],[102.882941,33.2026],[102.883038,33.202385],[102.883051,33.202162],[102.882907,33.201918],[102.882693,33.201699],[102.882604,33.201581],[102.882159,33.20152],[102.881844,33.201388],[102.881786,33.201224],[102.881928,33.20102],[102.882102,33.200846],[102.882119,33.200652],[102.881942,33.200578],[102.881327,33.200729],[102.880923,33.200765],[102.880722,33.200646],[102.88065,33.2005],[102.880801,33.20031],[102.881012,33.200122],[102.881181,33.19999],[102.881179,33.199804],[102.880946,33.19957],[102.880336,33.199244],[102.879953,33.199189],[102.879372,33.199172],[102.879215,33.19896],[102.879259,33.19879],[102.87966,33.198478],[102.879742,33.198317],[102.879687,33.198165],[102.879058,33.198093],[102.878364,33.198178],[102.878042,33.198175],[102.877907,33.198012],[102.877974,33.197868],[102.878233,33.197725],[102.878398,33.197604],[102.878504,33.197386],[102.878419,33.197029],[102.878042,33.196635],[102.877707,33.196482],[102.877256,33.196444],[102.877068,33.196344],[102.877071,33.196216],[102.877212,33.196114],[102.877387,33.196029],[102.877485,33.195929],[102.87745,33.1958],[102.877286,33.195692],[102.877035,33.195574],[102.876999,33.195394],[102.87714,33.195287],[102.877598,33.195196],[102.877983,33.19503],[102.878249,33.194794],[102.878267,33.19459],[102.878099,33.194368],[102.877701,33.194402],[102.877191,33.194468],[102.876882,33.194419],[102.876879,33.194242],[102.877164,33.193916],[102.877537,33.19345],[102.877772,33.193017],[102.877897,33.192712],[102.877707,33.192285],[102.877449,33.192332],[102.877415,33.19263],[102.877451,33.192989],[102.877263,33.1933],[102.877043,33.193372],[102.876812,33.193258],[102.876817,33.192882],[102.876719,33.192525],[102.876395,33.192531],[102.87614,33.192925],[102.875919,33.193122],[102.875286,33.1932],[102.874933,33.193129],[102.874901,33.192999],[102.875157,33.192781],[102.875536,33.192611],[102.875701,33.192389],[102.875511,33.192157],[102.875228,33.19206],[102.874645,33.19205],[102.874508,33.191868],[102.874351,33.191556],[102.873942,33.191373],[102.87376,33.191274],[102.873756,33.19115],[102.874168,33.190886],[102.874562,33.19054],[102.874874,33.190339],[102.874902,33.190154],[102.874778,33.189949],[102.874436,33.189882],[102.874092,33.189954],[102.873812,33.189904],[102.873707,33.189662],[102.873724,33.189367],[102.873936,33.188647],[102.874013,33.188298],[102.873879,33.188068],[102.873641,33.188082],[102.87347,33.188385],[102.873336,33.188737],[102.873122,33.188904],[102.87286,33.188897],[102.872783,33.188895],[102.872461,33.188719],[102.872397,33.188704],[102.872182,33.188655],[102.872009,33.188515],[102.872055,33.188207],[102.872107,33.187895],[102.872124,33.187605],[102.872207,33.187451],[102.872172,33.187269],[102.872046,33.187197],[102.871766,33.187247],[102.871574,33.187525],[102.871402,33.187851],[102.871219,33.187862],[102.871106,33.187748],[102.870958,33.187566],[102.870774,33.18752],[102.870545,33.187568],[102.87034,33.187774],[102.870106,33.187997],[102.869903,33.188075],[102.869765,33.188021],[102.869735,33.187858],[102.869847,33.187687],[102.870022,33.187494],[102.870056,33.187295],[102.869943,33.187205],[102.869645,33.187264],[102.869403,33.187321],[102.869186,33.187254],[102.869012,33.187142],[102.86901,33.186978],[102.868996,33.186802],[102.868873,33.186657],[102.868261,33.186406],[102.867811,33.186257],[102.867636,33.186342],[102.867559,33.186512],[102.867654,33.18676],[102.867821,33.187109],[102.86795,33.187698],[102.868124,33.187929],[102.868295,33.188021],[102.868247,33.188182],[102.867978,33.188293],[102.867667,33.188406],[102.867612,33.188564],[102.867732,33.188688],[102.868062,33.188988],[102.868087,33.189224],[102.868,33.189369],[102.867759,33.18938],[102.867363,33.189134],[102.8669,33.188803],[102.866306,33.188392],[102.866066,33.188317],[102.86585,33.188391],[102.865865,33.188487],[102.866085,33.188669],[102.866163,33.188845],[102.866046,33.189096],[102.865637,33.18949],[102.865233,33.189854],[102.865188,33.190118],[102.865304,33.19031],[102.865726,33.190372],[102.866222,33.190423],[102.866556,33.190579],[102.866997,33.19073],[102.867154,33.190942],[102.867118,33.191274],[102.866913,33.191579],[102.866537,33.191707],[102.865916,33.191681],[102.865572,33.191543],[102.865437,33.191342],[102.865354,33.191015],[102.86515,33.19083],[102.864723,33.19076],[102.864323,33.19085],[102.864031,33.191048],[102.863653,33.19119],[102.863189,33.191131],[102.862945,33.190957],[102.86302,33.190831],[102.863271,33.190752],[102.863618,33.190695],[102.863695,33.190473],[102.863689,33.189923],[102.863899,33.18961],[102.864033,33.189344],[102.863892,33.189149],[102.863676,33.189272],[102.863532,33.189559],[102.863164,33.189458],[102.862897,33.189376],[102.862522,33.189389],[102.862218,33.189396],[102.861854,33.189231],[102.861396,33.188919],[102.860739,33.18882],[102.860373,33.188691],[102.860301,33.188496],[102.860288,33.188138],[102.860062,33.187779],[102.859741,33.187323],[102.859393,33.18688],[102.859235,33.186823],[102.858977,33.18702],[102.858746,33.187039],[102.858638,33.186848],[102.858553,33.186566],[102.858294,33.186339],[102.857964,33.186082],[102.857712,33.186129],[102.857578,33.186476],[102.857428,33.186812],[102.857288,33.186878],[102.857127,33.186833],[102.85706,33.186716],[102.856954,33.186002],[102.856835,33.185578],[102.856712,33.185359],[102.856502,33.185369],[102.856291,33.185584],[102.856065,33.185865],[102.855846,33.185837],[102.855861,33.185676],[102.856055,33.18546],[102.856193,33.185223],[102.856161,33.185002],[102.855977,33.184947],[102.85541,33.185052],[102.855164,33.185104],[102.854868,33.18493],[102.854544,33.184654],[102.854266,33.184372],[102.853971,33.184332],[102.853548,33.184514],[102.853386,33.184747],[102.853271,33.185035],[102.853149,33.185151],[102.852927,33.185096],[102.85259,33.184497],[102.852272,33.184126],[102.851538,33.184096],[102.851029,33.184095],[102.850819,33.183976],[102.850898,33.183715],[102.851108,33.18347],[102.851651,33.183053],[102.851841,33.182918],[102.851944,33.182979],[102.852051,33.18333],[102.85214,33.183616],[102.852448,33.183722],[102.852772,33.18371],[102.853136,33.183586],[102.853239,33.183504],[102.85319,33.183439],[102.852919,33.183342],[102.852804,33.18326],[102.852761,33.183031],[102.852691,33.18277],[102.852552,33.182487],[102.852549,33.182296],[102.852663,33.182093],[102.852848,33.181963],[102.853024,33.181977],[102.853154,33.182295],[102.853336,33.182695],[102.853636,33.182961],[102.853893,33.183215],[102.854064,33.183327],[102.854177,33.183334],[102.854236,33.183283],[102.85431,33.183057],[102.854372,33.182789],[102.854584,33.182508],[102.854597,33.182196],[102.854615,33.181885],[102.854627,33.181643],[102.854435,33.181477],[102.854056,33.181274],[102.853915,33.181135],[102.853887,33.181026],[102.853948,33.180836],[102.854027,33.180679],[102.854121,33.18066],[102.854372,33.180787],[102.854603,33.180874],[102.85484,33.180846],[102.854965,33.180722],[102.854971,33.180526],[102.854888,33.180189],[102.854819,33.179859],[102.854861,33.17962],[102.855038,33.179555],[102.855208,33.179613],[102.855286,33.179729],[102.8552,33.179943],[102.855175,33.180115],[102.855288,33.180313],[102.855445,33.180412],[102.855702,33.180375],[102.85608,33.18014],[102.856415,33.179975],[102.856454,33.179801],[102.856238,33.17942],[102.855804,33.179088],[102.855364,33.178674],[102.855138,33.178474],[102.854903,33.178352],[102.854849,33.178117],[102.854894,33.177926],[102.855164,33.177819],[102.855763,33.177666],[102.856151,33.177578],[102.856483,33.177428],[102.856698,33.177297],[102.85676,33.177042],[102.856723,33.176825],[102.856598,33.176491],[102.856289,33.176468],[102.855851,33.176542],[102.855665,33.176531],[102.855556,33.176287],[102.855606,33.176157],[102.856038,33.176036],[102.856167,33.175862],[102.856057,33.175644],[102.855541,33.175322],[102.855369,33.175146],[102.855425,33.17492],[102.855619,33.174788],[102.856024,33.174698],[102.856441,33.174547],[102.856567,33.174424],[102.856708,33.174051],[102.856968,33.173815],[102.857242,33.173623],[102.857395,33.173369],[102.857299,33.173132],[102.857016,33.173076],[102.856714,33.173269],[102.856494,33.173635],[102.856328,33.173994],[102.856179,33.174188],[102.85594,33.174207],[102.855776,33.174117],[102.855707,33.17396],[102.855719,33.173823],[102.855868,33.173689],[102.856137,33.173504],[102.856217,33.17329],[102.856086,33.173109],[102.855663,33.172954],[102.855221,33.172888],[102.854684,33.172877],[102.854534,33.17279],[102.854494,33.172654],[102.854404,33.172652],[102.85435,33.172652],[102.854332,33.173127],[102.854302,33.173219],[102.854238,33.173342],[102.853906,33.173709],[102.85351,33.174122],[102.853463,33.174094],[102.853418,33.174068],[102.852959,33.173695],[102.852582,33.173393],[102.852331,33.173199],[102.852301,33.173148],[102.852237,33.173137],[102.852192,33.173125],[102.85214,33.173095],[102.852099,33.173051],[102.852082,33.173006],[102.852073,33.172976],[102.852058,33.172935],[102.852044,33.172905],[102.85213,33.172768],[102.852718,33.172623],[102.853644,33.17233],[102.854049,33.172126],[102.85433,33.171874],[102.854426,33.171789],[102.854437,33.171779],[102.854511,33.171713],[102.854901,33.171467],[102.855005,33.171286],[102.855041,33.171202],[102.855157,33.171219],[102.855461,33.171429],[102.855469,33.171435],[102.855523,33.171488],[102.855532,33.171497],[102.855575,33.171539],[102.855642,33.171499],[102.855636,33.171369],[102.855686,33.171148],[102.855806,33.170955],[102.855947,33.17082],[102.856081,33.170778],[102.856186,33.170805],[102.856257,33.170989],[102.856113,33.171284],[102.856043,33.171431],[102.85606,33.171533],[102.856245,33.171608],[102.85629,33.17162],[102.856267,33.171576],[102.856317,33.171582],[102.856331,33.171578],[102.856337,33.171558],[102.856336,33.171525],[102.85633,33.171511],[102.85631,33.171476],[102.856287,33.171378],[102.85628,33.171261],[102.856289,33.171179],[102.856312,33.171128],[102.856314,33.171125],[102.856339,33.171101],[102.856363,33.171088],[102.856393,33.17108],[102.85643,33.17108],[102.856459,33.171087],[102.856492,33.171103],[102.856514,33.17112],[102.856562,33.171184],[102.856601,33.171244],[102.856675,33.171325],[102.856761,33.171403],[102.85679,33.171408],[102.856807,33.171396],[102.856807,33.171369],[102.856801,33.171337],[102.856786,33.171303],[102.856779,33.171275],[102.856777,33.171246],[102.856805,33.171211],[102.856845,33.171171],[102.856903,33.171114],[102.85694,33.171077],[102.856957,33.17105],[102.856946,33.170997],[102.856935,33.170937],[102.856924,33.170884],[102.856924,33.170825],[102.856938,33.170765],[102.856957,33.170714],[102.856962,33.170674],[102.856962,33.170616],[102.856957,33.170575],[102.85694,33.170544],[102.856898,33.17051],[102.856807,33.170497],[102.856712,33.170487],[102.856585,33.170469],[102.856386,33.170435],[102.856287,33.17043],[102.856173,33.170398],[102.856108,33.17036],[102.85609,33.170345],[102.856063,33.170315],[102.85605,33.170283],[102.856049,33.170249],[102.856064,33.170227],[102.856097,33.170204],[102.856143,33.170184],[102.856186,33.17017],[102.856207,33.170157],[102.856233,33.170104],[102.85626,33.170055],[102.856315,33.170021],[102.856364,33.170004],[102.856442,33.169986],[102.85653,33.169983],[102.856572,33.169987],[102.856613,33.170009],[102.85666,33.170041],[102.856697,33.17006],[102.856735,33.170068],[102.856783,33.170071],[102.856835,33.170071],[102.856879,33.170054],[102.856916,33.170026],[102.856942,33.169997],[102.856947,33.169976],[102.856944,33.169959],[102.856928,33.169946],[102.856891,33.169935],[102.856839,33.16992],[102.856788,33.169907],[102.856709,33.169865],[102.856671,33.169839],[102.856625,33.169799],[102.856601,33.169763],[102.856589,33.169718],[102.856585,33.169674],[102.856597,33.169639],[102.856641,33.169596],[102.856683,33.169562],[102.856704,33.169532],[102.856706,33.169484],[102.856692,33.169455],[102.856653,33.16942],[102.856612,33.169411],[102.856552,33.169407],[102.856501,33.169407],[102.856448,33.169426],[102.856363,33.169483],[102.856326,33.169505],[102.856274,33.169541],[102.856246,33.16956],[102.856212,33.16957],[102.856156,33.169578],[102.856104,33.169579],[102.856061,33.169569],[102.856027,33.169536],[102.855999,33.169492],[102.85598,33.169407],[102.855948,33.16934],[102.855918,33.169305],[102.85589,33.169255],[102.855874,33.169204],[102.855865,33.169169],[102.855842,33.169141],[102.85581,33.169145],[102.855764,33.169166],[102.855712,33.169172],[102.855675,33.169172],[102.855528,33.169169],[102.855521,33.16917],[102.855477,33.169174],[102.855413,33.16919],[102.855382,33.169193],[102.855341,33.169185],[102.855296,33.169159],[102.855252,33.169131],[102.85521,33.169108],[102.855195,33.169088],[102.855186,33.169059],[102.855192,33.169022],[102.855212,33.168993],[102.855245,33.168964],[102.855308,33.16893],[102.855409,33.168881],[102.855466,33.168844],[102.855513,33.168811],[102.855595,33.168758],[102.855594,33.168696],[102.855583,33.168693],[102.855547,33.168681],[102.855518,33.168681],[102.855457,33.168681],[102.855403,33.168671],[102.855358,33.168637],[102.855329,33.168594],[102.855319,33.168555],[102.85532,33.16852],[102.855337,33.168482],[102.855371,33.168453],[102.855406,33.168438],[102.855463,33.168429],[102.855538,33.16843],[102.855609,33.168429],[102.85572,33.168431],[102.855734,33.168435],[102.855756,33.168447],[102.855788,33.168459],[102.855817,33.168462],[102.855838,33.168458],[102.855857,33.168446],[102.85587,33.168433],[102.855949,33.168487],[102.855983,33.168388],[102.855992,33.168367],[102.856004,33.168361],[102.856021,33.168364],[102.856034,33.168371],[102.856094,33.168422],[102.856149,33.168464],[102.85618,33.168471],[102.856219,33.168475],[102.856263,33.168472],[102.856297,33.168464],[102.856326,33.168455],[102.856354,33.168429],[102.856371,33.168405],[102.856378,33.16838],[102.856379,33.168347],[102.856373,33.16831],[102.856368,33.1683],[102.856349,33.168261],[102.856335,33.168224],[102.85632,33.16818],[102.856309,33.168124],[102.856313,33.168071],[102.856313,33.168053],[102.856312,33.168014],[102.856306,33.167983],[102.856292,33.167954],[102.856258,33.167899],[102.856256,33.167881],[102.856262,33.167865],[102.856278,33.167848],[102.856333,33.167814],[102.856354,33.167807],[102.8565,33.16775],[102.856545,33.167745],[102.856569,33.167743],[102.856592,33.167748],[102.856599,33.167758],[102.856603,33.167773],[102.856603,33.167797],[102.856595,33.167834],[102.856582,33.167874],[102.856551,33.167918],[102.856521,33.167951],[102.856449,33.168129],[102.856441,33.168165],[102.856444,33.168215],[102.856458,33.168259],[102.856489,33.168322],[102.856517,33.168351],[102.856574,33.168388],[102.856622,33.168396],[102.856693,33.168403],[102.85676,33.168403],[102.85681,33.168398],[102.856843,33.168379],[102.856859,33.168364],[102.856863,33.168345],[102.85686,33.168311],[102.85685,33.168257],[102.856841,33.168213],[102.85684,33.168189],[102.856843,33.168161],[102.856856,33.168134],[102.856872,33.168127],[102.856884,33.168128],[102.856926,33.16813],[102.856987,33.168142],[102.856966,33.168075],[102.856943,33.168003],[102.856908,33.167892],[102.856597,33.167662],[102.856167,33.167472],[102.855957,33.167187],[102.85588,33.166919],[102.855953,33.166653],[102.85634,33.166533],[102.8566,33.166584],[102.856625,33.166589],[102.856673,33.166599],[102.856691,33.166602],[102.856692,33.166568],[102.856688,33.166519],[102.856711,33.166475],[102.856746,33.166441],[102.85679,33.166425],[102.856835,33.166424],[102.856868,33.166425],[102.856906,33.166414],[102.85696,33.166411],[102.857132,33.16644],[102.857208,33.166477],[102.857252,33.166501],[102.857284,33.166519],[102.857291,33.166525],[102.857302,33.166535],[102.857309,33.166554],[102.857307,33.166574],[102.857276,33.166588],[102.857175,33.166641],[102.857104,33.166699],[102.85706,33.16675],[102.857039,33.166796],[102.857034,33.166819],[102.85703,33.166857],[102.857039,33.166879],[102.857051,33.166896],[102.857076,33.166912],[102.8571,33.166922],[102.857122,33.166926],[102.857643,33.167564],[102.857711,33.167647],[102.857718,33.167656],[102.857736,33.167605],[102.857777,33.16751],[102.857799,33.167465],[102.857825,33.16744],[102.857857,33.167432],[102.857942,33.167426],[102.858038,33.16743],[102.858071,33.167444],[102.858093,33.167467],[102.858114,33.167501],[102.85813,33.167542],[102.858139,33.16759],[102.858135,33.167654],[102.858095,33.167748],[102.858029,33.167835],[102.857972,33.167881],[102.857922,33.167907],[102.857931,33.167917],[102.857959,33.167952],[102.858248,33.16842],[102.858524,33.168762],[102.858712,33.169257],[102.859056,33.169544],[102.859239,33.169561],[102.859343,33.169437],[102.8594,33.169228],[102.859404,33.169211],[102.859409,33.169194],[102.859416,33.169167],[102.859616,33.169344],[102.859826,33.169508],[102.859929,33.169577],[102.860084,33.169589],[102.860213,33.169551],[102.860249,33.169469],[102.860098,33.169344],[102.859809,33.169103],[102.859713,33.168954],[102.859743,33.168882],[102.859907,33.168838],[102.860066,33.168801],[102.860218,33.168672],[102.860316,33.168625],[102.860453,33.168635],[102.860573,33.16873],[102.860881,33.168954],[102.861059,33.16906],[102.861351,33.169146],[102.861687,33.169168],[102.861936,33.169123],[102.862153,33.169042],[102.862234,33.168919],[102.862206,33.168813],[102.862067,33.168776],[102.861749,33.168787],[102.861583,33.168773],[102.861505,33.168555],[102.861402,33.168229],[102.861444,33.168095],[102.861512,33.168096],[102.861593,33.168154],[102.861677,33.168331],[102.861776,33.168376],[102.861926,33.168373],[102.862051,33.168323],[102.862176,33.168216],[102.862212,33.168096],[102.862188,33.167935],[102.862176,33.167832],[102.862227,33.167727],[102.862307,33.167643],[102.862477,33.167608],[102.86265,33.167623],[102.862764,33.167736],[102.862836,33.167979],[102.862874,33.168211],[102.862941,33.168382],[102.86302,33.168427],[102.86317,33.168344],[102.863342,33.168191],[102.863466,33.168173],[102.863676,33.168258],[102.864056,33.168472],[102.864278,33.168436],[102.864555,33.168273],[102.864779,33.168146],[102.864866,33.168042],[102.864756,33.167881],[102.864747,33.167748],[102.864819,33.167533],[102.864892,33.167447],[102.865339,33.167433],[102.865508,33.167464],[102.865703,33.16752],[102.866066,33.167791],[102.866426,33.167984],[102.866879,33.16811],[102.86713,33.168122],[102.867306,33.168085],[102.8675,33.167968],[102.86763,33.167738],[102.86762,33.167553],[102.867519,33.167525],[102.867305,33.167618],[102.867033,33.167719],[102.866774,33.167739],[102.866645,33.167692],[102.866659,33.167582],[102.866786,33.167427],[102.866766,33.167386],[102.866764,33.167381],[102.86676,33.167373],[102.866544,33.166939],[102.866131,33.165877],[102.865702,33.165501],[102.86546,33.165128],[102.865616,33.16495],[102.865665,33.164893],[102.865868,33.164661],[102.866586,33.164357],[102.866885,33.164063],[102.86706,33.16375],[102.867022,33.163591],[102.866848,33.163563],[102.866805,33.163586],[102.866747,33.163615],[102.866604,33.163657],[102.86647,33.163684],[102.866401,33.163689],[102.866274,33.163688],[102.866189,33.163679],[102.866129,33.163664],[102.866087,33.163638],[102.866067,33.16362],[102.866049,33.163623],[102.866019,33.163627],[102.865602,33.163567],[102.865361,33.163177],[102.865747,33.162779],[102.866115,33.162514],[102.866124,33.162507],[102.866102,33.162461],[102.86609,33.162408],[102.866091,33.162355],[102.866104,33.162299],[102.866144,33.162241],[102.866243,33.162176],[102.866373,33.162138],[102.866468,33.162123],[102.866534,33.162126],[102.866565,33.162137],[102.866571,33.16213],[102.866684,33.162022],[102.86663,33.16167],[102.866535,33.161265],[102.866454,33.161227],[102.866143,33.161082],[102.865944,33.161058],[102.865943,33.161156],[102.865898,33.161269],[102.865759,33.16138],[102.865705,33.161424],[102.865589,33.161469],[102.865401,33.161506],[102.86525,33.161519],[102.864999,33.161521],[102.864873,33.161516],[102.864783,33.161509],[102.864754,33.161533],[102.864355,33.161631],[102.863879,33.161447],[102.863574,33.161108],[102.863502,33.160633],[102.863574,33.160248],[102.863895,33.159937],[102.864074,33.159931],[102.864087,33.15993],[102.864097,33.15993],[102.864172,33.159927],[102.864195,33.159734],[102.864263,33.159523],[102.864366,33.159369],[102.864538,33.159352],[102.86477,33.159426],[102.864819,33.159546],[102.864648,33.159691],[102.864468,33.159805],[102.864448,33.159918],[102.864519,33.159978],[102.864647,33.159967],[102.8648,33.159867],[102.864926,33.159835],[102.865059,33.159868],[102.865293,33.159982],[102.865668,33.15994],[102.865844,33.159867],[102.865913,33.159812],[102.865897,33.159707],[102.865596,33.159537],[102.865281,33.159241],[102.865248,33.159128],[102.865324,33.159033],[102.865406,33.159015],[102.865422,33.158975],[102.865555,33.158631],[102.86563,33.158123],[102.865664,33.157596],[102.865764,33.156895],[102.86569,33.156508],[102.865472,33.156047],[102.864896,33.155651],[102.864531,33.155241],[102.864187,33.15476],[102.864053,33.154249],[102.863919,33.153772],[102.863801,33.153472],[102.863529,33.153375],[102.863523,33.153372],[102.863483,33.153358],[102.863418,33.153405],[102.863339,33.153423],[102.863233,33.153429],[102.863146,33.153478],[102.86303,33.153675],[102.862897,33.153876],[102.862698,33.154113],[102.862604,33.154185],[102.862501,33.154205],[102.862377,33.154192],[102.862288,33.154155],[102.862199,33.154105],[102.8622,33.154043],[102.86223,33.153974],[102.862327,33.153945],[102.86244,33.153904],[102.86254,33.153853],[102.862582,33.153802],[102.862541,33.153721],[102.862478,33.153719],[102.862326,33.153777],[102.862241,33.153789],[102.862159,33.153744],[102.861951,33.153617],[102.861786,33.153597],[102.861669,33.153586],[102.861568,33.153538],[102.861445,33.153399],[102.86138,33.153301],[102.861378,33.153225],[102.861412,33.153129],[102.861445,33.153084],[102.861501,33.153072],[102.861592,33.153088],[102.861669,33.153154],[102.861797,33.153295],[102.861934,33.15344],[102.862053,33.153518],[102.862172,33.153568],[102.862262,33.153572],[102.862355,33.153554],[102.862383,33.153511],[102.862346,33.153449],[102.862139,33.153353],[102.861932,33.153235],[102.861884,33.153142],[102.861933,33.15307],[102.861989,33.153035],[102.862068,33.153041],[102.862212,33.153072],[102.862355,33.153086],[102.862453,33.153064],[102.862465,33.153008],[102.862458,33.15295],[102.862352,33.15288],[102.862113,33.152775],[102.862011,33.152698],[102.861962,33.152606],[102.862004,33.152495],[102.862058,33.152421],[102.862075,33.152367],[102.862069,33.152279],[102.862069,33.152217],[102.862039,33.152125],[102.861971,33.15208],[102.861823,33.152065],[102.861664,33.152065],[102.861555,33.152114],[102.861509,33.152158],[102.861504,33.152214],[102.861546,33.152268],[102.861624,33.152334],[102.861647,33.152404],[102.861616,33.152473],[102.861549,33.152506],[102.861424,33.152514],[102.861298,33.152558],[102.861222,33.152602],[102.861199,33.152716],[102.861229,33.152841],[102.86129,33.152994],[102.861275,33.15311],[102.861209,33.153191],[102.861123,33.153199],[102.861085,33.15315],[102.861046,33.153017],[102.860979,33.15291],[102.860837,33.152894],[102.860474,33.152937],[102.860215,33.152977],[102.860054,33.153038],[102.859935,33.153071],[102.859868,33.153076],[102.859809,33.153063],[102.859773,33.153084],[102.859765,33.153089],[102.859653,33.153154],[102.859383,33.153097],[102.859159,33.152865],[102.859028,33.152578],[102.858981,33.152475],[102.858995,33.152278],[102.858998,33.152237],[102.859004,33.152152],[102.859012,33.152037],[102.859012,33.151914],[102.859011,33.15167],[102.859011,33.151654],[102.859011,33.151537],[102.85901,33.151264],[102.85898,33.150789],[102.858822,33.1504],[102.858096,33.150194],[102.857882,33.150306],[102.857872,33.150312],[102.857839,33.150329],[102.857815,33.150341],[102.857804,33.150347],[102.857314,33.150602],[102.856594,33.151029],[102.855902,33.15114],[102.855704,33.151558],[102.855693,33.151609],[102.855689,33.151627],[102.855697,33.151634],[102.85571,33.151645],[102.855729,33.151658],[102.855752,33.151676],[102.855774,33.151695],[102.855803,33.15173],[102.855824,33.151769],[102.85583,33.151806],[102.855829,33.151844],[102.855822,33.151871],[102.855806,33.151899],[102.855789,33.151913],[102.855746,33.151933],[102.855704,33.151944],[102.855684,33.151956],[102.855643,33.151981],[102.855608,33.152005],[102.855547,33.152032],[102.855457,33.152109],[102.85541,33.152176],[102.85544,33.152273],[102.855508,33.152364],[102.855379,33.15251],[102.855372,33.152518],[102.855307,33.152592],[102.855174,33.152744],[102.854841,33.152703],[102.854557,33.152364],[102.854651,33.151927],[102.854685,33.151383],[102.85451,33.150835],[102.854155,33.149986],[102.853415,33.148458],[102.8534,33.148427],[102.853204,33.147897],[102.853194,33.14744],[102.853354,33.147254],[102.853364,33.147242],[102.853387,33.147215],[102.8534,33.147209],[102.853313,33.147122],[102.853303,33.147027],[102.853351,33.146871],[102.853444,33.146772],[102.853561,33.146715],[102.853679,33.146759],[102.853843,33.146878],[102.854015,33.14711],[102.854104,33.147179],[102.854224,33.14718],[102.854312,33.147169],[102.854387,33.147135],[102.854392,33.147019],[102.854388,33.146909],[102.854436,33.146795],[102.854548,33.146725],[102.854734,33.146718],[102.854999,33.146813],[102.855105,33.146836],[102.855157,33.146821],[102.855235,33.146732],[102.855236,33.146616],[102.855192,33.146522],[102.855086,33.14641],[102.855055,33.146318],[102.85511,33.146201],[102.855179,33.146183],[102.855352,33.146178],[102.85545,33.146149],[102.855534,33.146069],[102.855653,33.146024],[102.855822,33.146085],[102.855956,33.146215],[102.855979,33.146311],[102.855919,33.14642],[102.855659,33.146507],[102.855495,33.146601],[102.855453,33.146737],[102.855498,33.146889],[102.855579,33.146957],[102.855717,33.14691],[102.855852,33.146782],[102.856006,33.146612],[102.856168,33.146517],[102.856284,33.146505],[102.856384,33.146497],[102.856472,33.146434],[102.856421,33.146351],[102.856377,33.146316],[102.856424,33.146239],[102.856477,33.146163],[102.856461,33.146098],[102.856332,33.146023],[102.856272,33.145942],[102.856248,33.145822],[102.856245,33.145579],[102.856239,33.145446],[102.85616,33.145378],[102.856066,33.145388],[102.856045,33.145471],[102.856094,33.145585],[102.856089,33.14567],[102.855974,33.145804],[102.855789,33.145868],[102.855599,33.145876],[102.855516,33.145842],[102.85554,33.145764],[102.855598,33.145652],[102.855613,33.145539],[102.855509,33.145482],[102.855225,33.145487],[102.854947,33.145547],[102.854776,33.145569],[102.85455,33.145567],[102.85439,33.145581],[102.854226,33.145579],[102.854034,33.145519],[102.853896,33.145411],[102.853781,33.145297],[102.853699,33.145148],[102.8537,33.145038],[102.853755,33.144926],[102.853837,33.14487],[102.853821,33.144845],[102.853817,33.144838],[102.853756,33.144743],[102.853749,33.144732],[102.85365,33.144798],[102.85354,33.144859],[102.853486,33.14488],[102.853441,33.144889],[102.85342,33.144891],[102.853389,33.144883],[102.853364,33.144872],[102.853336,33.144851],[102.85331,33.144793],[102.853263,33.144665],[102.853239,33.144635],[102.853213,33.144591],[102.853198,33.144572],[102.853181,33.144557],[102.853164,33.144545],[102.853148,33.144523],[102.853139,33.144507],[102.853134,33.144491],[102.853135,33.144481],[102.853092,33.144486],[102.853061,33.1445],[102.853022,33.144513],[102.852993,33.144536],[102.852982,33.144554],[102.852969,33.144585],[102.852957,33.144616],[102.852938,33.144657],[102.852936,33.144686],[102.852939,33.144708],[102.852951,33.144732],[102.852965,33.144764],[102.852932,33.144777],[102.852482,33.144951],[102.85227,33.145088],[102.852083,33.145032],[102.852192,33.144876],[102.852429,33.144564],[102.852716,33.143919],[102.853168,33.143365],[102.853763,33.142953],[102.854334,33.142629],[102.855242,33.142224],[102.855628,33.141791],[102.855825,33.141443],[102.855855,33.14104],[102.855716,33.140756],[102.855567,33.14069],[102.85556,33.140705],[102.855553,33.14073],[102.855528,33.140789],[102.855493,33.140839],[102.855441,33.140877],[102.855349,33.1409],[102.855249,33.140936],[102.855172,33.140954],[102.855143,33.140953],[102.855073,33.140935],[102.855063,33.140926],[102.855043,33.140907],[102.855021,33.140868],[102.855005,33.140816],[102.854985,33.140758],[102.854965,33.140707],[102.854951,33.140664],[102.854952,33.140618],[102.854982,33.140539],[102.854987,33.140525],[102.854948,33.140517],[102.854846,33.140495],[102.85473,33.140365],[102.854561,33.140174],[102.854537,33.139898],[102.854528,33.139805],[102.854451,33.13954],[102.854293,33.139168],[102.854186,33.139134],[102.854173,33.139158],[102.854139,33.139216],[102.854106,33.139261],[102.854048,33.139305],[102.853982,33.139336],[102.853909,33.139338],[102.853866,33.139336],[102.853832,33.139319],[102.853798,33.139281],[102.853786,33.139245],[102.853791,33.139229],[102.853795,33.139206],[102.853816,33.139177],[102.853841,33.139155],[102.853863,33.139138],[102.853877,33.139125],[102.853881,33.139114],[102.853873,33.139094],[102.853864,33.139078],[102.853854,33.139064],[102.853848,33.139052],[102.85381,33.139045],[102.853567,33.138998],[102.853436,33.13895],[102.853423,33.138881],[102.853413,33.13886],[102.853393,33.138841],[102.853376,33.138832],[102.853345,33.138832],[102.853316,33.138835],[102.853286,33.138848],[102.853256,33.138865],[102.853244,33.138881],[102.85322,33.138914],[102.853205,33.138929],[102.853177,33.13895],[102.85316,33.138958],[102.853139,33.138962],[102.853122,33.138961],[102.853107,33.138956],[102.853098,33.138939],[102.853092,33.138913],[102.853089,33.13888],[102.853089,33.138839],[102.853088,33.138824],[102.853035,33.138805],[102.853026,33.138802],[102.853008,33.138794],[102.852986,33.138727],[102.852872,33.138371],[102.852869,33.138295],[102.852861,33.138121],[102.852832,33.137457],[102.852469,33.136941],[102.852266,33.13679],[102.852248,33.136776],[102.852215,33.136781],[102.852173,33.136778],[102.852128,33.136758],[102.852118,33.136748],[102.852105,33.136728],[102.852095,33.136698],[102.852091,33.136678],[102.852091,33.136659],[102.85209,33.136639],[102.852104,33.136603],[102.852123,33.136568],[102.852121,33.136544],[102.852112,33.136522],[102.852095,33.136494],[102.852053,33.136475],[102.852017,33.136465],[102.851979,33.136456],[102.851946,33.136454],[102.851923,33.136459],[102.851891,33.136467],[102.851868,33.136476],[102.851847,33.13649],[102.851832,33.136504],[102.851827,33.136512],[102.851798,33.136513],[102.851779,33.136511],[102.851751,33.136504],[102.851723,33.136495],[102.851702,33.136484],[102.851688,33.136473],[102.851671,33.136459],[102.851627,33.136446],[102.851521,33.136416],[102.851189,33.136322],[102.851047,33.136144],[102.851015,33.135757],[102.851089,33.135465],[102.851131,33.135302],[102.851124,33.135206],[102.8511,33.134863],[102.851046,33.134493],[102.850457,33.133798],[102.8502,33.133214],[102.850197,33.132493],[102.850642,33.131377],[102.850819,33.130941],[102.85087,33.130573],[102.850987,33.130066],[102.851337,33.129387],[102.852286,33.128138],[102.852825,33.127445],[102.853441,33.126173],[102.853662,33.125633],[102.85372,33.124966],[102.853622,33.123875],[102.853509,33.123364],[102.853504,33.122696],[102.85348,33.121958],[102.853571,33.120801],[102.853982,33.12021],[102.85412,33.119686],[102.854174,33.119177],[102.854178,33.11916],[102.854181,33.11914],[102.854166,33.119131],[102.854095,33.119045],[102.854038,33.118965],[102.853966,33.118863],[102.853949,33.118823],[102.853947,33.118778],[102.853954,33.118751],[102.853972,33.118723],[102.853997,33.118714],[102.854031,33.118709],[102.854077,33.118712],[102.854094,33.118716],[102.854139,33.118735],[102.854212,33.118761],[102.854248,33.118772],[102.854286,33.118788],[102.854301,33.118794],[102.854335,33.118801],[102.854376,33.118803],[102.854399,33.118796],[102.854413,33.118787],[102.85441,33.118759],[102.854394,33.118731],[102.854362,33.118723],[102.854306,33.118726],[102.854291,33.11872],[102.854252,33.118707],[102.854225,33.118689],[102.854211,33.118663],[102.854213,33.118627],[102.854217,33.118592],[102.854223,33.118562],[102.854222,33.118521],[102.854211,33.118491],[102.854193,33.118461],[102.854175,33.118441],[102.854151,33.11842],[102.854129,33.118395],[102.854114,33.118362],[102.854114,33.118314],[102.854131,33.118289],[102.854148,33.11827],[102.854176,33.118258],[102.854211,33.118248],[102.854234,33.11824],[102.854264,33.11824],[102.854298,33.118248],[102.854455,33.117953],[102.854543,33.117761],[102.854426,33.117408],[102.854206,33.117035],[102.854051,33.11654],[102.854168,33.116016],[102.854244,33.115437],[102.85473,33.114357],[102.855313,33.113541],[102.855896,33.112743],[102.856485,33.111682],[102.856583,33.111086],[102.856575,33.110577],[102.856712,33.110087],[102.857035,33.109324],[102.857044,33.109303],[102.857054,33.109278],[102.857133,33.109093],[102.857773,33.107899],[102.85779,33.107866],[102.85783,33.107792],[102.857804,33.10779],[102.857774,33.107783],[102.857748,33.107772],[102.857732,33.107759],[102.857725,33.107741],[102.857732,33.107722],[102.857747,33.107706],[102.857769,33.10769],[102.857799,33.107671],[102.857822,33.10766],[102.857842,33.107648],[102.857869,33.107631],[102.857891,33.107625],[102.857909,33.107607],[102.857915,33.107591],[102.85791,33.107566],[102.85789,33.107543],[102.857995,33.107105],[102.858042,33.1067],[102.858048,33.10665],[102.858049,33.106638],[102.858054,33.106595],[102.858056,33.106573],[102.8581,33.106194],[102.858459,33.10575],[102.858533,33.105658],[102.858535,33.105655],[102.858601,33.105574],[102.858591,33.105555],[102.858585,33.105536],[102.858585,33.105513],[102.858593,33.1055],[102.858625,33.105504],[102.858651,33.105511],[102.858744,33.10554],[102.858816,33.10557],[102.85888,33.105546],[102.858932,33.105501],[102.858947,33.105411],[102.858942,33.105392],[102.858927,33.105335],[102.858881,33.105272],[102.858861,33.105255],[102.858842,33.10523],[102.858841,33.105217],[102.858854,33.105195],[102.858874,33.105183],[102.85889,33.105181],[102.858917,33.105196],[102.85894,33.105212],[102.859009,33.105141],[102.859011,33.105138],[102.85943,33.104706],[102.859614,33.104024],[102.85946,33.102616],[102.859505,33.101633],[102.859586,33.100879],[102.860109,33.100093],[102.860259,33.099867],[102.860262,33.099833],[102.860267,33.099809],[102.860274,33.09978],[102.860286,33.099765],[102.860306,33.099764],[102.86032,33.099766],[102.860332,33.099777],[102.86055,33.099531],[102.860823,33.099223],[102.860808,33.099205],[102.8608,33.099188],[102.860783,33.099167],[102.860767,33.099153],[102.860743,33.099141],[102.860719,33.099122],[102.86071,33.099107],[102.860705,33.099086],[102.860713,33.099037],[102.860716,33.099011],[102.860725,33.098969],[102.860733,33.098949],[102.860737,33.098931],[102.860741,33.098919],[102.860755,33.098913],[102.860786,33.098915],[102.860807,33.098916],[102.860836,33.098903],[102.860862,33.09888],[102.860904,33.098841],[102.86093,33.098823],[102.86095,33.098794],[102.860968,33.098759],[102.860981,33.098735],[102.860991,33.098698],[102.861004,33.098666],[102.86101,33.098642],[102.861023,33.098613],[102.861033,33.098598],[102.861044,33.098582],[102.86106,33.098556],[102.861061,33.098539],[102.861061,33.098533],[102.861065,33.098389],[102.861071,33.098129],[102.85994,33.097442],[102.85889,33.096845],[102.858509,33.09655],[102.858194,33.096306],[102.857046,33.095461],[102.856554,33.095223],[102.855045,33.094495],[102.854324,33.094114],[102.852894,33.093258],[102.852889,33.093255],[102.852391,33.092957],[102.851535,33.092755],[102.851526,33.092753],[102.851453,33.092736],[102.851419,33.092728],[102.851355,33.092713],[102.850522,33.092517],[102.850378,33.092483],[102.850402,33.091519],[102.850403,33.09149],[102.850422,33.09071],[102.850374,33.089233],[102.850086,33.086506],[102.850318,33.085526],[102.850301,33.0844],[102.850301,33.084383],[102.8503,33.084349],[102.850294,33.083945],[102.850058,33.08164],[102.849713,33.080503],[102.849112,33.080743],[102.849001,33.080629],[102.848998,33.080643],[102.848969,33.080701],[102.848963,33.080715],[102.848931,33.080737],[102.848885,33.080757],[102.848817,33.080776],[102.848758,33.080799],[102.848731,33.080818],[102.848701,33.08087],[102.848697,33.080876],[102.848697,33.080876],[102.848658,33.080933],[102.84862,33.080975],[102.848577,33.081023],[102.84849,33.081112],[102.84839,33.081165],[102.848321,33.081192],[102.848238,33.081223],[102.84815,33.081248],[102.848028,33.081272],[102.847929,33.081285],[102.847819,33.0813],[102.847683,33.081317],[102.847586,33.081323],[102.847443,33.08131],[102.847221,33.081334],[102.846558,33.081086],[102.846283,33.080984],[102.845445,33.080591],[102.845398,33.080569],[102.845381,33.080562],[102.845363,33.080553],[102.845361,33.080552],[102.845298,33.080522],[102.845257,33.080503],[102.84525,33.080499],[102.844655,33.080159],[102.844559,33.079789],[102.844514,33.079618],[102.844512,33.07961],[102.84451,33.079602],[102.844508,33.079591],[102.844487,33.079513],[102.844495,33.079459]]]]},"properties":{"cp":[102.93341761730755,33.11135771891013],"code":"513233207","name":"麦洼乡","level":"street","center":[102.93341761730755,33.11135771891013],"fullCode":"513233207000","fullName":"四川省阿坝藏族羌族自治州红原县麦洼乡","acreageMu":838703.39,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.918,32.9156]}},{"id":"513233208","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[102.876403,32.917034],[102.877821,32.917289],[102.87904,32.917509],[102.879321,32.91756],[102.879803,32.917647],[102.880757,32.917692],[102.881664,32.916844],[102.882087,32.916275],[102.883036,32.91514],[102.883882,32.914004],[102.884545,32.913353],[102.885692,32.91248],[102.886416,32.912147],[102.887136,32.912016],[102.890012,32.910136],[102.891018,32.909434],[102.891588,32.908408],[102.892434,32.907242],[102.89303,32.906561],[102.893252,32.905846],[102.893298,32.905329],[102.893691,32.904587],[102.893877,32.903928],[102.893929,32.903181],[102.893818,32.902114],[102.893743,32.900962],[102.89373,32.90007],[102.893579,32.899262],[102.893845,32.898086],[102.894094,32.897403],[102.894163,32.897215],[102.894356,32.896685],[102.894308,32.895821],[102.894535,32.894904],[102.894937,32.893759],[102.895235,32.8927],[102.895731,32.890464],[102.895751,32.889629],[102.895698,32.888995],[102.895571,32.88859],[102.896146,32.887334],[102.897278,32.885626],[102.897787,32.885186],[102.8978,32.885175],[102.89829,32.884636],[102.89849,32.884389],[102.898817,32.883983],[102.899003,32.883325],[102.899057,32.882491],[102.898709,32.881334],[102.898907,32.878719],[102.899044,32.877282],[102.899108,32.875988],[102.899493,32.874124],[102.899904,32.871167],[102.900589,32.868129],[102.901096,32.866871],[102.901196,32.86552],[102.901659,32.861816],[102.901708,32.861155],[102.901726,32.860407],[102.901703,32.859946],[102.90189,32.85923],[102.901606,32.858247],[102.900999,32.85651],[102.900346,32.85529],[102.900031,32.854191],[102.899529,32.852341],[102.899453,32.851218],[102.899478,32.850182],[102.900031,32.849846],[102.901531,32.849871],[102.902658,32.849775],[102.904054,32.849827],[102.905111,32.849845],[102.906262,32.850181],[102.907379,32.850545],[102.908395,32.850821],[102.908585,32.850862],[102.908603,32.850866],[102.908656,32.850877],[102.908667,32.850879],[102.908682,32.850882],[102.908804,32.850908],[102.908844,32.850917],[102.908868,32.850922],[102.9089,32.850929],[102.909006,32.850952],[102.909152,32.850983],[102.909209,32.850995],[102.909397,32.851035],[102.90952,32.851062],[102.909637,32.851087],[102.909683,32.851097],[102.909691,32.851098],[102.909759,32.851113],[102.909854,32.851133],[102.910971,32.85144],[102.911271,32.851346],[102.912105,32.851084],[102.912774,32.850175],[102.913412,32.849121],[102.914116,32.848183],[102.914301,32.847809],[102.914653,32.847098],[102.914884,32.846419],[102.914945,32.84624],[102.914889,32.845721],[102.914017,32.845102],[102.913605,32.844679],[102.913418,32.844488],[102.912993,32.843704],[102.912231,32.841331],[102.912321,32.840383],[102.912854,32.839471],[102.913864,32.838538],[102.91442,32.838099],[102.915253,32.837439],[102.915502,32.837198],[102.915777,32.83693],[102.915939,32.83581],[102.916265,32.833514],[102.916081,32.832647],[102.916032,32.83184],[102.916115,32.829712],[102.916182,32.828332],[102.916515,32.827186],[102.917569,32.825852],[102.918583,32.824746],[102.919081,32.823862],[102.919542,32.823064],[102.919937,32.822229],[102.920074,32.821821],[102.920294,32.821177],[102.920502,32.819929],[102.920757,32.818833],[102.921287,32.818021],[102.921764,32.817317],[102.922549,32.81651],[102.923798,32.815581],[102.924806,32.815195],[102.92583,32.814612],[102.926973,32.813715],[102.927426,32.813288],[102.927605,32.813305],[102.927719,32.813338],[102.927769,32.813337],[102.927826,32.813299],[102.927881,32.813193],[102.92793,32.813059],[102.927908,32.812834],[102.927929,32.812814],[102.928809,32.811976],[102.929342,32.811574],[102.930562,32.810583],[102.931088,32.810276],[102.931927,32.809785],[102.932352,32.809534],[102.932941,32.809186],[102.933748,32.808709],[102.933789,32.808695],[102.934879,32.808317],[102.936013,32.80783],[102.936063,32.807793],[102.936182,32.807873],[102.936372,32.808],[102.936563,32.808126],[102.936753,32.808253],[102.937055,32.808366],[102.937357,32.80848],[102.937721,32.808585],[102.938085,32.808689],[102.93845,32.808794],[102.938684,32.808886],[102.938914,32.808975],[102.939144,32.809065],[102.939373,32.809155],[102.939603,32.809245],[102.939832,32.809335],[102.940062,32.809424],[102.940291,32.809514],[102.940521,32.809604],[102.940751,32.809694],[102.94098,32.809784],[102.941207,32.809896],[102.941434,32.810007],[102.941662,32.810119],[102.941889,32.810231],[102.942116,32.810343],[102.942343,32.810454],[102.942562,32.810599],[102.942781,32.810745],[102.943,32.81089],[102.94322,32.811035],[102.943439,32.81118],[102.943658,32.811325],[102.943877,32.81147],[102.944096,32.811616],[102.944315,32.811761],[102.944534,32.811906],[102.944753,32.812051],[102.944972,32.812196],[102.945342,32.812425],[102.945712,32.812653],[102.946081,32.812882],[102.946451,32.81311],[102.946787,32.813264],[102.947123,32.813417],[102.947425,32.813501],[102.947752,32.813556],[102.948078,32.81361],[102.94845,32.813735],[102.948798,32.813918],[102.949012,32.814078],[102.949226,32.814238],[102.94944,32.814397],[102.949654,32.814557],[102.949868,32.814716],[102.950083,32.814876],[102.950297,32.815036],[102.950511,32.815195],[102.950725,32.815355],[102.950939,32.815514],[102.951132,32.815656],[102.951325,32.815797],[102.951518,32.815939],[102.951711,32.81608],[102.951903,32.816222],[102.952096,32.816363],[102.952289,32.816505],[102.952482,32.816646],[102.952793,32.816951],[102.953105,32.817255],[102.953416,32.81756],[102.953727,32.817865],[102.954085,32.818098],[102.954444,32.818331],[102.954675,32.818433],[102.954907,32.818535],[102.955168,32.818615],[102.955428,32.818694],[102.955689,32.818773],[102.955949,32.818853],[102.95621,32.818932],[102.95647,32.819011],[102.956731,32.819091],[102.956991,32.81917],[102.957252,32.819249],[102.957512,32.819329],[102.957883,32.819499],[102.958254,32.81967],[102.958625,32.819841],[102.95889,32.820022],[102.959156,32.820204],[102.959454,32.820486],[102.959679,32.820846],[102.959756,32.821084],[102.959832,32.821323],[102.959909,32.821541],[102.959986,32.82176],[102.960082,32.822008],[102.960179,32.822256],[102.960275,32.822504],[102.960371,32.822752],[102.960467,32.823],[102.960563,32.823248],[102.96066,32.823497],[102.960756,32.823745],[102.960852,32.823993],[102.960948,32.824241],[102.96106,32.82448],[102.961171,32.824719],[102.961283,32.824958],[102.961394,32.825197],[102.961427,32.825243],[102.961621,32.825516],[102.961704,32.825577],[102.961899,32.825718],[102.96209,32.825839],[102.962282,32.825961],[102.962473,32.826083],[102.962665,32.826205],[102.962856,32.826326],[102.963048,32.826448],[102.963239,32.82657],[102.963431,32.826691],[102.963621,32.826812],[102.963622,32.826813],[102.963761,32.826901],[102.963814,32.826935],[102.964229,32.827093],[102.964644,32.827252],[102.965059,32.827411],[102.965475,32.82757],[102.96589,32.827728],[102.966084,32.827845],[102.966092,32.82785],[102.966178,32.827902],[102.966467,32.828075],[102.966742,32.828316],[102.96697,32.828636],[102.967049,32.828814],[102.967148,32.829035],[102.967178,32.829262],[102.967208,32.829489],[102.967257,32.829895],[102.967306,32.830301],[102.967318,32.830568],[102.967329,32.830834],[102.967341,32.831101],[102.967353,32.831368],[102.967336,32.831598],[102.967319,32.831829],[102.967302,32.832059],[102.967285,32.83229],[102.967262,32.832526],[102.967239,32.832762],[102.967216,32.832999],[102.967193,32.833235],[102.967174,32.833451],[102.967138,32.833853],[102.967103,32.834255],[102.967067,32.834656],[102.966978,32.834971],[102.966888,32.835285],[102.966755,32.835501],[102.966621,32.835717],[102.966476,32.835902],[102.966332,32.836087],[102.966176,32.836262],[102.966019,32.836437],[102.965863,32.836613],[102.965707,32.836788],[102.96555,32.836964],[102.965394,32.837139],[102.965099,32.837444],[102.964804,32.837749],[102.964508,32.838053],[102.964213,32.838358],[102.964213,32.838359],[102.964212,32.83836],[102.964139,32.838534],[102.964134,32.838691],[102.964223,32.838892],[102.964409,32.839183],[102.964455,32.839256],[102.964687,32.83962],[102.964919,32.839984],[102.965151,32.840348],[102.965275,32.840554],[102.965399,32.84076],[102.965524,32.840966],[102.965648,32.841173],[102.965772,32.841379],[102.965896,32.841585],[102.96602,32.841791],[102.966144,32.841997],[102.966269,32.842203],[102.966339,32.84232],[102.966393,32.842409],[102.966517,32.842615],[102.966641,32.842822],[102.966814,32.84298],[102.966987,32.843139],[102.967159,32.843298],[102.967258,32.843388],[102.967332,32.843456],[102.967505,32.843615],[102.967678,32.843774],[102.96785,32.843932],[102.968023,32.844091],[102.968196,32.84425],[102.968368,32.844409],[102.968493,32.844598],[102.968618,32.844788],[102.968721,32.844994],[102.968742,32.845037],[102.968865,32.845286],[102.968988,32.84569],[102.969112,32.846093],[102.969235,32.846497],[102.969253,32.846725],[102.969272,32.846953],[102.969287,32.847308],[102.969279,32.847664],[102.969214,32.847939],[102.969149,32.848215],[102.969008,32.848594],[102.968867,32.848974],[102.968726,32.849353],[102.968566,32.849716],[102.968406,32.850079],[102.968241,32.850253],[102.968076,32.850428],[102.967911,32.850602],[102.967746,32.850776],[102.967581,32.850951],[102.967416,32.851125],[102.967234,32.851409],[102.967051,32.851692],[102.966974,32.852007],[102.966991,32.852303],[102.967068,32.852542],[102.967144,32.85278],[102.967255,32.853058],[102.967366,32.853336],[102.967473,32.853773],[102.967488,32.854129],[102.967471,32.854386],[102.967453,32.854642],[102.967415,32.854866],[102.967377,32.85509],[102.967339,32.855314],[102.967301,32.855538],[102.967263,32.855762],[102.967225,32.855986],[102.967187,32.85621],[102.96715,32.856434],[102.967112,32.856657],[102.967074,32.856881],[102.967026,32.857276],[102.966978,32.857671],[102.966931,32.858065],[102.966936,32.858352],[102.966941,32.858639],[102.967005,32.858936],[102.967068,32.859234],[102.967168,32.859477],[102.967267,32.85972],[102.967367,32.859964],[102.967467,32.860207],[102.96757,32.860361],[102.967639,32.860462],[102.967811,32.860717],[102.968064,32.860937],[102.968435,32.861121],[102.968666,32.861254],[102.968898,32.861386],[102.969129,32.861518],[102.96936,32.861651],[102.969634,32.86195],[102.969816,32.86225],[102.969939,32.862499],[102.970063,32.862748],[102.970082,32.862793],[102.970151,32.862957],[102.970239,32.863166],[102.970326,32.863473],[102.970413,32.86378],[102.970511,32.864138],[102.970608,32.864496],[102.970876,32.864809],[102.971144,32.865121],[102.971412,32.865433],[102.97171,32.865754],[102.972007,32.866075],[102.972304,32.866396],[102.972602,32.866717],[102.972749,32.866936],[102.972896,32.867156],[102.973052,32.867494],[102.973116,32.867832],[102.973128,32.868266],[102.973118,32.868701],[102.973039,32.869085],[102.972961,32.869469],[102.972883,32.869784],[102.972806,32.870098],[102.972798,32.870493],[102.972815,32.87075],[102.972833,32.871008],[102.97285,32.871265],[102.972868,32.871522],[102.97291,32.871586],[102.973072,32.871828],[102.973396,32.871992],[102.973722,32.872076],[102.974168,32.872043],[102.974311,32.871967],[102.974696,32.871828],[102.975082,32.87169],[102.975468,32.871551],[102.975728,32.871471],[102.975988,32.871391],[102.976248,32.871312],[102.976508,32.871232],[102.976848,32.871178],[102.977188,32.871125],[102.977626,32.871118],[102.978064,32.871112],[102.978501,32.871105],[102.978774,32.87113],[102.979048,32.871154],[102.979321,32.871178],[102.979594,32.871203],[102.979867,32.871227],[102.98014,32.871251],[102.980384,32.871322],[102.980629,32.871392],[102.980873,32.871463],[102.981117,32.871533],[102.981362,32.871604],[102.981606,32.871675],[102.981851,32.871745],[102.982095,32.871816],[102.98232,32.871911],[102.982545,32.872006],[102.98277,32.872102],[102.982995,32.872197],[102.983219,32.872293],[102.983444,32.872388],[102.983669,32.872483],[102.983894,32.872579],[102.984134,32.872666],[102.984373,32.872753],[102.984447,32.872779],[102.984612,32.87284],[102.984852,32.872927],[102.985091,32.873013],[102.985331,32.8731],[102.98557,32.873187],[102.98581,32.873274],[102.986049,32.873361],[102.986289,32.873448],[102.986542,32.873649],[102.986887,32.873931],[102.986937,32.873947],[102.987283,32.874056],[102.98761,32.874101],[102.987882,32.874103],[102.988155,32.874105],[102.988427,32.874107],[102.988699,32.874108],[102.988972,32.87411],[102.989244,32.874112],[102.989516,32.874114],[102.989789,32.874116],[102.990043,32.874103],[102.990297,32.87409],[102.990321,32.874088],[102.99055,32.874077],[102.990804,32.874064],[102.991058,32.874051],[102.991312,32.874038],[102.991566,32.874025],[102.99182,32.874012],[102.992127,32.873973],[102.992231,32.873959],[102.992642,32.873906],[102.993066,32.873795],[102.99349,32.873683],[102.993711,32.873564],[102.993932,32.873445],[102.994153,32.873326],[102.994373,32.873207],[102.994594,32.873088],[102.994815,32.872969],[102.995035,32.87285],[102.995114,32.872808],[102.995256,32.872732],[102.995477,32.872613],[102.995697,32.872494],[102.995923,32.872372],[102.996068,32.872294],[102.996148,32.872251],[102.996374,32.872129],[102.996599,32.872008],[102.996825,32.871887],[102.997051,32.871765],[102.997408,32.871494],[102.997765,32.871223],[102.997893,32.870988],[102.998022,32.870753],[102.99815,32.870518],[102.998279,32.870283],[102.998492,32.869933],[102.998705,32.869583],[102.998917,32.869234],[102.99911,32.869],[102.999303,32.868765],[102.99959,32.868524],[102.999876,32.868282],[103.000272,32.868072],[103.000501,32.86791],[103.000729,32.867747],[103.000958,32.867582],[103.001187,32.867417],[103.001378,32.867279],[103.001568,32.867142],[103.001839,32.866968],[103.002172,32.866684],[103.002376,32.86655],[103.00258,32.866416],[103.002784,32.866282],[103.002988,32.866149],[103.003291,32.86587],[103.003594,32.865592],[103.003772,32.865337],[103.00395,32.865082],[103.004137,32.864759],[103.004325,32.864436],[103.004512,32.864113],[103.004619,32.863897],[103.004726,32.863681],[103.004833,32.863465],[103.00494,32.863248],[103.005047,32.863032],[103.005154,32.862816],[103.005304,32.862399],[103.005453,32.861982],[103.005603,32.861564],[103.005765,32.861214],[103.005926,32.860864],[103.006087,32.860514],[103.006192,32.860293],[103.006297,32.860073],[103.006402,32.859853],[103.006508,32.859632],[103.006667,32.859393],[103.006784,32.859314],[103.006879,32.859315],[103.006994,32.859333],[103.007068,32.859431],[103.007121,32.859593],[103.007114,32.859948],[103.007094,32.860392],[103.007075,32.860835],[103.00704,32.861099],[103.007005,32.861363],[103.006971,32.861628],[103.006936,32.861892],[103.006907,32.862328],[103.006911,32.862578],[103.006914,32.862828],[103.006981,32.863083],[103.007047,32.863339],[103.007114,32.863594],[103.00718,32.863849],[103.007242,32.864073],[103.007304,32.864297],[103.007366,32.864522],[103.007428,32.864746],[103.00749,32.86497],[103.007552,32.865194],[103.007709,32.865579],[103.007866,32.865963],[103.008023,32.866347],[103.008144,32.866606],[103.008206,32.86674],[103.008389,32.867133],[103.008573,32.867526],[103.008751,32.867907],[103.008756,32.867919],[103.008856,32.868149],[103.008956,32.868379],[103.009057,32.868608],[103.009157,32.868838],[103.009257,32.869068],[103.009357,32.869297],[103.009366,32.869317],[103.009398,32.869391],[103.009457,32.869527],[103.009557,32.869757],[103.009686,32.869992],[103.009815,32.870228],[103.009945,32.870464],[103.010074,32.870699],[103.010203,32.870935],[103.010332,32.87117],[103.010461,32.871406],[103.01059,32.871642],[103.0107,32.871885],[103.010809,32.872129],[103.010919,32.872373],[103.011028,32.872616],[103.011138,32.87286],[103.011247,32.873104],[103.011357,32.873348],[103.011466,32.873591],[103.011641,32.873973],[103.011815,32.874355],[103.01199,32.874736],[103.012164,32.875118],[103.012317,32.875452],[103.01247,32.875787],[103.012588,32.876002],[103.012705,32.876217],[103.012759,32.876315],[103.012823,32.876432],[103.012941,32.876647],[103.013017,32.876786],[103.013058,32.876862],[103.013176,32.877077],[103.013294,32.877293],[103.013412,32.877508],[103.01362,32.877893],[103.013828,32.878278],[103.014036,32.878663],[103.014156,32.879042],[103.014275,32.87942],[103.014395,32.879799],[103.014504,32.880023],[103.014614,32.880248],[103.014763,32.880482],[103.014841,32.880603],[103.015068,32.880957],[103.015294,32.881312],[103.015298,32.881318],[103.015521,32.881667],[103.015631,32.881911],[103.015758,32.882187],[103.01581,32.882462],[103.015843,32.882688],[103.015876,32.882915],[103.015885,32.883157],[103.015894,32.883399],[103.015903,32.883641],[103.015912,32.883884],[103.015921,32.884143],[103.01593,32.884403],[103.015939,32.884662],[103.015948,32.884922],[103.015958,32.885182],[103.015967,32.885441],[103.015976,32.885701],[103.015985,32.88596],[103.016026,32.886407],[103.016067,32.886854],[103.016108,32.887301],[103.01616,32.887552],[103.016211,32.887803],[103.016262,32.888135],[103.016313,32.888466],[103.016445,32.888816],[103.016577,32.889167],[103.016709,32.889517],[103.016917,32.889866],[103.016932,32.889892],[103.017099,32.890121],[103.017287,32.89027],[103.017514,32.890353],[103.017887,32.89051],[103.018261,32.890666],[103.018634,32.890822],[103.018889,32.890972],[103.019028,32.891053],[103.019144,32.891121],[103.019388,32.891352],[103.019594,32.891596],[103.019779,32.89189],[103.01989,32.892102],[103.02,32.892313],[103.020134,32.892727],[103.020268,32.893141],[103.020389,32.893528],[103.020509,32.893916],[103.02063,32.894304],[103.020731,32.894508],[103.020832,32.894711],[103.020979,32.894955],[103.021298,32.895267],[103.021582,32.895434],[103.021824,32.89553],[103.022066,32.895627],[103.022308,32.895723],[103.022549,32.89582],[103.02278,32.895911],[103.022825,32.895929],[103.023058,32.896022],[103.0231,32.896039],[103.02327,32.896185],[103.02338,32.896382],[103.023433,32.896591],[103.023428,32.896785],[103.023404,32.897043],[103.023358,32.897366],[103.02333,32.897736],[103.023324,32.898026],[103.023384,32.898201],[103.023571,32.898413],[103.023835,32.89858],[103.024138,32.898714],[103.024482,32.898768],[103.024703,32.898805],[103.024925,32.898843],[103.025147,32.898881],[103.025369,32.898919],[103.025591,32.898956],[103.025812,32.898994],[103.026034,32.899032],[103.026256,32.89907],[103.02657,32.899139],[103.026885,32.899209],[103.027069,32.89928],[103.027122,32.899301],[103.027359,32.899393],[103.027496,32.899464],[103.027681,32.89956],[103.028002,32.899727],[103.028267,32.8999],[103.028532,32.900073],[103.028737,32.900302],[103.028943,32.900532],[103.029087,32.900716],[103.029232,32.9009],[103.029376,32.901084],[103.029521,32.901268],[103.029737,32.901605],[103.029953,32.901942],[103.030168,32.902279],[103.030447,32.902539],[103.030725,32.902799],[103.031004,32.903059],[103.031279,32.903414],[103.031553,32.90377],[103.031828,32.904125],[103.032103,32.904481],[103.032388,32.904778],[103.032396,32.904786],[103.03252,32.904916],[103.032541,32.904938],[103.032689,32.905092],[103.032766,32.905172],[103.032918,32.905331],[103.032983,32.905398],[103.033003,32.905416],[103.033007,32.90542],[103.033183,32.905578],[103.033383,32.905759],[103.033583,32.90594],[103.033783,32.90612],[103.033984,32.906301],[103.034184,32.906482],[103.034276,32.90655],[103.034337,32.906596],[103.034492,32.906713],[103.034514,32.906729],[103.034845,32.906976],[103.035148,32.907236],[103.035286,32.907354],[103.035451,32.907496],[103.035641,32.907662],[103.035695,32.90771],[103.035721,32.907732],[103.035739,32.907748],[103.035761,32.907767],[103.03594,32.907923],[103.036167,32.908057],[103.036409,32.908088],[103.036434,32.908091],[103.036454,32.908094],[103.036787,32.908128],[103.036816,32.90813],[103.03683,32.908129],[103.03722,32.90808],[103.037623,32.90803],[103.038057,32.907916],[103.03849,32.907802],[103.038923,32.907688],[103.039357,32.907574],[103.039599,32.907465],[103.039841,32.907355],[103.039904,32.907216],[103.040001,32.907003],[103.040023,32.906809],[103.040032,32.906756],[103.040069,32.906536],[103.040094,32.9063],[103.040118,32.906064],[103.040143,32.905828],[103.040167,32.905593],[103.040211,32.905335],[103.040255,32.905078],[103.040376,32.904822],[103.040562,32.904491],[103.040749,32.90416],[103.040935,32.90383],[103.041054,32.903635],[103.041173,32.903441],[103.041273,32.903276],[103.041292,32.903246],[103.041298,32.903235],[103.041411,32.903052],[103.04153,32.902857],[103.041564,32.902801],[103.041595,32.902751],[103.041649,32.902662],[103.041792,32.902434],[103.041935,32.902206],[103.042079,32.901978],[103.042222,32.90175],[103.042366,32.901522],[103.042462,32.901368],[103.042509,32.901294],[103.042612,32.901169],[103.042661,32.901111],[103.042765,32.900985],[103.042812,32.900927],[103.042964,32.900744],[103.043115,32.900561],[103.043267,32.900378],[103.043303,32.900334],[103.043418,32.900195],[103.043543,32.900043],[103.04357,32.900011],[103.043721,32.899828],[103.043873,32.899645],[103.044024,32.899462],[103.044177,32.899296],[103.044329,32.899129],[103.044482,32.898963],[103.044634,32.898797],[103.044701,32.898725],[103.044787,32.898631],[103.044939,32.898465],[103.045092,32.898299],[103.045244,32.898132],[103.045406,32.89796],[103.045568,32.897788],[103.04573,32.897616],[103.045892,32.897444],[103.046054,32.897271],[103.046215,32.897099],[103.046377,32.896927],[103.046539,32.896755],[103.046701,32.896582],[103.046863,32.89641],[103.047025,32.896238],[103.047186,32.896066],[103.047373,32.895892],[103.047443,32.895826],[103.047559,32.895718],[103.047745,32.895544],[103.047932,32.89537],[103.047965,32.89534],[103.048118,32.895196],[103.048276,32.895049],[103.048304,32.895022],[103.048491,32.894849],[103.048677,32.894675],[103.048699,32.894653],[103.04884,32.894513],[103.048848,32.894504],[103.049002,32.89435],[103.049165,32.894188],[103.049327,32.894026],[103.04949,32.893864],[103.049559,32.893795],[103.049652,32.893702],[103.049815,32.89354],[103.049977,32.893378],[103.05014,32.893216],[103.050303,32.893053],[103.050574,32.892881],[103.050604,32.892874],[103.050844,32.892821],[103.05119,32.89281],[103.05155,32.892928],[103.051792,32.893033],[103.051879,32.89307],[103.052034,32.893137],[103.052275,32.893242],[103.052517,32.893346],[103.052763,32.893495],[103.053009,32.893644],[103.053309,32.893964],[103.053609,32.894283],[103.053898,32.894619],[103.054187,32.894955],[103.05446,32.8952],[103.054732,32.895446],[103.055009,32.895609],[103.055053,32.895635],[103.055054,32.895635],[103.055057,32.895636],[103.055287,32.895771],[103.055544,32.895896],[103.0558,32.896021],[103.056219,32.896109],[103.056545,32.896097],[103.056618,32.896074],[103.056833,32.896005],[103.056911,32.895966],[103.05722,32.89581],[103.0573,32.89577],[103.057513,32.895662],[103.057608,32.895614],[103.057995,32.895418],[103.058382,32.895222],[103.058627,32.895128],[103.058872,32.895034],[103.059118,32.89494],[103.059363,32.894846],[103.059608,32.894752],[103.059685,32.894723],[103.059853,32.894658],[103.060099,32.894564],[103.060344,32.89447],[103.060584,32.894397],[103.060825,32.894324],[103.061065,32.894251],[103.061305,32.894178],[103.061747,32.89417],[103.062186,32.894208],[103.062439,32.894245],[103.062692,32.894281],[103.062945,32.894317],[103.063198,32.894354],[103.063443,32.894418],[103.063688,32.894481],[103.0641,32.894589],[103.064511,32.894696],[103.064796,32.89483],[103.065081,32.894964],[103.065288,32.895144],[103.065494,32.895325],[103.065701,32.895506],[103.065907,32.895686],[103.065943,32.895717],[103.066114,32.895867],[103.066321,32.896048],[103.066505,32.896254],[103.06669,32.89646],[103.066875,32.896666],[103.06706,32.896873],[103.067257,32.897037],[103.067454,32.897202],[103.067651,32.897367],[103.067849,32.897531],[103.068037,32.897704],[103.068224,32.897876],[103.068412,32.898048],[103.0686,32.898221],[103.068788,32.898393],[103.068976,32.898566],[103.069249,32.89878],[103.069523,32.898994],[103.069594,32.899032],[103.069741,32.89911],[103.069958,32.899227],[103.070176,32.899343],[103.070394,32.89946],[103.070643,32.899546],[103.070892,32.899632],[103.071141,32.899718],[103.07139,32.899804],[103.071639,32.89989],[103.071888,32.899976],[103.072137,32.900062],[103.072386,32.900148],[103.072635,32.900234],[103.072884,32.90032],[103.07312,32.900391],[103.073355,32.900462],[103.073464,32.900495],[103.073591,32.900533],[103.073826,32.900604],[103.074062,32.900675],[103.074298,32.900746],[103.074533,32.900817],[103.074769,32.900888],[103.075005,32.900959],[103.07524,32.90103],[103.075476,32.901101],[103.075711,32.901172],[103.075947,32.901243],[103.076183,32.901314],[103.076429,32.901423],[103.076676,32.901531],[103.076923,32.90164],[103.07717,32.901749],[103.077483,32.901916],[103.077795,32.902083],[103.07798,32.902231],[103.078165,32.902379],[103.07835,32.902527],[103.078535,32.902675],[103.078721,32.902823],[103.078906,32.902971],[103.079083,32.903175],[103.079261,32.90338],[103.079568,32.90369],[103.079875,32.904],[103.080182,32.90431],[103.080489,32.90462],[103.080697,32.904744],[103.080905,32.904868],[103.081211,32.904954],[103.081535,32.904975],[103.081842,32.904914],[103.082132,32.90479],[103.082483,32.904521],[103.082493,32.904506],[103.082621,32.904314],[103.082704,32.90404],[103.082824,32.903783],[103.083004,32.903464],[103.083259,32.90321],[103.083531,32.902972],[103.083685,32.90291],[103.08384,32.902848],[103.084166,32.902853],[103.084479,32.902963],[103.084793,32.903072],[103.084926,32.90313],[103.085033,32.903176],[103.08506,32.903188],[103.085272,32.903281],[103.085335,32.903308],[103.085512,32.903385],[103.085752,32.90349],[103.085992,32.903594],[103.086231,32.903699],[103.086471,32.903803],[103.086711,32.903907],[103.086878,32.904104],[103.086967,32.904262],[103.087044,32.904398],[103.087179,32.904803],[103.087315,32.905209],[103.087377,32.905413],[103.087414,32.905533],[103.087513,32.905857],[103.087634,32.906083],[103.087755,32.906309],[103.087876,32.906536],[103.087998,32.906762],[103.088119,32.906988],[103.08824,32.907214],[103.088383,32.907426],[103.088525,32.907638],[103.088667,32.90785],[103.08881,32.908063],[103.088952,32.908275],[103.089095,32.908487],[103.089365,32.908809],[103.089636,32.909131],[103.089907,32.909454],[103.090177,32.909776],[103.090446,32.910076],[103.090714,32.910376],[103.090983,32.910677],[103.091161,32.910848],[103.09134,32.911019],[103.091519,32.911191],[103.091698,32.911362],[103.091981,32.911496],[103.092285,32.91163],[103.092542,32.911721],[103.092799,32.911812],[103.093055,32.911903],[103.093312,32.911994],[103.093568,32.912085],[103.093825,32.912176],[103.094082,32.912267],[103.094338,32.912358],[103.094429,32.91239],[103.094595,32.912449],[103.094851,32.91254],[103.09502,32.912597],[103.095086,32.912619],[103.09532,32.912698],[103.095555,32.912777],[103.09579,32.912856],[103.096024,32.912935],[103.096259,32.913014],[103.096602,32.913067],[103.096794,32.913038],[103.096882,32.912988],[103.096989,32.912928],[103.097145,32.912769],[103.097175,32.912726],[103.097276,32.912585],[103.097408,32.912402],[103.097539,32.912218],[103.097671,32.912034],[103.097803,32.911851],[103.097934,32.911667],[103.09809,32.911438],[103.098246,32.911209],[103.098403,32.91098],[103.098559,32.910751],[103.098679,32.910503],[103.0988,32.910255],[103.098876,32.909812],[103.098952,32.90937],[103.09903,32.909153],[103.099108,32.908937],[103.099186,32.90872],[103.099264,32.908503],[103.099342,32.908287],[103.09942,32.90807],[103.09964,32.907679],[103.09986,32.907288],[103.10008,32.906897],[103.1003,32.906506],[103.100435,32.906286],[103.100569,32.906065],[103.100704,32.905844],[103.100839,32.905624],[103.100974,32.905403],[103.101109,32.905182],[103.101244,32.904962],[103.101378,32.904741],[103.101513,32.90452],[103.101648,32.9043],[103.101867,32.903977],[103.102085,32.903653],[103.102304,32.90333],[103.102434,32.90309],[103.102563,32.90285],[103.102626,32.902601],[103.102688,32.902352],[103.102773,32.902006],[103.102857,32.90166],[103.102904,32.901241],[103.102952,32.900822],[103.103139,32.900435],[103.103326,32.900048],[103.103513,32.899661],[103.103723,32.899273],[103.103932,32.898885],[103.104142,32.898497],[103.104351,32.898109],[103.104508,32.897933],[103.104664,32.897758],[103.104821,32.897583],[103.104977,32.897407],[103.105281,32.897121],[103.105585,32.896836],[103.105815,32.896712],[103.105824,32.896707],[103.106063,32.896579],[103.106302,32.896451],[103.106448,32.896373],[103.106541,32.896323],[103.10685,32.896199],[103.107159,32.896075],[103.107419,32.896039],[103.107679,32.896003],[103.108083,32.895912],[103.108486,32.895821],[103.108686,32.895767],[103.108852,32.895721],[103.109218,32.895622],[103.109422,32.895512],[103.109626,32.895402],[103.109867,32.895192],[103.109908,32.895156],[103.11019,32.89491],[103.110364,32.894762],[103.110537,32.894613],[103.110711,32.894464],[103.110884,32.894316],[103.111057,32.894167],[103.111231,32.894019],[103.111404,32.89387],[103.111578,32.893721],[103.111769,32.893535],[103.11196,32.893349],[103.112152,32.893163],[103.112343,32.892977],[103.112535,32.892791],[103.112726,32.892606],[103.112917,32.89242],[103.113109,32.892234],[103.113313,32.89208],[103.113517,32.891927],[103.113722,32.891773],[103.113926,32.89162],[103.11413,32.891467],[103.114335,32.891313],[103.114539,32.89116],[103.114743,32.891006],[103.114948,32.890853],[103.115152,32.8907],[103.115325,32.890555],[103.115497,32.89041],[103.11567,32.890266],[103.115843,32.890121],[103.116016,32.889976],[103.116189,32.889832],[103.116361,32.889687],[103.116534,32.889542],[103.116755,32.88941],[103.116769,32.889402],[103.117003,32.889263],[103.117237,32.889123],[103.117472,32.888983],[103.11783,32.888779],[103.118189,32.888575],[103.11839,32.888452],[103.11859,32.888328],[103.118791,32.888205],[103.118991,32.888081],[103.119192,32.887958],[103.119393,32.887834],[103.119486,32.887731],[103.119637,32.887564],[103.119882,32.887293],[103.119947,32.887222],[103.120002,32.887195],[103.120189,32.887105],[103.120226,32.887086],[103.12043,32.886987],[103.12078,32.886775],[103.121129,32.886562],[103.121275,32.886424],[103.121431,32.886276],[103.121733,32.88599],[103.121962,32.885639],[103.12199,32.885595],[103.12219,32.885287],[103.1223,32.885063],[103.122306,32.885051],[103.12241,32.884838],[103.122546,32.884469],[103.122681,32.8841],[103.122817,32.883731],[103.122832,32.883478],[103.122847,32.883226],[103.122862,32.882973],[103.122877,32.882721],[103.122882,32.882472],[103.122885,32.882312],[103.122894,32.881904],[103.122897,32.881761],[103.122902,32.881495],[103.122883,32.881413],[103.122851,32.88127],[103.12284,32.881224],[103.122809,32.881085],[103.122715,32.880676],[103.122622,32.880266],[103.122555,32.880068],[103.122495,32.879892],[103.12245,32.879756],[103.122369,32.879519],[103.122317,32.879364],[103.122243,32.879145],[103.122121,32.878929],[103.121998,32.878713],[103.121803,32.87846],[103.121607,32.878207],[103.121483,32.877991],[103.121358,32.877775],[103.121234,32.877559],[103.121109,32.877344],[103.120981,32.877027],[103.120853,32.876709],[103.12083,32.876484],[103.120806,32.876259],[103.120819,32.876012],[103.120824,32.87592],[103.120834,32.87572],[103.120841,32.875582],[103.120883,32.87535],[103.120925,32.875117],[103.120965,32.874895],[103.121005,32.874673],[103.121045,32.87445],[103.121085,32.874228],[103.121125,32.874006],[103.121165,32.873784],[103.121316,32.873415],[103.121467,32.873047],[103.121685,32.87271],[103.121911,32.872415],[103.122137,32.87212],[103.12236,32.872035],[103.12242,32.872012],[103.122582,32.87195],[103.122843,32.87184],[103.123104,32.871731],[103.123382,32.871712],[103.12366,32.871692],[103.124081,32.871633],[103.124199,32.871555],[103.12424,32.871377],[103.124254,32.871349],[103.124402,32.871044],[103.124564,32.870711],[103.124698,32.870503],[103.124831,32.870295],[103.124965,32.870087],[103.125099,32.869879],[103.12531,32.869522],[103.125521,32.869165],[103.125733,32.868808],[103.125913,32.868614],[103.126094,32.86842],[103.126187,32.868366],[103.12641,32.868239],[103.126424,32.868231],[103.126655,32.868122],[103.126736,32.868102],[103.12704,32.868031],[103.127285,32.867982],[103.12753,32.867933],[103.127776,32.867884],[103.128021,32.867835],[103.128266,32.867786],[103.128511,32.867737],[103.128608,32.867718],[103.128757,32.867689],[103.129002,32.86764],[103.129234,32.867593],[103.129466,32.867547],[103.129699,32.867501],[103.129931,32.867455],[103.130163,32.867408],[103.130395,32.867362],[103.130628,32.867316],[103.13086,32.867269],[103.131092,32.867223],[103.131151,32.867211],[103.131182,32.867205],[103.131324,32.867177],[103.131556,32.867131],[103.131789,32.867084],[103.132057,32.867072],[103.132325,32.86706],[103.132594,32.867048],[103.132862,32.867036],[103.13313,32.867023],[103.133399,32.867011],[103.13357,32.86702],[103.133817,32.867033],[103.133862,32.867036],[103.134236,32.867055],[103.134655,32.867078],[103.135073,32.8671],[103.1353,32.867089],[103.135528,32.867078],[103.135755,32.867067],[103.135983,32.867057],[103.13621,32.867046],[103.136438,32.867035],[103.136665,32.867024],[103.136892,32.867014],[103.137122,32.867019],[103.137352,32.867025],[103.137581,32.86703],[103.137811,32.867036],[103.137887,32.867037],[103.138041,32.867041],[103.13827,32.867047],[103.1385,32.867052],[103.13873,32.867057],[103.139027,32.867038],[103.139324,32.867018],[103.139655,32.866971],[103.139737,32.866959],[103.140151,32.8669],[103.140377,32.866835],[103.140603,32.86677],[103.140829,32.866705],[103.141055,32.86664],[103.141293,32.866571],[103.14153,32.866502],[103.141767,32.866432],[103.142005,32.866363],[103.142242,32.866293],[103.142479,32.866224],[103.142717,32.866154],[103.142954,32.866085],[103.14318,32.866028],[103.143407,32.86597],[103.143633,32.865913],[103.143859,32.865856],[103.144225,32.865796],[103.14459,32.865737],[103.14483,32.865676],[103.145001,32.865633],[103.145001,32.865633],[103.14507,32.865615],[103.145311,32.865554],[103.145551,32.865493],[103.145722,32.865437],[103.145956,32.865359],[103.146361,32.865225],[103.146766,32.865092],[103.147004,32.864954],[103.147241,32.864816],[103.147478,32.864679],[103.147716,32.864541],[103.147953,32.864403],[103.148191,32.864266],[103.148428,32.864128],[103.148665,32.86399],[103.148982,32.863863],[103.148993,32.863858],[103.149321,32.863726],[103.149552,32.863713],[103.149934,32.863751],[103.1503,32.863893],[103.150666,32.864034],[103.150895,32.864069],[103.151105,32.864056],[103.151318,32.864018],[103.151355,32.864012],[103.15152,32.863972],[103.151701,32.863928],[103.152047,32.863844],[103.152298,32.863727],[103.15255,32.863609],[103.152801,32.863492],[103.153052,32.863375],[103.153304,32.863258],[103.153555,32.863141],[103.153806,32.863024],[103.154058,32.862906],[103.154309,32.862789],[103.15456,32.862672],[103.154925,32.862544],[103.154936,32.86254],[103.155312,32.862408],[103.155639,32.862332],[103.156063,32.86229],[103.156326,32.862286],[103.156589,32.862282],[103.156853,32.862278],[103.157116,32.862273],[103.157187,32.862274],[103.157342,32.862274],[103.157568,32.862275],[103.157794,32.862275],[103.157998,32.862276],[103.15802,32.862276],[103.158246,32.862277],[103.158472,32.862278],[103.158699,32.862278],[103.158925,32.862279],[103.159308,32.862244],[103.159691,32.86221],[103.159937,32.86217],[103.160184,32.862131],[103.16043,32.862092],[103.160677,32.862052],[103.160923,32.862013],[103.161169,32.861973],[103.161554,32.861906],[103.161939,32.861839],[103.1622,32.861722],[103.162461,32.861605],[103.162733,32.861362],[103.16274,32.861356],[103.162756,32.861341],[103.162837,32.861165],[103.162861,32.860939],[103.162862,32.860907],[103.162864,32.860783],[103.162867,32.860617],[103.162797,32.860309],[103.162652,32.859952],[103.162449,32.859553],[103.162247,32.859155],[103.162101,32.85883],[103.162012,32.85849],[103.16198,32.858215],[103.161948,32.85794],[103.161924,32.857714],[103.161899,32.857488],[103.161875,32.857262],[103.161851,32.857035],[103.161826,32.856809],[103.161802,32.856583],[103.161809,32.856182],[103.161815,32.855781],[103.161844,32.855552],[103.161873,32.855322],[103.161902,32.855093],[103.16193,32.854863],[103.161959,32.854634],[103.161988,32.854404],[103.162017,32.854175],[103.162045,32.853945],[103.162069,32.853519],[103.162092,32.853094],[103.162115,32.852668],[103.162139,32.852242],[103.162157,32.851823],[103.162175,32.851403],[103.162193,32.850984],[103.162212,32.850564],[103.162278,32.850126],[103.162345,32.849689],[103.162411,32.849251],[103.162466,32.849023],[103.162521,32.848796],[103.162576,32.848569],[103.162631,32.848342],[103.162686,32.848115],[103.162741,32.847888],[103.162791,32.84768],[103.162795,32.847661],[103.16285,32.847433],[103.162928,32.847037],[103.162932,32.84702],[103.163007,32.84664],[103.163085,32.846243],[103.163167,32.846032],[103.163249,32.845821],[103.16333,32.84561],[103.163412,32.845399],[103.163678,32.845072],[103.163943,32.844745],[103.164138,32.844575],[103.164333,32.844404],[103.164528,32.844233],[103.164722,32.844063],[103.164992,32.843891],[103.165033,32.843866],[103.165343,32.843668],[103.16559,32.843567],[103.165836,32.843465],[103.166083,32.843364],[103.166329,32.843263],[103.16656,32.84321],[103.16679,32.843157],[103.167021,32.843104],[103.167251,32.843051],[103.167482,32.842998],[103.167713,32.842944],[103.168098,32.842885],[103.168337,32.842897],[103.168576,32.842908],[103.168851,32.842969],[103.169054,32.843013],[103.169087,32.843021],[103.169127,32.843029],[103.169491,32.843068],[103.169758,32.843063],[103.17002,32.843059],[103.170026,32.843059],[103.170257,32.842959],[103.170303,32.84294],[103.170579,32.84282],[103.170794,32.842599],[103.170872,32.842518],[103.170992,32.842293],[103.171112,32.842069],[103.17131,32.841733],[103.171508,32.841397],[103.171657,32.841001],[103.171805,32.840605],[103.171954,32.840209],[103.172074,32.83997],[103.172195,32.839732],[103.172315,32.839493],[103.172436,32.839255],[103.172652,32.838951],[103.172963,32.838714],[103.173071,32.838648],[103.173195,32.838572],[103.173618,32.838465],[103.174021,32.838471],[103.174256,32.838517],[103.17449,32.838564],[103.174725,32.83861],[103.17496,32.838657],[103.175194,32.838703],[103.175429,32.83875],[103.175667,32.83884],[103.175904,32.83893],[103.176142,32.83902],[103.17638,32.839111],[103.176617,32.839201],[103.176855,32.839291],[103.177092,32.839381],[103.17733,32.839471],[103.177524,32.839587],[103.177718,32.839703],[103.177911,32.839819],[103.178105,32.839935],[103.178247,32.840042],[103.178287,32.840072],[103.178387,32.840148],[103.178669,32.840362],[103.17903,32.840545],[103.1793,32.840629],[103.179337,32.84064],[103.179439,32.840672],[103.179849,32.840798],[103.180189,32.840846],[103.18053,32.840894],[103.180931,32.8409],[103.181211,32.840799],[103.18149,32.840698],[103.181857,32.840494],[103.181977,32.840354],[103.182014,32.84031],[103.182172,32.840127],[103.182349,32.83988],[103.182527,32.839632],[103.182684,32.839457],[103.18284,32.839282],[103.182997,32.839107],[103.183153,32.838931],[103.183494,32.838729],[103.183512,32.838719],[103.18387,32.838506],[103.184112,32.838401],[103.184354,32.838295],[103.184596,32.83819],[103.184838,32.838084],[103.18508,32.837979],[103.185322,32.837873],[103.185564,32.837768],[103.185807,32.837662],[103.186049,32.837557],[103.186291,32.837451],[103.18653,32.837336],[103.18677,32.837222],[103.18701,32.837107],[103.18725,32.836993],[103.187489,32.836878],[103.187729,32.836764],[103.187969,32.836649],[103.188208,32.836535],[103.188448,32.83642],[103.188688,32.836306],[103.188917,32.836196],[103.189145,32.836087],[103.189374,32.835978],[103.189603,32.835868],[103.189831,32.835759],[103.19006,32.83565],[103.190446,32.835482],[103.190832,32.835314],[103.191218,32.835147],[103.191604,32.834979],[103.192008,32.834871],[103.192412,32.834764],[103.192817,32.834657],[103.193221,32.83455],[103.193463,32.834502],[103.193705,32.834454],[103.193947,32.834407],[103.194189,32.834359],[103.194536,32.834189],[103.194867,32.833927],[103.194878,32.833919],[103.195198,32.833666],[103.195295,32.833537],[103.195533,32.833313],[103.195771,32.833089],[103.196009,32.832865],[103.196178,32.832611],[103.196346,32.832358],[103.196526,32.832028],[103.196568,32.83195],[103.196706,32.831697],[103.196885,32.831367],[103.197065,32.831037],[103.197182,32.830782],[103.197287,32.830497],[103.197365,32.830282],[103.197391,32.830212],[103.197467,32.830005],[103.197496,32.829928],[103.197573,32.829607],[103.19765,32.829286],[103.197727,32.828965],[103.197749,32.828835],[103.197829,32.828571],[103.197894,32.828356],[103.19796,32.82814],[103.198043,32.827921],[103.198049,32.827908],[103.198096,32.827803],[103.198178,32.827657],[103.198416,32.827419],[103.198681,32.827316],[103.198945,32.827212],[103.199241,32.827116],[103.199537,32.827019],[103.199737,32.826998],[103.199994,32.827055],[103.200251,32.827112],[103.200529,32.827184],[103.200808,32.827255],[103.200921,32.827251],[103.201029,32.827248],[103.201429,32.827155],[103.201494,32.827135],[103.2019,32.827012],[103.202092,32.826991],[103.202127,32.826987],[103.202353,32.826961],[103.202771,32.826899],[103.202871,32.826884],[103.203162,32.82683],[103.203388,32.826699],[103.203638,32.826527],[103.203811,32.826339],[103.203983,32.826152],[103.20416,32.825835],[103.204337,32.825518],[103.204369,32.825468],[103.204475,32.8253],[103.204614,32.825081],[103.204762,32.824737],[103.20491,32.824394],[103.20513,32.824015],[103.205212,32.823969],[103.20534,32.823927],[103.205725,32.823883],[103.206164,32.823907],[103.206469,32.823958],[103.206707,32.82401],[103.206944,32.824063],[103.207147,32.824133],[103.207287,32.824181],[103.207629,32.824299],[103.207968,32.824513],[103.208289,32.824775],[103.208569,32.825118],[103.20869,32.825314],[103.20881,32.82551],[103.208864,32.825728],[103.208917,32.825947],[103.208946,32.826382],[103.208938,32.826762],[103.208931,32.827141],[103.208934,32.827566],[103.208937,32.827991],[103.208987,32.828346],[103.209096,32.828573],[103.20932,32.828852],[103.209613,32.829066],[103.209906,32.82928],[103.210091,32.829412],[103.210277,32.829543],[103.210462,32.829675],[103.210648,32.829807],[103.210833,32.829939],[103.211019,32.830071],[103.211243,32.830195],[103.211468,32.830319],[103.211693,32.830443],[103.211918,32.830567],[103.212142,32.830691],[103.212367,32.830815],[103.212592,32.83094],[103.212817,32.831064],[103.213161,32.831234],[103.213506,32.831403],[103.213851,32.831573],[103.21427,32.831692],[103.214391,32.831702],[103.214708,32.831731],[103.214957,32.831742],[103.215206,32.831754],[103.215474,32.831756],[103.215742,32.831757],[103.21601,32.831759],[103.216278,32.831761],[103.216546,32.831762],[103.216814,32.831764],[103.217082,32.831766],[103.21735,32.831767],[103.21779,32.831779],[103.21823,32.831791],[103.218502,32.831799],[103.218669,32.831803],[103.218898,32.831838],[103.219126,32.831874],[103.219506,32.832025],[103.219754,32.832189],[103.219932,32.832353],[103.22011,32.832518],[103.220412,32.832828],[103.220715,32.833139],[103.221017,32.833449],[103.221258,32.833696],[103.221499,32.833943],[103.221653,32.834107],[103.221808,32.834272],[103.221963,32.834436],[103.222117,32.8346],[103.222272,32.834765],[103.222426,32.834929],[103.222581,32.835093],[103.222736,32.835258],[103.22289,32.835422],[103.223045,32.835586],[103.223355,32.835888],[103.223664,32.83619],[103.223823,32.836419],[103.223981,32.836648],[103.224167,32.836933],[103.224352,32.837218],[103.224517,32.837422],[103.224682,32.837626],[103.224847,32.83783],[103.225012,32.838034],[103.225177,32.838238],[103.225342,32.838442],[103.225483,32.838664],[103.225625,32.838887],[103.225766,32.83911],[103.225908,32.839333],[103.226049,32.839555],[103.226191,32.839778],[103.226332,32.840001],[103.226474,32.840224],[103.226615,32.840447],[103.226757,32.840669],[103.22682,32.840888],[103.226882,32.841107],[103.226945,32.841325],[103.227008,32.841544],[103.227087,32.841884],[103.227166,32.842224],[103.227219,32.842467],[103.227272,32.84271],[103.227373,32.843103],[103.227474,32.843495],[103.227575,32.843888],[103.227702,32.844261],[103.227828,32.844634],[103.228032,32.844943],[103.228237,32.845221],[103.228415,32.845426],[103.228593,32.84563],[103.228853,32.84594],[103.229021,32.846217],[103.229189,32.846493],[103.229437,32.846868],[103.229684,32.847243],[103.229932,32.847618],[103.23006,32.847902],[103.230187,32.848186],[103.230302,32.8486],[103.230416,32.849015],[103.23053,32.849429],[103.230602,32.849689],[103.230673,32.849948],[103.230745,32.850207],[103.230816,32.850466],[103.230944,32.850775],[103.231169,32.850988],[103.231416,32.851119],[103.231757,32.851222],[103.232141,32.851243],[103.232428,32.851248],[103.232715,32.851253],[103.232945,32.851207],[103.233176,32.851161],[103.233579,32.851102],[103.233982,32.851044],[103.234211,32.851079],[103.23444,32.851115],[103.234697,32.851183],[103.234954,32.851251],[103.235239,32.851368],[103.235524,32.851485],[103.235921,32.851634],[103.236318,32.851782],[103.236715,32.851931],[103.237113,32.852079],[103.237532,32.852182],[103.23777,32.852234],[103.238009,32.852286],[103.238247,32.852338],[103.238485,32.85239],[103.238731,32.852404],[103.238976,32.852418],[103.239221,32.852432],[103.239467,32.852446],[103.239712,32.85246],[103.239957,32.852474],[103.240202,32.852482],[103.240447,32.852491],[103.240692,32.852499],[103.240937,32.852507],[103.241182,32.852515],[103.241426,32.852524],[103.241671,32.852532],[103.241916,32.85254],[103.242161,32.852549],[103.242406,32.852557],[103.242664,32.852581],[103.242922,32.852605],[103.243179,32.852628],[103.243437,32.852652],[103.243695,32.852676],[103.243953,32.8527],[103.244211,32.852724],[103.244469,32.852747],[103.244828,32.852827],[103.245187,32.852906],[103.24553,32.852992],[103.245873,32.853077],[103.245913,32.853095],[103.245991,32.853129],[103.246216,32.853228],[103.246574,32.853442],[103.24679,32.853542],[103.247006,32.853642],[103.247221,32.853742],[103.247437,32.853842],[103.247653,32.853942],[103.247869,32.854041],[103.248084,32.854141],[103.2483,32.854241],[103.248306,32.854244],[103.2487,32.854408],[103.249027,32.85445],[103.249119,32.854462],[103.249339,32.854465],[103.249371,32.854466],[103.249552,32.854468],[103.249623,32.854469],[103.249875,32.854473],[103.250127,32.854476],[103.250379,32.85448],[103.250631,32.854484],[103.25091,32.854454],[103.251188,32.854424],[103.251578,32.854382],[103.251968,32.85434],[103.252358,32.854298],[103.252799,32.854229],[103.253241,32.854159],[103.253683,32.85409],[103.253934,32.854041],[103.254184,32.853992],[103.254435,32.853943],[103.254686,32.853894],[103.254937,32.853845],[103.255188,32.853796],[103.255439,32.853747],[103.25569,32.853698],[103.255941,32.853649],[103.256191,32.8536],[103.256442,32.853551],[103.256693,32.853502],[103.256923,32.853489],[103.257153,32.853476],[103.257421,32.853512],[103.257649,32.853612],[103.257877,32.85376],[103.258075,32.853916],[103.258272,32.854073],[103.25847,32.854229],[103.258668,32.854385],[103.258827,32.854565],[103.258986,32.854744],[103.259145,32.854924],[103.259304,32.855104],[103.259464,32.855283],[103.259623,32.855463],[103.259782,32.855642],[103.259941,32.855822],[103.26013,32.85597],[103.260318,32.856119],[103.260698,32.856318],[103.260923,32.856411],[103.261149,32.856505],[103.261374,32.856599],[103.2616,32.856693],[103.261822,32.856786],[103.261825,32.856787],[103.26205,32.856881],[103.262276,32.856975],[103.262501,32.857068],[103.26279,32.857256],[103.263079,32.857444],[103.263419,32.857696],[103.263759,32.857948],[103.264099,32.8582],[103.264272,32.858348],[103.264444,32.858496],[103.264617,32.858643],[103.264789,32.858791],[103.264962,32.858939],[103.265134,32.859087],[103.265456,32.859268],[103.265664,32.859368],[103.265872,32.859469],[103.266101,32.85955],[103.266329,32.859631],[103.266557,32.859712],[103.266785,32.859793],[103.267013,32.859874],[103.267241,32.859955],[103.26746,32.860023],[103.267679,32.86009],[103.267898,32.860158],[103.268117,32.860225],[103.268336,32.860293],[103.268555,32.86036],[103.268774,32.860428],[103.268993,32.860495],[103.269212,32.860562],[103.269431,32.86063],[103.269696,32.860755],[103.269961,32.860881],[103.270284,32.861046],[103.270567,32.861243],[103.270774,32.861457],[103.270999,32.861701],[103.27114,32.861885],[103.271281,32.862069],[103.271423,32.862253],[103.271564,32.862437],[103.271705,32.862621],[103.271847,32.862804],[103.2721,32.863106],[103.272353,32.863408],[103.27255,32.863596],[103.272747,32.863784],[103.272939,32.863946],[103.27313,32.864107],[103.273321,32.864268],[103.273513,32.86443],[103.273704,32.864591],[103.273896,32.864753],[103.274122,32.864965],[103.274327,32.865307],[103.274437,32.865511],[103.274548,32.865714],[103.274689,32.865953],[103.274829,32.866191],[103.27497,32.866429],[103.27511,32.866667],[103.275256,32.866992],[103.275402,32.867318],[103.275493,32.867601],[103.275584,32.867885],[103.275757,32.868299],[103.275931,32.868713],[103.276089,32.868973],[103.276247,32.869233],[103.276445,32.869421],[103.276642,32.86961],[103.276865,32.869752],[103.277088,32.869894],[103.277311,32.870036],[103.277534,32.870178],[103.277748,32.870262],[103.277962,32.870345],[103.278176,32.870429],[103.278389,32.870512],[103.27879,32.870588],[103.279191,32.870664],[103.279591,32.87074],[103.279859,32.870774],[103.280126,32.870808],[103.280393,32.870841],[103.280661,32.870875],[103.280928,32.870909],[103.281195,32.870943],[103.281463,32.870977],[103.28173,32.871011],[103.282163,32.87107],[103.282596,32.87113],[103.28303,32.87119],[103.283267,32.871266],[103.283505,32.871342],[103.283743,32.871418],[103.283981,32.871494],[103.28423,32.871611],[103.284479,32.871729],[103.284728,32.871847],[103.284978,32.871965],[103.285215,32.872065],[103.285453,32.872165],[103.285688,32.872267],[103.285923,32.872369],[103.286158,32.872471],[103.286393,32.872573],[103.286628,32.872675],[103.286863,32.872777],[103.287098,32.872879],[103.287333,32.872981],[103.287546,32.873061],[103.287759,32.873142],[103.287972,32.873222],[103.288185,32.873303],[103.288398,32.873383],[103.288611,32.873464],[103.288824,32.873544],[103.289037,32.873625],[103.28925,32.873705],[103.289463,32.873786],[103.289709,32.873894],[103.289956,32.874002],[103.290203,32.87411],[103.29045,32.874218],[103.290696,32.874326],[103.290943,32.874434],[103.291205,32.874492],[103.291468,32.87455],[103.29173,32.874609],[103.291992,32.874667],[103.292254,32.874725],[103.292516,32.874783],[103.292779,32.874841],[103.293041,32.874899],[103.293464,32.87493],[103.293887,32.874961],[103.294311,32.874992],[103.294734,32.875022],[103.295096,32.875093],[103.29514,32.875115],[103.295514,32.875307],[103.295662,32.875519],[103.295848,32.875861],[103.295994,32.876202],[103.296141,32.876542],[103.296262,32.876897],[103.296383,32.877252],[103.296503,32.877607],[103.296515,32.877995],[103.296471,32.878316],[103.296254,32.878653],[103.296135,32.878853],[103.296016,32.879053],[103.295838,32.879349],[103.29566,32.879645],[103.295554,32.879855],[103.295447,32.880065],[103.295341,32.880275],[103.295234,32.880485],[103.295128,32.880694],[103.295021,32.880904],[103.294909,32.881282],[103.294796,32.88166],[103.294764,32.881886],[103.294731,32.882112],[103.294724,32.882442],[103.294717,32.882773],[103.294691,32.88312],[103.294665,32.883467],[103.294612,32.883736],[103.294559,32.884005],[103.294506,32.884275],[103.294453,32.884544],[103.294343,32.884796],[103.294232,32.885047],[103.294121,32.885298],[103.294011,32.88555],[103.293865,32.885741],[103.29372,32.885933],[103.293575,32.886125],[103.293429,32.886316],[103.293284,32.886508],[103.293139,32.8867],[103.292993,32.886891],[103.292848,32.887083],[103.292703,32.887275],[103.292557,32.887466],[103.292438,32.88774],[103.292449,32.888095],[103.292615,32.888436],[103.292745,32.888639],[103.292876,32.888842],[103.293178,32.889054],[103.293481,32.889265],[103.29385,32.889472],[103.294219,32.88968],[103.294432,32.88984],[103.294644,32.890001],[103.294857,32.890161],[103.29507,32.890322],[103.295263,32.890473],[103.295456,32.890625],[103.29565,32.890777],[103.295843,32.890929],[103.296036,32.89108],[103.29623,32.891232],[103.296423,32.891384],[103.296616,32.891535],[103.296795,32.891724],[103.296973,32.891912],[103.297151,32.8921],[103.29733,32.892288],[103.297418,32.892579],[103.29739,32.892745],[103.297375,32.892837],[103.297357,32.892895],[103.297357,32.892896],[103.297305,32.893068],[103.297236,32.893299],[103.297166,32.893531],[103.297097,32.893762],[103.297033,32.894035],[103.29697,32.894309],[103.296888,32.894678],[103.29686,32.895082],[103.296837,32.895308],[103.296814,32.895534],[103.296822,32.895887],[103.296824,32.895953],[103.296862,32.896193],[103.296892,32.89639],[103.296961,32.896777],[103.297,32.897003],[103.297039,32.897228],[103.297077,32.897453],[103.297083,32.897488],[103.297116,32.897678],[103.297244,32.898019],[103.297371,32.898359],[103.297528,32.898644],[103.297556,32.898695],[103.297686,32.898929],[103.297843,32.89923],[103.298,32.89953],[103.2981,32.899822],[103.2982,32.900114],[103.298318,32.900446],[103.298335,32.900494],[103.298436,32.900778],[103.298486,32.901183],[103.298491,32.90142],[103.298496,32.901657],[103.298501,32.901894],[103.298506,32.902131],[103.298499,32.902368],[103.298491,32.902604],[103.298483,32.902841],[103.298475,32.903078],[103.298468,32.903314],[103.29846,32.903551],[103.298453,32.903914],[103.298446,32.904277],[103.298459,32.904616],[103.298472,32.904955],[103.298504,32.905238],[103.298537,32.905521],[103.298542,32.905769],[103.298547,32.906017],[103.298552,32.906264],[103.298556,32.906512],[103.298561,32.90676],[103.298566,32.907008],[103.298571,32.907255],[103.298576,32.907503],[103.298552,32.907777],[103.298528,32.908051],[103.298503,32.908326],[103.298479,32.9086],[103.298474,32.908852],[103.298469,32.909103],[103.298464,32.909355],[103.298459,32.909607],[103.298455,32.909859],[103.29845,32.910111],[103.298445,32.910363],[103.29844,32.910615],[103.298452,32.910877],[103.298463,32.911139],[103.298475,32.9114],[103.298487,32.911662],[103.298499,32.911924],[103.29851,32.912186],[103.298522,32.912448],[103.298534,32.912709],[103.298582,32.913151],[103.298631,32.913593],[103.29868,32.914034],[103.298702,32.914438],[103.298723,32.914842],[103.298724,32.915277],[103.298726,32.915711],[103.298625,32.916016],[103.298408,32.91632],[103.298184,32.916518],[103.29796,32.916716],[103.297858,32.916782],[103.297494,32.917017],[103.297282,32.917103],[103.29707,32.917189],[103.296858,32.917275],[103.296645,32.917361],[103.2964,32.917455],[103.296154,32.91755],[103.295909,32.917645],[103.295663,32.917739],[103.295418,32.917834],[103.295173,32.917928],[103.294927,32.918023],[103.294682,32.918118],[103.294436,32.918212],[103.294191,32.918307],[103.293945,32.918402],[103.2937,32.918496],[103.293454,32.918591],[103.293209,32.918686],[103.292841,32.918882],[103.292474,32.919078],[103.29226,32.919253],[103.291987,32.919492],[103.291847,32.919781],[103.291792,32.920011],[103.291737,32.920241],[103.291729,32.920604],[103.291722,32.920967],[103.291708,32.921201],[103.291694,32.921434],[103.29168,32.921668],[103.291666,32.921902],[103.29166,32.922209],[103.291653,32.922515],[103.29161,32.922805],[103.291566,32.923094],[103.291444,32.92348],[103.291304,32.923786],[103.291137,32.924126],[103.29097,32.924465],[103.290803,32.924805],[103.290592,32.925163],[103.29038,32.925521],[103.290169,32.925878],[103.290026,32.926082],[103.289883,32.926286],[103.28974,32.92649],[103.289597,32.926694],[103.289476,32.926886],[103.289354,32.927078],[103.289232,32.92727],[103.28911,32.927462],[103.288989,32.927654],[103.288867,32.927846],[103.288706,32.928046],[103.288546,32.928247],[103.288385,32.928448],[103.288224,32.928648],[103.288064,32.928849],[103.287903,32.929049],[103.287742,32.92925],[103.287582,32.929451],[103.287421,32.929651],[103.28726,32.929852],[103.2871,32.930052],[103.286939,32.930253],[103.286627,32.930507],[103.286506,32.930605],[103.286315,32.930761],[103.286083,32.930895],[103.285851,32.931029],[103.285542,32.931113],[103.285233,32.931197],[103.284898,32.931217],[103.284563,32.931237],[103.284299,32.931231],[103.284036,32.931226],[103.283773,32.93122],[103.283509,32.931214],[103.283246,32.931209],[103.282982,32.931203],[103.282719,32.931197],[103.282456,32.931192],[103.282321,32.931255],[103.28228,32.931383],[103.282275,32.931625],[103.282384,32.931966],[103.282554,32.932162],[103.282761,32.932213],[103.283144,32.932291],[103.283526,32.932369],[103.283767,32.932425],[103.284007,32.932481],[103.284248,32.932536],[103.284489,32.932592],[103.284729,32.932648],[103.28497,32.932704],[103.285022,32.932716],[103.285211,32.93276],[103.285451,32.932815],[103.285857,32.932952],[103.286262,32.933089],[103.286667,32.933226],[103.287073,32.933363],[103.28711,32.933375],[103.28733,32.933447],[103.28744,32.933483],[103.287587,32.933531],[103.287844,32.933615],[103.288101,32.9337],[103.288463,32.933834],[103.288701,32.933912],[103.288748,32.933927],[103.289033,32.93402],[103.289397,32.934056],[103.289628,32.934045],[103.289646,32.934044],[103.289668,32.934035],[103.289955,32.93392],[103.290172,32.93378],[103.290389,32.933639],[103.290607,32.933498],[103.290735,32.933415],[103.290824,32.933357],[103.290998,32.933244],[103.291041,32.933217],[103.291155,32.933143],[103.291259,32.933076],[103.291476,32.932935],[103.291693,32.932794],[103.291911,32.932654],[103.292128,32.932513],[103.292325,32.932379],[103.292522,32.932245],[103.292718,32.932111],[103.292915,32.931977],[103.293112,32.931844],[103.293309,32.93171],[103.293506,32.931576],[103.293702,32.931442],[103.293899,32.931308],[103.294096,32.931174],[103.294277,32.931016],[103.294458,32.930857],[103.29464,32.930698],[103.294821,32.930539],[103.295002,32.93038],[103.295183,32.930221],[103.295365,32.930062],[103.295546,32.929904],[103.295727,32.929745],[103.295908,32.929586],[103.296092,32.929383],[103.296276,32.929179],[103.296459,32.928976],[103.296643,32.928773],[103.296826,32.928569],[103.29701,32.928366],[103.297194,32.928163],[103.297377,32.927959],[103.297531,32.92778],[103.297684,32.9276],[103.297838,32.92742],[103.297991,32.92724],[103.298145,32.927061],[103.298299,32.926881],[103.298452,32.926701],[103.298606,32.926521],[103.298759,32.926342],[103.298913,32.926162],[103.299103,32.925987],[103.299294,32.925812],[103.299484,32.925637],[103.299674,32.925462],[103.299964,32.925352],[103.300308,32.925309],[103.300559,32.92524],[103.30081,32.92517],[103.301032,32.925092],[103.301253,32.925014],[103.301548,32.924836],[103.301842,32.924658],[103.30201,32.924504],[103.302178,32.92435],[103.302346,32.924195],[103.302513,32.924041],[103.302681,32.923887],[103.302849,32.923732],[103.303016,32.923578],[103.303184,32.923424],[103.303352,32.923269],[103.30352,32.923115],[103.303723,32.922977],[103.303927,32.922838],[103.304131,32.9227],[103.304335,32.922561],[103.304538,32.922423],[103.304742,32.922284],[103.304946,32.922146],[103.30515,32.922007],[103.305526,32.921851],[103.305657,32.921797],[103.305902,32.921695],[103.305997,32.921687],[103.306209,32.921667],[103.306592,32.921672],[103.306801,32.921788],[103.306952,32.921919],[103.30707,32.922155],[103.307082,32.922179],[103.307116,32.922357],[103.307101,32.922457],[103.307073,32.922647],[103.307029,32.922937],[103.306966,32.923188],[103.306966,32.92319],[103.306965,32.923192],[103.306904,32.923439],[103.306841,32.923691],[103.306779,32.923942],[103.306716,32.924193],[103.306654,32.924445],[103.306592,32.924696],[103.306529,32.924947],[103.306572,32.925244],[103.306615,32.925541],[103.306696,32.925967],[103.306777,32.926393],[103.306858,32.926819],[103.306985,32.927176],[103.307112,32.927532],[103.307233,32.927756],[103.307354,32.927979],[103.307457,32.928171],[103.307469,32.928193],[103.307474,32.928203],[103.307474,32.928203],[103.307595,32.928426],[103.307694,32.928534],[103.307763,32.92861],[103.307857,32.928712],[103.30812,32.928999],[103.308298,32.929195],[103.308476,32.929391],[103.308655,32.929587],[103.308833,32.929784],[103.309151,32.930045],[103.309235,32.930115],[103.309468,32.930306],[103.309484,32.930319],[103.309785,32.930567],[103.309992,32.930763],[103.310103,32.931024],[103.310077,32.931346],[103.309977,32.931683],[103.309884,32.931964],[103.309792,32.932246],[103.309698,32.932504],[103.309603,32.932762],[103.309508,32.93302],[103.309414,32.933278],[103.309319,32.933536],[103.309224,32.933793],[103.309129,32.934051],[103.309035,32.934309],[103.308817,32.934699],[103.3086,32.935089],[103.308581,32.935123],[103.308531,32.935212],[103.308383,32.935478],[103.308101,32.935803],[103.308098,32.935807],[103.308056,32.935855],[103.307898,32.936037],[103.30782,32.936127],[103.307539,32.936452],[103.307133,32.936625],[103.307085,32.936636],[103.306863,32.93669],[103.306861,32.93669],[103.306859,32.936691],[103.306594,32.936754],[103.306325,32.936819],[103.306056,32.936884],[103.305681,32.936943],[103.305307,32.937002],[103.305046,32.937063],[103.304786,32.937125],[103.304526,32.937186],[103.304266,32.937247],[103.304042,32.93739],[103.303819,32.937532],[103.303661,32.937772],[103.303504,32.938012],[103.303436,32.938374],[103.303487,32.938731],[103.30354,32.938957],[103.303593,32.939184],[103.303689,32.939411],[103.303785,32.939638],[103.303882,32.939866],[103.303978,32.940093],[103.304109,32.94028],[103.304239,32.940468],[103.30437,32.940655],[103.3045,32.940843],[103.304792,32.941121],[103.305084,32.941399],[103.305233,32.941689],[103.305383,32.941979],[103.305578,32.942353],[103.305772,32.942727],[103.306025,32.943021],[103.306278,32.943315],[103.306398,32.943583],[103.306517,32.943851],[103.306647,32.944087],[103.306776,32.944322],[103.307,32.944672],[103.307223,32.945022],[103.307437,32.945348],[103.307651,32.945674],[103.307867,32.945919],[103.308082,32.946164],[103.308413,32.946445],[103.308744,32.946726],[103.309075,32.947007],[103.309406,32.947289],[103.309601,32.947481],[103.309796,32.947673],[103.309992,32.947866],[103.310187,32.948058],[103.310382,32.94825],[103.310578,32.948443],[103.310773,32.948635],[103.310968,32.948827],[103.311059,32.94907],[103.311035,32.949328],[103.310876,32.949617],[103.310695,32.9498],[103.310515,32.949983],[103.310334,32.950166],[103.310153,32.950349],[103.309955,32.950691],[103.309756,32.951034],[103.309635,32.951339],[103.309515,32.951644],[103.309444,32.951865],[103.309373,32.952086],[103.309302,32.952307],[103.309231,32.952528],[103.309089,32.952919],[103.308947,32.95331],[103.308805,32.953702],[103.30879,32.953992],[103.308775,32.954282],[103.308864,32.954622],[103.308953,32.954961],[103.309045,32.955181],[103.309137,32.9554],[103.30936,32.955767],[103.309583,32.956134],[103.309807,32.956501],[103.309918,32.956712],[103.310028,32.956923],[103.310139,32.957134],[103.31025,32.957345],[103.310369,32.957662],[103.310487,32.957978],[103.310594,32.958399],[103.310607,32.958449],[103.310681,32.958732],[103.310755,32.959015],[103.31077,32.959257],[103.310785,32.9595],[103.310867,32.959722],[103.310949,32.959945],[103.311031,32.960167],[103.311113,32.96039],[103.311219,32.960627],[103.311324,32.960865],[103.31143,32.961102],[103.311536,32.96134],[103.311641,32.961577],[103.311747,32.961815],[103.311853,32.962052],[103.311958,32.96229],[103.312073,32.962498],[103.312187,32.962707],[103.312301,32.962916],[103.312416,32.963124],[103.31253,32.963333],[103.312644,32.963542],[103.31286,32.963762],[103.313076,32.963983],[103.313186,32.964242],[103.313219,32.964533],[103.313158,32.96471],[103.313002,32.964837],[103.312656,32.964962],[103.312251,32.96502],[103.311885,32.965081],[103.311625,32.965198],[103.311514,32.965248],[103.311365,32.965315],[103.311184,32.965425],[103.31117,32.965433],[103.310976,32.965551],[103.310782,32.965669],[103.310588,32.965787],[103.310394,32.965906],[103.3102,32.966024],[103.310035,32.966234],[103.310089,32.966472],[103.310252,32.966844],[103.310396,32.96706],[103.31054,32.967277],[103.310777,32.967489],[103.310962,32.967654],[103.311013,32.967701],[103.311254,32.967946],[103.311495,32.968192],[103.311622,32.968323],[103.311735,32.968438],[103.312013,32.96871],[103.312291,32.968982],[103.31252,32.969224],[103.312748,32.969465],[103.313044,32.969782],[103.313291,32.970046],[103.313539,32.970311],[103.313746,32.970548],[103.313954,32.970786],[103.314133,32.970989],[103.314162,32.971023],[103.31454,32.971243],[103.314875,32.971474],[103.31521,32.971705],[103.315225,32.971717],[103.315468,32.971905],[103.315726,32.972106],[103.315969,32.972419],[103.316044,32.972515],[103.316181,32.972756],[103.316318,32.972996],[103.31642,32.973212],[103.316522,32.973428],[103.316588,32.97365],[103.316655,32.973871],[103.316702,32.974016],[103.316735,32.974117],[103.316815,32.974362],[103.316867,32.974631],[103.316902,32.974818],[103.316918,32.9749],[103.316977,32.975158],[103.317036,32.975415],[103.317065,32.975761],[103.317093,32.976107],[103.317002,32.97653],[103.316969,32.976678],[103.316837,32.976858],[103.316708,32.977032],[103.316446,32.977387],[103.316236,32.977664],[103.316026,32.977942],[103.315815,32.978201],[103.315605,32.978461],[103.315427,32.978603],[103.315261,32.978735],[103.314939,32.979009],[103.314739,32.97918],[103.314721,32.979199],[103.314572,32.979358],[103.314525,32.979573],[103.314535,32.979612],[103.314561,32.979713],[103.314596,32.979846],[103.314725,32.98013],[103.314854,32.980414],[103.314893,32.980501],[103.314941,32.980673],[103.314989,32.980846],[103.315036,32.981244],[103.315059,32.981432],[103.315084,32.981643],[103.315159,32.982055],[103.315234,32.982468],[103.31531,32.98288],[103.315402,32.983207],[103.315494,32.983534],[103.315586,32.983862],[103.315626,32.984001],[103.315679,32.984189],[103.315687,32.984434],[103.315696,32.984679],[103.315702,32.984855],[103.315691,32.985188],[103.315798,32.985474],[103.315952,32.985795],[103.316309,32.986021],[103.316635,32.986194],[103.31696,32.986368],[103.317304,32.98658],[103.317671,32.986805],[103.31788,32.986928],[103.31809,32.987052],[103.3183,32.987175],[103.31851,32.987298],[103.318719,32.987421],[103.318929,32.987545],[103.319155,32.987765],[103.319381,32.987986],[103.319559,32.988182],[103.319738,32.988378],[103.319917,32.988574],[103.320095,32.98877],[103.320249,32.98899],[103.320403,32.98921],[103.320558,32.98943],[103.320712,32.98965],[103.320823,32.989853],[103.320934,32.990056],[103.321045,32.99026],[103.321156,32.990463],[103.321267,32.990666],[103.321378,32.990869],[103.321489,32.991073],[103.3216,32.991276],[103.321788,32.991649],[103.321975,32.992021],[103.322144,32.992209],[103.322314,32.992397],[103.322615,32.992692],[103.322965,32.992915],[103.323315,32.993138],[103.323528,32.993232],[103.32374,32.993326],[103.323952,32.99342],[103.324165,32.993514],[103.324377,32.993609],[103.324589,32.993703],[103.324629,32.993718],[103.324853,32.993801],[103.325077,32.993885],[103.325423,32.994008],[103.325768,32.994131],[103.326113,32.994254],[103.326333,32.994409],[103.326553,32.994563],[103.326553,32.994564],[103.326554,32.994564],[103.326898,32.994843],[103.327243,32.995122],[103.327512,32.995388],[103.327782,32.995654],[103.328052,32.995919],[103.32826,32.996056],[103.328468,32.996193],[103.328568,32.996236],[103.328676,32.996283],[103.329075,32.996455],[103.329392,32.996681],[103.329709,32.996907],[103.330027,32.997133],[103.330356,32.997387],[103.330685,32.997641],[103.331014,32.997894],[103.33107,32.998009],[103.331173,32.99822],[103.331276,32.99843],[103.33147,32.998609],[103.331585,32.998715],[103.331865,32.998816],[103.332014,32.99887],[103.332138,32.998956],[103.332287,32.99906],[103.332442,32.999322],[103.33254,32.999627],[103.332638,32.999932],[103.332736,33.000236],[103.332763,33.000321],[103.332942,33.000619],[103.333153,33.000798],[103.333365,33.000977],[103.333552,33.001135],[103.33366,33.001227],[103.333955,33.001476],[103.33425,33.001725],[103.334464,33.001987],[103.334487,33.002208],[103.3345,33.002332],[103.334504,33.002366],[103.33452,33.0025],[103.334565,33.002895],[103.334589,33.003105],[103.334611,33.003291],[103.334657,33.003686],[103.334702,33.004081],[103.334792,33.004343],[103.334881,33.004605],[103.334994,33.004935],[103.335107,33.005265],[103.335112,33.005279],[103.33522,33.005595],[103.335333,33.005925],[103.335505,33.006306],[103.335678,33.006687],[103.335892,33.007055],[103.335999,33.0074],[103.33601,33.007439],[103.336071,33.007656],[103.336114,33.007811],[103.336142,33.007912],[103.336201,33.008178],[103.336209,33.008215],[103.336261,33.008447],[103.336404,33.008792],[103.336635,33.009159],[103.336749,33.00934],[103.336803,33.00941],[103.336875,33.009503],[103.33703,33.009704],[103.337257,33.009997],[103.33731,33.010052],[103.337492,33.010237],[103.337728,33.010476],[103.337963,33.010716],[103.338184,33.011],[103.338406,33.011285],[103.338627,33.011569],[103.338848,33.011854],[103.339069,33.012138],[103.339239,33.012395],[103.339409,33.012651],[103.339578,33.012908],[103.339629,33.013215],[103.33968,33.013522],[103.339731,33.013828],[103.339731,33.013829],[103.339731,33.013829],[103.339751,33.01391],[103.339781,33.014316],[103.339811,33.014721],[103.339827,33.014944],[103.339841,33.015127],[103.33981,33.015519],[103.33978,33.015912],[103.33975,33.016304],[103.339678,33.016587],[103.339605,33.016871],[103.339372,33.017229],[103.339176,33.017416],[103.338981,33.017603],[103.338691,33.017866],[103.3384,33.018128],[103.338109,33.01839],[103.337772,33.018604],[103.337434,33.018818],[103.337097,33.019032],[103.336877,33.019137],[103.336657,33.019241],[103.336437,33.019346],[103.336216,33.019451],[103.335996,33.019555],[103.335776,33.01966],[103.335489,33.019941],[103.335202,33.020221],[103.335046,33.020389],[103.33489,33.020556],[103.334734,33.020723],[103.334578,33.02089],[103.334421,33.021057],[103.334265,33.021224],[103.334255,33.021601],[103.334244,33.021978],[103.334234,33.022354],[103.334375,33.022591],[103.334515,33.022827],[103.334656,33.023064],[103.334797,33.0233],[103.334938,33.023537],[103.335078,33.023773],[103.335278,33.024142],[103.335456,33.024415],[103.335726,33.024669],[103.335906,33.024846],[103.336223,33.025081],[103.336438,33.025238],[103.336652,33.025395],[103.336867,33.025553],[103.337082,33.02571],[103.337307,33.025954],[103.337533,33.026198],[103.337664,33.026388],[103.337664,33.026388],[103.337665,33.026389],[103.337778,33.026554],[103.338024,33.026909],[103.338171,33.027122],[103.33827,33.027264],[103.338355,33.027477],[103.338401,33.027593],[103.338486,33.02798],[103.33848,33.028295],[103.338498,33.028382],[103.338535,33.028736],[103.338572,33.029089],[103.338608,33.029443],[103.338616,33.029514],[103.3386,33.029828],[103.338583,33.030143],[103.338567,33.030458],[103.338561,33.030586],[103.338559,33.030621],[103.338464,33.031021],[103.338455,33.031241],[103.338454,33.031278],[103.338492,33.031478],[103.338632,33.031766],[103.338771,33.032055],[103.338911,33.032344],[103.338988,33.032472],[103.339044,33.032563],[103.339082,33.032753],[103.339025,33.033125],[103.338882,33.033515],[103.338697,33.033862],[103.338511,33.03421],[103.338473,33.034514],[103.338435,33.034819],[103.338411,33.035247],[103.338387,33.035675],[103.338356,33.036082],[103.338324,33.036488],[103.338297,33.036831],[103.338292,33.036894],[103.338378,33.037227],[103.338502,33.037431],[103.338625,33.037636],[103.338638,33.0377],[103.338673,33.037874],[103.338595,33.038213],[103.338587,33.038245],[103.3386,33.038547],[103.338602,33.038574],[103.338616,33.038902],[103.33861,33.039207],[103.338603,33.039511],[103.338597,33.039816],[103.338644,33.040139],[103.338666,33.04037],[103.338688,33.0406],[103.338692,33.04062],[103.338753,33.040944],[103.33877,33.041035],[103.338868,33.041409],[103.338965,33.041782],[103.338987,33.041868],[103.339028,33.042026],[103.339092,33.04227],[103.339156,33.042514],[103.339219,33.042758],[103.339317,33.043078],[103.339414,33.043398],[103.339477,33.043659],[103.339541,33.043919],[103.339649,33.044288],[103.339849,33.044638],[103.339937,33.044849],[103.340025,33.04506],[103.340099,33.045369],[103.340174,33.045679],[103.340225,33.046017],[103.340277,33.046356],[103.340291,33.046771],[103.340306,33.047186],[103.340325,33.047437],[103.340343,33.047688],[103.340338,33.047942],[103.340333,33.048196],[103.340329,33.04845],[103.340324,33.048704],[103.340319,33.048958],[103.340314,33.049212],[103.340297,33.049501],[103.34028,33.049791],[103.34023,33.05005],[103.340179,33.05031],[103.340034,33.050683],[103.33989,33.051057],[103.339788,33.051296],[103.339686,33.051536],[103.339585,33.051775],[103.339483,33.052014],[103.339383,33.052444],[103.339284,33.052873],[103.339184,33.053303],[103.339177,33.053593],[103.339241,33.053901],[103.339372,33.054251],[103.339483,33.054464],[103.339653,33.054663],[103.339824,33.054862],[103.339994,33.055061],[103.340165,33.05526],[103.340335,33.055459],[103.340506,33.055658],[103.340676,33.055858],[103.340847,33.056057],[103.341017,33.056256],[103.341187,33.056455],[103.341361,33.056652],[103.341534,33.056849],[103.341708,33.057045],[103.341881,33.057242],[103.342055,33.057439],[103.342228,33.057636],[103.342401,33.057833],[103.342575,33.05803],[103.342748,33.058226],[103.342922,33.058423],[103.343144,33.058802],[103.343367,33.059181],[103.34346,33.059409],[103.343553,33.059637],[103.343646,33.059865],[103.343739,33.060093],[103.343793,33.060325],[103.343846,33.060557],[103.343852,33.060828],[103.343857,33.061098],[103.343829,33.061396],[103.343801,33.061695],[103.343784,33.062004],[103.343767,33.062313],[103.343759,33.062717],[103.343774,33.063142],[103.343812,33.063586],[103.343852,33.063866],[103.343893,33.064147],[103.344004,33.064359],[103.344116,33.064572],[103.344227,33.064785],[103.344339,33.064998],[103.344427,33.065172],[103.344421,33.065481],[103.344393,33.06577],[103.344388,33.066041],[103.344309,33.066281],[103.34423,33.066521],[103.344151,33.06676],[103.344072,33.067],[103.343965,33.067385],[103.343858,33.067769],[103.343752,33.068154],[103.343642,33.06849],[103.343533,33.068826],[103.343539,33.069087],[103.343546,33.069347],[103.343631,33.069734],[103.343696,33.069967],[103.34376,33.0702],[103.343936,33.070529],[103.344239,33.070861],[103.344542,33.071192],[103.344845,33.071523],[103.345148,33.071854],[103.345304,33.072088],[103.345414,33.07234],[103.345524,33.072591],[103.345588,33.072883],[103.34558,33.073288],[103.345518,33.073519],[103.345457,33.07375],[103.345429,33.07398],[103.345402,33.074211],[103.345489,33.074463],[103.345597,33.074819],[103.345705,33.075174],[103.345813,33.07553],[103.34591,33.075811],[103.346008,33.076092],[103.346073,33.076363],[103.346137,33.076634],[103.346134,33.076673],[103.346107,33.077018],[103.345962,33.077423],[103.345793,33.077825],[103.345626,33.07819],[103.345403,33.078559],[103.345181,33.078929],[103.345062,33.079127],[103.344959,33.079298],[103.344745,33.079668],[103.344532,33.080038],[103.344424,33.080226],[103.344319,33.080407],[103.344198,33.080734],[103.344033,33.080984],[103.34387,33.081146],[103.343706,33.081307],[103.343543,33.081469],[103.34346,33.08155],[103.343379,33.08163],[103.343223,33.081808],[103.343066,33.081986],[103.34291,33.082165],[103.342754,33.082343],[103.342597,33.082521],[103.342441,33.082699],[103.342253,33.082937],[103.342065,33.083175],[103.341934,33.083449],[103.341825,33.083674],[103.341752,33.083914],[103.341678,33.084155],[103.34164,33.084395],[103.341621,33.084511],[103.341601,33.084636],[103.341585,33.084863],[103.341571,33.085065],[103.34154,33.085494],[103.341507,33.08574],[103.341473,33.085986],[103.34144,33.086231],[103.341406,33.086477],[103.341309,33.086727],[103.341279,33.086804],[103.341212,33.086977],[103.341207,33.087247],[103.341207,33.087277],[103.341202,33.087517],[103.341222,33.087729],[103.341232,33.087772],[103.341257,33.087882],[103.341307,33.088097],[103.341309,33.088115],[103.341347,33.088425],[103.341386,33.088831],[103.341358,33.089043],[103.341263,33.089196],[103.34108,33.089333],[103.340897,33.089471],[103.340713,33.089608],[103.340651,33.089655],[103.34053,33.089746],[103.340347,33.089884],[103.340163,33.090021],[103.33998,33.090159],[103.339968,33.090168],[103.339894,33.090223],[103.339891,33.090225],[103.339797,33.090296],[103.339563,33.090414],[103.339556,33.090417],[103.339337,33.090527],[103.33932,33.090536],[103.339315,33.090539],[103.339194,33.090599],[103.339074,33.09066],[103.338999,33.090698],[103.338834,33.090781],[103.338671,33.090809],[103.338466,33.090844],[103.338098,33.090907],[103.337913,33.090917],[103.337811,33.090922],[103.337524,33.090937],[103.337457,33.090941],[103.337388,33.090945],[103.337248,33.090952],[103.336856,33.091044],[103.336598,33.091272],[103.33639,33.0915],[103.336288,33.091615],[103.336236,33.091672],[103.336083,33.091845],[103.335988,33.092075],[103.335911,33.092235],[103.335881,33.092298],[103.335868,33.092323],[103.335776,33.092514],[103.335748,33.092572],[103.335561,33.092801],[103.335333,33.093024],[103.335327,33.09303],[103.334991,33.093219],[103.334916,33.093261],[103.334655,33.093407],[103.334351,33.093711],[103.33433,33.093744],[103.334184,33.09398],[103.333973,33.094219],[103.333911,33.094288],[103.333762,33.094457],[103.33346,33.094684],[103.333229,33.094778],[103.332906,33.094851],[103.332469,33.094883],[103.332158,33.094927],[103.331848,33.094971],[103.331478,33.095159],[103.331303,33.095335],[103.331273,33.095365],[103.331149,33.09549],[103.331127,33.095512],[103.330993,33.095647],[103.330993,33.095647],[103.330952,33.095688],[103.330776,33.095864],[103.33042,33.096098],[103.330064,33.096331],[103.329707,33.096564],[103.329344,33.096705],[103.329047,33.09668],[103.328726,33.096618],[103.328409,33.09646],[103.328277,33.096402],[103.328044,33.0963],[103.327745,33.096334],[103.327535,33.096507],[103.327417,33.096716],[103.327346,33.096794],[103.327232,33.096819],[103.327024,33.096866],[103.326772,33.096862],[103.326472,33.096917],[103.326264,33.09699],[103.326239,33.097018],[103.326144,33.097123],[103.326143,33.097123],[103.326143,33.097123],[103.326125,33.097144],[103.326122,33.097157],[103.326115,33.097189],[103.3261,33.097259],[103.326097,33.097317],[103.32608,33.097644],[103.326065,33.097951],[103.326061,33.09803],[103.326059,33.098048],[103.326033,33.098281],[103.325914,33.09851],[103.325705,33.098661],[103.325382,33.098774],[103.325316,33.098768],[103.325263,33.098764],[103.325106,33.098751],[103.324742,33.098649],[103.324493,33.09859],[103.324325,33.098551],[103.324307,33.098546],[103.324015,33.09856],[103.323988,33.098561],[103.323756,33.098577],[103.323724,33.09862],[103.32365,33.098717],[103.323568,33.098826],[103.323474,33.099015],[103.323473,33.099018],[103.323329,33.099306],[103.32319,33.09938],[103.323098,33.099399],[103.32296,33.099359],[103.322688,33.099239],[103.322606,33.0992],[103.322549,33.099173],[103.322393,33.0991],[103.322364,33.099103],[103.322002,33.099153],[103.321746,33.099304],[103.321675,33.099417],[103.321462,33.099782],[103.32134,33.100147],[103.321313,33.10034],[103.321377,33.10063],[103.321392,33.10066],[103.321487,33.100844],[103.321692,33.100962],[103.321994,33.101019],[103.322126,33.101044],[103.322419,33.101319],[103.322488,33.101451],[103.322492,33.101551],[103.322502,33.101818],[103.322501,33.101877],[103.322496,33.102146],[103.322462,33.102293],[103.322461,33.102295],[103.322442,33.10238],[103.322388,33.102614],[103.322336,33.102837],[103.322335,33.102844],[103.322334,33.102846],[103.322334,33.102848],[103.32232,33.102908],[103.322309,33.102953],[103.32228,33.103082],[103.322255,33.103187],[103.322226,33.103316],[103.322172,33.10355],[103.322104,33.103805],[103.322036,33.10406],[103.321968,33.104315],[103.32192,33.104493],[103.3219,33.104569],[103.32178,33.104876],[103.321709,33.105056],[103.321659,33.105183],[103.321491,33.10544],[103.321471,33.10547],[103.321209,33.105814],[103.320907,33.106041],[103.320605,33.106269],[103.320604,33.106269],[103.320415,33.106412],[103.320351,33.10646],[103.320303,33.106497],[103.320082,33.106677],[103.319861,33.106858],[103.319641,33.106977],[103.319569,33.107015],[103.319514,33.107045],[103.319119,33.107176],[103.318806,33.107279],[103.318718,33.107278],[103.318555,33.107276],[103.318554,33.107276],[103.318553,33.107276],[103.318301,33.107272],[103.318048,33.107269],[103.317796,33.107265],[103.31736,33.10724],[103.317286,33.107225],[103.31718,33.107204],[103.317097,33.107179],[103.316777,33.107079],[103.316375,33.106954],[103.316072,33.106945],[103.315768,33.106936],[103.315613,33.106998],[103.315367,33.107097],[103.314952,33.107198],[103.314536,33.107298],[103.31435,33.107441],[103.314165,33.107583],[103.313975,33.107927],[103.313972,33.108061],[103.313968,33.108222],[103.313922,33.108478],[103.313876,33.108735],[103.313819,33.108885],[103.313782,33.108945],[103.313691,33.108966],[103.313655,33.108974],[103.313313,33.109031],[103.313276,33.109037],[103.312949,33.109033],[103.312862,33.109032],[103.312623,33.109029],[103.312414,33.109151],[103.312205,33.109274],[103.312128,33.109621],[103.312192,33.10993],[103.312246,33.11004],[103.312325,33.110201],[103.312504,33.110435],[103.312706,33.110651],[103.312708,33.110655],[103.312749,33.110747],[103.312763,33.110805],[103.312813,33.111018],[103.312743,33.111191],[103.312486,33.11138],[103.312337,33.111432],[103.31222,33.111473],[103.312217,33.111474],[103.312214,33.111475],[103.311954,33.111566],[103.311654,33.111639],[103.311355,33.111712],[103.310942,33.111746],[103.310621,33.111683],[103.310392,33.111584],[103.31028,33.111543],[103.310188,33.111524],[103.309955,33.111694],[103.309904,33.111924],[103.309784,33.112193],[103.309589,33.112391],[103.309395,33.112588],[103.309231,33.112759],[103.309067,33.11293],[103.308846,33.113034],[103.308628,33.113136],[103.308626,33.113137],[103.308282,33.11319],[103.308122,33.113148],[103.307939,33.11307],[103.307827,33.112932],[103.307741,33.11268],[103.307399,33.11258],[103.307075,33.112677],[103.307029,33.112691],[103.306658,33.112859],[103.30664,33.112867],[103.306427,33.112962],[103.306195,33.113064],[103.306037,33.113228],[103.305973,33.113293],[103.305751,33.113521],[103.305627,33.113717],[103.30551,33.113901],[103.305502,33.113913],[103.305415,33.114051],[103.305378,33.114109],[103.305278,33.114268],[103.305254,33.114306],[103.305052,33.11467],[103.304963,33.11483],[103.304851,33.115032],[103.304851,33.115032],[103.30485,33.115034],[103.304798,33.115303],[103.304843,33.115401],[103.304957,33.115402],[103.305058,33.115392],[103.30521,33.115377],[103.30537,33.11536],[103.305463,33.115351],[103.305783,33.115452],[103.305821,33.115493],[103.305875,33.115552],[103.305962,33.115647],[103.306027,33.115822],[103.306024,33.115976],[103.305895,33.116134],[103.305883,33.116148],[103.305723,33.116272],[103.305534,33.11642],[103.305185,33.116692],[103.304836,33.116963],[103.304642,33.117083],[103.304448,33.117203],[103.304255,33.117322],[103.304061,33.117442],[103.303868,33.117562],[103.303813,33.117595],[103.303684,33.117675],[103.303674,33.117681],[103.303374,33.117812],[103.303121,33.117847],[103.302987,33.117652],[103.302911,33.117419],[103.302834,33.117187],[103.302831,33.117155],[103.302805,33.116935],[103.302789,33.116796],[103.302776,33.116684],[103.302757,33.116452],[103.302739,33.116221],[103.302718,33.116066],[103.302605,33.115968],[103.302442,33.115949],[103.302423,33.115946],[103.302283,33.116002],[103.302136,33.11613],[103.302108,33.116154],[103.30201,33.116239],[103.301933,33.116306],[103.301766,33.116613],[103.301748,33.116706],[103.301721,33.116838],[103.301716,33.116863],[103.30164,33.117208],[103.301635,33.117479],[103.301579,33.117568],[103.301347,33.117719],[103.300954,33.117887],[103.30063,33.118037],[103.300521,33.118087],[103.300453,33.118119],[103.300381,33.118152],[103.300306,33.118187],[103.300119,33.118349],[103.299931,33.11851],[103.299821,33.118653],[103.299754,33.11874],[103.299681,33.118835],[103.29968,33.118835],[103.29968,33.118835],[103.299429,33.119159],[103.299178,33.119484],[103.299143,33.119524],[103.299087,33.119588],[103.298943,33.11975],[103.298689,33.119921],[103.298413,33.119936],[103.298314,33.119935],[103.298251,33.119934],[103.29793,33.11991],[103.297586,33.119925],[103.297574,33.119931],[103.297527,33.119953],[103.297425,33.12],[103.297283,33.120152],[103.297116,33.120497],[103.297027,33.120698],[103.297005,33.120746],[103.296997,33.120766],[103.296955,33.120874],[103.2969,33.121015],[103.296855,33.121087],[103.296824,33.121136],[103.296733,33.121284],[103.296617,33.121398],[103.296501,33.121453],[103.29634,33.121432],[103.296248,33.121372],[103.29616,33.121314],[103.29616,33.121314],[103.296159,33.121314],[103.29612,33.121291],[103.296063,33.121258],[103.296056,33.121254],[103.296009,33.121227],[103.295819,33.121116],[103.295523,33.120996],[103.295469,33.120982],[103.295295,33.120935],[103.295291,33.120936],[103.295041,33.12098],[103.294788,33.121025],[103.294618,33.121148],[103.294578,33.121176],[103.294507,33.121374],[103.294481,33.121445],[103.294484,33.121469],[103.294494,33.121589],[103.294501,33.121658],[103.294564,33.121909],[103.294743,33.122124],[103.295085,33.122284],[103.295186,33.122362],[103.295219,33.122388],[103.295312,33.122461],[103.295331,33.122634],[103.295213,33.122767],[103.294819,33.122935],[103.29452,33.123029],[103.29429,33.123093],[103.294093,33.123148],[103.29406,33.123157],[103.293985,33.123195],[103.293803,33.123289],[103.293732,33.123442],[103.293729,33.123596],[103.29373,33.123638],[103.293733,33.123734],[103.293734,33.123766],[103.293739,33.123921],[103.293775,33.124087],[103.293824,33.124308],[103.293829,33.124367],[103.293843,33.124502],[103.293838,33.124683],[103.293838,33.124695],[103.293812,33.124848],[103.293546,33.125118],[103.293532,33.125133],[103.293321,33.125363],[103.293087,33.125572],[103.292854,33.125723],[103.292506,33.12593],[103.292275,33.126024],[103.291999,33.126019],[103.291633,33.125995],[103.291313,33.125952],[103.291037,33.125929],[103.290764,33.12589],[103.29074,33.125886],[103.290488,33.125835],[103.290446,33.125826],[103.290237,33.125783],[103.290127,33.125753],[103.28994,33.125702],[103.289734,33.125605],[103.289644,33.125562],[103.289418,33.125406],[103.289406,33.125406],[103.289339,33.125405],[103.289323,33.125404],[103.289189,33.125402],[103.289096,33.12544],[103.288934,33.125496],[103.28882,33.125693],[103.288791,33.125744],[103.288774,33.125792],[103.288694,33.126013],[103.288672,33.126114],[103.288645,33.126243],[103.288501,33.126532],[103.288406,33.126685],[103.28813,33.126776],[103.287898,33.126813],[103.287624,33.126827],[103.287544,33.126826],[103.287301,33.126823],[103.286945,33.126866],[103.286589,33.126909],[103.286488,33.12695],[103.286311,33.127021],[103.286194,33.127156],[103.286121,33.127348],[103.286003,33.1275],[103.285793,33.127651],[103.285539,33.127783],[103.285193,33.127875],[103.28493,33.12792],[103.284668,33.127965],[103.284366,33.128134],[103.284135,33.128207],[103.284119,33.128205],[103.283884,33.128185],[103.283832,33.128167],[103.283655,33.128104],[103.283635,33.128055],[103.283569,33.127892],[103.283506,33.127542],[103.283441,33.127349],[103.283374,33.127252],[103.283306,33.127213],[103.283073,33.12729],[103.283029,33.127305],[103.282959,33.127361],[103.282915,33.127367],[103.28282,33.12738],[103.282727,33.127357],[103.282569,33.127317],[103.282388,33.127219],[103.282211,33.126908],[103.282144,33.126733],[103.282078,33.126617],[103.281873,33.126538],[103.28162,33.126532],[103.281413,33.126588],[103.281181,33.126682],[103.28103,33.126753],[103.280904,33.126813],[103.280672,33.126886],[103.280488,33.126923],[103.280167,33.126938],[103.279845,33.126953],[103.279731,33.126959],[103.279592,33.126967],[103.279314,33.126979],[103.279248,33.126982],[103.279201,33.126983],[103.278938,33.126988],[103.278795,33.126991],[103.278704,33.126993],[103.278628,33.126994],[103.278588,33.126978],[103.278423,33.126913],[103.278388,33.126909],[103.278215,33.126886],[103.278102,33.126871],[103.277734,33.126943],[103.277615,33.127114],[103.277568,33.127191],[103.277541,33.127384],[103.277607,33.127519],[103.277788,33.127677],[103.277886,33.127702],[103.277948,33.127718],[103.278008,33.127726],[103.278177,33.12775],[103.278406,33.127782],[103.278655,33.127939],[103.278741,33.128249],[103.278716,33.128364],[103.278461,33.128496],[103.278116,33.128569],[103.277961,33.12858],[103.277885,33.128585],[103.277866,33.128586],[103.277471,33.128618],[103.27742,33.128638],[103.27724,33.12871],[103.277154,33.12878],[103.277123,33.128805],[103.277076,33.12886],[103.276912,33.129054],[103.276772,33.129168],[103.276655,33.129262],[103.276516,33.129317],[103.276228,33.129314],[103.276172,33.129314],[103.276036,33.129319],[103.275805,33.129327],[103.275461,33.129323],[103.275181,33.129351],[103.275145,33.129354],[103.275116,33.129357],[103.275029,33.129375],[103.27477,33.129429],[103.274563,33.129426],[103.274381,33.129385],[103.274314,33.129249],[103.274316,33.129128],[103.27432,33.128941],[103.274328,33.128855],[103.274335,33.128775],[103.27435,33.128613],[103.274367,33.128521],[103.274386,33.128411],[103.274402,33.128324],[103.274453,33.128036],[103.274467,33.127978],[103.274503,33.127823],[103.2746,33.127574],[103.274601,33.127517],[103.274533,33.127477],[103.274403,33.127476],[103.274312,33.127474],[103.274265,33.127486],[103.274093,33.127529],[103.274039,33.127542],[103.273874,33.127584],[103.27369,33.127601],[103.273552,33.127599],[103.273484,33.127598],[103.273361,33.127557],[103.273301,33.127537],[103.273168,33.127343],[103.273196,33.127015],[103.273203,33.126686],[103.273136,33.126477],[103.273116,33.126416],[103.272863,33.126412],[103.272539,33.126582],[103.272409,33.12671],[103.272375,33.126743],[103.272212,33.126905],[103.272058,33.127105],[103.271904,33.127305],[103.271741,33.127506],[103.271623,33.127649],[103.271506,33.127702],[103.271415,33.127743],[103.271277,33.12776],[103.270842,33.127696],[103.270617,33.127442],[103.270544,33.127281],[103.270515,33.127216],[103.27044,33.127054],[103.270337,33.126775],[103.270332,33.126762],[103.270284,33.126731],[103.270151,33.126644],[103.269897,33.126738],[103.269618,33.126927],[103.26936,33.127136],[103.269358,33.127137],[103.269356,33.127139],[103.269271,33.127194],[103.269151,33.127273],[103.269129,33.127287],[103.268921,33.127303],[103.26876,33.127282],[103.268534,33.127323],[103.268485,33.127332],[103.268308,33.127365],[103.268117,33.127401],[103.268081,33.127407],[103.268034,33.127416],[103.267855,33.127449],[103.267628,33.127491],[103.267402,33.127533],[103.267145,33.127593],[103.267089,33.127607],[103.266887,33.127654],[103.266842,33.127665],[103.266688,33.127701],[103.26663,33.127715],[103.266372,33.127776],[103.266114,33.127836],[103.265967,33.127871],[103.265893,33.127889],[103.265857,33.127897],[103.265834,33.127907],[103.265674,33.127975],[103.265614,33.128],[103.265371,33.128103],[103.265266,33.128181],[103.265116,33.128292],[103.264996,33.128483],[103.264992,33.128711],[103.264991,33.128734],[103.265001,33.128794],[103.265032,33.128985],[103.265043,33.129033],[103.265052,33.129074],[103.265096,33.129276],[103.265143,33.129516],[103.265166,33.129631],[103.265176,33.129684],[103.26519,33.129755],[103.265232,33.129967],[103.265182,33.130179],[103.264951,33.13033],[103.264697,33.130346],[103.264587,33.130345],[103.264506,33.130343],[103.264468,33.130343],[103.264283,33.130417],[103.264281,33.130514],[103.264321,33.130823],[103.264318,33.130946],[103.264317,33.131017],[103.264316,33.131054],[103.264289,33.131305],[103.264146,33.131534],[103.264043,33.131666],[103.264004,33.131716],[103.263981,33.131744],[103.263953,33.132014],[103.264016,33.132294],[103.26408,33.132575],[103.264213,33.132809],[103.264141,33.133001],[103.264094,33.133019],[103.264025,33.133018],[103.26366,33.132936],[103.263407,33.132952],[103.263154,33.132967],[103.262969,33.133023],[103.26283,33.133117],[103.262782,33.133232],[103.262821,33.133503],[103.262977,33.133795],[103.262984,33.133809],[103.263121,33.134067],[103.263265,33.134339],[103.263383,33.134732],[103.263393,33.134765],[103.263402,33.134819],[103.263455,33.135152],[103.263358,33.135382],[103.263243,33.135477],[103.26299,33.135493],[103.262932,33.135497],[103.262737,33.135509],[103.262484,33.135525],[103.262231,33.13554],[103.261978,33.135556],[103.261871,33.135563],[103.261726,33.135572],[103.261473,33.135587],[103.26114,33.135583],[103.260806,33.135579],[103.260629,33.135589],[103.260531,33.135594],[103.260365,33.135603],[103.260256,33.135609],[103.259956,33.135661],[103.25975,33.135732],[103.259713,33.135745],[103.25947,33.135829],[103.259283,33.136058],[103.259188,33.136231],[103.259172,33.136359],[103.259159,33.136463],[103.259213,33.136759],[103.259215,33.136769],[103.259283,33.137029],[103.259289,33.13705],[103.259363,33.137331],[103.259337,33.137562],[103.259265,33.137676],[103.259173,33.137713],[103.258943,33.137711],[103.258799,33.137684],[103.258714,33.137668],[103.258678,33.137665],[103.25837,33.137644],[103.25812,33.137674],[103.258073,33.137679],[103.257864,33.137753],[103.25777,33.137868],[103.257769,33.137929],[103.257761,33.138293],[103.257744,33.138502],[103.25773,33.138678],[103.257729,33.138758],[103.257726,33.138909],[103.257722,33.13914],[103.257651,33.139431],[103.257647,33.139449],[103.257489,33.139608],[103.257459,33.139639],[103.257136,33.139749],[103.256896,33.139803],[103.256895,33.139804],[103.256894,33.139804],[103.256824,33.13982],[103.256665,33.139855],[103.256653,33.139858],[103.256272,33.139921],[103.255892,33.139984],[103.255872,33.13999],[103.255521,33.140093],[103.255255,33.140175],[103.255221,33.140185],[103.255058,33.14032],[103.255003,33.140408],[103.254986,33.140434],[103.254984,33.140587],[103.254997,33.140678],[103.255025,33.140878],[103.255025,33.140879],[103.255025,33.14088],[103.255109,33.141168],[103.255171,33.141536],[103.255162,33.141979],[103.255091,33.142152],[103.255086,33.142169],[103.254969,33.142537],[103.254926,33.142593],[103.254837,33.142709],[103.254779,33.142785],[103.254777,33.142895],[103.254898,33.143119],[103.254922,33.143163],[103.254926,33.14317],[103.25501,33.143324],[103.25502,33.143342],[103.255174,33.143633],[103.255306,33.143886],[103.255322,33.144252],[103.255312,33.144352],[103.255295,33.144523],[103.255167,33.144795],[103.25515,33.144829],[103.255067,33.145093],[103.255028,33.145214],[103.255004,33.145288],[103.254973,33.145385],[103.254905,33.145597],[103.254821,33.145818],[103.254737,33.146039],[103.254593,33.146268],[103.25443,33.146421],[103.254316,33.146439],[103.254132,33.146435],[103.253927,33.146317],[103.253704,33.146044],[103.25367,33.145997],[103.253569,33.145859],[103.253528,33.145802],[103.253435,33.145674],[103.253425,33.145661],[103.253418,33.145653],[103.253289,33.145489],[103.253276,33.145472],[103.253158,33.145322],[103.253143,33.145303],[103.252957,33.145131],[103.252772,33.14496],[103.252658,33.144856],[103.252586,33.144789],[103.252563,33.144768],[103.2524,33.144617],[103.252289,33.144527],[103.252224,33.144475],[103.252049,33.144333],[103.251874,33.14419],[103.251699,33.144048],[103.251495,33.143939],[103.251291,33.143829],[103.251191,33.143835],[103.250991,33.143845],[103.250877,33.143862],[103.250778,33.144228],[103.25077,33.144594],[103.250796,33.144841],[103.250809,33.144961],[103.250873,33.145194],[103.250937,33.145426],[103.251003,33.145682],[103.251023,33.145756],[103.251016,33.146103],[103.251009,33.14645],[103.250798,33.146679],[103.250428,33.146828],[103.25015,33.146901],[103.249898,33.146878],[103.249647,33.146836],[103.249269,33.146715],[103.24911,33.146616],[103.248859,33.146555],[103.248608,33.146494],[103.248216,33.146585],[103.247983,33.146716],[103.247862,33.146985],[103.24786,33.147074],[103.247857,33.147224],[103.247856,33.147264],[103.24785,33.147543],[103.247779,33.147736],[103.24764,33.147792],[103.247319,33.147789],[103.247127,33.14774],[103.246908,33.147684],[103.246851,33.147673],[103.246725,33.147646],[103.246614,33.147623],[103.246519,33.147603],[103.246175,33.147617],[103.245888,33.14774],[103.245882,33.147743],[103.245827,33.147767],[103.245572,33.147936],[103.245293,33.148087],[103.245131,33.148143],[103.244993,33.148102],[103.244974,33.147947],[103.24498,33.147869],[103.244995,33.147701],[103.245003,33.147602],[103.245009,33.14733],[103.244994,33.147033],[103.244994,33.147024],[103.244992,33.147002],[103.244927,33.146828],[103.244723,33.146728],[103.244458,33.14674],[103.244402,33.146743],[103.244245,33.14678],[103.244171,33.146798],[103.244086,33.146889],[103.244029,33.14695],[103.243698,33.147213],[103.24347,33.147346],[103.243429,33.14736],[103.243124,33.147458],[103.243044,33.147471],[103.242686,33.147529],[103.242343,33.147505],[103.242068,33.147462],[103.241793,33.14742],[103.241718,33.147411],[103.241564,33.147393],[103.241515,33.147387],[103.241345,33.147367],[103.241335,33.147366],[103.241106,33.147338],[103.240877,33.147311],[103.240602,33.147269],[103.240473,33.147249],[103.240327,33.147226],[103.240278,33.147231],[103.239938,33.147259],[103.239589,33.147447],[103.239333,33.147617],[103.239207,33.147696],[103.239123,33.147749],[103.239022,33.147804],[103.238845,33.147899],[103.238614,33.147935],[103.238566,33.147939],[103.238481,33.147946],[103.238304,33.14796],[103.237995,33.147984],[103.237761,33.148008],[103.237527,33.148032],[103.237293,33.148056],[103.237059,33.148079],[103.236833,33.148148],[103.236608,33.148217],[103.236382,33.148286],[103.236157,33.148355],[103.235787,33.148472],[103.235736,33.148489],[103.235418,33.148589],[103.235048,33.148706],[103.234701,33.148843],[103.234354,33.148979],[103.234007,33.149116],[103.233599,33.149303],[103.233191,33.14949],[103.232783,33.149677],[103.232375,33.149864],[103.231968,33.150051],[103.231723,33.150128],[103.231479,33.150205],[103.231234,33.150282],[103.23099,33.150359],[103.230745,33.150436],[103.230501,33.150513],[103.230256,33.15059],[103.230012,33.150667],[103.229767,33.150744],[103.229523,33.150821],[103.229279,33.150898],[103.229034,33.150975],[103.228792,33.151042],[103.228682,33.151073],[103.228549,33.15111],[103.228539,33.151113],[103.228307,33.151178],[103.228064,33.151246],[103.227822,33.151314],[103.227579,33.151382],[103.227495,33.151406],[103.227337,33.15145],[103.227094,33.151518],[103.226852,33.151586],[103.22661,33.151654],[103.226533,33.151681],[103.226389,33.151733],[103.226168,33.151811],[103.225947,33.15189],[103.225726,33.151969],[103.225505,33.152047],[103.225284,33.152126],[103.225063,33.152205],[103.224842,33.152284],[103.224621,33.152362],[103.2244,33.152441],[103.224207,33.152507],[103.224169,33.15252],[103.223937,33.152598],[103.223821,33.152638],[103.223706,33.152677],[103.223475,33.152756],[103.223244,33.152835],[103.223013,33.152913],[103.222782,33.152992],[103.222551,33.153071],[103.222319,33.153149],[103.222088,33.153228],[103.221857,33.153307],[103.221626,33.153385],[103.221434,33.153451],[103.221395,33.153464],[103.221164,33.153543],[103.220932,33.153621],[103.220701,33.1537],[103.220463,33.153788],[103.220226,33.153875],[103.219988,33.153963],[103.21975,33.15405],[103.219512,33.154138],[103.219274,33.154226],[103.219036,33.154313],[103.218798,33.154401],[103.21856,33.154488],[103.218323,33.154576],[103.218085,33.154664],[103.217847,33.154751],[103.217609,33.154839],[103.217371,33.154926],[103.217117,33.155013],[103.216863,33.1551],[103.216609,33.155187],[103.216355,33.155274],[103.216101,33.155361],[103.215847,33.155448],[103.215593,33.155535],[103.215339,33.155622],[103.215085,33.155709],[103.214831,33.155796],[103.21478,33.155813],[103.214577,33.155883],[103.214323,33.155969],[103.214069,33.156048],[103.213815,33.156126],[103.21356,33.156205],[103.213306,33.156283],[103.212906,33.1564],[103.212505,33.156516],[103.212105,33.156633],[103.211889,33.156733],[103.211672,33.156833],[103.211456,33.156932],[103.211239,33.157032],[103.211023,33.157132],[103.210807,33.157232],[103.210436,33.15738],[103.210066,33.157528],[103.209672,33.157717],[103.209369,33.157906],[103.209229,33.158039],[103.208971,33.158331],[103.208712,33.158622],[103.208453,33.158914],[103.208265,33.159153],[103.208076,33.159391],[103.207845,33.159504],[103.207639,33.159483],[103.207388,33.159382],[103.207024,33.159202],[103.206706,33.159006],[103.206498,33.158905],[103.20629,33.158804],[103.206081,33.158703],[103.205873,33.158602],[103.205664,33.158501],[103.205456,33.158399],[103.205247,33.158298],[103.205039,33.158197],[103.204831,33.158096],[103.204622,33.157995],[103.204414,33.157894],[103.204205,33.157793],[103.203976,33.15769],[103.203747,33.157588],[103.203518,33.157485],[103.203289,33.157383],[103.20306,33.15728],[103.202831,33.157178],[103.202602,33.157075],[103.202373,33.156973],[103.202066,33.156834],[103.201758,33.156695],[103.201552,33.156671],[103.201207,33.156686],[103.200919,33.156778],[103.20063,33.15687],[103.200236,33.157019],[103.199959,33.157132],[103.199749,33.157264],[103.199539,33.157396],[103.199236,33.157674],[103.198932,33.157952],[103.198628,33.15823],[103.198435,33.158416],[103.198241,33.158602],[103.198048,33.158788],[103.197854,33.158974],[103.197726,33.15916],[103.197597,33.159347],[103.197469,33.159534],[103.19734,33.15972],[103.197212,33.159907],[103.197083,33.160094],[103.196955,33.16028],[103.196826,33.160467],[103.196697,33.160654],[103.196569,33.160841],[103.196435,33.161036],[103.196301,33.161232],[103.196166,33.161428],[103.196032,33.161624],[103.195898,33.16182],[103.195764,33.162016],[103.19563,33.162212],[103.195495,33.162408],[103.195361,33.162603],[103.195227,33.162799],[103.195093,33.162995],[103.194959,33.163191],[103.194805,33.163391],[103.194652,33.163592],[103.194418,33.163743],[103.194176,33.163846],[103.193933,33.163948],[103.193679,33.164012],[103.193425,33.164076],[103.193171,33.16414],[103.192917,33.164203],[103.192537,33.164304],[103.192156,33.164405],[103.191774,33.164553],[103.191391,33.164702],[103.191129,33.164785],[103.190868,33.164868],[103.190606,33.164951],[103.190344,33.165034],[103.190082,33.165117],[103.18982,33.1652],[103.189444,33.165333],[103.189068,33.165466],[103.188692,33.165598],[103.188664,33.165608],[103.188247,33.165766],[103.18783,33.165924],[103.187447,33.166122],[103.187064,33.166319],[103.186706,33.166553],[103.186347,33.166788],[103.186144,33.16692],[103.185919,33.167],[103.185693,33.167081],[103.185468,33.167161],[103.185242,33.167241],[103.185017,33.167321],[103.184791,33.167402],[103.184566,33.167482],[103.18434,33.167562],[103.184115,33.167643],[103.18389,33.167723],[103.183664,33.167803],[103.183439,33.167883],[103.183136,33.168032],[103.182811,33.168242],[103.182718,33.168317],[103.18262,33.168566],[103.182612,33.168952],[103.182605,33.169338],[103.18262,33.169666],[103.182643,33.170058],[103.182652,33.170215],[103.182658,33.170328],[103.182666,33.170451],[103.182688,33.170844],[103.182684,33.171076],[103.182683,33.171119],[103.18268,33.171249],[103.182672,33.171654],[103.182664,33.172059],[103.18266,33.172089],[103.182636,33.172289],[103.182608,33.172519],[103.18258,33.172749],[103.182552,33.172979],[103.182527,33.173065],[103.182484,33.173219],[103.182416,33.173459],[103.182348,33.173699],[103.18228,33.17394],[103.182206,33.174168],[103.182132,33.174397],[103.182059,33.174625],[103.181985,33.174854],[103.181912,33.175082],[103.18184,33.175305],[103.181838,33.175311],[103.181765,33.175539],[103.181691,33.175768],[103.181617,33.175996],[103.181597,33.17606],[103.181562,33.176168],[103.181544,33.176225],[103.181493,33.176452],[103.181442,33.17668],[103.181392,33.176907],[103.181341,33.177134],[103.18129,33.177362],[103.181239,33.177589],[103.181143,33.1778],[103.181046,33.17801],[103.18095,33.178221],[103.180854,33.178432],[103.180757,33.178642],[103.180661,33.178853],[103.180564,33.179063],[103.180468,33.179274],[103.180371,33.179485],[103.180275,33.179695],[103.180179,33.179906],[103.180082,33.180117],[103.180034,33.180334],[103.180033,33.180336],[103.180033,33.180338],[103.179987,33.180544],[103.179892,33.180972],[103.179797,33.181399],[103.179702,33.181827],[103.179645,33.182053],[103.179615,33.182175],[103.179589,33.182279],[103.179532,33.182505],[103.179476,33.182731],[103.179398,33.183173],[103.179392,33.183511],[103.179385,33.183849],[103.17933,33.184292],[103.17929,33.184542],[103.179251,33.184792],[103.179242,33.185236],[103.179282,33.185488],[103.179389,33.185874],[103.179565,33.186239],[103.17974,33.186604],[103.179837,33.186914],[103.179934,33.187224],[103.179926,33.18761],[103.179803,33.188032],[103.179611,33.188436],[103.179515,33.188652],[103.179419,33.188867],[103.179322,33.189083],[103.179226,33.189298],[103.179129,33.189514],[103.179033,33.189729],[103.178936,33.189945],[103.17884,33.19016],[103.178659,33.190523],[103.178478,33.190886],[103.178385,33.191315],[103.178292,33.191744],[103.178199,33.192173],[103.178147,33.192443],[103.178096,33.192712],[103.178086,33.193155],[103.178084,33.193573],[103.178082,33.193991],[103.178081,33.194409],[103.178083,33.194655],[103.178086,33.194901],[103.178088,33.195146],[103.178091,33.195392],[103.178093,33.195637],[103.178096,33.195883],[103.178098,33.196128],[103.178101,33.196374],[103.178103,33.19662],[103.178106,33.196865],[103.178108,33.197111],[103.178111,33.197356],[103.178071,33.1976],[103.178032,33.197844],[103.177992,33.198088],[103.177952,33.198332],[103.177913,33.198576],[103.177873,33.19882],[103.177822,33.199089],[103.177771,33.199358],[103.177685,33.199598],[103.177599,33.199838],[103.177513,33.200097],[103.177481,33.200193],[103.177427,33.200357],[103.177272,33.200673],[103.177116,33.200989],[103.176979,33.201214],[103.176843,33.201438],[103.176706,33.201663],[103.176569,33.201887],[103.176433,33.202112],[103.176296,33.202337],[103.176159,33.202561],[103.176155,33.202567],[103.176023,33.202786],[103.175884,33.203005],[103.175745,33.203224],[103.175606,33.203444],[103.175467,33.203663],[103.175328,33.203882],[103.175189,33.204102],[103.174969,33.20448],[103.174748,33.204857],[103.174528,33.205235],[103.174308,33.205613],[103.174164,33.20591],[103.17402,33.206207],[103.173965,33.206631],[103.173959,33.20692],[103.174021,33.20721],[103.174062,33.207451],[103.174103,33.207693],[103.174095,33.208074],[103.174087,33.208455],[103.174081,33.20875],[103.174075,33.209044],[103.174058,33.209324],[103.174041,33.209603],[103.174009,33.210027],[103.173977,33.210451],[103.173949,33.210682],[103.173921,33.210913],[103.173894,33.211144],[103.173866,33.211375],[103.173827,33.211615],[103.173788,33.211855],[103.173665,33.212163],[103.173487,33.212479],[103.173309,33.212795],[103.173235,33.213015],[103.173161,33.213235],[103.173061,33.21362],[103.173008,33.213976],[103.172975,33.21419],[103.172954,33.214332],[103.172919,33.21457],[103.172883,33.214807],[103.172848,33.215044],[103.172812,33.215282],[103.172777,33.215519],[103.172741,33.215756],[103.17271,33.215997],[103.172678,33.216238],[103.172646,33.216479],[103.172614,33.21672],[103.172582,33.216961],[103.17255,33.217201],[103.172511,33.217427],[103.172472,33.217653],[103.172433,33.217879],[103.172394,33.218105],[103.172354,33.218331],[103.172315,33.218557],[103.172276,33.218783],[103.172237,33.219008],[103.172172,33.219335],[103.172108,33.219662],[103.172031,33.220008],[103.172005,33.220139],[103.171981,33.220259],[103.17201,33.22051],[103.172039,33.220761],[103.172076,33.22099],[103.172114,33.221219],[103.172151,33.221448],[103.172189,33.221677],[103.172226,33.221906],[103.172263,33.222135],[103.172292,33.222386],[103.172322,33.222636],[103.172315,33.223003],[103.172283,33.223312],[103.172187,33.223638],[103.172123,33.223937],[103.17206,33.224235],[103.17199,33.224626],[103.17192,33.225017],[103.17185,33.225409],[103.171786,33.225736],[103.171723,33.226063],[103.171585,33.226412],[103.171447,33.226762],[103.17131,33.227112],[103.171248,33.227328],[103.171186,33.227544],[103.171124,33.22776],[103.171063,33.227977],[103.171044,33.228216],[103.171025,33.228454],[103.171006,33.228693],[103.170987,33.228932],[103.170969,33.229171],[103.17095,33.22941],[103.170931,33.229649],[103.170912,33.229888],[103.170893,33.230127],[103.170874,33.230366],[103.170834,33.230674],[103.170793,33.230983],[103.170694,33.23127],[103.170457,33.231635],[103.170315,33.231844],[103.170083,33.231974],[103.169683,33.232169],[103.169283,33.232364],[103.169072,33.232473],[103.168861,33.232582],[103.168808,33.232609],[103.168649,33.232691],[103.168441,33.232798],[103.168438,33.2328],[103.168226,33.232908],[103.168015,33.233017],[103.167804,33.233126],[103.167592,33.233235],[103.167381,33.233344],[103.167169,33.233452],[103.166962,33.233604],[103.166755,33.233755],[103.166549,33.233905],[103.166548,33.233906],[103.16634,33.234057],[103.166133,33.234208],[103.165926,33.234359],[103.165719,33.234511],[103.165512,33.234662],[103.165184,33.234933],[103.164857,33.235205],[103.16453,33.235477],[103.164352,33.235744],[103.164173,33.236011],[103.164077,33.236271],[103.16398,33.23653],[103.163833,33.236953],[103.163817,33.237184],[103.1638,33.237415],[103.163818,33.237722],[103.163835,33.238029],[103.163867,33.238286],[103.163899,33.238542],[103.163931,33.238798],[103.163963,33.239054],[103.163995,33.23931],[103.164027,33.239566],[103.164059,33.239822],[103.164091,33.240078],[103.164124,33.240326],[103.164157,33.240575],[103.16419,33.240823],[103.164224,33.241071],[103.164257,33.241319],[103.16429,33.241567],[103.164359,33.241809],[103.164429,33.242051],[103.164498,33.242293],[103.164568,33.242535],[103.164745,33.242866],[103.164922,33.243196],[103.165031,33.243507],[103.165045,33.243913],[103.165004,33.244259],[103.164962,33.244605],[103.164876,33.245033],[103.16479,33.245461],[103.164704,33.245889],[103.164676,33.24612],[103.164648,33.246351],[103.164639,33.246789],[103.16463,33.247226],[103.164622,33.247663],[103.164661,33.247915],[103.164795,33.248187],[103.164833,33.248534],[103.164826,33.248901],[103.164819,33.249267],[103.164742,33.249695],[103.164665,33.250122],[103.164661,33.250143],[103.164595,33.250396],[103.164529,33.250648],[103.164464,33.2509],[103.164398,33.251152],[103.164332,33.251405],[103.164266,33.251657],[103.164201,33.251909],[103.164135,33.252161],[103.164066,33.25243],[103.163997,33.252699],[103.163928,33.252968],[103.163859,33.253237],[103.163791,33.253506],[103.163722,33.253775],[103.163653,33.254044],[103.163584,33.254313],[103.163439,33.254678],[103.163293,33.255043],[103.163144,33.255241],[103.162995,33.255438],[103.162846,33.255636],[103.162697,33.255834],[103.162532,33.256027],[103.162368,33.256219],[103.162281,33.256321],[103.162203,33.256412],[103.162038,33.256604],[103.161873,33.256796],[103.161708,33.256989],[103.161543,33.257181],[103.161378,33.257374],[103.161214,33.257566],[103.161049,33.257758],[103.160865,33.257949],[103.16068,33.258139],[103.160496,33.25833],[103.160366,33.258464],[103.160312,33.25852],[103.160128,33.258711],[103.159944,33.258901],[103.15978,33.259032],[103.159665,33.25907],[103.159436,33.259047],[103.159184,33.258947],[103.158972,33.258805],[103.158889,33.25875],[103.158685,33.258621],[103.158481,33.258493],[103.158093,33.258313],[103.157886,33.25824],[103.157866,33.258233],[103.157498,33.258169],[103.157064,33.258125],[103.156754,33.25812],[103.156444,33.258116],[103.156144,33.25813],[103.155845,33.258145],[103.15558,33.258189],[103.155314,33.258234],[103.15508,33.258299],[103.154845,33.258365],[103.154698,33.258406],[103.154611,33.25843],[103.154376,33.258496],[103.154125,33.258538],[103.153873,33.258581],[103.153622,33.258623],[103.15337,33.258666],[103.153357,33.258668],[103.153156,33.258702],[103.153119,33.258708],[103.152867,33.25875],[103.152793,33.258763],[103.152727,33.258774],[103.152616,33.258793],[103.152443,33.258822],[103.152364,33.258835],[103.152113,33.258878],[103.151861,33.25892],[103.151434,33.259001],[103.151008,33.259081],[103.150581,33.259162],[103.150154,33.259243],[103.149923,33.259292],[103.149692,33.259342],[103.149461,33.259392],[103.14923,33.259441],[103.148907,33.259514],[103.148665,33.259539],[103.148626,33.259543],[103.148423,33.259564],[103.148181,33.259589],[103.147938,33.259615],[103.147752,33.259619],[103.147678,33.259621],[103.147418,33.259627],[103.147157,33.259633],[103.146897,33.259639],[103.146636,33.259645],[103.146376,33.259651],[103.146116,33.259657],[103.145855,33.259663],[103.145598,33.259655],[103.145341,33.259648],[103.145084,33.25964],[103.144827,33.259633],[103.14457,33.259626],[103.144313,33.259618],[103.144056,33.259611],[103.143799,33.259603],[103.143542,33.259596],[103.143285,33.259588],[103.143028,33.259581],[103.142771,33.259573],[103.142514,33.259566],[103.142257,33.259559],[103.141999,33.259551],[103.141742,33.259544],[103.141497,33.259543],[103.141252,33.259543],[103.141007,33.259542],[103.140762,33.259542],[103.140517,33.259541],[103.140272,33.259541],[103.140027,33.259541],[103.139781,33.25954],[103.139536,33.25954],[103.139291,33.259539],[103.139046,33.259539],[103.138801,33.259538],[103.138551,33.259533],[103.138302,33.259529],[103.138053,33.259524],[103.137803,33.259519],[103.137554,33.259514],[103.137304,33.259509],[103.137061,33.259504],[103.137055,33.259504],[103.136805,33.2595],[103.136556,33.259495],[103.136433,33.259492],[103.136306,33.25949],[103.136052,33.259463],[103.135797,33.259437],[103.135542,33.25941],[103.135287,33.259383],[103.135032,33.259357],[103.134778,33.25933],[103.134523,33.259303],[103.134405,33.259291],[103.134268,33.259277],[103.134013,33.25925],[103.133759,33.259224],[103.13352,33.259218],[103.133282,33.259213],[103.133044,33.259207],[103.132806,33.259202],[103.132567,33.259196],[103.132329,33.259191],[103.132091,33.259185],[103.131853,33.25918],[103.131776,33.259178],[103.131615,33.259174],[103.131376,33.259169],[103.131138,33.259163],[103.1309,33.259158],[103.130662,33.259152],[103.130423,33.259147],[103.130275,33.259149],[103.130017,33.259154],[103.12961,33.25916],[103.129346,33.259176],[103.129148,33.259188],[103.129082,33.259192],[103.12899,33.25921],[103.128849,33.259236],[103.128617,33.259279],[103.128359,33.25935],[103.128224,33.259388],[103.127831,33.259496],[103.127475,33.259602],[103.127447,33.25961],[103.127362,33.259636],[103.127118,33.259708],[103.126926,33.259766],[103.126762,33.259815],[103.126477,33.259898],[103.126193,33.259982],[103.125954,33.260052],[103.125716,33.260122],[103.125477,33.260192],[103.125239,33.260262],[103.125,33.260332],[103.124762,33.260402],[103.124667,33.26043],[103.124523,33.260472],[103.124285,33.260542],[103.124046,33.260612],[103.123808,33.260682],[103.12357,33.260752],[103.123331,33.260822],[103.122898,33.260922],[103.122465,33.261023],[103.122032,33.261123],[103.121688,33.261203],[103.121599,33.261224],[103.121206,33.261285],[103.120814,33.261346],[103.120367,33.261353],[103.120314,33.261352],[103.120314,33.261352],[103.120136,33.261349],[103.119905,33.261346],[103.119846,33.261341],[103.119489,33.261313],[103.119124,33.261281],[103.11871,33.261207],[103.118297,33.261133],[103.118267,33.261128],[103.117899,33.26106],[103.117657,33.26098],[103.117415,33.260899],[103.117174,33.260819],[103.116932,33.260738],[103.116563,33.260576],[103.116463,33.260532],[103.116291,33.260457],[103.116194,33.260415],[103.115826,33.260253],[103.115508,33.260141],[103.115191,33.260029],[103.11492,33.259998],[103.114649,33.259967],[103.114285,33.259948],[103.114246,33.259955],[103.113981,33.260003],[103.113879,33.260022],[103.113676,33.260059],[103.113339,33.260134],[103.113044,33.260162],[103.112748,33.260191],[103.112349,33.260185],[103.111976,33.26018],[103.11195,33.26018],[103.111715,33.260166],[103.111479,33.260153],[103.111244,33.260139],[103.111009,33.260126],[103.110782,33.260079],[103.110556,33.260032],[103.110329,33.259984],[103.110103,33.259937],[103.109732,33.259874],[103.109361,33.25981],[103.10899,33.259746],[103.108748,33.259692],[103.108506,33.259638],[103.108263,33.259584],[103.108021,33.25953],[103.107792,33.259467],[103.107563,33.259404],[103.107333,33.25934],[103.107104,33.259277],[103.106874,33.259214],[103.106645,33.25915],[103.106416,33.259087],[103.106186,33.259024],[103.105946,33.258961],[103.105706,33.258899],[103.105466,33.258837],[103.105225,33.258774],[103.104985,33.258712],[103.104745,33.25865],[103.104505,33.258587],[103.104265,33.258525],[103.104047,33.258462],[103.103829,33.258398],[103.103611,33.258334],[103.103393,33.258271],[103.103172,33.258195],[103.103161,33.258191],[103.103086,33.258166],[103.103074,33.258161],[103.103045,33.258151],[103.102943,33.258117],[103.10288,33.258095],[103.102696,33.258032],[103.102418,33.257934],[103.102141,33.257836],[103.101726,33.257685],[103.101312,33.257535],[103.100898,33.257384],[103.100494,33.25722],[103.100091,33.257056],[103.099688,33.256892],[103.099284,33.256728],[103.098871,33.256628],[103.098459,33.256529],[103.098046,33.256429],[103.097633,33.256329],[103.09737,33.256289],[103.097106,33.25625],[103.096787,33.256219],[103.096488,33.256259],[103.096268,33.256288],[103.096188,33.256298],[103.09613,33.256316],[103.096116,33.256321],[103.096084,33.256348],[103.096083,33.256266],[103.096067,33.256109],[103.095962,33.25579],[103.095859,33.255611],[103.095668,33.255422],[103.095583,33.255369],[103.095397,33.255293],[103.095352,33.255273],[103.095227,33.25524],[103.095123,33.255228],[103.095045,33.255226],[103.094972,33.255226],[103.094871,33.255247],[103.094766,33.255283],[103.09468,33.255315],[103.094616,33.255352],[103.0946,33.255361],[103.094524,33.255409],[103.09443,33.255476],[103.094362,33.255544],[103.094187,33.255693],[103.094098,33.255785],[103.094051,33.25584],[103.09397,33.255932],[103.093769,33.255827],[103.093842,33.255707],[103.093804,33.255707],[103.09378,33.255712],[103.093745,33.255719],[103.093717,33.255731],[103.093655,33.255764],[103.093575,33.255705],[103.093252,33.255466],[103.093182,33.255414],[103.092823,33.255148],[103.092666,33.254847],[103.092564,33.254652],[103.092421,33.254379],[103.092367,33.254264],[103.092359,33.254247],[103.092194,33.253895],[103.091881,33.253429],[103.091277,33.252985],[103.091204,33.252875],[103.091151,33.252795],[103.091058,33.252656],[103.091077,33.251787],[103.09112,33.251642],[103.091286,33.251084],[103.091336,33.25027],[103.091229,33.249624],[103.091106,33.249389],[103.090949,33.24909],[103.090882,33.24904],[103.090861,33.249024],[103.090608,33.248838],[103.090575,33.248813],[103.090329,33.248632],[103.089895,33.248544],[103.089704,33.248606],[103.089398,33.248706],[103.089358,33.248719],[103.089247,33.248829],[103.08883,33.249243],[103.088817,33.249256],[103.088816,33.249256],[103.088729,33.249343],[103.088728,33.249343],[103.088721,33.24935],[103.08859,33.249481],[103.088346,33.249678],[103.088269,33.249741],[103.088002,33.249757],[103.087786,33.249652],[103.087784,33.249646],[103.087783,33.249642],[103.087711,33.249408],[103.08767,33.249402],[103.087635,33.249395],[103.087608,33.24938],[103.087603,33.249357],[103.087619,33.249334],[103.087682,33.249314],[103.087673,33.249284],[103.087685,33.248725],[103.087685,33.248704],[103.087686,33.248673],[103.087619,33.248493],[103.087594,33.248427],[103.08738,33.248455],[103.087366,33.248406],[103.087344,33.248379],[103.087309,33.248372],[103.087267,33.248361],[103.087235,33.248413],[103.087184,33.248481],[103.087035,33.2485],[103.086823,33.24852],[103.086523,33.248548],[103.086477,33.248552],[103.086387,33.248554],[103.086052,33.248559],[103.085822,33.248563],[103.085645,33.248507],[103.085003,33.248306],[103.084261,33.247887],[103.084235,33.247868],[103.084217,33.247855],[103.083928,33.247652],[103.08376,33.247533],[103.083719,33.247186],[103.08395,33.246864],[103.084142,33.246792],[103.0845,33.246658],[103.084995,33.246483],[103.085379,33.246351],[103.085801,33.246174],[103.085975,33.246138],[103.086052,33.246147],[103.086194,33.24617],[103.0863,33.246182],[103.086428,33.246182],[103.086539,33.246182],[103.086683,33.246157],[103.086814,33.246122],[103.086943,33.246081],[103.087027,33.246056],[103.087076,33.246056],[103.087303,33.245946],[103.087356,33.245968],[103.087372,33.245959],[103.087416,33.245933],[103.087463,33.245911],[103.0875,33.245888],[103.087561,33.245853],[103.087593,33.24584],[103.087614,33.245824],[103.087607,33.245798],[103.087788,33.24571],[103.087851,33.245679],[103.08805,33.245582],[103.08834,33.245273],[103.088306,33.245224],[103.088296,33.245173],[103.088294,33.245131],[103.088296,33.24512],[103.088307,33.245079],[103.08834,33.245031],[103.088365,33.24502],[103.088406,33.245035],[103.088445,33.245086],[103.08848,33.245123],[103.088527,33.245073],[103.088561,33.245036],[103.088572,33.245025],[103.088878,33.244814],[103.08932,33.244508],[103.089328,33.244502],[103.089341,33.2445],[103.08942,33.244487],[103.08973,33.244436],[103.08974,33.244463],[103.089752,33.24448],[103.089776,33.244494],[103.089812,33.244501],[103.089852,33.2445],[103.089894,33.244499],[103.089934,33.244497],[103.089965,33.244502],[103.089991,33.244511],[103.090046,33.244537],[103.090102,33.244548],[103.090176,33.244558],[103.09025,33.244564],[103.090299,33.244561],[103.09038,33.244557],[103.090472,33.244538],[103.09053,33.244517],[103.090563,33.244491],[103.090583,33.244461],[103.0906,33.24443],[103.090912,33.244451],[103.090967,33.244466],[103.091544,33.244628],[103.091934,33.244669],[103.092233,33.2447],[103.092251,33.244694],[103.092437,33.244641],[103.092837,33.244526],[103.093037,33.244345],[103.093321,33.24409],[103.093523,33.24391],[103.093569,33.243437],[103.093453,33.242923],[103.093421,33.242783],[103.09342,33.242778],[103.093305,33.242533],[103.093301,33.242525],[103.093072,33.242039],[103.092683,33.241544],[103.092386,33.241005],[103.092327,33.240806],[103.092307,33.24074],[103.092267,33.240606],[103.092473,33.24035],[103.092486,33.240345],[103.092525,33.240332],[103.092608,33.240354],[103.092764,33.240367],[103.092893,33.240343],[103.093065,33.240286],[103.093182,33.240235],[103.093203,33.24022],[103.093265,33.240223],[103.093711,33.240246],[103.094458,33.240168],[103.094604,33.240153],[103.09465,33.240131],[103.094674,33.240119],[103.095431,33.239753],[103.095508,33.23975],[103.095525,33.239749],[103.095589,33.239747],[103.095763,33.239739],[103.095795,33.239738],[103.095986,33.239892],[103.096064,33.239941],[103.096112,33.239932],[103.096243,33.240104],[103.096892,33.24112],[103.097318,33.241479],[103.097325,33.241485],[103.097327,33.241487],[103.097363,33.241517],[103.097427,33.241571],[103.097685,33.241568],[103.097955,33.241564],[103.098125,33.241276],[103.097887,33.240527],[103.097885,33.240519],[103.097852,33.240417],[103.097794,33.240092],[103.097739,33.239789],[103.097771,33.239638],[103.097791,33.239548],[103.09788,33.239134],[103.098144,33.238772],[103.098255,33.23862],[103.098347,33.238579],[103.098348,33.238579],[103.098535,33.238496],[103.098599,33.238467],[103.098623,33.238457],[103.098626,33.238444],[103.098694,33.238166],[103.09873,33.238018],[103.099339,33.237771],[103.099892,33.237211],[103.100003,33.237054],[103.100005,33.236738],[103.099791,33.236551],[103.099157,33.236404],[103.09891,33.236552],[103.098702,33.236676],[103.098607,33.236733],[103.09831,33.23691],[103.098183,33.237006],[103.09764,33.237417],[103.09754,33.237492],[103.097479,33.237539],[103.09722,33.237749],[103.097192,33.237772],[103.097072,33.237869],[103.096977,33.237861],[103.096928,33.237856],[103.096885,33.237802],[103.096791,33.237769],[103.096656,33.23776],[103.096569,33.23777],[103.096439,33.237676],[103.09642,33.23759],[103.096373,33.237385],[103.096541,33.237126],[103.096548,33.237115],[103.09658,33.237067],[103.096642,33.23702],[103.097153,33.236633],[103.097415,33.236286],[103.097298,33.236126],[103.097256,33.236069],[103.097226,33.236057],[103.096823,33.235886],[103.09677,33.235863],[103.09656,33.235827],[103.09651,33.235776],[103.096461,33.235733],[103.096329,33.235652],[103.096252,33.235624],[103.096155,33.235592],[103.096051,33.235563],[103.095987,33.235544],[103.095945,33.235528],[103.095926,33.235521],[103.095876,33.235499],[103.095816,33.235462],[103.095766,33.235437],[103.095684,33.235412],[103.095648,33.235405],[103.095601,33.235402],[103.095446,33.235188],[103.095433,33.235172],[103.095263,33.234939],[103.095281,33.234628],[103.095291,33.234466],[103.095314,33.234396],[103.095288,33.234339],[103.095307,33.234211],[103.095327,33.234115],[103.095369,33.233996],[103.095392,33.233918],[103.095427,33.233831],[103.095446,33.233682],[103.095547,33.233553],[103.095505,33.233459],[103.095344,33.233096],[103.095287,33.232969],[103.094936,33.232413],[103.094911,33.231893],[103.095046,33.231529],[103.095121,33.231468],[103.095188,33.231414],[103.09527,33.231347],[103.095388,33.231375],[103.095468,33.231383],[103.09555,33.231379],[103.095626,33.23137],[103.095737,33.231346],[103.095799,33.231303],[103.095845,33.231263],[103.096214,33.231302],[103.096359,33.231365],[103.09642,33.231365],[103.096522,33.231383],[103.09662,33.231412],[103.096787,33.231478],[103.09715,33.231639],[103.097265,33.231699],[103.097318,33.23174],[103.097324,33.231742],[103.097881,33.231868],[103.0979,33.231872],[103.097934,33.231907],[103.098016,33.231963],[103.098153,33.232022],[103.09829,33.232067],[103.098442,33.232104],[103.098594,33.232107],[103.098728,33.232107],[103.098755,33.232122],[103.098956,33.232232],[103.099155,33.23234],[103.099344,33.232369],[103.099787,33.232437],[103.099925,33.232418],[103.100119,33.232345],[103.100277,33.232264],[103.100442,33.232165],[103.100545,33.232049],[103.100632,33.23193],[103.10069,33.231778],[103.100749,33.231626],[103.100771,33.231443],[103.100749,33.231288],[103.10072,33.231157],[103.100718,33.231151],[103.100688,33.231119],[103.100689,33.231104],[103.100689,33.231081],[103.100684,33.231063],[103.100655,33.230996],[103.100614,33.230895],[103.100579,33.230837],[103.100568,33.230821],[103.100528,33.230765],[103.100463,33.230692],[103.100409,33.230632],[103.100366,33.230599],[103.100326,33.230579],[103.100289,33.230561],[103.100202,33.23052],[103.100121,33.230493],[103.100051,33.230478],[103.099744,33.230109],[103.099552,33.229709],[103.099325,33.22928],[103.099287,33.229126],[103.099295,33.228928],[103.099287,33.228849],[103.099292,33.228707],[103.099295,33.228594],[103.098932,33.22835],[103.098532,33.228213],[103.098486,33.228197],[103.098138,33.228078],[103.098091,33.228076],[103.098058,33.228058],[103.098002,33.228044],[103.097926,33.228043],[103.097831,33.228048],[103.097757,33.228052],[103.097723,33.228063],[103.097421,33.228052],[103.097357,33.228118],[103.097287,33.228165],[103.097209,33.228193],[103.097134,33.2282],[103.097034,33.228201],[103.096794,33.228165],[103.096658,33.228128],[103.096628,33.228131],[103.096444,33.228134],[103.096436,33.228135],[103.096376,33.228103],[103.096223,33.228053],[103.096131,33.228036],[103.096073,33.228025],[103.095927,33.228014],[103.095804,33.228019],[103.095724,33.228028],[103.095649,33.228009],[103.095272,33.22782],[103.095262,33.22781],[103.095094,33.227619],[103.095555,33.22732],[103.095665,33.227304],[103.095695,33.2273],[103.095741,33.227323],[103.095831,33.227359],[103.095937,33.227377],[103.096029,33.227385],[103.096149,33.227384],[103.096229,33.227373],[103.096347,33.227339],[103.096425,33.2273],[103.096527,33.227243],[103.096586,33.227188],[103.096622,33.227148],[103.096666,33.227085],[103.096704,33.226972],[103.096784,33.226809],[103.09683,33.226647],[103.096919,33.226408],[103.096745,33.226101],[103.09669,33.226065],[103.096709,33.226027],[103.096725,33.225978],[103.096735,33.225903],[103.096734,33.225832],[103.096719,33.225773],[103.096691,33.225713],[103.096667,33.225676],[103.096638,33.225651],[103.0966,33.225634],[103.096537,33.225627],[103.096491,33.225626],[103.096384,33.22567],[103.096334,33.225706],[103.096315,33.225718],[103.096297,33.22573],[103.096264,33.225744],[103.096224,33.225756],[103.095934,33.225483],[103.095913,33.225464],[103.09578,33.225338],[103.095644,33.225207],[103.095442,33.225012],[103.095378,33.224614],[103.09537,33.224363],[103.095369,33.224345],[103.09542,33.224401],[103.095476,33.224429],[103.095539,33.224448],[103.095604,33.224454],[103.09572,33.224456],[103.095818,33.22444],[103.095875,33.224422],[103.095932,33.224394],[103.09594,33.224397],[103.096048,33.224451],[103.09609,33.224472],[103.096477,33.224672],[103.096538,33.22466],[103.096581,33.22463],[103.096611,33.224584],[103.096632,33.224553],[103.096663,33.224547],[103.096716,33.224561],[103.09679,33.224609],[103.096851,33.224655],[103.096861,33.224691],[103.096861,33.224728],[103.096842,33.224777],[103.096991,33.224807],[103.09712,33.224732],[103.097104,33.224577],[103.097097,33.224505],[103.09709,33.224442],[103.096969,33.22413],[103.096935,33.224042],[103.096815,33.223719],[103.0971,33.223158],[103.097457,33.222587],[103.097471,33.222561],[103.097342,33.221965],[103.097163,33.221866],[103.097175,33.221786],[103.09716,33.221682],[103.097135,33.221597],[103.097086,33.221531],[103.097043,33.221491],[103.096986,33.221467],[103.096929,33.221462],[103.09672,33.221477],[103.096561,33.221496],[103.096425,33.22151],[103.096285,33.221519],[103.096141,33.221538],[103.095763,33.221463],[103.094547,33.22123],[103.093765,33.221058],[103.093642,33.221031],[103.093632,33.22102],[103.093591,33.220984],[103.093548,33.220946],[103.093483,33.220904],[103.093251,33.220765],[103.093155,33.220711],[103.093087,33.220684],[103.093031,33.220665],[103.092978,33.220654],[103.092932,33.220641],[103.092636,33.220322],[103.09257,33.220251],[103.092511,33.220188],[103.092495,33.220173],[103.09249,33.219883],[103.092484,33.219656],[103.092484,33.219643],[103.092482,33.219551],[103.092929,33.219031],[103.092939,33.219019],[103.09321,33.218703],[103.093205,33.218526],[103.093201,33.218384],[103.093214,33.218354],[103.093224,33.218296],[103.093224,33.218229],[103.093223,33.218182],[103.093206,33.218121],[103.093176,33.218056],[103.093082,33.217944],[103.092979,33.217875],[103.092896,33.217811],[103.0928,33.21776],[103.092743,33.217743],[103.092713,33.217735],[103.092636,33.217668],[103.092437,33.217502],[103.092421,33.217488],[103.09238,33.217454],[103.091967,33.217109],[103.091862,33.216351],[103.091844,33.216224],[103.091756,33.215721],[103.091606,33.215711],[103.091622,33.215637],[103.091658,33.215388],[103.091641,33.215074],[103.091568,33.214682],[103.091566,33.214668],[103.091067,33.214685],[103.091044,33.214685],[103.090846,33.214692],[103.090105,33.214456],[103.090102,33.214434],[103.090071,33.214221],[103.090069,33.214208],[103.090059,33.214143],[103.090215,33.213892],[103.090501,33.213433],[103.090518,33.213398],[103.090723,33.212989],[103.090615,33.212914],[103.09061,33.21291],[103.090461,33.212806],[103.090418,33.212822],[103.089959,33.212995],[103.089609,33.213127],[103.089597,33.213132],[103.089548,33.21315],[103.08933,33.213327],[103.089287,33.213362],[103.089281,33.213397],[103.089207,33.213476],[103.089024,33.213628],[103.088898,33.213677],[103.088854,33.213688],[103.088595,33.213749],[103.088578,33.213753],[103.088473,33.213777],[103.088362,33.213803],[103.088319,33.213355],[103.088435,33.212909],[103.088515,33.212841],[103.088538,33.212821],[103.088552,33.212809],[103.088567,33.212796],[103.088595,33.212772],[103.089001,33.212424],[103.089357,33.212118],[103.089793,33.211677],[103.089768,33.211352],[103.089752,33.211139],[103.08963,33.211104],[103.089515,33.21107],[103.089505,33.211067],[103.08945,33.211051],[103.089103,33.21095],[103.0888,33.211058],[103.088718,33.211004],[103.088654,33.210987],[103.088594,33.210987],[103.088509,33.211018],[103.088428,33.211072],[103.088358,33.211118],[103.088284,33.211175],[103.088214,33.211253],[103.088166,33.211322],[103.088134,33.211368],[103.087483,33.211797],[103.087409,33.211845],[103.087138,33.212024],[103.087082,33.21206],[103.086974,33.212107],[103.086918,33.212132],[103.086863,33.212205],[103.086809,33.212274],[103.086749,33.21234],[103.086675,33.212388],[103.086579,33.212419],[103.086487,33.212438],[103.086416,33.212429],[103.08628,33.212369],[103.086132,33.212289],[103.086012,33.212196],[103.085956,33.212135],[103.085904,33.21204],[103.085868,33.211953],[103.085862,33.21189],[103.085868,33.211806],[103.085892,33.211741],[103.085923,33.211687],[103.085928,33.211682],[103.085894,33.211606],[103.085838,33.211467],[103.085768,33.21129],[103.085705,33.211133],[103.085233,33.21079],[103.084809,33.211178],[103.084655,33.211319],[103.084646,33.211327],[103.084296,33.211648],[103.084106,33.211842],[103.08384,33.212116],[103.08364,33.212147],[103.083309,33.212205],[103.082946,33.212355],[103.082484,33.212292],[103.082311,33.212262],[103.082211,33.21222],[103.082156,33.212156],[103.082149,33.212129],[103.082133,33.212066],[103.082129,33.211944],[103.082143,33.211857],[103.082168,33.211786],[103.082181,33.211758],[103.082177,33.21175],[103.082421,33.211445],[103.082548,33.211232],[103.082618,33.210733],[103.082694,33.210516],[103.082724,33.210421],[103.082793,33.210313],[103.082863,33.210232],[103.082996,33.210085],[103.083094,33.209968],[103.083195,33.209848],[103.083301,33.209763],[103.083403,33.209732],[103.08346,33.209738],[103.083535,33.209788],[103.083589,33.209832],[103.083671,33.209884],[103.083821,33.209821],[103.083986,33.209752],[103.084099,33.209766],[103.084202,33.209769],[103.084253,33.209761],[103.084287,33.209739],[103.084356,33.209695],[103.0845,33.209603],[103.084466,33.209557],[103.084403,33.209471],[103.084455,33.209414],[103.084512,33.209245],[103.084538,33.209077],[103.084523,33.208973],[103.084457,33.208862],[103.084357,33.20886],[103.084195,33.208844],[103.084071,33.208828],[103.083913,33.208796],[103.0838,33.208759],[103.083783,33.208807],[103.083445,33.208513],[103.083185,33.20825],[103.082703,33.207763],[103.082431,33.207171],[103.082283,33.20685],[103.082276,33.206795],[103.082209,33.20634],[103.082023,33.205058],[103.082133,33.204598],[103.082598,33.204817],[103.082716,33.2049],[103.083043,33.20513],[103.083251,33.205276],[103.083355,33.205349],[103.083512,33.205459],[103.083541,33.20545],[103.083534,33.205638],[103.083577,33.205667],[103.083681,33.205639],[103.083937,33.2055],[103.08418,33.20523],[103.084369,33.205068],[103.084458,33.204939],[103.084434,33.204851],[103.084471,33.20473],[103.084496,33.204653],[103.084546,33.204601],[103.084662,33.204581],[103.084751,33.204513],[103.08475,33.204377],[103.084741,33.204302],[103.084768,33.204206],[103.084809,33.204158],[103.084919,33.204119],[103.08492,33.204071],[103.084748,33.203715],[103.084665,33.203739],[103.084467,33.203797],[103.08441,33.203814],[103.084268,33.203856],[103.084175,33.203883],[103.084149,33.203898],[103.083508,33.204275],[103.083178,33.20427],[103.083152,33.204185],[103.083046,33.203846],[103.082942,33.20351],[103.082759,33.203546],[103.082527,33.203537],[103.082453,33.203514],[103.082379,33.203491],[103.082263,33.203352],[103.082164,33.203194],[103.082119,33.203097],[103.082112,33.203],[103.082111,33.202899],[103.082113,33.202857],[103.082116,33.202755],[103.082127,33.202666],[103.082153,33.202553],[103.0822,33.202403],[103.082246,33.202247],[103.082285,33.202088],[103.082302,33.201969],[103.082301,33.201884],[103.082276,33.20179],[103.082184,33.201616],[103.082138,33.201509],[103.082133,33.201491],[103.082113,33.201417],[103.082114,33.201326],[103.082127,33.201252],[103.082164,33.201173],[103.082175,33.20115],[103.08222,33.201098],[103.082332,33.201038],[103.082386,33.201009],[103.082419,33.200969],[103.082445,33.200929],[103.082465,33.200898],[103.082499,33.200811],[103.082583,33.200607],[103.082688,33.200272],[103.082741,33.20011],[103.082788,33.200041],[103.082862,33.199997],[103.082892,33.199956],[103.082907,33.199878],[103.082924,33.199781],[103.083003,33.199518],[103.083005,33.199443],[103.083008,33.199311],[103.083035,33.199121],[103.083042,33.198998],[103.083059,33.198872],[103.083084,33.198775],[103.08312,33.198664],[103.083157,33.198507],[103.083177,33.198456],[103.083068,33.198351],[103.082963,33.198341],[103.082971,33.198278],[103.082961,33.19822],[103.082945,33.19817],[103.082921,33.198124],[103.082865,33.19809],[103.082786,33.198074],[103.082699,33.198079],[103.082697,33.198082],[103.08262,33.198143],[103.082555,33.198217],[103.082489,33.198296],[103.08244,33.198291],[103.082099,33.198428],[103.081888,33.198513],[103.081715,33.198582],[103.081234,33.198676],[103.081144,33.198634],[103.081137,33.19863],[103.080895,33.198517],[103.080789,33.198467],[103.080688,33.19829],[103.080676,33.198268],[103.080587,33.198112],[103.080539,33.197582],[103.080742,33.197243],[103.080943,33.196909],[103.081085,33.196772],[103.081124,33.196732],[103.08127,33.196648],[103.081251,33.196628],[103.081241,33.1966],[103.081331,33.196609],[103.081491,33.196606],[103.081622,33.196605],[103.081785,33.196592],[103.081945,33.196573],[103.082137,33.196549],[103.08222,33.196539],[103.082357,33.196523],[103.082365,33.196522],[103.082591,33.196513],[103.082739,33.196522],[103.0831,33.196536],[103.083266,33.196556],[103.083383,33.196555],[103.083446,33.196549],[103.083663,33.196439],[103.083729,33.196406],[103.083859,33.196239],[103.083887,33.196067],[103.083875,33.195878],[103.083847,33.195835],[103.083755,33.195693],[103.083651,33.195652],[103.083626,33.195557],[103.083614,33.195485],[103.083584,33.19541],[103.083544,33.195327],[103.083501,33.195271],[103.083421,33.195206],[103.083358,33.195175],[103.08331,33.195161],[103.083254,33.195153],[103.083191,33.195164],[103.083142,33.195189],[103.083133,33.195194],[103.083076,33.195224],[103.082981,33.19525],[103.082857,33.195266],[103.082723,33.195284],[103.082217,33.195077],[103.082174,33.19506],[103.082122,33.195038],[103.08197,33.194802],[103.081953,33.194776],[103.081745,33.194453],[103.081883,33.19365],[103.082907,33.192671],[103.083553,33.19224],[103.083448,33.191924],[103.083076,33.191792],[103.083019,33.1918],[103.082976,33.191806],[103.082902,33.191816],[103.082716,33.191841],[103.082695,33.191768],[103.082677,33.191719],[103.082653,33.191658],[103.08263,33.191599],[103.082596,33.191542],[103.082555,33.191513],[103.082516,33.191495],[103.082488,33.191492],[103.082451,33.191505],[103.082398,33.191543],[103.082392,33.191547],[103.082329,33.19159],[103.082112,33.191757],[103.082066,33.19181],[103.081958,33.191902],[103.081899,33.191938],[103.081886,33.191938],[103.081721,33.191943],[103.081351,33.191955],[103.080867,33.191821],[103.08084,33.191756],[103.080836,33.191745],[103.080823,33.191713],[103.080751,33.191537],[103.080745,33.191523],[103.080725,33.191473],[103.080742,33.191309],[103.080772,33.191033],[103.081422,33.190414],[103.081577,33.190154],[103.081888,33.189634],[103.081952,33.189281],[103.081956,33.189255],[103.082014,33.188936],[103.082058,33.188692],[103.082092,33.188588],[103.082203,33.188242],[103.082383,33.187679],[103.082395,33.187642],[103.08246,33.187439],[103.082559,33.187315],[103.082806,33.187004],[103.083301,33.186533],[103.084335,33.185548],[103.084533,33.185342],[103.084871,33.18499],[103.085001,33.184174],[103.08506,33.183867],[103.08515,33.183397],[103.08519,33.183189],[103.085192,33.183183],[103.08527,33.183026],[103.085324,33.182877],[103.085289,33.182678],[103.085297,33.182636],[103.085202,33.181848],[103.085211,33.181768],[103.085214,33.181739],[103.085248,33.181439],[103.08563,33.181099],[103.086823,33.180677],[103.087252,33.180526],[103.087304,33.180507],[103.087594,33.180405],[103.087701,33.180367],[103.088874,33.179953],[103.090478,33.179431],[103.090721,33.179352],[103.091267,33.179046],[103.092198,33.178525],[103.092959,33.17797],[103.093047,33.17776],[103.093354,33.177032],[103.093441,33.175994],[103.093454,33.175837],[103.093422,33.175514],[103.093373,33.175038],[103.093362,33.174923],[103.093372,33.174438],[103.093379,33.174136],[103.093383,33.173386],[103.093385,33.172831],[103.093389,33.172164],[103.09339,33.171902],[103.09339,33.171894],[103.093337,33.170894],[103.093294,33.170724],[103.093096,33.169946],[103.092237,33.168139],[103.09211,33.167067],[103.092069,33.166813],[103.092005,33.166424],[103.091888,33.166253],[103.091808,33.166057],[103.091714,33.165909],[103.09152,33.165732],[103.091433,33.165645],[103.091443,33.165639],[103.091591,33.165584],[103.09182,33.1656],[103.091888,33.165537],[103.091883,33.165497],[103.091772,33.164486],[103.091756,33.164341],[103.091701,33.163844],[103.09157,33.162652],[103.09159,33.161708],[103.091754,33.161517],[103.09225,33.160935],[103.092612,33.160511],[103.09305,33.159999],[103.093483,33.159257],[103.093633,33.159001],[103.093905,33.158502],[103.093906,33.158476],[103.093917,33.157965],[103.093918,33.157935],[103.093868,33.157689],[103.093816,33.15743],[103.093466,33.157091],[103.093157,33.15679],[103.092615,33.155869],[103.09188,33.155292],[103.091088,33.154546],[103.090963,33.154428],[103.090573,33.153681],[103.090474,33.153492],[103.090636,33.153434],[103.091011,33.153279],[103.091137,33.153141],[103.091142,33.152998],[103.09107,33.152903],[103.091019,33.15284],[103.090998,33.152814],[103.090868,33.152624],[103.09081,33.152518],[103.090656,33.152496],[103.090263,33.152222],[103.090206,33.152182],[103.090161,33.15174],[103.090067,33.150889],[103.089882,33.150504],[103.089566,33.149843],[103.089539,33.14979],[103.089382,33.149484],[103.08933,33.149383],[103.089146,33.149024],[103.088996,33.148731],[103.088994,33.148728],[103.088571,33.147901],[103.088687,33.147881],[103.088967,33.147656],[103.089075,33.14754],[103.08918,33.147425],[103.089426,33.147278],[103.089447,33.147234],[103.089483,33.147159],[103.089233,33.147077],[103.088753,33.147005],[103.0884,33.146937],[103.08805,33.146885],[103.087456,33.145725],[103.087435,33.145684],[103.08696,33.144758],[103.086859,33.144561],[103.086857,33.144555],[103.08612,33.143117],[103.085918,33.142236],[103.08591,33.142201],[103.085881,33.142075],[103.085825,33.14194],[103.085691,33.14185],[103.085621,33.141764],[103.085523,33.141687],[103.085437,33.141634],[103.085415,33.141544],[103.085452,33.141455],[103.085472,33.141386],[103.085475,33.141297],[103.085465,33.141064],[103.085444,33.140803],[103.085421,33.140686],[103.085389,33.140536],[103.085354,33.14045],[103.085315,33.140379],[103.085224,33.140233],[103.085129,33.140151],[103.085072,33.140113],[103.084857,33.139622],[103.084226,33.138185],[103.084166,33.138143],[103.084086,33.138087],[103.084016,33.137963],[103.083958,33.137849],[103.083871,33.137692],[103.083836,33.137593],[103.083754,33.137388],[103.083655,33.137189],[103.083504,33.136861],[103.083405,33.136675],[103.083375,33.136533],[103.083459,33.136435],[103.082831,33.136079],[103.082068,33.135976],[103.082047,33.135973],[103.081307,33.135615],[103.080146,33.135692],[103.078205,33.135473],[103.075937,33.13484],[103.075345,33.134516],[103.074911,33.133848],[103.074899,33.133736],[103.07474,33.13361],[103.07465,33.13355],[103.074526,33.133497],[103.074453,33.133441],[103.074413,33.133348],[103.074404,33.133266],[103.074424,33.133219],[103.074522,33.1332],[103.074696,33.133199],[103.074849,33.133249],[103.074212,33.131571],[103.074197,33.131547],[103.074196,33.131545],[103.074176,33.131514],[103.073944,33.131144],[103.073888,33.131056],[103.073453,33.130363],[103.072174,33.12899],[103.070755,33.128874],[103.069706,33.128952],[103.067463,33.128854],[103.066639,33.128904],[103.065744,33.128796],[103.065495,33.128226],[103.064328,33.125155],[103.063434,33.124983],[103.062842,33.125031],[103.061785,33.125115],[103.06006,33.125308],[103.058862,33.125353],[103.057211,33.125579],[103.05683,33.12561],[103.0556,33.125711],[103.055351,33.125736],[103.055303,33.125741],[103.054513,33.12582],[103.053574,33.125963],[103.052377,33.125975],[103.051291,33.126053],[103.05046,33.126324],[103.049821,33.126533],[103.049737,33.126538],[103.049724,33.126539],[103.049416,33.126555],[103.048939,33.126581],[103.048922,33.126582],[103.048322,33.126667],[103.047872,33.126786],[103.047852,33.126782],[103.047826,33.12679],[103.047767,33.126806],[103.04773,33.126817],[103.047009,33.126836],[103.04653,33.126727],[103.046265,33.126666],[103.045671,33.126437],[103.045236,33.126522],[103.045221,33.126524],[103.045201,33.126527],[103.044869,33.12657],[103.044706,33.126591],[103.044652,33.126598],[103.044608,33.126639],[103.044581,33.126657],[103.044542,33.126679],[103.044487,33.126698],[103.04443,33.126712],[103.044374,33.12671],[103.044317,33.1267],[103.044264,33.126685],[103.044241,33.126667],[103.044232,33.126656],[103.044217,33.126658],[103.044159,33.126667],[103.043607,33.126751],[103.043569,33.126765],[103.043303,33.126866],[103.04289,33.127023],[103.042328,33.127077],[103.041773,33.126816],[103.041752,33.126598],[103.041742,33.126501],[103.041739,33.126492],[103.041659,33.126276],[103.041531,33.125931],[103.041236,33.125722],[103.041149,33.12566],[103.041119,33.125639],[103.041078,33.12561],[103.041059,33.125596],[103.040983,33.125552],[103.040956,33.125543],[103.040928,33.125534],[103.040899,33.125528],[103.040882,33.125522],[103.040853,33.125498],[103.040783,33.125486],[103.040679,33.125468],[103.040426,33.125425],[103.040122,33.125374],[103.039545,33.125507],[103.039482,33.125521],[103.038988,33.125489],[103.038847,33.12548],[103.038802,33.125427],[103.038596,33.125186],[103.038519,33.125097],[103.038684,33.124856],[103.038661,33.124809],[103.038656,33.124758],[103.03867,33.124712],[103.038692,33.124676],[103.0387,33.12462],[103.038688,33.124588],[103.038675,33.124583],[103.038605,33.124583],[103.038555,33.124586],[103.038513,33.124587],[103.038448,33.124571],[103.038425,33.124551],[103.038413,33.124513],[103.038411,33.124474],[103.038436,33.124434],[103.038481,33.124411],[103.038501,33.124398],[103.038518,33.124381],[103.038546,33.124362],[103.038555,33.124333],[103.038553,33.12431],[103.038539,33.124276],[103.038517,33.124245],[103.038484,33.124223],[103.038464,33.124202],[103.038444,33.124185],[103.038415,33.124173],[103.038373,33.124166],[103.038333,33.124163],[103.038306,33.124154],[103.038271,33.124135],[103.03798,33.124113],[103.037817,33.124189],[103.037527,33.124326],[103.037105,33.12476],[103.036544,33.124782],[103.036034,33.124659],[103.035986,33.124648],[103.035736,33.124615],[103.035688,33.124632],[103.0356,33.124646],[103.035524,33.124635],[103.035495,33.124618],[103.035469,33.124601],[103.03545,33.124578],[103.035457,33.124556],[103.035468,33.124537],[103.035488,33.124515],[103.035506,33.124507],[103.035521,33.124498],[103.035554,33.12448],[103.035569,33.124475],[103.035582,33.12446],[103.035585,33.124433],[103.035556,33.124417],[103.035528,33.124416],[103.03549,33.124428],[103.035468,33.124439],[103.035452,33.124452],[103.035435,33.12447],[103.035418,33.124485],[103.035388,33.124499],[103.035358,33.124509],[103.035282,33.124514],[103.035254,33.124513],[103.035224,33.124505],[103.035197,33.124492],[103.035184,33.124484],[103.035171,33.124467],[103.035161,33.124444],[103.035152,33.12442],[103.03514,33.124393],[103.035128,33.124365],[103.035114,33.124342],[103.035103,33.124328],[103.035083,33.124318],[103.03506,33.124312],[103.035036,33.124313],[103.035002,33.124321],[103.034987,33.12433],[103.034979,33.124341],[103.034983,33.124362],[103.035004,33.124382],[103.035036,33.124404],[103.035065,33.124432],[103.035076,33.124449],[103.03508,33.124475],[103.03507,33.124501],[103.035058,33.124523],[103.035045,33.124538],[103.035031,33.124554],[103.035013,33.124569],[103.034989,33.124583],[103.034955,33.1246],[103.034905,33.124603],[103.034875,33.124596],[103.034847,33.124581],[103.034813,33.124572],[103.034789,33.124577],[103.034762,33.124594],[103.034729,33.124615],[103.034692,33.124636],[103.034661,33.124638],[103.034631,33.124633],[103.034593,33.124613],[103.034536,33.124568],[103.034525,33.124553],[103.034517,33.124532],[103.034243,33.12457],[103.034095,33.12459],[103.033704,33.124643],[103.032961,33.124553],[103.032809,33.124535],[103.032726,33.124516],[103.032677,33.124505],[103.032065,33.124366],[103.031688,33.124485],[103.031265,33.125014],[103.031158,33.125069],[103.031089,33.125104],[103.030848,33.125228],[103.030514,33.125128],[103.030371,33.124811],[103.030344,33.124711],[103.030332,33.124666],[103.030311,33.124589],[103.030276,33.12446],[103.030261,33.124464],[103.030236,33.124452],[103.0302,33.124441],[103.030176,33.124426],[103.030169,33.124422],[103.03015,33.124395],[103.03015,33.12438],[103.030172,33.124341],[103.030184,33.124324],[103.030231,33.124303],[103.029903,33.124017],[103.029492,33.123979],[103.029399,33.123982],[103.028931,33.124001],[103.028743,33.123974],[103.028697,33.123947],[103.028675,33.123929],[103.028654,33.123896],[103.028641,33.123869],[103.028609,33.123843],[103.028573,33.123817],[103.028525,33.123794],[103.028481,33.123776],[103.028413,33.123757],[103.028341,33.123746],[103.02828,33.123744],[103.028191,33.123643],[103.028197,33.12361],[103.028215,33.123508],[103.028224,33.123457],[103.028233,33.123408],[103.02826,33.123263],[103.028262,33.123248],[103.028276,33.123172],[103.028294,33.122386],[103.028227,33.12225],[103.028195,33.122184],[103.028165,33.122123],[103.028157,33.122108],[103.027936,33.121656],[103.027291,33.121322],[103.027122,33.121234],[103.026047,33.121012],[103.025968,33.120996],[103.025233,33.121048],[103.025069,33.12106],[103.025068,33.12108],[103.02507,33.121097],[103.025074,33.121114],[103.025077,33.121132],[103.02508,33.121149],[103.025083,33.121166],[103.025074,33.121189],[103.025058,33.121226],[103.025046,33.121243],[103.025021,33.121267],[103.024998,33.121276],[103.024953,33.12128],[103.024913,33.12128],[103.024857,33.121269],[103.024828,33.121258],[103.024813,33.121242],[103.02481,33.12122],[103.02481,33.1212],[103.024818,33.121179],[103.024827,33.121157],[103.024832,33.121139],[103.024838,33.12112],[103.024842,33.1211],[103.024841,33.12108],[103.02483,33.121043],[103.024784,33.121002],[103.024752,33.120978],[103.024707,33.120954],[103.024668,33.120965],[103.024667,33.120986],[103.024673,33.121016],[103.024691,33.121055],[103.024694,33.121069],[103.024706,33.121106],[103.024712,33.121132],[103.024707,33.12115],[103.024697,33.121179],[103.02469,33.121208],[103.024676,33.121243],[103.024667,33.12127],[103.024656,33.121303],[103.024641,33.121332],[103.024615,33.121359],[103.024584,33.121375],[103.024533,33.121385],[103.024487,33.121386],[103.024447,33.12138],[103.024417,33.121366],[103.024412,33.121345],[103.024411,33.121327],[103.024428,33.121298],[103.024436,33.121282],[103.024437,33.121252],[103.024436,33.121242],[103.024421,33.121228],[103.024391,33.121216],[103.024347,33.121204],[103.024323,33.121202],[103.024305,33.121197],[103.024267,33.121187],[103.024118,33.121215],[103.024107,33.121217],[103.023859,33.121263],[103.023802,33.121254],[103.023699,33.121247],[103.023618,33.121256],[103.023599,33.121261],[103.023582,33.121267],[103.023567,33.121273],[103.023429,33.12127],[103.023128,33.121265],[103.023045,33.121264],[103.022891,33.121212],[103.022852,33.121206],[103.022819,33.121194],[103.022797,33.121165],[103.022764,33.121121],[103.022731,33.121077],[103.022719,33.12106],[103.022688,33.121041],[103.022644,33.121014],[103.022528,33.120941],[103.022415,33.120837],[103.021938,33.120401],[103.021818,33.120291],[103.021759,33.120236],[103.021751,33.120141],[103.02175,33.120128],[103.02175,33.120118],[103.021747,33.120079],[103.021732,33.120073],[103.021712,33.120054],[103.021712,33.120032],[103.021719,33.120008],[103.02174,33.119989],[103.021761,33.119946],[103.02177,33.119906],[103.021779,33.119871],[103.02179,33.119836],[103.021798,33.119809],[103.021803,33.119782],[103.0218,33.119749],[103.021771,33.119717],[103.021755,33.119696],[103.021709,33.119658],[103.021699,33.119563],[103.021668,33.119259],[103.021264,33.118818],[103.02123,33.11878],[103.021082,33.118727],[103.021023,33.118707],[103.020674,33.118582],[103.020461,33.118531],[103.020116,33.118448],[103.020047,33.118264],[103.020003,33.118145],[103.019985,33.118097],[103.020011,33.1181],[103.02004,33.118113],[103.020058,33.118124],[103.020078,33.118171],[103.020085,33.11819],[103.020092,33.118216],[103.020111,33.118242],[103.020138,33.11826],[103.020172,33.118265],[103.020212,33.118261],[103.020241,33.118255],[103.020264,33.11825],[103.020284,33.118238],[103.020321,33.118223],[103.020332,33.118208],[103.020298,33.118188],[103.02026,33.118182],[103.020238,33.118171],[103.020222,33.118142],[103.020226,33.118118],[103.020234,33.11808],[103.020221,33.118044],[103.020206,33.118021],[103.02019,33.117999],[103.020157,33.117976],[103.020128,33.117959],[103.020088,33.11795],[103.020043,33.117953],[103.020016,33.117962],[103.019996,33.11798],[103.019978,33.118007],[103.019958,33.118024],[103.019928,33.117944],[103.019911,33.117897],[103.01985,33.117903],[103.019803,33.117915],[103.019749,33.117945],[103.01971,33.117963],[103.019679,33.11796],[103.019655,33.117933],[103.019632,33.117883],[103.019632,33.117834],[103.019643,33.117793],[103.019664,33.117741],[103.019517,33.117658],[103.019522,33.117614],[103.019526,33.117542],[103.019513,33.1175],[103.019487,33.117487],[103.01941,33.117467],[103.01934,33.117468],[103.019271,33.117467],[103.019227,33.117455],[103.019171,33.117423],[103.019136,33.117383],[103.01909,33.117324],[103.019063,33.117257],[103.019029,33.117227],[103.018993,33.117217],[103.018922,33.117232],[103.01886,33.117251],[103.018781,33.117259],[103.018717,33.117248],[103.018644,33.117219],[103.018576,33.117134],[103.01848,33.11713],[103.018373,33.117162],[103.018339,33.117171],[103.018131,33.117111],[103.018113,33.117106],[103.018059,33.11709],[103.01791,33.117046],[103.017896,33.117014],[103.01788,33.116993],[103.01784,33.116968],[103.017807,33.116952],[103.017775,33.11694],[103.017729,33.116943],[103.017705,33.116953],[103.017663,33.116975],[103.017383,33.116893],[103.017298,33.116833],[103.017276,33.116817],[103.017179,33.116749],[103.017154,33.116731],[103.016794,33.116475],[103.01674,33.116186],[103.016736,33.116165],[103.016692,33.115932],[103.016688,33.11591],[103.016644,33.115674],[103.016642,33.11566],[103.016641,33.115655],[103.016629,33.115595],[103.016629,33.115591],[103.016625,33.115571],[103.016597,33.115423],[103.016594,33.115406],[103.016593,33.115402],[103.016582,33.115332],[103.016578,33.115309],[103.016576,33.115299],[103.016481,33.114728],[103.016462,33.114613],[103.016252,33.114387],[103.016091,33.114214],[103.016025,33.114142],[103.015987,33.114101],[103.015956,33.114065],[103.015607,33.113647],[103.015586,33.113623],[103.015586,33.113623],[103.015495,33.113537],[103.015147,33.113207],[103.015233,33.112705],[103.015171,33.112604],[103.015159,33.112584],[103.015072,33.112441],[103.015029,33.112371],[103.014983,33.11238],[103.014915,33.112368],[103.014885,33.112356],[103.01487,33.112339],[103.014869,33.112315],[103.014883,33.112291],[103.014899,33.112282],[103.0149,33.112265],[103.014891,33.112254],[103.014869,33.112235],[103.01483,33.112213],[103.014803,33.11219],[103.014799,33.112181],[103.01476,33.112128],[103.014753,33.112105],[103.01474,33.112083],[103.01473,33.112067],[103.014699,33.112052],[103.01468,33.112056],[103.014639,33.112084],[103.014631,33.112079],[103.014595,33.112058],[103.014501,33.112],[103.014627,33.111373],[103.01461,33.111045],[103.014606,33.110971],[103.014608,33.11097],[103.014623,33.11095],[103.014622,33.11093],[103.014616,33.110908],[103.014608,33.110882],[103.014606,33.110852],[103.014613,33.110827],[103.014622,33.110794],[103.014632,33.110773],[103.014637,33.110752],[103.01463,33.110731],[103.014617,33.110722],[103.014577,33.110714],[103.01456,33.110604],[103.01452,33.110348],[103.014503,33.110238],[103.014171,33.110012],[103.014019,33.11001],[103.013621,33.110004],[103.013499,33.110002],[103.013321,33.110092],[103.013263,33.110121],[103.013213,33.110147],[103.013163,33.110173],[103.013119,33.110184],[103.013076,33.11019],[103.013046,33.110188],[103.013011,33.110179],[103.012976,33.110158],[103.01294,33.110128],[103.012879,33.11008],[103.012834,33.110054],[103.012754,33.110042],[103.012711,33.110064],[103.012681,33.110114],[103.012664,33.110181],[103.012655,33.110247],[103.012651,33.110309],[103.012647,33.110383],[103.012645,33.110402],[103.012635,33.110433],[103.012624,33.110462],[103.012608,33.11049],[103.012582,33.110521],[103.012549,33.110541],[103.012514,33.110544],[103.012476,33.110539],[103.01246,33.110524],[103.012438,33.110483],[103.012417,33.110456],[103.012399,33.110411],[103.012387,33.110395],[103.012354,33.110384],[103.01233,33.110377],[103.012315,33.110363],[103.012294,33.110346],[103.012279,33.110326],[103.012249,33.110307],[103.012215,33.110292],[103.012179,33.110306],[103.01215,33.110323],[103.012119,33.110336],[103.012073,33.110335],[103.012034,33.110329],[103.011996,33.11031],[103.011949,33.110279],[103.011908,33.110262],[103.011884,33.11025],[103.011867,33.110243],[103.011854,33.110239],[103.011802,33.110238],[103.01176,33.110249],[103.011723,33.110264],[103.011663,33.110288],[103.011618,33.110295],[103.011574,33.110294],[103.011539,33.110286],[103.011517,33.110275],[103.011494,33.110262],[103.011477,33.110236],[103.011465,33.110202],[103.011465,33.110176],[103.011452,33.110135],[103.011431,33.110094],[103.011419,33.110059],[103.01139,33.11003],[103.011342,33.110021],[103.01121,33.110019],[103.011161,33.110039],[103.011166,33.110087],[103.011191,33.110137],[103.011244,33.110198],[103.011289,33.110261],[103.011326,33.110322],[103.011351,33.110362],[103.011399,33.110405],[103.011426,33.110441],[103.011445,33.110502],[103.01145,33.110589],[103.01145,33.110631],[103.011445,33.110668],[103.011415,33.110684],[103.011367,33.110686],[103.01129,33.110681],[103.011261,33.110682],[103.011244,33.110724],[103.011261,33.110768],[103.011283,33.110811],[103.011289,33.110846],[103.011294,33.110872],[103.011296,33.110948],[103.011297,33.110965],[103.011292,33.111046],[103.011289,33.111109],[103.011258,33.111167],[103.01121,33.111226],[103.011155,33.111273],[103.011101,33.111305],[103.011032,33.111365],[103.010967,33.111397],[103.010876,33.111395],[103.010801,33.111368],[103.010739,33.111335],[103.010665,33.111322],[103.010554,33.111331],[103.010445,33.111369],[103.010366,33.111375],[103.010265,33.11135],[103.010156,33.111314],[103.010083,33.111311],[103.01,33.111311],[103.009935,33.111325],[103.009893,33.111342],[103.00973,33.111263],[103.009723,33.111256],[103.009682,33.11121],[103.009659,33.111186],[103.009292,33.110784],[103.009288,33.110682],[103.009268,33.110186],[103.00936,33.109883],[103.009375,33.109836],[103.00943,33.109653],[103.009376,33.109607],[103.00918,33.109435],[103.009122,33.109384],[103.0091,33.109365],[103.008943,33.109273],[103.008904,33.10925],[103.008768,33.109171],[103.008569,33.109158],[103.00854,33.109156],[103.008298,33.10914],[103.008133,33.109129],[103.008104,33.109123],[103.008035,33.109108],[103.008034,33.10913],[103.008024,33.109151],[103.008006,33.109164],[103.007972,33.109163],[103.007941,33.109158],[103.007899,33.109136],[103.007875,33.109118],[103.007843,33.109091],[103.007805,33.109058],[103.007767,33.109031],[103.00774,33.109025],[103.007681,33.109035],[103.00765,33.109055],[103.007631,33.109081],[103.00762,33.109107],[103.0076,33.109133],[103.007569,33.109152],[103.007532,33.109172],[103.007481,33.109181],[103.007427,33.10919],[103.007389,33.109207],[103.007364,33.109229],[103.007331,33.109251],[103.007288,33.109267],[103.007251,33.109271],[103.00719,33.109263],[103.007127,33.109235],[103.007074,33.109199],[103.007032,33.109168],[103.00699,33.109143],[103.006951,33.109125],[103.006899,33.109105],[103.006872,33.109076],[103.006866,33.10903],[103.006869,33.108988],[103.006867,33.108965],[103.006861,33.108955],[103.006822,33.108886],[103.006842,33.108845],[103.006804,33.108836],[103.006768,33.10882],[103.006728,33.108793],[103.006695,33.10878],[103.006687,33.108786],[103.006632,33.108787],[103.006601,33.108786],[103.006557,33.108762],[103.006518,33.108739],[103.00641,33.108697],[103.006384,33.108684],[103.006369,33.10867],[103.006355,33.10864],[103.006348,33.108603],[103.006369,33.108576],[103.006379,33.10856],[103.00638,33.108531],[103.006357,33.108508],[103.006266,33.108524],[103.006234,33.108528],[103.00619,33.108526],[103.006168,33.108517],[103.006144,33.108498],[103.006117,33.108444],[103.006118,33.108386],[103.006129,33.108331],[103.006154,33.108294],[103.006188,33.108258],[103.006197,33.108208],[103.006175,33.108189],[103.006123,33.108138],[103.006087,33.108071],[103.006084,33.108065],[103.006044,33.107994],[103.006019,33.107956],[103.005998,33.107912],[103.005961,33.107893],[103.005915,33.107876],[103.005847,33.107851],[103.00579,33.107832],[103.005742,33.107806],[103.005706,33.107784],[103.005677,33.10776],[103.005652,33.107725],[103.005603,33.10769],[103.005559,33.107681],[103.005522,33.107672],[103.005458,33.107614],[103.005359,33.107587],[103.005246,33.107583],[103.005172,33.107558],[103.005115,33.10752],[103.005063,33.107478],[103.005021,33.107416],[103.004978,33.107358],[103.004968,33.107329],[103.004963,33.107274],[103.004992,33.107208],[103.005013,33.107163],[103.004985,33.107085],[103.004934,33.10703],[103.004904,33.106996],[103.004916,33.106908],[103.004908,33.10688],[103.004875,33.10685],[103.00483,33.106814],[103.004743,33.106819],[103.004659,33.106866],[103.004616,33.106874],[103.00455,33.106869],[103.004519,33.106844],[103.004506,33.106828],[103.004496,33.106799],[103.004482,33.106748],[103.004461,33.106699],[103.00444,33.10668],[103.004399,33.106657],[103.00437,33.106652],[103.004345,33.106648],[103.004325,33.106664],[103.004308,33.106712],[103.004233,33.106786],[103.004186,33.106848],[103.004131,33.106907],[103.004061,33.106946],[103.004004,33.106968],[103.003907,33.106978],[103.003803,33.106974],[103.003756,33.106942],[103.003722,33.106883],[103.003701,33.106825],[103.003699,33.106752],[103.003699,33.10671],[103.003729,33.106607],[103.003747,33.10657],[103.003742,33.106542],[103.003708,33.106527],[103.003558,33.10652],[103.003453,33.106491],[103.003435,33.106458],[103.003432,33.106401],[103.003438,33.106356],[103.003449,33.106364],[103.00347,33.106374],[103.003487,33.10638],[103.003516,33.106369],[103.003507,33.106343],[103.003433,33.106145],[103.003433,33.106145],[103.003428,33.106132],[103.003415,33.106097],[103.003344,33.105905],[103.003347,33.105898],[103.003386,33.105814],[103.003393,33.105798],[103.003447,33.105681],[103.003465,33.10564],[103.003495,33.105613],[103.003519,33.105584],[103.003535,33.105556],[103.003553,33.105529],[103.003584,33.105493],[103.003608,33.105478],[103.003664,33.105459],[103.003718,33.105444],[103.003751,33.105424],[103.003766,33.105404],[103.003761,33.105384],[103.003733,33.105374],[103.003688,33.105378],[103.003668,33.105385],[103.003608,33.105411],[103.003653,33.105348],[103.003661,33.105336],[103.003771,33.105182],[103.00381,33.105126],[103.003857,33.104717],[103.003675,33.104494],[103.003236,33.104542],[103.003215,33.104544],[103.003185,33.104535],[103.003157,33.104528],[103.003137,33.104528],[103.003113,33.104531],[103.003089,33.104541],[103.003063,33.104554],[103.003026,33.104565],[103.00299,33.104569],[103.002983,33.104539],[103.002962,33.104516],[103.002919,33.104494],[103.002885,33.104484],[103.002854,33.104493],[103.002842,33.104515],[103.002837,33.104544],[103.002833,33.104573],[103.002821,33.104602],[103.002788,33.104621],[103.002753,33.10463],[103.002728,33.104625],[103.002719,33.104615],[103.002712,33.104598],[103.002706,33.104574],[103.002698,33.104549],[103.002673,33.104527],[103.002658,33.104529],[103.002643,33.104541],[103.002622,33.104577],[103.002598,33.10461],[103.002573,33.104646],[103.002561,33.104674],[103.00256,33.104701],[103.002571,33.104718],[103.002523,33.104738],[103.002321,33.104818],[103.001836,33.104811],[103.00167,33.104724],[103.001466,33.104616],[103.001029,33.104074],[103.000854,33.103663],[103.000818,33.103578],[103.000745,33.103408],[103.00074,33.103394],[103.000788,33.10334],[103.000822,33.103328],[103.000853,33.103309],[103.000861,33.103282],[103.000831,33.103253],[103.000804,33.103233],[103.000763,33.103218],[103.000733,33.103183],[103.000712,33.103138],[103.000689,33.103106],[103.000655,33.103075],[103.000611,33.103062],[103.000462,33.10268],[103.000106,33.102294],[102.999784,33.101944],[102.99957,33.101757],[102.999457,33.101658],[102.999425,33.10163],[102.999525,33.101596],[102.99956,33.101582],[102.999567,33.101567],[102.99955,33.101557],[102.99948,33.101555],[102.999431,33.101555],[102.999383,33.101556],[102.999365,33.10156],[102.999332,33.101555],[102.999299,33.101548],[102.99924,33.101526],[102.999219,33.10149],[102.999211,33.101419],[102.999221,33.101345],[102.999213,33.101333],[102.999123,33.101199],[102.998839,33.100777],[102.998445,33.100478],[102.998188,33.100283],[102.998153,33.100255],[102.998117,33.100225],[102.99809,33.100244],[102.998054,33.100247],[102.997955,33.100218],[102.997911,33.100193],[102.997883,33.100164],[102.997876,33.100149],[102.997882,33.10011],[102.997913,33.10008],[102.997922,33.100064],[102.997929,33.100036],[102.997924,33.099988],[102.997886,33.099945],[102.997858,33.099933],[102.9978,33.099964],[102.997651,33.100049],[102.997607,33.100056],[102.99756,33.100042],[102.997532,33.100005],[102.997508,33.09996],[102.997499,33.099931],[102.99749,33.099873],[102.997485,33.099807],[102.997473,33.099767],[102.997437,33.099751],[102.997403,33.09975],[102.997366,33.099756],[102.997319,33.099782],[102.997281,33.099804],[102.997239,33.099837],[102.997206,33.099869],[102.997185,33.099874],[102.997156,33.099868],[102.997119,33.099837],[102.99711,33.09981],[102.997161,33.099794],[102.997232,33.099787],[102.997318,33.09976],[102.997361,33.099735],[102.997363,33.099695],[102.997341,33.099643],[102.997295,33.099615],[102.99725,33.099618],[102.997193,33.099649],[102.997132,33.099661],[102.997096,33.09965],[102.997057,33.099629],[102.997023,33.099625],[102.996991,33.099665],[102.996949,33.099732],[102.996915,33.099769],[102.99689,33.099779],[102.996854,33.099772],[102.996832,33.099749],[102.99685,33.09973],[102.996888,33.099719],[102.996923,33.099675],[102.996922,33.099634],[102.996924,33.099588],[102.996954,33.099554],[102.997027,33.099529],[102.997065,33.09949],[102.997073,33.099441],[102.9971,33.099379],[102.997122,33.099373],[102.997156,33.09938],[102.997202,33.099375],[102.997229,33.099362],[102.99724,33.099318],[102.997236,33.099284],[102.997226,33.099245],[102.997202,33.099217],[102.997137,33.099183],[102.997092,33.099162],[102.997039,33.099118],[102.997021,33.099073],[102.997038,33.099053],[102.997072,33.099044],[102.997095,33.099069],[102.99712,33.099096],[102.997172,33.099122],[102.997245,33.09913],[102.997359,33.099106],[102.997408,33.099089],[102.997437,33.099062],[102.997433,33.099035],[102.997385,33.099005],[102.997298,33.098966],[102.997243,33.098937],[102.997173,33.098898],[102.997095,33.098853],[102.997049,33.098811],[102.997051,33.098769],[102.99708,33.098754],[102.997123,33.098759],[102.997176,33.098787],[102.997206,33.098814],[102.997283,33.098875],[102.997271,33.098733],[102.997261,33.098615],[102.997256,33.098559],[102.997257,33.09855],[102.997277,33.09835],[102.997229,33.098339],[102.997209,33.098322],[102.997205,33.098296],[102.997227,33.098283],[102.997253,33.09827],[102.997264,33.098252],[102.997264,33.098226],[102.997242,33.098183],[102.997192,33.098145],[102.997135,33.098114],[102.997106,33.098094],[102.997103,33.098058],[102.997117,33.098035],[102.997137,33.098023],[102.997188,33.098032],[102.997233,33.09805],[102.997269,33.098059],[102.997308,33.098053],[102.99735,33.098004],[102.997368,33.097952],[102.997366,33.097918],[102.997343,33.097873],[102.99729,33.097841],[102.997232,33.097846],[102.997102,33.097591],[102.996909,33.097464],[102.996895,33.097455],[102.996911,33.097401],[102.996921,33.097354],[102.996913,33.097317],[102.996882,33.097285],[102.996838,33.097266],[102.996755,33.097256],[102.996695,33.097258],[102.996696,33.097265],[102.996695,33.097323],[102.99658,33.097248],[102.996102,33.09715],[102.996049,33.097139],[102.996039,33.097137],[102.995836,33.097096],[102.995789,33.097086],[102.995616,33.097212],[102.995513,33.097287],[102.995491,33.097303],[102.99534,33.097414],[102.995163,33.097344],[102.994552,33.097104],[102.993953,33.096277],[102.993551,33.09594],[102.993528,33.095921],[102.993453,33.095858],[102.993371,33.09579],[102.993266,33.095702],[102.993257,33.095624],[102.993248,33.09558],[102.993223,33.095552],[102.993191,33.09555],[102.993073,33.09554],[102.993059,33.095529],[102.993024,33.095499],[102.992987,33.095468],[102.992963,33.095448],[102.992957,33.095443],[102.992898,33.095336],[102.992893,33.095326],[102.992882,33.095307],[102.992791,33.09514],[102.992778,33.095116],[102.992724,33.095018],[102.992714,33.094999],[102.992657,33.094894],[102.992645,33.094872],[102.992569,33.094733],[102.992556,33.094709],[102.992435,33.094488],[102.992323,33.094442],[102.99226,33.094404],[102.992217,33.094338],[102.992208,33.094264],[102.992198,33.094183],[102.992209,33.094111],[102.992241,33.094058],[102.992219,33.093995],[102.992155,33.093915],[102.992094,33.093871],[102.992026,33.093815],[102.991958,33.093747],[102.991904,33.093685],[102.991864,33.093598],[102.991842,33.093494],[102.99183,33.093432],[102.991776,33.093355],[102.991725,33.093344],[102.991724,33.093342],[102.991706,33.093312],[102.99143,33.092838],[102.991287,33.092873],[102.991264,33.092873],[102.99125,33.092842],[102.991244,33.092806],[102.991255,33.092758],[102.99128,33.092725],[102.991339,33.092682],[102.99138,33.09259],[102.99138,33.092545],[102.991334,33.092519],[102.991257,33.092503],[102.991231,33.092496],[102.991003,33.092105],[102.990985,33.092048],[102.990756,33.091283],[102.990656,33.091231],[102.989491,33.090631],[102.989364,33.090465],[102.989269,33.090339],[102.989172,33.090273],[102.98911,33.090215],[102.989064,33.090145],[102.989034,33.090084],[102.988983,33.090017],[102.988927,33.089973],[102.98889,33.089939],[102.988826,33.089876],[102.988806,33.089824],[102.988813,33.08978],[102.988867,33.089752],[102.988919,33.08973],[102.988982,33.089715],[102.989027,33.089721],[102.989084,33.08971],[102.989111,33.089673],[102.989134,33.089602],[102.989139,33.089546],[102.989128,33.089493],[102.989081,33.089449],[102.988989,33.08941],[102.988992,33.089262],[102.988999,33.088951],[102.988965,33.088505],[102.988824,33.08843],[102.98871,33.08837],[102.988353,33.088182],[102.987875,33.08793],[102.987238,33.087739],[102.987181,33.087722],[102.987126,33.087706],[102.986654,33.087565],[102.98656,33.087537],[102.986387,33.087446],[102.986421,33.087408],[102.986403,33.08737],[102.986372,33.087311],[102.986326,33.087276],[102.986235,33.087244],[102.986151,33.087228],[102.986062,33.087192],[102.986004,33.08717],[102.985954,33.087109],[102.985844,33.087097],[102.985791,33.087132],[102.985688,33.087077],[102.985606,33.086943],[102.985363,33.086542],[102.985132,33.086162],[102.985049,33.086026],[102.984499,33.085014],[102.984031,33.084226],[102.983512,33.083772],[102.982649,33.082903],[102.982003,33.082224],[102.981612,33.081958],[102.980294,33.081676],[102.979567,33.080661],[102.978966,33.079908],[102.978661,33.079571],[102.978148,33.079003],[102.97755,33.078663],[102.977408,33.078583],[102.976311,33.078305],[102.975882,33.07774],[102.975916,33.077252],[102.975936,33.077246],[102.975987,33.077236],[102.976021,33.077226],[102.976067,33.077204],[102.976115,33.077176],[102.976137,33.077151],[102.976148,33.077127],[102.97615,33.077096],[102.976141,33.077065],[102.976134,33.077043],[102.976124,33.076997],[102.97611,33.076969],[102.976124,33.076942],[102.976152,33.076913],[102.976188,33.07689],[102.976207,33.076849],[102.976206,33.07682],[102.976197,33.076794],[102.976173,33.076777],[102.976139,33.076753],[102.976075,33.076731],[102.976044,33.076726],[102.976014,33.076721],[102.975994,33.076703],[102.975964,33.076668],[102.975931,33.076617],[102.9759,33.076565],[102.97587,33.076434],[102.975784,33.07606],[102.975708,33.075731],[102.975456,33.075352],[102.975403,33.075271],[102.97541,33.075255],[102.975412,33.075243],[102.975411,33.075229],[102.975409,33.075212],[102.975408,33.075202],[102.975405,33.07518],[102.975405,33.075162],[102.975409,33.075149],[102.975418,33.075143],[102.975437,33.075143],[102.975438,33.075152],[102.975432,33.075175],[102.975431,33.075194],[102.975454,33.075205],[102.975475,33.0752],[102.975497,33.075178],[102.975504,33.075149],[102.975505,33.075119],[102.975493,33.075107],[102.975479,33.075096],[102.975472,33.075075],[102.975457,33.075066],[102.975424,33.075074],[102.975412,33.075079],[102.975399,33.075081],[102.975356,33.075084],[102.975329,33.075072],[102.97529,33.075067],[102.975269,33.075069],[102.975253,33.075068],[102.975243,33.075066],[102.975234,33.07506],[102.975231,33.075048],[102.975233,33.07504],[102.975247,33.075035],[102.975268,33.075031],[102.975285,33.075026],[102.975308,33.075013],[102.975311,33.074994],[102.975302,33.074971],[102.975287,33.07496],[102.975258,33.074939],[102.97523,33.074922],[102.975209,33.074905],[102.975185,33.074894],[102.975161,33.074879],[102.975139,33.074872],[102.975127,33.074869],[102.975118,33.074861],[102.975114,33.07485],[102.975117,33.074839],[102.975132,33.074814],[102.975138,33.074808],[102.975148,33.074797],[102.975167,33.074772],[102.975155,33.07475],[102.975135,33.07474],[102.975128,33.074737],[102.97511,33.074721],[102.975101,33.074697],[102.975082,33.074672],[102.975047,33.074666],[102.97504,33.074675],[102.975037,33.074695],[102.975035,33.074711],[102.975017,33.074722],[102.974994,33.074725],[102.97498,33.074728],[102.974965,33.074727],[102.974953,33.074723],[102.974947,33.074717],[102.974947,33.074706],[102.974957,33.074692],[102.974975,33.074673],[102.974976,33.074656],[102.974963,33.074639],[102.974944,33.074623],[102.974935,33.074608],[102.974927,33.074586],[102.974915,33.074575],[102.974891,33.07456],[102.974873,33.074544],[102.974866,33.074527],[102.97486,33.074507],[102.974852,33.074486],[102.974832,33.074474],[102.974815,33.074466],[102.974774,33.074456],[102.974754,33.07446],[102.974729,33.074471],[102.974726,33.074486],[102.974725,33.0745],[102.974725,33.074528],[102.974716,33.074547],[102.974696,33.074559],[102.97468,33.074559],[102.974665,33.074558],[102.974631,33.074543],[102.974619,33.074523],[102.974618,33.0745],[102.97463,33.074478],[102.974632,33.074449],[102.974623,33.074427],[102.974592,33.074408],[102.974557,33.074417],[102.97453,33.074424],[102.974517,33.074424],[102.974503,33.074424],[102.974482,33.074409],[102.974482,33.074397],[102.9745,33.074373],[102.97453,33.074342],[102.974551,33.074329],[102.974546,33.074304],[102.974528,33.07428],[102.974485,33.07427],[102.974457,33.074265],[102.974391,33.074242],[102.974345,33.074214],[102.974299,33.074177],[102.974257,33.074135],[102.974217,33.074074],[102.974187,33.074036],[102.974151,33.074007],[102.974102,33.073961],[102.974025,33.073888],[102.973998,33.073857],[102.973967,33.07383],[102.97394,33.073796],[102.973904,33.07375],[102.973854,33.073756],[102.973849,33.07375],[102.973819,33.073704],[102.973776,33.073635],[102.97366,33.073485],[102.973636,33.073459],[102.973606,33.073428],[102.973583,33.073397],[102.973559,33.073361],[102.973529,33.073341],[102.973482,33.073314],[102.973466,33.073296],[102.973454,33.073252],[102.973442,33.07323],[102.973423,33.073214],[102.973391,33.07319],[102.97335,33.073177],[102.973322,33.073165],[102.973292,33.073146],[102.973282,33.073118],[102.973277,33.073082],[102.973267,33.073062],[102.973223,33.073032],[102.973176,33.073006],[102.973106,33.072967],[102.973059,33.072937],[102.973066,33.072893],[102.973046,33.072884],[102.972995,33.072855],[102.972978,33.072833],[102.972938,33.072801],[102.97291,33.072771],[102.972888,33.072742],[102.97286,33.072701],[102.972833,33.072668],[102.972803,33.072619],[102.972797,33.072602],[102.972789,33.072577],[102.972789,33.072563],[102.972809,33.072543],[102.972834,33.072516],[102.972837,33.072503],[102.972835,33.072484],[102.972831,33.072473],[102.972827,33.072459],[102.972803,33.072437],[102.972775,33.072413],[102.972746,33.07238],[102.972723,33.072365],[102.972705,33.072352],[102.972691,33.072337],[102.972677,33.072314],[102.972665,33.072291],[102.972648,33.072262],[102.972621,33.072223],[102.972614,33.072204],[102.972578,33.072109],[102.972195,33.071104],[102.971661,33.069933],[102.971649,33.069906],[102.971306,33.06967],[102.970433,33.069069],[102.969985,33.068838],[102.96992,33.068804],[102.969896,33.06882],[102.969864,33.068801],[102.969825,33.068783],[102.969795,33.068764],[102.969759,33.068742],[102.969749,33.068733],[102.969735,33.068709],[102.969685,33.068683],[102.969168,33.068416],[102.968553,33.067811],[102.968477,33.067736],[102.968404,33.067423],[102.968384,33.067336],[102.968363,33.067332],[102.968335,33.067312],[102.968322,33.0673],[102.968318,33.067277],[102.968324,33.06725],[102.968337,33.067232],[102.96835,33.067222],[102.968356,33.06722],[102.968398,33.067212],[102.968411,33.067212],[102.968445,33.067198],[102.968454,33.06718],[102.968447,33.067161],[102.968426,33.067137],[102.968392,33.067112],[102.968372,33.067101],[102.968356,33.067091],[102.968321,33.067071],[102.968302,33.067056],[102.96829,33.067047],[102.968278,33.067036],[102.968271,33.067024],[102.968269,33.067009],[102.96827,33.066993],[102.968281,33.066974],[102.968296,33.066961],[102.968321,33.066945],[102.96835,33.066937],[102.968403,33.066932],[102.968445,33.066929],[102.968473,33.066925],[102.968491,33.066904],[102.96849,33.066884],[102.96848,33.066872],[102.968462,33.066864],[102.968424,33.06686],[102.968404,33.066859],[102.968384,33.066858],[102.968346,33.066844],[102.96833,33.066818],[102.968323,33.066807],[102.968312,33.066798],[102.968298,33.066793],[102.968278,33.06679],[102.96828,33.06672],[102.968286,33.066451],[102.968292,33.06621],[102.968175,33.065539],[102.967934,33.065222],[102.967489,33.064636],[102.967228,33.064239],[102.96728,33.064215],[102.967297,33.064203],[102.9673,33.064167],[102.967288,33.064113],[102.967249,33.064082],[102.967212,33.06407],[102.967168,33.06407],[102.967116,33.06407],[102.966722,33.063472],[102.966028,33.06294],[102.965237,33.062816],[102.96426,33.06306],[102.96396,33.063143],[102.963865,33.06317],[102.962617,33.063516],[102.960792,33.064192],[102.959416,33.064541],[102.958356,33.064598],[102.957133,33.064058],[102.956519,33.063899],[102.955595,33.063773],[102.954944,33.063279],[102.954309,33.062117],[102.953721,33.060844],[102.953557,33.060173],[102.953439,33.059687],[102.953426,33.05914],[102.953401,33.058019],[102.953395,33.057754],[102.953401,33.057727],[102.953429,33.057599],[102.953438,33.057575],[102.953482,33.057455],[102.953515,33.057373],[102.953518,33.057226],[102.953527,33.057188],[102.953547,33.057108],[102.953601,33.057025],[102.953668,33.056932],[102.953696,33.056813],[102.953635,33.056631],[102.953616,33.056485],[102.953632,33.056324],[102.95363,33.056188],[102.95362,33.056019],[102.953639,33.05583],[102.953701,33.055665],[102.953789,33.055517],[102.953817,33.055363],[102.953828,33.055234],[102.953928,33.055083],[102.954007,33.054911],[102.954077,33.054667],[102.954105,33.054534],[102.954164,33.054391],[102.95424,33.053644],[102.954345,33.05294],[102.954577,33.052464],[102.954598,33.052421],[102.955224,33.051136],[102.954887,33.050447],[102.953077,33.049407],[102.952143,33.048753],[102.952035,33.048677],[102.951621,33.048179],[102.951643,33.048115],[102.951633,33.048022],[102.951564,33.047883],[102.951473,33.047748],[102.951336,33.04762],[102.951177,33.047521],[102.95104,33.047444],[102.950835,33.047306],[102.950715,33.047228],[102.950573,33.047075],[102.950535,33.047031],[102.950431,33.046911],[102.950379,33.046815],[102.950358,33.046662],[102.950089,33.046339],[102.947847,33.043646],[102.947433,33.043283],[102.947401,33.043255],[102.94723,33.043106],[102.947222,33.043098],[102.946879,33.042798],[102.946802,33.042783],[102.945685,33.04257],[102.944946,33.042499],[102.944704,33.042287],[102.944747,33.041931],[102.945112,33.041432],[102.945123,33.040957],[102.94475,33.040297],[102.943924,33.039421],[102.943658,33.038704],[102.943602,33.038079],[102.944185,33.037286],[102.944209,33.037241],[102.944406,33.036874],[102.944424,33.036102],[102.944123,33.035384],[102.944095,33.034921],[102.944072,33.034551],[102.943913,33.033805],[102.94418,33.032918],[102.944664,33.031827],[102.945058,33.030051],[102.945043,33.029189],[102.944982,33.028989],[102.944814,33.028442],[102.944594,33.027943],[102.944445,33.027604],[102.945072,33.026791],[102.945281,33.026518],[102.945435,33.026194],[102.945727,33.025575],[102.945566,33.024919],[102.945046,33.024524],[102.944453,33.024217],[102.943649,33.023907],[102.942559,33.02377],[102.942032,33.02392],[102.94128,33.024135],[102.941164,33.024176],[102.940879,33.024276],[102.940872,33.024278],[102.940623,33.024366],[102.940391,33.024447],[102.940279,33.024408],[102.940119,33.024354],[102.939937,33.024291],[102.939399,33.023421],[102.939121,33.02297],[102.938479,33.021746],[102.938445,33.021681],[102.938288,33.020847],[102.938525,33.019781],[102.938376,33.018899],[102.93852,33.018718],[102.938521,33.018625],[102.938446,33.018669],[102.93837,33.018701],[102.938345,33.018712],[102.938343,33.018702],[102.938339,33.018678],[102.938286,33.018599],[102.938279,33.018589],[102.938274,33.018581],[102.938174,33.01843],[102.938168,33.01842],[102.93782,33.017896],[102.937521,33.017447],[102.937508,33.017424],[102.93746,33.017342],[102.937046,33.016636],[102.936235,33.015859],[102.936191,33.015817],[102.936065,33.015696],[102.935942,33.015578],[102.935778,33.015212],[102.935742,33.01513],[102.935734,33.015114],[102.935717,33.015074],[102.93571,33.01506],[102.935674,33.01498],[102.935204,33.014003],[102.935164,33.013919],[102.935134,33.013858],[102.935069,33.013722],[102.935054,33.013682],[102.935033,33.013621],[102.934704,33.012705],[102.93449,33.011729],[102.934481,33.011691],[102.934762,33.010955],[102.934819,33.010806],[102.935438,33.009984],[102.935813,33.009039],[102.935908,33.008724],[102.935914,33.008704],[102.93608,33.008152],[102.936213,33.007952],[102.936249,33.007898],[102.936262,33.007878],[102.936373,33.007711],[102.937096,33.006951],[102.937805,33.006754],[102.938129,33.006492],[102.938197,33.006118],[102.938199,33.006109],[102.938205,33.006077],[102.93821,33.006048],[102.938167,33.006005],[102.93811,33.005948],[102.937969,33.005806],[102.937935,33.005764],[102.937918,33.005742],[102.93767,33.005428],[102.93766,33.005415],[102.937714,33.005202],[102.937741,33.005091],[102.93777,33.004977],[102.937786,33.004917],[102.937787,33.00491],[102.937788,33.004904],[102.937816,33.004794],[102.93823,33.004517],[102.938249,33.004505],[102.938262,33.004496],[102.938327,33.004453],[102.938342,33.004443],[102.938358,33.004432],[102.938425,33.004388],[102.938409,33.00436],[102.938383,33.004314],[102.938274,33.00412],[102.938272,33.004117],[102.938188,33.003968],[102.938229,33.003701],[102.938337,33.003766],[102.93889,33.004098],[102.939403,33.004286],[102.939403,33.004261],[102.939495,33.004134],[102.939537,33.004108],[102.93961,33.004071],[102.939731,33.004033],[102.939759,33.004002],[102.939919,33.003818],[102.939985,33.003684],[102.940114,33.003419],[102.940178,33.003287],[102.940541,33.002848],[102.940057,33.002453],[102.939572,33.002059],[102.939829,33.001618],[102.93931,33.001223],[102.939078,33.000571],[102.939069,33.000543],[102.939042,33.000467],[102.939024,33.000418],[102.939021,33.00041],[102.939019,33.000403],[102.938895,33.000053],[102.938875,32.999997],[102.938867,32.999974],[102.938853,32.999934],[102.938834,32.999835],[102.938751,32.999404],[102.938885,32.999137],[102.938898,32.999111],[102.938928,32.99905],[102.938944,32.999019],[102.938956,32.998995],[102.939043,32.998821],[102.939059,32.99879],[102.93907,32.998767],[102.9391,32.998709],[102.939105,32.998697],[102.93911,32.998689],[102.93883,32.998444],[102.938477,32.998497],[102.938469,32.998464],[102.938453,32.99845],[102.938434,32.998436],[102.938415,32.998425],[102.938389,32.998419],[102.938357,32.998413],[102.938331,32.998411],[102.938292,32.99841],[102.938256,32.998408],[102.938222,32.998415],[102.938193,32.998422],[102.938159,32.998434],[102.93813,32.998454],[102.938108,32.998472],[102.938081,32.998497],[102.93806,32.998523],[102.93804,32.998564],[102.938021,32.998604],[102.937807,32.99867],[102.937752,32.998662],[102.937689,32.99868],[102.937629,32.998709],[102.937586,32.998738],[102.93752,32.998759],[102.937224,32.99885],[102.936945,32.998557],[102.936956,32.998086],[102.936957,32.998075],[102.936958,32.998015],[102.936996,32.99804],[102.937052,32.998056],[102.937106,32.998043],[102.937142,32.998014],[102.937163,32.997974],[102.937139,32.997955],[102.937059,32.9979],[102.93698,32.997818],[102.936963,32.997787],[102.936954,32.99777],[102.936947,32.997751],[102.936929,32.997644],[102.936909,32.997525],[102.936905,32.997399],[102.936909,32.997338],[102.93694,32.997237],[102.93695,32.997206],[102.936943,32.997076],[102.936929,32.996827],[102.936887,32.996815],[102.936622,32.996741],[102.936612,32.996739],[102.936192,32.996622],[102.935852,32.996481],[102.935719,32.996425],[102.935324,32.99626],[102.935232,32.996222],[102.934749,32.996211],[102.933962,32.996193],[102.933285,32.996425],[102.932769,32.996601],[102.932608,32.996656],[102.932275,32.99677],[102.931714,32.997056],[102.93139,32.997147],[102.931208,32.997199],[102.931051,32.997236],[102.930902,32.997248],[102.930788,32.997263],[102.930704,32.997321],[102.930679,32.997396],[102.930684,32.997468],[102.930748,32.997514],[102.930961,32.997598],[102.930503,32.998093],[102.930204,32.998433],[102.929906,32.998774],[102.929353,32.999111],[102.928347,32.999726],[102.927557,32.999943],[102.927284,32.99991],[102.92683,32.999855],[102.926518,32.999816],[102.926467,32.99981],[102.925448,32.999592],[102.924316,32.999774],[102.923193,32.999641],[102.922543,32.999642],[102.922491,32.999642],[102.92169,32.999644],[102.920907,32.999516],[102.919982,32.999645],[102.918035,32.999698],[102.917514,32.999675],[102.917011,32.999653],[102.9162,32.999761],[102.916174,32.999764],[102.916126,32.999771],[102.916052,32.99978],[102.915434,32.999943],[102.914892,32.999732],[102.914209,32.998956],[102.914129,32.998931],[102.914031,32.998892],[102.91392,32.998843],[102.91386,32.998768],[102.913804,32.998675],[102.913747,32.998558],[102.913707,32.998406],[102.913258,32.998065],[102.912232,32.997048],[102.912156,32.996998],[102.912104,32.996916],[102.912034,32.996735],[102.911964,32.996527],[102.911844,32.996382],[102.91169,32.99629],[102.911493,32.996166],[102.911415,32.996074],[102.911393,32.996048],[102.910665,32.995057],[102.910068,32.994328],[102.908895,32.993387],[102.90796,32.99248],[102.907721,32.991037],[102.907704,32.990972],[102.907644,32.99074],[102.907786,32.990689],[102.907905,32.990584],[102.908002,32.990469],[102.907984,32.990283],[102.907883,32.990079],[102.907766,32.989945],[102.907673,32.989889],[102.907402,32.989805],[102.907377,32.989707],[102.907289,32.989367],[102.907257,32.989243],[102.907256,32.989241],[102.907229,32.989134],[102.907203,32.989031],[102.907153,32.98893],[102.907123,32.988829],[102.907112,32.988706],[102.907153,32.988593],[102.907148,32.988468],[102.907083,32.988337],[102.906997,32.988218],[102.906932,32.988087],[102.906877,32.987951],[102.90684,32.987808],[102.906836,32.987721],[102.906775,32.987602],[102.906681,32.987451],[102.906623,32.987326],[102.906576,32.987204],[102.906417,32.9869],[102.90555,32.98467],[102.905481,32.984526],[102.905163,32.983859],[102.904443,32.982349],[102.904256,32.981626],[102.904305,32.980994],[102.90433,32.98081],[102.904332,32.980799],[102.90423,32.980617],[102.904212,32.980503],[102.904233,32.980345],[102.904266,32.980259],[102.904366,32.980111],[102.904447,32.979969],[102.904561,32.979147],[102.904594,32.978913],[102.904633,32.978632],[102.904655,32.97847],[102.904675,32.978324],[102.904686,32.978259],[102.9047,32.978167],[102.904836,32.97732],[102.905155,32.976807],[102.90527,32.976262],[102.905355,32.975544],[102.90551,32.974799],[102.905513,32.974791],[102.905561,32.974561],[102.905554,32.974447],[102.905519,32.974347],[102.905462,32.974266],[102.905404,32.974157],[102.905436,32.973985],[102.905547,32.973693],[102.905686,32.973453],[102.905842,32.973237],[102.905943,32.97316],[102.906126,32.973054],[102.90621,32.972547],[102.906212,32.972537],[102.906193,32.972293],[102.906168,32.971965],[102.906163,32.971906],[102.906081,32.970837],[102.906044,32.969792],[102.906043,32.969763],[102.906011,32.968862],[102.906009,32.968813],[102.906008,32.968794],[102.906001,32.968584],[102.905999,32.968534],[102.906027,32.968355],[102.906063,32.968122],[102.906121,32.967749],[102.90613,32.967694],[102.906205,32.967212],[102.906244,32.967051],[102.90634,32.966847],[102.906439,32.966646],[102.906499,32.966255],[102.906495,32.965869],[102.906497,32.965334],[102.906522,32.965176],[102.906749,32.96423],[102.906946,32.961701],[102.907069,32.960811],[102.907099,32.959545],[102.907528,32.958718],[102.907793,32.957629],[102.908231,32.956428],[102.908971,32.955404],[102.909535,32.954665],[102.910227,32.954274],[102.910888,32.953738],[102.911482,32.953144],[102.912009,32.952887],[102.912574,32.952611],[102.912622,32.952587],[102.913242,32.952339],[102.912939,32.952161],[102.912465,32.951981],[102.911449,32.951647],[102.909909,32.950384],[102.909038,32.949679],[102.908545,32.948893],[102.907846,32.948134],[102.907391,32.947176],[102.906153,32.94612],[102.905414,32.945589],[102.904564,32.945489],[102.903707,32.945618],[102.902951,32.945864],[102.901924,32.945962],[102.900765,32.945914],[102.899676,32.945809],[102.898181,32.945496],[102.897195,32.945336],[102.89584,32.944939],[102.894722,32.944575],[102.8936,32.944383],[102.893464,32.944352],[102.893623,32.943434],[102.893751,32.942343],[102.893875,32.941453],[102.89386,32.940647],[102.893773,32.939983],[102.893542,32.939663],[102.892844,32.938845],[102.89211,32.938171],[102.891513,32.937442],[102.891224,32.93666],[102.891001,32.935994],[102.890806,32.935588],[102.89017,32.935088],[102.889218,32.934928],[102.888025,32.93485],[102.887179,32.934577],[102.886338,32.934045],[102.885266,32.933221],[102.884597,32.932663],[102.88366,32.931899],[102.882746,32.931567],[102.88147,32.930711],[102.880462,32.93006],[102.879622,32.929499],[102.878487,32.928444],[102.877686,32.927682],[102.876812,32.92715],[102.875972,32.926617],[102.874892,32.92611],[102.873804,32.925947],[102.87269,32.925439],[102.872158,32.924883],[102.871605,32.923752],[102.871284,32.922912],[102.871316,32.92156],[102.871693,32.92007],[102.871968,32.919496],[102.871981,32.91947],[102.876038,32.917017],[102.8761,32.916979],[102.876403,32.917034]]]]},"properties":{"cp":[103.14126598596769,33.03468485062284],"code":"513233208","name":"色地镇","level":"street","center":[103.14126598596769,33.03468485062284],"fullCode":"513233208000","fullName":"四川省阿坝藏族羌族自治州红原县色地镇","acreageMu":1798581.17,"exportedAt":"2026-07-01","parentCode":"513233","sourceTable":"public.c_area","sourceCenter":[102.999,32.865]}}]} +`,J={邛溪镇:"qiongxi",刷经寺镇:"shuajingsi",安曲镇:"anqu",龙日镇:"longri",江茸乡:"jiangrong",查尔玛乡:"chaerma",瓦切镇:"waqie",阿木乡:"amu",麦洼乡:"maiwa",色地镇:"sedi"},X={色地镇:1199,瓦切镇:991,刷经寺镇:986,邛溪镇:896,阿木乡:892,安曲镇:885,查尔玛乡:729,龙日镇:645,麦洼乡:559,江茸乡:514},Y={};function Q(e){try{return JSON.parse(e)}catch(o){return{type:"FeatureCollection",features:[]}}}function e2(e={}){const o=e.properties||{},a=o.cp||o.center||o.centroid||o.sourceCenter;return Array.isArray(a)&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))?[Number(a[0]),Number(a[1])]:[0,0]}function T(e={}){return e!=null&&e.coordinates?e.type==="Polygon"?[e.coordinates]:e.type==="MultiPolygon"?e.coordinates:[]:[]}function o2(e=[]){return e.reduce((o,a,l)=>{const r=e[l===0?e.length-1:l-1];return o+(Number(r==null?void 0:r[0])*Number(a==null?void 0:a[1])-Number(a==null?void 0:a[0])*Number(r==null?void 0:r[1]))},0)/2}function a2(e=[]){let o=0,a=0,l=0;return e.forEach((r,n)=>{const t=e[n===0?e.length-1:n-1],c=Number(t==null?void 0:t[0])*Number(r==null?void 0:r[1])-Number(r==null?void 0:r[0])*Number(t==null?void 0:t[1]);o+=c,a+=(Number(t==null?void 0:t[0])+Number(r==null?void 0:r[0]))*c,l+=(Number(t==null?void 0:t[1])+Number(r==null?void 0:r[1]))*c}),Math.abs(o)<1e-10?null:[a/(3*o),l/(3*o)]}function r2(e=[]){const o=e.map(a=>[Number(a==null?void 0:a[0]),Number(a==null?void 0:a[1])]).filter(([a,l])=>Number.isFinite(a)&&Number.isFinite(l));return o.length?o.reduce((a,[l,r])=>({west:Math.min(a.west,l),east:Math.max(a.east,l),south:Math.min(a.south,r),north:Math.max(a.north,r)}),{west:1/0,east:-1/0,south:1/0,north:-1/0}):null}function D(e=[],o=[]){const a=Number(e[0]),l=Number(e[1]);if(!Number.isFinite(a)||!Number.isFinite(l))return!1;let r=!1;for(let n=0,t=o.length-1;nl!=f>l&&a<(w-p)*(l-u)/(f-u||1e-12)+p&&(r=!r)}return r}function F(e=[],o=[]){return!o.length||!D(e,o[0])?!1:!o.slice(1).some(a=>D(e,a))}function l2(e=[],o={}){return T(o).some(a=>F(e,a))}function t2(e={}){var o;return((o=T(e.geometry).map(a=>({polygon:a,area:Math.abs(o2((a==null?void 0:a[0])||[]))})).filter(a=>a.area>0).sort((a,l)=>l.area-a.area)[0])==null?void 0:o.polygon)||null}function g(e=[]){return e.map(o=>Number(Number(o).toFixed(6)))}function n2(e={}){const o=e2(e);if(l2(o,e.geometry))return g(o);const a=t2(e),l=(a==null?void 0:a[0])||[],r=a2(l);if(r&&F(r,a))return g(r);const n=r2(l),t=n?[(n.west+n.east)/2,(n.south+n.north)/2]:null;return t&&F(t,a)?g(t):g(r||t||o)}const C2=v,s2=Q(v),_=s2.features||[],k=_.reduce((e,o)=>{const a=o.properties||{},l=C(a.name);return[a.code,a.fullCode].forEach(r=>{const n=String(r||"").replace(/\D/g,"");n&&l&&(e[n]=l)}),e},{});_.reduce((e,o)=>{const a=o.properties||{},l=C(a.name),r=String(a.code||"").replace(/\D/g,"");return l&&r&&(e[l]=r),e},{});const h=_.map(e=>{const o=e.properties||{},a=C(o.name),l=Y[a]||n2(e);return{name:a,code:o.code,fullCode:o.fullCode,center:l,centroid:l,acreageMu:Number(o.acreageMu)||0}}),p2=h.map(e=>d(i({},e),{enName:J[e.name]||"",value:X[e.name]||0})).sort((e,o)=>o.value-e.value),f2=h.map(e=>e.name);function C(e){const o=String(e||"").trim();return!o||o==="--"?"":o}function k2(e){const o=String(e||"").replace(/\D/g,"");return o&&(k[o]||k[o.slice(0,12)]||k[o.slice(0,9)])||""}function F2(e){const o=C(e);return!!(o&&h.some(a=>a.name===o))}export{d2 as H,m as N,u2 as S,y2 as W,p2 as a,H as b,m2 as c,f2 as d,k2 as e,P as f,g2 as g,h,G as i,$ as j,V as k,F2 as l,C2 as m,s2 as n}; diff --git a/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1783995319167.png b/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png similarity index 100% rename from docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1783995319167.png rename to docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png diff --git a/docs/assets/yakApi-032bf70c-1784043664472.js b/docs/assets/yakApi-032bf70c-1784043664472.js new file mode 100644 index 0000000..47d1743 --- /dev/null +++ b/docs/assets/yakApi-032bf70c-1784043664472.js @@ -0,0 +1 @@ +var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-d0c7091a-1784043664472.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; diff --git a/docs/assets/yield-66e9af79-balabala-1783995319167.png b/docs/assets/yield-66e9af79-balabala-1784043664472.png similarity index 100% rename from docs/assets/yield-66e9af79-balabala-1783995319167.png rename to docs/assets/yield-66e9af79-balabala-1784043664472.png diff --git a/docs/index.html b/docs/index.html index 0297ea2..e4f09d3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,8 +11,8 @@ window.CESIUM_BASE_URL = "./cdn/Cesium/"; - - + + diff --git a/src/assets/style/v21-polish.scss b/src/assets/style/v21-polish.scss new file mode 100644 index 0000000..0c64016 --- /dev/null +++ b/src/assets/style/v21-polish.scss @@ -0,0 +1,458 @@ +.platform-screen:not(.is-yak-industry-chain) { + --screen-color-card-bg: rgba(5, 31, 46, 0.84); + --screen-color-card-header-bg: rgba(24, 92, 118, 0.72); + --screen-color-card-border: rgba(78, 223, 244, 0.48); + --screen-color-chart-grid-line: rgba(185, 235, 244, 0.2); + --screen-color-text-weak: rgba(223, 247, 251, 0.72); + --screen-card-title-size: 16px; + --screen-card-title-line-height: 32px; + --screen-card-title-weight: 600; + --screen-chart-axis-size: 11px; + --screen-chart-label-size: 12px; + --screen-table-body-size: 12px; + --screen-table-value-size: 13px; + --screen-kpi-label-size: 13px; + --screen-kpi-value-size: 29px; + --screen-kpi-unit-size: 11px; + --screen-popup-title-size: 16px; + --screen-popup-body-size: 12px; + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-synthesis: none; + -webkit-font-smoothing: antialiased; + text-rendering: geometricPrecision; + + .m-card { + isolation: isolate; + transition: filter 180ms ease; + } + + .m-card-bd::before { + content: ""; + position: absolute; + inset: 34px 1px 1px; + z-index: -1; + pointer-events: none; + background: + radial-gradient(circle at 18% 0%, rgba(66, 209, 231, 0.14), transparent 42%), + linear-gradient(160deg, rgba(8, 43, 60, 0.92), rgba(3, 22, 34, 0.84)); + box-shadow: + inset 0 0 0 1px rgba(81, 221, 242, 0.2), + inset 0 18px 36px rgba(64, 190, 218, 0.06), + 0 10px 26px rgba(0, 8, 16, 0.24); + backdrop-filter: blur(7px) saturate(1.08); + clip-path: polygon(0 0, 100% 0, 100% 44%, 99.1% 46%, 99.1% 54%, 100% 56%, 100% 100%, 0 100%, 0 56%, 0.9% 54%, 0.9% 46%, 0 44%); + } + + .m-card-hd-bg { + opacity: 0.92; + filter: saturate(0.86) brightness(0.96); + } + + .m-card-bd-bg { + opacity: 0.68; + } + + .m-card-hd-title { + left: 20px; + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-size: var(--screen-card-title-size, 16px); + font-weight: var(--screen-card-title-weight, 600); + line-height: var(--screen-card-title-line-height, 32px); + letter-spacing: 0.8px; + text-shadow: 0 2px 10px rgba(0, 8, 14, 0.72); + } + + .m-card-hd-zs1 { + opacity: 0.58; + } + + .m-card-hd .saoguang { + opacity: 0.42; + } + + .fgw-side-stack.is-left, + .home-side-stack.is-left, + .pasture-side-stack.is-left, + .yak-side-stack.is-left { + perspective: none !important; + transform: translate3d(0, 0, 0) !important; + } + + .fgw-side-stack.is-right, + .home-side-stack.is-right, + .pasture-side-stack.is-right, + .yak-side-stack.is-right { + perspective: none !important; + transform: translate3d(0, 0, 0) !important; + } + + .fgw-side-card:hover, + .home-card:hover, + .pasture-side-card:hover, + .yak-side-card:hover { + filter: brightness(1.06); + } + + .business-panel.is-v21 { + color: rgba(247, 254, 255, 0.96); + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + + .business-metric-item, + .business-icon-metric-item, + .business-spotlight-main, + .business-spotlight-chip, + .business-structure-focus, + .business-structure-row, + .business-line-chart, + .business-heat-cell, + .business-split-row { + border-color: rgba(90, 220, 240, 0.18); + background: + linear-gradient(90deg, rgba(68, 210, 232, 0.07), transparent 62%), + rgba(3, 25, 38, 0.52); + box-shadow: inset 0 1px 0 rgba(232, 253, 255, 0.035); + } + + .business-column-item strong, + .business-peak-item strong, + .business-bar-row strong, + .business-donut-row strong, + .business-metric-item strong { + font-variant-numeric: tabular-nums; + letter-spacing: 0.2px; + } + + .business-columns::before, + .business-peaks::before { + opacity: 0.38; + } + + .business-column-track, + .business-bar-track, + .business-peak-stage, + .business-split-band { + border-color: rgba(116, 224, 239, 0.18); + background-color: rgba(76, 202, 220, 0.075); + } + + .business-column-track i, + .business-bar-track i, + .business-peak-stage i, + .business-split-band i { + filter: saturate(0.92) brightness(1.04); + } + + .business-donut-row, + .business-rose-row { + padding: 3px 5px 3px 7px; + border-left: 2px solid var(--row-color, rgba(67, 217, 255, 0.72)); + background: linear-gradient(90deg, color-mix(in srgb, var(--row-color, #43d9ff) 10%, transparent), transparent 72%); + transition: background 160ms ease, transform 160ms ease; + } + + .business-donut-row.is-active, + .business-rose-row.is-active { + background: linear-gradient(90deg, color-mix(in srgb, var(--row-color, #43d9ff) 18%, transparent), transparent 82%); + transform: translateX(2px); + } + + .business-ring-track { + stroke: rgba(165, 223, 233, 0.16); + } + + .business-ring-halo, + .business-rose-glow { + opacity: 0.68; + } + + .business-line-grid { + stroke: rgba(199, 239, 246, 0.16); + } + + .business-panel-empty { + color: rgba(222, 247, 251, 0.65); + } + } + + .fgw-map-layer-tools .m-card-bd::before, + .pasture-map-layer-tools .m-card-bd::before { + background: + radial-gradient(circle at 18% 0%, rgba(65, 215, 235, 0.18), transparent 42%), + linear-gradient(150deg, rgba(5, 31, 46, 0.97), rgba(2, 17, 28, 0.95)); + box-shadow: + inset 0 0 0 1px rgba(89, 225, 244, 0.28), + 0 18px 42px rgba(0, 7, 14, 0.34); + backdrop-filter: blur(12px) saturate(1.12); + } + + .layer-panel-item { + min-height: 30px; + border-color: rgba(90, 217, 237, 0.18); + background: rgba(2, 20, 31, 0.64); + color: rgba(232, 250, 253, 0.78); + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-size: 12px; + font-weight: 500; + line-height: 16px; + transition: border-color 150ms ease, background 150ms ease, color 150ms ease, transform 150ms ease; + + &:hover, + &:focus-visible { + border-color: rgba(98, 226, 245, 0.52); + background: rgba(28, 99, 119, 0.34); + color: #ffffff; + outline: none; + transform: translateX(2px); + } + + &.is-active { + border-color: rgba(89, 223, 243, 0.68); + background: linear-gradient(90deg, rgba(30, 132, 150, 0.48), rgba(3, 25, 37, 0.76)); + box-shadow: inset 3px 0 0 rgba(79, 226, 244, 0.86); + } + } + + .layer-panel-legend-row { + border-color: rgba(89, 220, 239, 0.08); + background: rgba(6, 28, 41, 0.34); + + &:not(:disabled):hover, + &:not(:disabled):focus-visible { + border-color: rgba(91, 224, 243, 0.42); + background: rgba(32, 105, 122, 0.28); + outline: none; + } + } + + .layer-panel-section-title, + .layer-panel .legend-name { + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-size: 12px; + line-height: 16px; + } + + .layer-panel-section-title { + font-weight: 600; + letter-spacing: 0.4px; + } + + .layer-panel .legend-name { + color: rgba(230, 249, 252, 0.78); + font-weight: 500; + } + + .layer-panel .legend-swatch { + width: 17px; + height: 11px; + border-radius: 2px; + box-shadow: 0 0 10px color-mix(in srgb, currentColor 24%, transparent); + } + + .fgw-map-feature-info, + .home-map-feature-info, + .pasture-map-feature-info { + z-index: 12; + + &::after { + content: ""; + position: absolute; + left: calc(var(--feature-panel-anchor-x, 50%) - 8px); + bottom: -7px; + z-index: 0; + width: 16px; + height: 16px; + border-right: 1px solid rgba(89, 225, 244, 0.42); + border-bottom: 1px solid rgba(89, 225, 244, 0.42); + background: rgba(3, 25, 39, 0.98); + box-shadow: 4px 4px 14px rgba(0, 7, 14, 0.28); + transform: rotate(45deg); + pointer-events: none; + } + + .m-card { + position: relative; + z-index: 1; + background: rgba(3, 25, 39, 0.97); + box-shadow: 0 18px 42px rgba(0, 7, 14, 0.42); + backdrop-filter: none; + } + + .m-card-bd::before { + background: + radial-gradient(circle at 18% 0%, rgba(65, 215, 235, 0.18), transparent 42%), + linear-gradient(150deg, rgba(5, 31, 46, 0.98), rgba(2, 17, 28, 0.98)); + box-shadow: inset 0 0 0 1px rgba(89, 225, 244, 0.28); + backdrop-filter: none; + } + } + + .feature-info-card .m-card-hd-title { + color: #ffffff; + font-size: var(--screen-popup-title-size, 16px); + font-weight: 600; + background: none; + -webkit-text-fill-color: currentColor; + } + + .feature-info { + padding: 8px 10px 10px; + font-size: var(--screen-popup-body-size, 12px); + } + + .feature-table { + gap: 2px; + padding-right: 6px; + scrollbar-gutter: stable; + } + + .feature-row { + grid-template-columns: 108px minmax(0, 1fr); + min-height: 27px; + border: 1px solid rgba(101, 218, 235, 0.12); + background: rgba(2, 20, 31, 0.54); + + &:first-child { + border-top: 1px solid rgba(101, 218, 235, 0.12); + } + + span { + min-width: 0; + padding: 4px 9px; + border-right-color: rgba(101, 218, 235, 0.12); + background: rgba(53, 159, 181, 0.1); + color: rgba(211, 240, 245, 0.72); + font-size: var(--screen-table-body-size, 12px); + font-weight: 500; + line-height: 17px; + white-space: nowrap; + } + + strong { + min-width: 0; + padding: 4px 10px; + overflow: hidden; + color: rgba(248, 254, 255, 0.96); + font-size: var(--screen-table-value-size, 13px); + font-weight: 600; + line-height: 17px; + text-overflow: ellipsis; + white-space: nowrap; + } + + &:first-child strong, + &:nth-child(2) strong { + color: #8ef1df; + font-family: var(--screen-font-number, D-DIN, Arial, sans-serif); + font-size: 14px; + line-height: 17px; + letter-spacing: 0.2px; + } + } + + .topic-switcher { + filter: drop-shadow(0 8px 16px rgba(0, 8, 14, 0.3)); + } + + .topic-switcher-item { + transition: filter 150ms ease, transform 150ms ease; + + &:hover, + &:focus-visible { + filter: brightness(1.12); + outline: none; + transform: translateY(-1px); + } + + &.is-active { + filter: saturate(1.12) brightness(1.08); + } + + .topic-name, + .topic-title { + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-size: 15px; + font-weight: 600; + line-height: 18px; + letter-spacing: 0.3px; + } + + .topic-name small { + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-size: 10px; + font-weight: 500; + line-height: 11px; + } + } + + .platform-map-tools button { + transition: border-color 150ms ease, background 150ms ease, transform 150ms ease; + + &:hover, + &:focus-visible { + border-color: rgba(104, 232, 249, 0.78); + background: rgba(24, 113, 136, 0.5); + outline: none; + transform: translateY(-1px); + } + } + + .m-menu-item { + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-size: 14px; + font-weight: 500; + letter-spacing: 0.4px; + transition: color 150ms ease, filter 150ms ease, transform 150ms ease; + + &:hover, + &:focus-visible { + color: #ffffff; + filter: brightness(1.1); + outline: 1px solid rgba(91, 224, 244, 0.45); + outline-offset: 2px; + transform: translateY(-1px); + } + + &.is-active { + filter: saturate(1.06) brightness(1.08); + } + } + + .count-card { + padding: 4px 10px 6px; + background: linear-gradient(90deg, rgba(5, 28, 40, 0.26), transparent 82%); + box-shadow: inset 0 -1px 0 rgba(83, 218, 238, 0.12); + + .count-card-title .title-zh { + font-family: var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif); + font-weight: 600; + letter-spacing: 0.3px; + } + + .count-card-right .value, + .count-card-right .unit { + font-variant-numeric: tabular-nums; + } + } +} + +.business-chart-tooltip.is-v21 { + padding: 10px 12px; + border-color: rgba(95, 226, 244, 0.54); + border-radius: 2px; + background: + radial-gradient(circle at 12% 0%, rgba(70, 230, 173, 0.13), transparent 54%), + rgba(2, 20, 31, 0.96); + box-shadow: 0 14px 34px rgba(0, 7, 14, 0.38), inset 0 0 18px rgba(67, 217, 255, 0.05); + backdrop-filter: blur(10px); +} + +@media (prefers-reduced-motion: reduce) { + .platform-screen:not(.is-yak-industry-chain) *, + .platform-screen:not(.is-yak-industry-chain) *::before, + .platform-screen:not(.is-yak-industry-chain) *::after { + scroll-behavior: auto !important; + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/components/CesiumMap/index.vue b/src/components/CesiumMap/index.vue index c63c129..ab74946 100644 --- a/src/components/CesiumMap/index.vue +++ b/src/components/CesiumMap/index.vue @@ -17,7 +17,7 @@ const NATIONAL_BACKDROP_BOUNDS = { east: 105.02, north: 34.46, } -const HONGYUAN_HIGH_RES_MAX_LEVEL = 17 +const HONGYUAN_HIGH_RES_MAX_LEVEL = 21 const COUNTY_VIEW_HEADING = -18 const COUNTY_VIEW_PITCH = -50 const COUNTY_VIEW_CENTER_LAT_OFFSET = 0.045 @@ -121,6 +121,7 @@ const emit = defineEmits([ "tile-status", "map-click", "draw-boundary", + "view-change", ]) const containerRef = ref(null) @@ -138,6 +139,7 @@ let viewer = null let clickHandler = null let resizeObserver = null let cameraMoveEndRemove = null +let viewChangeRemove = null let terrainFallbackApplied = false let layerRevision = 0 let selectedEntity = null @@ -210,7 +212,7 @@ function initializeCesium() { const referenceProvider = normalizedReferenceTileUrlTemplate && normalizedReferenceTileUrlTemplate !== normalizedTileUrlTemplate ? createImageryProvider(Cesium, normalizedReferenceTileUrlTemplate, { - maximumLevel: Math.min(props.maxZoom, 19), + maximumLevel: props.maxZoom, }) : null const baseProvider = normalizedTileUrlTemplate @@ -247,6 +249,10 @@ function initializeCesium() { }, }) + // Position the camera before imagery providers are attached so Cesium does not + // request a globe/China tile pyramid that is immediately discarded. + setCountyView(false) + if (referenceProvider) { const referenceLayer = viewer.imageryLayers.addImageryProvider(referenceProvider) referenceLayer.alpha = 1 @@ -271,7 +277,7 @@ function initializeCesium() { if (viewer.scene.skyBox) viewer.scene.skyBox.show = false viewer.scene.fog.enabled = true viewer.scene.fog.density = 0.00018 - viewer.resolutionScale = Math.min(Math.max(window.devicePixelRatio || 1, 1), 2) + viewer.resolutionScale = Math.min(Math.max(window.devicePixelRatio || 1, 1), 1.5) viewer.scene.fxaa = false viewer.scene.postProcessStages.fxaa.enabled = false viewer.scene.screenSpaceCameraController.enableCollisionDetection = true @@ -298,7 +304,7 @@ function initializeCesium() { bindMapClick() connectResizeObserver() connectBoundaryVisualScale() - setCountyView(false) + connectViewChangeEmitter() updateBoundaryVisualScale() refreshTopicLayers() refreshMapRanking() @@ -780,6 +786,13 @@ function connectBoundaryVisualScale() { cameraMoveEndRemove = viewer.camera.moveEnd.addEventListener(updateBoundaryVisualScale) } +function connectViewChangeEmitter() { + if (!viewer || viewChangeRemove) return + viewChangeRemove = viewer.scene.postRender.addEventListener(() => { + emit("view-change") + }) +} + function updateBoundaryVisualScale() { if (!viewer || viewer.isDestroyed?.()) return const height = Number(viewer.camera.positionCartographic?.height) || 320000 @@ -2031,14 +2044,15 @@ function addSelectedFeatureOverlay(feature, options = {}) { const Cesium = window.Cesium const isTown = options.mode === "town" const isWhite = options.highlightTone === "white" || options.mode === "white" - const fillColor = isTown ? "#30DCFF" : isWhite ? "#FFFFFF" : "#FF2D2D" - const strokeColor = isTown ? "#F2FFFF" : isWhite ? "#FFFFFF" : "#FF2D2D" + const isV21 = options.highlightTone === "v21" + const fillColor = isTown ? "#30DCFF" : isWhite ? "#FFFFFF" : isV21 ? "#FFD166" : "#FF2D2D" + const strokeColor = isTown ? "#F2FFFF" : isWhite ? "#FFFFFF" : isV21 ? "#FFF1B8" : "#FF2D2D" const style = { fill: Cesium.Color.fromCssColorString(fillColor) - .withAlpha(options.fillAlpha ?? (isTown ? 0.16 : isWhite ? 0.035 : 0.16)), + .withAlpha(options.fillAlpha ?? (isTown ? 0.16 : isWhite ? 0.035 : isV21 ? 0.2 : 0.16)), stroke: Cesium.Color.fromCssColorString(strokeColor) .withAlpha(options.strokeAlpha ?? (isWhite ? 0.9 : 0.98)), - lineWidth: options.lineWidth ?? (isTown ? 4.2 : isWhite ? 3.8 : 5.2), + lineWidth: options.lineWidth ?? (isTown ? 4.2 : isWhite ? 3.8 : isV21 ? 4.4 : 5.2), pointSize: isTown ? 0 : options.pointSize ?? 14, } const entities = addSelectedOverlayGeometryEntities(feature.geometry, feature, dataSource.entities, style) @@ -3023,6 +3037,8 @@ function destroyMap() { resizeObserver = null cameraMoveEndRemove?.() cameraMoveEndRemove = null + viewChangeRemove?.() + viewChangeRemove = null clickHandler?.destroy?.() clickHandler = null clearTopicLayers() diff --git a/src/components/mMenuItem/index.vue b/src/components/mMenuItem/index.vue index 12b4480..738f17f 100644 --- a/src/components/mMenuItem/index.vue +++ b/src/components/mMenuItem/index.vue @@ -1,9 +1,14 @@ diff --git a/src/config/ecologicalProtection.js b/src/config/ecologicalProtection.js new file mode 100644 index 0000000..70a552d --- /dev/null +++ b/src/config/ecologicalProtection.js @@ -0,0 +1,7 @@ +export const ecologicalProtectionMenu = [ + { key: "ecological-redline", label: "生态保护红线", bottomLabel: "生态保护红线" }, + { key: "natural-protected-area", label: "自然保护地", bottomLabel: "自然保护地" }, + { key: "national-park", label: "若尔盖国家公园", bottomLabel: "若尔盖国家公园" }, + { key: "restoration", label: "生态修复工程", bottomLabel: "生态修复工程" }, + { key: "engineering-analysis", label: "生态工程分析", bottomLabel: "生态工程分析" }, +] diff --git a/src/config/layers.js b/src/config/layers.js index 7e1c2ba..6f5907b 100644 --- a/src/config/layers.js +++ b/src/config/layers.js @@ -31,17 +31,61 @@ function createEqualityCql(field, value) { return `${field} = '${escapeCqlLiteral(value)}'` } +function createBasicGrasslandV21Sld() { + return ` + + + ne:t_basic_grassland_2023 + + Screen V2.1 基本与一般草原 + + + basic-grassland + + + grassland_category_codeBASIC + grassland_category_name基本草原 + + + + #35C98B0.58 + #A7F3D00.780.65 + + + + general-grassland + + + grassland_category_codeGENERAL + grassland_category_name一般草原 + + + + #E7B9550.56 + #FFE3A00.80.65 + + + + + +` +} + const grasslandTypeLegends = [ - { name: "低地草甸类", fillColor: "#FFFFFF", strokeColor: "#FFFFFF" }, + { name: "低地草甸类", fillColor: "#DDE9A6", strokeColor: "#F1F7D0" }, { name: "莎草、杂类草型", fillColor: "#F67A7A", strokeColor: "#F67A7A" }, - { name: "山地草甸类", fillColor: "#FFFFFF", strokeColor: "#FFFFFF" }, + { name: "山地草甸类", fillColor: "#7ED0A5", strokeColor: "#B9F1D3" }, { name: "羊茅、杂类草型", fillColor: "#E69800", strokeColor: "#E69800" }, { name: "早熟禾、杂类草型", fillColor: "#FFD380", strokeColor: "#FFD380" }, { name: "垂穗披碱草型", fillColor: "#FFAA01", strokeColor: "#FFAA01" }, { name: "苔草、杂类草型", fillColor: "#FFEBB0", strokeColor: "#FFEBB0" }, { name: "委陵菜、杂类草型", fillColor: "#F5CA7B", strokeColor: "#F5CA7B" }, { name: "披碱草型", fillColor: "#A87001", strokeColor: "#A87001" }, - { name: "高寒草甸类", fillColor: "#FFFFFF", strokeColor: "#FFFFFF" }, + { name: "高寒草甸类", fillColor: "#79A7E8", strokeColor: "#BBD3F6" }, { name: "矮生嵩草、杂类草型", fillColor: "#6CB3FF", strokeColor: "#6CB3FF" }, { name: "矮生嵩草、圆穗蓼型", fillColor: "#00C7FF", strokeColor: "#00C7FF" }, { name: "西藏嵩草、杂类草型", fillColor: "#8FE5FD", strokeColor: "#8FE5FD" }, @@ -60,11 +104,11 @@ const grasslandTypeLegends = [ })) const productivityLegends = [ - { name: ">4000(kg/hm2)", fillColor: "#39A700", strokeColor: "#39A700" }, - { name: "3000-4000(kg/hm2)", fillColor: "#8CCF00", strokeColor: "#8CCF00" }, - { name: "2000-3000(kg/hm2)", fillColor: "#FEFE02", strokeColor: "#FEFE02" }, - { name: "1500-2000(kg/hm2)", fillColor: "#FE7E01", strokeColor: "#FE7E01" }, - { name: "<1500(kg/hm2)", fillColor: "#FB0100", strokeColor: "#FB0100" }, + { name: ">4000(kg/hm2)", fillColor: "#2F9D78", strokeColor: "#7DE0B9" }, + { name: "3000-4000(kg/hm2)", fillColor: "#72B86A", strokeColor: "#A9DC91" }, + { name: "2000-3000(kg/hm2)", fillColor: "#D9C55B", strokeColor: "#F1E38C" }, + { name: "1500-2000(kg/hm2)", fillColor: "#E4934E", strokeColor: "#F5BD7C" }, + { name: "<1500(kg/hm2)", fillColor: "#D65F5F", strokeColor: "#F09191" }, ].map((item) => ({ ...item, selectable: false })) const grasslandLevelText = { @@ -79,14 +123,14 @@ const grasslandLevelText = { } const grasslandLevelLegends = [ - { level: "1", name: "1级草原", fillColor: "#81D10B", strokeColor: "#81D10B" }, - { level: "2", name: "2级草原", fillColor: "#8AE611", strokeColor: "#8AE611" }, - { level: "3", name: "3级草原", fillColor: "#79C801", strokeColor: "#79C801" }, - { level: "4", name: "4级草原", fillColor: "#D0EC03", strokeColor: "#D0EC03" }, - { level: "5", name: "5级草原", fillColor: "#FFCC00", strokeColor: "#FFCC00" }, - { level: "6", name: "6级草原", fillColor: "#FF6501", strokeColor: "#FF6501" }, - { level: "7", name: "7级草原", fillColor: "#FB0002", strokeColor: "#FB0002" }, - { level: "8", name: "8级草原", fillColor: "#D71345", strokeColor: "#D71345" }, + { level: "1", name: "1级草原", fillColor: "#2E7D6A", strokeColor: "#75C5A9" }, + { level: "2", name: "2级草原", fillColor: "#3AAE86", strokeColor: "#82D5B0" }, + { level: "3", name: "3级草原", fillColor: "#68C79A", strokeColor: "#A6E2BF" }, + { level: "4", name: "4级草原", fillColor: "#A6D96A", strokeColor: "#D0EB9E" }, + { level: "5", name: "5级草原", fillColor: "#F0C95B", strokeColor: "#FFE598" }, + { level: "6", name: "6级草原", fillColor: "#E99A4A", strokeColor: "#F6C17C" }, + { level: "7", name: "7级草原", fillColor: "#E06A52", strokeColor: "#F39B88" }, + { level: "8", name: "8级草原", fillColor: "#BD5367", strokeColor: "#E58A9A" }, ].map((item) => ({ ...item, key: `grassland-level-${item.level}`, @@ -112,16 +156,16 @@ const basicGrasslandLegends = [ { key: "basic-grassland-basic", name: "基本草原", - fillColor: "#2EEA78", - strokeColor: "#18F8FF", + fillColor: "#35C98B", + strokeColor: "#A7F3D0", cqlFilter: "(grassland_category_code = 'BASIC' OR grassland_category_name = '基本草原')", rankingValueKey: "basicAreaWanMu", }, { key: "basic-grassland-general", name: "一般草原", - fillColor: "#FFD15A", - strokeColor: "#18F8FF", + fillColor: "#E7B955", + strokeColor: "#FFE3A0", cqlFilter: "(grassland_category_code = 'GENERAL' OR grassland_category_name = '一般草原')", rankingValueKey: "generalAreaWanMu", }, @@ -206,11 +250,11 @@ export const forestGrassWetLayers = { woodland: [ { key: "woodland-distribution", - name: "林地范围", + name: "林地分布", layerName: "ne:t_woodland_2023", styles: "woodland_distribution", opacity: 0.82, - legends: [{ key: "woodland-distribution-all", name: "林地范围", fillColor: "#2BD17E", strokeColor: "#2BD17E", selectable: false }], + legends: [{ key: "woodland-distribution-all", name: "林地分布", fillColor: "#2BD17E", strokeColor: "#2BD17E", selectable: false }], }, { key: "woodland-protection", @@ -275,8 +319,9 @@ export const forestGrassWetLayers = { key: "basic-grassland", name: "基本/一般草原", layerName: "ne:t_basic_grassland_2023", - styles: "basic_grassland_type", - opacity: 0.84, + styles: "", + sldBody: createBasicGrasslandV21Sld(), + opacity: 0.78, legends: basicGrasslandLegends, }, { diff --git a/src/utils/featurePanelLayout.js b/src/utils/featurePanelLayout.js new file mode 100644 index 0000000..cea471a --- /dev/null +++ b/src/utils/featurePanelLayout.js @@ -0,0 +1,82 @@ +export const FEATURE_PANEL_WIDTH = 480 + +const SCREEN_WIDTH = 1920 +const SCREEN_HEIGHT = 1080 +const PANEL_DEFAULT_HEIGHT = 176 +const PANEL_MIN_VISIBLE_HEIGHT = 112 +const PANEL_MAX_HEIGHT = 272 +const PANEL_ANCHOR_GAP = 18 + +function clamp(value, min, max) { + return Math.min(Math.max(value, min), max) +} + +/** + * Presentation-only layout for map feature cards. + * Keeps the card above the clicked feature and shrinks the scrollable body when + * vertical space is limited. Querying and selected-feature state stay untouched. + */ +export function createFeaturePanelLayout({ + point, + rowCount = 0, + loading = false, + empty = false, + safeLeft = 448, + safeRight = 1472, + preferredTop = 196, + safeTop = 94, +}) { + if (!point) { + return { + width: FEATURE_PANEL_WIDTH, + height: PANEL_DEFAULT_HEIGHT, + style: {}, + } + } + + const normalizedRows = clamp(Number(rowCount) || 0, 0, 10) + const contentHeight = loading || empty + ? PANEL_DEFAULT_HEIGHT + : 58 + Math.max(normalizedRows, 1) * 27 + const desiredHeight = clamp(contentHeight, PANEL_DEFAULT_HEIGHT, PANEL_MAX_HEIGHT) + const anchorBottom = clamp(point.y - PANEL_ANCHOR_GAP, 72, SCREEN_HEIGHT - 28) + const preferredSpace = anchorBottom - preferredTop + const safeSpace = anchorBottom - safeTop + + let height = desiredHeight + let top = anchorBottom - desiredHeight + + if (preferredSpace >= PANEL_MIN_VISIBLE_HEIGHT) { + height = Math.min(desiredHeight, preferredSpace) + top = anchorBottom - height + } else if (safeSpace >= PANEL_MIN_VISIBLE_HEIGHT) { + height = Math.min(desiredHeight, safeSpace) + top = anchorBottom - height + } else { + const hardTop = 72 + height = Math.max(112, Math.min(desiredHeight, anchorBottom - hardTop)) + top = anchorBottom - height + } + + const corridorLeft = clamp(safeLeft, 24, SCREEN_WIDTH - FEATURE_PANEL_WIDTH - 24) + const corridorRight = clamp(safeRight, corridorLeft + FEATURE_PANEL_WIDTH, SCREEN_WIDTH - 24) + const left = clamp( + point.x - FEATURE_PANEL_WIDTH / 2, + corridorLeft, + corridorRight - FEATURE_PANEL_WIDTH, + ) + const anchorX = clamp(point.x - left, 28, FEATURE_PANEL_WIDTH - 28) + + return { + width: FEATURE_PANEL_WIDTH, + height: Math.round(height), + style: { + left: `${Math.round(left)}px`, + top: `${Math.round(top)}px`, + right: "auto", + bottom: "auto", + width: `${FEATURE_PANEL_WIDTH}px`, + "--feature-panel-anchor-x": `${Math.round(anchorX)}px`, + }, + } +} diff --git a/src/views/ecologicalProtection/data.js b/src/views/ecologicalProtection/data.js index 2f7276e..1198568 100644 --- a/src/views/ecologicalProtection/data.js +++ b/src/views/ecologicalProtection/data.js @@ -1,6 +1,9 @@ import { hongyuanTownshipDisplayOrder } from "@/config/townshipBoundaries" import { getRiskLevel } from "@/views/grassLivestockBalance/data" import { NATIONAL_PARK_ZONING_COLORS } from "@/config/layers" +import { ecologicalProtectionMenu } from "@/config/ecologicalProtection" + +export { ecologicalProtectionMenu } const toWanMu = (mu) => Number((Number(mu || 0) / 10000).toFixed(2)) const sumBy = (rows, field) => rows.reduce((sum, item) => sum + Number(item[field] || 0), 0) @@ -280,14 +283,6 @@ const restorationSummary = { ], } -export const ecologicalProtectionMenu = [ - { key: "ecological-redline", label: "生态保护红线", bottomLabel: "生态保护红线" }, - { key: "natural-protected-area", label: "自然保护地", bottomLabel: "自然保护地" }, - { key: "national-park", label: "若尔盖国家公园", bottomLabel: "若尔盖国家公园" }, - { key: "restoration", label: "生态修复工程", bottomLabel: "生态修复工程" }, - { key: "engineering-analysis", label: "生态工程分析", bottomLabel: "生态工程分析" }, -] - export const ecologicalScopeViewKeys = ["ecological-redline", "natural-protected-area"] function normalizeScopeRows(value = []) { diff --git a/src/views/ecologicalProtection/index.vue b/src/views/ecologicalProtection/index.vue index b475366..4861f7c 100644 --- a/src/views/ecologicalProtection/index.vue +++ b/src/views/ecologicalProtection/index.vue @@ -6,6 +6,7 @@ :map-ranking="mapRanking" :admin-boundary-line-scale="2.4" :auto-apply-layer-map-view="false" + :max-zoom="21" @feature-loading="featureLoading = $event" @feature-info="handleFeatureInfo" @map-click="handleMapClick" @@ -29,6 +30,7 @@ :panel="panel" compact column-label-standard + visual-version="v21" @row-select="handlePanelRowSelect(panel, $event)" /> @@ -50,6 +52,7 @@ :panel="panel" compact column-label-standard + visual-version="v21" @row-select="handlePanelRowSelect(panel, $event)" /> @@ -92,8 +95,10 @@ :feature="selectedFeature" :empty="featureEmpty" :loading="featureLoading" - :width="460" + :width="featurePanelWidth" :height="featurePanelHeight" + closable + @close="closeFeaturePanel" /> @@ -127,6 +132,7 @@ diff --git a/src/views/forestGrassWet/layout.scss b/src/views/forestGrassWet/layout.scss new file mode 100644 index 0000000..e310234 --- /dev/null +++ b/src/views/forestGrassWet/layout.scss @@ -0,0 +1,129 @@ +.forest-grass-wet { + position: absolute; + inset: 0; + height: 100%; + overflow: clip; + overscroll-behavior: none; + + > .map { + width: 100%; + height: 100%; + + > canvas { + display: block; + width: 100% !important; + height: 100% !important; + } + + > div { + width: 100% !important; + height: 100% !important; + } + } + + &-ui { + position: absolute; + inset: 0; + z-index: 4; + pointer-events: none; + } + + .fgw-left, + .fgw-right { + position: absolute; + top: 128px; + bottom: 8px; + z-index: 6; + width: 398px; + perspective-origin: 50% 50%; + pointer-events: all; + } + + .fgw-left { + left: 32px; + perspective: var(--screen-side-perspective-left, 500px); + } + + .fgw-right { + right: 32px; + perspective: var(--screen-side-perspective-right, 800px); + } + + .fgw-side-stack { + position: absolute; + inset: 0; + display: flex; + flex-direction: column; + gap: 12px; + transform-style: preserve-3d; + + &.is-left { + transform: translate3d(0, 0, 0) rotateY(6deg); + transform-origin: left center; + } + + &.is-right { + transform: translate3d(0, 0, 0) rotateY(-6deg); + transform-origin: right center; + } + } + + .fgw-side-card { + flex: 0 0 auto; + + .m-card-bd-content { + top: 36px; + bottom: 0; + color: #f3feff; + } + } + + .fgw-map-layer-tools, + .fgw-map-feature-info { + position: absolute; + z-index: 7; + pointer-events: all; + + .m-card { + background: rgba(3, 18, 30, 0.54); + backdrop-filter: blur(2px); + } + } + + .fgw-map-layer-tools { + top: auto; + right: 458px; + left: auto; + bottom: 72px; + width: 248px; + height: 430px; + + .m-card { + width: 100% !important; + height: 100% !important; + } + } + + .fgw-ndvi-timeline { + position: absolute; + left: 50%; + bottom: 112px; + z-index: 7; + transform: translateX(-50%); + pointer-events: all; + } + + .fgw-map-feature-info { + right: 456px; + bottom: 150px; + } + + .fgw-bottom-topic { + position: absolute; + left: 50%; + bottom: 48px; + z-index: 8; + transform: translateX(-50%); + pointer-events: all; + } +} diff --git a/src/views/forestGrassWet/map.js b/src/views/forestGrassWet/map.js index 3f0ddbd..70a454f 100644 --- a/src/views/forestGrassWet/map.js +++ b/src/views/forestGrassWet/map.js @@ -1384,7 +1384,7 @@ export class World extends Mini3d { const maxZoom = Number.isFinite(maxLevel) && maxLevel > 0 ? maxLevel : 21 const rawZoom = Number(layer.homeWmtsZoom ?? layer.wmtsZoom ?? layer.tileZoom ?? this.satelliteTextureZoom) const zoom = Number.isFinite(rawZoom) && rawZoom > 0 ? Math.round(rawZoom) : 11 - return clampNumber(zoom, 3, Math.min(maxZoom, 13)) + return clampNumber(zoom, 3, Math.min(maxZoom, CUSTOM_SATELLITE_MAX_ZOOM)) } updateTopicLayerTextureSampling(layer = {}) { if (!this.topicLayerTexture) return diff --git a/src/views/forestGrassWet/map.vue b/src/views/forestGrassWet/map.vue index f8bdddc..a81d863 100644 --- a/src/views/forestGrassWet/map.vue +++ b/src/views/forestGrassWet/map.vue @@ -25,7 +25,7 @@ const props = defineProps({ }, satelliteMaxZoom: { type: Number, - default: 0, + default: 21, }, adminBoundaryLineScale: { type: Number, diff --git a/src/views/gdMap/assets.js b/src/views/gdMap/assets.js index 20e0d30..14985c7 100644 --- a/src/views/gdMap/assets.js +++ b/src/views/gdMap/assets.js @@ -1,6 +1,6 @@ import { Resource } from "@/mini3d" import { FileLoader } from "three" -import { getPublicMapResourcePath, HONGYUAN_COUNTY_OUTLINE_PATH, HONGYUAN_TOWNSHIP_SCREEN_GEOJSON_PATH } from "@/config/mapResources" +import { getPublicMapResourcePath, CHINA_GEOJSON_PATH, HONGYUAN_COUNTY_OUTLINE_PATH, HONGYUAN_TOWNSHIP_SCREEN_GEOJSON_PATH } from "@/config/mapResources" import pathLine from "@/assets/texture/pathLine4.png" import pathLine3 from "@/assets/texture/pathLine2.png" @@ -43,7 +43,7 @@ export class Assets { { type: "File", name: "china", - path: getPublicMapResourcePath(HONGYUAN_COUNTY_OUTLINE_PATH), + path: getPublicMapResourcePath(CHINA_GEOJSON_PATH), }, { diff --git a/src/views/gdMap/map.js b/src/views/gdMap/map.js index 8900d22..3d70f68 100644 --- a/src/views/gdMap/map.js +++ b/src/views/gdMap/map.js @@ -51,7 +51,6 @@ import scatterData from "./map/scatter" import infoData from "./map/infoData" import gsap from "gsap" import { InteractionManager } from "three.interactive" -import { applyMapTextureUv, createHongyuanSatelliteTexture } from "./satelliteTiles" function sortByValue(data) { data.sort((a, b) => b.value - a.value) return data @@ -84,6 +83,8 @@ export class World extends Mini3d { this.geoProjectionCenter = [102.6305459723107, 32.72169252326339] // 缩放比例 this.geoProjectionScale = 650 + this.backgroundProjectionCenter = options.backgroundProjectionCenter || this.geoProjectionCenter + this.backgroundProjectionScale = options.backgroundProjectionScale || 120 // 飞线中心 this.flyLineCenter = [102.60242339873115, 32.83022561372293] // 地图拉伸高度 @@ -91,6 +92,7 @@ export class World extends Mini3d { // 是否点击 this.clicked = false this.sceneMode = options.sceneMode || "default" + this.showDataOverlays = options.showDataOverlays !== false this.mapAnimationDone = false this.sceneTweens = [] this.sceneTimers = [] @@ -154,22 +156,24 @@ export class World extends Mini3d { this.createRotateBorder() // 创建标签 this.createLabel() - // 创建地图 - this.createMap() - // 添加事件 - this.createEvent() - // 创建飞线 - this.createFlyLine() - // 创建飞线焦点 - this.createFocus() - // 创建粒子 - this.createParticles() - // 创建散点图 - this.createScatter() - // 创建信息点 - this.createInfoPoint() - // 创建轮廓 - this.createStorke() + // 创建地图 + this.createMap() + // 添加事件 + this.createEvent() + // 创建粒子 + this.createParticles() + if (this.showDataOverlays) { + // 创建飞线 + this.createFlyLine() + // 创建飞线焦点 + this.createFocus() + // 创建散点图 + this.createScatter() + // 创建信息点 + this.createInfoPoint() + } + // 创建轮廓 + this.createStorke() // this.time.on("tick", () => { // console.log(this.camera.instance.position); // }); @@ -187,11 +191,11 @@ export class World extends Mini3d { x: -0.17427287762525134, y: 13.678992786206543, z: 20.688611202093714, - ease: "circ.out", - onStart: () => { - this.flyLineFocusGroup.visible = false - }, - }) + ease: "circ.out", + onStart: () => { + if (this.flyLineFocusGroup) this.flyLineFocusGroup.visible = false + }, + }) tl.to( this.focusMapGroup.position, { @@ -210,11 +214,13 @@ export class World extends Mini3d { x: 1, y: 1, z: 1, - ease: "circ.out", + ease: "circ.out", onComplete: () => { - this.flyLineGroup.visible = true - this.scatterGroup.visible = true - this.InfoPointGroup.visible = true + if (this.showDataOverlays) { + this.flyLineGroup.visible = true + this.scatterGroup.visible = true + this.InfoPointGroup.visible = true + } this.applySceneMode() }, }, @@ -282,12 +288,12 @@ export class World extends Mini3d { { duration: 1, delay: 0.5, - x: 1, - y: 1, - z: 1, + x: 1, + y: 1, + z: 1, ease: "circ.out", onComplete: () => { - this.flyLineFocusGroup.visible = true + if (this.showDataOverlays && this.flyLineFocusGroup) this.flyLineFocusGroup.visible = true this.mapAnimationDone = true this.applySceneMode() this.options.onPlayComplete?.() @@ -295,7 +301,7 @@ export class World extends Mini3d { }, "focusMapOpacity" ) - this.allBar.map((item, index) => { + ;(this.allBar || []).map((item, index) => { if (item.userData.name === "邛溪镇") { return false } @@ -312,7 +318,7 @@ export class World extends Mini3d { "bar" ) }) - this.allBarMaterial.map((item, index) => { + ;(this.allBarMaterial || []).map((item, index) => { tl.to( item, { @@ -325,7 +331,7 @@ export class World extends Mini3d { ) }) - this.allProvinceLabel.map((item, index) => { + ;(this.allProvinceLabel || []).map((item, index) => { let element = item.element.querySelector(".provinces-label-wrap") let number = item.element.querySelector(".number .value") let numberVal = Number(number.innerText) @@ -357,7 +363,7 @@ export class World extends Mini3d { number.innerText = numberAnimate.score.toFixed(0) } }) - this.allGuangquan.map((item, index) => { + ;(this.allGuangquan || []).map((item, index) => { tl.to( item.children[0].scale, { @@ -434,51 +440,53 @@ export class World extends Mini3d { focusMapGroup.scale.set(1, 1, 0) mapGroup.add(focusMapGroup) mapGroup.rotation.x = -Math.PI / 2 - mapGroup.position.set(0, 0.2, 0) - this.scene.add(mapGroup) - this.createBar() - } + mapGroup.position.set(0, 0.2, 0) + this.scene.add(mapGroup) + if (this.showDataOverlays) { + this.createBar() + } else { + this.allBar = [] + this.allBarMaterial = [] + this.allGuangquan = [] + this.allProvinceLabel = [] + } + } createChina() { let params = { chinaBgMaterialColor: "#152c47", lineColor: "#3f82cd", } let chinaData = this.staticMapData.china - let chinaBgMaterial = new MeshLambertMaterial({ - color: new Color(params.chinaBgMaterialColor), - transparent: true, - opacity: 1, - }) + let chinaBgMaterial = new MeshLambertMaterial({ + color: new Color(params.chinaBgMaterialColor), + transparent: true, + opacity: this.showDataOverlays ? 1 : 0.54, + }) let china = new BaseMap(this, { - //position: new Vector3(0, 0, -0.03), - data: chinaData, - geoProjectionCenter: this.geoProjectionCenter, - geoProjectionScale: this.geoProjectionScale, - merge: true, - material: chinaBgMaterial, - renderOrder: 2, + //position: new Vector3(0, 0, -0.03), + data: chinaData, + geoProjectionCenter: this.backgroundProjectionCenter, + geoProjectionScale: this.backgroundProjectionScale, + merge: true, + material: chinaBgMaterial, + renderOrder: 2, }) let chinaTopLineMaterial = new LineBasicMaterial({ color: params.lineColor, }) let chinaTopLine = new Line(this, { - // position: new Vector3(0, 0, -0.02), - data: chinaData, - geoProjectionCenter: this.geoProjectionCenter, - geoProjectionScale: this.geoProjectionScale, - material: chinaTopLineMaterial, - renderOrder: 3, + // position: new Vector3(0, 0, -0.02), + data: chinaData, + geoProjectionCenter: this.backgroundProjectionCenter, + geoProjectionScale: this.backgroundProjectionScale, + material: chinaTopLineMaterial, + renderOrder: 3, }) chinaTopLine.lineGroup.position.z += 0.01 return { china, chinaTopLine } - } + } createProvince() { let mapJsonData = this.staticMapData.mapJson - const satellite = createHongyuanSatelliteTexture({ - geoProjectionCenter: this.geoProjectionCenter, - geoProjectionScale: this.geoProjectionScale, - zoom: 11, - }) let [topMaterial, sideMaterial] = this.createProvinceMaterial() this.focusMapTopMaterial = topMaterial this.focusMapSideMaterial = sideMaterial @@ -494,18 +502,11 @@ export class World extends Mini3d { }) let faceMaterial = new MeshStandardMaterial({ color: 0xffffff, - map: satellite.texture, transparent: true, - opacity: 0.9, - roughness: 0.9, + opacity: 0.5, // fog: false, }) - let faceGradientShader = new GradientShader(faceMaterial, { - // uColor1: 0x2a6e92, - // uColor2: 0x102736, - uColor1: 0x12bbe0, - uColor2: 0x0094b5, - }) + this.createTerrainSurfaceShader(faceMaterial) this.defaultMaterial = faceMaterial this.defaultLightMaterial = this.defaultMaterial.clone() this.defaultLightMaterial.color = new Color("rgba(115,208,255,1)") @@ -515,12 +516,11 @@ export class World extends Mini3d { let mapTop = new BaseMap(this, { geoProjectionCenter: this.geoProjectionCenter, geoProjectionScale: this.geoProjectionScale, - position: new Vector3(0, 0, this.depth + 0.22), - data: mapJsonData, - material: faceMaterial, - renderOrder: 8, + position: new Vector3(0, 0, this.depth + 0.22), + data: mapJsonData, + material: faceMaterial, + renderOrder: 2, }) - applyMapTextureUv(mapTop, satellite.uvBounds) mapTop.mapGroup.children.map((group) => { group.children.map((mesh) => { if (mesh.type === "Mesh") { @@ -548,7 +548,7 @@ export class World extends Mini3d { mapLine, } } - createProvinceMaterial() { + createProvinceMaterial() { let topMaterial = new MeshLambertMaterial({ color: 0xffffff, transparent: true, @@ -593,8 +593,8 @@ export class World extends Mini3d { diffuseColor.a *= transmissionAlpha + 0.1; #endif vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); - outgoingLight = mix(outgoingLight, outgoingLight * gradient, 0.22); - float topAlpha = 0.88; + outgoingLight = outgoingLight*gradient; + float topAlpha = 0.5; if(vPosition.z>0.3){ diffuseColor.a *= topAlpha; } @@ -659,9 +659,73 @@ export class World extends Mini3d { ` ) } - return [topMaterial, sideMaterial] - } - createBar() { + return [topMaterial, sideMaterial] + } + createTerrainSurfaceShader(material) { + material.onBeforeCompile = (shader) => { + shader.uniforms = { + ...shader.uniforms, + uTerrainColor1: { value: new Color(0x0c5168) }, + uTerrainColor2: { value: new Color(0x18b5d6) }, + uTerrainColor3: { value: new Color(0x6bf0df) }, + } + shader.vertexShader = shader.vertexShader.replace( + "void main() {", + ` + varying vec3 vTerrainPosition; + void main() { + vTerrainPosition = position; + ` + ) + shader.fragmentShader = shader.fragmentShader.replace( + "void main() {", + ` + varying vec3 vTerrainPosition; + uniform vec3 uTerrainColor1; + uniform vec3 uTerrainColor2; + uniform vec3 uTerrainColor3; + float terrainHash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); + } + float terrainNoise(vec2 p) { + vec2 i = floor(p); + vec2 f = fract(p); + vec2 u = f * f * (3.0 - 2.0 * f); + return mix( + mix(terrainHash(i + vec2(0.0, 0.0)), terrainHash(i + vec2(1.0, 0.0)), u.x), + mix(terrainHash(i + vec2(0.0, 1.0)), terrainHash(i + vec2(1.0, 1.0)), u.x), + u.y + ); + } + void main() { + ` + ) + shader.fragmentShader = shader.fragmentShader.replace( + "#include ", + /* glsl */ ` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec2 terrainUv = vTerrainPosition.xz; + float broad = terrainNoise(terrainUv * 0.32); + float detail = terrainNoise(terrainUv * 1.6); + float bands = sin(terrainUv.x * 0.75 + terrainUv.y * 0.46) * 0.5 + 0.5; + float ridges = smoothstep(0.48, 0.86, bands) * 0.16; + float mixValue = clamp((vTerrainPosition.x + 9.0) / 18.0 + (broad - 0.5) * 0.28, 0.0, 1.0); + vec3 terrainColor = mix(uTerrainColor1, uTerrainColor2, mixValue); + terrainColor = mix(terrainColor, uTerrainColor3, clamp(detail * 0.18 + ridges, 0.0, 0.28)); + float shade = 0.8 + broad * 0.24 + detail * 0.1; + outgoingLight *= terrainColor * shade; + diffuseColor.a *= 0.68; + gl_FragColor = vec4(outgoingLight, diffuseColor.a); + ` + ) + } + } + createBar() { let self = this let data = sortByValue(provincesData).filter((item, index) => index < 7) const barGroup = new Group() @@ -878,19 +942,24 @@ export class World extends Mini3d { mesh.position.set(0, 0.21, 0) this.scene.add(mesh) } - createGrid() { - new Grid(this, { - gridSize: 50, - gridDivision: 20, - gridColor: 0x1b4b70, - shapeSize: 0.5, - shapeColor: 0x2a5f8a, - pointSize: 0.1, - pointColor: 0x154d7d, - }) - } - createBottomBg() { - let geometry = new PlaneGeometry(20, 20) + createGrid() { + new Grid(this, { + gridSize: 68, + gridDivision: 28, + gridColor: 0x20658d, + shapeSize: 0.58, + shapeColor: 0x3d91bd, + pointSize: 0.12, + pointColor: 0x1b8cc4, + pointLayout: { + row: 170, + col: 170, + }, + pointBlending: AdditiveBlending, + }) + } + createBottomBg() { + let geometry = new PlaneGeometry(42, 42) const texture = this.assets.instance.getResource("ocean") texture.colorSpace = SRGBColorSpace texture.wrapS = RepeatWrapping @@ -937,36 +1006,39 @@ export class World extends Mini3d { let label = labelStyle01(province, label3d, labelGroup) otherLabel.push(label) }) - let iconLabel1 = labelStyle03( - { - icon: labelIcon, - center: [103.13, 33.01], - width: "40px", - height: "40px", - reflect: true, - }, - label3d, - labelGroup - ) - let iconLabel2 = labelStyle03( - { - icon: labelIcon, - center: [102.03, 32.44], - width: "20px", - height: "20px", - reflect: false, - }, - label3d, - labelGroup - ) - otherLabel.push(iconLabel1) - otherLabel.push(iconLabel2) + if (this.showDataOverlays) { + let iconLabel1 = labelStyle03( + { + icon: labelIcon, + center: [103.13, 33.01], + width: "40px", + height: "40px", + reflect: true, + }, + label3d, + labelGroup + ) + let iconLabel2 = labelStyle03( + { + icon: labelIcon, + center: [102.03, 32.44], + width: "20px", + height: "20px", + reflect: false, + }, + label3d, + labelGroup + ) + otherLabel.push(iconLabel1) + otherLabel.push(iconLabel2) + } this.otherLabel = otherLabel function labelStyle01(province, label3d, labelGroup) { let label = label3d.create("", `china-label ${province.blur ? " blur" : ""}`, false) - const [x, y] = self.geoProjection(province.center) - label.init( - `
    ${province.name}
    `, + const [x, y] = self.geoProjection(province.center) + const iconHtml = self.showDataOverlays ? `` : "" + label.init( + `
    ${iconHtml}${province.name}
    `, new Vector3(x, -y, self.depth + 0.85) ) label3d.setLabelStyle(label, 0.018, "x") @@ -1263,7 +1335,25 @@ export class World extends Mini3d { this.sceneMode = mode this.applySceneMode() } + setDataOverlaysVisible(visible = true) { + this.showDataOverlays = Boolean(visible) + this.applySceneMode() + } applySceneMode() { + if (!this.showDataOverlays) { + if (this.flyLineGroup) this.flyLineGroup.visible = false + if (this.flyLineFocusGroup) this.flyLineFocusGroup.visible = false + if (this.scatterGroup) this.scatterGroup.visible = false + if (this.InfoPointGroup) this.InfoPointGroup.visible = false + if (this.barGroup) this.barGroup.visible = false + this.allProvinceLabel?.forEach((label) => { + label.visible = false + }) + this.allGuangquan?.forEach((group) => { + group.visible = false + }) + return + } const isTrade = this.sceneMode === "trade" if (this.flyLineGroup) this.flyLineGroup.visible = isTrade || this.mapAnimationDone if (this.flyLineFocusGroup) this.flyLineFocusGroup.visible = isTrade || this.mapAnimationDone diff --git a/src/views/gdMap/map.vue b/src/views/gdMap/map.vue index 22f82f1..0e6d24c 100644 --- a/src/views/gdMap/map.vue +++ b/src/views/gdMap/map.vue @@ -13,6 +13,10 @@ const props = defineProps({ type: String, default: "default", }, + showDataOverlays: { + type: Boolean, + default: true, + }, }); const emit = defineEmits(["town-click", "play-complete"]); let hasPlayedIntro = false; @@ -22,10 +26,12 @@ onBeforeUnmount(() => { function loadMap(assets) { if (canvasMap.value || !canvasRef.value) return; canvasMap.value = new World(canvasRef.value, assets, { + showDataOverlays: props.showDataOverlays, onTownClick: (payload) => emit("town-click", payload), onPlayComplete: () => emit("play-complete"), }); canvasMap.value.setSceneMode?.(props.sceneMode); + canvasMap.value.setDataOverlaysVisible?.(props.showDataOverlays); canvasMap.value.time.pause(); } async function play() { @@ -66,6 +72,12 @@ watch( }, { immediate: true } ); +watch( + () => props.showDataOverlays, + (visible) => { + canvasMap.value?.setDataOverlaysVisible?.(visible); + } +);